From 1ed1641d71f9fe8380d3edd80e1dbd17998543f5 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Tue, 24 May 2011 12:49:46 +0100 Subject: [PATCH] Makefile.in (GCC_OBJS): Remove opts-common.o and options.o. * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o. (OBJS): Remove options.o, opts-common.o and prefix.o. (OBJS-libcommon-target): New. (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target). (BACKEND): Include libcommon-target.a. (MOSTLYCLEANFILES): Include libcommon-target.a. (libcommon-target.a): New. (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of prefix.o. ada: * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include $(EXTRA_GNAT1_OBJS). (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS). (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove. (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a. * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon-target.a instead of prefix.o. cp: * Make-lang.in (GXX_OBJS): Remove prefix.o. (g++$(exeext)): Use libcommon-target.a. (CXX_C_OBJS): Remove prefix.o. fortran: * Make-lang.in (GFORTRAN_D_OBJS): Remove prefix.o. (gfortran$(exeext)): Use libcommon-target.a. go: * Make-lang.in (GCCGO_OBJS): Remove prefix.o. (gccgo$(exeext)): Use libcommon-target.a. java: * Make-lang.in ($(XGCJ)$(exeext)): Use libcommon-target.a instead of prefix.o. From-SVN: r174109 --- gcc/ChangeLog | 12 +++++++++++ gcc/Makefile.in | 33 +++++++++++++++++++----------- gcc/ada/ChangeLog | 10 +++++++++ gcc/ada/gcc-interface/Make-lang.in | 17 ++++++--------- gcc/ada/gcc-interface/Makefile.in | 2 +- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/Make-lang.in | 8 ++++---- gcc/fortran/ChangeLog | 5 +++++ gcc/fortran/Make-lang.in | 7 ++++--- gcc/go/ChangeLog | 5 +++++ gcc/go/Make-lang.in | 6 +++--- gcc/java/ChangeLog | 5 +++++ gcc/java/Make-lang.in | 4 ++-- 13 files changed, 84 insertions(+), 36 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2564a7df092..cf44fed9bdf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2011-05-24 Joseph Myers + + * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o. + (OBJS): Remove options.o, opts-common.o and prefix.o. + (OBJS-libcommon-target): New. + (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target). + (BACKEND): Include libcommon-target.a. + (MOSTLYCLEANFILES): Include libcommon-target.a. + (libcommon-target.a): New. + (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of + prefix.o. + 2011-05-23 Joseph Myers * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate diff --git a/gcc/Makefile.in b/gcc/Makefile.in index ef5bc6ccc73..2aee9483997 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -1168,7 +1168,7 @@ CXX_TARGET_OBJS=@cxx_target_objs@ FORTRAN_TARGET_OBJS=@fortran_target_objs@ # Object files for gcc driver. -GCC_OBJS = gcc.o opts-common.o options.o vec.o ggc-none.o +GCC_OBJS = gcc.o vec.o ggc-none.o # Language-specific object files shared by all C-family front ends. C_COMMON_OBJS = c-family/c-common.o c-family/c-cppbuiltin.o c-family/c-dump.o \ @@ -1340,9 +1340,7 @@ OBJS = \ omega.o \ omp-low.o \ optabs.o \ - options.o \ options-save.o \ - opts-common.o \ opts-global.o \ opts.o \ params.o \ @@ -1352,7 +1350,6 @@ OBJS = \ postreload-gcse.o \ postreload.o \ predict.o \ - prefix.o \ print-rtl.o \ print-tree.o \ profile.o \ @@ -1494,12 +1491,16 @@ OBJS = \ # no target dependencies. OBJS-libcommon = diagnostic.o pretty-print.o intl.o input.o version.o +# Objects in libcommon-target.a, used by drivers and by the core +# compiler and containing target-dependent code. +OBJS-libcommon-target = prefix.o opts-common.o options.o + # This lists all host objects for the front ends. ALL_HOST_FRONTEND_OBJS = $(C_OBJS) \ $(foreach v,$(CONFIG_LANGUAGES),$($(v)_OBJS)) ALL_HOST_BACKEND_OBJS = $(GCC_OBJS) $(OBJS) $(OBJS-libcommon) \ - @TREEBROWSER@ main.o gccspec.o prefix.o cppspec.o \ + $(OBJS-libcommon-target) @TREEBROWSER@ main.o gccspec.o cppspec.o \ $(COLLECT2_OBJS) $(EXTRA_GCC_OBJS) mips-tfile.o mips-tdump.o \ $(GCOV_OBJS) $(GCOV_DUMP_OBJS) @@ -1507,8 +1508,8 @@ ALL_HOST_BACKEND_OBJS = $(GCC_OBJS) $(OBJS) $(OBJS-libcommon) \ # compilation or not. ALL_HOST_OBJS = $(ALL_HOST_FRONTEND_OBJS) $(ALL_HOST_BACKEND_OBJS) -BACKEND = main.o @TREEBROWSER@ libbackend.a libcommon.a $(CPPLIB) \ - $(LIBDECNUMBER) +BACKEND = main.o @TREEBROWSER@ libbackend.a libcommon-target.a libcommon.a \ + $(CPPLIB) $(LIBDECNUMBER) MOSTLYCLEANFILES = insn-flags.h insn-config.h insn-codes.h \ insn-output.c insn-recog.c insn-emit.c insn-extract.c insn-peep.c \ @@ -1520,7 +1521,8 @@ MOSTLYCLEANFILES = insn-flags.h insn-config.h insn-codes.h \ $(EXTRA_PARTS) $(EXTRA_PROGRAMS) gcc-cross$(exeext) \ $(SPECS) collect2$(exeext) lto-wrapper$(exeext) \ gcov-iov$(build_exeext) gcov$(exeext) gcov-dump$(exeext) \ - *.[0-9][0-9].* *.[si] *-checksum.c libbackend.a libcommon.a libgcc.mk + *.[0-9][0-9].* *.[si] *-checksum.c libbackend.a libcommon-target.a \ + libcommon.a libgcc.mk # Defined in libgcc2.c, included only in the static library. LIB2FUNCS_ST = _eprintf __gcc_bcmp @@ -1832,6 +1834,11 @@ libbackend.a: $(OBJS) $(AR) $(AR_FLAGS) libbackend.a $(OBJS) -$(RANLIB) $(RANLIB_FLAGS) libbackend.a +libcommon-target.a: $(OBJS-libcommon-target) + -rm -rf libcommon-target.a + $(AR) $(AR_FLAGS) libcommon-target.a $(OBJS-libcommon-target) + -$(RANLIB) $(RANLIB_FLAGS) libcommon-target.a + libcommon.a: $(OBJS-libcommon) -rm -rf libcommon.a $(AR) $(AR_FLAGS) libcommon.a $(OBJS-libcommon) @@ -1840,16 +1847,18 @@ libcommon.a: $(OBJS-libcommon) # We call this executable `xgcc' rather than `gcc' # to avoid confusion if the current directory is in the path # and CC is `gcc'. It is renamed to `gcc' when it is installed. -xgcc$(exeext): $(GCC_OBJS) gccspec.o prefix.o $(LIBDEPS) $(EXTRA_GCC_OBJS) +xgcc$(exeext): $(GCC_OBJS) gccspec.o libcommon-target.a $(LIBDEPS) \ + $(EXTRA_GCC_OBJS) +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(GCC_OBJS) \ - gccspec.o prefix.o $(EXTRA_GCC_OBJS) $(LIBS) + gccspec.o $(EXTRA_GCC_OBJS) libcommon-target.a $(LIBS) # cpp is to cpp0 as gcc is to cc1. # The only difference from xgcc is that it's linked with cppspec.o # instead of gccspec.o. -cpp$(exeext): $(GCC_OBJS) cppspec.o prefix.o $(LIBDEPS) $(EXTRA_GCC_OBJS) +cpp$(exeext): $(GCC_OBJS) cppspec.o libcommon-target.a $(LIBDEPS) \ + $(EXTRA_GCC_OBJS) +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(GCC_OBJS) \ - cppspec.o prefix.o $(EXTRA_GCC_OBJS) $(LIBS) + cppspec.o $(EXTRA_GCC_OBJS) libcommon-target.a $(LIBS) # Dump a specs file to make -B./ read these specs over installed ones. $(SPECS): xgcc$(exeext) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index d6e9d9d7909..2836e2619fd 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,13 @@ +2011-05-24 Joseph Myers + + * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include + $(EXTRA_GNAT1_OBJS). + (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS). + (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove. + (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a. + * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use + libcommon-target.a instead of prefix.o. + 2011-05-21 Joseph Myers PR ada/49097 diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in index 66b03f4c6cb..dbd1f08b7e1 100644 --- a/gcc/ada/gcc-interface/Make-lang.in +++ b/gcc/ada/gcc-interface/Make-lang.in @@ -340,7 +340,7 @@ GNAT_ADA_OBJS = \ # Object files for gnat executables GNAT1_ADA_OBJS = $(GNAT_ADA_OBJS) ada/back_end.o ada/gnat1drv.o -GNAT1_OBJS = $(GNAT1_C_OBJS) $(GNAT1_ADA_OBJS) $(EXTRA_GNAT1_OBJS) +GNAT1_OBJS = $(GNAT1_C_OBJS) $(GNAT1_ADA_OBJS) GNATBIND_OBJS = \ ada/adaint.o \ @@ -464,12 +464,7 @@ GNATBIND_OBJS = \ ada/uintp.o \ ada/uname.o \ ada/urealp.o \ - ada/widechar.o \ - $(EXTRA_GNATBIND_OBJS) - -# List of extra object files linked in with various programs. -EXTRA_GNAT1_OBJS = prefix.o -EXTRA_GNATBIND_OBJS = prefix.o + ada/widechar.o # Language-independent object files. ADA_BACKEND = $(BACKEND) attribs.o @@ -480,12 +475,12 @@ TARGET_ADA_SRCS = # Needs to be built with CC=gcc # 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) $(BACKENDLIBS) $(CFLAGS) +gnat1$(exeext): $(TARGET_ADA_SRCS) $(GNAT1_OBJS) $(ADA_BACKEND) libcommon-target.a $(LIBDEPS) + $(GCC_LINK) -o $@ $(GNAT1_OBJS) $(ADA_BACKEND) libcommon-target.a $(LIBS) $(SYSLIBS) $(BACKENDLIBS) $(CFLAGS) $(RM) stamp-gnatlib2-rts stamp-tools -gnatbind$(exeext): ada/b_gnatb.o $(CONFIG_H) $(GNATBIND_OBJS) $(LIBDEPS) - $(GCC_LINK) -o $@ ada/b_gnatb.o $(GNATBIND_OBJS) $(LIBS) $(SYSLIBS) $(CFLAGS) +gnatbind$(exeext): ada/b_gnatb.o $(CONFIG_H) $(GNATBIND_OBJS) libcommon-target.a $(LIBDEPS) + $(GCC_LINK) -o $@ ada/b_gnatb.o $(GNATBIND_OBJS) libcommon-target.a $(LIBS) $(SYSLIBS) $(CFLAGS) # use cross-gcc gnat-cross: force diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in index fbcff81210a..0b58c1889f4 100644 --- a/gcc/ada/gcc-interface/Makefile.in +++ b/gcc/ada/gcc-interface/Makefile.in @@ -180,7 +180,7 @@ LIBINTL_DEP = @LIBINTL_DEP@ SYSLIBS = @GNAT_LIBEXC@ # List of extra object files linked in with various programs. -EXTRA_GNATTOOLS_OBJS = ../../prefix.o ../../libcommon.a +EXTRA_GNATTOOLS_OBJS = ../../libcommon-target.a ../../libcommon.a # List extra gnattools EXTRA_GNATTOOLS = diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index ee2c9d9ecd2..8c47e0f98cc 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2011-05-24 Joseph Myers + + * Make-lang.in (GXX_OBJS): Remove prefix.o. + (g++$(exeext)): Use libcommon-target.a. + (CXX_C_OBJS): Remove prefix.o. + 2011-05-23 Jason Merrill * pt.c (tsubst_copy_and_build): Use current_class_name. diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in index e343c3f16da..45efd67d8cd 100644 --- a/gcc/cp/Make-lang.in +++ b/gcc/cp/Make-lang.in @@ -60,10 +60,10 @@ g++spec.o: $(srcdir)/cp/g++spec.c $(SYSTEM_H) coretypes.h $(TM_H) $(GCC_H) \ $(INCLUDES) $(srcdir)/cp/g++spec.c) # Create the compiler driver for g++. -GXX_OBJS = $(GCC_OBJS) g++spec.o prefix.o -g++$(exeext): $(GXX_OBJS) $(EXTRA_GCC_OBJS) $(LIBDEPS) +GXX_OBJS = $(GCC_OBJS) g++spec.o +g++$(exeext): $(GXX_OBJS) $(EXTRA_GCC_OBJS) libcommon-target.a $(LIBDEPS) +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \ - $(GXX_OBJS) $(EXTRA_GCC_OBJS) $(LIBS) + $(GXX_OBJS) $(EXTRA_GCC_OBJS) libcommon-target.a $(LIBS) # Create a version of the g++ driver which calls the cross-compiler. g++-cross$(exeext): g++$(exeext) @@ -72,7 +72,7 @@ g++-cross$(exeext): g++$(exeext) # The compiler itself. # Shared with C front end: -CXX_C_OBJS = attribs.o incpath.o prefix.o \ +CXX_C_OBJS = attribs.o incpath.o \ $(C_COMMON_OBJS) $(CXX_TARGET_OBJS) # Language-specific object files for C++ and Objective C++. diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 55994c3140e..e8a008452c4 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2011-05-24 Joseph Myers + + * Make-lang.in (GFORTRAN_D_OBJS): Remove prefix.o. + (gfortran$(exeext)): Use libcommon-target.a. + 2011-05-22 Thomas Koenig * frontend-passes.c (cfe_register_funcs): Also register diff --git a/gcc/fortran/Make-lang.in b/gcc/fortran/Make-lang.in index 174a144ed7f..f20638cb9a8 100644 --- a/gcc/fortran/Make-lang.in +++ b/gcc/fortran/Make-lang.in @@ -84,10 +84,11 @@ gfortranspec.o: $(srcdir)/fortran/gfortranspec.c $(SYSTEM_H) $(TM_H) $(GCC_H) \ $(INCLUDES) $(srcdir)/fortran/gfortranspec.c) # Create the compiler driver gfortran. -GFORTRAN_D_OBJS = $(GCC_OBJS) gfortranspec.o prefix.o -gfortran$(exeext): $(GFORTRAN_D_OBJS) $(EXTRA_GCC_OBJS) $(LIBDEPS) +GFORTRAN_D_OBJS = $(GCC_OBJS) gfortranspec.o +gfortran$(exeext): $(GFORTRAN_D_OBJS) $(EXTRA_GCC_OBJS) libcommon-target.a \ + $(LIBDEPS) +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \ - $(GFORTRAN_D_OBJS) $(EXTRA_GCC_OBJS) $(LIBS) + $(GFORTRAN_D_OBJS) $(EXTRA_GCC_OBJS) libcommon-target.a $(LIBS) # Create a version of the gfortran driver which calls the cross-compiler. gfortran-cross$(exeext): gfortran$(exeext) diff --git a/gcc/go/ChangeLog b/gcc/go/ChangeLog index 5a0d30af84b..1e936a69c93 100644 --- a/gcc/go/ChangeLog +++ b/gcc/go/ChangeLog @@ -1,3 +1,8 @@ +2011-05-24 Joseph Myers + + * Make-lang.in (GCCGO_OBJS): Remove prefix.o. + (gccgo$(exeext)): Use libcommon-target.a. + 2011-05-20 Joseph Myers * Make-lang.in (GCCGO_OBJS): Remove intl.o and version.o. diff --git a/gcc/go/Make-lang.in b/gcc/go/Make-lang.in index 0342b32cfae..82e219baa6f 100644 --- a/gcc/go/Make-lang.in +++ b/gcc/go/Make-lang.in @@ -36,10 +36,10 @@ gospec.o: $(srcdir)/go/gospec.c $(SYSTEM_H) coretypes.h $(TM_H) $(GCC_H) \ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(DRIVER_DEFINES) \ $(INCLUDES) $(srcdir)/go/gospec.c) -GCCGO_OBJS = $(GCC_OBJS) gospec.o prefix.o -gccgo$(exeext): $(GCCGO_OBJS) $(EXTRA_GCC_OBJS) $(LIBDEPS) +GCCGO_OBJS = $(GCC_OBJS) gospec.o +gccgo$(exeext): $(GCCGO_OBJS) $(EXTRA_GCC_OBJS) libcommon-target.a $(LIBDEPS) $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \ - $(GCCGO_OBJS) $(EXTRA_GCC_OBJS) $(LIBS) + $(GCCGO_OBJS) $(EXTRA_GCC_OBJS) libcommon-target.a $(LIBS) # Use strict warnings. go-warn = $(STRICT_WARN) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index e0d97bf12cb..3bf7405d8e1 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,8 @@ +2011-05-24 Joseph Myers + + * Make-lang.in ($(XGCJ)$(exeext)): Use libcommon-target.a instead + of prefix.o. + 2011-05-20 Joseph Myers * Make-lang.in ($(XGCJ)$(exeext)): Don't explicitly use intl.o and diff --git a/gcc/java/Make-lang.in b/gcc/java/Make-lang.in index 21bf93da8ca..bdd8b18342a 100644 --- a/gcc/java/Make-lang.in +++ b/gcc/java/Make-lang.in @@ -64,9 +64,9 @@ jvspec.o: $(srcdir)/java/jvspec.c $(SYSTEM_H) coretypes.h $(TM_H) \ # Create the compiler driver for $(XGCJ). $(XGCJ)$(exeext): $(GCC_OBJS) jvspec.o java/jcf-path.o \ - prefix.o $(LIBDEPS) $(EXTRA_GCC_OBJS) + libcommon-target.a $(LIBDEPS) $(EXTRA_GCC_OBJS) +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(GCC_OBJS) \ - jvspec.o java/jcf-path.o prefix.o $(EXTRA_GCC_OBJS) $(LIBS) + jvspec.o java/jcf-path.o $(EXTRA_GCC_OBJS) libcommon-target.a $(LIBS) # Create a version of the $(XGCJ) driver which calls the cross-compiler. $(XGCJ)-cross$(exeext): $(XGCJ)$(exeext) -- 2.30.2