wingo pushed a commit to branch wip-whippet
in repository guile.

commit 6e36c039e90e2287ea3762fc3a53b53f29322817
Author: Andy Wingo <wi...@igalia.com>
AuthorDate: Wed Apr 16 12:06:02 2025 +0200

    Rework extension points between embedder and GC
---
 Makefile           | 33 ++++++++++++++++++--------------
 embed.am           | 56 ++++++++++++++++++++++++++----------------------------
 embed.mk           | 54 ++++++++++++++++++++++++++++++----------------------
 src/gc-ephemeron.c |  2 +-
 src/gc-finalizer.c |  2 +-
 src/gc-internal.h  |  1 +
 6 files changed, 80 insertions(+), 68 deletions(-)

diff --git a/Makefile b/Makefile
index c5c91ae3e..c8a753590 100644
--- a/Makefile
+++ b/Makefile
@@ -24,11 +24,16 @@ COLLECTORS = \
 
 DEFAULT_BUILD := opt
 
-BUILD_CFLAGS_opt      = -O2 -g -DNDEBUG
-BUILD_CFLAGS_optdebug = -Og -g -DGC_DEBUG=1
-BUILD_CFLAGS_debug    = -O0 -g -DGC_DEBUG=1
+BUILD_CFLAGS_opt      = -O2 -g
+BUILD_CFLAGS_optdebug = -Og -g
+BUILD_CFLAGS_debug    = -O0 -g
+
+BUILD_CPPFLAGS_opt      = -DNDEBUG
+BUILD_CPPFLAGS_optdebug = -DGC_DEBUG=1
+BUILD_CPPFLAGS_debug    = -DGC_DEBUG=1
 
 BUILD_CFLAGS = $(BUILD_CFLAGS_$(or $(BUILD),$(DEFAULT_BUILD)))
+BUILD_CPPFLAGS = $(BUILD_CPPFLAGS_$(or $(BUILD),$(DEFAULT_BUILD)))
 
 USE_LTTNG_0 :=
 USE_LTTNG_1 := 1
@@ -40,7 +45,7 @@ TRACEPOINT_LIBS = $(LTTNG_LIBS)
 
 CC       = gcc
 CFLAGS   = -Wall -flto -fno-strict-aliasing -fvisibility=hidden -Wno-unused 
$(BUILD_CFLAGS)
-CPPFLAGS = -Iapi $(TRACEPOINT_CPPFLAGS)
+CPPFLAGS = -Iapi $(TRACEPOINT_CPPFLAGS) $(BUILD_CPPFLAGS)
 LDFLAGS  = -lpthread -flto=auto $(TRACEPOINT_LIBS)
 DEPFLAGS = -MMD -MP -MF $(@:obj/%.o=.deps/%.d)
 COMPILE  = $(CC) $(CFLAGS) $(CPPFLAGS) $(DEPFLAGS) -o $@
@@ -63,30 +68,30 @@ obj/gc-options.o: src/gc-options.c | .deps obj
 obj/gc-tracepoint.o: src/gc-tracepoint.c | .deps obj
        $(COMPILE) -c $<
 obj/%.gc-ephemeron.o: src/gc-ephemeron.c | .deps obj
-       $(COMPILE) -include benchmarks/$*-embedder.h -c $<
+       $(COMPILE) -DGC_EMBEDDER=\"../benchmarks/$*-embedder.h\" -c $<
 obj/%.gc-finalizer.o: src/gc-finalizer.c | .deps obj
-       $(COMPILE) -include benchmarks/$*-embedder.h -c $<
+       $(COMPILE) -DGC_EMBEDDER=\"../benchmarks/$*-embedder.h\" -c $<
 
 GC_STEM_bdw       = bdw
