October 15, 2012
Hello All,

I have been looking at D off and on for several years. Initially I worked through a very painful experience to get D compiling on Linux. After that experience, I concluded that I should wait for it to become more mature. Since then, I do a very simple test. I install the latest package and try to build "Hello World". I figure that if "Hello World" builds successfully, I will continue further. I have just downloaded the latest .deb package and installed it on Ubuntu 12.04 32bit. Once again it fails this incredibly simple test. I've read many discussions about how/why, has/hasn't, will/won't D hit the mainstream in programming languages. I think this situation may offer at least one data point. I'm struggling to think of any other language (and I use several) that won't build code out of the box. D seems to have a lot of potential, but this needs to be fixed. I am not asking for help on this. I honestly don't care what the solution is. I just wanted the D developers to know why at least one developer is not using the language. I sincerely hope that the situation will improve. I'm looking forward to programming in D.

Thanks for your time,
-G



Here is the code:

import std.stdio;


void main()
{
  writeln("Hello, world!");
}

Here is the command:

dmd hello.d

Here is the output:

/usr/lib/i386-linux-gnu/libphobos2.a(dmain2_459_1a5.o): In function `_D2rt6dmain24mainUiPPaZi7runMainMFZv':
src/rt/dmain2.d:(.text._D2rt6dmain24mainUiPPaZi7runMainMFZv+0x10): undefined reference to `_Dmain'
/usr/lib/i386-linux-gnu/libphobos2.a(thread_18f_1b8.o): In function `_D4core6thread6Thread6__ctorMFZC4core6thread6Thread':
src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFZC4core6thread6Thread+0x1d): undefined reference to `_tlsend'
src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFZC4core6thread6Thread+0x24): undefined reference to `_tlsstart'
/usr/lib/i386-linux-gnu/libphobos2.a(thread_19f_6e4.o): In function `thread_attachThis':
src/core/thread.d:(.text.thread_attachThis+0xb7): undefined reference to `_tlsstart'
src/core/thread.d:(.text.thread_attachThis+0xbc): undefined reference to `_tlsend'
/usr/lib/i386-linux-gnu/libphobos2.a(thread_17d_1b8.o): In function `_D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread':
src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread+0x1d): undefined reference to `_tlsend'
src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread+0x27): undefined reference to `_tlsstart'
/usr/lib/i386-linux-gnu/libphobos2.a(thread_17e_1b8.o): In function `_D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread':
src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread+0x1d): undefined reference to `_tlsend'
src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread+0x27): undefined reference to `_tlsstart'
/usr/lib/i386-linux-gnu/libphobos2.a(deh2_43b_525.o): In function `_D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable':
src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x4): undefined reference to `_deh_beg'
src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0xc): undefined reference to `_deh_beg'
src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x13): undefined reference to `_deh_end'
src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x36): undefined reference to `_deh_end'
/usr/lib/i386-linux-gnu/libphobos2.a(thread_17a_713.o): In function `thread_entryPoint':
src/core/thread.d:(.text.thread_entryPoint+0x64): undefined reference to `_tlsend'
src/core/thread.d:(.text.thread_entryPoint+0x6a): undefined reference to `_tlsstart'
collect2: ld returned 1 exit status
--- errorlevel 1



