aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGregory Vimont <gregory.vimont@softbankrobotics.com>2018-08-30 14:43:51 +0000
committerArmin Kuster <akuster808@gmail.com>2018-09-29 09:00:33 -0700
commit666e1d2d1ec69a8f63e9f05d29e6f7a11b32c74d (patch)
tree731b10706c411577108c19da81896574094782cf
parent9fbfdd309c5bb372601e0ca845195addceac4f93 (diff)
downloadmeta-openembedded-666e1d2d1ec69a8f63e9f05d29e6f7a11b32c74d.tar.gz
tbb: check the version of the cross gcc instead of host gcc
When cross compiling on linux with gcc, the host gcc was used instead of the cross gcc to set compilation flags according to gcc version. Signed-off-by: Gregory Vimont <gregory.vimont@softbankrobotics.com> Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
-rw-r--r--meta-oe/recipes-support/tbb/tbb.bb1
-rw-r--r--meta-oe/recipes-support/tbb/tbb/0002-linux-Fix-gcc-version-check.patch57
2 files changed, 58 insertions, 0 deletions
diff --git a/meta-oe/recipes-support/tbb/tbb.bb b/meta-oe/recipes-support/tbb/tbb.bb
index bad9481f7d..f870104015 100644
--- a/meta-oe/recipes-support/tbb/tbb.bb
+++ b/meta-oe/recipes-support/tbb/tbb.bb
@@ -13,6 +13,7 @@ PV = "${PRDATE}+${SRCPV}"
SRC_URI = "git://github.com/01org/tbb;branch=${BRANCH} \
file://cross-compile.patch \
file://0001-mallinfo-is-glibc-specific-API-mark-it-so.patch \
+ file://0002-linux-Fix-gcc-version-check.patch \
file://tbb.pc \
"
diff --git a/meta-oe/recipes-support/tbb/tbb/0002-linux-Fix-gcc-version-check.patch b/meta-oe/recipes-support/tbb/tbb/0002-linux-Fix-gcc-version-check.patch
new file mode 100644
index 0000000000..9824b61e91
--- /dev/null
+++ b/meta-oe/recipes-support/tbb/tbb/0002-linux-Fix-gcc-version-check.patch
@@ -0,0 +1,57 @@
+From aee098f1bf0511c6b5544de3170a9e8b51673b60 Mon Sep 17 00:00:00 2001
+From: Pierre Le Magourou <plemagourou@softbankrobotics.com>
+Date: Tue, 23 Jan 2018 15:25:50 +0100
+Subject: [PATCH] linux.gcc: Fix cross compilation error.
+
+When cross compiling on linux with gcc, the host gcc was used instead of
+the cross gcc to set compilation flags according to gcc version.
+
+When the cross gcc was in version 5.X and the host gcc in version 7.X,
+tbb was compiled with the -flifetime-dse=1 flag that does not exist on
+gcc 5.X.
+---
+ build/linux.gcc.inc | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/build/linux.gcc.inc b/build/linux.gcc.inc
+index 5c1889c..a4d6698 100644
+--- a/build/linux.gcc.inc
++++ b/build/linux.gcc.inc
+@@ -41,29 +41,29 @@ LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
+ C_FLAGS = $(CPLUS_FLAGS)
+
+ # gcc 4.2 and higher support OpenMP
+-ifneq (,$(shell gcc -dumpversion | egrep "^(4\.[2-9]|[5-9])"))
++ifneq (,$(shell $(CC) -dumpversion | egrep "^(4\.[2-9]|[5-9])"))
+ OPENMP_FLAG = -fopenmp
+ endif
+
+ # gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them
+-ifneq (,$(shell gcc -dumpversion | egrep "^(4\.[8-9]|[5-9])"))
++ifneq (,$(shell $(CC) -dumpversion | egrep "^(4\.[8-9]|[5-9])"))
+ RTM_KEY = -mrtm
+ endif
+
+ # gcc 4.0 and later have -Wextra that is used by some our customers.
+-ifneq (,$(shell gcc -dumpversion | egrep "^([4-9])"))
++ifneq (,$(shell $(CC) -dumpversion | egrep "^([4-9])"))
+ TEST_WARNING_KEY += -Wextra
+ endif
+
+ # gcc 5.0 and later have -Wsuggest-override option
+ # enable it via a pre-included header in order to limit to C++11 and above
+-ifneq (,$(shell gcc -dumpversion | egrep "^([5-9])"))
++ifneq (,$(shell $(CC) -dumpversion | egrep "^([5-9])"))
+ INCLUDE_TEST_HEADERS = -include $(tbb_root)/src/test/harness_preload.h
+ endif
+
+ # gcc 6.0 and later have -flifetime-dse option that controls
+ # elimination of stores done outside the object lifetime
+-ifneq (,$(shell gcc -dumpversion | egrep "^([6-9])"))
++ifneq (,$(shell $(CC) -dumpversion | egrep "^([6-9])"))
+ # keep pre-contruction stores for zero initialization
+ DSE_KEY = -flifetime-dse=1
+ endif
+--
+2.15.1
+