-GC_CFLAGS_bdw     = -DGC_CONSERVATIVE_ROOTS=1 -DGC_CONSERVATIVE_TRACE=1
+GC_CPPFLAGS_bdw    = -DGC_CONSERVATIVE_ROOTS=1 -DGC_CONSERVATIVE_TRACE=1
 GC_IMPL_CFLAGS_bdw = `pkg-config --cflags bdw-gc`
 GC_LIBS_bdw        = `pkg-config --libs bdw-gc`
 
 GC_STEM_semi       = semi
-GC_CFLAGS_semi     = -DGC_PRECISE_ROOTS=1
+GC_CPPFLAGS_semi   = -DGC_PRECISE_ROOTS=1
 GC_LIBS_semi       = -lm
 
 GC_STEM_pcc        = pcc
-GC_CFLAGS_pcc      = -DGC_PRECISE_ROOTS=1 -DGC_PARALLEL=1
+GC_CPPFLAGS_pcc    = -DGC_PRECISE_ROOTS=1 -DGC_PARALLEL=1
 GC_LIBS_pcc        = -lm
 
 GC_STEM_generational_pcc   = $(GC_STEM_pcc)
-GC_CFLAGS_generational_pcc = $(GC_CFLAGS_pcc) -DGC_GENERATIONAL=1
+GC_CPPFLAGS_generational_pcc = $(GC_CPPFLAGS_pcc) -DGC_GENERATIONAL=1
 GC_LIBS_generational_pcc   = $(GC_LIBS_pcc)
 
 define mmc_variant
 GC_STEM_$(1)       = mmc
-GC_CFLAGS_$(1)     = $(2)
+GC_CPPFLAGS_$(1)   = $(2)
 GC_LIBS_$(1)       = -lm
 endef
 
@@ -112,14 +117,14 @@ $(eval $(call trace_mmc_variants))
 make_gc_var    = $$($(1)$(subst -,_,$(2)))
 gc_impl        = $(call make_gc_var,GC_STEM_,$(1)).c
 gc_attrs       = $(call make_gc_var,GC_STEM_,$(1))-attrs.h
-gc_cflags      = $(call make_gc_var,GC_CFLAGS_,$(1))
+gc_cppflags    = $(call make_gc_var,GC_CPPFLAGS_,$(1))
 gc_impl_cflags = $(call make_gc_var,GC_IMPL_CFLAGS_,$(1))
 gc_libs        = $(call make_gc_var,GC_LIBS_,$(1))
 define benchmark_template
 obj/$(1).$(2).gc.o: src/$(call gc_impl,$(2)) | .deps obj
-       $$(COMPILE) $(call gc_cflags,$(2)) $(call gc_impl_cflags,$(2)) -include 
benchmarks/$(1)-embedder.h -c $$<
+       $$(COMPILE) $(call gc_cppflags,$(2)) $(call gc_impl_cflags,$(2)) 
-DGC_EMBEDDER=\"../benchmarks/$(1)-embedder.h\" -c $$<
 obj/$(1).$(2).o: benchmarks/$(1).c | .deps obj
-       $$(COMPILE) $(call gc_cflags,$(2)) -include api/$(call gc_attrs,$(2)) 
-c $$<
+       $$(COMPILE) $(call gc_cppflags,$(2)) -include api/$(call gc_attrs,$(2)) 
-c $$<
 bin/$(1).$(2): obj/$(1).$(2).gc.o obj/$(1).$(2).o obj/gc-stack.o 
obj/gc-options.o obj/gc-platform.o obj/gc-tracepoint.o obj/$(1).gc-ephemeron.o 
obj/$(1).gc-finalizer.o | bin
        $$(LINK) $$^ $(call gc_libs,$(2))
 endef
diff --git a/embed.am b/embed.am
index caa701af6..83c89d172 100644
--- a/embed.am
+++ b/embed.am
@@ -4,7 +4,7 @@
 # whippet/ subdirectory:
 #  
 #     noinst_LTLIBRARIES =
-#     WHIPPET_EMBEDDER_CPPFLAGS = -include src/my-embedder.h
+#     WHIPPET_EMBEDDER_H = $(srcdir)/src/my-embedder.h
 #     include whippet/embed.am
 #
 # my-embedder.h should provide the various hooks that Whippet needs to
