~ 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