[gold commit] Fix handling of __ehdr_start
Alan Modra
amodra@gmail.com
Thu May 29 23:59:00 GMT 2014
On Thu, May 29, 2014 at 12:02:51PM -0700, Cary Coutant wrote:
> >> Hmm, yes. I'm seeing this instead:
> >> 52: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND __ehdr_start
> >>
> >> > What platform are you testing on?
> >>
> >> powerpc64-linux. I'll see if I can track down the problem when I find
> >> some time.
> >
> > Also happens on x86_64-linux. I'm surprised you haven't seen it.
> > __ehdr_start is STV_HIDDEN, Symbol_table::override_with_special makes
> > it forced_local, thus output from Symbol_table::sized_write_symbol
> > is STB_LOCAL.
>
> On x86_64 for me:
>
> $ readelf -sW ehdr_start_test_4.o | grep __ehdr_start
> 46: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __ehdr_start
I have the above.
> $ readelf -sW ehdr_start_test_4 | grep __ehdr_start
> 86: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __ehdr_start
But not this..
> You don't have some compiler wrapper that's setting -fvisibility=hidden, do you?
No. The hidden visibility is coming from defstd.cc
{
"__ehdr_start", // name
elfcpp::PT_LOAD, // segment_type
elfcpp::PF(0), // segment_flags_set
elfcpp::PF(0), // segment_flags_clear
0, // value
0, // size
elfcpp::STT_NOTYPE, // type
elfcpp::STB_GLOBAL, // binding
elfcpp::STV_HIDDEN, // visibility
0, // nonvis
Symbol::SEGMENT_START, // offset_from_base
true // only_if_ref
},
Do you have some local change here?
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list