Index: ./sys/rump/include/rump/rump.h =================================================================== RCS file: /cvsroot/src/sys/rump/include/rump/rump.h,v retrieving revision 1.70 diff -u -r1.70 rump.h --- ./sys/rump/include/rump/rump.h 11 May 2017 18:16:00 -0000 1.70 +++ ./sys/rump/include/rump/rump.h 14 Jun 2020 20:08:32 -0000 @@ -33,6 +33,27 @@ * has no chance of working on non-NetBSD platforms. */ +#if defined(__cplusplus) +#define __BEGIN_EXTERN_C extern "C" { +#define __END_EXTERN_C } +#else +#define __BEGIN_EXTERN_C +#define __END_EXTERN_C +#endif + +#if __GNUC_PREREQ__(4, 0) || defined(__lint__) +# define __RUMP_BEGIN_PUBLIC_DECLS \ + _Pragma("GCC visibility push(default)") __RUMP_BEGIN_EXTERN_C +# define __RUMP_END_PUBLIC_DECLS \ + __RUMP_END_EXTERN_C _Pragma("GCC visibility pop") +#else +# define __RUMP_BEGIN_PUBLIC_DECLS __RUMP_BEGIN_EXTERN_C +# define __RUMP_END_PUBLIC_DECLS __RUMP_END_EXTERN_C +#endif + +#define __RUMP_BEGIN_DECLS __RUMP_BEGIN_PUBLIC_DECLS +#define __RUMP_END_DECLS __RUMP_END_PUBLIC_DECLS + struct mount; struct vnode; struct vattr; @@ -86,10 +107,7 @@ RUMP_ETFS_DIR_SUBDIRS /* dir + subdirectories (recursive) */ }; -/* um, what's the point ?-) */ -#ifdef _BEGIN_DECLS -_BEGIN_DECLS -#endif +__RUMP_BEGIN_DECLS int rump_getversion(void); int rump_pub_getversion(void); /* compat */ @@ -130,9 +148,7 @@ #include #endif -#ifdef _END_DECLS -_END_DECLS -#endif +__RUMP_END_DECLS /* * Include macros prehistorically provided by this header.