Make linker assigned symbol dynamic only for shared object
Linker assigned symbols should be made dynamic by default only when creating shared object or relocatable executable. bfd/ * elflink.c (bfd_elf_record_link_assignment): Check for shared library, instead of PIC, and don't check PDE when making linker assigned symbol dynamic. ld/ * testsuite/ld-frv/fdpic-pie-6.d: Updated. * testsuite/ld-mips-elf/pie-n32.d: Likewise. * testsuite/ld-mips-elf/pie-n64.d: Likewise. * testsuite/ld-mips-elf/pie-o32.d: Likewise.
This commit is contained in:
parent
17733f5be9
commit
6b3b0ab896
7 changed files with 40 additions and 28 deletions
|
@ -1,3 +1,9 @@
|
|||
2016-02-23 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* elflink.c (bfd_elf_record_link_assignment): Check for shared
|
||||
library, instead of PIC, and don't check PDE when making linker
|
||||
assigned symbol dynamic.
|
||||
|
||||
2016-02-23 Faraz Shahbazker <faraz.shahbazker@imgtec.com>
|
||||
|
||||
* bfd/elfxx-mips.c (_bfd_mips_post_process_headers): Increment
|
||||
|
|
|
@ -632,9 +632,8 @@ bfd_elf_record_link_assignment (bfd *output_bfd,
|
|||
|
||||
if ((h->def_dynamic
|
||||
|| h->ref_dynamic
|
||||
|| bfd_link_pic (info)
|
||||
|| (bfd_link_pde (info)
|
||||
&& elf_hash_table (info)->is_relocatable_executable))
|
||||
|| bfd_link_dll (info)
|
||||
|| elf_hash_table (info)->is_relocatable_executable)
|
||||
&& h->dynindx == -1)
|
||||
{
|
||||
if (! bfd_elf_link_record_dynamic_symbol (info, h))
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
2016-02-23 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* testsuite/ld-frv/fdpic-pie-6.d: Updated.
|
||||
* testsuite/ld-mips-elf/pie-n32.d: Likewise.
|
||||
* testsuite/ld-mips-elf/pie-n64.d: Likewise.
|
||||
* testsuite/ld-mips-elf/pie-o32.d: Likewise.
|
||||
|
||||
2016-02-20 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* testsuite/ld-elf/pr19539.d: Skip cris*-*-* targets.
|
||||
|
|
|
@ -49,16 +49,16 @@ Disassembly of section \.dat[0-9a-f ]+:
|
|||
Disassembly of section \.got:
|
||||
|
||||
[0-9a-f ]+<_GLOBAL_OFFSET_TABLE_-0x20>:
|
||||
[0-9a-f ]+: 00 00 04 b8 .*
|
||||
[0-9a-f ]+: 00 00 03 b0 .*
|
||||
[0-9a-f ]+: R_FRV_FUNCDESC_VALUE WF9
|
||||
[0-9a-f ]+: 00 00 00 02 .*
|
||||
[0-9a-f ]+: 00 00 04 b0 .*
|
||||
[0-9a-f ]+: 00 00 03 a8 .*
|
||||
[0-9a-f ]+: R_FRV_FUNCDESC_VALUE WF8
|
||||
[0-9a-f ]+: 00 00 00 02 .*
|
||||
[0-9a-f ]+: 00 00 04 a8 .*
|
||||
[0-9a-f ]+: 00 00 03 a0 .*
|
||||
[0-9a-f ]+: R_FRV_FUNCDESC_VALUE WF0
|
||||
[0-9a-f ]+: 00 00 00 02 .*
|
||||
[0-9a-f ]+: 00 00 04 a0 .*
|
||||
[0-9a-f ]+: 00 00 03 98 .*
|
||||
[0-9a-f ]+: R_FRV_FUNCDESC_VALUE WF7
|
||||
[0-9a-f ]+: 00 00 00 02 .*
|
||||
|
||||
|
|
|
@ -6,19 +6,19 @@
|
|||
Dynamic section at offset 0x180 contains 17 entries:
|
||||
Tag * Type * Name/Value
|
||||
0x00000004 \(HASH\) * 0x230
|
||||
0x00000005 \(STRTAB\) * 0x30c
|
||||
0x00000006 \(SYMTAB\) * 0x26c
|
||||
0x0000000a \(STRSZ\) * 72 \(bytes\)
|
||||
0x00000005 \(STRTAB\) * 0x28c
|
||||
0x00000006 \(SYMTAB\) * 0x24c
|
||||
0x0000000a \(STRSZ\) * 28 \(bytes\)
|
||||
0x0000000b \(SYMENT\) * 16 \(bytes\)
|
||||
0x70000035 \(MIPS_RLD_MAP_REL\) * 0x101c8
|
||||
0x70000035 \(MIPS_RLD_MAP_REL\) * 0x10118
|
||||
0x00000015 \(DEBUG\) * 0x0
|
||||
0x00000003 \(PLTGOT\) * 0x10380
|
||||
0x00000003 \(PLTGOT\) * 0x102d0
|
||||
0x70000001 \(MIPS_RLD_VERSION\) * 1
|
||||
0x70000005 \(MIPS_FLAGS\) * NOTPOT
|
||||
0x70000006 \(MIPS_BASE_ADDRESS\) * 0x0
|
||||
0x7000000a \(MIPS_LOCAL_GOTNO\) * 2
|
||||
0x70000011 \(MIPS_SYMTABNO\) * 10
|
||||
0x70000011 \(MIPS_SYMTABNO\) * 4
|
||||
0x70000012 \(MIPS_UNREFEXTNO\) * 13
|
||||
0x70000013 \(MIPS_GOTSYM\) * 0xa
|
||||
0x70000013 \(MIPS_GOTSYM\) * 0x4
|
||||
0x6ffffffb \(FLAGS_1\) * Flags: PIE
|
||||
0x00000000 \(NULL\) * 0x0
|
||||
|
|
|
@ -6,19 +6,19 @@
|
|||
Dynamic section at offset 0x208 contains 17 entries:
|
||||
Tag * Type * Name/Value
|
||||
0x0+00000004 \(HASH\) * 0x368
|
||||
0x0+00000005 \(STRTAB\) * 0x498
|
||||
0x0+00000006 \(SYMTAB\) * 0x3a8
|
||||
0x0+0000000a \(STRSZ\) * 72 \(bytes\)
|
||||
0x0+00000005 \(STRTAB\) * 0x3e8
|
||||
0x0+00000006 \(SYMTAB\) * 0x388
|
||||
0x0+0000000a \(STRSZ\) * 28 \(bytes\)
|
||||
0x0+0000000b \(SYMENT\) * 24 \(bytes\)
|
||||
0x0+70000035 \(MIPS_RLD_MAP_REL\) * 0x102b8
|
||||
0x0+70000035 \(MIPS_RLD_MAP_REL\) * 0x101e8
|
||||
0x0+00000015 \(DEBUG\) * 0x0
|
||||
0x0+00000003 \(PLTGOT\) * 0x10520
|
||||
0x0+00000003 \(PLTGOT\) * 0x10450
|
||||
0x0+70000001 \(MIPS_RLD_VERSION\) * 1
|
||||
0x0+70000005 \(MIPS_FLAGS\) * NOTPOT
|
||||
0x0+70000006 \(MIPS_BASE_ADDRESS\) * 0x0
|
||||
0x0+7000000a \(MIPS_LOCAL_GOTNO\) * 2
|
||||
0x0+70000011 \(MIPS_SYMTABNO\) * 10
|
||||
0x0+70000011 \(MIPS_SYMTABNO\) * 4
|
||||
0x0+70000012 \(MIPS_UNREFEXTNO\) * 13
|
||||
0x0+70000013 \(MIPS_GOTSYM\) * 0xa
|
||||
0x0+70000013 \(MIPS_GOTSYM\) * 0x4
|
||||
0x0+6ffffffb \(FLAGS_1\) * Flags: PIE
|
||||
0x0+00000000 \(NULL\) * 0x0
|
||||
|
|
|
@ -6,19 +6,19 @@
|
|||
Dynamic section at offset 0x178 contains 17 entries:
|
||||
Tag * Type * Name/Value
|
||||
0x00000004 \(HASH\) * 0x228
|
||||
0x00000005 \(STRTAB\) * 0x304
|
||||
0x00000006 \(SYMTAB\) * 0x264
|
||||
0x0000000a \(STRSZ\) * 72 \(bytes\)
|
||||
0x00000005 \(STRTAB\) * 0x284
|
||||
0x00000006 \(SYMTAB\) * 0x244
|
||||
0x0000000a \(STRSZ\) * 28 \(bytes\)
|
||||
0x0000000b \(SYMENT\) * 16 \(bytes\)
|
||||
0x70000035 \(MIPS_RLD_MAP_REL\) * 0x101c0
|
||||
0x70000035 \(MIPS_RLD_MAP_REL\) * 0x10110
|
||||
0x00000015 \(DEBUG\) * 0x0
|
||||
0x00000003 \(PLTGOT\) * 0x10370
|
||||
0x00000003 \(PLTGOT\) * 0x102c0
|
||||
0x70000001 \(MIPS_RLD_VERSION\) * 1
|
||||
0x70000005 \(MIPS_FLAGS\) * NOTPOT
|
||||
0x70000006 \(MIPS_BASE_ADDRESS\) * 0x0
|
||||
0x7000000a \(MIPS_LOCAL_GOTNO\) * 2
|
||||
0x70000011 \(MIPS_SYMTABNO\) * 10
|
||||
0x70000011 \(MIPS_SYMTABNO\) * 4
|
||||
0x70000012 \(MIPS_UNREFEXTNO\) * 13
|
||||
0x70000013 \(MIPS_GOTSYM\) * 0xa
|
||||
0x70000013 \(MIPS_GOTSYM\) * 0x4
|
||||
0x6ffffffb \(FLAGS_1\) * Flags: PIE
|
||||
0x00000000 \(NULL\) * 0x0
|
||||
|
|
Loading…
Reference in a new issue