Thread overview
64 bit linux
Apr 11, 2007
Funog
Apr 11, 2007
Frits van Bommel
Apr 11, 2007
Johan Granberg
Apr 11, 2007
Frits van Bommel
April 11, 2007
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?

April 11, 2007
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)
April 11, 2007
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 :)
April 11, 2007
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 :
>>>
[snip errors]
>>>
>>> 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 :)

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