This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ver_test_8_2.so


David Miller <davem@davemloft.net> writes:

> During the call to gsyms->need_dynamic_reloc() flags is 2
> (NON_PIC_REF).
>
> gsym->is_weak_undefined() is false
>
> gsym->is_absolute() is false
>
> gsym->is_from_dynobj() is false
>
> gsym->is_undefined() is true
>
> That last one seems to be the trigger.
>
> gsym->name() is "_GLOBAL_OFFSET_TABLE_"

Interesting.  The symbol is defined by Target_sparc::got_section.  But
the weird version script is going to cause the symbol to have a
version of VER_TEST_8.  What I think must be happening is that the
definition of _GLOBAL_OFFSET_TABLE_ with a version of VER_TEST_8 is
not satisfying to reference to _GLOBAL_OFFSET_TABLE_ with no version.
This is because Symbol_table::define_special_symbol doesn't have a def
parameter like the one in Symbol_table::add_from_object, which causes
the symbol to be defined both with and without the version.

Probably we need to have define_special_symbol do something similar,
one way or another.  I can look at this.

Ian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]