This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] Fix pr38262: GCC components unnecessarily link with shared gmp/mpfr


Hi,

The attached patch makes the compilers dependent on a unique variable
BACKENDLIBS that includes the flags for GMP, CLooG and PPL.  This
avoids the LIBS variable to contain these libs that are only needed
for the back-end compilers and not for the drivers or preprocessor.
The patch has been regstrapped on an x86_64-linux machine.
Okay for trunk?

Thanks,
Sebastian Pop
--
AMD - GNU Tools




---------- Forwarded message ----------
From:  <spop@gcc13.fsffrance.org>
Date: Wed, Nov 26, 2008 at 6:24 PM
Subject: [regtest] Results for 1273_pr38262_link.diff on
x86_64-unknown-linux-gnu
To: sebpop@gmail.com


(cat /home/spop/state/testing/patched/report
there are no regressions with your patch.
tac)
FAILs with patched version:
(cat /home/spop/state/testing/patched/failed
gcc.sum gcc.dg/tree-prof/bb-reorg.c
gcc.sum gcc.dg/tree-prof/pr34999.c
gcc.sum gcc.dg/vect/no-scevccp-outer-13.c
gcc.sum gcc.dg/vect/no-scevccp-outer-7.c
gcc.sum gcc.dg/vect/vect-67.c
gcc.sum gcc.target/i386/pr34256.c
libmudflap.sum libmudflap.c++/pass41-frag.cxx
libstdc++.sum 22_locale/time_get/get_date/wchar_t/4.cc
tac)
FAILs with pristine version:
(cat /home/spop/state//trunk/142224/failed
gcc.sum gcc.dg/tree-prof/bb-reorg.c
gcc.sum gcc.dg/tree-prof/pr34999.c
gcc.sum gcc.dg/vect/no-scevccp-outer-13.c
gcc.sum gcc.dg/vect/no-scevccp-outer-7.c
gcc.sum gcc.dg/vect/vect-67.c
gcc.sum gcc.target/i386/pr34256.c
libmudflap.sum libmudflap.c++/pass41-frag.cxx
libstdc++.sum 22_locale/time_get/get_date/wchar_t/4.cc
tac)
The files used for the validation of your patch are stored in
/home/spop/state/patched/2008_11_27_00_24_09 on the tester machine.
email:sebpop@gmail.com
branch:trunk
revision:HEAD
configure:
make:
check:

Index: gcc/java/Make-lang.in
===================================================================
--- gcc/java/Make-lang.in	(revision 142224)
+++ gcc/java/Make-lang.in	(working copy)
@@ -101,7 +101,7 @@ jvspec.o-warn = -Wno-error
 jc1$(exeext): $(JAVA_OBJS) $(BACKEND) $(LIBDEPS) attribs.o
 	rm -f $@
 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
-		$(JAVA_OBJS) $(BACKEND) $(ZLIB) $(LIBICONV) $(LIBS) attribs.o $(GMPLIBS)
+		$(JAVA_OBJS) $(BACKEND) $(ZLIB) $(LIBICONV) $(LIBS) attribs.o $(BACKENDLIBS)
 
 jcf-dump$(exeext): $(JCFDUMP_OBJS) $(LIBDEPS)
 	rm -f $@
Index: gcc/objc/Make-lang.in
===================================================================
--- gcc/objc/Make-lang.in	(revision 142224)
+++ gcc/objc/Make-lang.in	(working copy)
@@ -54,7 +54,7 @@ objc_OBJS = $(OBJC_OBJS) cc1obj-checksum
 cc1obj-dummy$(exeext): $(OBJC_OBJS) $(C_AND_OBJC_OBJS) dummy-checksum.o $(BACKEND) $(LIBDEPS)
 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
 	      $(OBJC_OBJS) $(C_AND_OBJC_OBJS) dummy-checksum.o \
