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:
H.J. Lu 2016-02-23 05:18:43 -08:00
parent 17733f5be9
commit 6b3b0ab896
7 changed files with 40 additions and 28 deletions

View File

@ -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

View File

@ -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))

View File

@ -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.

View File

@ -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 .*

View File

@ -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

View File

@ -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

View File

@ -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