के साथ 32-बिट बनाएं मेरे पास llvm-gcc का 64-बिट संस्करण है, लेकिन मैं 32-बिट और 64-बिट दोनों बाइनरी बनाने में सक्षम होना चाहता हूं। क्या इसके लिए कोई झंडा है? मैं -m32 (जो नियमित रूप से जीसीसी पर काम करता है) गुजर कोशिश की, लेकिन मैं इस तरह एक त्रुटि संदेश मिलता है:64-बिट llvm-gcc
[[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'
...
यह पीछे की ओर है; मैं 64-बिट प्रोसेसर के लिए 32-बिट कोड जेनरेट करना चाहता हूं!
मैं llvm-gcc 4.2 चला रहा हूं, जो उबंटू 9.04 x86-64 के साथ आता है।
संपादित करें: यहाँ जब मैं -v ध्वज के साथ LLVM-जीसीसी चलाने उत्पादन के प्रासंगिक हिस्सा है:
[[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
मैं में देखा/usr/lib/LLVM/gcc- 4.2/libexec/gcc एक और बाइनरी खोजने की उम्मीद कर रहा है, लेकिन एकमात्र निर्देशिका x86_64-linux-gnu है। मैं संभवतः अगले विकल्पों के साथ स्रोत से llvm-gcc संकलित करने पर विचार करूंगा।
आपको जो त्रुटि संदेश मिल रहा है वह वास्तव में अजीब है; क्या आप -v के साथ संकलित कर सकते हैं और पूर्ण तर्क सूची पोस्ट कर सकते हैं जो llvm-gcc वास्तव में उपयोग कर रहा है? –
वर्बोज आउटपुट के साथ अपडेट किया गया। –