[oe] [meta-java][PATCH] openjdk-8-common: Fix the issue of building failed adlc on host with gcc < 6
André Draszik
git at andred.net
Thu Aug 9 11:04:01 UTC 2018
Hi Maxin,
You reverted this patch, do you remember what the problem was? It looks
useful, and I believe a solution similar to this one is actually needed...
Cheers,
Andre'
On Fri, 2017-09-29 at 19:24 -0700, fupan.li at windriver.com wrote:
> From: Fupan Li <fupan.li at windriver.com>
>
> 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 at windriver.com>
> ---
> recipes-core/openjdk/openjdk-8-common.inc | 36 ++++++++++++++++++++----
> -------
> 1 file 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"
> --
> 2.11.0
>
More information about the Openembedded-devel
mailing list