diff mbox

[5/9] Specs cleanup: -dynamic-linker

Message ID Pine.LNX.4.64.1012021635160.26340@digraph.polyomino.org.uk
State New
Headers show

Commit Message

Joseph Myers Dec. 2, 2010, 4:35 p.m. UTC
In <http://gcc.gnu.org/ml/gcc-patches/2010-10/msg02373.html> I noted:

    There are a lot of *broken* specs for different targets of the form
    "%{!dynamic-linker:-dynamic-linker /lib/ld.so}".  These treat
    -dynamic-linker as a no-argument option whose effect is to disable the
    passing of a -dynamic-linker option to the linker.  The intended
    effect is clearly to avoid passing such an option if the user
    specified a dynamic linker explicitly - but it doesn't have that
    effect as there are no specs to pass through an explicit
    -dynamic-linker option and its argument.  Thus, all these specs should
    be simplified in a subsequent cleanup to remove the
    "%{!dynamic-linker:}" parts.

This patch effects that cleanup for all the affected specs.  The way
to pass -dynamic-linker options to the linker, that actually works,
remains use of -Wl, just as before, and options passed that way will
reliably come after, and so overrive, the default -dynamic-linker
options from LINK_SPEC.

2010-12-02  Joseph Myers  <joseph@codesourcery.com>

	* config/alpha/freebsd.h (LINK_SPEC): Don't use
	%{!dynamic-linker:}.
	* config/alpha/linux-elf.h (LINK_SPEC): Likewise.
	* config/arm/freebsd.h (LINK_SPEC): Likewise.
	* config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Likewise.
	* config/bfin/linux.h (LINK_SPEC): Likewise.
	* config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Likewise.
	* config/frv/linux.h (LINK_SPEC): Likewise.
	* config/i386/freebsd.h (LINK_SPEC): Likewise.
	* config/i386/freebsd64.h (LINK_SPEC): Likewise.
	* config/i386/linux.h (LINK_SPEC): Likewise.
	* config/i386/linux64.h (LINK_SPEC): Likewise.
	* config/i386/openbsdelf.h (LINK_SPEC): Likewise.
	* config/ia64/freebsd.h (LINK_SPEC): Likewise.
	* config/ia64/linux.h (LINK_SPEC): Likewise.
	* config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
	* config/m32r/linux.h (LINK_SPEC): Likewise.
	* config/m68k/linux.h (LINK_SPEC): Likewise.
	* config/microblaze/linux.h (LINK_SPEC): Likewise.
	* config/mips/linux.h (LINK_SPEC): Likewise.
	* config/mips/linux64.h (LINK_SPEC): Likewise.
	* config/mips/openbsd.h (LINK_SPEC): Likewise.
	* config/mn10300/linux.h (LINK_SPEC): Likewise.
	* config/netbsd-elf.h (LINK_SPEC): Likewise.
	* config/pa/pa-linux.h (LINK_SPEC): Likewise.
	* config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32,
	LINK_OS_LINUX_SPEC64): Likewise.
	* config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC,
	LINK_OS_LINUX_SPEC, LINK_OS_GNU_SPEC, LINK_OS_NETBSD_SPEC):
	Likewise.
	* config/s390/linux.h (LINK_SPEC): Likewise.
	* config/sh/linux.h (SUBTARGET_LINK_SPEC): Likewise.
	* config/sparc/freebsd.h (LINK_SPEC): Likewise.
	* config/sparc/linux.h (LINK_SPEC): Likewise.
	* config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
	LINK_SPEC): Likewise.
	* config/sparc/openbsd64.h (LINK_SPEC): Likewise.
	* config/vax/linux.h (LINK_SPEC): Likewise.
	* config/xtensa/linux.h (LINK_SPEC): Likewise.

Comments

Joseph Myers Dec. 9, 2010, 11:29 a.m. UTC | #1
Ping.  This patch 
<http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00194.html> is pending 
review.
Richard Biener Dec. 9, 2010, 12:50 p.m. UTC | #2
On Thu, Dec 9, 2010 at 12:29 PM, Joseph S. Myers
<joseph@codesourcery.com> wrote:
> Ping.  This patch
> <http://gcc.gnu.org/ml/gcc-patches/2010-12/msg00194.html> is pending
> review.

Ok.

Thanks,
Richard.

> --
> Joseph S. Myers
> joseph@codesourcery.com
>
diff mbox

Patch

diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/alpha/freebsd.h gcc-mainline/gcc/config/alpha/freebsd.h
--- gcc-mainline-4/gcc/config/alpha/freebsd.h	2010-12-01 16:23:35.000000000 -0800
+++ gcc-mainline/gcc/config/alpha/freebsd.h	2010-12-01 17:09:15.000000000 -0800
@@ -37,7 +37,7 @@  along with GCC; see the file COPYING3.  
   %{!shared:								\
     %{!static:								\
       %{rdynamic:-export-dynamic}					\
-      %{!dynamic-linker:-dynamic-linker %(fbsd_dynamic_linker) }}	\
+      -dynamic-linker %(fbsd_dynamic_linker) }	\
     %{static:-Bstatic}}							\
   %{symbolic:-Bsymbolic}"
 
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/alpha/linux-elf.h gcc-mainline/gcc/config/alpha/linux-elf.h
--- gcc-mainline-4/gcc/config/alpha/linux-elf.h	2010-05-27 13:13:54.000000000 -0700
+++ gcc-mainline/gcc/config/alpha/linux-elf.h	2010-12-01 17:11:56.000000000 -0800
@@ -1,6 +1,6 @@ 
 /* Definitions of target machine for GNU compiler
    for Alpha Linux-based GNU systems using ELF.
-   Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2006, 2007
+   Copyright (C) 1996, 1997, 1998, 2001, 2002, 2003, 2006, 2007, 2010
    Free Software Foundation, Inc.
    Contributed by Richard Henderson.
 
@@ -47,7 +47,7 @@  along with GCC; see the file COPYING3.  
   %{!shared:							\
     %{!static:							\
       %{rdynamic:-export-dynamic}				\
-      %{!dynamic-linker:-dynamic-linker %(elf_dynamic_linker)}}	\
+      -dynamic-linker %(elf_dynamic_linker)}	\
     %{static:-static}}"
 
 #undef LIB_SPEC
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/arm/freebsd.h gcc-mainline/gcc/config/arm/freebsd.h
--- gcc-mainline-4/gcc/config/arm/freebsd.h	2010-11-10 15:24:03.000000000 -0800
+++ gcc-mainline/gcc/config/arm/freebsd.h	2010-12-01 17:09:15.000000000 -0800
@@ -35,7 +35,7 @@ 
   %{!shared:								\
     %{!static:								\
       %{rdynamic:-export-dynamic}					\
-      %{!dynamic-linker:-dynamic-linker %(fbsd_dynamic_linker) }}	\
+      -dynamic-linker %(fbsd_dynamic_linker) }	\
     %{static:-Bstatic}}							\
   %{symbolic:-Bsymbolic}"
 
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/arm/linux-elf.h gcc-mainline/gcc/config/arm/linux-elf.h
--- gcc-mainline-4/gcc/config/arm/linux-elf.h	2009-12-30 09:05:39.000000000 -0800
+++ gcc-mainline/gcc/config/arm/linux-elf.h	2010-12-01 17:12:25.000000000 -0800
@@ -1,6 +1,6 @@ 
 /* Definitions for ARM running Linux-based GNU systems using ELF
    Copyright (C) 1993, 1994, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-   2005, 2006, 2007, 2008
+   2005, 2006, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
    Contributed by Philip Blundell <philb@gnu.org>
 
@@ -70,7 +70,7 @@ 
    %{shared:-shared} \
    %{symbolic:-Bsymbolic} \
    %{rdynamic:-export-dynamic} \
-   %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "} \
+   -dynamic-linker " LINUX_DYNAMIC_LINKER " \
    -X \
    %{mbig-endian:-EB} %{mlittle-endian:-EL}" \
    SUBTARGET_EXTRA_LINK_SPEC
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/bfin/linux.h gcc-mainline/gcc/config/bfin/linux.h
--- gcc-mainline-4/gcc/config/bfin/linux.h	2009-10-07 09:35:30.000000000 -0700
+++ gcc-mainline/gcc/config/bfin/linux.h	2010-12-01 17:12:47.000000000 -0800
@@ -1,4 +1,4 @@ 
-/* Copyright (C) 2007, 2008 Free Software Foundation, Inc.
+/* Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -45,7 +45,7 @@  see the files COPYING3 and COPYING.RUNTI
   %{shared:-G -Bdynamic} \
   %{!shared: %{!static: \
    %{rdynamic:-export-dynamic} \
-   %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}} \
+   -dynamic-linker /lib/ld-uClibc.so.0} \
    %{static}} -init __init -fini __fini"
 
 #define MD_UNWIND_SUPPORT "config/bfin/linux-unwind.h"
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/cris/linux.h gcc-mainline/gcc/config/cris/linux.h
--- gcc-mainline-4/gcc/config/cris/linux.h	2009-03-28 00:38:23.000000000 -0700
+++ gcc-mainline/gcc/config/cris/linux.h	2010-12-01 17:13:26.000000000 -0800
@@ -1,5 +1,5 @@ 
 /* Definitions for GCC.  Part of the machine description for CRIS.
-   Copyright (C) 2001, 2002, 2003, 2005, 2006, 2007, 2008
+   Copyright (C) 2001, 2002, 2003, 2005, 2006, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
    Contributed by Axis Communications.  Written by Hans-Peter Nilsson.
 
@@ -116,7 +116,7 @@  along with GCC; see the file COPYING3.  
   %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\
   %{!shared:%{!static:\
               %{rdynamic:-export-dynamic}\
-              %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}\
+              -dynamic-linker " LINUX_DYNAMIC_LINKER "}}\
   %{!r:%{O2|O3: --gc-sections}}"
 
 
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/frv/linux.h gcc-mainline/gcc/config/frv/linux.h
--- gcc-mainline-4/gcc/config/frv/linux.h	2009-03-28 00:38:00.000000000 -0700
+++ gcc-mainline/gcc/config/frv/linux.h	2010-12-01 17:13:44.000000000 -0800
@@ -1,5 +1,5 @@ 
 /* Target macros for the FRV Linux port of GCC.
-   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007
+   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2007, 2010
    Free Software Foundation, Inc.
    Contributed by Red Hat Inc.
 
@@ -42,7 +42,7 @@ 
   %{mfdpic: -m elf32frvfd -z text} %{shared} %{pie} \
   %{!shared: %{!static: \
    %{rdynamic:-export-dynamic} \
-   %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
+   -dynamic-linker " LINUX_DYNAMIC_LINKER "} \
    %{static}}"
 
 /* Support for compile-time default CPU.  */
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/i386/freebsd.h gcc-mainline/gcc/config/i386/freebsd.h
--- gcc-mainline-4/gcc/config/i386/freebsd.h	2010-11-10 15:24:02.000000000 -0800
+++ gcc-mainline/gcc/config/i386/freebsd.h	2010-12-01 17:09:15.000000000 -0800
@@ -108,7 +108,7 @@  along with GCC; see the file COPYING3.  
     %{!shared: \
       %{!static: \
         %{rdynamic:-export-dynamic} \
-        %{!dynamic-linker:-dynamic-linker %(fbsd_dynamic_linker) }} \
+        -dynamic-linker %(fbsd_dynamic_linker) } \
     %{static:-Bstatic}} \
   %{symbolic:-Bsymbolic}"
 
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/i386/freebsd64.h gcc-mainline/gcc/config/i386/freebsd64.h
--- gcc-mainline-4/gcc/config/i386/freebsd64.h	2009-03-28 00:38:14.000000000 -0700
+++ gcc-mainline/gcc/config/i386/freebsd64.h	2010-12-01 17:14:06.000000000 -0800
@@ -1,5 +1,5 @@ 
 /* Definitions for AMD x86-64 running FreeBSD with ELF format
-   Copyright (C) 2002, 2004, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2007, 2010 Free Software Foundation, Inc.
    Contributed by David O'Brien <obrien@FreeBSD.org>
 
 This file is part of GCC.
@@ -38,6 +38,6 @@  along with GCC; see the file COPYING3.  
     %{!shared: \
       %{!static: \
         %{rdynamic:-export-dynamic} \
-	%{!dynamic-linker:-dynamic-linker %(fbsd_dynamic_linker) }} \
+	-dynamic-linker %(fbsd_dynamic_linker) } \
     %{static:-Bstatic}} \
   %{symbolic:-Bsymbolic}"
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/i386/linux.h gcc-mainline/gcc/config/i386/linux.h
--- gcc-mainline-4/gcc/config/i386/linux.h	2010-12-01 05:44:20.000000000 -0800
+++ gcc-mainline/gcc/config/i386/linux.h	2010-12-01 17:09:15.000000000 -0800
@@ -117,7 +117,7 @@  along with GCC; see the file COPYING3.  
     %{!ibcs: \
       %{!static: \
 	%{rdynamic:-export-dynamic} \
-	%{!dynamic-linker:-dynamic-linker %(dynamic_linker)}} \
+	-dynamic-linker %(dynamic_linker)} \
 	%{static:-static}}}"
 
 /* Similar to standard Linux, but adding -ffast-math support.  */
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/i386/linux64.h gcc-mainline/gcc/config/i386/linux64.h
--- gcc-mainline-4/gcc/config/i386/linux64.h	2010-12-01 05:44:20.000000000 -0800
+++ gcc-mainline/gcc/config/i386/linux64.h	2010-12-01 17:09:15.000000000 -0800
@@ -80,8 +80,8 @@  see the files COPYING3 and COPYING.RUNTI
   %{!shared: \
     %{!static: \
       %{rdynamic:-export-dynamic} \
-      %{" SPEC_32 ":%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "}} \
-      %{" SPEC_64 ":%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}} \
+      %{" SPEC_32 ":-dynamic-linker " LINUX_DYNAMIC_LINKER32 "} \
+      %{" SPEC_64 ":-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}} \
     %{static:-static}}"
 
 /* Similar to standard Linux, but adding -ffast-math support.  */
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/i386/openbsdelf.h gcc-mainline/gcc/config/i386/openbsdelf.h
--- gcc-mainline-4/gcc/config/i386/openbsdelf.h	2009-10-07 09:35:28.000000000 -0700
+++ gcc-mainline/gcc/config/i386/openbsdelf.h	2010-12-01 17:14:42.000000000 -0800
@@ -1,6 +1,6 @@ 
 /* Configuration for an OpenBSD i386 target.
    
-   Copyright (C) 2005, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 2009, 2010 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -129,6 +129,6 @@  along with GCC; see the file COPYING3.  
    %{static:-Bstatic} \
    %{!static:-Bdynamic} \
    %{assert*} \
-   %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}"
+   -dynamic-linker /usr/libexec/ld.so"
 
 #define OBSD_HAS_CORRECT_SPECS
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/ia64/freebsd.h gcc-mainline/gcc/config/ia64/freebsd.h
--- gcc-mainline-4/gcc/config/ia64/freebsd.h	2010-11-10 15:24:03.000000000 -0800
+++ gcc-mainline/gcc/config/ia64/freebsd.h	2010-12-01 17:09:15.000000000 -0800
@@ -30,7 +30,7 @@  along with GCC; see the file COPYING3.  
   %{!shared:								\
     %{!static:								\
       %{rdynamic:-export-dynamic}					\
-      %{!dynamic-linker:-dynamic-linker %(fbsd_dynamic_linker) }}	\
+      -dynamic-linker %(fbsd_dynamic_linker) }	\
     %{static:-Bstatic}}"
 
 
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/ia64/linux.h gcc-mainline/gcc/config/ia64/linux.h
--- gcc-mainline-4/gcc/config/ia64/linux.h	2009-04-24 16:20:51.000000000 -0700
+++ gcc-mainline/gcc/config/ia64/linux.h	2010-12-01 17:14:58.000000000 -0800
@@ -1,7 +1,7 @@ 
 /* Definitions for ia64-linux target.
 
 Copyright (C) 2000, 2001, 2002, 2003, 2004, 2006,
-2009 Free Software Foundation, Inc.
+2009, 2010 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -69,7 +69,7 @@  do {						\
   %{!shared: \
     %{!static: \
       %{rdynamic:-export-dynamic} \
-      %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
+      -dynamic-linker " LINUX_DYNAMIC_LINKER "} \
       %{static:-static}}"
 
 #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/lm32/uclinux-elf.h gcc-mainline/gcc/config/lm32/uclinux-elf.h
--- gcc-mainline-4/gcc/config/lm32/uclinux-elf.h	2010-12-01 16:24:40.000000000 -0800
+++ gcc-mainline/gcc/config/lm32/uclinux-elf.h	2010-12-01 17:09:15.000000000 -0800
@@ -73,7 +73,7 @@ 
    %{shared:-shared} \
    %{symbolic:-Bsymbolic} \
    %{rdynamic:-export-dynamic} \
-   %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}"
+   -dynamic-linker /lib/ld-linux.so.2"
 
 #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS()
 
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/m32r/linux.h gcc-mainline/gcc/config/m32r/linux.h
--- gcc-mainline-4/gcc/config/m32r/linux.h	2010-11-19 13:25:32.000000000 -0800
+++ gcc-mainline/gcc/config/m32r/linux.h	2010-12-01 17:09:15.000000000 -0800
@@ -63,7 +63,7 @@ 
     %{!ibcs: \
       %{!static: \
 	%{rdynamic:-export-dynamic} \
-	%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
+	-dynamic-linker " LINUX_DYNAMIC_LINKER "} \
 	%{static:-static}}}"
 #else
 #define LINK_SPEC "%(link_cpu) -m m32relf_linux %{shared:-shared} \
@@ -71,7 +71,7 @@ 
     %{!ibcs: \
       %{!static: \
 	%{rdynamic:-export-dynamic} \
-	%{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
+	-dynamic-linker " LINUX_DYNAMIC_LINKER "} \
 	%{static:-static}}}"
 #endif
 
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/m68k/linux.h gcc-mainline/gcc/config/m68k/linux.h
--- gcc-mainline-4/gcc/config/m68k/linux.h	2010-12-01 16:53:30.000000000 -0800
+++ gcc-mainline/gcc/config/m68k/linux.h	2010-12-01 17:10:16.000000000 -0800
@@ -91,7 +91,7 @@  along with GCC; see the file COPYING3.  
   %{!shared: \
     %{!static: \
       %{rdynamic:-export-dynamic} \
-      %{!dynamic-linker*:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
+      -dynamic-linker " LINUX_DYNAMIC_LINKER "} \
     %{static}}"
 
 /* For compatibility with linux/a.out */
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/microblaze/linux.h gcc-mainline/gcc/config/microblaze/linux.h
--- gcc-mainline-4/gcc/config/microblaze/linux.h	2010-10-04 04:47:05.000000000 -0700
+++ gcc-mainline/gcc/config/microblaze/linux.h	2010-12-01 17:09:16.000000000 -0800
@@ -30,6 +30,6 @@ 
   %{!shared: \
     %{!static: \
       %{rdynamic:-export-dynamic} \
-      %{!dynamic-linker:-dynamic-linker %(dynamic_linker)}} \
+      -dynamic-linker %(dynamic_linker)} \
     %{static:-static}}"
 
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/mips/linux.h gcc-mainline/gcc/config/mips/linux.h
--- gcc-mainline-4/gcc/config/mips/linux.h	2010-06-16 09:07:32.000000000 -0700
+++ gcc-mainline/gcc/config/mips/linux.h	2010-12-01 17:15:46.000000000 -0800
@@ -1,6 +1,6 @@ 
 /* Definitions for MIPS running Linux-based GNU systems with ELF format.
    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-   2007, 2008 Free Software Foundation, Inc.
+   2007, 2008, 2010 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -75,7 +75,7 @@  along with GCC; see the file COPYING3.  
     %{!ibcs: \
       %{!static: \
         %{rdynamic:-export-dynamic} \
-        %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
+        -dynamic-linker " LINUX_DYNAMIC_LINKER "} \
         %{static:-static}}}"
 
 #undef SUBTARGET_ASM_SPEC
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/mips/linux64.h gcc-mainline/gcc/config/mips/linux64.h
--- gcc-mainline-4/gcc/config/mips/linux64.h	2010-06-16 09:07:32.000000000 -0700
+++ gcc-mainline/gcc/config/mips/linux64.h	2010-12-01 17:16:01.000000000 -0800
@@ -1,6 +1,6 @@ 
 /* Definitions for MIPS running Linux-based GNU systems with ELF format
    using n32/64 abi.
-   Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008
+   Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -54,10 +54,9 @@  along with GCC; see the file COPYING3.  
     %{!ibcs: \
       %{!static: \
         %{rdynamic:-export-dynamic} \
-        %{!dynamic-linker: \
-	  %{mabi=n32: -dynamic-linker " LINUX_DYNAMIC_LINKERN32 "} \
-	  %{mabi=64: -dynamic-linker " LINUX_DYNAMIC_LINKER64 "} \
-	  %{mabi=32: -dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}} \
+	%{mabi=n32: -dynamic-linker " LINUX_DYNAMIC_LINKERN32 "} \
+	%{mabi=64: -dynamic-linker " LINUX_DYNAMIC_LINKER64 "} \
+	%{mabi=32: -dynamic-linker " LINUX_DYNAMIC_LINKER32 "}} \
       %{static:-static}}} \
 %{mabi=n32:-melf32%{EB:b}%{EL:l}tsmipn32} \
 %{mabi=64:-melf64%{EB:b}%{EL:l}tsmip} \
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/mips/openbsd.h gcc-mainline/gcc/config/mips/openbsd.h
--- gcc-mainline-4/gcc/config/mips/openbsd.h	2009-10-07 09:35:30.000000000 -0700
+++ gcc-mainline/gcc/config/mips/openbsd.h	2010-12-01 17:16:19.000000000 -0800
@@ -1,5 +1,6 @@ 
 /* Configuration for  a MIPS ABI32 OpenBSD target.
-   Copyright (C) 1999, 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2003, 2004, 2007, 2008, 2009, 2010
+   Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -81,7 +82,7 @@  along with GCC; see the file COPYING3.  
    %{bestGnum} %{shared} %{non_shared} \
    %{call_shared} %{no_archive} %{exact_version} \
    %{!shared: %{!non_shared: %{!call_shared: -non_shared}}} \
-   %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so} \
+   -dynamic-linker /usr/libexec/ld.so \
    %{!nostdlib:%{!r*:%{!e*:-e __start}}} -dc -dp \
    %{static:-Bstatic} %{!static:-Bdynamic} %{assert*}"
 
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/mn10300/linux.h gcc-mainline/gcc/config/mn10300/linux.h
--- gcc-mainline-4/gcc/config/mn10300/linux.h	2010-12-01 16:25:44.000000000 -0800
+++ gcc-mainline/gcc/config/mn10300/linux.h	2010-12-01 17:09:16.000000000 -0800
@@ -38,7 +38,7 @@ 
 #define LINK_SPEC "%{mrelax:--relax} %{shared:-shared} \
    %{!static: \
      %{rdynamic:-export-dynamic} \
-     %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
+     -dynamic-linker " LINUX_DYNAMIC_LINKER "} \
    %{static:-static}"
 
 #undef  PROCESSOR_DEFAULT
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/netbsd-elf.h gcc-mainline/gcc/config/netbsd-elf.h
--- gcc-mainline-4/gcc/config/netbsd-elf.h	2010-10-24 09:33:31.000000000 -0700
+++ gcc-mainline/gcc/config/netbsd-elf.h	2010-12-01 17:09:15.000000000 -0800
@@ -77,7 +77,7 @@  along with GCC; see the file COPYING3.  
 	 %{!e*:-e %(netbsd_entry_point)}}} \
      %{!static: \
        %{rdynamic:-export-dynamic} \
-       %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}} \
+       -dynamic-linker /usr/libexec/ld.elf_so} \
      %{static:-static}}"
 
 /* Use --as-needed -lgcc_s for eh support.  */
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/pa/pa-linux.h gcc-mainline/gcc/config/pa/pa-linux.h
--- gcc-mainline-4/gcc/config/pa/pa-linux.h	2010-12-01 16:53:39.000000000 -0800
+++ gcc-mainline/gcc/config/pa/pa-linux.h	2010-12-01 17:09:16.000000000 -0800
@@ -46,7 +46,7 @@  along with GCC; see the file COPYING3.  
   %{!shared: \
     %{!static: \
       %{rdynamic:-export-dynamic} \
-      %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
+      -dynamic-linker " LINUX_DYNAMIC_LINKER "} \
       %{static:-static}}"
 
 /* glibc's profiling functions don't need gcc to allocate counters.  */
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/rs6000/linux64.h gcc-mainline/gcc/config/rs6000/linux64.h
--- gcc-mainline-4/gcc/config/rs6000/linux64.h	2010-12-01 16:53:56.000000000 -0800
+++ gcc-mainline/gcc/config/rs6000/linux64.h	2010-12-01 17:09:16.000000000 -0800
@@ -392,11 +392,11 @@  extern int dot_symbols;
 
 #define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
   %{rdynamic:-export-dynamic} \
-  %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}}"
+  -dynamic-linker " LINUX_DYNAMIC_LINKER32 "}}"
 
 #define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
   %{rdynamic:-export-dynamic} \
