diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2018-02-13 14:31:53 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2018-02-13 14:32:06 -0800 |
commit | 1031c264fd23641111df1e12a35d0a8f7e82fb80 (patch) | |
tree | 7d5badf3b4c32c68b10aa66140216993fbea2891 /bfd/elfxx-x86.c | |
parent | db5d5ad16fb02ceb636ccef232ec846086c6cef3 (diff) | |
download | gdb-1031c264fd23641111df1e12a35d0a8f7e82fb80.zip gdb-1031c264fd23641111df1e12a35d0a8f7e82fb80.tar.gz gdb-1031c264fd23641111df1e12a35d0a8f7e82fb80.tar.bz2 |
x86: Properly check building shared library
If a symbol is not defined in a regular file, and we are not generating
a shared library, then set the symbol to its location in the .plt. This
is required to make function pointers compare as equal between the normal
executable and the shared library.
* elfxx-x86.c (elf_x86_allocate_dynrelocs): Check bfd_link_dll,
instead of bfd_link_pic, for building shared library.
Diffstat (limited to 'bfd/elfxx-x86.c')
-rw-r--r-- | bfd/elfxx-x86.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c index fc08d1b..bd36707 100644 --- a/bfd/elfxx-x86.c +++ b/bfd/elfxx-x86.c @@ -200,7 +200,7 @@ elf_x86_allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf) location in the .plt. This is required to make function pointers compare as equal between the normal executable and the shared library. */ - if (! bfd_link_pic (info) + if (! bfd_link_dll (info) && !h->def_regular) { if (use_plt_got) |