From 9aa967953d75e284dfb9bbe87668ac39a9d827fe Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Wed, 27 May 2026 21:55:50 +0300 Subject: [PATCH] make: disable gc for bootstrap compiler builds --- GNUmakefile | 12 ++++++++---- Makefile | 8 ++++++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index 6b4da4eaa..6405c6f6f 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -144,6 +144,10 @@ endif BOOTSTRAP_TCC_REQUESTED := $(or $(findstring -cc tcc,$(strip $(VFLAGS))),$(findstring -cc=tcc,$(strip $(VFLAGS)))) BOOTSTRAP_CCOMPILER_VFLAG := BOOTSTRAP_VC_CCOMPILER_VFLAG := +BOOTSTRAP_GC_VFLAG := +ifeq ($(filter -gc -gc=%,$(VFLAGS)),) + BOOTSTRAP_GC_VFLAG := -gc none +endif ifeq ($(LINUX),1) ifneq ($(filter $(TCCARCH),arm64 aarch64),) ifeq ($(filter -cc,$(VFLAGS)),) @@ -170,8 +174,8 @@ BOOTSTRAP_VFLAGS := $(BOOTSTRAP_CCOMPILER_VFLAG) $(if $(strip $(BOOTSTRAP_CFLAGS all: latest_vc latest_tcc latest_legacy ifdef WIN32 $(CC) $(CPPFLAGS) $(BOOTSTRAP_VC_CC_CFLAGS) -std=c99 -municode -w -o v1$(EXE_EXT) $(VC)/$(VCFILE) $(LDFLAGS) -lws2_32 || cmd/tools/cc_compilation_failed_windows.sh - ./v1$(EXE_EXT) -no-parallel -o v2$(EXE_EXT) $(VFLAGS) $(BOOTSTRAP_VC_VFLAGS) cmd/v - ./v2$(EXE_EXT) -o $(VEXE)$(EXE_EXT) $(VFLAGS) $(BOOTSTRAP_VFLAGS) cmd/v + ./v1$(EXE_EXT) -no-parallel -o v2$(EXE_EXT) $(BOOTSTRAP_GC_VFLAG) $(VFLAGS) $(BOOTSTRAP_VC_VFLAGS) cmd/v + ./v2$(EXE_EXT) -o $(VEXE)$(EXE_EXT) $(BOOTSTRAP_GC_VFLAG) $(VFLAGS) $(BOOTSTRAP_VFLAGS) cmd/v $(RM) v1$(EXE_EXT) $(RM) v2$(EXE_EXT) else @@ -185,11 +189,11 @@ endif ifdef NETBSD paxctl +m v1$(EXE_EXT) endif - ./v1$(EXE_EXT) -no-parallel -o v2$(EXE_EXT) $(VFLAGS) $(BOOTSTRAP_VC_VFLAGS) cmd/v + ./v1$(EXE_EXT) -no-parallel -o v2$(EXE_EXT) $(BOOTSTRAP_GC_VFLAG) $(VFLAGS) $(BOOTSTRAP_VC_VFLAGS) cmd/v ifdef NETBSD paxctl +m v2$(EXE_EXT) endif - ./v2$(EXE_EXT) -nocache -o $(VEXE)$(EXE_EXT) $(VFLAGS) $(BOOTSTRAP_VFLAGS) cmd/v + ./v2$(EXE_EXT) -nocache -o $(VEXE)$(EXE_EXT) $(BOOTSTRAP_GC_VFLAG) $(VFLAGS) $(BOOTSTRAP_VFLAGS) cmd/v ifdef NETBSD paxctl +m $(VEXE)$(EXE_EXT) endif diff --git a/Makefile b/Makefile index 23e555882..fa02c3a58 100644 --- a/Makefile +++ b/Makefile @@ -91,8 +91,12 @@ v: ;; \ esac; \ fi; \ + bootstrap_gcflags="-gc none"; \ + case " $(VFLAGS) " in \ + *" -gc "*|*" -gc="*) bootstrap_gcflags="";; \ + esac; \ $(CC) $$bootstrap_ccflags -std=gnu11 -w -o v1 vc/v.c -lm -lpthread $$ldflags || cmd/tools/cc_compilation_failed_non_windows.sh; \ - set -- ./v1 -no-parallel -o v2 $(VFLAGS); \ + set -- ./v1 -no-parallel -o v2 $$bootstrap_gcflags $(VFLAGS); \ if [ -n "$$bootstrap_ccflags" ]; then \ set -- "$$@" -cflags "$$bootstrap_ccflags"; \ fi; \ @@ -101,7 +105,7 @@ v: fi; \ set -- "$$@" cmd/v; \ "$$@"; \ - set -- ./v2 -o v $(VFLAGS); \ + set -- ./v2 -o v $$bootstrap_gcflags $(VFLAGS); \ if [ -n "$$ccflags" ]; then \ set -- "$$@" -cflags "$$ccflags"; \ fi; \ -- 2.39.5