1From 1ce739649b4d66339a03fc0ec9ee7a2f7c141780 Mon Sep 17 00:00:00 2001 2From: Mamoru TASAKA <mtasaka@fedoraproject.org> 3Date: Fri, 24 Jan 2020 13:33:00 +0900 4Subject: [PATCH] Support gcc10 compilation 5 6gcc10 now defaults to -fno-common, and with gcc10 menu-cache compilation fails like 7 8/bin/ld: menu-merge.o:menu-cache-gen/menu-tags.h:167: multiple definition of `DirDirs'; main.o:menu-cache-gen/menu-tags.h:167: first defined here 9/bin/ld: menu-merge.o:menu-cache-gen/menu-tags.h:164: multiple definition of `AppDirs'; main.o:menu-cache-gen/menu-tags.h:164: first defined here 10/bin/ld: menu-merge.o:menu-cache-gen/menu-tags.h:52: multiple definition of `menuTag_Layout'; main.o:menu-cache-gen/menu-tags.h:52: first defined here 11.... 12 13This patch fixes compilation with gcc10: properly declaring variables in header with "extern", and also removing some unneeded variables in header files. 14 15[Retrieved from: 16https://github.com/lxde/menu-cache/pull/19/commits/1ce739649b4d66339a03fc0ec9ee7a2f7c141780] 17Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> 18--- 19 menu-cache-gen/menu-tags.h | 55 ++++++++++++-------------------------- 20 1 file changed, 17 insertions(+), 38 deletions(-) 21 22diff --git a/menu-cache-gen/menu-tags.h b/menu-cache-gen/menu-tags.h 23index f3fd7d3..f71c0bc 100644 24--- a/menu-cache-gen/menu-tags.h 25+++ b/menu-cache-gen/menu-tags.h 26@@ -22,38 +22,17 @@ 27 #include <libfm/fm-extra.h> 28 #include <menu-cache.h> 29 30-FmXmlFileTag menuTag_Menu; 31-FmXmlFileTag menuTag_AppDir; 32-FmXmlFileTag menuTag_DefaultAppDirs; 33-FmXmlFileTag menuTag_DirectoryDir; 34-FmXmlFileTag menuTag_DefaultDirectoryDirs; 35-FmXmlFileTag menuTag_Include; 36-FmXmlFileTag menuTag_Exclude; 37-FmXmlFileTag menuTag_Filename; 38-FmXmlFileTag menuTag_Or; 39-FmXmlFileTag menuTag_And; 40-FmXmlFileTag menuTag_Not; 41-FmXmlFileTag menuTag_Category; 42-FmXmlFileTag menuTag_MergeFile; 43-FmXmlFileTag menuTag_MergeDir; 44-FmXmlFileTag menuTag_DefaultMergeDirs; 45-FmXmlFileTag menuTag_Directory; 46-FmXmlFileTag menuTag_Name; 47-FmXmlFileTag menuTag_Deleted; 48-FmXmlFileTag menuTag_NotDeleted; 49-FmXmlFileTag menuTag_OnlyUnallocated; 50-FmXmlFileTag menuTag_NotOnlyUnallocated; 51-FmXmlFileTag menuTag_All; 52-FmXmlFileTag menuTag_LegacyDir; 53-FmXmlFileTag menuTag_KDELegacyDirs; 54-FmXmlFileTag menuTag_Move; 55-FmXmlFileTag menuTag_Old; 56-FmXmlFileTag menuTag_New; 57-FmXmlFileTag menuTag_Layout; 58-FmXmlFileTag menuTag_DefaultLayout; 59-FmXmlFileTag menuTag_Menuname; 60-FmXmlFileTag menuTag_Separator; 61-FmXmlFileTag menuTag_Merge; 62+extern FmXmlFileTag menuTag_AppDir; 63+extern FmXmlFileTag menuTag_DirectoryDir; 64+extern FmXmlFileTag menuTag_Include; 65+extern FmXmlFileTag menuTag_Exclude; 66+extern FmXmlFileTag menuTag_Filename; 67+extern FmXmlFileTag menuTag_Or; 68+extern FmXmlFileTag menuTag_And; 69+extern FmXmlFileTag menuTag_Not; 70+extern FmXmlFileTag menuTag_Category; 71+extern FmXmlFileTag menuTag_All; 72+extern FmXmlFileTag menuTag_LegacyDir; 73 74 typedef enum { 75 MERGE_NONE, /* starting value */ 76@@ -152,19 +131,19 @@ typedef struct { 77 } MenuRule; 78 79 /* requested language(s) */ 80-char **languages; 81+extern char **languages; 82 83 /* list of menu files to monitor */ 84-GSList *MenuFiles; 85+extern GSList *MenuFiles; 86 87 /* list of menu dirs to monitor */ 88-GSList *MenuDirs; 89+extern GSList *MenuDirs; 90 91 /* list of available app dirs */ 92-GSList *AppDirs; 93+extern GSList *AppDirs; 94 95 /* list of available dir dirs */ 96-GSList *DirDirs; 97+extern GSList *DirDirs; 98 99 /* parse and merge menu files */ 100 MenuMenu *get_merged_menu(const char *file, FmXmlFile **xmlfile, GError **error); 101@@ -177,7 +156,7 @@ gboolean save_menu_cache(MenuMenu *layout, const char *menuname, const char *fil 102 void _free_layout_items(GList *data); 103 104 /* verbosity level */ 105-gint verbose; 106+extern gint verbose; 107 108 #define DBG if (verbose) g_debug 109 #define VDBG if (verbose > 1) g_debug 110