October 15, 2012
On 15-10-2012 05:10, Gerry Weaver wrote:
> Hello All,
>
> I have been looking at D off and on for several years. Initially I
> worked through a very painful experience to get D compiling on Linux.
> After that experience, I concluded that I should wait for it to become
> more mature. Since then, I do a very simple test. I install the latest
> package and try to build "Hello World". I figure that if "Hello World"
> builds successfully, I will continue further. I have just downloaded the
> latest .deb package and installed it on Ubuntu 12.04 32bit. Once again
> it fails this incredibly simple test. I've read many discussions about
> how/why, has/hasn't, will/won't D hit the mainstream in programming
> languages. I think this situation may offer at least one data point. I'm
> struggling to think of any other language (and I use several) that won't
> build code out of the box. D seems to have a lot of potential, but this
> needs to be fixed. I am not asking for help on this. I honestly don't
> care what the solution is. I just wanted the D developers to know why at
> least one developer is not using the language. I sincerely hope that the
> situation will improve. I'm looking forward to programming in D.
>
> Thanks for your time,
> -G
>
>
>
> Here is the code:
>
> import std.stdio;
>
>
> void main()
> {
>    writeln("Hello, world!");
> }
>
> Here is the command:
>
> dmd hello.d
>
> Here is the output:
>
> /usr/lib/i386-linux-gnu/libphobos2.a(dmain2_459_1a5.o): In function
> `_D2rt6dmain24mainUiPPaZi7runMainMFZv':
> src/rt/dmain2.d:(.text._D2rt6dmain24mainUiPPaZi7runMainMFZv+0x10):
> undefined reference to `_Dmain'
> /usr/lib/i386-linux-gnu/libphobos2.a(thread_18f_1b8.o): In function
> `_D4core6thread6Thread6__ctorMFZC4core6thread6Thread':
> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFZC4core6thread6Thread+0x1d):
> undefined reference to `_tlsend'
> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFZC4core6thread6Thread+0x24):
> undefined reference to `_tlsstart'
> /usr/lib/i386-linux-gnu/libphobos2.a(thread_19f_6e4.o): In function
> `thread_attachThis':
> src/core/thread.d:(.text.thread_attachThis+0xb7): undefined reference to
> `_tlsstart'
> src/core/thread.d:(.text.thread_attachThis+0xbc): undefined reference to
> `_tlsend'
> /usr/lib/i386-linux-gnu/libphobos2.a(thread_17d_1b8.o): In function
> `_D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread':
> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread+0x1d):
> undefined reference to `_tlsend'
> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread+0x27):
> undefined reference to `_tlsstart'
> /usr/lib/i386-linux-gnu/libphobos2.a(thread_17e_1b8.o): In function
> `_D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread':
> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread+0x1d):
> undefined reference to `_tlsend'
> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread+0x27):
> undefined reference to `_tlsstart'
> /usr/lib/i386-linux-gnu/libphobos2.a(deh2_43b_525.o): In function
> `_D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable':
> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x4):
> undefined reference to `_deh_beg'
> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0xc):
> undefined reference to `_deh_beg'
> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x13):
> undefined reference to `_deh_end'
> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x36):
> undefined reference to `_deh_end'
> /usr/lib/i386-linux-gnu/libphobos2.a(thread_17a_713.o): In function
> `thread_entryPoint':
> src/core/thread.d:(.text.thread_entryPoint+0x64): undefined reference to
> `_tlsend'
> src/core/thread.d:(.text.thread_entryPoint+0x6a): undefined reference to
> `_tlsstart'
> collect2: ld returned 1 exit status
> --- errorlevel 1
>
>
>

I really don't know what to tell you, because:

$ dmd -m32 test.d
$ dmd -m64 test.d
$ cat test.d
import std.stdio;

void main()
{
    writeln("Hello, world!");
}

It Works For Me (TM).

What package (URL please) did you install?

