From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18479 invoked by alias); 14 Jan 2011 10:09:36 -0000 Received: (qmail 18458 invoked by uid 22791); 14 Jan 2011 10:09:33 -0000 X-SWARE-Spam-Status: No, hits=-2.2 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Received: from mail-iw0-f175.google.com (HELO mail-iw0-f175.google.com) (209.85.214.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 14 Jan 2011 10:09:27 +0000 Received: by iwn8 with SMTP id 8so2502997iwn.20 for ; Fri, 14 Jan 2011 02:09:25 -0800 (PST) MIME-Version: 1.0 Received: by 10.231.191.4 with SMTP id dk4mr529024ibb.31.1294999765800; Fri, 14 Jan 2011 02:09:25 -0800 (PST) Received: by 10.231.35.134 with HTTP; Fri, 14 Jan 2011 02:09:25 -0800 (PST) In-Reply-To: References: Date: Fri, 14 Jan 2011 10:37:00 -0000 Message-ID: Subject: Re: [05/25] Specs cleanup: -ibcs From: Richard Guenther To: "Joseph S. Myers" Cc: gcc-patches@gcc.gnu.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-01/txt/msg00949.txt.bz2 On Fri, Jan 14, 2011 at 1:05 AM, Joseph S. Myers wrote: > Various */linux*.h headers have %{!ibcs:...} specs, disabling parts of > the linker spec if -ibcs is passed. > > iBCS was the *Intel* Binary Compatibility Standard, making these specs > obviously irrelevant in all but one of the headers containing them. > Even on x86, the option only disabled part of the specs (that included > the Linux dynamic linker specification) rather than otherwise making > anything iBCS-compatible, and iBCS support for Linux has long been > bitrotten (see the log message for Linux kernel commit > 612a95b4e053b8a06319049191fd2dce9c970189, removing some relics of iBCS > support three years ago, "ibcs2 support has never been supported on > 2.6 kernels as far as I know"). =A0Furthermore, the -ibcs option could > not have worked for any compilation command that compiled sources as > well as linking, because -i* options are passed to cc1 etc. and -ibcs > would then have been rejected as an option not known by cc1 since not > listed in any .opt file. =A0Thus, this patch removes the !ibcs > conditionals, simplifying the specs in question. =A0OK to commit? Ok. Thanks, Richard. > > 2011-01-13 =A0Joseph Myers =A0 > > =A0 =A0 =A0 =A0* config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} con= ditional. > =A0 =A0 =A0 =A0* config/m32r/linux.h (LINK_SPEC): Likewise. > =A0 =A0 =A0 =A0* config/mips/linux.h (LINK_SPEC): Likewise. > =A0 =A0 =A0 =A0* config/mips/linux64.h (LINK_SPEC): Likewise. > =A0 =A0 =A0 =A0* config/sparc/linux.h (LINK_SPEC): Likewise. > =A0 =A0 =A0 =A0* config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SP= EC, > =A0 =A0 =A0 =A0LINK_SPEC): Likewise. > =A0 =A0 =A0 =A0* config/xtensa/linux.h (LINK_SPEC): Likewise. > > diff -rupN --exclude=3D.svn gcc-mainline-4/gcc/config/i386/linux.h gcc-ma= inline/gcc/config/i386/linux.h > --- gcc-mainline-4/gcc/config/i386/linux.h =A0 =A0 =A02010-12-09 05:38:51= .000000000 -0800 > +++ gcc-mainline/gcc/config/i386/linux.h =A0 =A0 =A0 =A02011-01-12 14:05:= 57.000000000 -0800 > @@ -106,11 +106,10 @@ along with GCC; see the file COPYING3. > =A0#undef LINK_SPEC > =A0#define LINK_SPEC "-m %(link_emulation) %{shared:-shared} \ > =A0 %{!shared: \ > - =A0 =A0%{!ibcs: \ > - =A0 =A0 =A0%{!static: \ > - =A0 =A0 =A0 %{rdynamic:-export-dynamic} \ > - =A0 =A0 =A0 -dynamic-linker %(dynamic_linker)} \ > - =A0 =A0 =A0 %{static:-static}}}" > + =A0 =A0%{!static: \ > + =A0 =A0 =A0%{rdynamic:-export-dynamic} \ > + =A0 =A0 =A0-dynamic-linker %(dynamic_linker)} \ > + =A0 =A0 =A0%{static:-static}}" > > =A0/* Similar to standard Linux, but adding -ffast-math support. =A0*/ > =A0#undef =A0ENDFILE_SPEC > diff -rupN --exclude=3D.svn gcc-mainline-4/gcc/config/m32r/linux.h gcc-ma= inline/gcc/config/m32r/linux.h > --- gcc-mainline-4/gcc/config/m32r/linux.h =A0 =A0 =A02010-12-09 05:38:50= .000000000 -0800 > +++ gcc-mainline/gcc/config/m32r/linux.h =A0 =A0 =A0 =A02011-01-12 14:06:= 29.000000000 -0800 > @@ -52,19 +52,17 @@ > =A0#if TARGET_LITTLE_ENDIAN > =A0#define LINK_SPEC "%(link_cpu) -m m32rlelf_linux %{shared:-shared} \ > =A0 %{!shared: \ > - =A0 =A0%{!ibcs: \ > - =A0 =A0 =A0%{!static: \ > - =A0 =A0 =A0 %{rdynamic:-export-dynamic} \ > - =A0 =A0 =A0 -dynamic-linker " LINUX_DYNAMIC_LINKER "} \ > - =A0 =A0 =A0 %{static:-static}}}" > + =A0 =A0%{!static: \ > + =A0 =A0 =A0%{rdynamic:-export-dynamic} \ > + =A0 =A0 =A0-dynamic-linker " LINUX_DYNAMIC_LINKER "} \ > + =A0 =A0 =A0%{static:-static}}" > =A0#else > =A0#define LINK_SPEC "%(link_cpu) -m m32relf_linux %{shared:-shared} \ > =A0 %{!shared: \ > - =A0 =A0%{!ibcs: \ > - =A0 =A0 =A0%{!static: \ > - =A0 =A0 =A0 %{rdynamic:-export-dynamic} \ > - =A0 =A0 =A0 -dynamic-linker " LINUX_DYNAMIC_LINKER "} \ > - =A0 =A0 =A0 %{static:-static}}}" > + =A0 =A0%{!static: \ > + =A0 =A0 =A0%{rdynamic:-export-dynamic} \ > + =A0 =A0 =A0-dynamic-linker " LINUX_DYNAMIC_LINKER "} \ > + =A0 =A0 =A0%{static:-static}}" > =A0#endif > > =A0#undef LIB_SPEC > diff -rupN --exclude=3D.svn gcc-mainline-4/gcc/config/mips/linux.h gcc-ma= inline/gcc/config/mips/linux.h > --- gcc-mainline-4/gcc/config/mips/linux.h =A0 =A0 =A02010-12-09 05:38:56= .000000000 -0800 > +++ gcc-mainline/gcc/config/mips/linux.h =A0 =A0 =A0 =A02011-01-12 14:06:= 50.000000000 -0800 > @@ -69,11 +69,10 @@ along with GCC; see the file COPYING3. > =A0"%(endian_spec) \ > =A0 %{shared:-shared} \ > =A0 %{!shared: \ > - =A0 =A0%{!ibcs: \ > - =A0 =A0 =A0%{!static: \ > - =A0 =A0 =A0 =A0%{rdynamic:-export-dynamic} \ > - =A0 =A0 =A0 =A0-dynamic-linker " LINUX_DYNAMIC_LINKER "} \ > - =A0 =A0 =A0 =A0%{static:-static}}}" > + =A0 =A0%{!static: \ > + =A0 =A0 =A0%{rdynamic:-export-dynamic} \ > + =A0 =A0 =A0-dynamic-linker " LINUX_DYNAMIC_LINKER "} \ > + =A0 =A0 =A0%{static:-static}}" > > =A0#undef SUBTARGET_ASM_SPEC > =A0#define SUBTARGET_ASM_SPEC \ > diff -rupN --exclude=3D.svn gcc-mainline-4/gcc/config/mips/linux64.h gcc-= mainline/gcc/config/mips/linux64.h > --- gcc-mainline-4/gcc/config/mips/linux64.h =A0 =A02010-12-09 05:38:56.0= 00000000 -0800 > +++ gcc-mainline/gcc/config/mips/linux64.h =A0 =A0 =A02011-01-12 14:07:22= .000000000 -0800 > @@ -51,13 +51,12 @@ along with GCC; see the file COPYING3. > =A0%{call_shared} %{no_archive} %{exact_version} \ > =A0%(endian_spec) \ > =A0 %{!shared: \ > - =A0 =A0%{!ibcs: \ > - =A0 =A0 =A0%{!static: \ > - =A0 =A0 =A0 =A0%{rdynamic:-export-dynamic} \ > - =A0 =A0 =A0 %{mabi=3Dn32: -dynamic-linker " LINUX_DYNAMIC_LINKERN32 "} \ > - =A0 =A0 =A0 %{mabi=3D64: -dynamic-linker " LINUX_DYNAMIC_LINKER64 "} \ > - =A0 =A0 =A0 %{mabi=3D32: -dynamic-linker " LINUX_DYNAMIC_LINKER32 "}} \ > - =A0 =A0 =A0%{static:-static}}} \ > + =A0 =A0%{!static: \ > + =A0 =A0 =A0%{rdynamic:-export-dynamic} \ > + =A0 =A0 =A0%{mabi=3Dn32: -dynamic-linker " LINUX_DYNAMIC_LINKERN32 "} \ > + =A0 =A0 =A0%{mabi=3D64: -dynamic-linker " LINUX_DYNAMIC_LINKER64 "} \ > + =A0 =A0 =A0%{mabi=3D32: -dynamic-linker " LINUX_DYNAMIC_LINKER32 "}} \ > + =A0 =A0%{static:-static}} \ > =A0%{mabi=3Dn32:-melf32%{EB:b}%{EL:l}tsmipn32} \ > =A0%{mabi=3D64:-melf64%{EB:b}%{EL:l}tsmip} \ > =A0%{mabi=3D32:-melf32%{EB:b}%{EL:l}tsmip}" > diff -rupN --exclude=3D.svn gcc-mainline-4/gcc/config/sparc/linux.h gcc-m= ainline/gcc/config/sparc/linux.h > --- gcc-mainline-4/gcc/config/sparc/linux.h =A0 =A0 2011-01-12 14:03:26.0= 00000000 -0800 > +++ gcc-mainline/gcc/config/sparc/linux.h =A0 =A0 =A0 2011-01-12 14:07:41= .000000000 -0800 > @@ -81,11 +81,10 @@ along with GCC; see the file COPYING3. > =A0#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \ > =A0 %{!mno-relax:%{!r:-relax}} \ > =A0 %{!shared: \ > - =A0 =A0%{!ibcs: \ > - =A0 =A0 =A0%{!static: \ > - =A0 =A0 =A0 =A0%{rdynamic:-export-dynamic} \ > - =A0 =A0 =A0 =A0-dynamic-linker " LINUX_DYNAMIC_LINKER "} \ > - =A0 =A0 =A0 =A0%{static:-static}}}" > + =A0 =A0%{!static: \ > + =A0 =A0 =A0%{rdynamic:-export-dynamic} \ > + =A0 =A0 =A0-dynamic-linker " LINUX_DYNAMIC_LINKER "} \ > + =A0 =A0 =A0%{static:-static}}" > > =A0/* It's safe to pass -s always, even if -g is not used. =A0*/ > =A0#undef ASM_SPEC > diff -rupN --exclude=3D.svn gcc-mainline-4/gcc/config/sparc/linux64.h gcc= -mainline/gcc/config/sparc/linux64.h > --- gcc-mainline-4/gcc/config/sparc/linux64.h =A0 2011-01-12 14:03:46.000= 000000 -0800 > +++ gcc-mainline/gcc/config/sparc/linux64.h =A0 =A0 2011-01-12 14:08:52.0= 00000000 -0800 > @@ -115,20 +115,18 @@ along with GCC; see the file COPYING3. > > =A0#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,%R/usr/lib %{shared:-sha= red} \ > =A0 %{!shared: \ > - =A0 =A0%{!ibcs: \ > - =A0 =A0 =A0%{!static: \ > - =A0 =A0 =A0 =A0%{rdynamic:-export-dynamic} \ > - =A0 =A0 =A0 =A0-dynamic-linker " LINUX_DYNAMIC_LINKER32 "} \ > - =A0 =A0 =A0 =A0%{static:-static}}} \ > + =A0 =A0%{!static: \ > + =A0 =A0 =A0%{rdynamic:-export-dynamic} \ > + =A0 =A0 =A0-dynamic-linker " LINUX_DYNAMIC_LINKER32 "} \ > + =A0 =A0 =A0%{static:-static}} \ > =A0" > > =A0#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-s= hared} \ > =A0 %{!shared: \ > - =A0 =A0%{!ibcs: \ > - =A0 =A0 =A0%{!static: \ > - =A0 =A0 =A0 =A0%{rdynamic:-export-dynamic} \ > - =A0 =A0 =A0 =A0-dynamic-linker " LINUX_DYNAMIC_LINKER64 "} \ > - =A0 =A0 =A0 =A0%{static:-static}}} \ > + =A0 =A0%{!static: \ > + =A0 =A0 =A0%{rdynamic:-export-dynamic} \ > + =A0 =A0 =A0-dynamic-linker " LINUX_DYNAMIC_LINKER64 "} \ > + =A0 =A0 =A0%{static:-static}} \ > =A0" > > =A0#define LINK_ARCH_SPEC "\ > @@ -205,11 +203,10 @@ along with GCC; see the file COPYING3. > =A0#undef LINK_SPEC > =A0#define LINK_SPEC "-m elf64_sparc -Y P,%R/usr/lib64 %{shared:-shared} \ > =A0 %{!shared: \ > - =A0 =A0%{!ibcs: \ > - =A0 =A0 =A0%{!static: \ > - =A0 =A0 =A0 =A0%{rdynamic:-export-dynamic} \ > - =A0 =A0 =A0 =A0-dynamic-linker " LINUX_DYNAMIC_LINKER64 "} \ > - =A0 =A0 =A0 =A0%{static:-static}}} \ > + =A0 =A0%{!static: \ > + =A0 =A0 =A0%{rdynamic:-export-dynamic} \ > + =A0 =A0 =A0-dynamic-linker " LINUX_DYNAMIC_LINKER64 "} \ > + =A0 =A0%{static:-static}} \ > =A0%{mlittle-endian:-EL} \ > =A0%{!mno-relax:%{!r:-relax}} \ > =A0" > diff -rupN --exclude=3D.svn gcc-mainline-4/gcc/config/xtensa/linux.h gcc-= mainline/gcc/config/xtensa/linux.h > --- gcc-mainline-4/gcc/config/xtensa/linux.h =A0 =A02010-12-15 04:59:41.0= 00000000 -0800 > +++ gcc-mainline/gcc/config/xtensa/linux.h =A0 =A0 =A02011-01-12 14:09:12= .000000000 -0800 > @@ -54,11 +54,10 @@ along with GCC; see the file COPYING3. > =A0#define LINK_SPEC \ > =A0"%{shared:-shared} \ > =A0 %{!shared: \ > - =A0 =A0%{!ibcs: \ > - =A0 =A0 =A0%{!static: \ > - =A0 =A0 =A0 =A0%{rdynamic:-export-dynamic} \ > - =A0 =A0 =A0 =A0-dynamic-linker " LINUX_DYNAMIC_LINKER "} \ > - =A0 =A0 =A0%{static:-static}}}" > + =A0 =A0%{!static: \ > + =A0 =A0 =A0%{rdynamic:-export-dynamic} \ > + =A0 =A0 =A0-dynamic-linker " LINUX_DYNAMIC_LINKER "} \ > + =A0 =A0%{static:-static}}" > > =A0#undef LOCAL_LABEL_PREFIX > =A0#define LOCAL_LABEL_PREFIX =A0 =A0 "." > > -- > Joseph S. Myers > joseph@codesourcery.com >