summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2020-03-29 11:35:04 +0200
committerMarius Bakke <mbakke@fastmail.com>2020-03-29 11:35:04 +0200
commit26e92a3025513ec8e2b243cf819a7526a5d8d7c3 (patch)
tree8d959ac00ca31a6960e90cdc6c33a1e08889e3fc /gnu
parent58f705c18ebfafc4e291ba3be2ceeeead9e2a289 (diff)
downloadguix-26e92a3025513ec8e2b243cf819a7526a5d8d7c3.tar.gz
gnu: qtbase: Patch the 'moc' executable to cope with GCCs C++ headers.
* gnu/packages/patches/qtbase-moc-ignore-gcc-macro.patch: New file.
* gnu/local.mk (dist_patch_DATA): Adjust accordingly.
* gnu/packages/qt.scm (qtbase)[source](patches): Add it.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/qtbase-moc-ignore-gcc-macro.patch17
-rw-r--r--gnu/packages/qt.scm1
3 files changed, 19 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index b0b72e6349..46e2936567 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1385,6 +1385,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/qemu-fix-documentation-build-failure.patch	\
   %D%/packages/patches/qrcodegen-cpp-make-install.patch		\
   %D%/packages/patches/qt4-ldflags.patch			\
+  %D%/packages/patches/qtbase-moc-ignore-gcc-macro.patch	\
   %D%/packages/patches/qtbase-use-TZDIR.patch			\
   %D%/packages/patches/qtbase-QTBUG-81715.patch			\
   %D%/packages/patches/qtscript-disable-tests.patch		\
diff --git a/gnu/packages/patches/qtbase-moc-ignore-gcc-macro.patch b/gnu/packages/patches/qtbase-moc-ignore-gcc-macro.patch
new file mode 100644
index 0000000000..b296cf0b72
--- /dev/null
+++ b/gnu/packages/patches/qtbase-moc-ignore-gcc-macro.patch
@@ -0,0 +1,17 @@
+The moc executable loops through headers on CPLUS_INCLUDE_PATH and stumbles
+on the GCC internal _GLIBCXX_VISIBILITY macro.  Tell it to ignore it as it is
+not supposed to be looking there to begin with.
+
+Upstream report: https://bugreports.qt.io/browse/QTBUG-83160
+
+diff --git a/src/tools/moc/main.cpp b/src/tools/moc/main.cpp
+--- a/src/tools/moc/main.cpp
++++ b/src/tools/moc/main.cpp
+@@ -188,6 +188,7 @@ int runMoc(int argc, char **argv)
+     dummyVariadicFunctionMacro.arguments += Symbol(0, PP_IDENTIFIER, "__VA_ARGS__");
+     pp.macros["__attribute__"] = dummyVariadicFunctionMacro;
+     pp.macros["__declspec"] = dummyVariadicFunctionMacro;
++    pp.macros["_GLIBCXX_VISIBILITY"] = dummyVariadicFunctionMacro;
+ 
+     QString filename;
+     QString output;
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 81989f68c3..368cfb7e15 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -352,6 +352,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
                "0pb68d30clksdhgy8n6rrs838bb3qcsfq4pv463yy2nr4p5kk2di"))
              ;; Use TZDIR to avoid depending on package "tzdata".
              (patches (search-patches "qtbase-use-TZDIR.patch"
+                                      "qtbase-moc-ignore-gcc-macro.patch"
                                       "qtbase-QTBUG-81715.patch"))
              (modules '((guix build utils)))
              (snippet