~ chicken-core (chicken-5) 326def9cb2f9350d488a41af7a577cb00ed192f8
commit 326def9cb2f9350d488a41af7a577cb00ed192f8
Author: Mario Domenech Goulart <mario@parenteses.org>
AuthorDate: Fri Sep 13 22:00:01 2024 +0200
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Tue Sep 17 16:23:55 2024 +0200
rules.make: Explicitly sequentialize steps in the bootstrap process
In case of parallel builds, sub-make invocations inherit the
parallelization settings of the caller make. That might lead to the
execution of, for example, confclean and chicken-boot-stage1 in
parallel, which breaks builds.
Improve that by explicitly sequentializing the steps that cannot be
executed in parallel.
Signed-off-by: felix <felix@call-with-current-continuation.org>
diff --git a/rules.make b/rules.make
index 2e3abd3d..eb2e6db6 100644
--- a/rules.make
+++ b/rules.make
@@ -1034,15 +1034,20 @@ bench: $(CHICKEN_SHARED_EXECUTABLE) $(CSI_SHARED_EXECUTABLE) $(CSC_PROGRAM)$(EXE
.PHONY: boot-chicken bootclean
+STAGE1_CONFIG = PLATFORM=$(PLATFORM) PREFIX=/nowhere CONFIG= \
+ CHICKEN=$(CHICKEN) PROGRAM_SUFFIX=-boot-stage1 STATICBUILD=1 \
+ C_COMPILER_OPTIMIZATION_OPTIONS="$(C_COMPILER_OPTIMIZATION_OPTIONS)" BUILDING_CHICKEN_BOOT=1
+
+BOOT_CONFIG = PLATFORM=$(PLATFORM) PREFIX=/nowhere CONFIG= \
+ CHICKEN=.$(SEP)chicken-boot-stage1$(EXE) PROGRAM_SUFFIX=-boot \
+ STATICBUILD=1 C_COMPILER_OPTIMIZATION_OPTIONS="$(C_COMPILER_OPTIMIZATION_OPTIONS)"
+
boot-chicken:
- "$(MAKE)" PLATFORM=$(PLATFORM) PREFIX=/nowhere CONFIG= \
- CHICKEN=$(CHICKEN) PROGRAM_SUFFIX=-boot-stage1 STATICBUILD=1 \
- C_COMPILER_OPTIMIZATION_OPTIONS="$(C_COMPILER_OPTIMIZATION_OPTIONS)" BUILDING_CHICKEN_BOOT=1 \
- confclean chicken-boot-stage1$(EXE)
- "$(MAKE)" PLATFORM=$(PLATFORM) PREFIX=/nowhere CONFIG= \
- CHICKEN=.$(SEP)chicken-boot-stage1$(EXE) PROGRAM_SUFFIX=-boot \
- STATICBUILD=1 C_COMPILER_OPTIMIZATION_OPTIONS="$(C_COMPILER_OPTIMIZATION_OPTIONS)" \
- touchfiles chicken-boot$(EXE) confclean
+ "$(MAKE)" $(STAGE1_CONFIG) confclean
+ "$(MAKE)" $(STAGE1_CONFIG) chicken-boot-stage1$(EXE)
+ "$(MAKE)" $(BOOT_CONFIG) touchfiles
+ "$(MAKE)" $(BOOT_CONFIG) chicken-boot$(EXE)
+ "$(MAKE)" $(BOOT_CONFIG) confclean
bootclean:
-$(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) \
Trap