diff --git a/.github/workflows/compilers.yml b/.github/workflows/compilers.yml index 5e9abde523fb39..e669a001fde252 100644 --- a/.github/workflows/compilers.yml +++ b/.github/workflows/compilers.yml @@ -211,9 +211,9 @@ jobs: - { name: UNIVERSAL_PARSER, env: { cppflags: '-DUNIVERSAL_PARSER' } } - name: SHARED_GC shared_gc: true - shared_gc_dir: '../gc' + shared_gc_dir: '/ruby_gc' env: - append_configure: '--with-shared-gc=../gc' + append_configure: '--with-shared-gc=/ruby_gc' name: ${{ matrix.entry.name }} @@ -263,9 +263,9 @@ jobs: - name: Build shared GC run: > - echo "RUBY_GC_LIBRARY=librubygc.gc_impl.so" >> $GITHUB_ENV && + echo "RUBY_GC_LIBRARY=librubygc.default.so" >> $GITHUB_ENV && mkdir ${{ matrix.entry.shared_gc_dir }} && - make shared-gc SHARED_GC=gc_impl + make shared-gc SHARED_GC=default if: ${{ matrix.entry.shared_gc }} - name: Add to ext/Setup diff --git a/common.mk b/common.mk index eb1ccbcdeba125..3a9df0d32aebdf 100644 --- a/common.mk +++ b/common.mk @@ -1915,7 +1915,7 @@ shared-gc: probes.h exit 1; \ else \ echo generating $(shared_gc_dir)librubygc.$(SHARED_GC).$(SOEXT); \ - $(LDSHARED) -I$(srcdir)/include -I$(srcdir) -I$(arch_hdrdir) -I. $(XDLDFLAGS) $(cflags) -fPIC -o $(shared_gc_dir)librubygc.$(SHARED_GC).$(SOEXT) $(srcdir)/$(SHARED_GC).c; \ + $(LDSHARED) -I$(srcdir)/include -I$(srcdir) -I$(arch_hdrdir) -I. $(XDLDFLAGS) $(cflags) -fPIC -o $(shared_gc_dir)librubygc.$(SHARED_GC).$(SOEXT) $(srcdir)/gc/$(SHARED_GC).c; \ fi help: PHONY @@ -7506,6 +7506,7 @@ gc_impl.$(OBJEXT): $(CCAN_DIR)/container_of/container_of.h gc_impl.$(OBJEXT): $(CCAN_DIR)/list/list.h gc_impl.$(OBJEXT): $(CCAN_DIR)/str/str.h gc_impl.$(OBJEXT): $(hdrdir)/ruby/ruby.h +gc_impl.$(OBJEXT): $(top_srcdir)/gc/default.c gc_impl.$(OBJEXT): $(top_srcdir)/internal/bits.h gc_impl.$(OBJEXT): $(top_srcdir)/internal/compilers.h gc_impl.$(OBJEXT): $(top_srcdir)/internal/sanitizers.h @@ -7527,7 +7528,6 @@ gc_impl.$(OBJEXT): {$(VPATH)}darray.h gc_impl.$(OBJEXT): {$(VPATH)}debug.h gc_impl.$(OBJEXT): {$(VPATH)}debug_counter.h gc_impl.$(OBJEXT): {$(VPATH)}defines.h -gc_impl.$(OBJEXT): {$(VPATH)}gc_impl.c gc_impl.$(OBJEXT): {$(VPATH)}intern.h gc_impl.$(OBJEXT): {$(VPATH)}internal/abi.h gc_impl.$(OBJEXT): {$(VPATH)}internal/anyargs.h diff --git a/gc_impl.c b/gc/default.c similarity index 100% rename from gc_impl.c rename to gc/default.c diff --git a/template/Makefile.in b/template/Makefile.in index 79a23fcdeb2c39..fc3739b66f38ba 100644 --- a/template/Makefile.in +++ b/template/Makefile.in @@ -67,6 +67,7 @@ RUBY_VERSION_NAME = @RUBY_VERSION_NAME@ UNIVERSAL_ARCHNAMES = @UNIVERSAL_ARCHNAMES@ BUILTIN_BINARY = @X_BUILTIN_BINARY@ +BUILTIN_GC = default shared_gc_dir = @shared_gc_dir@ TESTUI = console @@ -444,6 +445,10 @@ $(srcdir)/enc/jis/props.h: enc/jis/props.kwd $(CP) $@ $(?:.kwd=.h.blt); \ fi +gc_impl.$(OBJEXT): gc/$(BUILTIN_GC).c probes.h + @$(ECHO) compiling $< + $(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $< + .c.$(OBJEXT): @$(ECHO) compiling $< $(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $< diff --git a/win32/Makefile.sub b/win32/Makefile.sub index 46213466eb8985..2b791c0562c67a 100644 --- a/win32/Makefile.sub +++ b/win32/Makefile.sub @@ -443,6 +443,8 @@ PREP = miniruby$(EXEEXT) BUILTIN_BINARY = yes !endif +BUILTIN_GC = default + !if !defined(EXTSTATIC) EXTSTATIC = !endif @@ -1336,6 +1338,11 @@ $(ruby_pc): $(RBCONFIG) $(ECHO) compiling $(<:\=/) $(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$(<:\=/) +BUILTIN_GC_PATH = $(srcdir)/gc/$(BUILTIN_GC).c +gc_impl.obj: $(BUILTIN_GC_PATH) + $(ECHO) compiling $(BUILTIN_GC_PATH:\=/) + $(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) $(COUTFLAG)$@ -c $(CSRCFLAG)$(BUILTIN_GC_PATH:\=/) + {$(srcdir)/missing}.c.asm: $(ECHO) translating $(<:\=/) $(Q) $(CC) $(CFLAGS) $(XCFLAGS) $(CPPFLAGS) -Fa$@ -c $(CSRCFLAG)$(<:\=/)