gold linker 2.22 regressed for DragonFly

John Marino binutils@marino.st
Mon Jan 2 09:36:00 GMT 2012


On 1/2/2012 3:05 AM, Ian Lance Taylor wrote:
> John Marino <binutils@marino.st> writes:
> 
>> On 12/2/2011 3:27 PM, Ian Lance Taylor wrote:
>>> John Marino <binutils@marino.st> writes:
>>>
>>>> I need to stress that gold built with ld does not have this problem.
>>>> It's only gold built with gold that segfaults.  Does that affect your
>>>> answer?
>>>
>>> Try using the gold option --no-ctors-in-init-array.
>>>
>>> Ian
>>
>> I'm sorry that I had to put this away for a while, but I've picked it
>> back up today.
>>
>> Gold build with ld will function without segfaults and produces executables.
>> Gold build with gold segfaults.  It ignores all command-line options.
>>
>> I modified the makefile to set optimization level to 0.  That let me see
>> the values of variables in gdb.  Using gdb on ld-new (gold built with
>> ld), "print options" on gdb shows a properly defined option set of
>> General_options class.  Doing the same for ld1 (gold built by gold)
>> shows every single option with null pointers.  Not even strings like
>> "Report usage information" and "Report version information" are included.
>>
>> So the problem lies in options.h within the General_options class.  I
>> have no idea what ld-new is doing wrong such that ld1 can't built its
>> option set.  These definitions are built with macros though.
> 
> 
> Did you try using the --no-ctors-in-init-array option?
> 
> Ian

Yes, I modified the gold makefile to add that to ld1_LDFLAGS and it
makes no difference.  The resultant ld1 will still segfault as it tries
to build ld2.

John



More information about the Binutils mailing list