Erstellen Sie 32-Bit mit 64-Bit-llvm-gcc

Ich habe eine 64-Bit-Version von llvm-gcc, möchte aber sowohl 32-Bit- als auch 64-Bit-Binärdateien erstellen können. Gibt es dafür eine Flagge? Ich habe versucht, -m32 zu übergeben (was auf dem regulären gcc funktioniert), aber ich erhalte eine Fehlermeldung wie diese:

[jay@andesite]$ 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'
...

Das ist rückwärts; Ich möchte 32-Bit-Code für einen 64-Bit-Prozessor generieren!

Ich verwende llvm-gcc 4.2, das mit Ubuntu 9.04 x86-64 geliefert wird.

BEARBEITEN: Hier ist der relevante Teil der Ausgabe, wenn ich llvm-gcc mit dem Flag -v ausführe:

[jay@andesite]$ 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

Ich habe in /usr/lib/llvm/gcc-4.2/libexec/gcc nach einer anderen Binärdatei gesucht, aber das einzige Verzeichnis ist x86_64-linux-gnu. Ich werde mich wahrscheinlich als nächstes mit dem Kompilieren von llvm-gcc aus dem Quellcode mit den entsprechenden Optionen befassen.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage