Thread overview | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
August 18, 2006 AMD64 Linux | ||||
---|---|---|---|---|
| ||||
Does anyone have GDC working on an AMD64 linux system? I've tried both compiling with GCC manually, and the 0.19 i386 binary on the website, but neither work properly. When I use the i386 binary, compiling a simple test program gives me: /tmp/ccDMD2fb.s: Assembler messages: /tmp/ccDMD2fb.s:10: Error: suffix or operands invalid for `push' /tmp/ccDMD2fb.s:86: Error: suffix or operands invalid for `push' /tmp/ccDMD2fb.s:93: Error: suffix or operands invalid for `pop' As I recall, a similar error message occurs with my compiled version. $ gcc -v Reading specs from /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/specs Configured with: /var/tmp/portage/gcc-3.4.6-r1/work/gcc-3.4.6/configure --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/3.4.6 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.4.6 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.4.6/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.4.6/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/include/g++-v3 --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --disable-libunwind-exceptions --enable-multilib --disable-libgcj --enable-languages=c,c++,f77 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu Thread model: posix gcc version 3.4.6 (Gentoo 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9) $ uname -r 2.6.17-gentoo-r3 Any suggestions? Thanks -- ~John Demme me@teqdruid.com http://www.teqdruid.com/ |
August 19, 2006 Re: AMD64 Linux | ||||
---|---|---|---|---|
| ||||
Posted in reply to John Demme Attachments: | John Demme schrieb am 2006-08-18: > Does anyone have GDC working on an AMD64 linux system? Yes > I've tried both compiling with GCC manually, and the 0.19 i386 binary on the > website, but neither work properly. When I use the i386 binary, compiling > a simple test program gives me: > /tmp/ccDMD2fb.s: Assembler messages: > /tmp/ccDMD2fb.s:10: Error: suffix or operands invalid for `push' > /tmp/ccDMD2fb.s:86: Error: suffix or operands invalid for `push' > /tmp/ccDMD2fb.s:93: Error: suffix or operands invalid for `pop' I don't remember seeing those error messages. Did you try to add "-m32" to your command line? - From my adapted gdmd file: 123:my $gcc_version = `$gdc -m32 -dumpversion`; 128:my $target_machine = `$gdc -m32 -dumpmachine`; 291: my @cmd = ($gdc, '-m32', '--version', @out); 332: my @cmd = ($gdc, '-m32', '-I/opt/gdc/gdc-0.19/include/d/3.4.6/i386-unknown-linux/', @out, '-c', @all_sources_hack, $srcf, '-o', $outf ); 342: my @cmd = ($gdc, '-m32', '-L/usr/lib32', @out, @dobjects, @objects, @link_out); > $ gcc -v > Reading specs from /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/specs > Configured > with: /var/tmp/portage/gcc-3.4.6-r1/work/gcc-3.4.6/configure --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/3.4.6 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.4.6 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.4.6/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.4.6/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/include/g++-v3 --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --disable-libunwind-exceptions --enable-multilib --disable-libgcj --enable-languages=c,c++,f77 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu > Thread model: posix > gcc version 3.4.6 (Gentoo 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9) Reading specs from /opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/specs Configured with: ./configure --prefix=/opt/gdc/gdc-0.19 --enable-languages=c,d --enable-checking=misc,tree,gc,rtl,rtlflag,fold,gcac Thread model: posix gcc version 3.4.6 (Gentoo Hardened 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9) (gdc 0.19, using dmd 0.162) (You'll have to disable checking if you are going to build GPhobos.) > $ uname -r > 2.6.17-gentoo-r3 2.6.16-hardened-r10 Thomas |
August 21, 2006 Re: AMD64 Linux | ||||
---|---|---|---|---|
| ||||
Posted in reply to Thomas Kuehne | Thomas Kuehne wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > John Demme schrieb am 2006-08-18: >> Does anyone have GDC working on an AMD64 linux system? > > Yes > >> I've tried both compiling with GCC manually, and the 0.19 i386 binary on >> the >> website, but neither work properly. When I use the i386 binary, >> compiling a simple test program gives me: >> /tmp/ccDMD2fb.s: Assembler messages: >> /tmp/ccDMD2fb.s:10: Error: suffix or operands invalid for `push' >> /tmp/ccDMD2fb.s:86: Error: suffix or operands invalid for `push' >> /tmp/ccDMD2fb.s:93: Error: suffix or operands invalid for `pop' > > I don't remember seeing those error messages. > > Did you try to add "-m32" to your command line? > > - From my adapted gdmd file: > 123:my $gcc_version = `$gdc -m32 -dumpversion`; > 128:my $target_machine = `$gdc -m32 -dumpmachine`; > 291: my @cmd = ($gdc, '-m32', '--version', @out); > 332: my @cmd = ($gdc, '-m32', > '-I/opt/gdc/gdc-0.19/include/d/3.4.6/i386-unknown-linux/', @out, '-c', > @all_sources_hack, $srcf, '-o', $outf ); > 342: my @cmd = ($gdc, '-m32', '-L/usr/lib32', @out, @dobjects, > @objects, @link_out); > >> $ gcc -v >> Reading specs from /usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/specs >> Configured >> with: /var/tmp/portage/gcc-3.4.6-r1/work/gcc-3.4.6/configure >> --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/3.4.6 >> --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/include >> --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.4.6 >> --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.4.6/man >> --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.4.6/info >> --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.6/include/g++-v3 >> --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec >> --enable-nls --without-included-gettext --with-system-zlib >> --disable-checking --disable-werror --disable-libunwind-exceptions >> --enable-multilib --disable-libgcj --enable-languages=c,c++,f77 >> --enable-shared --enable-threads=posix --enable-__cxa_atexit >> --enable-clocale=gnu Thread model: posix gcc version 3.4.6 (Gentoo >> 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9) > > Reading specs from /opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/specs Configured with: ./configure --prefix=/opt/gdc/gdc-0.19 --enable-languages=c,d --enable-checking=misc,tree,gc,rtl,rtlflag,fold,gcac Thread model: posix gcc version 3.4.6 (Gentoo Hardened 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9) (gdc 0.19, using dmd 0.162) > > (You'll have to disable checking if you are going to build GPhobos.) > >> $ uname -r >> 2.6.17-gentoo-r3 > > 2.6.16-hardened-r10 > > Thomas > > > -----BEGIN PGP SIGNATURE----- > > iD8DBQFE5rhELK5blCcjpWoRAstGAJ4iKij6P1BU/CCU6Bw6TFgAZuai0ACgl/Es > O5JqypXbautwa9qEv9+n2C4= > =YAKA > -----END PGP SIGNATURE----- I had forgotten -m32, but didn't help... Thanks for the gdmd tweaks, but still no luck with either modded gdmd or gdc. -- ~John Demme me@teqdruid.com http://www.teqdruid.com/ |
August 22, 2006 Re: AMD64 Linux | ||||
---|---|---|---|---|
| ||||
Posted in reply to John Demme Attachments: | John Demme schrieb am 2006-08-21: >>> I've tried both compiling with GCC manually, and the 0.19 i386 binary on >>> the >>> website, but neither work properly. When I use the i386 binary, >>> compiling a simple test program gives me: >>> /tmp/ccDMD2fb.s: Assembler messages: >>> /tmp/ccDMD2fb.s:10: Error: suffix or operands invalid for `push' >>> /tmp/ccDMD2fb.s:86: Error: suffix or operands invalid for `push' >>> /tmp/ccDMD2fb.s:93: Error: suffix or operands invalid for `pop' > I had forgotten -m32, but didn't help... Let's have a look at the offending file: gdc -m32 -save-temps -c sample.d This should generate a sample.s, where the lines 10, 86 and 93 are looking strange. Thomas |
August 24, 2006 Re: AMD64 Linux | ||||
---|---|---|---|---|
| ||||
Posted in reply to Thomas Kuehne | Thomas Kuehne wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > John Demme schrieb am 2006-08-21: >>>> I've tried both compiling with GCC manually, and the 0.19 i386 binary >>>> on the >>>> website, but neither work properly. When I use the i386 binary, >>>> compiling a simple test program gives me: >>>> /tmp/ccDMD2fb.s: Assembler messages: >>>> /tmp/ccDMD2fb.s:10: Error: suffix or operands invalid for `push' >>>> /tmp/ccDMD2fb.s:86: Error: suffix or operands invalid for `push' >>>> /tmp/ccDMD2fb.s:93: Error: suffix or operands invalid for `pop' > >> I had forgotten -m32, but didn't help... > > Let's have a look at the offending file: > > gdc -m32 -save-temps -c sample.d > > This should generate a sample.s, where the lines 10, 86 and 93 are looking strange. > > Thomas > > > -----BEGIN PGP SIGNATURE----- > > iD8DBQFE6qaBLK5blCcjpWoRAixTAJ4/2lSjaRdUD7OoS9ZeurHUkCJWWwCfUHv+ > sdhBEn3dVdsOppMloZv5D3E= > =fWVm > -----END PGP SIGNATURE----- Thanks for your help... sorry I'm not responding quicker- I haven't had much time to devote to this issue. Here are the results. They don't mean much to me- I haven't bothered learning x86 assembly yet. teqdruid@home ~/temp $ /user/gdc/bin/gdc -m32 -save-temps -c test.d test.s: Assembler messages: test.s:10: Error: suffix or operands invalid for `push' test.s:86: Error: suffix or operands invalid for `push' test.s:93: Error: suffix or operands invalid for `pop' teqdruid@home ~/temp $ cat test.s .file "test.d" .section .rodata .LC0: .string "Hello" .text .globl _Dmain .type _Dmain, @function _Dmain: .LFB2: pushl %ebp .LCFI0: movl %esp, %ebp .LCFI1: subl $40, %esp .LCFI2: andl $-16, %esp movl $0, %eax addl $15, %eax addl $15, %eax shrl $4, %eax sall $4, %eax subl %eax, %esp movl $5, -16(%ebp) movl $.LC0, -12(%ebp) movl -12(%ebp), %edx movl $5, -8(%ebp) movl $.LC0, -4(%ebp) movl -8(%ebp), %eax movl %edx, 12(%esp) movl %eax, 8(%esp) movl _arguments_Aa, %eax movl _arguments_Aa+4, %edx movl %eax, (%esp) movl %edx, 4(%esp) call _D3std5stdio8writeflnFYv movl $0, %eax leave ret .LFE2: .size _Dmain, .-_Dmain .data .type ___s.764, @object .size ___s.764, 4 ___s.764: .long _init_11TypeInfo_Aa .weak _arguments_Aa .section .gnu.linkonce.d._arguments_Aa,"awG",@progbits,_arguments_Aa,comdat .align 4 .type _arguments_Aa, @object .size _arguments_Aa, 8 _arguments_Aa: .long 1 .long ___s.764 .globl _ModuleInfo_4test .section .rodata .LC1: .string "test" .data .align 4 .type _ModuleInfo_4test, @object .size _ModuleInfo_4test, 8 _ModuleInfo_4test: .long 0 .long 0 .long 4 .long .LC1 .long 1 .long _ModuleInfo_4test+48 .long 0 .long 0 .long 0 .long 0 .long 0 .long 0 .long _ModuleInfo_3std5stdio .align 4 .type __mod_ref.782, @object .size __mod_ref.782, 8 __mod_ref.782: .long 0 .long _ModuleInfo_4test .text .type ___modinit4test, @function ___modinit4test: .LFB3: pushl %ebp .LCFI3: movl %esp, %ebp .LCFI4: movl _Dmodule_ref, %eax movl %eax, __mod_ref.782 movl $__mod_ref.782, _Dmodule_ref popl %ebp ret .LFE3: .size ___modinit4test, .-___modinit4test .section .ctors,"aw",@progbits .align 4 .long ___modinit4test .section .eh_frame,"a",@progbits .Lframe1: .long .LECIE1-.LSCIE1 .LSCIE1: .long 0x0 .byte 0x1 .string "zP" .uleb128 0x1 .sleb128 -4 .byte 0x8 .uleb128 0x5 .byte 0x0 .long __gdc_personality_v0 .byte 0xc .uleb128 0x4 .uleb128 0x4 .byte 0x88 .uleb128 0x1 .align 4 .LECIE1: .LSFDE1: .long .LEFDE1-.LASFDE1 .LASFDE1: .long .LASFDE1-.Lframe1 .long .LFB2 .long .LFE2-.LFB2 .uleb128 0x0 .byte 0x4 .long .LCFI0-.LFB2 .byte 0xe .uleb128 0x8 .byte 0x85 .uleb128 0x2 .byte 0x4 .long .LCFI1-.LCFI0 .byte 0xd .uleb128 0x5 .align 4 .LEFDE1: .ident "GCC: (GNU) 4.0.3 (gdc 0.19, using dmd 0.162)" .section .note.GNU-stack,"",@progbits teqdruid@home ~/temp $ cat test.d import std.stdio; void main() { writefln("Hello"); } -- ~John Demme me@teqdruid.com http://www.teqdruid.com/ |
August 24, 2006 Re: AMD64 Linux | ||||
---|---|---|---|---|
| ||||
Posted in reply to John Demme Attachments: | John Demme schrieb am 2006-08-24: > Thanks for your help... sorry I'm not responding quicker- I haven't had much time to devote to this issue. Here are the results. They don't mean much to me- I haven't bothered learning x86 assembly yet. > > teqdruid@home ~/temp $ /user/gdc/bin/gdc -m32 -save-temps -c test.d > test.s: Assembler messages: > test.s:10: Error: suffix or operands invalid for `push' > test.s:86: Error: suffix or operands invalid for `push' > test.s:93: Error: suffix or operands invalid for `pop' > teqdruid@home ~/temp $ cat test.s > pushl %ebp > pushl %ebp > popl %ebp It seems like the -m32 has been lost in the tool chain. test.s is 32bit but the compiler seems to use the 64bit assembly driver... # # gdc -v -m32 test.s -o test -lm -lgcc -lpthread -lgphobos -L/where/ever/gphobos/is # ./test # > Hello # The above should succeed and print: # # Reading specs from /opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/specs # Reading specs from /lib/libgphobos.spec # rename spec lib to liborig # Configured with: ./configure --prefix=/opt/gdc/gdc-0.19 --enable-languages=c,d --enable-checking=misc,tree,gc,rtl,rtlflag,fold,gcac # Thread model: posix # gcc version 3.4.6 (Gentoo Hardened 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9) (gdc 0.19, using dmd 0.162) # as -V -Qy --32 -o /tmp/ccQi0vUU.o a.s # GNU assembler version 2.16.1 (x86_64-pc-linux-gnu) using BFD version 2.16.1 # /opt/gdc/gdc-0.19/libexec/gcc/x86_64-unknown-linux-gnu/3.4.6/collect2 --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -pie -z relro -z now -o test /usr/lib/../lib32/Scrt1.o /usr/lib/../lib32/crti.o /opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/32/crtbeginS.o -L/where/ever/gphobos/is -L/opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/32 -L/opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6 -L/opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/../../../../lib32 -L/opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/../../.. -L/lib/../lib32 -L/usr/lib/../lib32 /tmp/ccQi0vUU.o -lgcc -lpthread -lgphobos -lgphobos -lm -lgcc_s_32 -lgcc -lm -lpthread -lc -lgcc_s_32 -lgcc /opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/32/crtendS.o /usr/lib/../lib32/crtn.o # If that fails - most likely the "--32" in the "as" line is missing - it is a GDC bug. The following should always succeed: # # gcc -v -m32 test.s -o test -lm -lgcc -lpthread -lgphobos -L/where/ever/gphobos/is # ./test # > Hello # Thomas |
August 24, 2006 Re: AMD64 Linux | ||||
---|---|---|---|---|
| ||||
Posted in reply to Thomas Kuehne | Thomas Kuehne wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > It seems like the -m32 has been lost in the tool chain. test.s is 32bit but the compiler seems to use the 64bit assembly driver... > > # > # gdc -v -m32 test.s -o test -lm -lgcc -lpthread -lgphobos > # -L/where/ever/gphobos/is ./test > # > Hello > # > > The above should succeed and print: > # > # Reading specs from > # /opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/specs Reading > # specs from /lib/libgphobos.spec rename spec lib to liborig > # Configured with: ./configure --prefix=/opt/gdc/gdc-0.19 > # --enable-languages=c,d > # --enable-checking=misc,tree,gc,rtl,rtlflag,fold,gcac Thread model: posix > # gcc version 3.4.6 (Gentoo Hardened 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9) > # (gdc 0.19, using dmd 0.162) > # as -V -Qy --32 -o /tmp/ccQi0vUU.o a.s > # GNU assembler version 2.16.1 (x86_64-pc-linux-gnu) using BFD version > # 2.16.1 > # /opt/gdc/gdc-0.19/libexec/gcc/x86_64-unknown-linux-gnu/3.4.6/collect2 > # --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -pie -z > # relro -z now -o test /usr/lib/../lib32/Scrt1.o /usr/lib/../lib32/crti.o > # /opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/32/crtbeginS.o > # -L/where/ever/gphobos/is > # -L/opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/32 > # -L/opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6 > # -L/opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/../../../../lib32 > # -L/opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/../../.. > # -L/lib/../lib32 -L/usr/lib/../lib32 /tmp/ccQi0vUU.o -lgcc -lpthread > # -lgphobos -lgphobos -lm -lgcc_s_32 -lgcc -lm -lpthread -lc -lgcc_s_32 > # -lgcc > # /opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/32/crtendS.o > # /usr/lib/../lib32/crtn.o > # > > If that fails - most likely the "--32" in the "as" line is missing - it is a GDC bug. > > The following should always succeed: > # > # gcc -v -m32 test.s -o test -lm -lgcc -lpthread -lgphobos > # -L/where/ever/gphobos/is ./test > # > Hello > # > > Thomas > > > -----BEGIN PGP SIGNATURE----- > > iD8DBQFE7axaLK5blCcjpWoRAn7eAJ0QaoZOeKGXgBsMZHGwdzwZ04TYtQCgl7TG > FGCHD7eIBgfLCht/xliwcXA= > =5eOt > -----END PGP SIGNATURE----- You are correct: the gdc -m32 -v was lacking the --32 on the as line. The direct GCC invocation worked correctly. Who is maintaining GDC these days that I might contact? Thanks a ton. -- ~John Demme me@teqdruid.com http://www.teqdruid.com/ |
August 24, 2006 Re: AMD64 Linux | ||||
---|---|---|---|---|
| ||||
Posted in reply to John Demme Attachments: | John Demme schrieb am 2006-08-24: > Thomas Kuehne wrote: > >> It seems like the -m32 has been lost in the tool chain. test.s is 32bit but the compiler seems to use the 64bit assembly driver... >> >> # >> # gdc -v -m32 test.s -o test -lm -lgcc -lpthread -lgphobos >> # -L/where/ever/gphobos/is ./test >> # > Hello >> # >> >> The above should succeed and print: >> # >> # Reading specs from >> # /opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/specs Reading >> # specs from /lib/libgphobos.spec rename spec lib to liborig >> # Configured with: ./configure --prefix=/opt/gdc/gdc-0.19 >> # --enable-languages=c,d >> # --enable-checking=misc,tree,gc,rtl,rtlflag,fold,gcac Thread model: posix >> # gcc version 3.4.6 (Gentoo Hardened 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9) >> # (gdc 0.19, using dmd 0.162) >> # as -V -Qy --32 -o /tmp/ccQi0vUU.o a.s >> # GNU assembler version 2.16.1 (x86_64-pc-linux-gnu) using BFD version >> # 2.16.1 >> # /opt/gdc/gdc-0.19/libexec/gcc/x86_64-unknown-linux-gnu/3.4.6/collect2 >> # --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -pie -z >> # relro -z now -o test /usr/lib/../lib32/Scrt1.o /usr/lib/../lib32/crti.o >> # /opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/32/crtbeginS.o >> # -L/where/ever/gphobos/is >> # -L/opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/32 >> # -L/opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6 >> # -L/opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/../../../../lib32 >> # -L/opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/../../.. >> # -L/lib/../lib32 -L/usr/lib/../lib32 /tmp/ccQi0vUU.o -lgcc -lpthread >> # -lgphobos -lgphobos -lm -lgcc_s_32 -lgcc -lm -lpthread -lc -lgcc_s_32 >> # -lgcc >> # /opt/gdc/gdc-0.19/lib/gcc/x86_64-unknown-linux-gnu/3.4.6/32/crtendS.o >> # /usr/lib/../lib32/crtn.o >> # >> >> If that fails - most likely the "--32" in the "as" line is missing - it is a GDC bug. >> >> The following should always succeed: >> # >> # gcc -v -m32 test.s -o test -lm -lgcc -lpthread -lgphobos >> # -L/where/ever/gphobos/is ./test >> # > Hello >> # > You are correct: the gdc -m32 -v was lacking the --32 on the as line. The direct GCC invocation worked correctly. Try: # # gdc -m32 -Wa,--32 test.d # > Who is maintaining GDC these days that I might contact? Please use the usuall bugzilla. Thomas |
December 09, 2006 Re: AMD64 Linux | ||||
---|---|---|---|---|
| ||||
Posted in reply to Thomas Kuehne | Hi Guys, Not sure if this is still actual, but one solution is to invoke gdmd like this: setarch i386 gdmd a.d ... etc (I am working with a couple of test cases John sent me the other day to study the interoperability of D and the Zero Debugger and ran into the same issue -- setarch seems to help the compiler driver to pick the correct toolchain) Cheers, Cristian |
Copyright © 1999-2021 by the D Language Foundation