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