mark public interfaces using `[[gnu::visibility("default")]]`, so
we can expose them when the default visibility is "hidden".
Signed-off-by: Kefu Chai <kchai@redhat.com>
#include "common/ceph_time.h"
#include "common/perf_counters.h"
-class SimpleRADOSStriper
+class [[gnu::visibility("default")]] SimpleRADOSStriper
{
public:
using aiocompletionptr = std::unique_ptr<librados::AioCompletion>;
#ifdef _WIN32
# define LIBCEPHSQLITE_API __declspec(dllexport)
#else
-# define LIBCEPHSQLITE_API extern "C"
+# define LIBCEPHSQLITE_API [[gnu::visibility("default")]]
#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
/* This is the SQLite entry point when loaded as a dynamic library. You also
* need to ensure SQLite calls this method when using libcephsqlite as a static
* library or a dynamic library linked at compile time. For the latter case,
*/
LIBCEPHSQLITE_API int cephsqlite_setcct(class CephContext* cct, char** ident);
+#ifdef __cplusplus
+}
+#endif
#endif