@@ -12,9 +12,8 @@
 #
 # The result is a libwhippet.la.  To compile and link against it:
 #
-#     AM_CFLAGS = $(WHIPPET_CPPFLAGS) $(WHIPPET_CFLAGS) 
$(WHIPPET_TO_EMBEDDER_CPPFLAGS)
+#     AM_CPPFLAGS = $(WHIPPET_CPPFLAGS)
 #     LDADD = libwhippet.la
-#     AM_LDFLAGS = $(WHIPPET_TO_EMBEDDER_LDFLAGS)
 #
 # The assumption is that the embedder will build a single copy of
 # Whippet, specialized against a single collector, a single set of
@@ -93,72 +92,70 @@ libwhippet_la_SOURCES = \
   %D%/src/swar.h \
   %D%/src/tracer.h
 
-WHIPPET_CFLAGS_bdw = -DGC_CONSERVATIVE_ROOTS=1 -DGC_CONSERVATIVE_TRACE=1
-WHIPPET_CFLAGS_semi = -DGC_PRECISE_ROOTS=1
-WHIPPET_CFLAGS_pcc = -DGC_PRECISE_ROOTS=1 -DGC_PARALLEL=1
-WHIPPET_CFLAGS_generational_pcc = $(WHIPPET_CFLAGS_pcc) -DGC_GENERATIONAL=1
-WHIPPET_CFLAGS_mmc = \
+WHIPPET_CPPFLAGS_bdw = -DGC_CONSERVATIVE_ROOTS=1 -DGC_CONSERVATIVE_TRACE=1
+WHIPPET_CPPFLAGS_semi = -DGC_PRECISE_ROOTS=1
+WHIPPET_CPPFLAGS_pcc = -DGC_PRECISE_ROOTS=1 -DGC_PARALLEL=1
+WHIPPET_CPPFLAGS_generational_pcc = $(WHIPPET_CPPFLAGS_pcc) -DGC_GENERATIONAL=1
+WHIPPET_CPPFLAGS_mmc = \
   -DGC_PRECISE_ROOTS=1
-WHIPPET_CFLAGS_generational_mmc = \
+WHIPPET_CPPFLAGS_generational_mmc = \
   -DGC_PRECISE_ROOTS=1 -DGC_GENERATIONAL=1
-WHIPPET_CFLAGS_parallel_mmc = \
+WHIPPET_CPPFLAGS_parallel_mmc = \
   -DGC_PRECISE_ROOTS=1 -DGC_PARALLEL=1
-WHIPPET_CFLAGS_parallel_generational_mmc = \
+WHIPPET_CPPFLAGS_parallel_generational_mmc = \
   -DGC_PRECISE_ROOTS=1 -DGC_GENERATIONAL=1 -DGC_PARALLEL=1
-WHIPPET_CFLAGS_stack_conservative_mmc = \
+WHIPPET_CPPFLAGS_stack_conservative_mmc = \
   -DGC_CONSERVATIVE_ROOTS=1
-WHIPPET_CFLAGS_stack_conservative_generational_mmc = \
+WHIPPET_CPPFLAGS_stack_conservative_generational_mmc = \
   -DGC_CONSERVATIVE_ROOTS=1 -DGC_GENERATIONAL=1
-WHIPPET_CFLAGS_stack_conservative_parallel_mmc = \
+WHIPPET_CPPFLAGS_stack_conservative_parallel_mmc = \
   -DGC_CONSERVATIVE_ROOTS=1 -DGC_PARALLEL=1
-WHIPPET_CFLAGS_stack_conservative_parallel_generational_mmc = \
+WHIPPET_CPPFLAGS_stack_conservative_parallel_generational_mmc = \
   -DGC_CONSERVATIVE_ROOTS=1 -DGC_GENERATIONAL=1 -DGC_PARALLEL=1
