Why ldc-1.20.1 is always building runtime to x86_64 even when I'm running an i686 linux?

dangbinghoo dangbinghoo at gmail.com
Fri Apr 17 09:32:32 UTC 2020


hi there,

I have tried to building LDC 1.20.1 from src for ubuntu 14.04 
i686 system. But got trouble in the building step, it seems that 
it always trying to building runtime for  x86_64 target, no 
matter what kind of D compiler is using, I have tried with 
ldc2-1.2.0-linux-x86 or the latest dmd 2.091.0-0_i386.

I also tried to using the cross-compiling style to build runtime 
adding `mtrip=i686-linux-gnu`, but the final ldc2 failed to link 
when building a simple empty D source file saying

```
/usr/bin/i686-linux-gnu-ld.gold: error: 
/usr/lib/gcc/i686-linux-gnu/6/crtbegin.o: incompatible target
/usr/bin/i686-linux-gnu-ld.gold: error: 
/usr/lib/gcc/i686-linux-gnu/6/crtend.o: incompatible target
/usr/bin/i686-linux-gnu-ld.gold: warning: skipping incompatible 
/home/chiot/ldctool/ldc2-tmp/bin/../lib/libdruntime-ldc.a while 
searching for druntime-ldc
/usr/bin/i686-linux-gnu-ld.gold: error: cannot find -ldruntime-ldc
/usr/bin/i686-linux-gnu-ld.gold: warning: skipping incompatible 
/usr/lib/gcc/i686-linux-gnu/6/libgcc_s.so.1 while searching for 
libgcc_s.so.1
/usr/bin/i686-linux-gnu-ld.gold: warning: skipping incompatible 
/usr/lib/gcc/i686-linux-gnu/6/libgcc_s.so.1 while searching for 
libgcc_s.so.1
/usr/lib/gcc/i686-linux-gnu/6/../../../../lib64/crt1.o(.text+0x20): error: undefined reference to 'main'
xx.o:xx.d:function ldc.register_dso: error: undefined reference 
to '_d_dso_registry'
collect2: error: ld returned 1 exit status
Error: /usr/bin/cc failed with status: 1

```

so, the ldc2 now is sticking to x86_64 for PC now?

Thanks!

~~~~~
binghoo dang



More information about the digitalmars-d-ldc mailing list