-- 
Alex Rønne Petersen
alex@lycus.org
http://lycus.org
October 15, 2012
On Monday, 15 October 2012 at 04:20:04 UTC, Alex Rønne Petersen wrote:
> On 15-10-2012 05:10, Gerry Weaver wrote:
>> Hello All,
>>
>> I have been looking at D off and on for several years. Initially I
>> worked through a very painful experience to get D compiling on Linux.
>> After that experience, I concluded that I should wait for it to become
>> more mature. Since then, I do a very simple test. I install the latest
>> package and try to build "Hello World". I figure that if "Hello World"
>> builds successfully, I will continue further. I have just downloaded the
>> latest .deb package and installed it on Ubuntu 12.04 32bit. Once again
>> it fails this incredibly simple test. I've read many discussions about
>> how/why, has/hasn't, will/won't D hit the mainstream in programming
>> languages. I think this situation may offer at least one data point. I'm
>> struggling to think of any other language (and I use several) that won't
>> build code out of the box. D seems to have a lot of potential, but this
>> needs to be fixed. I am not asking for help on this. I honestly don't
>> care what the solution is. I just wanted the D developers to know why at
>> least one developer is not using the language. I sincerely hope that the
>> situation will improve. I'm looking forward to programming in D.
>>
>> Thanks for your time,
>> -G
>>
>>
>>
>> Here is the code:
>>
>> import std.stdio;
>>
>>
>> void main()
>> {
>>   writeln("Hello, world!");
>> }
>>
>> Here is the command:
>>
>> dmd hello.d
>>
>> Here is the output:
>>
>> /usr/lib/i386-linux-gnu/libphobos2.a(dmain2_459_1a5.o): In function
>> `_D2rt6dmain24mainUiPPaZi7runMainMFZv':
>> src/rt/dmain2.d:(.text._D2rt6dmain24mainUiPPaZi7runMainMFZv+0x10):
>> undefined reference to `_Dmain'
>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_18f_1b8.o): In function
>> `_D4core6thread6Thread6__ctorMFZC4core6thread6Thread':
>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFZC4core6thread6Thread+0x1d):
>> undefined reference to `_tlsend'
>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFZC4core6thread6Thread+0x24):
>> undefined reference to `_tlsstart'
>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_19f_6e4.o): In function
>> `thread_attachThis':
>> src/core/thread.d:(.text.thread_attachThis+0xb7): undefined reference to
>> `_tlsstart'
>> src/core/thread.d:(.text.thread_attachThis+0xbc): undefined reference to
>> `_tlsend'
>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_17d_1b8.o): In function
>> `_D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread':
>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread+0x1d):
>> undefined reference to `_tlsend'
>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread+0x27):
>> undefined reference to `_tlsstart'
>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_17e_1b8.o): In function
>> `_D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread':
>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread+0x1d):
>> undefined reference to `_tlsend'
>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread+0x27):
>> undefined reference to `_tlsstart'
>> /usr/lib/i386-linux-gnu/libphobos2.a(deh2_43b_525.o): In function
>> `_D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable':
>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x4):
>> undefined reference to `_deh_beg'
>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0xc):
>> undefined reference to `_deh_beg'
>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x13):
>> undefined reference to `_deh_end'
>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x36):
>> undefined reference to `_deh_end'
>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_17a_713.o): In function
>> `thread_entryPoint':
>> src/core/thread.d:(.text.thread_entryPoint+0x64): undefined reference to
>> `_tlsend'
>> src/core/thread.d:(.text.thread_entryPoint+0x6a): undefined reference to
>> `_tlsstart'
>> collect2: ld returned 1 exit status
>> --- errorlevel 1
>>
>>
>>
>
> I really don't know what to tell you, because:
>
> $ dmd -m32 test.d
> $ dmd -m64 test.d
> $ cat test.d
> import std.stdio;
>
> void main()
> {
>     writeln("Hello, world!");
> }
>
> It Works For Me (TM).
>
> What package (URL please) did you install?

Hi,

I downloaded the package from dlang.org. The package was dmd_2.060-0_i386.deb. The install went fine. I have to admit that I was surprised there were issues this time around.

Thanks,
-G