-WHIPPET_CFLAGS_heap_conservative_mmc = \
+WHIPPET_CPPFLAGS_heap_conservative_mmc = \
   -DGC_CONSERVATIVE_ROOTS=1 -DGC_CONSERVATIVE_TRACE=1
-WHIPPET_CFLAGS_heap_conservative_generational_mmc = \
+WHIPPET_CPPFLAGS_heap_conservative_generational_mmc = \
   -DGC_CONSERVATIVE_ROOTS=1 -DGC_CONSERVATIVE_TRACE=1 -DGC_GENERATIONAL=1
-WHIPPET_CFLAGS_heap_conservative_parallel_mmc = \
+WHIPPET_CPPFLAGS_heap_conservative_parallel_mmc = \
   -DGC_CONSERVATIVE_ROOTS=1 -DGC_CONSERVATIVE_TRACE=1 -DGC_PARALLEL=1
-WHIPPET_CFLAGS_heap_conservative_parallel_generational_mmc = \
+WHIPPET_CPPFLAGS_heap_conservative_parallel_generational_mmc = \
   -DGC_CONSERVATIVE_ROOTS=1 -DGC_CONSERVATIVE_TRACE=1 -DGC_GENERATIONAL=1 
-DGC_PARALLEL=1
 
-WHIPPET_CFLAGS      = $(WHIPPET_CFLAGS_$(subst -,_,$(WHIPPET_COLLECTOR)))
+WHIPPET_CPPFLAGS    = $(WHIPPET_CPPFLAGS_$(subst -,_,$(WHIPPET_COLLECTOR)))
+WHIPPET_CPPFLAGS    += -I$(srcdir)/%D%/api
 WHIPPET_IMPL_CFLAGS =
 WHIPPET_LIBS        = -lm
-WHIPPET_CPPFLAGS    = -I$(srcdir)/%D%/api
-WHIPPET_TO_EMBEDDER_CPPFLAGS = $(WHIPPET_CPPFLAGS)
 
 if WHIPPET_ENABLE_DEBUG
-WHIPPET_CFLAGS += -DGC_DEBUG=1
+WHIPPET_CPPFLAGS += -DGC_DEBUG=1
 endif
 
 if WHIPPET_COLLECTOR_SEMI
 libwhippet_la_SOURCES += %D%/src/semi.c
-WHIPPET_TO_EMBEDDER_CPPFLAGS += -include $(srcdir)/%D%/api/semi-attrs.h
+WHIPPET_CPPFLAGS      += -DWHIPPET_ATTRS=\"$(srcdir)/%D%/api/semi-attrs.h\"
 endif
 
 if WHIPPET_COLLECTOR_PCC
 libwhippet_la_SOURCES += %D%/src/pcc.c
-WHIPPET_TO_EMBEDDER_CPPFLAGS += -include $(srcdir)/%D%/api/pcc-attrs.h
+WHIPPET_CPPFLAGS       += -DWHIPPET_ATTRS=\"$(srcdir)/%D%/api/pcc-attrs.h\"
 endif
 
 if WHIPPET_COLLECTOR_BDW
 libwhippet_la_SOURCES += %D%/src/bdw.c
 WHIPPET_IMPL_CFLAGS   += $(WHIPPET_BDW_CFLAGS)
 WHIPPET_LIBS          += $(WHIPPET_BDW_LIBS)
-WHIPPET_TO_EMBEDDER_CPPFLAGS += -include $(srcdir)/%D%/api/bdw-attrs.h
+WHIPPET_CPPFLAGS      += -DWHIPPET_ATTRS=\"$(srcdir)/%D%/api/bdw-attrs.h\"
 endif
 
 if WHIPPET_COLLECTOR_MMC
 libwhippet_la_SOURCES += %D%/src/mmc.c
