summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--recipes-core/openjdk/openjdk-8-common.inc55
-rw-r--r--recipes-core/openjdk/openjdk-8-release-16xbyy.inc3
2 files changed, 33 insertions, 25 deletions
diff --git a/recipes-core/openjdk/openjdk-8-common.inc b/recipes-core/openjdk/openjdk-8-common.inc
index ad39dee..744c062 100644
--- a/recipes-core/openjdk/openjdk-8-common.inc
+++ b/recipes-core/openjdk/openjdk-8-common.inc
@@ -224,32 +224,39 @@ FLAGS_GCC7 = "-fno-lifetime-dse -fno-delete-null-pointer-checks"
224# version is and only add the flags that are appropriate for that GCC 224# version is and only add the flags that are appropriate for that GCC
225# version. 225# version.
226 226
227def version_specific_cflags(d): 227def get_cflags_by_cc_version(d, version):
228 import re 228 if version.isdigit():
229 229 return d.getVar('FLAGS_GCC%d' % int(version)) or ''
230 extraflags = None 230 return ''
231 version = None
232 231
233 if bb.data.inherits_class('native', d): 232def get_build_cflags(d):
233 def get_build_cc_version(build_cc):
234 from subprocess import Popen, PIPE 234 from subprocess import Popen, PIPE
235 235 cmd = d.expand('%s -dumpversion' % build_cc).split()
236 cmd = d.expand('${CC} -dumpversion').split()
237 cc = Popen(cmd, stdout=PIPE, stderr=PIPE) 236 cc = Popen(cmd, stdout=PIPE, stderr=PIPE)
238 version = cc.communicate()[0].decode('utf-8')[0] 237 return cc.communicate()[0].decode('utf-8')[0]
239 else:
240 # in the cross case, trust that GCCVERSION is correct. This won't
241 # work if the native toolchain is Clang, but as of this writing that
242 # doesn't work anyway.
243 version = d.getVar('GCCVERSION', expand=True)[0]
244 # skip non digit characters at the beginning, e.g. from "linaro-6.2%"
245 match = re.search("\d", version)
246 if match:
247 version = version[match.start():]
248 238
249 if version.isdigit(): 239 build_cc = d.getVar('BUILD_CC')
250 extraflags = d.getVar('FLAGS_GCC%d' % int(version), True) or '' 240 version = get_build_cc_version(build_cc)
251 return extraflags 241 return get_cflags_by_cc_version(d, version)
252 return '' 242
243def get_target_cflags(d):
244 import re
253 245
254CFLAGS_append = " ${@version_specific_cflags(d)}" 246 # in the cross case, trust that GCCVERSION is correct. This won't
255CXXFLAGS_append = " ${@version_specific_cflags(d)}" 247 # work if the native toolchain is Clang, but as of this writing that
248 # doesn't work anyway.
249 version = d.getVar('GCCVERSION')[0]
250 # skip non digit characters at the beginning, e.g. from "linaro-6.2%"
251 match = re.search("\d", version)
252 if match:
253 version = version[match.start():]
254 return get_cflags_by_cc_version(d, version)
255
256
257# flags for -native, and for bits that need a host-tool during -cross
258BUILD_CFLAGS_append = " ${@get_build_cflags(d)}"
259BUILD_CXXFLAGS_append = " ${@get_build_cflags(d)}"
260# flags for -cross
261TARGET_CFLAGS_append = " ${@get_target_cflags(d)}"
262TARGET_CXXFLAGS_append = " ${@get_target_cflags(d)}"
diff --git a/recipes-core/openjdk/openjdk-8-release-16xbyy.inc b/recipes-core/openjdk/openjdk-8-release-16xbyy.inc
index fd95e95..36ce073 100644
--- a/recipes-core/openjdk/openjdk-8-release-16xbyy.inc
+++ b/recipes-core/openjdk/openjdk-8-release-16xbyy.inc
@@ -54,7 +54,8 @@ ARM_INSTRUCTION_SET_armv4t = "ARM"
54 54
55# readdir_r was deprecated in glibc-2.24. Ignore the error for now 55# readdir_r was deprecated in glibc-2.24. Ignore the error for now
56# NOTE: When updating the recipe, please check if this is still needed 56# NOTE: When updating the recipe, please check if this is still needed
57CFLAGS_append = " -Wno-error=deprecated-declarations" 57BUILD_CFLAGS_append = " -Wno-error=deprecated-declarations"
58TARGET_CFLAGS_append = " -Wno-error=deprecated-declarations"
58 59
59# Enable zero mode for arm based builds, as normal hotspot fails to build 60# Enable zero mode for arm based builds, as normal hotspot fails to build
60PACKAGECONFIG_append_arm = " zero" 61PACKAGECONFIG_append_arm = " zero"