[oe] [meta-oe][PATCH] mozjs: fix configure failure on CentOS 7.6

kai.kang at windriver.com kai.kang at windriver.com
Thu Jun 27 05:22:12 UTC 2019


From: Kai Kang <kai.kang at windriver.com>

Option '-std=gnu++14' has been supported from gcc 4.9. But on some build hosts
such as CentOS 7.6 which only has gcc 4.8.5 and fails to configure:

| checking whether the host C compiler can be used... no
| ERROR: Only GCC 4.9 or newer is supported (found version 4.8.5).

Fallback to 2011 C++ standard and lower required gcc version to 4.8.0 which is
the same as in previous version 52.9.1 of mozjs.

Signed-off-by: Kai Kang <kai.kang at windriver.com>
---
 .../mozjs/fallback-to-2011-C++-standard.patch | 42 +++++++++++++++++++
 .../recipes-extended/mozjs/mozjs_60.5.2.bb    |  1 +
 2 files changed, 43 insertions(+)
 create mode 100644 meta-oe/recipes-extended/mozjs/mozjs/fallback-to-2011-C++-standard.patch

diff --git a/meta-oe/recipes-extended/mozjs/mozjs/fallback-to-2011-C++-standard.patch b/meta-oe/recipes-extended/mozjs/mozjs/fallback-to-2011-C++-standard.patch
new file mode 100644
index 000000000..7a0d286e1
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs/fallback-to-2011-C++-standard.patch
@@ -0,0 +1,42 @@
+Option '-std=gnu++14' has been supported from gcc 4.9. But on some build hosts
+such as CentOS 7.6 which only has gcc 4.8.5 and fails to configure:
+
+| checking whether the host C compiler can be used... no
+| ERROR: Only GCC 4.9 or newer is supported (found version 4.8.5).
+
+Fallback to 2011 C++ standard and lower required gcc version to 4.8.0 which is
+the same as in previous version 52.9.1 of mozjs.
+
+Upstream-Status: Inappropriate [Workaround]
+
+Signed-off-by: Kai Kang <kai.kang at windriver.com>
+---
+diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure
+index 9c772a8..fc640c7 100755
+--- a/build/moz.configure/toolchain.configure
++++ b/build/moz.configure/toolchain.configure
+@@ -502,10 +502,8 @@ def check_compiler(compiler, language, target):
+             append_flag('-std=c++14')
+         # GCC 4.9 indicates that it implements draft C++14 features
+         # instead of the full language.
+-        elif info.type == 'gcc' and \
+-                info.language_version not in (draft_cxx14_version,
+-                                              cxx14_version):
+-            append_flag('-std=gnu++14')
++        elif info.type == 'gcc' and info.language_version != 201103:
++            append_flag('-std=gnu++11')
+ 
+     # We force clang-cl to emulate Visual C++ 2017 version 15.4
+     if info.type == 'clang-cl' and info.version != '19.11.25547':
+@@ -903,9 +901,9 @@ def compiler(language, host_or_target, c_compiler=None, other_compiler=None,
+         # Check the compiler version here instead of in `compiler_version` so
+         # that the `checking` message doesn't pretend the compiler can be used
+         # to then bail out one line later.
+-        if info.type == 'gcc' and info.version < '4.9.0':
++        if info.type == 'gcc' and info.version < '4.8.0':
+             raise FatalCheckError(
+-                'Only GCC 4.9 or newer is supported (found version %s).'
++                'Only GCC 4.8 or newer is supported (found version %s).'
+                 % info.version)
+ 
+         if info.type == 'gcc' and host_or_target.os == 'Android':
diff --git a/meta-oe/recipes-extended/mozjs/mozjs_60.5.2.bb b/meta-oe/recipes-extended/mozjs/mozjs_60.5.2.bb
index 70bdbc168..c89aba773 100644
--- a/meta-oe/recipes-extended/mozjs/mozjs_60.5.2.bb
+++ b/meta-oe/recipes-extended/mozjs/mozjs_60.5.2.bb
@@ -17,6 +17,7 @@ SRC_URI = "https://dev.gentoo.org/~axs/distfiles/mozjs-60.5.2.tar.bz2 \
            file://0001-To-fix-build-error-on-arm32BE.patch \
            file://JS_PUBLIC_API.patch \
            file://0001-riscv-Disable-atomic-operations.patch \
+           file://fallback-to-2011-C++-standard.patch \
            "
 SRC_URI_append_libc-musl = " \
            file://0006-support-musl.patch \
-- 
2.20.0



More information about the Openembedded-devel mailing list