-	      $(BACKEND) $(LIBS) $(GMPLIBS)
+	      $(BACKEND) $(LIBS) $(BACKENDLIBS)
 
 cc1obj-checksum.c : cc1obj-dummy$(exeext) build/genchecksum$(build_exeext)
 	build/genchecksum$(build_exeext) cc1obj-dummy$(exeext) > $@
@@ -64,7 +64,7 @@ cc1obj-checksum.o : cc1obj-checksum.c
 cc1obj$(exeext): $(OBJC_OBJS) $(C_AND_OBJC_OBJS) cc1obj-checksum.o $(BACKEND) $(LIBDEPS)
 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
 	      $(OBJC_OBJS) $(C_AND_OBJC_OBJS) cc1obj-checksum.o \
-	      $(BACKEND) $(LIBS) $(GMPLIBS)
+	      $(BACKEND) $(LIBS) $(BACKENDLIBS)
 
 # Objective C language specific files.
 
Index: gcc/objcp/Make-lang.in
===================================================================
--- gcc/objcp/Make-lang.in	(revision 142224)
+++ gcc/objcp/Make-lang.in	(working copy)
@@ -56,7 +56,7 @@ obj-c++_OBJS = $(OBJCXX_OBJS) cc1objplus
 cc1objplus-dummy$(exeext): $(OBJCXX_OBJS) dummy-checksum.o $(BACKEND) \
 		$(LIBDEPS)
 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
-		$(OBJCXX_OBJS) dummy-checksum.o $(BACKEND) $(LIBS) $(GMPLIBS)
+		$(OBJCXX_OBJS) dummy-checksum.o $(BACKEND) $(LIBS) $(BACKENDLIBS)
 
 cc1objplus-checksum.c : cc1objplus-dummy$(exeext) build/genchecksum$(build_exeext)
 	build/genchecksum$(build_exeext) cc1objplus-dummy$(exeext) > $@
@@ -65,7 +65,7 @@ cc1objplus-checksum.o : cc1objplus-check
 
 cc1objplus$(exeext): $(OBJCXX_OBJS) cc1objplus-checksum.o $(BACKEND) $(LIBDEPS)
 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
-		$(OBJCXX_OBJS) cc1objplus-checksum.o $(BACKEND) $(LIBS) $(GMPLIBS)
+		$(OBJCXX_OBJS) cc1objplus-checksum.o $(BACKEND) $(LIBS) $(BACKENDLIBS)
 
 # Objective C++ language specific files.
 
Index: gcc/cp/Make-lang.in
===================================================================
--- gcc/cp/Make-lang.in	(revision 142224)
+++ gcc/cp/Make-lang.in	(working copy)
@@ -93,7 +93,7 @@ cp-warn = $(STRICT_WARN)
 
 cc1plus-dummy$(exeext): $(CXX_OBJS) dummy-checksum.o $(BACKEND) $(LIBDEPS)
 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
-	      $(CXX_OBJS) dummy-checksum.o $(BACKEND) $(LIBS) $(GMPLIBS)
+	      $(CXX_OBJS) dummy-checksum.o $(BACKEND) $(LIBS) $(BACKENDLIBS)
 
 cc1plus-checksum.c : cc1plus-dummy$(exeext) build/genchecksum$(build_exeext)
 	build/genchecksum$(build_exeext) cc1plus-dummy$(exeext) > $@
@@ -102,7 +102,7 @@ cc1plus-checksum.o : cc1plus-checksum.c
 
 cc1plus$(exeext): $(CXX_OBJS) cc1plus-checksum.o $(BACKEND) $(LIBDEPS)
 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
-	      $(CXX_OBJS) cc1plus-checksum.o $(BACKEND) $(LIBS) $(GMPLIBS)
+	      $(CXX_OBJS) cc1plus-checksum.o $(BACKEND) $(LIBS) $(BACKENDLIBS)
 
 # Special build rules.
 $(srcdir)/cp/cfns.h: $(srcdir)/cp/cfns.gperf