-WHIPPET_TO_EMBEDDER_CPPFLAGS += -include $(srcdir)/%D%/api/mmc-attrs.h
+WHIPPET_CPPFLAGS      += -DWHIPPET_ATTRS=\"$(srcdir)/%D%/api/mmc-attrs.h\"
 endif
 
 # add to cflags: -flto -fvisibility=hidden -fno-strict-aliasing
 
 libwhippet_common_la_CPPFLAGS = $(WHIPPET_CPPFLAGS)
 libwhippet_common_la_CFLAGS = -Wall -Wno-unused $(CFLAGS)
-libwhippet_common_la_CFLAGS += $(WHIPPET_CFLAGS)
 libwhippet_common_la_LDFLAGS = -lpthread $(LDFLAGS)
 libwhippet_common_la_LIBADD = $(LIBS)
 
@@ -171,7 +168,8 @@ if !WHIPPET_ENABLE_DEBUG
 libwhippet_common_la_CFLAGS += -DNDEBUG
 endif
 
-libwhippet_la_CPPFLAGS = $(libwhippet_common_la_CPPFLAGS) 
$(WHIPPET_EMBEDDER_CPPFLAGS)
+libwhippet_la_CPPFLAGS = $(libwhippet_common_la_CPPFLAGS)
+libwhippet_la_CPPFLAGS += -DGC_EMBEDDER=\"$(WHIPPET_EMBEDDER_H)\"
 libwhippet_la_CFLAGS = $(libwhippet_common_la_CFLAGS)
 libwhippet_la_CFLAGS += $(WHIPPET_IMPL_CFLAGS)
 libwhippet_la_LDFLAGS = $(libwhippet_common_la_LDFLAGS) $(WHIPPET_LIBS)
diff --git a/embed.mk b/embed.mk
index 0d2de0df5..1fdef7d8b 100644
--- a/embed.mk
+++ b/embed.mk
@@ -1,11 +1,19 @@
-GC_COLLECTOR ?= semi
+GC_COLLECTOR ?= pcc
+GC_EMBEDDER_H ?= whippet-embedder.h
+GC_EMBEDDER_CPPFLAGS ?=
+GC_EMBEDDER_CFLAGS ?=
 
 DEFAULT_BUILD := opt
 
-BUILD_CFLAGS_opt      = -O2 -g -DNDEBUG
-BUILD_CFLAGS_optdebug = -O2 -g -DGC_DEBUG=1
-BUILD_CFLAGS_debug    = -O0 -g -DGC_DEBUG=1
+BUILD_CPPFLAGS_opt      = -DNDEBUG
+BUILD_CPPFLAGS_optdebug = -DGC_DEBUG=1
+BUILD_CPPFLAGS_debug    = -DGC_DEBUG=1
 
+BUILD_CFLAGS_opt       = -O2 -g
+BUILD_CFLAGS_optdebug  = -O2 -g
+BUILD_CFLAGS_debug     = -O0 -g
+
+GC_BUILD_CPPFLAGS = $(BUILD_CPPFLAGS_$(or $(GC_BUILD),$(DEFAULT_BUILD)))
 GC_BUILD_CFLAGS = $(BUILD_CFLAGS_$(or $(GC_BUILD),$(DEFAULT_BUILD)))
 
 V ?= 1
@@ -23,39 +31,40 @@ GC_TRACEPOINT_LIBS = $(GC_LTTNG_LIBS)
 GC_V        = $(v_$(V))
 GC_CC       = gcc
 GC_CFLAGS   = -Wall -flto -fno-strict-aliasing -fvisibility=hidden -Wno-unused 
$(GC_BUILD_CFLAGS)
-GC_CPPFLAGS = -I$(WHIPPET)api $(GC_TRACEPOINT_CPPFLAGS)
+GC_CPPFLAGS = -I$(GC_BASE)api $(GC_TRACEPOINT_CPPFLAGS) $(GC_BUILD_CPPFLAGS)
 GC_LDFLAGS  = -lpthread -flto=auto $(GC_TRACEPOINT_LIBS)
 GC_DEPFLAGS = 
 GC_COMPILE  = $(GC_V)$(GC_CC) $(GC_CFLAGS) $(GC_CPPFLAGS) $(GC_DEPFLAGS) -o $@
 GC_LINK     = $(GC_V)$(GC_CC) $(GC_LDFLAGS) -o $@
 GC_PLATFORM = gnu-linux
 GC_OBJDIR   =
