ld-related bug in LTTng
Martin Ünsal
martinunsal@gmail.com
Fri May 2 22:40:00 GMT 2014
On Thu, May 1, 2014 at 4:23 PM, Alan Modra <amodra@gmail.com> wrote:
> Is gcc emitting the reference to __start___tracepoints_ptrs as hidden?
> (Look at an object with readelf -s to see)
Aha! No, it isn't.
With GCC 4.6.4 the symbol is correctly emitted as hidden visibility:
$ arm-linux-gnueabi-readelf -s pmtrace_bundle_provider.o | grep __start_
153: 00000000 0 NOTYPE WEAK HIDDEN UND __start___tracepoints_ptr
With GCC 4.7.2 the symbol is incorrectly emitted as default visibility:
$ arm-linux-gnueabi-readelf -s pmtrace_bundle_provider.o | grep __start_
144: 00000000 0 NOTYPE WEAK DEFAULT UND __start___tracepoints_ptr
Here is the declaration:
extern struct tracepoint * const __start___tracepoints_ptrs[]
__attribute__((weak, visibility("hidden")));
This looks like it is clearly a compiler issue. I will take this back
to gcc-help mailing list.
Thanks for the help,
Martin
More information about the Binutils
mailing list