18 Stimmen

Wie schaltet man den integrierten Assembler von LLVM aus?

Ich habe ein Projekt mit handgeschriebenen Assembler-AT&T-Syntax, funktioniert gut mit GCC, aber nicht von mir getan, plus ich weiß sehr wenig über Assembler, die ein seltsames Problem zeigt, wenn Sie versuchen, es mit Clang zu bauen.

LLVM-Dokumentation Erwähnt dass "die meisten X86-Ziele" den integrierten LLVM-Assembler im Gegensatz zum System-Assembler verwenden; als möglichen Workaround würde ich gerne explizit den letzteren verwenden. Ich (gut, Google) haben nicht erfolgreich bei der Suche nach Informationen, wie dies zu tun gewesen.

Pregunta: Gibt es eine Möglichkeit, Clang / LLVM zu bitten oder vielmehr zu erzwingen, den System-Assembler anstelle des integrierten zu verwenden?

(Ich weiß, dass ich jederzeit The Source™ lesen könnte, aber ich möchte wissen, ob es einen dokumentierten Ansatz gibt).

27voto

hermannloose Punkte 889

Es stellte sich heraus, dass ich dies in der Manpage völlig übersehen hatte:

-integrated-as -no-integrated-as

Wird verwendet, um die Verwendung des integrierten Assemblers zu aktivieren bzw. zu deaktivieren. Ob der integrierte Assembler standardmäßig aktiviert ist, hängt vom Ziel ab.

Um sie beim Aufruf des Compilers zu deaktivieren:

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

Oder:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X