-fwhopr=jobserver requires telling GNU make that the linker (= lto)
rules support job server, so that the necessary jobserver
information is passed through.
Add + to all the executable targets that run LTO for this purpose.
This improves build performance with a -fwhopr=jobserver
bootstrap (or BUILD_CONFIG=bootstrap-lto) significantly.
I didn't change Ada because that apparently doesn't support LTO.
Passes bootstrap and test suite. Ok to commit?
gcc/
2010-10-04 Andi Kleen <ak@linux.intel.com>
* Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
gcov-dump, cc1-dummy, genprog, build/gcov-iov):
Add + to build rule.
gcc/cp/
2010-10-04 Andi Kleen <ak@linux.intel.com>
* Make-lang.in (g++, cc1plus): Add + to build rule.
gcc/fortran/
2010-10-04 Andi Kleen <ak@linux.intel.com>
* Make-lang.in (gfortran, f951): Add + to build rule.
gcc/java/
2010-10-04 Andi Kleen <ak@linux.intel.com>
* Make-lang.in (xgcj, jc1, jcf-dump, jvgenmain):
Add + to build rule.
gcc/lto/
2010-10-04 Andi Kleen <ak@linux.intel.com>
* Make-lang.in (lto1): Add + to build rule.
gcc/objc/
2010-10-04 Andi Kleen <ak@linux.intel.com>
* Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule.
gcc/objcp/
2010-10-04 Andi Kleen <ak@linux.intel.com>
* Make-lang.in (cc1objplus-dummy, cc1objplus): Add + to build rule.
More plus fixes
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164949
138bc75d-0d04-0410-961f-
82ee72b054a4
+2010-10-04 Andi Kleen <ak@linux.intel.com>
+
+ * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
+ gcov-dump, cc1-dummy, genprog, build/gcov-iov):
+ Add + to build rule.
+
2010-10-04 Matthias Klose <doko@ubuntu.com>
* config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
# and CC is `gcc'. It is renamed to `gcc' when it is installed.
xgcc$(exeext): $(GCC_OBJS) gccspec.o version.o intl.o prefix.o \
version.o $(LIBDEPS) $(EXTRA_GCC_OBJS)
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(GCC_OBJS) \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(GCC_OBJS) \
gccspec.o intl.o prefix.o version.o $(EXTRA_GCC_OBJS) $(LIBS)
# cpp is to cpp0 as gcc is to cc1.
# instead of gccspec.o.
cpp$(exeext): $(GCC_OBJS) cppspec.o version.o intl.o prefix.o \
version.o $(LIBDEPS) $(EXTRA_GCC_OBJS)
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(GCC_OBJS) \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(GCC_OBJS) \
cppspec.o intl.o prefix.o version.o $(EXTRA_GCC_OBJS) $(LIBS)
# Dump a specs file to make -B./ read these specs over installed ones.
dummy-checksum.o : dummy-checksum.c $(CONFIG_H) $(SYSTEM_H)
cc1-dummy$(exeext): $(C_OBJS) dummy-checksum.o $(BACKEND) $(LIBDEPS)
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) \
dummy-checksum.o $(BACKEND) $(LIBS) $(BACKENDLIBS)
cc1-checksum.c : cc1-dummy$(exeext) build/genchecksum$(build_exeext)
cc1-checksum.o : cc1-checksum.c $(CONFIG_H) $(SYSTEM_H)
cc1$(exeext): $(C_OBJS) cc1-checksum.o $(BACKEND) $(LIBDEPS)
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) \
cc1-checksum.o $(BACKEND) $(LIBS) $(BACKENDLIBS)
#\f
COLLECT2_LIBS = @COLLECT2_LIBS@
collect2$(exeext): $(COLLECT2_OBJS) $(LIBDEPS)
# Don't try modifying collect2 (aka ld) in place--it might be linking this.
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o T$@ \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o T$@ \
$(COLLECT2_OBJS) $(LIBS) $(COLLECT2_LIBS)
mv -f T$@ $@
$(OBSTACK_H) collect2.h intl.h
lto-wrapper$(exeext): lto-wrapper.o intl.o $(LIBDEPS)
- $(COMPILER) $(ALL_COMPILERFLAGS) $(LDFLAGS) -o T$@ lto-wrapper.o intl.o $(LIBS)
+ +$(COMPILER) $(ALL_COMPILERFLAGS) $(LDFLAGS) -o T$@ lto-wrapper.o intl.o $(LIBS)
mv -f T$@ $@
lto-wrapper.o: lto-wrapper.c $(CONFIG_H) $(SYSTEM_H) coretypes.h intl.h \
# Rule for the generator programs:
$(genprog:%=build/gen%$(build_exeext)): build/gen%$(build_exeext): build/gen%.o $(BUILD_LIBDEPS)
- $(LINKER_FOR_BUILD) $(BUILD_LINKERFLAGS) $(BUILD_LDFLAGS) -o $@ \
+ +$(LINKER_FOR_BUILD) $(BUILD_LINKERFLAGS) $(BUILD_LDFLAGS) -o $@ \
$(filter-out $(BUILD_LIBDEPS), $^) $(BUILD_LIBS)
# Generated source files for gengtype.
$(SYSTEM_H) coretypes.h $(TM_H)
build/gcov-iov$(build_exeext): build/gcov-iov.o
- $(LINKER_FOR_BUILD) $(BUILD_LINKERFLAGS) $(BUILD_LDFLAGS) \
+ +$(LINKER_FOR_BUILD) $(BUILD_LINKERFLAGS) $(BUILD_LDFLAGS) \
build/gcov-iov.o -o $@
gcov-iov.h: s-iov
GCOV_OBJS = gcov.o intl.o version.o errors.o
gcov$(exeext): $(GCOV_OBJS) $(LIBDEPS)
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_OBJS) $(LIBS) -o $@
GCOV_DUMP_OBJS = gcov-dump.o version.o errors.o
gcov-dump$(exeext): $(GCOV_DUMP_OBJS) $(LIBDEPS)
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_DUMP_OBJS) \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) $(GCOV_DUMP_OBJS) \
$(LIBS) -o $@
#\f
# Build the include directories. The stamp files are stmp-* rather than
+2010-10-04 Andi Kleen <ak@linux.intel.com>
+
+ * Make-lang.in (g++, cc1plus): Add + to build rule.
+
2010-10-04 Jason Merrill <jason@redhat.com>
* tree.c (decl_storage_duration): New.
# Create the compiler driver for g++.
GXX_OBJS = $(GCC_OBJS) g++spec.o intl.o prefix.o version.o
g++$(exeext): $(GXX_OBJS) $(EXTRA_GCC_OBJS) $(LIBDEPS)
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
$(GXX_OBJS) $(EXTRA_GCC_OBJS) $(LIBS)
# Create a version of the g++ driver which calls the cross-compiler.
cc1plus-checksum.o : cc1plus-checksum.c $(CONFIG_H) $(SYSTEM_H)
cc1plus$(exeext): $(CXX_OBJS) cc1plus-checksum.o $(BACKEND) $(LIBDEPS)
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
$(CXX_OBJS) cc1plus-checksum.o $(BACKEND) $(LIBS) $(BACKENDLIBS)
# Special build rules.
+2010-10-04 Andi Kleen <ak@linux.intel.com>
+
+ * Make-lang.in (gfortran, f951): Add + to build rule.
+
2010-10-04 Richard Guenther <rguenther@suse.de>
* f95-lang.c (current_translation_unit): New global variable.
# Create the compiler driver gfortran.
GFORTRAN_D_OBJS = $(GCC_OBJS) gfortranspec.o version.o prefix.o intl.o
gfortran$(exeext): $(GFORTRAN_D_OBJS) $(EXTRA_GCC_OBJS) $(LIBDEPS)
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
$(GFORTRAN_D_OBJS) $(EXTRA_GCC_OBJS) $(LIBS)
# Create a version of the gfortran driver which calls the cross-compiler.
# The compiler itself is called f951.
f951$(exeext): $(F95_OBJS) \
$(BACKEND) $(LIBDEPS) attribs.o
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
$(F95_OBJS) $(BACKEND) $(LIBS) attribs.o $(BACKENDLIBS)
gt-fortran-trans.h : s-gtype; @true
+2010-10-04 Andi Kleen <ak@linux.intel.com>
+
+ * Make-lang.in (xgcj, jc1, jcf-dump, jvgenmain):
+ Add + to build rule.
+
2010-09-29 Joseph Myers <joseph@codesourcery.com>
* lang.opt: Don't use VarExists.
# Create the compiler driver for $(XGCJ).
$(XGCJ)$(exeext): $(GCC_OBJS) jvspec.o java/jcf-path.o version.o \
prefix.o intl.o $(LIBDEPS) $(EXTRA_GCC_OBJS)
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(GCC_OBJS) \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(GCC_OBJS) \
jvspec.o java/jcf-path.o prefix.o intl.o \
version.o $(EXTRA_GCC_OBJS) $(LIBS)
jc1$(exeext): $(JAVA_OBJS) $(BACKEND) $(LIBDEPS) attribs.o
rm -f $@
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
$(JAVA_OBJS) $(BACKEND) $(ZLIB) $(LIBICONV) $(LIBS) attribs.o $(BACKENDLIBS)
jcf-dump$(exeext): $(JCFDUMP_OBJS) $(LIBDEPS)
rm -f $@
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(JCFDUMP_OBJS) \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(JCFDUMP_OBJS) \
$(CPPLIBS) $(ZLIB) $(LDEXP_LIB) $(LIBS)
jvgenmain$(exeext): $(JVGENMAIN_OBJS) $(LIBDEPS)
rm -f $@
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(JVGENMAIN_OBJS) \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ $(JVGENMAIN_OBJS) \
$(LIBS)
#\f
+2010-10-04 Andi Kleen <ak@linux.intel.com>
+
+ * Make-lang.in (lto1): Add + to build rule.
+
2010-10-03 Andi Kleen <ak@linux.intel.com>
* lto.c (lto_file_finalize): Replace gcc_assert for missing section
lto-warn = $(STRICT_WARN)
$(LTO_EXE): $(LTO_OBJS) $(BACKEND) $(LIBDEPS)
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
$(LTO_OBJS) $(BACKEND) $(BACKENDLIBS) $(LIBS) $(LTO_USE_LIBELF)
# Dependencies
+2010-10-04 Andi Kleen <ak@linux.intel.com>
+
+ * Make-lang.in (cc1obj-dummy, cc1obj): Add + to build rule.
+
2010-09-30 Iain Sandoe <iains@gcc.gnu.org>
merge from FSF 'apple/trunk' branch.
objc_OBJS = $(OBJC_OBJS) cc1obj-checksum.o
cc1obj-dummy$(exeext): $(OBJC_OBJS) $(C_AND_OBJC_OBJS) dummy-checksum.o $(BACKEND) $(LIBDEPS)
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
$(OBJC_OBJS) $(C_AND_OBJC_OBJS) dummy-checksum.o \
$(BACKEND) $(LIBS) $(BACKENDLIBS)
cc1obj-checksum.o : cc1obj-checksum.c $(CONFIG_H) $(SYSTEM_H)
cc1obj$(exeext): $(OBJC_OBJS) $(C_AND_OBJC_OBJS) cc1obj-checksum.o $(BACKEND) $(LIBDEPS)
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
$(OBJC_OBJS) $(C_AND_OBJC_OBJS) cc1obj-checksum.o \
$(BACKEND) $(LIBS) $(BACKENDLIBS)
+2010-10-04 Andi Kleen <ak@linux.intel.com>
+
+ * Make-lang.in (cc1objplus-dummy, cc1objplus): Add + to build rule.
+
2010-09-28 Richard Henderson <rth@redhat.com>
* objcp-lang.c: Include "target.h".
cc1objplus-dummy$(exeext): $(OBJCXX_OBJS) dummy-checksum.o $(BACKEND) \
$(LIBDEPS)
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
$(OBJCXX_OBJS) dummy-checksum.o $(BACKEND) $(LIBS) $(BACKENDLIBS)
cc1objplus-checksum.c : cc1objplus-dummy$(exeext) build/genchecksum$(build_exeext)
cc1objplus-checksum.o : cc1objplus-checksum.c $(CONFIG_H) $(SYSTEM_H)
cc1objplus$(exeext): $(OBJCXX_OBJS) cc1objplus-checksum.o $(BACKEND) $(LIBDEPS)
- $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
+ +$(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
$(OBJCXX_OBJS) cc1objplus-checksum.o $(BACKEND) $(LIBS) $(BACKENDLIBS)
# Objective C++ language specific files.