package/qt5/qt5webengine: fix build error due to bogus use of -isystem
authorBartosz Bilas <b.bilas@grinn-global.com>
Sat, 21 Dec 2019 11:12:18 +0000 (12:12 +0100)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sat, 21 Dec 2019 21:28:41 +0000 (22:28 +0100)
This commit adds a patch from upstream chromium[1] that allows passing
-I instead of -isystem to CFLAGS.

Fixes:
  In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/g++-v6/bits/stl_algo.h:59:0,
                  from /usr/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/g++-v6/algorithm:62,
                  from /usr/include/qt5/QtCore/qglobal.h:85,
                  from /usr/include/qt5/QtCore/qalgorithms.h:37,
                  from /usr/include/qt5/QtCore/qlist.h:37,
                  from /usr/include/qt5/QtCore/qstringlist.h:34,
                  from /usr/include/qt5/QtCore/QStringList:1,
                  from base/http/requestparser.cpp:32:
/usr/lib/gcc/x86_64-pc-linux-gnu/6.1.0/include/g++-v6/cstdlib:75:25: fatal error: stdlib.h: No such file or directory
  #include_next <stdlib.h>

[1] https://chromium.googlesource.com/chromium/src/+/a8c8396fd20d98666d517c45b358c63736e345ef

Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>
[Thomas: improved commit log with comments from Giulio.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/qt5/qt5webengine/5.12.5/0001-pkg_config-Fixes-when-use_sysroot-false.patch [new file with mode: 0644]

diff --git a/package/qt5/qt5webengine/5.12.5/0001-pkg_config-Fixes-when-use_sysroot-false.patch b/package/qt5/qt5webengine/5.12.5/0001-pkg_config-Fixes-when-use_sysroot-false.patch
new file mode 100644 (file)
index 0000000..a0fdad4
--- /dev/null
@@ -0,0 +1,57 @@
+From cc35cac78c053c14da01d6b1e5b05b0615360148 Mon Sep 17 00:00:00 2001
+From: Tom Anderson <thomasanderson@chromium.org>
+Date: Thu, 2 Aug 2018 01:59:28 +0000
+Subject: [PATCH] pkg_config: Fixes when use_sysroot=false
+
+This CL introduces 2 changes to the behavior of pkg_config when
+use_sysroot=false:
+
+1. The path is not made relative to the build directory.  This fixes the case
+where your src directory may be mounted at different locations.
+
+2. -I is used instead of -isystem.  When -isystem is used, dep files do not
+reference the system header files.  This is OK when using the sysroot because
+the CR_SYSROOT_HASH macro contains the sysroot revision so any source files will
+be rebuilt when the sysroot updates.
+
+R=dpranke
+
+Change-Id: Ia3d7df51880205fee888923283b76078ccb3112f
+Reviewed-on: https://chromium-review.googlesource.com/1159689
+Reviewed-by: Dirk Pranke <dpranke@chromium.org>
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Original-Commit-Position: refs/heads/master@{#580030}
+Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
+Cr-Mirrored-Commit: a8c8396fd20d98666d517c45b358c63736e345ef
+Signed-off-by: Bartosz Bilas <b.bilas@grinn-global.com>
+---
+ src/3rdparty/chromium/build/config/linux/pkg_config.gni | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/src/3rdparty/chromium/build/config/linux/pkg_config.gni b/src/3rdparty/chromium/build/config/linux/pkg_config.gni
+index 53ee353af..428e44ac0 100644
+--- a/src/3rdparty/chromium/build/config/linux/pkg_config.gni
++++ b/src/3rdparty/chromium/build/config/linux/pkg_config.gni
+@@ -103,11 +103,15 @@ template("pkg_config") {
+     pkgresult = exec_script(pkg_config_script, args, "value")
+     cflags = pkgresult[1]
+-    # We want the system include paths to use -isystem instead of -I to suppress
+-    # warnings in those headers.
+     foreach(include, pkgresult[0]) {
+-      include_relativized = rebase_path(include, root_build_dir)
+-      cflags += [ "-isystem$include_relativized" ]
++      if (use_sysroot) {
++        # We want the system include paths to use -isystem instead of -I to
++        # suppress warnings in those headers.
++        include_relativized = rebase_path(include, root_build_dir)
++        cflags += [ "-isystem$include_relativized" ]
++      } else {
++        cflags += [ "-I$include" ]
++      }
+     }
+     if (!defined(invoker.ignore_libs) || !invoker.ignore_libs) {
+-- 
+2.21.0
+