aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf32-i386.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2012-03-20 18:16:38 +0000
committerH.J. Lu <hjl.tools@gmail.com>2012-03-20 18:16:38 +0000
commitbdb892b99584bfd481ed23c90ad7ceafb31ca791 (patch)
treefa9fe2766f8ceecd5d85314aa12e6acb635a3cff /bfd/elf32-i386.c
parente278ad5be65114f92eba2b2609bddd7c058376a8 (diff)
downloadgdb-bdb892b99584bfd481ed23c90ad7ceafb31ca791.zip
gdb-bdb892b99584bfd481ed23c90ad7ceafb31ca791.tar.gz
gdb-bdb892b99584bfd481ed23c90ad7ceafb31ca791.tar.bz2
Handle relocation against protected function for -Bsymbolic
bfd/ 2012-03-20 H.J. Lu <hongjiu.lu@intel.com> PR ld/13880 * elf32-i386.c (elf_i386_relocate_section): Don't issue an error for R_386_GOTOFF relocation against protected function if SYMBOLIC_BIND is true. * elf64-x86-64.c (elf_x86_64_relocate_section): Don't issue an error for R_X86_64_GOTOFF64 relocation against protected function when building executable or SYMBOLIC_BIND is true. ld/testsuite/ 2012-03-20 H.J. Lu <hongjiu.lu@intel.com> PR ld/13880 * ld-i386/i386.exp: Run protected4 and protected5. * ld-x86-64/x86-64.exp: Likewise. * ld-i386/protected4.d: New. * ld-i386/protected4.s: Likewise. * ld-i386/protected5.d: Likewise. * ld-i386/protected5.s: Likewise. * ld-x86-64/protected4.d: Likewise. * ld-x86-64/protected4.s: Likewise. * ld-x86-64/protected5.d: Likewise. * ld-x86-64/protected5.s: Likewise.
Diffstat (limited to 'bfd/elf32-i386.c')
-rw-r--r--bfd/elf32-i386.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index 4ae2166..f35e3c22 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -3503,6 +3503,7 @@ elf_i386_relocate_section (bfd *output_bfd,
return FALSE;
}
else if (!info->executable
+ && !SYMBOLIC_BIND (info, h)
&& h->type == STT_FUNC
&& ELF_ST_VISIBILITY (h->other) == STV_PROTECTED)
{