[lxc-devel] [lxcfs/master] tree-wide: switch default visibility to hidden

brauner on Github lxc-bot at linuxcontainers.org
Wed Mar 4 10:43:25 UTC 2020


A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 462 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20200304/7fbd8bad/attachment.bin>
-------------- next part --------------
From b0a2dc082263a88247c0b06c67368dcb52e1c842 Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Wed, 4 Mar 2020 11:42:07 +0100
Subject: [PATCH] tree-wide: switch default visibility to hidden

There's no need for anyone to call dlsym() on anything else than what we
explicitly support.

Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
 cgroup_fuse.h | 29 +++++++++++++----------------
 configure.ac  |  1 +
 macro.h       |  2 ++
 proc_fuse.h   | 14 ++++++--------
 sysfs_fuse.h  | 16 +++++++---------
 5 files changed, 29 insertions(+), 33 deletions(-)

diff --git a/cgroup_fuse.h b/cgroup_fuse.h
index e93d774..900d2c9 100644
--- a/cgroup_fuse.h
+++ b/cgroup_fuse.h
@@ -23,21 +23,18 @@
 #include "config.h"
 #include "macro.h"
 
-extern int cg_getattr(const char *path, struct stat *sb);
-extern int cg_mkdir(const char *path, mode_t mode);
-extern int cg_rmdir(const char *path);
-extern int cg_chmod(const char *path, mode_t mode);
-extern int cg_chown(const char *path, uid_t uid, gid_t gid);
-extern int cg_open(const char *path, struct fuse_file_info *fi);
-extern int cg_read(const char *path, char *buf, size_t size, off_t offset,
-		   struct fuse_file_info *fi);
-extern int cg_opendir(const char *path, struct fuse_file_info *fi);
-extern int cg_release(const char *path, struct fuse_file_info *fi);
-extern int cg_releasedir(const char *path, struct fuse_file_info *fi);
-extern int cg_write(const char *path, const char *buf, size_t size,
-		    off_t offset, struct fuse_file_info *fi);
-extern int cg_readdir(const char *path, void *buf, fuse_fill_dir_t filler,
-		      off_t offset, struct fuse_file_info *fi);
-extern int cg_access(const char *path, int mode);
+__visible extern int cg_getattr(const char *path, struct stat *sb);
+__visible extern int cg_mkdir(const char *path, mode_t mode);
+__visible extern int cg_rmdir(const char *path);
+__visible extern int cg_chmod(const char *path, mode_t mode);
+__visible extern int cg_chown(const char *path, uid_t uid, gid_t gid);
+__visible extern int cg_open(const char *path, struct fuse_file_info *fi);
+__visible extern int cg_read(const char *path, char *buf, size_t size, off_t offset, struct fuse_file_info *fi);
+__visible extern int cg_opendir(const char *path, struct fuse_file_info *fi);
+__visible extern int cg_release(const char *path, struct fuse_file_info *fi);
+__visible extern int cg_releasedir(const char *path, struct fuse_file_info *fi);
+__visible extern int cg_write(const char *path, const char *buf, size_t size, off_t offset, struct fuse_file_info *fi);
+__visible extern int cg_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi);
+__visible extern int cg_access(const char *path, int mode);
 
 #endif /* __LXCFS_CGROUP_FUSE_H */
diff --git a/configure.ac b/configure.ac
index fe799e4..b4b87df 100644
--- a/configure.ac
+++ b/configure.ac
@@ -227,6 +227,7 @@ AX_CHECK_COMPILE_FLAG([-Wnested-externs], [CFLAGS="$CFLAGS -Wnested-externs"],,[
 AX_CHECK_COMPILE_FLAG([-fasynchronous-unwind-tables], [CFLAGS="$CFLAGS -fasynchronous-unwind-tables"],,[-Werror])
 AX_CHECK_COMPILE_FLAG([-pipe], [CFLAGS="$CFLAGS -pipe"],,[-Werror])
 AX_CHECK_COMPILE_FLAG([-fexceptions], [CFLAGS="$CFLAGS -fexceptions"],,[-Werror])
+CFLAGS="$CFLAGS -fvisibility=hidden"
 
 AX_CHECK_LINK_FLAG([-z relro], [LDFLAGS="$LDFLAGS -z relro"],,[])
 AX_CHECK_LINK_FLAG([-z now], [LDFLAGS="$LDFLAGS -z now"],,[])
diff --git a/macro.h b/macro.h
index 34b52bd..6b1c996 100644
--- a/macro.h
+++ b/macro.h
@@ -106,4 +106,6 @@
 #define PTR_TO_UINT64(p) ((uint64_t)((intptr_t)(p)))
 #define INTTYPE_TO_PTR(u) ((void *)((intptr_t)(u)))
 
+#define __visible __attribute__((visibility("default")))
+
 #endif /* __LXCFS_MACRO_H */
diff --git a/proc_fuse.h b/proc_fuse.h
index 7b099d9..dbb1ad9 100644
--- a/proc_fuse.h
+++ b/proc_fuse.h
@@ -23,13 +23,11 @@
 #include "config.h"
 #include "macro.h"
 
-extern int proc_getattr(const char *path, struct stat *sb);
-extern int proc_readdir(const char *path, void *buf, fuse_fill_dir_t filler,
-			off_t offset, struct fuse_file_info *fi);
-extern int proc_open(const char *path, struct fuse_file_info *fi);
-extern int proc_access(const char *path, int mask);
-extern int proc_read(const char *path, char *buf, size_t size, off_t offset,
-		     struct fuse_file_info *fi);
-extern int proc_release(const char *path, struct fuse_file_info *fi);
+__visible extern int proc_getattr(const char *path, struct stat *sb);
+__visible extern int proc_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi);
+__visible extern int proc_open(const char *path, struct fuse_file_info *fi);
+__visible extern int proc_access(const char *path, int mask);
+__visible extern int proc_read(const char *path, char *buf, size_t size, off_t offset, struct fuse_file_info *fi);
+__visible extern int proc_release(const char *path, struct fuse_file_info *fi);
 
 #endif /* __LXCFS_PROC_FUSE_H */
diff --git a/sysfs_fuse.h b/sysfs_fuse.h
index 6a82a48..c11d91a 100644
--- a/sysfs_fuse.h
+++ b/sysfs_fuse.h
@@ -23,14 +23,12 @@
 #include "config.h"
 #include "macro.h"
 
-extern int sys_getattr(const char *path, struct stat *sb);
-extern int sys_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset,
-		struct fuse_file_info *fi);
-extern int sys_release(const char *path, struct fuse_file_info *fi);
-extern int sys_releasedir(const char *path, struct fuse_file_info *fi);
-extern int sys_open(const char *path, struct fuse_file_info *fi);
-extern int sys_read(const char *path, char *buf, size_t size, off_t offset,
-		struct fuse_file_info *fi);
-extern int sys_access(const char *path, int mask);
+__visible extern int sys_getattr(const char *path, struct stat *sb);
+__visible extern int sys_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi);
+__visible extern int sys_release(const char *path, struct fuse_file_info *fi);
+__visible extern int sys_releasedir(const char *path, struct fuse_file_info *fi);
+__visible extern int sys_open(const char *path, struct fuse_file_info *fi);
+__visible extern int sys_read(const char *path, char *buf, size_t size, off_t offset, struct fuse_file_info *fi);
+__visible extern int sys_access(const char *path, int mask);
 
 #endif /* __LXCFS_SYSFS_FUSE_H */


More information about the lxc-devel mailing list