gcc-4.{7,8}: hacky fix for parallel builds
The hash of stdenv is unchanged, as we use profiled compiler, which has parallel builds disabled (conditional patch).
This commit is contained in:
parent
c6b92053c9
commit
86802e68ff
@ -54,7 +54,18 @@ let version = "4.7.3";
|
|||||||
# Whether building a cross-compiler for GNU/Hurd.
|
# Whether building a cross-compiler for GNU/Hurd.
|
||||||
crossGNU = cross != null && cross.config == "i586-pc-gnu";
|
crossGNU = cross != null && cross.config == "i586-pc-gnu";
|
||||||
|
|
||||||
|
/* gccinstall.info says that "parallel make is currently not supported since
|
||||||
|
collisions in profile collecting may occur".
|
||||||
|
|
||||||
|
Parallel make of gfortran is disabled because of an apparent race
|
||||||
|
condition concerning the generation of "bconfig.h". Please try and
|
||||||
|
re-enable parallel make for a later release of gfortran to check whether
|
||||||
|
the error has been fixed.
|
||||||
|
*/
|
||||||
|
enableParallelBuilding = !profiledCompiler && !langFortran;
|
||||||
|
|
||||||
patches = []
|
patches = []
|
||||||
|
++ optional enableParallelBuilding ../4.8/parallel-bconfig.patch
|
||||||
++ optional stdenv.isArm [ ./arm-eabi.patch ]
|
++ optional stdenv.isArm [ ./arm-eabi.patch ]
|
||||||
++ optional (cross != null) ./libstdc++-target.patch
|
++ optional (cross != null) ./libstdc++-target.patch
|
||||||
# ++ optional noSysDirs ./no-sys-dirs.patch
|
# ++ optional noSysDirs ./no-sys-dirs.patch
|
||||||
@ -481,11 +492,7 @@ stdenv.mkDerivation ({
|
|||||||
passthru = { inherit langC langCC langAda langFortran langVhdl
|
passthru = { inherit langC langCC langAda langFortran langVhdl
|
||||||
langGo enableMultilib version; };
|
langGo enableMultilib version; };
|
||||||
|
|
||||||
/* From gccinstall.info:
|
inherit enableParallelBuilding;
|
||||||
"parallel make is currently not supported since collisions in profile
|
|
||||||
collecting may occur"
|
|
||||||
*/
|
|
||||||
enableParallelBuilding = !profiledCompiler;
|
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = http://gcc.gnu.org/;
|
homepage = http://gcc.gnu.org/;
|
||||||
|
@ -57,7 +57,18 @@ let version = "4.8.2";
|
|||||||
# Whether building a cross-compiler for GNU/Hurd.
|
# Whether building a cross-compiler for GNU/Hurd.
|
||||||
crossGNU = cross != null && cross.config == "i586-pc-gnu";
|
crossGNU = cross != null && cross.config == "i586-pc-gnu";
|
||||||
|
|
||||||
|
/* gccinstall.info says that "parallel make is currently not supported since
|
||||||
|
collisions in profile collecting may occur".
|
||||||
|
|
||||||
|
Parallel make of gfortran is disabled because of an apparent race
|
||||||
|
condition concerning the generation of "bconfig.h". Please try and
|
||||||
|
re-enable parallel make for a later release of gfortran to check whether
|
||||||
|
the error has been fixed.
|
||||||
|
*/
|
||||||
|
enableParallelBuilding = !profiledCompiler && !langFortran;
|
||||||
|
|
||||||
patches = []
|
patches = []
|
||||||
|
++ optional enableParallelBuilding ./parallel-bconfig.patch
|
||||||
++ optional stdenv.isArm [ ./arm-eabi.patch ]
|
++ optional stdenv.isArm [ ./arm-eabi.patch ]
|
||||||
++ optional (cross != null) ./libstdc++-target.patch
|
++ optional (cross != null) ./libstdc++-target.patch
|
||||||
# ++ optional noSysDirs ./no-sys-dirs.patch
|
# ++ optional noSysDirs ./no-sys-dirs.patch
|
||||||
@ -484,15 +495,7 @@ stdenv.mkDerivation ({
|
|||||||
passthru = { inherit langC langCC langAda langFortran langVhdl
|
passthru = { inherit langC langCC langAda langFortran langVhdl
|
||||||
langGo enableMultilib version; };
|
langGo enableMultilib version; };
|
||||||
|
|
||||||
/* gccinstall.info says that "parallel make is currently not supported since
|
inherit enableParallelBuilding;
|
||||||
collisions in profile collecting may occur".
|
|
||||||
|
|
||||||
Parallel make of gfortran is disabled because of an apparent race
|
|
||||||
condition concerning the generation of "bconfig.h". Please try and
|
|
||||||
re-enable parallel make for a later release of gfortran to check whether
|
|
||||||
the error has been fixed.
|
|
||||||
*/
|
|
||||||
enableParallelBuilding = !profiledCompiler && !langFortran;
|
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = http://gcc.gnu.org/;
|
homepage = http://gcc.gnu.org/;
|
||||||
|
32
pkgs/development/compilers/gcc/4.8/parallel-bconfig.patch
Normal file
32
pkgs/development/compilers/gcc/4.8/parallel-bconfig.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
Hacky work-around for highly parallel builds.
|
||||||
|
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57125
|
||||||
|
|
||||||
|
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
|
||||||
|
index aad927c..182f666 100644
|
||||||
|
--- a/gcc/Makefile.in
|
||||||
|
+++ b/gcc/Makefile.in
|
||||||
|
@@ -3908,21 +3908,21 @@ build/gengtype-lex.o: $(BCONFIG_H)
|
||||||
|
|
||||||
|
gengtype-parse.o build/gengtype-parse.o : gengtype-parse.c gengtype.h \
|
||||||
|
$(SYSTEM_H)
|
||||||
|
-gengtype-parse.o: $(CONFIG_H)
|
||||||
|
+gengtype-parse.o: $(CONFIG_H) $(BCONFIG_H)
|
||||||
|
CFLAGS-gengtype-parse.o += -DGENERATOR_FILE
|
||||||
|
build/gengtype-parse.o: $(BCONFIG_H)
|
||||||
|
|
||||||
|
gengtype-state.o build/gengtype-state.o: gengtype-state.c $(SYSTEM_H) \
|
||||||
|
gengtype.h errors.h double-int.h version.h $(HASHTAB_H) $(OBSTACK_H) \
|
||||||
|
$(XREGEX_H)
|
||||||
|
-gengtype-state.o: $(CONFIG_H)
|
||||||
|
+gengtype-state.o: $(CONFIG_H) $(BCONFIG_H)
|
||||||
|
CFLAGS-gengtype-state.o += -DGENERATOR_FILE
|
||||||
|
build/gengtype-state.o: $(BCONFIG_H)
|
||||||
|
|
||||||
|
gengtype.o build/gengtype.o : gengtype.c $(SYSTEM_H) gengtype.h \
|
||||||
|
rtl.def insn-notes.def errors.h double-int.h version.h $(HASHTAB_H) \
|
||||||
|
$(OBSTACK_H) $(XREGEX_H)
|
||||||
|
-gengtype.o: $(CONFIG_H)
|
||||||
|
+gengtype.o: $(CONFIG_H) $(BCONFIG_H)
|
||||||
|
CFLAGS-gengtype.o += -DGENERATOR_FILE
|
||||||
|
build/gengtype.o: $(BCONFIG_H)
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user