-  %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}}"
+  -dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}"
 
 #undef  TOC_SECTION_ASM_OP
 #define TOC_SECTION_ASM_OP \
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/rs6000/sysv4.h gcc-mainline/gcc/config/rs6000/sysv4.h
--- gcc-mainline-4/gcc/config/rs6000/sysv4.h	2010-12-01 16:27:00.000000000 -0800
+++ gcc-mainline/gcc/config/rs6000/sysv4.h	2010-12-01 17:09:16.000000000 -0800
@@ -834,7 +834,7 @@  SVR4_ASM_SPEC \
   %{!shared: \
     %{!static: \
       %{rdynamic: -export-dynamic} \
-      %{!dynamic-linker:-dynamic-linker %(fbsd_dynamic_linker) }} \
+      -dynamic-linker %(fbsd_dynamic_linker) } \
     %{static:-Bstatic}} \
   %{symbolic:-Bsymbolic}"
 
@@ -875,7 +875,7 @@  SVR4_ASM_SPEC \
 
 #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
   %{rdynamic:-export-dynamic} \
-  %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
+  -dynamic-linker " LINUX_DYNAMIC_LINKER "}}"
 
 #if defined(HAVE_LD_EH_FRAME_HDR)
 # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
@@ -906,7 +906,7 @@  SVR4_ASM_SPEC \
 
 #define LINK_OS_GNU_SPEC "-m elf32ppclinux %{!shared: %{!static: \
   %{rdynamic:-export-dynamic} \
