From: Christophe Lyon Date: Tue, 20 Mar 2018 09:55:53 +0000 (+0100) Subject: [ARM] FDPIC: Make _GLOBAL_OFFSET_TABLE_ a relative symbol X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fac7bd6475c4058e7c1e0df29dac50579e427b34;p=binutils-gdb.git [ARM] FDPIC: Make _GLOBAL_OFFSET_TABLE_ a relative symbol 2018-04-25 Christophe Lyon Mickaël Guêné bfd/ * elf32-arm.c (elf32_arm_finish_dynamic_symbol): Handle _GLOBAL_OFFSET_TABLE_ in FDPIC mode. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 766341a54f8..84d0891086f 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2018-04-25 Christophe Lyon + Mickaël Guêné + + * elf32-arm.c (elf32_arm_finish_dynamic_symbol): Handle + _GLOBAL_OFFSET_TABLE_ in FDPIC mode. + 2018-04-25 Christophe Lyon Mickaël Guêné diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index c2f48046200..b72e397bcb4 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -17086,10 +17086,10 @@ elf32_arm_finish_dynamic_symbol (bfd * output_bfd, } /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute. On VxWorks, - the _GLOBAL_OFFSET_TABLE_ symbol is not absolute: it is relative - to the ".got" section. */ + and for FDPIC, the _GLOBAL_OFFSET_TABLE_ symbol is not absolute: + it is relative to the ".got" section. */ if (h == htab->root.hdynamic - || (!htab->vxworks_p && h == htab->root.hgot)) + || (!htab->fdpic_p && !htab->vxworks_p && h == htab->root.hgot)) sym->st_shndx = SHN_ABS; return TRUE;