October 15, 2012
On 15-10-2012 06:31, Gerry Weaver wrote:
> On Monday, 15 October 2012 at 04:20:04 UTC, Alex Rønne Petersen wrote:
>> On 15-10-2012 05:10, Gerry Weaver wrote:
>>> Hello All,
>>>
>>> I have been looking at D off and on for several years. Initially I
>>> worked through a very painful experience to get D compiling on Linux.
>>> After that experience, I concluded that I should wait for it to become
>>> more mature. Since then, I do a very simple test. I install the latest
>>> package and try to build "Hello World". I figure that if "Hello World"
>>> builds successfully, I will continue further. I have just downloaded the
>>> latest .deb package and installed it on Ubuntu 12.04 32bit. Once again
>>> it fails this incredibly simple test. I've read many discussions about
>>> how/why, has/hasn't, will/won't D hit the mainstream in programming
>>> languages. I think this situation may offer at least one data point. I'm
>>> struggling to think of any other language (and I use several) that won't
>>> build code out of the box. D seems to have a lot of potential, but this
>>> needs to be fixed. I am not asking for help on this. I honestly don't
>>> care what the solution is. I just wanted the D developers to know why at
>>> least one developer is not using the language. I sincerely hope that the
>>> situation will improve. I'm looking forward to programming in D.
>>>
>>> Thanks for your time,
>>> -G
>>>
>>>
>>>
>>> Here is the code:
>>>
>>> import std.stdio;
>>>
>>>
>>> void main()
>>> {
>>>   writeln("Hello, world!");
>>> }
>>>
>>> Here is the command:
>>>
>>> dmd hello.d
>>>
>>> Here is the output:
>>>
>>> /usr/lib/i386-linux-gnu/libphobos2.a(dmain2_459_1a5.o): In function
>>> `_D2rt6dmain24mainUiPPaZi7runMainMFZv':
>>> src/rt/dmain2.d:(.text._D2rt6dmain24mainUiPPaZi7runMainMFZv+0x10):
>>> undefined reference to `_Dmain'
>>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_18f_1b8.o): In function
>>> `_D4core6thread6Thread6__ctorMFZC4core6thread6Thread':
>>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFZC4core6thread6Thread+0x1d):
>>>
>>> undefined reference to `_tlsend'
>>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFZC4core6thread6Thread+0x24):
>>>
>>> undefined reference to `_tlsstart'
>>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_19f_6e4.o): In function
>>> `thread_attachThis':
>>> src/core/thread.d:(.text.thread_attachThis+0xb7): undefined reference to
>>> `_tlsstart'
>>> src/core/thread.d:(.text.thread_attachThis+0xbc): undefined reference to
>>> `_tlsend'
>>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_17d_1b8.o): In function
>>> `_D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread':
>>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread+0x1d):
>>>
>>> undefined reference to `_tlsend'
>>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread+0x27):
>>>
>>> undefined reference to `_tlsstart'
>>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_17e_1b8.o): In function
>>> `_D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread':
>>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread+0x1d):
>>>
>>> undefined reference to `_tlsend'
>>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread+0x27):
>>>
>>> undefined reference to `_tlsstart'
>>> /usr/lib/i386-linux-gnu/libphobos2.a(deh2_43b_525.o): In function
>>> `_D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable':
>>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x4):
>>>
>>> undefined reference to `_deh_beg'
>>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0xc):
>>>
>>> undefined reference to `_deh_beg'
>>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x13):
>>>
>>> undefined reference to `_deh_end'
>>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x36):
>>>
>>> undefined reference to `_deh_end'
>>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_17a_713.o): In function
>>> `thread_entryPoint':
>>> src/core/thread.d:(.text.thread_entryPoint+0x64): undefined reference to
>>> `_tlsend'
>>> src/core/thread.d:(.text.thread_entryPoint+0x6a): undefined reference to
>>> `_tlsstart'
>>> collect2: ld returned 1 exit status
>>> --- errorlevel 1
>>>
>>>
>>>
>>
>> I really don't know what to tell you, because:
>>
>> $ dmd -m32 test.d
>> $ dmd -m64 test.d
>> $ cat test.d
>> import std.stdio;
>>
>> void main()
>> {
>>     writeln("Hello, world!");
>> }
>>
>> It Works For Me (TM).
>>
>> What package (URL please) did you install?
>
> Hi,
>
> I downloaded the package from dlang.org. The package was
> dmd_2.060-0_i386.deb. The install went fine. I have to admit that I was
> surprised there were issues this time around.
>
> Thanks,
> -G
>
>
>
>
>
>

Would you happen to have an i386 Ubuntu system I could SSH into and have a look or something? I'm on amd64 over here which works OK with the amd64 package on dlang.org.

I suspect we generally have a relatively low 32-bit Linux user base these days...

