diff options
-rw-r--r-- | bfd/elf32-i386.c | 1 | ||||
-rw-r--r-- | bfd/elf64-x86-64.c | 1 | ||||
-rw-r--r-- | bfd/elfxx-x86.c | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/protected1.d | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/protected3.d | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/protected6a.d | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/pr24151a-x32.d | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/pr24151a.d | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/protected1.d | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/protected3.d | 2 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/protected6a.d | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/protected7a.d | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/x86-64.exp | 27 |
13 files changed, 24 insertions, 39 deletions
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c index 3d39dc0..04a972e 100644 --- a/bfd/elf32-i386.c +++ b/bfd/elf32-i386.c @@ -4426,7 +4426,6 @@ elf_i386_link_setup_gnu_properties (struct bfd_link_info *info) #define elf_backend_got_header_size 12 #define elf_backend_plt_alignment 4 #define elf_backend_dtrel_excludes_plt 1 -#define elf_backend_extern_protected_data 1 #define elf_backend_caches_rawsize 1 #define elf_backend_want_dynrelro 1 diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index 48ca630..3abc68a 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -5277,7 +5277,6 @@ elf_x86_64_special_sections[]= #define elf_backend_got_header_size (GOT_ENTRY_SIZE*3) #define elf_backend_rela_normal 1 #define elf_backend_plt_alignment 4 -#define elf_backend_extern_protected_data 1 #define elf_backend_caches_rawsize 1 #define elf_backend_dtrel_excludes_plt 1 #define elf_backend_want_dynrelro 1 diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c index acb2cc8..18f3d33 100644 --- a/bfd/elfxx-x86.c +++ b/bfd/elfxx-x86.c @@ -3094,7 +3094,7 @@ _bfd_x86_elf_link_symbol_references_local (struct bfd_link_info *info, 2. When building executable, there is no dynamic linker. Or 3. or "-z nodynamic-undefined-weak" is used. */ - if (SYMBOL_REFERENCES_LOCAL (info, h) + if (_bfd_elf_symbol_refs_local_p (h, info, 1) || (h->root.type == bfd_link_hash_undefweak && (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT || (bfd_link_executable (info) diff --git a/ld/testsuite/ld-i386/protected1.d b/ld/testsuite/ld-i386/protected1.d index a3cb5ce..531645b 100644 --- a/ld/testsuite/ld-i386/protected1.d +++ b/ld/testsuite/ld-i386/protected1.d @@ -1,3 +1,5 @@ #as: --32 #ld: -shared -melf_i386 -#error: .*relocation R_386_GOTOFF against protected function `foo' can not be used when making a shared object +#readelf: -rW +#... +There are no relocations in this file. diff --git a/ld/testsuite/ld-i386/protected3.d b/ld/testsuite/ld-i386/protected3.d index c3a6888..77367c4 100644 --- a/ld/testsuite/ld-i386/protected3.d +++ b/ld/testsuite/ld-i386/protected3.d @@ -8,7 +8,7 @@ Disassembly of section .text: 0+[a-f0-9]+ <bar>: -[ ]*[a-f0-9]+: 8b 81 [a-f0-9][a-f0-9] [a-f0-9][a-f0-9] ff ff mov -0x[a-f0-9]+\(%ecx\),%eax +[ ]*[a-f0-9]+: 8d 81 00 00 00 00 lea 0x0\(%ecx\),%eax [ ]*[a-f0-9]+: 8b 00 mov \(%eax\),%eax [ ]*[a-f0-9]+: c3 ret #pass diff --git a/ld/testsuite/ld-i386/protected6a.d b/ld/testsuite/ld-i386/protected6a.d index 7dc3504..4d38732 100644 --- a/ld/testsuite/ld-i386/protected6a.d +++ b/ld/testsuite/ld-i386/protected6a.d @@ -1,4 +1,6 @@ #source: protected6.s #as: --32 #ld: -shared -melf_i386 -#error: .*relocation R_386_GOTOFF against protected data `foo' can not be used when making a shared object +#readelf: -rW +#... +There are no relocations in this file. diff --git a/ld/testsuite/ld-x86-64/pr24151a-x32.d b/ld/testsuite/ld-x86-64/pr24151a-x32.d index 130611d..1f49b65 100644 --- a/ld/testsuite/ld-x86-64/pr24151a-x32.d +++ b/ld/testsuite/ld-x86-64/pr24151a-x32.d @@ -1,4 +1,6 @@ #source: pr24151a.s #as: --x32 #ld: -shared -melf32_x86_64 -#error: .*relocation R_X86_64_PC32 against protected symbol `foo' can not be used when making a shared object +#readelf: -rW +#... +There are no relocations in this file. diff --git a/ld/testsuite/ld-x86-64/pr24151a.d b/ld/testsuite/ld-x86-64/pr24151a.d index 783b85a..6c48e38 100644 --- a/ld/testsuite/ld-x86-64/pr24151a.d +++ b/ld/testsuite/ld-x86-64/pr24151a.d @@ -1,3 +1,5 @@ #as: --64 #ld: -shared -melf_x86_64 -#error: .*relocation R_X86_64_PC32 against protected symbol `foo' can not be used when making a shared object +#readelf: -rW +#... +There are no relocations in this file. diff --git a/ld/testsuite/ld-x86-64/protected1.d b/ld/testsuite/ld-x86-64/protected1.d index 783b85a..6c48e38 100644 --- a/ld/testsuite/ld-x86-64/protected1.d +++ b/ld/testsuite/ld-x86-64/protected1.d @@ -1,3 +1,5 @@ #as: --64 #ld: -shared -melf_x86_64 -#error: .*relocation R_X86_64_PC32 against protected symbol `foo' can not be used when making a shared object +#readelf: -rW +#... +There are no relocations in this file. diff --git a/ld/testsuite/ld-x86-64/protected3.d b/ld/testsuite/ld-x86-64/protected3.d index 57950e4..ba63991 100644 --- a/ld/testsuite/ld-x86-64/protected3.d +++ b/ld/testsuite/ld-x86-64/protected3.d @@ -8,7 +8,7 @@ Disassembly of section .text: 0+[a-f0-9]+ <bar>: -[ ]*[a-f0-9]+: 48 8b 05 ([0-9a-f]{2} ){4} * mov 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> +[ ]*[a-f0-9]+: 48 8d 05 ([0-9a-f]{2} ){4} * lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <.*> [ ]*[a-f0-9]+: 8b 00 mov \(%rax\),%eax [ ]*[a-f0-9]+: c3 ret #pass diff --git a/ld/testsuite/ld-x86-64/protected6a.d b/ld/testsuite/ld-x86-64/protected6a.d index 3a7963f..50d6430 100644 --- a/ld/testsuite/ld-x86-64/protected6a.d +++ b/ld/testsuite/ld-x86-64/protected6a.d @@ -1,4 +1,6 @@ #source: protected6.s #as: --64 #ld: -shared -melf_x86_64 -#error: .*relocation R_X86_64_GOTOFF64 against protected data `foo' can not be used when making a shared object +#readelf: -rW +#... +There are no relocations in this file. diff --git a/ld/testsuite/ld-x86-64/protected7a.d b/ld/testsuite/ld-x86-64/protected7a.d index 3082084..3974246 100644 --- a/ld/testsuite/ld-x86-64/protected7a.d +++ b/ld/testsuite/ld-x86-64/protected7a.d @@ -1,4 +1,6 @@ #source: protected7.s #as: --64 #ld: -shared -melf_x86_64 -#error: .*relocation R_X86_64_GOTOFF64 against protected function `foo' can not be used when making a shared object +#readelf: -rW +#... +There are no relocations in this file. diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp index 5e5636b..a096c0b 100644 --- a/ld/testsuite/ld-x86-64/x86-64.exp +++ b/ld/testsuite/ld-x86-64/x86-64.exp @@ -1833,15 +1833,6 @@ if { [isnative] && [check_compiler_available] } { "pass.out" \ ] \ [list \ - "Run protected-func-1 without PIE" \ - "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libprotected-func-1.so" \ - "-Wa,-mx86-used-note=yes" \ - { protected-func-1b.c } \ - "protected-func-1a" \ - "pass.out" \ - "$NOPIE_CFLAGS" \ - ] \ - [list \ "Run protected-func-1 with PIE" \ "-Wl,--no-as-needed -pie tmpdir/libprotected-func-1.so" \ "-Wa,-mx86-used-note=yes" \ @@ -1905,24 +1896,6 @@ if { [isnative] && [check_compiler_available] } { "-fPIE" \ ] \ [list \ - "Run protected-data-1a without PIE" \ - "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libprotected-data-1a.so" \ - "-Wa,-mx86-used-note=yes" \ - { protected-data-1b.c } \ - "protected-data-1a" \ - "pass.out" \ - "$NOPIE_CFLAGS" \ - ] \ - [list \ - "Run protected-data-1b with PIE" \ - "-Wl,--no-as-needed -pie tmpdir/libprotected-data-1a.so" \ - "-Wa,-mx86-used-note=yes" \ - { protected-data-1b.c } \ - "protected-data-1b" \ - "pass.out" \ - "-fPIE" \ - ] \ - [list \ "Run protected-data-2a without PIE" \ "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libprotected-data-2a.so" \ "-Wa,-mx86-used-note=yes" \ |