Issue #206 (bdwgc).
Specifically: int i; int i = 0; is not valid, but:
extern int i; int i = 0; is valid. Adding static would also be
desirable here but requires a larger change.
* extra/gc.c (GC_INNER, GC_EXTERN): Do not define if __cplusplus; add
comment and TODO item.
/* for GC and the client otherwise GC_thread_exit_proc() is not */
/* guaranteed to be invoked (see the comments in pthread_start.c). */
-
-#define GC_INNER STATIC
-#define GC_EXTERN GC_INNER
+#ifndef __cplusplus
+ /* static is desirable here for more efficient linkage. */
+ /* TODO: Enable this in case of the compilation as C++ code. */
+# define GC_INNER STATIC
+# define GC_EXTERN GC_INNER
/* STATIC is defined in gcconfig.h. */
+#endif
/* Small files go first... */
#include "../backgraph.c"