+GC_EMBEDDER_CPPFLAGS += -DGC_EMBEDDER=\"$(GC_EMBEDDER_H)\"
 
-$(GC_OBJDIR)gc-platform.o: $(WHIPPET)src/gc-platform-$(GC_PLATFORM).c
+$(GC_OBJDIR)gc-platform.o: $(GC_BASE)src/gc-platform-$(GC_PLATFORM).c
        $(GC_COMPILE) -c $<
-$(GC_OBJDIR)gc-stack.o: $(WHIPPET)src/gc-stack.c
+$(GC_OBJDIR)gc-stack.o: $(GC_BASE)src/gc-stack.c
        $(GC_COMPILE) -c $<
-$(GC_OBJDIR)gc-options.o: $(WHIPPET)src/gc-options.c
+$(GC_OBJDIR)gc-options.o: $(GC_BASE)src/gc-options.c
        $(GC_COMPILE) -c $<
-$(GC_OBJDIR)gc-tracepoint.o: $(WHIPPET)src/gc-tracepoint.c
+$(GC_OBJDIR)gc-tracepoint.o: $(GC_BASE)src/gc-tracepoint.c
        $(GC_COMPILE) -c $<
-$(GC_OBJDIR)gc-ephemeron.o: $(WHIPPET)src/gc-ephemeron.c
-       $(GC_COMPILE) $(EMBEDDER_TO_GC_CFLAGS) -c $<
-$(GC_OBJDIR)gc-finalizer.o: $(WHIPPET)src/gc-finalizer.c
-       $(GC_COMPILE) $(EMBEDDER_TO_GC_CFLAGS) -c $<
+$(GC_OBJDIR)gc-ephemeron.o: $(GC_BASE)src/gc-ephemeron.c
+       $(GC_COMPILE) $(GC_EMBEDDER_CFLAGS) -c $<
+$(GC_OBJDIR)gc-finalizer.o: $(GC_BASE)src/gc-finalizer.c
+       $(GC_COMPILE) $(GC_EMBEDDER_CFLAGS) -c $<
 
 GC_STEM_bdw       = bdw
-GC_CFLAGS_bdw     = -DGC_CONSERVATIVE_ROOTS=1 -DGC_CONSERVATIVE_TRACE=1
+GC_CPPFLAGS_bdw    = -DGC_CONSERVATIVE_ROOTS=1 -DGC_CONSERVATIVE_TRACE=1
 GC_IMPL_CFLAGS_bdw = `pkg-config --cflags bdw-gc`
 GC_LIBS_bdw        = `pkg-config --libs bdw-gc`
 
 GC_STEM_semi       = semi
-GC_CFLAGS_semi     = -DGC_PRECISE_ROOTS=1
+GC_CPPFLAGS_semi   = -DGC_PRECISE_ROOTS=1
 GC_LIBS_semi       = -lm
 
 GC_STEM_pcc        = pcc
-GC_CFLAGS_pcc      = -DGC_PRECISE_ROOTS=1 -DGC_PARALLEL=1
-GC_LIBS_pcc       = -lm
+GC_CPPFLAGS_pcc    = -DGC_PRECISE_ROOTS=1 -DGC_PARALLEL=1
+GC_LIBS_pcc        = -lm
 
 GC_STEM_generational_pcc   = $(GC_STEM_pcc)
 GC_CFLAGS_generational_pcc = $(GC_CFLAGS_pcc) -DGC_GENERATIONAL=1
