From af09c050e95bebbaeca52156218f3f91e8c9951a Mon Sep 17 00:00:00 2001 From: Romain Dolbeau Date: Thu, 6 Feb 2020 18:25:29 +0100 Subject: [PATCH] Fix static data to link with -fno-common -fno-common is the new default in GCC 10, replacing -fcommon in GCC <= 9, so static data must only be allocated once. Reviewed-by: Brian Behlendorf Signed-off-by: Romain Dolbeau Closes #9943 --- cmd/zfs/zfs_util.h | 2 +- cmd/zpool/zpool_main.c | 2 ++ cmd/zpool/zpool_util.h | 2 +- lib/libshare/smb.c | 2 ++ lib/libshare/smb.h | 2 +- 5 files changed, 7 insertions(+), 3 deletions(-) diff --git a/cmd/zfs/zfs_util.h b/cmd/zfs/zfs_util.h index 3ddff9e22d7..a56af59adb1 100644 --- a/cmd/zfs/zfs_util.h +++ b/cmd/zfs/zfs_util.h @@ -33,7 +33,7 @@ extern "C" { void * safe_malloc(size_t size); void nomem(void); -libzfs_handle_t *g_zfs; +extern libzfs_handle_t *g_zfs; #ifdef __cplusplus } diff --git a/cmd/zpool/zpool_main.c b/cmd/zpool/zpool_main.c index ae5e8a370fc..ff4f44d4652 100644 --- a/cmd/zpool/zpool_main.c +++ b/cmd/zpool/zpool_main.c @@ -76,6 +76,8 @@ #include "statcommon.h" +libzfs_handle_t *g_zfs; + static int zpool_do_create(int, char **); static int zpool_do_destroy(int, char **); diff --git a/cmd/zpool/zpool_util.h b/cmd/zpool/zpool_util.h index ce760df723c..1f23f61aaa4 100644 --- a/cmd/zpool/zpool_util.h +++ b/cmd/zpool/zpool_util.h @@ -79,7 +79,7 @@ void pool_list_free(zpool_list_t *); int pool_list_count(zpool_list_t *); void pool_list_remove(zpool_list_t *, zpool_handle_t *); -libzfs_handle_t *g_zfs; +extern libzfs_handle_t *g_zfs; typedef struct vdev_cmd_data diff --git a/lib/libshare/smb.c b/lib/libshare/smb.c index a95607ee032..f567f7c49d7 100644 --- a/lib/libshare/smb.c +++ b/lib/libshare/smb.c @@ -65,6 +65,8 @@ static boolean_t smb_available(void); static sa_fstype_t *smb_fstype; +smb_share_t *smb_shares; + /* * Retrieve the list of SMB shares. */ diff --git a/lib/libshare/smb.h b/lib/libshare/smb.h index 7a0c0fd162d..8ea44677f9a 100644 --- a/lib/libshare/smb.h +++ b/lib/libshare/smb.h @@ -44,6 +44,6 @@ typedef struct smb_share_s { struct smb_share_s *next; } smb_share_t; -smb_share_t *smb_shares; +extern smb_share_t *smb_shares; void libshare_smb_init(void);