View mode: basic / threaded / horizontal-split · Log in · Help
October 15, 2012
D seems interesting, but...
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
Re: D seems interesting, but...
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
Re: D seems interesting, but...
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
Re: D seems interesting, but...
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
Re: D seems interesting, but...
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
Re: D seems interesting, but...
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
Re: D seems interesting, but...
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
Re: D seems interesting, but...
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
Re: D seems interesting, but...
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
Re: D seems interesting, but...
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
Top | Discussion index | About this forum | D home