[OE-core] [PATCH 1/1] grub 1.99: fix build for gcc 4.7

Khem Raj raj.khem at gmail.com
Fri Apr 13 20:20:54 UTC 2012


On Fri, Apr 13, 2012 at 2:41 AM, Robert Yang <liezhi.yang at windriver.com> wrote:
> There was an error when build with gcc 4.7 (FC 17 64bit):
> | fs/zfs/zfs.c: In function 'get_filesystem_dnode':
> | fs/zfs/zfs.c:1449:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
> ......
> cc1: all warnings being treated as errors
>
> While compare the compile command between gcc 4.4.4 and gcc 4.7.0, they
> are the same (both of them have -Wall and -Werror), it seems that gcc
> 4.7.0 has changed its algorithm for the strict aliasing check, but I
> didn't find the related information from its release note.
>
> Add "-fno-strict-aliasing" to gcc's option would fix the problem, this
> would disable the optimization for strict-aliasing.

This seems a bit more than whats needed. You could try adding
-Wno-error=strict-aliasing to CFLAGS

on another note. I do not see this failing with gcc-4.7(target compiler) here
when I build grub for qemux86 so I am a bit puzzled

>
> [YOCTO #2291]
>
> Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
> ---
>  meta/recipes-bsp/grub/grub_1.99.bb |    7 ++++++-
>  1 files changed, 6 insertions(+), 1 deletions(-)
>
> diff --git a/meta/recipes-bsp/grub/grub_1.99.bb b/meta/recipes-bsp/grub/grub_1.99.bb
> index ac66e83..f45b634 100644
> --- a/meta/recipes-bsp/grub/grub_1.99.bb
> +++ b/meta/recipes-bsp/grub/grub_1.99.bb
> @@ -12,7 +12,7 @@ LICENSE = "GPLv3"
>  LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
>
>  RDEPENDS_${PN} = "diffutils freetype"
> -PR = "r3"
> +PR = "r4"
>
>  SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \
>           file://grub-install.in.patch \
> @@ -29,6 +29,11 @@ inherit gettext
>  EXTRA_OECONF = "--with-platform=pc --disable-grub-mkfont --target=${TARGET_ARCH} --program-prefix="""
>
>  do_configure() {
> +    # Fix build error for gcc 4.7
> +    echo "CPPFLAGS_DEFAULT += -fno-strict-aliasing" >> conf/Makefile.common
> +    # Also modify Makefile.in, we can remove this when we can run autoreconf
> +    sed -i 's/^CPPFLAGS_DEFAULT = \(.*\)/CPPFLAGS_DEFAULT = -fno-strict-aliasing \1/' \
> +       Makefile.in grub-core/Makefile.in
>     oe_runconf
>  }
>
> --
> 1.7.1
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core




More information about the Openembedded-core mailing list