From: Jay Krell Date: Sun, 18 Feb 2018 05:23:34 +0000 (-0800) Subject: Fiddle with linkage to make extra/gc.c valid C++ code X-Git-Tag: v8.0.0~329 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=514eb96b306964a09b334466c64855b4b5ed618c;p=platform%2Fupstream%2Flibgc.git Fiddle with linkage to make extra/gc.c valid C++ code 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. --- diff --git a/extra/gc.c b/extra/gc.c index ea3648e..6cfc7d4 100644 --- a/extra/gc.c +++ b/extra/gc.c @@ -27,10 +27,13 @@ /* 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"