~ 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