2012-06-20 14 views
12

Ho un progetto che implica assemblaggio scritto a mano: la sintassi AT &, funziona bene con GCC, ma non è stato eseguito da me e so molto poco dell'assemblaggio, che mostra un problema strano quando si tenta di crearlo con Clang.Come disattivare l'assemblatore integrato di LLVM?

Documentazione LLVM mentions che "la maggior parte degli obiettivi X86" utilizza l'assemblatore integrato di LLVM in contrapposizione all'assemblatore di sistema; come possibile soluzione, vorrei utilizzare esplicitamente quest'ultimo. Io (beh, Google) non ho avuto successo nel trovare informazioni su come farlo.

Domanda: C'è un modo per chiedere o piuttosto forzare Clang/LLVM a utilizzare l'assemblatore di sistema anziché quello integrato?

(So che potrei andare a leggere The Source ™ sempre, ma voglio sapere se c'è un approccio documentato.)

risposta

20

Risulta ho completamente perso questo nella pagina man:

-integrated-as-no-integrated-as

Utilizzato per abilitare e disabilitare, rispettivamente, l'uso dell'assemblatore integrato. Se l'assemblatore integrato è attivo per impostazione predefinita dipende dall'obiettivo.

Per disabilitarla in compilatore invocazione:

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

Oppure:

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