# DP: Link using --hash-style=both (alpha, amd64, armel, armhf, ia64, i386, powerpc, ppc64, riscv64, s390, sparc)

2006-07-11  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/linux.h (LINK_SPEC): Add --hash-style=both.
	* config/i386/linux64.h (LINK_SPEC): Likewise.
	* config/rs6000/sysv4.h (LINK_OS_LINUX_SPEC): Likewise.
	* config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32,
	LINK_OS_LINUX_SPEC64): Likewise.
	* config/s390/linux.h (LINK_SPEC): Likewise.
	* config/ia64/linux.h (LINK_SPEC): Likewise.
	* config/sparc/linux.h (LINK_SPEC): Likewise.
	* config/sparc/linux64.h (LINK_SPEC, LINK_ARCH32_SPEC,
	LINK_ARCH64_SPEC): Likewise.
	* config/alpha/linux-elf.h (LINK_SPEC): Likewise.

2009-12-21  Matthias Klose  <doko@ubuntu.com>

	* config/arm/linux-elf.h (LINK_SPEC): Add --hash-style=both.

2012-11-17  Matthias Klose  <doko@ubuntu.com>

	* config/aarch64/aarch64-linux.h (LINK_SPEC): Add --hash-style=both.

2018-03-02  Aurelien Jarno  <aurelien@aurel32.net>

	* config/riscv/linux.h (LINK_SPEC): Add --hash-style=both.

---
 gcc/config/alpha/linux-elf.h |    2 +-
 gcc/config/i386/linux.h      |    2 +-
 gcc/config/i386/linux64.h    |    2 +-
 gcc/config/ia64/linux.h      |    2 +-
 gcc/config/rs6000/linux64.h  |    4 ++--
 gcc/config/rs6000/sysv4.h    |    2 +-
 gcc/config/s390/linux.h      |    2 +-
 gcc/config/sparc/linux.h     |    2 +-
 8 files changed, 9 insertions(+), 9 deletions(-)

Index: b/src/gcc/config/alpha/linux-elf.h
===================================================================
--- a/src/gcc/config/alpha/linux-elf.h
+++ b/src/gcc/config/alpha/linux-elf.h
@@ -37,7 +37,7 @@
 
 #define ELF_DYNAMIC_LINKER	GNU_USER_DYNAMIC_LINKER
 
-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax}		\
+#define LINK_SPEC "-m elf64alpha --hash-style=both %{G*} %{relax:-relax}	\
   %{O*:-O3} %{!O*:-O1}						\
   %{shared:-shared}						\
   %{!shared:							\
Index: b/src/gcc/config/ia64/linux.h
===================================================================
--- a/src/gcc/config/ia64/linux.h
+++ b/src/gcc/config/ia64/linux.h
@@ -58,7 +58,7 @@
 #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
 
 #undef LINK_SPEC
-#define LINK_SPEC "\
+#define LINK_SPEC " --hash-style=both \
   %{shared:-shared} \
   %{!shared: \
     %{!static: \
Index: b/src/gcc/config/rs6000/linux64.h
===================================================================
--- a/src/gcc/config/rs6000/linux64.h
+++ b/src/gcc/config/rs6000/linux64.h
@@ -385,11 +385,11 @@
 					   " -m elf64ppc")
 #endif
 
-#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " --hash-style=both %{!shared: %{!static: \
   %{rdynamic:-export-dynamic} \
   -dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}}"
 
-#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " --hash-style=both %{!shared: %{!static: \
   %{rdynamic:-export-dynamic} \
   -dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}}"
 
Index: b/src/gcc/config/rs6000/sysv4.h
===================================================================
--- a/src/gcc/config/rs6000/sysv4.h
+++ b/src/gcc/config/rs6000/sysv4.h
@@ -788,7 +788,7 @@
 #define GNU_USER_DYNAMIC_LINKER \
   CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER)
 
-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \
   %{rdynamic:-export-dynamic} \
   -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}"
 
Index: b/src/gcc/config/s390/linux.h
===================================================================
--- a/src/gcc/config/s390/linux.h
+++ b/src/gcc/config/s390/linux.h
@@ -65,7 +65,7 @@
 
 #undef  LINK_SPEC
 #define LINK_SPEC \
-  "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
+  "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=both \
    %{shared:-shared} \
    %{!shared: \
       %{static:-static} \
Index: b/src/gcc/config/sparc/linux.h
===================================================================
--- a/src/gcc/config/sparc/linux.h
+++ b/src/gcc/config/sparc/linux.h
@@ -86,7 +86,7 @@
 #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
 
 #undef  LINK_SPEC
-#define LINK_SPEC "-m elf32_sparc %{shared:-shared} \
+#define LINK_SPEC "-m elf32_sparc --hash-style=both %{shared:-shared} \
   %{!mno-relax:%{!r:-relax}} \
   %{!shared: \
     %{!static: \
Index: b/src/gcc/config/arm/linux-elf.h
===================================================================
--- a/src/gcc/config/arm/linux-elf.h
+++ b/src/gcc/config/arm/linux-elf.h
@@ -67,6 +67,7 @@
      %{rdynamic:-export-dynamic} \
      -dynamic-linker " GNU_USER_DYNAMIC_LINKER "} \
    -X \
+   --hash-style=both \
    %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
    SUBTARGET_EXTRA_LINK_SPEC
 
Index: b/src/gcc/config/i386/gnu-user.h
===================================================================
--- a/src/gcc/config/i386/gnu-user.h
+++ b/src/gcc/config/i386/gnu-user.h
@@ -74,7 +74,7 @@
   { "link_emulation", GNU_USER_LINK_EMULATION },\
   { "dynamic_linker", GNU_USER_DYNAMIC_LINKER }
 
-#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
+#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) --hash-style=both %{shared:-shared} \
   %{!shared: \
     %{!static: \
       %{rdynamic:-export-dynamic} \
Index: b/src/gcc/config/i386/gnu-user64.h
===================================================================
--- a/src/gcc/config/i386/gnu-user64.h
+++ b/src/gcc/config/i386/gnu-user64.h
@@ -56,6 +56,7 @@
                   "%{" SPEC_64 ":-m " GNU_USER_LINK_EMULATION64 "} \
                    %{" SPEC_32 ":-m " GNU_USER_LINK_EMULATION32 "} \
                    %{" SPEC_X32 ":-m " GNU_USER_LINK_EMULATIONX32 "} \
+  --hash-style=both \
   %{shared:-shared} \
   %{!shared: \
     %{!static: \
Index: b/src/gcc/config/aarch64/aarch64-linux.h
===================================================================
--- a/src/gcc/config/aarch64/aarch64-linux.h
+++ b/src/gcc/config/aarch64/aarch64-linux.h
@@ -24,6 +24,7 @@
 #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64.so.1"
 
 #define LINUX_TARGET_LINK_SPEC  "%{h*}		\
+   --hash-style=both				\
    %{static:-Bstatic}				\
    %{shared:-shared}				\
    %{symbolic:-Bsymbolic}			\
Index: b/src/gcc/config/riscv/linux.h
===================================================================
--- a/src/gcc/config/riscv/linux.h
+++ b/src/gcc/config/riscv/linux.h
@@ -50,6 +50,7 @@
 #define CPP_SPEC "%{pthread:-D_REENTRANT}"
 
 #define LINK_SPEC "\
+-hash-style=both \
 -melf" XLEN_SPEC "lriscv \
 %{shared} \
   {!shared: \
