[PATCH] Re: ld testsuite breaks with latest GCC-4.0

Greg Schafer gschafer@zip.com.au
Thu Jan 6 12:25:00 GMT 2005


On Wed, Jan 05, 2005 at 09:47:30AM +1100, Greg Schafer wrote:
> On Tue, Jan 04, 2005 at 11:43:26AM +0100, Jakub Jelinek wrote:
> 
> > So, I think the patch should use ${CC} --print-file-name=specs,
> > if that prints just specs, it should use ${CC} -dumpspecs,
> > otherwise cat the specs file.
> >   specs=`${CC} --print-file-name=specs`
> >   { if [ x"$specs" = xspecs ]; then ${CC} -dumpspecs; else cat "$specs"; fi; } \
> >   | egrep ...
> 
> Yes. That would seem saner and definitely more robust. I'll try to make a
> new patch and test it

Here is a new patch that tested out fine for me with gcc-4 and gcc-3.4.3.
Nick approved the previous patch, so if this one is also approved, could
someone please apply it as I don't have commit priv's.

Thanks
Greg
-------------- next part --------------
2005-01-02  Jakub Jelinek  <jakub@redhat.com>
	    Greg Schafer  <gschafer@zip.com.au>

	* configure.host (*-*-linux*): Allow HOSTING_CRT0 to handle GCC
	versions >= 4.0 that don't install a specs file.
	(ia64-*-aix*): Remove support.

Index: ld/configure.host
===================================================================
RCS file: /cvs/src/src/ld/configure.host,v
retrieving revision 1.36
diff -u -r1.36 configure.host
--- ld/configure.host	17 May 2004 19:50:16 -0000	1.36
+++ ld/configure.host	6 Jan 2005 10:17:37 -0000
@@ -33,7 +33,7 @@
   ;;
 
 *-*-linux*)
-  HOSTING_CRT0='-dynamic-linker `egrep "ld[^ ]*\.so" \`${CC} --print-file-name=specs\` | sed -e "s,.*-dynamic-linker[ 	][ 	]*\(.*/ld[^ ]*\.so..\).*,\1,"` `${CC} --print-file-name=crt1.o` `${CC} --print-file-name=crti.o` `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} --print-file-name=crtbegin.o; fi`'
+  HOSTING_CRT0='-dynamic-linker `specs=\`${CC} --print-file-name=specs\`; { if [ x"$specs" = xspecs ]; then ${CC} -dumpspecs; else cat "$specs"; fi; } | egrep "ld[^ ]*\.so" | sed -e "s,.*-dynamic-linker[ 	][ 	]*\(.*/ld[^ ]*\.so..\).*,\1,"` `${CC} --print-file-name=crt1.o` `${CC} --print-file-name=crti.o` `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} --print-file-name=crtbegin.o; fi`'
   HOSTING_LIBS='-L`dirname \`${CC} --print-file-name=libc.so\`` '"$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} --print-file-name=crtend.o; fi` `${CC} --print-file-name=crtn.o`'
   ;;
 
@@ -145,11 +145,6 @@
   HOSTING_CRT0=`echo "$HOSTING_CRT0" | sed -e "s,ld\[^ \]*\*,ld-linux-ia64,g"`
   ;;
 
-ia64-*-aix*)
-  HOSTING_CRT0='-dynamic-linker `egrep "libc.so" \`${CC} --print-file-name=specs\` | sed -e "s,.*-dynamic-linker[ 	][ 	]*\(.*/libc.so..\).*,\1,"` `${CC} --print-file-name=crt1.o` `${CC} --print-file-name=crti.o` `if [ -f ../gcc/crtbegin.o ]; then echo ../gcc/crtbegin.o; else ${CC} --print-file-name=crtbegin.o; fi`'
-  HOSTING_LIBS='-L`dirname \`${CC} --print-file-name=libc.so\`` '"$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} --print-file-name=crtend.o; fi` `${CC} --print-file-name=crtn.o`'
-  ;;
-
 mips*-sgi-irix4* | mips*-sgi-irix5*)
   HOSTING_CRT0=/usr/lib/crt1.o
   HOSTING_LIBS="$HOSTING_LIBS"' /usr/lib/crtn.o'


More information about the Binutils mailing list