-  %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
+  -dynamic-linker /lib/ld.so.1}}"
 
 #define CPP_OS_GNU_SPEC "-D__unix__ -D__gnu_hurd__ -D__GNU__	\
 %{!undef:					                \
@@ -931,7 +931,7 @@  ncrtn.o%s"
 #define LINK_OS_NETBSD_SPEC "\
 %{!shared: %{!static: \
   %{rdynamic:-export-dynamic} \
-  %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}}}"
+  -dynamic-linker /usr/libexec/ld.elf_so}}"
 
 #define CPP_OS_NETBSD_SPEC "\
 -D__powerpc__ -D__NetBSD__ -D__KPRINTF_ATTRIBUTE__"
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/s390/linux.h gcc-mainline/gcc/config/s390/linux.h
--- gcc-mainline-4/gcc/config/s390/linux.h	2009-03-28 00:38:01.000000000 -0700
+++ gcc-mainline/gcc/config/s390/linux.h	2010-12-01 17:17:13.000000000 -0800
@@ -1,5 +1,5 @@ 
 /* Definitions for Linux for S/390.
-   Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007
+   Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2010
    Free Software Foundation, Inc.
    Contributed by Hartmut Penner (hpenner@de.ibm.com) and
                   Ulrich Weigand (uweigand@de.ibm.com).
@@ -83,9 +83,8 @@  along with GCC; see the file COPYING3.  
       %{static:-static} \
       %{!static: \
 	%{rdynamic:-export-dynamic} \
-	%{!dynamic-linker: \
-          %{m31:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "} \
-          %{m64:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}}}"
+	%{m31:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "} \
+	%{m64:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}}}"
 
 #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
 
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/sh/linux.h gcc-mainline/gcc/config/sh/linux.h
--- gcc-mainline-4/gcc/config/sh/linux.h	2009-03-28 00:38:19.000000000 -0700
+++ gcc-mainline/gcc/config/sh/linux.h	2010-12-01 17:17:30.000000000 -0800
@@ -1,5 +1,5 @@ 
 /* Definitions for SH running Linux-based GNU systems using ELF
-   Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007
+   Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2010
    Free Software Foundation, Inc.
    Contributed by Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
 
@@ -56,7 +56,7 @@  along with GCC; see the file COPYING3.  
   "%{shared:-shared} \
    %{!static: \
      %{rdynamic:-export-dynamic} \
-     %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
+     -dynamic-linker " LINUX_DYNAMIC_LINKER "} \
    %{static:-static}"
 
 /* Output assembler code to STREAM to call the profiler.  */
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/sparc/freebsd.h gcc-mainline/gcc/config/sparc/freebsd.h
--- gcc-mainline-4/gcc/config/sparc/freebsd.h	2010-11-10 15:24:02.000000000 -0800
+++ gcc-mainline/gcc/config/sparc/freebsd.h	2010-12-01 17:09:16.000000000 -0800
@@ -39,7 +39,7 @@  along with GCC; see the file COPYING3.  
   %{!shared:								\
     %{!static:								\
       %{rdynamic:-export-dynamic}					\
-      %{!dynamic-linker:-dynamic-linker %(fbsd_dynamic_linker) }}	\
+      -dynamic-linker %(fbsd_dynamic_linker) }	\
     %{static:-Bstatic}}"
 
 
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/sparc/linux.h gcc-mainline/gcc/config/sparc/linux.h
--- gcc-mainline-4/gcc/config/sparc/linux.h	2010-12-01 16:54:16.000000000 -0800
+++ gcc-mainline/gcc/config/sparc/linux.h	2010-12-01 17:09:16.000000000 -0800
@@ -92,7 +92,7 @@  along with GCC; see the file COPYING3.  
     %{!ibcs: \
       %{!static: \
         %{rdynamic:-export-dynamic} \
-        %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
+        -dynamic-linker " LINUX_DYNAMIC_LINKER "} \
         %{static:-static}}}"
 
 /* The sun bundled assembler doesn't accept -Yd, (and neither does gas).
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/sparc/linux64.h gcc-mainline/gcc/config/sparc/linux64.h
--- gcc-mainline-4/gcc/config/sparc/linux64.h	2010-12-01 16:54:26.000000000 -0800
+++ gcc-mainline/gcc/config/sparc/linux64.h	2010-12-01 17:09:16.000000000 -0800
@@ -126,7 +126,7 @@  along with GCC; see the file COPYING3.  
     %{!ibcs: \
       %{!static: \
         %{rdynamic:-export-dynamic} \
-        %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER32 "}} \
+        -dynamic-linker " LINUX_DYNAMIC_LINKER32 "} \
         %{static:-static}}} \
 "
 
@@ -135,7 +135,7 @@  along with GCC; see the file COPYING3.  
     %{!ibcs: \
       %{!static: \
         %{rdynamic:-export-dynamic} \
-        %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}} \
+        -dynamic-linker " LINUX_DYNAMIC_LINKER64 "} \
         %{static:-static}}} \
 "
 
@@ -216,7 +216,7 @@  along with GCC; see the file COPYING3.  
     %{!ibcs: \
       %{!static: \
         %{rdynamic:-export-dynamic} \
-        %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER64 "}} \
+        -dynamic-linker " LINUX_DYNAMIC_LINKER64 "} \
         %{static:-static}}} \
 %{mlittle-endian:-EL} \
 %{!mno-relax:%{!r:-relax}} \
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/sparc/openbsd64.h gcc-mainline/gcc/config/sparc/openbsd64.h
--- gcc-mainline-4/gcc/config/sparc/openbsd64.h	2009-03-28 00:38:07.000000000 -0700
+++ gcc-mainline/gcc/config/sparc/openbsd64.h	2010-12-01 17:18:01.000000000 -0800
@@ -1,5 +1,5 @@ 
 /* Configuration file for sparc64 OpenBSD target.
-   Copyright (C) 1999, 2005, 2007 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2005, 2007, 2010 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -77,7 +77,7 @@  along with GCC; see the file COPYING3.  
    %{static:-Bstatic} \
    %{!static:-Bdynamic} \
    %{assert*} \
-   %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}"
+   -dynamic-linker /usr/libexec/ld.so"
 
 /* As an elf system, we need crtbegin/crtend stuff.  */
 #undef STARTFILE_SPEC
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/vax/linux.h gcc-mainline/gcc/config/vax/linux.h
--- gcc-mainline-4/gcc/config/vax/linux.h	2009-12-30 09:05:41.000000000 -0800
+++ gcc-mainline/gcc/config/vax/linux.h	2010-12-01 17:18:12.000000000 -0800
@@ -1,5 +1,5 @@ 
 /* Definitions for VAX running Linux-based GNU systems with ELF format.
-   Copyright (C) 2007, 2009 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -44,5 +44,5 @@  along with GCC; see the file COPYING3.  
   %{!shared: \
     %{!static: \
       %{rdynamic:-export-dynamic} \
-      %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
+      -dynamic-linker /lib/ld.so.1} \
     %{static:-static}}"
diff -rupN --exclude=.svn gcc-mainline-4/gcc/config/xtensa/linux.h gcc-mainline/gcc/config/xtensa/linux.h
--- gcc-mainline-4/gcc/config/xtensa/linux.h	2009-03-28 00:38:21.000000000 -0700
+++ gcc-mainline/gcc/config/xtensa/linux.h	2010-12-01 17:18:28.000000000 -0800
@@ -1,6 +1,6 @@ 
 /* Xtensa Linux configuration.
    Derived from the configuration for GCC for Intel i386 running Linux.
-   Copyright (C) 2001, 2002, 2003, 2006, 2007, 2008
+   Copyright (C) 2001, 2002, 2003, 2006, 2007, 2008, 2010
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -52,7 +52,7 @@  along with GCC; see the file COPYING3.  
     %{!ibcs: \
       %{!static: \
         %{rdynamic:-export-dynamic} \
-        %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}} \
+        -dynamic-linker " LINUX_DYNAMIC_LINKER "} \
       %{static:-static}}}"
 
 #undef LOCAL_LABEL_PREFIX