summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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"
231# version is and only add the flags that are appropriate for that GCC 231# version is and only add the flags that are appropriate for that GCC
232# version. 232# version.
233 233
234def version_specific_cflags(d): 234def version_specific_cflags(d, toolchain):
235 extraflags = None 235 extraflags = None
236 version = None 236 version = None
237 237
238 if bb.data.inherits_class('native', d): 238 from subprocess import Popen, PIPE
239 from subprocess import Popen, PIPE 239 cmd = d.expand('%s -dumpversion' % toolchain ).split()
240 cc = Popen(cmd, stdout=PIPE, stderr=PIPE)
241 version = cc.communicate()[0].decode('utf-8')[0]
240 242
241 cmd = d.expand('${CC} -dumpversion').split() 243 if version.isdigit():
242 cc = Popen(cmd, stdout=PIPE, stderr=PIPE) 244 extraflags = d.getVar('FLAGS_GCC%d' % int(version), True) or ''
243 version = cc.communicate()[0].decode('utf-8')[0] 245 return extraflags
246 return ''
247
248python __anonymous() {
249 if bb.data.inherits_class('native', d):
250 toolchain = d.getVar('CC', True)
251 extraflags = version_specific_cflags(d, toolchain)
252 d.appendVar("CFLAGS", ' ' + extraflags)
253 d.appendVar("CXXFLAGS", ' ' + extraflags)
244 else: 254 else:
245 # in the cross case, trust that GCCVERSION is correct. This won't 255 # in the cross case, trust that GCCVERSION is correct. This won't
246 # work if the native toolchain is Clang, but as of this writing that 256 # work if the native toolchain is Clang, but as of this writing that
247 # doesn't work anyway. 257 # doesn't work anyway.
248 version = d.getVar('GCCVERSION', expand=True)[0] 258 version = d.getVar('GCCVERSION', expand=True)[0]
249
250 if version.isdigit():
251 extraflags = d.getVar('FLAGS_GCC%d' % int(version), True) or '' 259 extraflags = d.getVar('FLAGS_GCC%d' % int(version), True) or ''
252 return extraflags 260 d.appendVar("TARGET_CFLAGS", ' ' + extraflags)
253 return '' 261 d.appendVar("TARGET_CXXFLAGS", ' ' + extraflags)
262
263 toolchain = d.getVar('BUILD_CC', True)
264 extraflags = version_specific_cflags(d, toolchain)
265 d.appendVar("BUILD_CFLAGS", ' ' + extraflags)
266 d.appendVar("BUILD_CXXFLAGS", ' ' + extraflags)
267}
254 268
255CFLAGS_append = " ${@version_specific_cflags(d)}"
256CXXFLAGS_append = " ${@version_specific_cflags(d)}"
257CXX_append = " -std=gnu++98" 269CXX_append = " -std=gnu++98"