DMD 2.063 produces broken binaries

Jerry jlquinn at optonline.net
Mon Jun 10 09:52:47 PDT 2013


Andrei Alexandrescu <SeeWebsiteForEmail at erdani.org> writes:

> On 6/10/13 2:41 AM, Jerry wrote:
>> "Andrei Alexandrescu"<SeeWebsiteForEmail at erdani.org>  writes:
>>
>>> On Sunday, 9 June 2013 at 17:23:16 UTC, Andrei Alexandrescu wrote:
>>>> On Sunday, 9 June 2013 at 17:22:36 UTC, Andrei Alexandrescu wrote:
>>>>> On Wednesday, 5 June 2013 at 02:30:37 UTC, Jerry wrote:
>>>>>> jlquinn at wyvern:~/re/test$ /home/jlquinn/dmd2/linux/bin64/dmd -v -w junk.d
>>>>>> binary    /home/jlquinn/dmd2/linux/bin64/dmd
>>>>>> version   v2.063
>>>>> [snip]
>>>>>
>>>>> I've done a clean room attempt at reproducing the bug, was unable
>>>>> to. Jerry, anything you can think of that's unusual with your installation?
>>>>
>>>> Forgot to mention - details at
>>>> http://d.puremagic.com/issues/show_bug.cgi?id=10274
>>>
>>> One thought that comes to mind - you may want to double-check LD_LIBRARY_PATH
>>> to make sure there's no stray reference to an old libphobos.a dir.
>>
>> LD_LIBRARY_PATH is empty.  I've now reproduced this segfault on a Debian
>> testing machine as well as my Ubuntu one.  I'm pretty confused.
>>
>> Jerry
>
> Appreciate the work. (BTW nice to see you again, recall we talked at that NLP
> conference a while back.)

I do recall.  I'm glad you ended up someplace you enjoy.  That was a fun conference.

> Let's focus on Ubuntu/64 because that's what I have on my end too.
>
> 1. Which Ubuntu version are you using?

I'm running 12.10 x86_64.

> 2. Can you compile and run "hello, world" in C?

That works fine.

> 3. If you replace the D call to writeln() with a call to printf(), does that
> work?

No, same problem.  BTW, it's segfaulting in _d_dso_registry() before
main() gets run.

> 4. If you make any other calls into the stdlib aside from I/O, do they
> work?

It doesn't matter.  The following program segfaults:

void main() {}


> 5. Does gdb reveal anything interesting?

Unfortunately there's no debugging symbols in _d_dso_registry().  I
assume the compiler is writing asm directly.

Jerry


More information about the Digitalmars-d mailing list