diff --git a/src/gc.c b/src/gc.c
index 01d6aeaa05f2ad7adffb4b23b6abe3d3d423f646..827a1563bf9eb72d096ac13f92edfe5661b3080b 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -546,9 +546,9 @@ PMOD_EXPORT struct marker *pmod_find_marker (void *p)
 }
 
 #if defined (PIKE_DEBUG) || defined (GC_MARK_DEBUG)
-void *gc_found_in = NULL;
-int gc_found_in_type = PIKE_T_UNKNOWN;
-const char *gc_found_place = NULL;
+PMOD_EXPORT void *gc_found_in = NULL;
+PMOD_EXPORT int gc_found_in_type = PIKE_T_UNKNOWN;
+PMOD_EXPORT const char *gc_found_place = NULL;
 #endif
 
 #ifdef DO_PIKE_CLEANUP
diff --git a/src/gc.h b/src/gc.h
index 823c0b768b4f9b8cc59bc54bbd99d51c171b934f..1d334b1b2b028f740f25187fbf89f86f966daf45 100644
--- a/src/gc.h
+++ b/src/gc.h
@@ -394,9 +394,9 @@ extern struct pike_queue gc_mark_queue;
 
 #if defined (PIKE_DEBUG) || defined (GC_MARK_DEBUG)
 
-extern void *gc_found_in;
-extern int gc_found_in_type;
-extern const char *gc_found_place;
+PMOD_EXPORT extern void *gc_found_in;
+PMOD_EXPORT extern int gc_found_in_type;
+PMOD_EXPORT extern const char *gc_found_place;
 
 #define GC_ENTER(THING, TYPE)						\
   do {									\
diff --git a/src/program.c b/src/program.c
index e6fff87571e8f0fc6bc886c3378e1162a841fae5..18ba4e31f2ba5bff3c6c223df25b989efd803285 100644
--- a/src/program.c
+++ b/src/program.c
@@ -3246,7 +3246,7 @@ static ptrdiff_t alignof_variable(int run_time_type)
 
 #ifdef PIKE_DEBUG
 
-void dump_program_tables (const struct program *p, int indent)
+PMOD_EXPORT void dump_program_tables (const struct program *p, int indent)
 {
   int d;
 
diff --git a/src/program.h b/src/program.h
index 488337ebfc7e01e8ea4d5a44322437fa92096a0e..1d856c7c9591b28e4c1cbd10f8e60485f34e85a7 100644
--- a/src/program.h
+++ b/src/program.h
@@ -651,7 +651,7 @@ struct program
 #endif
 };
 
-void dump_program_tables (const struct program *p, int indent);
+PMOD_EXPORT void dump_program_tables (const struct program *p, int indent);
 #ifdef PIKE_DEBUG
 static INLINE int CHECK_IDREF_RANGE (int x, const struct program *p)
 {