grub-1.99: use gcc-cross for building the target binaries

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.

(From OE-Core rev: 26ae0e53411c1ea3afbb2e0c6d9dc2f1b0690751)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Nitin A Kamble 2012-04-14 01:59:06 -07:00 committed by Richard Purdie
parent 7503db6713
commit 53d629496f
3 changed files with 43 additions and 4 deletions

View File

@ -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 <nitin.a.kamble@intel.com>
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

View File

@ -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"

View File

@ -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