@@ -63,7 +72,7 @@ GC_LIBS_generational_pcc   = $(GC_LIBS_pcc)
 
 define mmc_variant
 GC_STEM_$(1)       = mmc
-GC_CFLAGS_$(1)     = $(2)
+GC_CPPFLAGS_$(1)   = $(2)
 GC_LIBS_$(1)       = -lm
 endef
 
@@ -88,18 +97,17 @@ $(eval $(call trace_mmc_variants))
 gc_var         = $($(1)$(subst -,_,$(2)))
 gc_impl        = $(call gc_var,GC_STEM_,$(1)).c
 gc_attrs       = $(call gc_var,GC_STEM_,$(1))-attrs.h
-gc_cflags      = $(call gc_var,GC_CFLAGS_,$(1))
+gc_cppflags    = $(call gc_var,GC_CPPFLAGS_,$(1))
 gc_impl_cflags = $(call gc_var,GC_IMPL_CFLAGS_,$(1))
 gc_libs        = $(call gc_var,GC_LIBS_,$(1))
 
 GC_IMPL                    = $(call gc_impl,$(GC_COLLECTOR))
-GC_CFLAGS                 += $(call gc_cflags,$(GC_COLLECTOR))
+GC_CPPFLAGS         += $(call gc_cppflags,$(GC_COLLECTOR))
+GC_CPPFLAGS         += -DWHIPPET_ATTRS=\"$(GC_BASE)api/$(GC_IMPL)-attrs.h\"
 GC_IMPL_CFLAGS             = $(call gc_impl_cflags,$(GC_COLLECTOR))
-GC_ATTRS            = $(WHIPPET)api/$(call gc_attrs,$(GC_COLLECTOR))
-GC_TO_EMBEDDER_CFLAGS = -include $(GC_ATTRS)
 GC_LIBS             = $(call gc_libs,$(GC_COLLECTOR))
 
-$(GC_OBJDIR)gc-impl.o: $(WHIPPET)src/$(call gc_impl,$(GC_COLLECTOR))
+$(GC_OBJDIR)gc-impl.o: $(GC_BASE)src/$(call gc_impl,$(GC_COLLECTOR))
        $(GC_COMPILE) $(GC_IMPL_CFLAGS) $(EMBEDDER_TO_GC_CFLAGS) -c $<
 
 GC_OBJS=$(foreach O,gc-platform.o gc-stack.o gc-options.o gc-tracepoint.o 
gc-ephemeron.o gc-finalizer.o gc-impl.o,$(GC_OBJDIR)$(O))
diff --git a/src/gc-ephemeron.c b/src/gc-ephemeron.c
index 0f1f9720a..7ef5b53f6 100644
--- a/src/gc-ephemeron.c
+++ b/src/gc-ephemeron.c
@@ -6,7 +6,7 @@
 
 #include "address-hash.h"
 #include "debug.h"
-#include "gc-embedder-api.h"
+#include "embedder-api-impl.h"
 #include "gc-ephemeron-internal.h"
 
 // # Overview
diff --git a/src/gc-finalizer.c b/src/gc-finalizer.c
index ae795cccf..d3a4fa91e 100644
--- a/src/gc-finalizer.c
+++ b/src/gc-finalizer.c
@@ -6,7 +6,7 @@
 #define GC_IMPL 1
 
 #include "debug.h"
-#include "gc-embedder-api.h"
+#include "embedder-api-impl.h"
 #include "gc-ephemeron-internal.h" // for gc_visit_ephemeron_key
 #include "gc-finalizer-internal.h"
 
diff --git a/src/gc-internal.h b/src/gc-internal.h
index 715b72a99..fe1cdf66c 100644
--- a/src/gc-internal.h
+++ b/src/gc-internal.h
@@ -5,6 +5,7 @@
 #error internal header file, not part of API
 #endif
 
+#include "embedder-api-impl.h"
 #include "gc-ephemeron-internal.h"
 #include "gc-finalizer-internal.h"
 #include "gc-options-internal.h"

Reply via email to