-- 
Alex Rønne Petersen
alex@lycus.org
http://lycus.org
October 15, 2012
On Mon, Oct 15, 2012 at 06:20:03AM +0200, Alex Rønne Petersen wrote:
> On 15-10-2012 05:10, Gerry Weaver wrote:
[...]
> >dmd hello.d
> >
> >Here is the output:
> >
> >/usr/lib/i386-linux-gnu/libphobos2.a(dmain2_459_1a5.o): In function
> >`_D2rt6dmain24mainUiPPaZi7runMainMFZv':
> >src/rt/dmain2.d:(.text._D2rt6dmain24mainUiPPaZi7runMainMFZv+0x10):
> >undefined reference to `_Dmain'
> >/usr/lib/i386-linux-gnu/libphobos2.a(thread_18f_1b8.o): In function
> >`_D4core6thread6Thread6__ctorMFZC4core6thread6Thread':
> >src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFZC4core6thread6Thread+0x1d):
> >undefined reference to `_tlsend'
> >src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFZC4core6thread6Thread+0x24):
> >undefined reference to `_tlsstart'
> >/usr/lib/i386-linux-gnu/libphobos2.a(thread_19f_6e4.o): In function
> >`thread_attachThis':
> >src/core/thread.d:(.text.thread_attachThis+0xb7): undefined reference to
> >`_tlsstart'
> >src/core/thread.d:(.text.thread_attachThis+0xbc): undefined reference to
> >`_tlsend'
> >/usr/lib/i386-linux-gnu/libphobos2.a(thread_17d_1b8.o): In function
> >`_D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread':
> >src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread+0x1d):
> >undefined reference to `_tlsend'
> >src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread+0x27):
> >undefined reference to `_tlsstart'
> >/usr/lib/i386-linux-gnu/libphobos2.a(thread_17e_1b8.o): In function
> >`_D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread':
> >src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread+0x1d):
> >undefined reference to `_tlsend'
> >src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread+0x27):
> >undefined reference to `_tlsstart'
> >/usr/lib/i386-linux-gnu/libphobos2.a(deh2_43b_525.o): In function
> >`_D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable':
> >src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x4):
> >undefined reference to `_deh_beg'
> >src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0xc):
> >undefined reference to `_deh_beg'
> >src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x13):
> >undefined reference to `_deh_end'
> >src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x36):
> >undefined reference to `_deh_end'
> >/usr/lib/i386-linux-gnu/libphobos2.a(thread_17a_713.o): In function
> >`thread_entryPoint':
> >src/core/thread.d:(.text.thread_entryPoint+0x64): undefined reference to
> >`_tlsend'
> >src/core/thread.d:(.text.thread_entryPoint+0x6a): undefined reference to
> >`_tlsstart'
> >collect2: ld returned 1 exit status
> >--- errorlevel 1

This looks like what happens if you try to use the latest dmd release with an old version of Phobos, perhaps installed along with gdc.

Whoever's doing the .deb packaging really should add a versioned Depends: field to debian/control so that it will require installation of the correct version of Phobos, or, at the very least, refuse to install if such is not available.


[...]
> I really don't know what to tell you, because:
> 
> $ dmd -m32 test.d
> $ dmd -m64 test.d
> $ cat test.d
> import std.stdio;
> 
> void main()
> {
>     writeln("Hello, world!");
> }
> 
> It Works For Me (TM).
> 
> What package (URL please) did you install?
[...]

Yeah, if it's an outdated package, then it's kinda moot. (Though we really should remove outdated packages where we can, they can kinda become a fly in the soup sometimes.)


T

