[oe] [meta-java][PATCH] openjdk-8-common: Fix warning evaluating CFLAGS

Ricardo Ribalda Delgado ricardo.ribalda at gmail.com
Tue Sep 26 11:26:39 UTC 2017


Ping?

On Thu, Sep 7, 2017 at 11:24 AM, Ricardo Ribalda Delgado
<ricardo.ribalda at gmail.com> wrote:
> Code is (on my opinion) simpler, making use of the dumpversion flag, instead of calling the pre-processor via a pipe.
>
> Flag has been tested on both clang gcc:
>
> ricardo at neopili:~/curro/qt5022/build-qt5022-pyro/repo/java$ gcc-4.8 -dumpversion
> 4.8
> ricardo at neopili:~/curro/qt5022/build-qt5022-pyro/repo/java$ gcc-4.9 -dumpversion
> 4.9.3
> ricardo at neopili:~/curro/qt5022/build-qt5022-pyro/repo/java$ gcc-5 -dumpversion
> 5.4.1
> ricardo at neopili:~/curro/qt5022/build-qt5022-pyro/repo/java$ gcc-6 -dumpversion
> 6.4.0
> ricardo at neopili:~/curro/qt5022/build-qt5022-pyro/repo/java$ gcc-7 -dumpversion
> 7
> ricardo at neopili:~/curro/qt5022/build-qt5022-pyro/repo/java$ clang-4.0 -dumpversion
> 4.2.1
>
> Without this patch:
>
>  WARNING:
>  /home/ricardo/curro/qt5022/build-qt5022-pyro/repo/yocto/../java/recipes-core/openjdk/openjdk-8-native_102b14.bb:
>  Unable to export ${CXXFLAGS}: Failure expanding variable CXXFLAGS,
>  expression was
>  -isystem/home/ricardo/curro/qt5022/build-qt5022-pyro/build/tmp/work/x86_64-linux/openjdk-8-native/102b14-r0/recipe-sysroot-native/usr/include
>  -O2 -pipe -D_GLIBCXX_USE_CXX11_ABI=0 ${@version_specific_cflags(d)}
>  ${@jdk_cpp_options(d)} which triggered exception IndexError: string
>  index out of range
>  WARNING:
>  /home/ricardo/curro/qt5022/build-qt5022-pyro/repo/yocto/../java/recipes-core/openjdk/openjdk-8-native_102b14.bb:
>  Unable to export ${CFLAGS}: Failure expanding variable CFLAGS,
>  expression was
>  -isystem/home/ricardo/curro/qt5022/build-qt5022-pyro/build/tmp/work/x86_64-linux/openjdk-8-native/102b14-r0/recipe-sysroot-native/usr/include
>  -O2 -pipe -Wno-error=deprecated-declarations
>  ${@version_specific_cflags(d)} ${@jdk_cpp_options(d)} which triggered
>  exception IndexError: string index out of range
>
> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda at gmail.com>
> ---
>  recipes-core/openjdk/openjdk-8-common.inc | 10 +++-------
>  1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/recipes-core/openjdk/openjdk-8-common.inc b/recipes-core/openjdk/openjdk-8-common.inc
> index 0c5c2c3e3d2f..83828e156fb6 100644
> --- a/recipes-core/openjdk/openjdk-8-common.inc
> +++ b/recipes-core/openjdk/openjdk-8-common.inc
> @@ -238,13 +238,9 @@ def version_specific_cflags(d):
>      if bb.data.inherits_class('native', d):
>          from subprocess import Popen, PIPE
>
> -        cmd = d.expand('${CPP} -P -').split()
> -        cc = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE)
> -        # This check is GCC specific. Clang always returns 4. For Clang
> -        # __clang_major__ and __clang_minor__ need to be checked. Ideally
> -        # __GNUC_MINOR__ would be checked as well, but for this recipe
> -        # GCC major is all we care about.
> -        version = cc.communicate(b'__GNUC__')[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]
>      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
> --
> 2.14.1
>



-- 
Ricardo Ribalda



More information about the Openembedded-devel mailing list