Fix linkage of javaxfc.h symbols for the case of compilation as C++ code
authorIvan Maidanski <ivmai@mail.ru>
Thu, 1 Mar 2018 08:35:41 +0000 (11:35 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Thu, 1 Mar 2018 08:35:41 +0000 (11:35 +0300)
Issue #206 (bdwgc).

The functions should be declared (as extern "C") before the definition.

* finalize.c [!GC_NO_FINALIZATION]: Include javaxfc.h.
* pthread_stop_world.c [GC_ENABLE_SUSPEND_THREAD]: Likewise.

finalize.c
pthread_stop_world.c

index 640ee4e..6f178b9 100644 (file)
@@ -17,6 +17,7 @@
 #include "private/gc_pmark.h"
 
 #ifndef GC_NO_FINALIZATION
+# include "javaxfc.h" /* to get GC_finalize_all() as extern "C" */
 
 /* Type of mark procedure used for marking from finalizable object.     */
 /* This procedure normally does not mark the object, only its           */
index 35ca4b0..938a384 100644 (file)
@@ -430,6 +430,7 @@ STATIC void GC_restart_handler(int sig)
 
 # ifdef GC_ENABLE_SUSPEND_THREAD
 #   include <sys/time.h>
+#   include "javaxfc.h" /* to get the prototypes as extern "C" */
 
     STATIC void GC_brief_async_signal_safe_sleep(void)
     {