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.