aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-core/openjdk/openjdk-8-common.inc
diff options
context:
space:
mode:
authorFupan Li <fupan.li@windriver.com>2017-09-29 19:24:55 -0700
committerMaxin B. John <maxin.john@intel.com>2017-10-02 17:10:07 +0300
commit6801f6d4e19c88dabd5a02dfbbf69a2dcc8e079c (patch)
tree9d408e4c3228cc698d6979e07a8e19c438e94885 /recipes-core/openjdk/openjdk-8-common.inc
parent60a3b62bddf69ec114f0ffdb5ca8ac7b5b37716e (diff)
downloadmeta-java-6801f6d4e19c88dabd5a02dfbbf69a2dcc8e079c.tar.gz
meta-java-6801f6d4e19c88dabd5a02dfbbf69a2dcc8e079c.tar.bz2
meta-java-6801f6d4e19c88dabd5a02dfbbf69a2dcc8e079c.zip
openjdk-8-common: Fix the issue of building failed adlc on host with gcc < 6
The patch recipes-core/openjdk/patches-openjdk-8/openjdk8-fix-adlc-flags.patch had tried to fix this issue, and it tried to filter out the TARGET_FLAGS/TARGET_ CXXFLGAS, but for the flags such as "-fno-lifetime-dse" was added to CFLAGS/CXXFLAGS, directly, thus that patch failed to filter it out. To fix this issue, it's better to add those GCC version specific flags to BUILD_CFLAGS/ BUILD_CXXFLAGS and TARGET_CFLAGS/TARGET_CXXFLAGS separatedly, thus that patch can work as expected. Signed-off-by: Fupan Li <fupan.li@windriver.com> Signed-off-by: Maxin B. John <maxin.john@intel.com>
Diffstat (limited to 'recipes-core/openjdk/openjdk-8-common.inc')
-rw-r--r--recipes-core/openjdk/openjdk-8-common.inc36
1 files changed, 24 insertions, 12 deletions
diff --git a/recipes-core/openjdk/openjdk-8-common.inc b/recipes-core/openjdk/openjdk-8-common.inc
index 83828e1..c609232 100644
--- a/recipes-core/openjdk/openjdk-8-common.inc
+++ b/recipes-core/openjdk/openjdk-8-common.inc
@@ -231,27 +231,39 @@ FLAGS_GCC7 = "-fno-lifetime-dse -fno-delete-null-pointer-checks"
# version is and only add the flags that are appropriate for that GCC
# version.
-def version_specific_cflags(d):
+def version_specific_cflags(d, toolchain):
extraflags = None
version = None
- if bb.data.inherits_class('native', d):
- from subprocess import Popen, PIPE
+ from subprocess import Popen, PIPE
+ cmd = d.expand('%s -dumpversion' % toolchain ).split()
+ cc = Popen(cmd, stdout=PIPE, stderr=PIPE)
+ version = cc.communicate()[0].decode('utf-8')[0]
- cmd = d.expand('${CC} -dumpversion').split()
- cc = Popen(cmd, stdout=PIPE, stderr=PIPE)
- version = cc.communicate()[0].decode('utf-8')[0]
+ if version.isdigit():
+ extraflags = d.getVar('FLAGS_GCC%d' % int(version), True) or ''
+ return extraflags
+ return ''
+
+python __anonymous() {
+ if bb.data.inherits_class('native', d):
+ toolchain = d.getVar('CC', True)
+ extraflags = version_specific_cflags(d, toolchain)
+ d.appendVar("CFLAGS", ' ' + extraflags)
+ d.appendVar("CXXFLAGS", ' ' + extraflags)
else:
# in the cross case, trust that GCCVERSION is correct. This won't
# work if the native toolchain is Clang, but as of this writing that
# doesn't work anyway.
version = d.getVar('GCCVERSION', expand=True)[0]
-
- if version.isdigit():
extraflags = d.getVar('FLAGS_GCC%d' % int(version), True) or ''
- return extraflags
- return ''
+ d.appendVar("TARGET_CFLAGS", ' ' + extraflags)
+ d.appendVar("TARGET_CXXFLAGS", ' ' + extraflags)
+
+ toolchain = d.getVar('BUILD_CC', True)
+ extraflags = version_specific_cflags(d, toolchain)
+ d.appendVar("BUILD_CFLAGS", ' ' + extraflags)
+ d.appendVar("BUILD_CXXFLAGS", ' ' + extraflags)
+}
-CFLAGS_append = " ${@version_specific_cflags(d)}"
-CXXFLAGS_append = " ${@version_specific_cflags(d)}"
CXX_append = " -std=gnu++98"