public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] x86-64: Skip symbol defined by linker
@ 2019-02-27 19:31 H.J. Lu
  0 siblings, 0 replies; only message in thread
From: H.J. Lu @ 2019-02-27 19:31 UTC (permalink / raw)
  To: binutils

Skip symbol defined by linker when checking copy reloc on protected
symbol.

bfd/

	PR ld/24276
	* elf64-x86-64.c (elf_x86_64_check_relocs): Skip symbol defined
	by linker when checking copy reloc on protected symbol.

ld/

	PR ld/24276
	* testsuite/ld-i386/i386.exp: Run PR ld/24276 test.
	* testsuite/ld-x86-64/x86-64.exp: Likewise.
	* testsuite/ld-i386/pr24276.dso: New file.
	* testsuite/ld-i386/pr24276.warn: Likewise.
	* testsuite/ld-x86-64/pr24276.dso: Likewise.
	* testsuite/ld-x86-64/pr24276.warn: Likewise.
---
 bfd/elf64-x86-64.c                  | 2 ++
 ld/testsuite/ld-i386/i386.exp       | 9 +++++++++
 ld/testsuite/ld-i386/pr24276.dso    | 9 +++++++++
 ld/testsuite/ld-i386/pr24276.warn   | 1 +
 ld/testsuite/ld-x86-64/pr24276.dso  | 9 +++++++++
 ld/testsuite/ld-x86-64/pr24276.warn | 1 +
 ld/testsuite/ld-x86-64/x86-64.exp   | 9 +++++++++
 7 files changed, 40 insertions(+)
 create mode 100644 ld/testsuite/ld-i386/pr24276.dso
 create mode 100644 ld/testsuite/ld-i386/pr24276.warn
 create mode 100644 ld/testsuite/ld-x86-64/pr24276.dso
 create mode 100644 ld/testsuite/ld-x86-64/pr24276.warn

diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index 6a4b366fdd..e193f44e93 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -2238,6 +2238,8 @@ check_pic:
 	      bfd_boolean no_copyreloc_p
 		= (info->nocopyreloc
 		   || (h != NULL
+		       && !h->root.linker_def
+		       && !h->root.ldscript_def
 		       && eh->def_protected
 		       && elf_has_no_copy_on_protected (h->root.u.def.section->owner)));
 	      if ((sec->flags & SEC_ALLOC) != 0
diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp
index 5b90362cb0..e51a4c30f6 100644
--- a/ld/testsuite/ld-i386/i386.exp
+++ b/ld/testsuite/ld-i386/i386.exp
@@ -804,6 +804,15 @@ if { [isnative]
 	    {{objdump {-dw} pr19319.dd}} \
 	    "pr19319" \
 	] \
+	[list \
+	    "Build pr24276.so" \
+	    "-shared -nostdlib -nostartfiles \
+	     -Ltmpdir $srcdir/$subdir/pr24276.dso" \
+	    "-Wa,-mx86-used-note=yes" \
+	    { pr19319b.S } \
+	    {{warning_output pr24276.warn}} \
+	    "pr24276.so" \
+	] \
 	[list \
 	    "Build property 1" \
 	    "" \
diff --git a/ld/testsuite/ld-i386/pr24276.dso b/ld/testsuite/ld-i386/pr24276.dso
new file mode 100644
index 0000000000..9add115e1c
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr24276.dso
@@ -0,0 +1,9 @@
+INPUT(pr19319.so)
+SECTIONS {
+  my_section : {
+    __start_my_section = .;
+    *(my_section);
+    __stop_my_section = .;
+
+  }
+}
diff --git a/ld/testsuite/ld-i386/pr24276.warn b/ld/testsuite/ld-i386/pr24276.warn
new file mode 100644
index 0000000000..5fcfa343c1
--- /dev/null
+++ b/ld/testsuite/ld-i386/pr24276.warn
@@ -0,0 +1 @@
+.*contains output sections.*
diff --git a/ld/testsuite/ld-x86-64/pr24276.dso b/ld/testsuite/ld-x86-64/pr24276.dso
new file mode 100644
index 0000000000..9add115e1c
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr24276.dso
@@ -0,0 +1,9 @@
+INPUT(pr19319.so)
+SECTIONS {
+  my_section : {
+    __start_my_section = .;
+    *(my_section);
+    __stop_my_section = .;
+
+  }
+}
diff --git a/ld/testsuite/ld-x86-64/pr24276.warn b/ld/testsuite/ld-x86-64/pr24276.warn
new file mode 100644
index 0000000000..5fcfa343c1
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr24276.warn
@@ -0,0 +1 @@
+.*contains output sections.*
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index 5eb556515f..b03aaced91 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -940,6 +940,15 @@ if { [isnative] && [which $CC] != 0 } {
 	    {{objdump {-dw} pr19319.dd}} \
 	    "pr19319" \
 	] \
+	[list \
+	    "Build pr24276.so" \
+	    "-shared -nostdlib -nostartfiles \
+	     -Ltmpdir $srcdir/$subdir/pr24276.dso" \
+	    "-Wa,-mx86-used-note=yes" \
+	    { pr19319b.S } \
+	    {{warning_output pr24276.warn}} \
+	    "pr24276.so" \
+	] \
 	[list \
 	    "Build property 1" \
 	    "" \
-- 
2.20.1

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-02-27 19:31 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-27 19:31 [PATCH] x86-64: Skip symbol defined by linker H.J. Lu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).