diff options
author | Kaleb S. KEITHLEY <kkeithle@redhat.com> | 2014-11-18 14:44:59 -0500 |
---|---|---|
committer | Raghavendra Bhat <raghavendra@redhat.com> | 2015-03-03 23:32:16 -0800 |
commit | b887c4ee9338215ce11aa350c97fcc6f133fcce7 (patch) | |
tree | fd52c7395762ac83e551b7015a61cf9d99325554 /api/src/glfs-internal.h | |
parent | b646678334f4fab78883ecc1b993ec0cb1b49aba (diff) |
api: versioned symbols in libgfapi.so for compatibility
Use versioned symbols to keep libgfapi at libgfapi.so.0.0.0
Revisited to address broken build on Mac OS X
See http://review.gluster.org/9055
Change-Id: I0f26668898749f57b61490b18f1f04c42996225d
BUG: 1165129
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
Reviewed-on: http://review.gluster.org/9145
Reviewed-by: Shyamsundar Ranganathan <srangana@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Ravishankar N <ravishankar@redhat.com>
Reviewed-by: Raghavendra Bhat <raghavendra@redhat.com>
Diffstat (limited to 'api/src/glfs-internal.h')
-rw-r--r-- | api/src/glfs-internal.h | 60 |
1 files changed, 45 insertions, 15 deletions
diff --git a/api/src/glfs-internal.h b/api/src/glfs-internal.h index bbfd3425f25..a6ef2f5353c 100644 --- a/api/src/glfs-internal.h +++ b/api/src/glfs-internal.h @@ -18,6 +18,38 @@ #define DEFAULT_REVAL_COUNT 1 +#ifndef GF_DARWIN_HOST_OS +#ifndef GFAPI_PUBLIC +#define GFAPI_PUBLIC(sym, ver) /**/ +#endif +#ifndef GFAPI_PRIVATE +#define GFAPI_PRIVATE(sym, ver) /**/ +#endif +#define GFAPI_SYMVER_PUBLIC_DEFAULT(fn, ver) \ + asm(".symver pub_"STR(fn)", "STR(fn)"@@GFAPI_"STR(ver)) + +#define GFAPI_SYMVER_PRIVATE_DEFAULT(fn, ver) \ + asm(".symver priv_"STR(fn)", "STR(fn)"@@GFAPI_PRIVATE_"STR(ver)) + +#define GFAPI_SYMVER_PUBLIC(fn1, fn2, ver) \ + asm(".symver pub_"STR(fn1)", "STR(fn2)"@@GFAPI_"STR(ver)) + +#define GFAPI_SYMVER_PRIVATE(fn1, fn2, ver) \ + asm(".symver priv_"STR(fn1)", "STR(fn2)"@@GFAPI_PRIVATE_"STR(ver)) +#define STR(str) #str +#else +#ifndef GFAPI_PUBLIC +#define GFAPI_PUBLIC(sym, ver) __asm("_" __STRING(sym) "$GFAPI_" __STRING(ver)) +#endif +#ifndef GFAPI_PRIVATE +#define GFAPI_PRIVATE(sym, ver) __asm("_" __STRING(sym) "$GFAPI_PRIVATE_" __STRING(ver)) +#endif +#define GFAPI_SYMVER_PUBLIC_DEFAULT(fn, dotver) /**/ +#define GFAPI_SYMVER_PRIVATE_DEFAULT(fn, dotver) /**/ +#define GFAPI_SYMVER_PUBLIC(fn1, fn2, dotver) /**/ +#define GFAPI_SYMVER_PRIVATE(fn1, fn2, dotver) /**/ +#endif + /* * syncop_xxx() calls are executed in two ways, one is inside a synctask where * the executing function will do 'swapcontext' and the other is without @@ -51,7 +83,7 @@ #define GLFS_LOC_FILL_INODE(oinode, loc, label) do { \ loc.inode = inode_ref (oinode); \ uuid_copy (loc.gfid, oinode->gfid); \ - ret = priv_glfs_loc_touchup (&loc); \ + ret = glfs_loc_touchup (&loc); \ if (ret != 0) { \ errno = EINVAL; \ goto label; \ @@ -67,7 +99,7 @@ } \ loc.parent = inode_ref (pinode); \ loc.name = path; \ - ret = priv_glfs_loc_touchup (&loc); \ + ret = glfs_loc_touchup (&loc); \ if (ret != 0) { \ errno = EINVAL; \ goto label; \ @@ -135,7 +167,8 @@ struct glfs_object { #define GF_MEMPOOL_COUNT_OF_LRU_BUF_T 256 int glfs_mgmt_init (struct glfs *fs); -void priv_glfs_init_done (struct glfs *fs, int ret); +void glfs_init_done (struct glfs *fs, int ret) + GFAPI_PRIVATE(glfs_init_done, 3.4.0); int glfs_process_volfp (struct glfs *fs, FILE *fp); int glfs_resolve (struct glfs *fs, xlator_t *subvol, const char *path, loc_t *loc, struct iatt *iatt, int reval); @@ -197,9 +230,11 @@ void glfs_fd_destroy (struct glfs_fd *glfd); struct glfs_fd *glfs_fd_new (struct glfs *fs); void glfs_fd_bind (struct glfs_fd *glfd); -xlator_t *priv_glfs_active_subvol (struct glfs *fs); +xlator_t *glfs_active_subvol (struct glfs *fs) + GFAPI_PRIVATE(glfs_active_subvol, 3.4.0); xlator_t *__glfs_active_subvol (struct glfs *fs); -void priv_glfs_subvol_done (struct glfs *fs, xlator_t *subvol); +void glfs_subvol_done (struct glfs *fs, xlator_t *subvol) + GFAPI_PRIVATE(glfs_subvol_done, 3.4.0); inode_t *glfs_refresh_inode (xlator_t *subvol, inode_t *inode); @@ -212,10 +247,12 @@ int __glfs_cwd_set (struct glfs *fs, inode_t *inode); int glfs_resolve_base (struct glfs *fs, xlator_t *subvol, inode_t *inode, struct iatt *iatt); -int priv_glfs_resolve_at (struct glfs *fs, xlator_t *subvol, inode_t *at, +int glfs_resolve_at (struct glfs *fs, xlator_t *subvol, inode_t *at, const char *origpath, loc_t *loc, struct iatt *iatt, - int follow, int reval); -int priv_glfs_loc_touchup (loc_t *loc); + int follow, int reval) + GFAPI_PRIVATE(glfs_resolve_at, 3.4.0); +int glfs_loc_touchup (loc_t *loc) + GFAPI_PRIVATE(glfs_loc_touchup, 3.4.0); void glfs_iatt_to_stat (struct glfs *fs, struct iatt *iatt, struct stat *stat); int glfs_loc_link (loc_t *loc, struct iatt *iatt); int glfs_loc_unlink (loc_t *loc); @@ -226,11 +263,4 @@ int glfs_getxattr_process (void *value, size_t size, dict_t *xattr, /* Sends RPC call to glusterd to fetch required volume info */ int glfs_get_volume_info (struct glfs *fs); -#define GFAPI_SYMVER_PUBLIC_DEFAULT(fn, dotver) \ - asm(".symver pub_"STR(fn)", "STR(fn)"@@GFAPI_"STR(dotver)) - -#define GFAPI_SYMVER_PRIVATE_DEFAULT(fn, dotver) \ - asm(".symver priv_"STR(fn)", "STR(fn)"@@GFAPI_PRIVATE_"STR(dotver)) -#define STR(str) #str - #endif /* !_GLFS_INTERNAL_H */ |