On 03/09/2012 10:54 AM, Nix wrote:
This is not a GCC-specific thing: it's a local
distro patch to GCC's
specfiles forcing the addition of -Wl,--no-copy-dt-needed-entries to all
link lines (or -Wl,--no-add-needed on older binutils, which means the
same thing but is a confusing option name so is deprecated). This is a
good idea in the longer run, even though it does break things now.
(A lot of distros have this patch, but not all. Upstream GCC does not
have it.)
I'm using gcc 4.6.3-1 :(
This is, of course, a local distro version. What patches are applied
depends on what distro you're using.
Nix,
That got me curious and I looked at all the patches - not many, and I can't
find the one your talking about. Below are all the patches applied to Archlinux
gcc. Is what you are talking about there, so I know what patch is doing it??
tmp/gcc> for i in *.patch; do \
echo -e "\n################## $i ################\n" \
cat $i; done
################## gcc-4.6.2-cloog-0.17.patch ################
diff -Naur gcc-4.6-20120120-orig/configure gcc-4.6-20120120/configure
--- gcc-4.6-20120120-orig/configure 2011-12-18 20:03:44.000000000 +1000
+++ gcc-4.6-20120120/configure 2012-02-03 17:55:14.885990135 +1000
@@ -6049,8 +6049,8 @@
LDFLAGS="${_cloog_saved_LDFLAGS} ${clooglibs} ${ppllibs}"
if test "${cloog_org}" = yes ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.16.1 of
CLooG" >&5
-$as_echo_n "checking for version 0.16.1 of CLooG... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for version 0.17 of
CLooG" >&5
+$as_echo_n "checking for version 0.17 of CLooG... " >&6; }
if test "${gcc_cv_cloog_ct_0_14_0+set}" = set; then :
$as_echo_n "(cached) " >&6
else
@@ -6061,8 +6061,7 @@
main ()
{
#if CLOOG_VERSION_MAJOR != 0 \
- || CLOOG_VERSION_MINOR != 16 \
- || CLOOG_VERSION_REVISION < 1
+ || CLOOG_VERSION_MINOR != 17
choke me
#endif
;
diff -Naur gcc-4.6-20120120-orig/gcc/graphite-clast-to-gimple.c
gcc-4.6-20120120/gcc/graphite-clast-to-gimple.c
--- gcc-4.6-20120120-orig/gcc/graphite-clast-to-gimple.c 2011-03-13
08:05:38.000000000 +1000
+++ gcc-4.6-20120120/gcc/graphite-clast-to-gimple.c 2012-02-03
17:51:47.943463879 +1000
@@ -1367,7 +1367,7 @@
/* Change cloog output language to C. If we do use FORTRAN instead, cloog
will stop e.g. with "ERROR: unbounded loops not allowed in FORTRAN.", if
we pass an incomplete program to cloog. */
- options->language = LANGUAGE_C;
+ options->language = CLOOG_LANGUAGE_C;
/* Enable complex equality spreading: removes dummy statements
(assignments) in the generated code which repeats the
################## gcc-hash-style-both.patch ################
--- gcc/config/alpha/linux-elf.h.orig 2010-12-09 23:27:07.000000000 +1000
+++ gcc/config/alpha/linux-elf.h 2011-03-11 10:01:47.770000457 +1000
@@ -41,7 +41,7 @@
#define ELF_DYNAMIC_LINKER LINUX_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: \
--- gcc/config/i386/linux64.h.orig 2011-03-03 08:35:36.000000000 +1000
+++ gcc/config/i386/linux64.h 2011-03-11 10:01:47.770000457 +1000
@@ -78,7 +78,7 @@
%{!mno-sse2avx:%{mavx:-msse2avx}} %{msse2avx:%{!mavx:-msse2avx}}"
#undef LINK_SPEC
-#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m
elf_i386} \
+#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m
elf_i386}
--hash-style=both \
%{shared:-shared} \
%{!shared: \
%{!static: \
--- gcc/config/i386/linux.h.orig 2011-01-15 04:45:06.000000000 +1000
+++ gcc/config/i386/linux.h 2011-03-11 10:01:47.770000457 +1000
@@ -104,7 +104,7 @@
{ "dynamic_linker", LINUX_DYNAMIC_LINKER }
#undef LINK_SPEC
-#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \
+#define LINK_SPEC "-m %(link_emulation) --hash-style=both %{shared:-shared} \
%{!shared: \
%{!static: \
%{rdynamic:-export-dynamic} \
--- gcc/config/ia64/linux.h.orig 2010-12-09 23:27:07.000000000 +1000
+++ gcc/config/ia64/linux.h 2011-03-11 10:01:47.770000457 +1000
@@ -64,7 +64,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: \
--- gcc/config/rs6000/linux64.h.orig 2011-02-11 03:30:10.000000000 +1000
+++ gcc/config/rs6000/linux64.h 2011-03-11 10:03:34.280000457 +1000
@@ -389,11 +389,11 @@
CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER64)
-#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux --hash-style=both %{!shared:
%{!static: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}"
-#define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
+#define LINK_OS_LINUX_SPEC64 "-m elf64ppc --hash-style=both %{!shared: %{!static: \
%{rdynamic:-export-dynamic} \
-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}"
--- gcc/config/rs6000/sysv4.h.orig 2011-01-28 04:36:03.000000000 +1000
+++ gcc/config/rs6000/sysv4.h 2011-03-11 10:01:47.773333792 +1000
@@ -830,7 +830,7 @@
#define LINUX_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 " LINUX_DYNAMIC_LINKER "}}"
--- gcc/config/s390/linux.h.orig 2010-12-09 23:27:07.000000000 +1000
+++ gcc/config/s390/linux.h 2011-03-11 10:01:47.770000457 +1000
@@ -77,7 +77,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} \
--- gcc/config/sparc/linux64.h.orig 2011-02-17 23:57:21.000000000 +1000
+++ gcc/config/sparc/linux64.h 2011-03-11 10:01:47.770000457 +1000
@@ -113,7 +113,7 @@
{ "link_arch_default", LINK_ARCH_DEFAULT_SPEC }, \
{ "link_arch", LINK_ARCH_SPEC },
-#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,%R/usr/lib %{shared:-shared} \
+#define LINK_ARCH32_SPEC "-m elf32_sparc --hash-style=both -Y P,%R/usr/lib
%{shared:-shared} \
%{!shared: \
%{!static: \
%{rdynamic:-export-dynamic} \
@@ -121,7 +121,7 @@
%{static:-static}} \
"
-#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
+#define LINK_ARCH64_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64
%{shared:-shared} \
%{!shared: \
%{!static: \
%{rdynamic:-export-dynamic} \
@@ -193,7 +193,7 @@
#else /* !SPARC_BI_ARCH */
#undef LINK_SPEC
-#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \
+#define LINK_SPEC "-m elf64_sparc --hash-style=both -Y P,%R/usr/lib64
%{shared:-shared} \
%{!shared: \
%{!static: \
%{rdynamic:-export-dynamic} \
--- gcc/config/sparc/linux.h.orig 2011-01-27 06:30:12.000000000 +1000
+++ gcc/config/sparc/linux.h 2011-03-11 10:01:47.770000457 +1000
@@ -74,7 +74,7 @@
#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
#undef LINK_SPEC
-#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
+#define LINK_SPEC "-m elf32_sparc --hash-style=both -Y P,/usr/lib
%{shared:-shared} \
%{!mno-relax:%{!r:-relax}} \
%{!shared: \
%{!static: \
################## gcc_pure64.patch ################
diff -Naur gcc-4.2.0.orig/gcc/config/i386/linux64.h
gcc-4.2.0/gcc/config/i386/linux64.h
--- gcc-4.2.0.orig/gcc/config/i386/linux64.h 2007-05-16 19:21:19.000000000 -0400
+++ gcc-4.2.0/gcc/config/i386/linux64.h 2007-05-18 17:04:05.000000000 -0400
@@ -49,8 +49,8 @@
When the -shared link option is used a final link is not being
done. */
-#define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
-#define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux-x86-64.so.2"
+#define GLIBC_DYNAMIC_LINKER32 "/lib32/ld-linux.so.2"
+#define GLIBC_DYNAMIC_LINKER64 "/lib/ld-linux-x86-64.so.2"
#undef LINK_SPEC
#define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
diff -Naur gcc-4.2.0.orig/gcc/config/i386/t-linux64
gcc-4.2.0/gcc/config/i386/t-linux64
--- gcc-4.2.0.orig/gcc/config/i386/t-linux64 2007-05-16 19:21:19.000000000 -0400
+++ gcc-4.2.0/gcc/config/i386/t-linux64 2007-05-18 17:04:36.000000000 -0400
@@ -6,7 +6,7 @@
MULTILIB_OPTIONS = m64/m32
MULTILIB_DIRNAMES = 64 32
-MULTILIB_OSDIRNAMES = ../lib64 $(if $(wildcard $(shell echo
$(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)
+MULTILIB_OSDIRNAMES = ../lib ../lib32
LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
--
David C. Rankin, J.D.,P.E.