This is the mail archive of the
mailing list for the binutils project.
Re: gold linker 2.22 regressed for DragonFly
On 12/2/2011 5:58 AM, Ian Lance Taylor wrote:
John Marino<firstname.lastname@example.org> writes:
string_to_object_format is being called with a NULL pointer.
#1 0x000000000053b5e2 in format_enum (this=0x62a5fe)
This line is
so this->format() is return a NULL string.
That should not happen. this->format() is going to return the value of
this->format_.value. That should be initialized to "elf" and nothing
should ever change it to NULL. In this case "this" appears to refer to
the static variable Position_dependent_options::default_options_.
I'm not aware of anything that has changed in this area between binutils
2.21 and 2.22. The same code is in 2.21.
I guess I would debug it by verifying that
Position_independent_options::default_options_.format_.value is in fact
initialized to "elf". If not, why not? If it is, when does it change?
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? By the way, the format initialization is all happening via
macro, so I had to "gcc -E" to even see what it's doing. The code looks
fine to me.
I'll try to analysis gold-by-gold with gdb later to see if I can get to
the elf initiation or if it just skips it altogether. I suspect that
it's never initialized.