-- 
Tell me and I forget. Teach me and I remember. Involve me and I understand. -- Benjamin Franklin
October 15, 2012
On 15-10-2012 06:39, H. S. Teoh wrote:
> On Mon, Oct 15, 2012 at 06:20:03AM +0200, Alex Rønne Petersen wrote:
>> On 15-10-2012 05:10, Gerry Weaver wrote:
> [...]
>>> dmd hello.d
>>>
>>> Here is the output:
>>>
>>> /usr/lib/i386-linux-gnu/libphobos2.a(dmain2_459_1a5.o): In function
>>> `_D2rt6dmain24mainUiPPaZi7runMainMFZv':
>>> src/rt/dmain2.d:(.text._D2rt6dmain24mainUiPPaZi7runMainMFZv+0x10):
>>> undefined reference to `_Dmain'
>>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_18f_1b8.o): In function
>>> `_D4core6thread6Thread6__ctorMFZC4core6thread6Thread':
>>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFZC4core6thread6Thread+0x1d):
>>> undefined reference to `_tlsend'
>>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFZC4core6thread6Thread+0x24):
>>> undefined reference to `_tlsstart'
>>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_19f_6e4.o): In function
>>> `thread_attachThis':
>>> src/core/thread.d:(.text.thread_attachThis+0xb7): undefined reference to
>>> `_tlsstart'
>>> src/core/thread.d:(.text.thread_attachThis+0xbc): undefined reference to
>>> `_tlsend'
>>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_17d_1b8.o): In function
>>> `_D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread':
>>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread+0x1d):
>>> undefined reference to `_tlsend'
>>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread+0x27):
>>> undefined reference to `_tlsstart'
>>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_17e_1b8.o): In function
>>> `_D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread':
>>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread+0x1d):
>>> undefined reference to `_tlsend'
>>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread+0x27):
>>> undefined reference to `_tlsstart'
>>> /usr/lib/i386-linux-gnu/libphobos2.a(deh2_43b_525.o): In function
>>> `_D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable':
>>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x4):
>>> undefined reference to `_deh_beg'
>>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0xc):
>>> undefined reference to `_deh_beg'
>>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x13):
>>> undefined reference to `_deh_end'
>>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x36):
>>> undefined reference to `_deh_end'
>>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_17a_713.o): In function
>>> `thread_entryPoint':
>>> src/core/thread.d:(.text.thread_entryPoint+0x64): undefined reference to
>>> `_tlsend'
>>> src/core/thread.d:(.text.thread_entryPoint+0x6a): undefined reference to
>>> `_tlsstart'
>>> collect2: ld returned 1 exit status
>>> --- errorlevel 1
>
> This looks like what happens if you try to use the latest dmd release
> with an old version of Phobos, perhaps installed along with gdc.
>
> Whoever's doing the .deb packaging really should add a versioned
> Depends: field to debian/control so that it will require installation of
> the correct version of Phobos, or, at the very least, refuse to install
> if such is not available.

The thing about the DMD packages for Debian/Ubuntu is that they install DMD, Phobos/druntime, all D headers, and tools like rdmd and dman in one package.

>
>
> [...]
>> I really don't know what to tell you, because:
>>
>> $ dmd -m32 test.d
>> $ dmd -m64 test.d
>> $ cat test.d
>> import std.stdio;
>>
>> void main()
>> {
>>      writeln("Hello, world!");
>> }
>>
>> It Works For Me (TM).
>>
>> What package (URL please) did you install?
> [...]
>
> Yeah, if it's an outdated package, then it's kinda moot. (Though we
> really should remove outdated packages where we can, they can kinda
> become a fly in the soup sometimes.)
>
>
> T
>


-- 
Alex Rønne Petersen
alex@lycus.org
http://lycus.org
October 15, 2012
On Sunday, October 14, 2012 21:39:42 H. S. Teoh wrote:
> This looks like what happens if you try to use the latest dmd release with an old version of Phobos, perhaps installed along with gdc.
> 
> Whoever's doing the .deb packaging really should add a versioned Depends: field to debian/control so that it will require installation of the correct version of Phobos, or, at the very least, refuse to install if such is not available.

At this point, it's a bad idea to use any version of druntime or Phobos which doesn't match exactly with the version of dmd that you're using. It's not as bad as it used to be, but there are still plenty of cases where a language change (be it a bug fix or added feature or whatever) makes it so that older versions of Phobos won't compile, or the latest Phobos ends up needing the latest dmd. I wouldn't advise anyone to use versions of them that don't all match.

