summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2016-11-22 17:41:43 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-01-11 17:21:42 +0000
commit3c9a34aaeaeed3b70015baaca99357b99a3e8411 (patch)
tree40fc6ca5cb4b2d8d76d5545cffd8c6b042b49a69 /meta
parent91ec54300340233470b02156eb1aff0c1db6f279 (diff)
downloadpoky-3c9a34aaeaeed3b70015baaca99357b99a3e8411.tar.gz
conf: add C++ flags for uninative interoperatility
Create a common include file for compiler flags which allow native binaries to be interoperable on a wide range of hosts. In particular the C++ ABI is problematic so choose the CXX11 version to allow interoperation between gcc4 and gcc5 based hosts. Moving this to a common include instead of uninative.bbclass allows uninative to be configured later and used in the eSDK (where its mandatory) even if the base configuration doesn't enable uninative by default (e.g. nodistro in OE-Core). [ YOCTO #10645 ] (From OE-Core rev: 60c912ae9306532bdd4c5e09a65863ee77c12f43) (From OE-Core rev: 10dea25aac31c156350e3e73f937472404c22d81) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/classes/uninative.bbclass11
-rw-r--r--meta/conf/distro/defaultsetup.conf3
-rw-r--r--meta/conf/distro/include/uninative-flags.inc9
3 files changed, 11 insertions, 12 deletions
diff --git a/meta/classes/uninative.bbclass b/meta/classes/uninative.bbclass
index 89cec07d78..9242320fee 100644
--- a/meta/classes/uninative.bbclass
+++ b/meta/classes/uninative.bbclass
@@ -7,17 +7,6 @@ UNINATIVE_TARBALL ?= "${BUILD_ARCH}-nativesdk-libc.tar.bz2"
7#UNINATIVE_CHECKSUM[x86_64] = "dead" 7#UNINATIVE_CHECKSUM[x86_64] = "dead"
8UNINATIVE_DLDIR ?= "${DL_DIR}/uninative/" 8UNINATIVE_DLDIR ?= "${DL_DIR}/uninative/"
9 9
10# https://wiki.debian.org/GCC5
11# We may see binaries built with gcc5 run or linked into gcc4 environment
12# so use the older libstdc++ standard for now until we don't support gcc4
13# on the host system.
14BUILD_CXXFLAGS_append = " -D_GLIBCXX_USE_CXX11_ABI=0"
15
16#
17# icu configure defaults to CXX11 if no -std= option is passed in CXXFLAGS
18# therefore pass one
19BUILD_CXXFLAGS_append_pn-icu-native = " -std=c++98"
20
21addhandler uninative_event_fetchloader 10addhandler uninative_event_fetchloader
22uninative_event_fetchloader[eventmask] = "bb.event.BuildStarted" 11uninative_event_fetchloader[eventmask] = "bb.event.BuildStarted"
23 12
diff --git a/meta/conf/distro/defaultsetup.conf b/meta/conf/distro/defaultsetup.conf
index 71c65b1462..aa21345a1c 100644
--- a/meta/conf/distro/defaultsetup.conf
+++ b/meta/conf/distro/defaultsetup.conf
@@ -9,6 +9,8 @@ require conf/distro/include/tcmode-${TCMODE}.inc
9TCLIBC ?= "glibc" 9TCLIBC ?= "glibc"
10require conf/distro/include/tclibc-${TCLIBC}.inc 10require conf/distro/include/tclibc-${TCLIBC}.inc
11 11
12require conf/distro/include/uninative-flags.inc
13
12# Allow single libc distros to disable this code 14# Allow single libc distros to disable this code
13TCLIBCAPPEND ?= "-${TCLIBC}" 15TCLIBCAPPEND ?= "-${TCLIBC}"
14TMPDIR .= "${TCLIBCAPPEND}" 16TMPDIR .= "${TCLIBCAPPEND}"
@@ -20,4 +22,3 @@ PACKAGE_CLASSES ?= "package_ipk"
20INHERIT_BLACKLIST = "blacklist" 22INHERIT_BLACKLIST = "blacklist"
21INHERIT_DISTRO ?= "debian devshell sstate license" 23INHERIT_DISTRO ?= "debian devshell sstate license"
22INHERIT += "${PACKAGE_CLASSES} ${USER_CLASSES} ${INHERIT_DISTRO} ${INHERIT_BLACKLIST}" 24INHERIT += "${PACKAGE_CLASSES} ${USER_CLASSES} ${INHERIT_DISTRO} ${INHERIT_BLACKLIST}"
23
diff --git a/meta/conf/distro/include/uninative-flags.inc b/meta/conf/distro/include/uninative-flags.inc
new file mode 100644
index 0000000000..e9f82c39ea
--- /dev/null
+++ b/meta/conf/distro/include/uninative-flags.inc
@@ -0,0 +1,9 @@
1# https://wiki.debian.org/GCC5
2# We may see binaries built with gcc5 run or linked into gcc4 environment
3# so use the older libstdc++ standard for now until we don't support gcc4
4# on the host system.
5BUILD_CXXFLAGS_append = " -D_GLIBCXX_USE_CXX11_ABI=0"
6
7# icu configure defaults to CXX11 if no -std= option is passed in CXXFLAGS
8# therefore pass one
9BUILD_CXXFLAGS_append_pn-icu-native = " -std=c++98"