From: Kefu Chai Date: Sat, 21 Apr 2018 08:41:55 +0000 (+0800) Subject: objclass-sdk: expose __cls_init() to the world X-Git-Tag: v13.1.0~150^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=096668ec5df93725a0726b53bbd30b4d4ab50f49;p=ceph.git objclass-sdk: expose __cls_init() to the world the __cls_init() function should be visible. otherwise we cannot call it to register the cls methods Signed-off-by: Kefu Chai --- diff --git a/src/cls/sdk/cls_sdk.cc b/src/cls/sdk/cls_sdk.cc index 1f907b498029..95b5096a7d1d 100644 --- a/src/cls/sdk/cls_sdk.cc +++ b/src/cls/sdk/cls_sdk.cc @@ -115,7 +115,7 @@ static int test_coverage_replay(cls_method_context_t hctx, bufferlist *in, buffe return 0; } -void __cls_init() +CLS_INIT(sdk) { CLS_LOG(0, "loading cls_sdk"); diff --git a/src/include/rados/objclass.h b/src/include/rados/objclass.h index ea07dfc790ae..cd1432fcf52f 100644 --- a/src/include/rados/objclass.h +++ b/src/include/rados/objclass.h @@ -20,13 +20,15 @@ int __cls_ver_min = min; #define CLS_NAME(name) \ int __cls_name__## name = 0; \ const char *__cls_name = #name; + +#define CEPH_CLS_API [[gnu::visibility("default")]] #define CLS_INIT(name) \ -void CEPH_CLS_API __cls_init() +CEPH_CLS_API void __cls_init() #else #define CLS_VER(maj,min) #define CLS_NAME(name) #define CLS_INIT(name) \ -void CEPH_CLS_API name##_cls_init() +CEPH_CLS_API void name##_cls_init() #endif #define CLS_METHOD_RD 0x1 /// method executes read operations diff --git a/src/objclass/objclass.h b/src/objclass/objclass.h index cd41153dafcf..f20bf49ae0e5 100644 --- a/src/objclass/objclass.h +++ b/src/objclass/objclass.h @@ -14,12 +14,6 @@ struct obj_list_watch_response_t; -#if __GNUC__ >= 4 - #define CEPH_CLS_API __attribute__ ((visibility ("default"))) -#else - #define CEPH_CLS_API -#endif - extern "C" { #endif