This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb] [ARC] Don't convert _DYNAMIC@ to _GLOBAL_OFFSET_TABLE_
- From: Cupertino Miranda <cmiranda at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 8 Jun 2017 17:01:36 -0000
- Subject: [binutils-gdb] [ARC] Don't convert _DYNAMIC@ to _GLOBAL_OFFSET_TABLE_
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7ef0acc15ec011371a3901a997c867165bf7a733
commit 7ef0acc15ec011371a3901a997c867165bf7a733
Author: Vineet Gupta <vgupta@synopsys.com>
Date: Mon May 30 15:19:22 2016 +0530
[ARC] Don't convert _DYNAMIC@ to _GLOBAL_OFFSET_TABLE_
Historically the arc abi demanded that a GOT[0] should be referencible as
[pc+_DYNAMIC@gotpc]. Hence we convert a _DYNAMIC@gotpc to a GOTPC reference to
_GLOBAL_OFFSET_TABLE_.
This is no longer the case and uClibc and upcomming GNU libc don't expect this
to happen.
gas/ChangeLog:
Vineet Gupta <vgupta@synopsys.com>
Cupertino Miranda <cmiranda@synopsys.com>
* config/tc-arc.c (md_undefined_symbol): Changed.
* config/tc-arc.h (DYNAMIC_STRUCT_NAME): Removed.
Diff:
---
bfd/ChangeLog | 5 +++++
gas/config/tc-arc.c | 5 +----
gas/config/tc-arc.h | 1 -
3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index a436e2e..7fd3322 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,10 @@
2017-06-08 Cupertino Miranda <cmiranda@synopsys.com>
+ * config/tc-arc.c (md_undefined_symbol): Changed.
+ * config/tc-arc.h (DYNAMIC_STRUCT_NAME): Removed.
+
+2017-06-08 Cupertino Miranda <cmiranda@synopsys.com>
+
* elf32-arc.c (elf_arc_relocate_section): Fixed reassign of indirect
symbols.
diff --git a/gas/config/tc-arc.c b/gas/config/tc-arc.c
index 55aaf07..a56b2a5 100644
--- a/gas/config/tc-arc.c
+++ b/gas/config/tc-arc.c
@@ -3280,10 +3280,7 @@ md_undefined_symbol (char *name)
GOTPC reference to _GLOBAL_OFFSET_TABLE_. */
if (((*name == '_')
&& (*(name+1) == 'G')
- && (strcmp (name, GLOBAL_OFFSET_TABLE_NAME) == 0))
- || ((*name == '_')
- && (*(name+1) == 'D')
- && (strcmp (name, DYNAMIC_STRUCT_NAME) == 0)))
+ && (strcmp (name, GLOBAL_OFFSET_TABLE_NAME) == 0)))
{
if (!GOT_symbol)
{
diff --git a/gas/config/tc-arc.h b/gas/config/tc-arc.h
index f4cafe9..f887fcc 100644
--- a/gas/config/tc-arc.h
+++ b/gas/config/tc-arc.h
@@ -171,7 +171,6 @@ extern long md_pcrel_from_section (struct fix *, segT);
#define tc_frob_label(S) arc_frob_label (S)
#define GLOBAL_OFFSET_TABLE_NAME "_GLOBAL_OFFSET_TABLE_"
-#define DYNAMIC_STRUCT_NAME "_DYNAMIC"
/* We need to take care of not having section relative fixups for the
fixups with respect to Position Independent Code. */