- Jonathan M Davis
October 15, 2012
On Monday, 15 October 2012 at 04:34:10 UTC, Alex Rønne Petersen wrote:
> On 15-10-2012 06:31, Gerry Weaver wrote:
>> On Monday, 15 October 2012 at 04:20:04 UTC, Alex Rønne Petersen wrote:
>>> On 15-10-2012 05:10, Gerry Weaver wrote:
>>>> Hello All,
>>>>
>>>> I have been looking at D off and on for several years. Initially I
>>>> worked through a very painful experience to get D compiling on Linux.
>>>> After that experience, I concluded that I should wait for it to become
>>>> more mature. Since then, I do a very simple test. I install the latest
>>>> package and try to build "Hello World". I figure that if "Hello World"
>>>> builds successfully, I will continue further. I have just downloaded the
>>>> latest .deb package and installed it on Ubuntu 12.04 32bit. Once again
>>>> it fails this incredibly simple test. I've read many discussions about
>>>> how/why, has/hasn't, will/won't D hit the mainstream in programming
>>>> languages. I think this situation may offer at least one data point. I'm
>>>> struggling to think of any other language (and I use several) that won't
>>>> build code out of the box. D seems to have a lot of potential, but this
>>>> needs to be fixed. I am not asking for help on this. I honestly don't
>>>> care what the solution is. I just wanted the D developers to know why at
>>>> least one developer is not using the language. I sincerely hope that the
>>>> situation will improve. I'm looking forward to programming in D.
>>>>
>>>> Thanks for your time,
>>>> -G
>>>>
>>>>
>>>>
>>>> Here is the code:
>>>>
>>>> import std.stdio;
>>>>
>>>>
>>>> void main()
>>>> {
>>>>  writeln("Hello, world!");
>>>> }
>>>>
>>>> Here is the command:
>>>>
>>>> dmd hello.d
>>>>
>>>> Here is the output:
>>>>
>>>> /usr/lib/i386-linux-gnu/libphobos2.a(dmain2_459_1a5.o): In function
>>>> `_D2rt6dmain24mainUiPPaZi7runMainMFZv':
>>>> src/rt/dmain2.d:(.text._D2rt6dmain24mainUiPPaZi7runMainMFZv+0x10):
>>>> undefined reference to `_Dmain'
>>>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_18f_1b8.o): In function
>>>> `_D4core6thread6Thread6__ctorMFZC4core6thread6Thread':
>>>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFZC4core6thread6Thread+0x1d):
>>>>
>>>> undefined reference to `_tlsend'
>>>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFZC4core6thread6Thread+0x24):
>>>>
>>>> undefined reference to `_tlsstart'
>>>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_19f_6e4.o): In function
>>>> `thread_attachThis':
>>>> src/core/thread.d:(.text.thread_attachThis+0xb7): undefined reference to
>>>> `_tlsstart'
>>>> src/core/thread.d:(.text.thread_attachThis+0xbc): undefined reference to
>>>> `_tlsend'
>>>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_17d_1b8.o): In function
>>>> `_D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread':
>>>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread+0x1d):
>>>>
>>>> undefined reference to `_tlsend'
>>>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFPFZvkZC4core6thread6Thread+0x27):
>>>>
>>>> undefined reference to `_tlsstart'
>>>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_17e_1b8.o): In function
>>>> `_D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread':
>>>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread+0x1d):
>>>>
>>>> undefined reference to `_tlsend'
>>>> src/core/thread.d:(.text._D4core6thread6Thread6__ctorMFDFZvkZC4core6thread6Thread+0x27):
>>>>
>>>> undefined reference to `_tlsstart'
>>>> /usr/lib/i386-linux-gnu/libphobos2.a(deh2_43b_525.o): In function
>>>> `_D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable':
>>>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x4):
>>>>
>>>> undefined reference to `_deh_beg'
>>>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0xc):
>>>>
>>>> undefined reference to `_deh_beg'
>>>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x13):
>>>>
>>>> undefined reference to `_deh_end'
>>>> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x36):
>>>>
>>>> undefined reference to `_deh_end'
>>>> /usr/lib/i386-linux-gnu/libphobos2.a(thread_17a_713.o): In function
>>>> `thread_entryPoint':
>>>> src/core/thread.d:(.text.thread_entryPoint+0x64): undefined reference to
>>>> `_tlsend'
>>>> src/core/thread.d:(.text.thread_entryPoint+0x6a): undefined reference to
>>>> `_tlsstart'
>>>> collect2: ld returned 1 exit status
>>>> --- errorlevel 1
>>>>
>>>>
>>>>
>>>
>>> I really don't know what to tell you, because:
>>>
>>> $ dmd -m32 test.d
>>> $ dmd -m64 test.d
>>> $ cat test.d
>>> import std.stdio;
>>>
>>> void main()
>>> {
>>>    writeln("Hello, world!");
>>> }
>>>
>>> It Works For Me (TM).
>>>
>>> What package (URL please) did you install?
>>
>> Hi,
>>
>> I downloaded the package from dlang.org. The package was
>> dmd_2.060-0_i386.deb. The install went fine. I have to admit that I was
>> surprised there were issues this time around.
>>
>> Thanks,
>> -G
>>
>>
>>
>>
>>
>>
>
> Would you happen to have an i386 Ubuntu system I could SSH into and have a look or something? I'm on amd64 over here which works OK with the amd64 package on dlang.org.
>
> I suspect we generally have a relatively low 32-bit Linux user base these days...

