www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - 64 bit linux

reply Funog <funog ifrance.com> writes:
I am using SimplyMEPIS 6.5 64 bit linux. DMD used to work fine with previous 32
bit versions of SimplyMepis, but now linking would not work. A hello world (
void main(char[][] args){printf("Hello\r\n");}) gives :

funog 1[ircw]$ dmd hello.d
gcc hello.o -o hello -m32 -lphobos -lpthread -lm -Xlinker
-L/home/funog/dmd/bin/../lib
/usr/bin/ld: skipping incompatible
/usr/lib/gcc/x86_64-linux-gnu/4.0.3/../../../libpthread.so when searching for
-lpthread
/usr/bin/ld: skipping incompatible
/usr/lib/gcc/x86_64-linux-gnu/4.0.3/../../../libpthread.a when searching for
-lpthread
/usr/bin/ld: skipping incompatible /usr/bin/../lib/libpthread.so when searching
for -lpthread
/usr/bin/ld: skipping incompatible /usr/bin/../lib/libpthread.a when searching
for -lpthread
/usr/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for
-lpthread
/usr/bin/ld: skipping incompatible /usr/lib/libpthread.a when searching for
-lpthread
/usr/bin/ld: cannot find -lpthread
collect2: ld returned 1 exit status
--- errorlevel 1

I am not very good at linux... Is there a way to correct this problem, or will
DMD just do not work on my distro?
Apr 11 2007
parent reply Frits van Bommel <fvbommel REMwOVExCAPSs.nl> writes:
Funog wrote:
 I am using SimplyMEPIS 6.5 64 bit linux. DMD used to work fine with previous
32 bit versions of SimplyMepis, but now linking would not work. A hello world (
void main(char[][] args){printf("Hello\r\n");}) gives :
 
 funog 1[ircw]$ dmd hello.d
 gcc hello.o -o hello -m32 -lphobos -lpthread -lm -Xlinker
-L/home/funog/dmd/bin/../lib
 /usr/bin/ld: skipping incompatible
/usr/lib/gcc/x86_64-linux-gnu/4.0.3/../../../libpthread.so when searching for
-lpthread
 /usr/bin/ld: skipping incompatible
/usr/lib/gcc/x86_64-linux-gnu/4.0.3/../../../libpthread.a when searching for
-lpthread
 /usr/bin/ld: skipping incompatible /usr/bin/../lib/libpthread.so when
searching for -lpthread
 /usr/bin/ld: skipping incompatible /usr/bin/../lib/libpthread.a when searching
for -lpthread
 /usr/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for
-lpthread
 /usr/bin/ld: skipping incompatible /usr/lib/libpthread.a when searching for
-lpthread
 /usr/bin/ld: cannot find -lpthread
 collect2: ld returned 1 exit status
 --- errorlevel 1
 
 I am not very good at linux... Is there a way to correct this problem, or will
DMD just do not work on my distro?

The problem is that the libraries it finds are 64-bit, so they don't link with 32-bit applications. I had a similar problem on 64-bit Ubuntu. I worked around it by running DMD in a 32-bit chroot. It's not ideal but it works... (If anyone has a better solution, I'd love to hear it)
Apr 11 2007
parent reply Johan Granberg <lijat.meREM OVEgmail.com> writes:
Frits van Bommel wrote:

 Funog wrote:
 I am using SimplyMEPIS 6.5 64 bit linux. DMD used to work fine with
 previous 32 bit versions of SimplyMepis, but now linking would not work.
 A hello world ( void main(char[][] args){printf("Hello\r\n");}) gives :
 
 funog 1[ircw]$ dmd hello.d
 gcc hello.o -o hello -m32 -lphobos -lpthread -lm -Xlinker
 -L/home/funog/dmd/bin/../lib /usr/bin/ld: skipping incompatible
 /usr/lib/gcc/x86_64-linux-gnu/4.0.3/../../../libpthread.so when searching
 for -lpthread /usr/bin/ld: skipping incompatible
 /usr/lib/gcc/x86_64-linux-gnu/4.0.3/../../../libpthread.a when searching
 for -lpthread /usr/bin/ld: skipping incompatible
 /usr/bin/../lib/libpthread.so when searching for -lpthread /usr/bin/ld:
 skipping incompatible /usr/bin/../lib/libpthread.a when searching for
 -lpthread /usr/bin/ld: skipping incompatible /usr/lib/libpthread.so when
 searching for -lpthread /usr/bin/ld: skipping incompatible
 /usr/lib/libpthread.a when searching for -lpthread /usr/bin/ld: cannot
 find -lpthread collect2: ld returned 1 exit status --- errorlevel 1
 
 I am not very good at linux... Is there a way to correct this problem, or
 will DMD just do not work on my distro?

The problem is that the libraries it finds are 64-bit, so they don't link with 32-bit applications. I had a similar problem on 64-bit Ubuntu. I worked around it by running DMD in a 32-bit chroot. It's not ideal but it works... (If anyone has a better solution, I'd love to hear it)

You could try to use gdc instead of dmd, gdc has 64 bit support so 64 bit libraries wont be a problem :)
Apr 11 2007
parent Frits van Bommel <fvbommel REMwOVExCAPSs.nl> writes:
Johan Granberg wrote:
 Frits van Bommel wrote:
 
 Funog wrote:
 I am using SimplyMEPIS 6.5 64 bit linux. DMD used to work fine with
 previous 32 bit versions of SimplyMepis, but now linking would not work.
 A hello world ( void main(char[][] args){printf("Hello\r\n");}) gives :



 I am not very good at linux... Is there a way to correct this problem, or
 will DMD just do not work on my distro?

link with 32-bit applications. I had a similar problem on 64-bit Ubuntu. I worked around it by running DMD in a 32-bit chroot. It's not ideal but it works... (If anyone has a better solution, I'd love to hear it)

You could try to use gdc instead of dmd, gdc has 64 bit support so 64 bit libraries wont be a problem :)

Well, I did that too, I have both installed ;).
Apr 11 2007