0001-Support-gcc10-compilation.patch 3.7 KB

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