Hi,

Unfortunately, I don't. This is a special dev system I setup for a customer project. They have several 32bit only apps that force the 32bit requirement. Actually, I would be using D on 64bit anyway. I just happened to be working on this particular system when I decided to check out the latest D package. I will try the 64bit package. In the mean time, I would be more than happy to gather any information that would help.

Thanks,
-G




October 15, 2012
On Mon, Oct 15, 2012 at 06:45:16AM +0200, Gerry Weaver wrote: [...]
> Unfortunately, I don't. This is a special dev system I setup for a customer project. They have several 32bit only apps that force the 32bit requirement. Actually, I would be using D on 64bit anyway. I just happened to be working on this particular system when I decided to check out the latest D package. I will try the 64bit package. In the mean time, I would be more than happy to gather any information that would help.
[...]

Hmm. I just tested it on a 32-bit Debian system, using the package from the exact URL you gave, and I didn't see any problems. So I'm wondering if somehow dmd is picking up the wrong version of Phobos somehow, maybe a stale copy somewhere? Maybe a stale /etc/dmd.conf that pointed to the wrong version of the library?

(Debian/Ubuntu packages generally do not overwrite modified configuration files upon installation -- so if there is an old dmd.conf there that has been modified in the past, it will have stayed unchanged when you installed the new dmd.  Check if there's a file called /etc/dmd.conf.dpkg-new; if there is, rename it to /etc/dmd.conf and see if that fixes the problem.)


T

-- 
The richest man is not he who has the most, but he who needs the least.
October 15, 2012
On Sun, Oct 14, 2012 at 09:42:56PM -0700, Jonathan M Davis wrote:
> On Sunday, October 14, 2012 21:39:42 H. S. Teoh wrote:
> > This looks like what happens if you try to use the latest dmd release with an old version of Phobos, perhaps installed along with gdc.
> > 
> > Whoever's doing the .deb packaging really should add a versioned Depends: field to debian/control so that it will require installation of the correct version of Phobos, or, at the very least, refuse to install if such is not available.
> 
> At this point, it's a bad idea to use any version of druntime or Phobos which doesn't match exactly with the version of dmd that you're using. It's not as bad as it used to be, but there are still plenty of cases where a language change (be it a bug fix or added feature or whatever) makes it so that older versions of Phobos won't compile, or the latest Phobos ends up needing the latest dmd. I wouldn't advise anyone to use versions of them that don't all match.
[...]

Hmm, I just checked the URL he gave, and the package there includes the entire suite: dmd, druntime, phobos, all in one. The only potential problem I can think of is that /etc/dmd.conf had been modified in the past and the Debian/Ubuntu packaging system doesn't overwrite modified conffiles upon upgrade, so dmd may be picking up the wrong version of druntime/Phobos because of that.

Another potential problem I can think of, is that the package is missing a Depends: on one of the system libraries, maybe pthread-related, judging from the error messages?  Specifically, one needs to depend on the -dev version of the library, as non-dev versions of Debian/Ubuntu library packages may only contain .so files, not the other stuff (headers, .a's, etc.) that may be necessary to link to the library.

One way to root out this problem is to create a bare-bones chroot environment (cf. dbootstrap) that has the absolute minimum packages installed, and see if the package installs and runs correctly there. Quite often, dependencies are missed because the library depended on is commonly installed on most systems, but isn't part of the base system, so on rare occasions the library will be missing and the package will install correctly but fail to work.


T

-- 
Don't modify spaghetti code unless you can eat the consequences.
« First   ‹ Prev
1 2 3 4 5 6 7 8
Top | Discussion index | About this forum | D home