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] |
On 01 Feb 2016 12:47, H.J. Lu wrote: > On Mon, Feb 1, 2016 at 12:22 PM, Mike Frysinger <vapier@gentoo.org> wrote: > > On 01 Aug 2015 07:07, H.J. Lu wrote: > >> On Sun, Jul 26, 2015 at 03:15:50PM -0700, H.J. Lu wrote: > >> > The non-default versioned symbol can only be merged with the versioned > >> > symbol with the same symbol version. _bfd_elf_merge_symbol should > >> > check the symbol version before merging the new non-default versioned > >> > symbol with the existing symbol. _bfd_elf_link_hash_copy_indirect can't > >> > copy any references to the non-default versioned symbol. We need to > >> > bind a symbol locally when linking executable if it is locally defined, > >> > non-default versioned, not referenced by shared library and not exported. > >> > --- > >> > bfd/ > >> > > >> > PR ld/18720 > >> > * elf-bfd.h (elf_link_hash_entry): Add nondeflt_version. > >> > * elflink.c (_bfd_elf_merge_symbol): Add a parameter to indicate > >> > if the new symbol matches the existing one. The new non-default > >> > versioned symbol symbol matches the existing symbol if they have > >> > the same symbol version. Update the existing symbol only if they > >> > match. > >> > (_bfd_elf_add_default_symbol): Update call to > >> > _bfd_elf_merge_symbol. > >> > (elf_link_add_object_symbols): Override a definition only if the > >> > new symbol matches the existing one. > >> > (_bfd_elf_link_hash_copy_indirect): Don't copy any references to > >> > the non-default versioned symbol. > >> > (elf_link_output_extsym): Bind a symbol locally when linking > >> > executable if it is locally defined, non-default versioned, not > >> > referenced by shared library and not exported. > >> > >> Here is the upated patch which uses the existing "hidden" field in > >> elf_link_hash_entry. Any objections, comments? > > > > this breaks asan. simple test case: > > $ echo 'main() { fork(); }' > test.c > > $ gcc -fsanitize=address -c test.c > > $ gcc -fsanitize=address test.o > > ld: /usr/lib/gcc/x86_64-pc-linux-gnu/5.3.0/libasan.so: undefined reference to symbol 'fork@GLIBC_2.2.5' > > /lib64/libpthread.so.0: error adding symbols: DSO missing from command line > > collect2: error: ld returned 1 exit status > > > > i'm guessing this will also break any library that links against pthread > > but the main app itself doesn't. > > Please open a binutils bug. done: https://sourceware.org/bugzilla/show_bug.cgi?id=19553 -mike
Attachment:
signature.asc
Description: Digital signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |