aboutsummaryrefslogtreecommitdiff
path: root/bfd/elfxx-x86.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2018-02-13 14:31:53 -0800
committerH.J. Lu <hjl.tools@gmail.com>2018-02-13 14:32:06 -0800
commit1031c264fd23641111df1e12a35d0a8f7e82fb80 (patch)
tree7d5badf3b4c32c68b10aa66140216993fbea2891 /bfd/elfxx-x86.c
parentdb5d5ad16fb02ceb636ccef232ec846086c6cef3 (diff)
downloadgdb-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.c2
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)