grub & eglibc fixes for fedora 17 alpha
v2 cover grub & eglibc fixes for fedora 17 alpha
From: Nitin A Kamble <[email protected]>
These are various grub fixes for correctly building grub recipes for various targets. These are tested for emenlow, sugerbay, qemux86, qemux86-64 machines
The eglibc commits is thes same as in the v1 pull request.
Nitin
The following changes since commit ee71422b9893f9f77173fb2612d1ffbbc68643c3:
linux-yocto: allow .cfg, .scc, .patch and defconfigs to be processed in order (2012-04-13 22:44:46 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib nitin/grub3
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=nitin/grub3
Nitin A Kamble (4):
eglibc: fix builds on fedora 17 alpha
grub-1.99: use gcc-cross for building the target binaries grub-efi-native, grub: fix build with gcc 4.7 grub-1.99: fix configure error
.../grub-1.99-fix-enable_execute_stack-check.patch | 27 ++++ .../grub/files/grub-1.99-fpmath-sse-387-fix.patch | 37 +++++ ...rub-1.99-gcc-4.7.0-strict-aliasing-errors.patch | 147 ++++++++++++++++++++ ...b-1.99-gcc-4.7.0-uninitialized-var-errors.patch | 41 ++++++ .../grub/files/grub-1.99-gcc-4.7.0.patch | 34 +++++ meta/recipes-bsp/grub/grub-efi-native_1.99.bb | 10 +- meta/recipes-bsp/grub/grub_1.99.bb | 10 +- meta/recipes-core/eglibc/eglibc-package.inc | 5 + meta/recipes-core/eglibc/eglibc_2.13.bb | 2 +- meta/recipes-core/eglibc/eglibc_2.15.bb | 2 +- 10 files changed, 309 insertions(+), 6 deletions(-) create mode 100644 meta/recipes-bsp/grub/files/grub-1.99-fix-enable_execute_stack-check.patch create mode 100644 meta/recipes-bsp/grub/files/grub-1.99-fpmath-sse-387-fix.patch create mode 100644 meta/recipes-bsp/grub/files/grub-1.99-gcc-4.7.0-strict-aliasing-errors.patch create mode 100644 meta/recipes-bsp/grub/files/grub-1.99-gcc-4.7.0-uninitialized-var-errors.patch create mode 100644 meta/recipes-bsp/grub/files/grub-1.99-gcc-4.7.0.patch
Signature · 1 line
1.7.7
PATCH v2 1/4 eglibc: fix builds on fedora 17 alpha
From: Nitin A Kamble <[email protected]>
Generally distros keep perl at /sur/bin/perl
Fedora 17 alpha also has /bin/perl
this causes eglibc build on such distros to put perl interpreter path in the perl scripts as /bin/perl
But we set perl location for target as /usr/bin/perl
This mismatch of perl path causes failure of rootfs image creation like this:
| error: Failed dependencies:
| /bin/perl is needed by eglibc-utils-2.13-r23+svnr15508.i586
NOTE: package core-image-sato-1.0-r0: task do_rootfs: Failed
ERROR: Task 8 (/home/nitin/prj/poky.git/meta/recipes-sato/images/core-image-sato.bb, do_rootfs) failed with exit code '1'
This Fixes bug : [YOCTO #2286]
--- meta/recipes-core/eglibc/eglibc-package.inc | 5 +++++ meta/recipes-core/eglibc/eglibc_2.13.bb | 2 +- meta/recipes-core/eglibc/eglibc_2.15.bb | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-)
meta/recipes-core/eglibc/eglibc-package.inc +5 -0
@@ -76,6 +76,11 @@ do_install_append () { rm -f ${D}${sysconfdir}/localtime oe_multilib_header bits/syscall.h + + if [ -f ${D}${bindir}/mtrace ] + then + sed -e "s# /bin/perl# ${bindir}/perl#" -i ${D}${bindir}/mtrace + fi } do_install_locale () {
meta/recipes-core/eglibc/eglibc_2.13.bb +1 -1
@@ -3,7 +3,7 @@ require eglibc.inc SRCREV = "15508" DEPENDS += "gperf-native" -PR = "r25" +PR = "r26" PR_append = "+svnr${SRCPV}" EGLIBC_BRANCH="eglibc-2_13"
meta/recipes-core/eglibc/eglibc_2.15.bb +1 -1
@@ -3,7 +3,7 @@ require eglibc.inc SRCREV = "17386" DEPENDS += "gperf-native" -PR = "r5" +PR = "r6" PR_append = "+svnr${SRCPV}" EGLIBC_BRANCH="eglibc-2_15"
Signature · 1 line
1.7.7
PATCH v2 2/4 grub-1.99: use gcc-cross for building the target binaries
From: Nitin A Kamble <[email protected]>
It was using distro gcc to build binaries for target. This got detected on fedora 17 alpha, on which it hit an gcc-4.7 issue.
This Fixes Bug: [Yocto #2291]
More information in the patch header
Thanks to Saul Wold for suggesting to remove the --target parameter from EXTRA_OECONF var.
--- .../grub/files/grub-1.99-fpmath-sse-387-fix.patch | 37 ++++++++++++++++++++ meta/recipes-bsp/grub/grub-efi-native_1.99.bb | 5 ++- meta/recipes-bsp/grub/grub_1.99.bb | 5 ++- 3 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 meta/recipes-bsp/grub/files/grub-1.99-fpmath-sse-387-fix.patch
meta/recipes-bsp/grub/files/grub-1.99-fpmath-sse-387-fix.patch new file +37 -0
@@ -0,0 +1,37 @@ +Upstream-Status: pending + +This patch fixes this configure issue for grub when -mfpmath=sse is in the gcc parameters. + +configure:20574: i586-poky-linux-gcc -m32 -march=core2 -msse3 -mtune=generic -mfpmath=sse --sysroot=/usr/local/dev/yocto/grubtest2/build/tmp/sysroots/emenlow -o conftest -O2 -pipe -g -feliminate-unused-debug-types -Wall -W -Wshadow -Wpointer-arith -Wmissing-prototypes -Wundef -Wstrict-prototypes -g -falign-jumps=1 -falign-loops=1 -falign-functions=1 -mno-mmx -mno-sse -mno-sse2 -mno-3dnow -fno-dwarf2-cfi-asm -m32 -fno-stack-protector -mno-stack-arg-probe -Werror -nostdlib -Wl,--defsym,___main=0x8100 -Wall -W -I$(top_srcdir)/include -I$(top_builddir)/include -DGRUB_MACHINE_PCBIOS=1 -DGRUB_MACHINE=I386_PC -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed conftest.c >&5 +conftest.c:1:0: error: SSE instruction set disabled, using 387 arithmetics [-Werror] +cc1: all warnings being treated as errors + +Signed-Off-By: Nitin A Kamble <[email protected]> +2012/04/13 + +Index: grub-1.99/configure.ac +=================================================================== +--- grub-1.99.orig/configure.ac ++++ grub-1.99/configure.ac +@@ -378,7 +378,7 @@ if test "x$target_cpu" = xi386; then + + # Some toolchains enable these features by default, but they need + # registers that aren't set up properly in GRUB. +- TARGET_CFLAGS="$TARGET_CFLAGS -mno-mmx -mno-sse -mno-sse2 -mno-3dnow" ++ TARGET_CFLAGS="$TARGET_CFLAGS -mno-mmx -mno-sse -mno-sse2 -mno-3dnow -mfpmath=387" + fi + + # By default, GCC 4.4 generates .eh_frame sections containing unwind +Index: grub-1.99/configure +=================================================================== +--- grub-1.99.orig/configure ++++ grub-1.99/configure +@@ -19991,7 +19991,7 @@ $as_echo "$grub_cv_cc_falign_loop" >&6; + + # Some toolchains enable these features by default, but they need + # registers that aren't set up properly in GRUB. +- TARGET_CFLAGS="$TARGET_CFLAGS -mno-mmx -mno-sse -mno-sse2 -mno-3dnow" ++ TARGET_CFLAGS="$TARGET_CFLAGS -mno-mmx -mno-sse -mno-sse2 -mno-3dnow -mfpmath=387" + fi + + # By default, GCC 4.4 generates .eh_frame sections containing unwind
meta/recipes-bsp/grub/grub-efi-native_1.99.bb +3 -2
@@ -16,14 +16,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" # FIXME: We should be able to optionally drop freetype as a dependency DEPENDS = "help2man-native autogen-native" RDEPENDS_${PN} = "diffutils freetype" -PR = "r6" +PR = "r7" # Native packages do not normally rebuild when the target changes. # Ensure this is built once per HOST-TARGET pair. PN := "grub-efi-${TRANSLATED_TARGET_ARCH}-native" SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \ - file://grub-1.99_fix_for_automake_1.11.2.patch" + file://grub-1.99_fix_for_automake_1.11.2.patch \ + file://grub-1.99-fpmath-sse-387-fix.patch" SRC_URI[md5sum] = "ca9f2a2d571b57fc5c53212d1d22e2b5" SRC_URI[sha256sum] = "b91f420f2c51f6155e088e34ff99bea09cc1fb89585cf7c0179644e57abd28ff"
meta/recipes-bsp/grub/grub_1.99.bb +3 -2
@@ -12,10 +12,11 @@ LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" RDEPENDS_${PN} = "diffutils freetype" -PR = "r3" +PR = "r5" SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \ file://grub-install.in.patch \ + file://grub-1.99-fpmath-sse-387-fix.patch \ file://40_custom" SRC_URI[md5sum] = "ca9f2a2d571b57fc5c53212d1d22e2b5"
@@ -26,7 +27,7 @@ COMPATIBLE_HOST = '(x86_64.*|i.86.*)-(linux|freebsd.*)' inherit autotools inherit gettext -EXTRA_OECONF = "--with-platform=pc --disable-grub-mkfont --target=${TARGET_ARCH} --program-prefix=""" +EXTRA_OECONF = "--with-platform=pc --disable-grub-mkfont --program-prefix=""" do_configure() { oe_runconf
Signature · 1 line
1.7.7
PATCH v2 3/4 grub-efi-native, grub: fix build with gcc 4.7
In reply to [email protected]From: Nitin A Kamble <[email protected]>
This fixes bug [YOCTO #2293]
These build failure caused by gcc4.7 is fixed with a backport of a grub-1.99 patch from fedora 17 alpha plus two more new patches
| gcc -DHAVE_CONFIG_H -I. -I.. -Wall -W -I../include -I../include -DGRUB_MACHINE_EFI=1 -DGRUB_MACHINE=I386_EFI -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.7.0/include -DGRUB_FILE=\"commands/efi/acpi.c\" -I. -I. -I.. -I.. -I../include -I../include -isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe -g -feliminate-unused-debug-types -Wall -W -Wshadow -Wpointer-arith -Wmissing-prototypes -Wundef -Wstrict-prototypes -g -falign-jumps=1 -falign-loops=1 -falign-functions=1 -mno-mmx -mno-sse -mno-sse2 -mno-3dnow -fno-dwarf2-cfi-asm -m32 -fno-stack-protector
-mno-stack-arg-probe -Werror -Wno-trampolines -ffreestanding
-isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe -c -o commands/efi/acpi_module-acpi.o test -f 'commands/efi/acpi.c' || echo './'commands/efi/acpi.c
| gcc: error: unrecognized command line option '-melf_i386' | make[3]: *** [trig.module] Error 1
| make[3]: Entering directory `/home/nitin/builds/build0/tmp/work/x86_64-linux/grub-efi-i586-native-1.99-r7/grub-1.99/grub-core' | gcc -DHAVE_CONFIG_H -I. -I.. -Wall -W -I../include -I../include -DGRUB_MACHINE_EFI=1 -DGRUB_MACHINE=I386_EFI -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.7.0/include
-DGRUB_FILE=\"fs/btrfs.c\" -I.
-I. -I.. -I.. -I../include -I../include -isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include
-O2
-pipe -g -feliminate-unused-debug-types -Wall -W -Wshadow
-Wpointer-arith
-Wmissing-prototypes -Wundef -Wstrict-prototypes -g -falign-jumps=1 -falign-loops=1 -falign-functions=1 -mno-mmx -mno-sse -mno-sse2
-mno-3dnow
-fno-dwarf2-cfi-asm -m32 -fno-stack-protector -mno-stack-arg-probe
-Werror
-Wno-trampolines -ffreestanding
-isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include
-O2
-pipe -c -o fs/btrfs_module-btrfs.o `test -f 'fs/btrfs.c' || echo
'./'`fs/btrfs.c
| fs/btrfs.c: In function 'grub_btrfs_read_logical':
| fs/btrfs.c:791:5: error: 'err' may be used uninitialized in this
function
[-Werror=maybe-uninitialized]
| fs/btrfs.c:592:18: note: 'err' was declared here | cc1: all warnings being treated as errors | make[3]: *** [fs/btrfs_module-btrfs.o] Error 1
| gcc -DHAVE_CONFIG_H -I. -I.. -Wall -W -I../include -I../include -DGRUB_MACHINE_EFI=1 -DGRUB_MACHINE=I386_EFI -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.7.0/include
-DGRUB_FILE=\"fs/zfs/zfs.c\" -I. -I. -I.. -I.. -I../include -I../include -isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include
-O2 -pipe -g -feliminate-unused-debug-types -Wall -W -Wshadow
-Wpointer-arith -Wmissing-prototypes -Wundef -Wstrict-prototypes -g
-falign-jumps=1 -falign-loops=1 -falign-functions=1 -mno-mmx -mno-sse
-mno-sse2 -mno-3dnow -fno-dwarf2-cfi-asm -m32 -fno-stack-protector
-mno-stack-arg-probe -Werror -Wno-trampolines -ffreestanding
-isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include
-O2 -pipe -c -o fs/zfs/zfs_module-zfs.o test -f 'fs/zfs/zfs.c' || echo './'fs/zfs/zfs.c
| 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]
| fs/zfs/zfs.c:1449:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c: In function 'make_mdn':
| fs/zfs/zfs.c:1478:3: error: dereferencing type-punned pointer will
break strict-alERROR: Function failed: do_compile (see /home/nitin/builds/build0/tmp/work/x86_64-linux/grub-efi-i586-native-1.99-r7/temp/log.do_compile.9293 for further information)
| iasing rules [-Werror=strict-aliasing] | fs/zfs/zfs.c: In function 'dnode_get_fullpath': | fs/zfs/zfs.c:1554:3: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:1554:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:1571:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:1571:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c: In function 'grub_zfs_open':
| fs/zfs/zfs.c:2234:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2234:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c: In function 'fill_fs_info':
| fs/zfs/zfs.c:2362:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2362:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2395:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2395:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c: In function 'iterate_zap':
| fs/zfs/zfs.c:2420:5: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2420:5: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c: In function 'grub_zfs_dir':
| fs/zfs/zfs.c:2483:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2483:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2484:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2484:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2502:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2502:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing]
| cc1: all warnings being treated as errors
| make[3]: *** [fs/zfs/zfs_module-zfs.o] Error 1
--- ...rub-1.99-gcc-4.7.0-strict-aliasing-errors.patch | 147 ++++++++++++++++++++ ...b-1.99-gcc-4.7.0-uninitialized-var-errors.patch | 41 ++++++ .../grub/files/grub-1.99-gcc-4.7.0.patch | 34 +++++ meta/recipes-bsp/grub/grub-efi-native_1.99.bb | 8 +- meta/recipes-bsp/grub/grub_1.99.bb | 5 +- 5 files changed, 232 insertions(+), 3 deletions(-) create mode 100644 meta/recipes-bsp/grub/files/grub-1.99-gcc-4.7.0-strict-aliasing-errors.patch create mode 100644 meta/recipes-bsp/grub/files/grub-1.99-gcc-4.7.0-uninitialized-var-errors.patch create mode 100644 meta/recipes-bsp/grub/files/grub-1.99-gcc-4.7.0.patch
meta/recipes-bsp/grub/files/grub-1.99-gcc-4.7.0-strict-aliasing-errors.patch new file +147 -0
@@ -0,0 +1,147 @@ +Upstream-Status: Pending + +This patch fixes these strick-aliasing errors with gcc 4.7 + + +| gcc -DHAVE_CONFIG_H -I. -I.. -Wall -W -I../include -I../include -DGRUB_MACHINE_EFI=1 -DGRUB_MACHINE=I386_EFI -nostdinc -isystem /usr/lib/gcc/x86_64-redhat-linux/4.7.0/include -DGRUB_FILE=\"fs/zfs/zfs.c\" -I. -I. -I.. -I.. -I../include -I../include -isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe -g -feliminate-unused-debug-types -Wall -W -Wshadow -Wpointer-arith -Wmissing-prototypes -Wundef -Wstrict-prototypes -g -falign-jumps=1 -falign-loops=1 -falign-functions=1 -mno-mmx -mno-sse -mno-sse2 -mno-3dnow -fno-dwarf2-cfi-asm -m32 -fno-stack-protector -mno-stack-arg-probe -Werror -Wno-trampolines -ffreestanding -isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe -c -o fs/zfs/zfs_module-zfs.o `test -f 'fs/zfs/zfs.c' || echo './'`fs/zfs/zfs.c +| 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] +| fs/zfs/zfs.c:1449:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| fs/zfs/zfs.c: In function 'make_mdn': +| fs/zfs/zfs.c:1478:3: error: dereferencing type-punned pointer will break strict-alERROR: Function failed: do_compile (see /home/nitin/builds/build0/tmp/work/x86_64-linux/grub-efi-i586-native-1.99-r7/temp/log.do_compile.9293 for further information) +| iasing rules [-Werror=strict-aliasing] +| fs/zfs/zfs.c: In function 'dnode_get_fullpath': +| fs/zfs/zfs.c:1554:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| fs/zfs/zfs.c:1554:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| fs/zfs/zfs.c:1571:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| fs/zfs/zfs.c:1571:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| fs/zfs/zfs.c: In function 'grub_zfs_open': +| fs/zfs/zfs.c:2234:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| fs/zfs/zfs.c:2234:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| fs/zfs/zfs.c: In function 'fill_fs_info': +| fs/zfs/zfs.c:2362:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| fs/zfs/zfs.c:2362:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| fs/zfs/zfs.c:2395:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| fs/zfs/zfs.c:2395:3: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| fs/zfs/zfs.c: In function 'iterate_zap': +| fs/zfs/zfs.c:2420:5: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| fs/zfs/zfs.c:2420:5: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| fs/zfs/zfs.c: In function 'grub_zfs_dir': +| fs/zfs/zfs.c:2483:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| fs/zfs/zfs.c:2483:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| fs/zfs/zfs.c:2484:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| fs/zfs/zfs.c:2484:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| fs/zfs/zfs.c:2502:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| fs/zfs/zfs.c:2502:7: error: dereferencing type-punned pointer will break strict-aliasing rules [-Werror=strict-aliasing] +| cc1: all warnings being treated as errors +| make[3]: *** [fs/zfs/zfs_module-zfs.o] Error 1 + +Signed-Off-By: Nitin A Kamble <[email protected]> +2012/04/13 + +Index: grub-1.99/grub-core/fs/zfs/zfs.c +=================================================================== +--- grub-1.99.orig/grub-core/fs/zfs/zfs.c ++++ grub-1.99/grub-core/fs/zfs/zfs.c +@@ -1446,7 +1446,8 @@ get_filesystem_dnode (dnode_end_t * mosm + ch = *fsname; + *fsname = 0; + +- childobj = grub_zfs_to_cpu64 ((((dsl_dir_phys_t *) DN_BONUS (&mdn->dn)))->dd_child_dir_zapobj, mdn->endian); ++ dsl_dir_phys_t * tmp = DN_BONUS (&mdn->dn); ++ childobj = grub_zfs_to_cpu64 (tmp->dd_child_dir_zapobj, mdn->endian); + err = dnode_get (mosmdn, childobj, + DMU_OT_DSL_DIR_CHILD_MAP, mdn, data); + if (err) +@@ -1475,7 +1476,8 @@ make_mdn (dnode_end_t * mdn, struct grub + + grub_dprintf ("zfs", "endian = %d\n", mdn->endian); + +- bp = &(((dsl_dataset_phys_t *) DN_BONUS (&mdn->dn))->ds_bp); ++ dsl_dataset_phys_t * tmp = DN_BONUS(&mdn->dn); ++ bp = &(tmp->ds_bp); + err = zio_read (bp, mdn->endian, &osp, &ospsize, data); + if (err) + return err; +@@ -1551,7 +1553,8 @@ dnode_get_fullpath (const char *fullpath + + grub_dprintf ("zfs", "alive\n"); + +- headobj = grub_zfs_to_cpu64 (((dsl_dir_phys_t *) DN_BONUS (&dn->dn))->dd_head_dataset_obj, dn->endian); ++ dsl_dir_phys_t * tmp1 = DN_BONUS (&dn->dn); ++ headobj = grub_zfs_to_cpu64 (tmp1->dd_head_dataset_obj, dn->endian); + + grub_dprintf ("zfs", "endian = %d\n", mdn->endian); + +@@ -1568,7 +1571,8 @@ dnode_get_fullpath (const char *fullpath + { + grub_uint64_t snapobj; + +- snapobj = grub_zfs_to_cpu64 (((dsl_dataset_phys_t *) DN_BONUS (&mdn->dn))->ds_snapnames_zapobj, mdn->endian); ++ dsl_dataset_phys_t * tmp2 = DN_BONUS (&mdn->dn); ++ snapobj = grub_zfs_to_cpu64 (tmp2->ds_snapnames_zapobj, mdn->endian); + + err = dnode_get (&(data->mos), snapobj, + DMU_OT_DSL_DS_SNAP_MAP, mdn, data); +@@ -2231,7 +2235,8 @@ grub_zfs_open (struct grub_file *file, c + } + else + { +- file->size = grub_zfs_to_cpu64 (((znode_phys_t *) DN_BONUS (&data->dnode.dn))->zp_size, data->dnode.endian); ++ znode_phys_t * tmp = DN_BONUS (&data->dnode.dn); ++ file->size = grub_zfs_to_cpu64 (tmp->zp_size, data->dnode.endian); + } + + file->data = data; +@@ -2359,7 +2364,8 @@ fill_fs_info (struct grub_dirhook_info * + + if (mdn.dn.dn_type == DMU_OT_DSL_DIR) + { +- headobj = grub_zfs_to_cpu64 (((dsl_dir_phys_t *) DN_BONUS (&mdn.dn))->dd_head_dataset_obj, mdn.endian); ++ dsl_dir_phys_t * tmp1 = DN_BONUS (&mdn.dn); ++ headobj = grub_zfs_to_cpu64 (tmp1->dd_head_dataset_obj, mdn.endian); + + err = dnode_get (&(data->mos), headobj, DMU_OT_DSL_DATASET, &mdn, data); + if (err) +@@ -2392,7 +2398,8 @@ fill_fs_info (struct grub_dirhook_info * + } + + info->mtimeset = 1; +- info->mtime = grub_zfs_to_cpu64 (((znode_phys_t *) DN_BONUS (&dn.dn))->zp_mtime[0], dn.endian); ++ znode_phys_t * tmp2 = DN_BONUS (&dn.dn); ++ info->mtime = grub_zfs_to_cpu64 (tmp2->zp_mtime[0], dn.endian); + return; + } + +@@ -2417,7 +2424,8 @@ grub_zfs_dir (grub_device_t device, cons + + dnode_get (&(data->mdn), val, 0, &dn, data); + info.mtimeset = 1; +- info.mtime = grub_zfs_to_cpu64 (((znode_phys_t *) DN_BONUS (&dn.dn))->zp_mtime[0], dn.endian); ++ znode_phys_t * tmp1 = DN_BONUS (&dn.dn); ++ info.mtime = grub_zfs_to_cpu64 (tmp1->zp_mtime[0], dn.endian); + info.dir = (dn.dn.dn_type == DMU_OT_DIRECTORY_CONTENTS); + grub_dprintf ("zfs", "type=%d, name=%s\n", + (int)dn.dn.dn_type, (char *)name); +@@ -2480,8 +2488,9 @@ grub_zfs_dir (grub_device_t device, cons + fill_fs_info (&info, data->dnode, data); + hook ("@", &info); + +- childobj = grub_zfs_to_cpu64 (((dsl_dir_phys_t *) DN_BONUS (&data->dnode.dn))->dd_child_dir_zapobj, data->dnode.endian); +- headobj = grub_zfs_to_cpu64 (((dsl_dir_phys_t *) DN_BONUS (&data->dnode.dn))->dd_head_dataset_obj, data->dnode.endian); ++ dsl_dir_phys_t * tmp2 = DN_BONUS (&data->dnode.dn); ++ childobj = grub_zfs_to_cpu64 (tmp2->dd_child_dir_zapobj, data->dnode.endian); ++ headobj = grub_zfs_to_cpu64 (tmp2->dd_head_dataset_obj, data->dnode.endian); + err = dnode_get (&(data->mos), childobj, + DMU_OT_DSL_DIR_CHILD_MAP, &dn, data); + if (err) +@@ -2499,7 +2508,8 @@ grub_zfs_dir (grub_device_t device, cons + return err; + } + +- snapobj = grub_zfs_to_cpu64 (((dsl_dataset_phys_t *) DN_BONUS (&dn.dn))->ds_snapnames_zapobj, dn.endian); ++ dsl_dataset_phys_t * tmp3 = DN_BONUS (&dn.dn); ++ snapobj = grub_zfs_to_cpu64 (tmp3->ds_snapnames_zapobj, dn.endian); + + err = dnode_get (&(data->mos), snapobj, + DMU_OT_DSL_DS_SNAP_MAP, &dn, data);
meta/recipes-bsp/grub/files/grub-1.99-gcc-4.7.0-uninitialized-var-errors.patch new file +41 -0
41 lines not on this page · raw message
meta/recipes-bsp/grub/files/grub-1.99-gcc-4.7.0.patch new file +34 -0
@@ -0,0 +1,34 @@ +Upstream-Status: backport from fedora + +2012/04/13 +Signed-Off-by: Nitin A Kamble <[email protected]> + +From b0f4ef523b69a497d69820c09bbb07484a6b09cc Mon Sep 17 00:00:00 2001 +From: Peter Jones <[email protected]> +Date: Wed, 7 Mar 2012 09:53:50 -0500 +Subject: [PATCH] Fix gcc error that kills build. + +--- + conf/Makefile.common | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/conf/Makefile.common b/conf/Makefile.common +index 2040a2e..b3ba765 100644 +--- a/conf/Makefile.common ++++ b/conf/Makefile.common +@@ -11,10 +11,10 @@ if COND_i386_pc + CFLAGS_PLATFORM += -mrtd -mregparm=3 + endif + if COND_i386_efi +- LDFLAGS_PLATFORM = -melf_i386 ++ LDFLAGS_PLATFORM = -m32 + endif + if COND_x86_64_efi +- LDFLAGS_PLATFORM = -melf_x86_64 ++ LDFLAGS_PLATFORM = -m64 + endif + if COND_i386_qemu + CFLAGS_PLATFORM += -mrtd -mregparm=3 +-- +1.7.7.6 +
meta/recipes-bsp/grub/grub-efi-native_1.99.bb +6 -2
@@ -16,7 +16,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" # FIXME: We should be able to optionally drop freetype as a dependency DEPENDS = "help2man-native autogen-native" RDEPENDS_${PN} = "diffutils freetype" -PR = "r7" +PR = "r8" # Native packages do not normally rebuild when the target changes. # Ensure this is built once per HOST-TARGET pair.
@@ -24,7 +24,11 @@ PN := "grub-efi-${TRANSLATED_TARGET_ARCH}-native" SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \ file://grub-1.99_fix_for_automake_1.11.2.patch \ - file://grub-1.99-fpmath-sse-387-fix.patch" + file://grub-1.99-fpmath-sse-387-fix.patch \ + file://grub-1.99-gcc-4.7.0.patch \ + file://grub-1.99-gcc-4.7.0-uninitialized-var-errors.patch \ + file://grub-1.99-gcc-4.7.0-strict-aliasing-errors.patch \ + " SRC_URI[md5sum] = "ca9f2a2d571b57fc5c53212d1d22e2b5" SRC_URI[sha256sum] = "b91f420f2c51f6155e088e34ff99bea09cc1fb89585cf7c0179644e57abd28ff"
meta/recipes-bsp/grub/grub_1.99.bb +4 -1
@@ -12,11 +12,14 @@ LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" RDEPENDS_${PN} = "diffutils freetype" -PR = "r5" +PR = "r6" SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \ file://grub-install.in.patch \ file://grub-1.99-fpmath-sse-387-fix.patch \ + file://grub-1.99-gcc-4.7.0.patch \ + file://grub-1.99-gcc-4.7.0-uninitialized-var-errors.patch \ + file://grub-1.99-gcc-4.7.0-strict-aliasing-errors.patch \ file://40_custom" SRC_URI[md5sum] = "ca9f2a2d571b57fc5c53212d1d22e2b5"
Signature · 1 line
1.7.7
PATCH v2 4/4 grub-1.99: fix configure error
In reply to [email protected]From: Nitin A Kamble <[email protected]>
This commit deals with this configure error.
configure:20306: checking whether ccache i586-poky-linux-gcc -m32 -march=core2 -msse3 -mtune=generic -mfpmath=sse --sysroot=/builddisk/build/build0/tmp/sysroots/emenlow' generates calls to __enable_execute_stack()'
configure:20320: ccache i586-poky-linux-gcc -m32 -march=core2 -msse3
-mtune=generic -mfpmath=sse --sysroot=/builddisk/build/build0/tmp/sysroots/emenlow -O2 -pipe -g -feliminate-unused-debug-types -Wall -W -Wshadow -Wpointer-arith -Wmissing-prototypes -Wundef -Wstrict-prototypes -g -falign-jumps=1 -falign-loops=1 -falign-functions=1 -mno-mmx -mno-sse -mno-sse2 -mno-3dnow -mfpmath=387 -fno-dwarf2-cfi-asm -m32 -fno-stack-protector -mno-stack-arg-probe -Werror -Wno-trampolines -falign-loops=1 -S conftest.c
conftest.c:308:6: error: no previous prototype for 'g' [-Werror=missing-prototypes]
cc1: all warnings being treated as errors
configure:20323: $? = 1
configure:20327: error: ccache i586-poky-linux-gcc -m32 -march=core2
-msse3 -mtune=generic -mfpmath=sse --sysroot=/builddisk/build/build0/tmp/sysroots/emenlow failed to produce assembly code
--- .../grub-1.99-fix-enable_execute_stack-check.patch | 27 ++++++++++++++++++++ meta/recipes-bsp/grub/grub-efi-native_1.99.bb | 3 +- meta/recipes-bsp/grub/grub_1.99.bb | 4 ++- 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 meta/recipes-bsp/grub/files/grub-1.99-fix-enable_execute_stack-check.patch
meta/recipes-bsp/grub/files/grub-1.99-fix-enable_execute_stack-check.patch new file +27 -0
@@ -0,0 +1,27 @@ +Upstream-Status: Pending + + +This patch avoids this configure failure + +configure:20306: checking whether `ccache i586-poky-linux-gcc -m32 -march=core2 -msse3 -mtune=generic -mfpmath=sse --sysroot=/builddisk/build/build0/tmp/sysroots/emenlow' generates calls to `__enable_execute_stack()' +configure:20320: ccache i586-poky-linux-gcc -m32 -march=core2 -msse3 -mtune=generic -mfpmath=sse --sysroot=/builddisk/build/build0/tmp/sysroots/emenlow -O2 -pipe -g -feliminate-unused-debug-types -Wall -W -Wshadow -Wpointer-arith -Wmissing-prototypes -Wundef -Wstrict-prototypes -g -falign-jumps=1 -falign-loops=1 -falign-functions=1 -mno-mmx -mno-sse -mno-sse2 -mno-3dnow -mfpmath=387 -fno-dwarf2-cfi-asm -m32 -fno-stack-protector -mno-stack-arg-probe -Werror -Wno-trampolines -falign-loops=1 -S conftest.c +conftest.c:308:6: error: no previous prototype for 'g' [-Werror=missing-prototypes] +cc1: all warnings being treated as errors +configure:20323: $? = 1 +configure:20327: error: ccache i586-poky-linux-gcc -m32 -march=core2 -msse3 -mtune=generic -mfpmath=sse --sysroot=/builddisk/build/build0/tmp/sysroots/emenlow failed to produce assembly code + +Signed-Off-By: Nitin A Kamble <[email protected]> +2012/04/13 + +Index: grub-1.99/acinclude.m4 +=================================================================== +--- grub-1.99.orig/acinclude.m4 ++++ grub-1.99/acinclude.m4 +@@ -317,6 +317,7 @@ dnl Check if the C compiler generates ca + AC_DEFUN([grub_CHECK_ENABLE_EXECUTE_STACK],[ + AC_MSG_CHECKING([whether `$CC' generates calls to `__enable_execute_stack()']) + AC_LANG_CONFTEST([[ ++void g (int); + void f (int (*p) (void)); + void g (int i) + {
meta/recipes-bsp/grub/grub-efi-native_1.99.bb +2 -1
@@ -16,7 +16,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" # FIXME: We should be able to optionally drop freetype as a dependency DEPENDS = "help2man-native autogen-native" RDEPENDS_${PN} = "diffutils freetype" -PR = "r8" +PR = "r9" # Native packages do not normally rebuild when the target changes. # Ensure this is built once per HOST-TARGET pair.
@@ -28,6 +28,7 @@ SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \ file://grub-1.99-gcc-4.7.0.patch \ file://grub-1.99-gcc-4.7.0-uninitialized-var-errors.patch \ file://grub-1.99-gcc-4.7.0-strict-aliasing-errors.patch \ + file://grub-1.99-fix-enable_execute_stack-check.patch \ " SRC_URI[md5sum] = "ca9f2a2d571b57fc5c53212d1d22e2b5"
meta/recipes-bsp/grub/grub_1.99.bb +3 -1
@@ -12,14 +12,16 @@ LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" RDEPENDS_${PN} = "diffutils freetype" -PR = "r6" +PR = "r7" SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \ file://grub-install.in.patch \ + file://grub-1.99_fix_for_automake_1.11.2.patch \ file://grub-1.99-fpmath-sse-387-fix.patch \ file://grub-1.99-gcc-4.7.0.patch \ file://grub-1.99-gcc-4.7.0-uninitialized-var-errors.patch \ file://grub-1.99-gcc-4.7.0-strict-aliasing-errors.patch \ + file://grub-1.99-fix-enable_execute_stack-check.patch \ file://40_custom" SRC_URI[md5sum] = "ca9f2a2d571b57fc5c53212d1d22e2b5"
Signature · 1 line
1.7.7
Re: [v2 1/4] eglibc: fix builds on fedora 17 alpha
In reply to [email protected]Quoted 34 lines · On Sat, 2012-04-14 at 01:59 -0700, [email protected] wrote:
From: Nitin A Kamble <[email protected]>
Generally distros keep perl at /sur/bin/perl
Fedora 17 alpha also has/bin/perlthis causes eglibc build on such distros to put perl interpreter path in the perl scripts as
/bin/perlBut we set perl location for target as
/usr/bin/perlThis mismatch of perl path causes failure of rootfs image creation like this:
| error: Failed dependencies:
|/bin/perlis needed by eglibc-utils-2.13-r23+svnr15508.i586
NOTE: package core-image-sato-1.0-r0: taskdo_rootfs: Failed
ERROR: Task 8 (/home/nitin/prj/poky.git/meta/recipes-sato/images/core-image-sato.bb,do_rootfs) failed with exit code '1'This Fixes bug : [YOCTO #2286]
Signed-off-by Nitin A Kamble <[email protected]>--- meta/recipes-core/eglibc/eglibc-package.inc | 5 +++++ meta/recipes-core/eglibc/eglibc_2.13.bb | 2 +- meta/recipes-core/eglibc/eglibc_2.15.bb | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-)meta/recipes-core/eglibc/eglibc-package.inc +0
-0
meta/recipes-core/eglibc/eglibc-package.inc do_install_append () { · line 84
Quoted 9 lines
meta/recipes-core/eglibc/eglibc-package.inc +5
-0@@ -76,6 +76,11 @@ do_install_append () { rm -f ${D}${sysconfdir}/localtime oe_multilib_header bits/syscall.h + + if [ -f ${D}${bindir}/mtrace ] + then + sed -e "s# /bin/perl# ${bindir}/perl#" -i ${D}${bindir}/mtrace + fi }
I'd recommend something like:
sed -i -e '1s,#!.*perl,#! ${bindir}/perl,' ${D}${bindir}/mtrace
which will only match on the first line and matches .*perl rather than /bin/perl.
Cheers,
Richard
Re: [v2 1/4] eglibc: fix builds on fedora 17 alpha
Quoted 47 lines · Richard Purdie
Quoted 34 lines · On Sat, 2012-04-14 at 01:59 -0700, [email protected] wrote:
From: Nitin A Kamble <[email protected]>
Generally distros keep perl at /sur/bin/perl
Fedora 17 alpha also has/bin/perlthis causes eglibc build on such distros to put perl interpreter path in the perl scripts as
/bin/perlBut we set perl location for target as
/usr/bin/perlThis mismatch of perl path causes failure of rootfs image creation like this:
| error: Failed dependencies:
|/bin/perlis needed by eglibc-utils-2.13-r23+svnr15508.i586
NOTE: package core-image-sato-1.0-r0: taskdo_rootfs: Failed
ERROR: Task 8 (/home/nitin/prj/poky.git/meta/recipes-sato/images/core-image-sato.bb,do_rootfs) failed with exit code '1'This Fixes bug : [YOCTO #2286]
Signed-off-by Nitin A Kamble <[email protected]>--- meta/recipes-core/eglibc/eglibc-package.inc | 5 +++++ meta/recipes-core/eglibc/eglibc_2.13.bb | 2 +- meta/recipes-core/eglibc/eglibc_2.15.bb | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-)meta/recipes-core/eglibc/eglibc-package.inc +0
-0meta/recipes-core/eglibc/eglibc-package.inc do_install_append () { · line 84
Quoted 9 lines
meta/recipes-core/eglibc/eglibc-package.inc +5
-0@@ -76,6 +76,11 @@ do_install_append () { rm -f ${D}${sysconfdir}/localtime oe_multilib_header bits/syscall.h + + if [ -f ${D}${bindir}/mtrace ] + then + sed -e "s# /bin/perl# ${bindir}/perl#" -i ${D}${bindir}/mtrace + fi }I'd recommend something like:
Quoted 4 lines
sed -i -e '1s,#!.*perl,#! ${bindir}/perl,' ${D}${bindir}/mtrace
which will only match on the first line and matches .*perl rather than
/bin/perl.
I found some other issues with this and the contents of the -nativesdk eglibc-utils package. I've merged an updated version which uses ${bindir}/env perl and hardcodes /usr/bin/env in the -nativesdk case (which is an assumption nativesdk makes in general).
Cheers,
Richard
Saul Wold
AppliedQuoted 34 lines · On 04/14/2012 01:59 AM, [email protected] wrote:
From: Nitin A Kamble<[email protected]>
These are various grub fixes for correctly building grub recipes for various targets. These are tested for emenlow, sugerbay, qemux86, qemux86-64 machines
The eglibc commits is thes same as in the v1 pull request.
Nitin
The following changes since commit
ee71422b9893f9f77173fb2612d1ffbbc68643c3:linux-yocto: allow .cfg, .scc, .patch and defconfigs to be processed in order (2012-04-13 22:44:46 +0100)are available in the git repository at:
git://git.pokylinux.org/poky-contribnitin/grub3
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=nitin/grub3Nitin A Kamble (4):
eglibc: fix builds on fedora 17 alpha grub-1.99: use gcc-cross for building the target binaries grub-efi-native, grub: fix build with gcc 4.7 grub-1.99: fix configure error.../grub-1.99-fix-enable_execute_stack-check.patch | 27 ++++ .../grub/files/grub-1.99-fpmath-sse-387-fix.patch | 37 +++++ ...rub-1.99-gcc-4.7.0-strict-aliasing-errors.patch | 147 ++++++++++++++++++++ ...b-1.99-gcc-4.7.0-uninitialized-var-errors.patch | 41 ++++++ .../grub/files/grub-1.99-gcc-4.7.0.patch | 34 +++++ meta/recipes-bsp/grub/grub-efi-native_1.99.bb | 10 +- meta/recipes-bsp/grub/grub_1.99.bb | 10 +- meta/recipes-core/eglibc/eglibc-package.inc | 5 + meta/recipes-core/eglibc/eglibc_2.13.bb | 2 +- meta/recipes-core/eglibc/eglibc_2.15.bb | 2 +- 10 files changed, 309 insertions(+), 6 deletions(-)
Quoted 6 lines
create mode 100644
meta/recipes-bsp/grub/files/grub-1.99-fix-enable_execute_stack-check.patchcreate mode 100644meta/recipes-bsp/grub/files/grub-1.99-fpmath-sse-387-fix.patchcreate mode 100644meta/recipes-bsp/grub/files/grub-1.99-gcc-4.7.0-strict-aliasing-errors.patchcreate mode 100644meta/recipes-bsp/grub/files/grub-1.99-gcc-4.7.0-uninitialized-var-errors.patchcreate mode 100644meta/recipes-bsp/grub/files/grub-1.99-gcc-4.7.0.patch
Merged into OE-Core with tweaks by RP to the eglibc patch.
Thanks
Sau!