J'ai une version 64 bits de llvm-gcc, mais je veux être capable de construire des binaires 32 bits et 64 bits. Y a-t-il un drapeau pour ça? J'ai essayé passer -m32 (qui fonctionne sur le gcc), mais je reçois un message d'erreur comme ceci:Construire 32 bits avec llvm-gcc 64 bits
[[email protected]]$ llvm-gcc -m32 test.c -o test
Warning: Generation of 64-bit code for a 32-bit processor requested.
Warning: 64-bit processors all have at least SSE2.
/tmp/cchzYo9t.s: Assembler messages:
/tmp/cchzYo9t.s:8: Error: bad register name `%rbp'
/tmp/cchzYo9t.s:9: Error: bad register name `%rsp'
...
C'est en arrière; Je veux générer du code 32 bits pour un processeur 64 bits!
Je cours llvm-gcc 4.2, celui qui vient avec Ubuntu 9.04 x86-64.
EDIT: Voici la partie pertinente de la sortie lorsque je lance LLVM-gcc avec le drapeau -v:
[[email protected]]$ llvm-gcc -v -m32 test.c -o test.bc
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../llvm-gcc4.2-2.2.source/configure --host=x86_64-linux-gnu --build=x86_64-linux-gnu --prefix=/usr/lib/llvm/gcc-4.2 --enable-languages=c,c++ --program-prefix=llvm- --enable-llvm=/usr/lib/llvm --enable-threads --disable-nls --disable-shared --disable-multilib --disable-bootstrap
Thread model: posix
gcc version 4.2.1 (Based on Apple Inc. build 5546) (LLVM build)
/usr/lib/llvm/gcc-4.2/libexec/gcc/x86_64-linux-gnu/4.2.1/cc1 -quiet -v -imultilib . test.c -quiet -dumpbase test.c -m32 -mtune=generic -auxbase test -version -o /tmp/ccw6TZY6.s
J'ai regardé dans/usr/lib/LLVM/GCC- 4.2/libexec/gcc espérant trouver un autre binaire, mais le seul répertoire est x86_64-linux-gnu. Je vais probablement regarder la compilation de llvm-gcc depuis la source avec les options appropriées ensuite.
Le message d'erreur que vous obtenez est vraiment étrange; pouvez-vous compiler avec -v et afficher la liste complète des arguments utilisés par llvm-gcc? –
Mis à jour avec la sortie détaillée. –