2012-06-20 7 views
12

Ich habe ein Projekt mit handgeschriebenen Assembly-AT & T-Syntax, funktioniert gut mit GCC, aber nicht von mir gemacht und ich weiß sehr wenig über Assembly-was ein seltsames Problem zeigt, wenn man versucht, es mit Clang zu bauen.Wie kann man den integrierten Assembler von LLVM ausschalten?

LLVM-Dokumentation mentions, dass "die meisten X86-Ziele" den integrierten Assembler von LLVM im Gegensatz zum Systemassembler verwenden; als möglichen Workaround möchte ich diesen explizit verwenden. Ich (gut, Google) war nicht erfolgreich darin, Informationen darüber zu finden, wie man das macht.

Frage: Gibt es eine Möglichkeit, Clang/LLVM zu bitten oder eher zu zwingen, den Systemassembler anstelle des integrierten zu verwenden?

(ich weiß, ich konnte immer die Source ™ gehen und lesen, aber ich möchte wissen, ob es ein dokumentiertes Konzept).

Antwort

20

Es stellte sich heraus, dass ich diese vollständig in der Manpage verpasst:

-integrated-as-no-integrated-as

Dient zum Aktivieren bzw. Deaktivieren der Verwendung des integrierten Assemblers. Ob der integrierte Assembler standardmäßig aktiviert ist, hängt vom Ziel ab.

Um es bei Compiler Aufruf zu deaktivieren:

clang -no-integrated-as -c foo.c 

Oder:

export CC="clang -no-integrated-as" 
make