Index: gcc/ada/gcc-interface/Make-lang.in
===================================================================
--- gcc/ada/gcc-interface/Make-lang.in	(revision 142224)
+++ gcc/ada/gcc-interface/Make-lang.in	(working copy)
@@ -299,7 +299,7 @@ TARGET_ADA_SRCS =
 # Since the RTL should be built with the latest compiler, remove the
 #  stamp target in the parent directory whenever gnat1 is rebuilt
 gnat1$(exeext): $(TARGET_ADA_SRCS) $(GNAT1_OBJS) $(ADA_BACKEND) $(LIBDEPS)
-	$(GCC_LINK) -o $@ $(GNAT1_OBJS) $(ADA_BACKEND) $(LIBS) $(SYSLIBS) $(GMPLIBS) $(CFLAGS)
+	$(GCC_LINK) -o $@ $(GNAT1_OBJS) $(ADA_BACKEND) $(LIBS) $(SYSLIBS) $(BACKENDLIBS) $(CFLAGS)
 	$(RM) stamp-gnatlib2-rts stamp-tools
 
 gnatbind$(exeext): ada/b_gnatb.o $(CONFIG_H) $(GNATBIND_OBJS)
Index: gcc/fortran/Make-lang.in
===================================================================
--- gcc/fortran/Make-lang.in	(revision 142224)
+++ gcc/fortran/Make-lang.in	(working copy)
@@ -98,7 +98,7 @@ gfortran-cross$(exeext): gfortran$(exeex
 f951$(exeext): $(F95_OBJS) \
 		$(BACKEND) $(LIBDEPS) attribs.o
 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \
-		$(F95_OBJS) $(BACKEND) $(LIBS) attribs.o $(GMPLIBS)
+		$(F95_OBJS) $(BACKEND) $(LIBS) attribs.o $(BACKENDLIBS)
 
 gt-fortran-trans.h    : s-gtype; @true
 #
Index: gcc/Makefile.in
===================================================================
--- gcc/Makefile.in	(revision 142224)
+++ gcc/Makefile.in	(working copy)
@@ -920,9 +920,8 @@ BUILD_LIBDEPS= $(BUILD_LIBIBERTY)
 
 # How to link with both our special library facilities
 # and the system's installed libraries.
-LIBS = @LIBS@ $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBIBERTY) $(LIBDECNUMBER) \
-       $(GMPLIBS) $(CLOOGLIBS) $(PPLLIBS)
-
+LIBS = @LIBS@ $(CPPLIB) $(LIBINTL) $(LIBICONV) $(LIBIBERTY) $(LIBDECNUMBER)
+BACKENDLIBS = $(GMPLIBS) $(CLOOGLIBS) $(PPLLIBS)
 # Any system libraries needed just for GNAT.
 SYSLIBS = @GNAT_LIBEXC@
 
@@ -1655,7 +1654,7 @@ dummy-checksum.o : dummy-checksum.c
 
 cc1-dummy$(exeext): $(C_OBJS) dummy-checksum.o $(BACKEND) $(LIBDEPS)
 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) dummy-checksum.o \
-	  $(BACKEND) $(LIBS) $(GMPLIBS)
+	  $(BACKEND) $(LIBS) $(BACKENDLIBS)
 
 cc1-checksum.c : cc1-dummy$(exeext) build/genchecksum$(build_exeext)
 	build/genchecksum$(build_exeext) cc1-dummy$(exeext) > $@
@@ -1664,7 +1663,7 @@ cc1-checksum.o : cc1-checksum.c
 
 cc1$(exeext): $(C_OBJS) cc1-checksum.o $(BACKEND) $(LIBDEPS)
 	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) cc1-checksum.o \
-	  $(BACKEND) $(LIBS) $(GMPLIBS)
+	  $(BACKEND) $(LIBS) $(BACKENDLIBS)
 
 #
 # Build libgcc.a.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]