summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-bsp/grub/files/0001-Remove-direct-_llseek-code-and-require-long-filesyst.patch81
-rw-r--r--meta/recipes-bsp/grub/grub-efi_2.00.bb2
-rw-r--r--meta/recipes-bsp/grub/grub-git/0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch46
-rw-r--r--meta/recipes-bsp/grub/grub-git/0001-grub.d-10_linux.in-add-oe-s-kernel-name.patch56
-rw-r--r--meta/recipes-bsp/grub/grub2.inc1
-rw-r--r--meta/recipes-bsp/grub/grub_2.00.bb2
-rw-r--r--meta/recipes-bsp/grub/grub_git.bb13
7 files changed, 196 insertions, 5 deletions
diff --git a/meta/recipes-bsp/grub/files/0001-Remove-direct-_llseek-code-and-require-long-filesyst.patch b/meta/recipes-bsp/grub/files/0001-Remove-direct-_llseek-code-and-require-long-filesyst.patch
new file mode 100644
index 0000000000..9eabce977b
--- /dev/null
+++ b/meta/recipes-bsp/grub/files/0001-Remove-direct-_llseek-code-and-require-long-filesyst.patch
@@ -0,0 +1,81 @@
1From 3bac4caa2bc64db313aaee54fffb90383e118517 Mon Sep 17 00:00:00 2001
2From: Felix Janda <felix.janda@posteo.de>
3Date: Thu, 22 Jan 2015 19:54:36 +0100
4Subject: [PATCH] Remove direct _llseek code and require long filesystem libc.
5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7---
8Upstream-Status: Backport
9 configure.ac | 8 ++++++++
10 grub-core/osdep/unix/hostdisk.c | 24 ------------------------
11 4 files changed, 13 insertions(+), 24 deletions(-)
12
13Index: grub-2.00/configure.ac
14===================================================================
15--- grub-2.00.orig/configure.ac
16+++ grub-2.00/configure.ac
17@@ -306,6 +306,14 @@ if test x$grub_cv_apple_cc = xyes ; then
18 HOST_LDFLAGS="$HOST_LDFLAGS -Wl,-allow_stack_execute"
19 fi
20
21+case "$host_os" in
22+ cygwin | windows* | mingw32* | aros*)
23+ ;;
24+ *)
25+ AC_CHECK_SIZEOF(off_t)
26+ test x"$ac_cv_sizeof_off_t" = x8 || AC_MSG_ERROR([Large file support is required]);;
27+esac
28+
29 if test x$USE_NLS = xno; then
30 HOST_CFLAGS="$HOST_CFLAGS -fno-builtin-gettext"
31 fi
32Index: grub-2.00/grub-core/kern/emu/hostdisk.c
33===================================================================
34--- grub-2.00.orig/grub-core/kern/emu/hostdisk.c
35+++ grub-2.00/grub-core/kern/emu/hostdisk.c
36@@ -44,11 +44,6 @@
37 #ifdef __linux__
38 # include <sys/ioctl.h> /* ioctl */
39 # include <sys/mount.h>
40-# if !defined(__GLIBC__) || \
41- ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))
42-/* Maybe libc doesn't have large file support. */
43-# include <linux/unistd.h> /* _llseek */
44-# endif /* (GLIBC < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR < 1)) */
45 # ifndef BLKFLSBUF
46 # define BLKFLSBUF _IO (0x12,97) /* flush buffer cache */
47 # endif /* ! BLKFLSBUF */
48@@ -761,25 +756,6 @@ linux_find_partition (char *dev, grub_di
49 }
50 #endif /* __linux__ */
51
52-#if defined(__linux__) && (!defined(__GLIBC__) || \
53- ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))))
54- /* Maybe libc doesn't have large file support. */
55-grub_err_t
56-grub_util_fd_seek (int fd, const char *name, grub_uint64_t off)
57-{
58- loff_t offset, result;
59- static int _llseek (uint filedes, ulong hi, ulong lo,
60- loff_t *res, uint wh);
61- _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo,
62- loff_t *, res, uint, wh);
63-
64- offset = (loff_t) off;
65- if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET))
66- return grub_error (GRUB_ERR_BAD_DEVICE, N_("cannot seek `%s': %s"),
67- name, strerror (errno));
68- return GRUB_ERR_NONE;
69-}
70-#else
71 grub_err_t
72 grub_util_fd_seek (int fd, const char *name, grub_uint64_t off)
73 {
74@@ -790,7 +766,6 @@ grub_util_fd_seek (int fd, const char *n
75 name, strerror (errno));
76 return 0;
77 }
78-#endif
79
80 static void
81 flush_initial_buffer (const char *os_dev __attribute__ ((unused)))
diff --git a/meta/recipes-bsp/grub/grub-efi_2.00.bb b/meta/recipes-bsp/grub/grub-efi_2.00.bb
index ecc6c9a431..4e80e1815e 100644
--- a/meta/recipes-bsp/grub/grub-efi_2.00.bb
+++ b/meta/recipes-bsp/grub/grub-efi_2.00.bb
@@ -33,6 +33,8 @@ EXTRA_OECONF = "--with-platform=efi --disable-grub-mkfont \
33 --enable-efiemu=no --program-prefix='' \ 33 --enable-efiemu=no --program-prefix='' \
34 --enable-liblzma=no --enable-device-mapper=no --enable-libzfs=no" 34 --enable-liblzma=no --enable-device-mapper=no --enable-libzfs=no"
35 35
36EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '--enable-largefile ac_cv_sizeof_off_t=8', '--disable-largefile', d)}"
37
36do_install_class-native() { 38do_install_class-native() {
37 install -d ${D}${bindir} 39 install -d ${D}${bindir}
38 install -m 755 grub-mkimage ${D}${bindir} 40 install -m 755 grub-mkimage ${D}${bindir}
diff --git a/meta/recipes-bsp/grub/grub-git/0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch b/meta/recipes-bsp/grub/grub-git/0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch
new file mode 100644
index 0000000000..87ec29e32b
--- /dev/null
+++ b/meta/recipes-bsp/grub/grub-git/0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch
@@ -0,0 +1,46 @@
1From fb7b827a56b1f92f882d0f5ef130acc968b23293 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 13 Jan 2016 19:17:31 +0000
4Subject: [PATCH] Disable -mfpmath=sse as well when SSE is disabled
5
6Fixes
7
8configure:20574: i586-poky-linux-gcc -m32 -march=core2 -msse3
9-mtune=generic -mfpmath=sse
10--sysroot=/usr/local/dev/yocto/grubtest2/build/tmp/sysroots/emenlow -o
11conftest -O2 -pipe -g -feliminate-unused-debug-types -Wall -W -Wshadow
12-Wpointer-arith -Wmissing-prototypes -Wundef -Wstrict-prototypes -g
13-falign-jumps=1 -falign-loops=1 -falign-functions=1 -mno-mmx -mno-sse
14-mno-sse2 -mno-3dnow -fno-dwarf2-cfi-asm -m32 -fno-stack-protector
15-mno-stack-arg-probe -Werror -nostdlib -Wl,--defsym,___main=0x8100
16-Wall -W -I$(top_srcdir)/include -I$(top_builddir)/include
17-DGRUB_MACHINE_PCBIOS=1 -DGRUB_MACHINE=I386_PC -Wl,-O1
18-Wl,--hash-style=gnu -Wl,--as-needed conftest.c >&5
19conftest.c:1:0: error: SSE instruction set disabled, using 387
20arithmetics [-Werror]
21cc1: all warnings being treated as errors
22
23Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
24Signed-off-by: Khem Raj <raj.khem@gmail.com>
25---
26Upstream-Status: Pending
27
28 configure.ac | 2 +-
29 1 file changed, 1 insertion(+), 1 deletion(-)
30
31diff --git a/configure.ac b/configure.ac
32index 26d2f33..9ce56de 100644
33--- a/configure.ac
34+++ b/configure.ac
35@@ -783,7 +783,7 @@ fi
36 if ( test "x$target_cpu" = xi386 || test "x$target_cpu" = xx86_64 ) && test "x$platform" != xemu; then
37 # Some toolchains enable these features by default, but they need
38 # registers that aren't set up properly in GRUB.
39- TARGET_CFLAGS="$TARGET_CFLAGS -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-3dnow"
40+ TARGET_CFLAGS="$TARGET_CFLAGS -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-3dnow -mfpmath=387"
41 fi
42
43 # GRUB doesn't use float or doubles at all. Yet some toolchains may decide
44--
452.7.0
46
diff --git a/meta/recipes-bsp/grub/grub-git/0001-grub.d-10_linux.in-add-oe-s-kernel-name.patch b/meta/recipes-bsp/grub/grub-git/0001-grub.d-10_linux.in-add-oe-s-kernel-name.patch
new file mode 100644
index 0000000000..d5bfaa177a
--- /dev/null
+++ b/meta/recipes-bsp/grub/grub-git/0001-grub.d-10_linux.in-add-oe-s-kernel-name.patch
@@ -0,0 +1,56 @@
1From b512c77222a8b133d7dd71a0dcef081a921d97d4 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 13 Jan 2016 19:28:00 +0000
4Subject: [PATCH] grub.d/10_linux.in: add oe's kernel name
5
6Our kernel's name is bzImage, we need add it to grub.d/10_linux.in so
7that the grub-mkconfig and grub-install can work correctly.
8
9We only need add the bzImage to util/grub.d/10_linux.in, but also add it
10to util/grub.d/20_linux_xen.in to keep compatibility.
11
12Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14---
15Upstream-Status: Inappropriate [OE specific]
16
17 util/grub.d/10_linux.in | 6 +++---
18 util/grub.d/20_linux_xen.in | 2 +-
19 2 files changed, 4 insertions(+), 4 deletions(-)
20
21diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
22index 859b608..946be5d 100644
23--- a/util/grub.d/10_linux.in
24+++ b/util/grub.d/10_linux.in
25@@ -148,12 +148,12 @@ machine=`uname -m`
26 case "x$machine" in
27 xi?86 | xx86_64)
28 list=
29- for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do
30+ for i in /boot/bzImage-* /bzImage-* /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do
31 if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi
32 done ;;
33- *)
34+ *)
35 list=
36- for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do
37+ for i in /boot/bzImage-* /boot/vmlinuz-* /boot/vmlinux-* /bzImage-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do
38 if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi
39 done ;;
40 esac
41diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
42index f532fb9..1994244 100644
43--- a/util/grub.d/20_linux_xen.in
44+++ b/util/grub.d/20_linux_xen.in
45@@ -138,7 +138,7 @@ EOF
46 }
47
48 linux_list=
49-for i in /boot/vmlinu[xz]-* /vmlinu[xz]-* /boot/kernel-*; do
50+for i in /boot/bzImage[xz]-* /bzImage[xz]-* /boot/vmlinu[xz]-* /vmlinu[xz]-* /boot/kernel-*; do
51 if grub_file_is_not_garbage "$i"; then
52 basename=$(basename $i)
53 version=$(echo $basename | sed -e "s,^[^0-9]*-,,g")
54--
552.7.0
56
diff --git a/meta/recipes-bsp/grub/grub2.inc b/meta/recipes-bsp/grub/grub2.inc
index a8c41f8e28..84a47273a5 100644
--- a/meta/recipes-bsp/grub/grub2.inc
+++ b/meta/recipes-bsp/grub/grub2.inc
@@ -28,6 +28,7 @@ SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \
28 file://0001-parse_dhcp_vendor-Add-missing-const-qualifiers.patch \ 28 file://0001-parse_dhcp_vendor-Add-missing-const-qualifiers.patch \
29 file://grub2-fix-initrd-size-bug.patch \ 29 file://grub2-fix-initrd-size-bug.patch \
30 file://0001-Fix-CVE-2015-8370-Grub2-user-pass-vulnerability.patch \ 30 file://0001-Fix-CVE-2015-8370-Grub2-user-pass-vulnerability.patch \
31 file://0001-Remove-direct-_llseek-code-and-require-long-filesyst.patch \
31 " 32 "
32 33
33DEPENDS = "flex-native bison-native xz" 34DEPENDS = "flex-native bison-native xz"
diff --git a/meta/recipes-bsp/grub/grub_2.00.bb b/meta/recipes-bsp/grub/grub_2.00.bb
index c1be13304a..addc1b2833 100644
--- a/meta/recipes-bsp/grub/grub_2.00.bb
+++ b/meta/recipes-bsp/grub/grub_2.00.bb
@@ -6,6 +6,8 @@ PR = "r1"
6EXTRA_OECONF = "--with-platform=pc --disable-grub-mkfont --program-prefix="" \ 6EXTRA_OECONF = "--with-platform=pc --disable-grub-mkfont --program-prefix="" \
7 --enable-liblzma=no --enable-device-mapper=no --enable-libzfs=no" 7 --enable-liblzma=no --enable-device-mapper=no --enable-libzfs=no"
8 8
9EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '--enable-largefile ac_cv_sizeof_off_t=8', '--disable-largefile', d)}"
10
9do_install_append () { 11do_install_append () {
10 install -d ${D}${sysconfdir}/grub.d 12 install -d ${D}${sysconfdir}/grub.d
11} 13}
diff --git a/meta/recipes-bsp/grub/grub_git.bb b/meta/recipes-bsp/grub/grub_git.bb
index 6a0e3ee036..3ebab7f2f8 100644
--- a/meta/recipes-bsp/grub/grub_git.bb
+++ b/meta/recipes-bsp/grub/grub_git.bb
@@ -5,13 +5,14 @@ DEPENDS += "autogen-native"
5DEFAULT_PREFERENCE = "-1" 5DEFAULT_PREFERENCE = "-1"
6DEFAULT_PREFERENCE_arm = "1" 6DEFAULT_PREFERENCE_arm = "1"
7 7
8FILESEXTRAPATHS =. "${FILE_DIRNAME}/grub-git:"
9
8PV = "2.00+${SRCPV}" 10PV = "2.00+${SRCPV}"
9SRCREV = "87de66d9d83446ecddb29cfbdf7369102c8e209e" 11SRCREV = "b95e92678882f56056c64ae29092bc9cf129905f"
10SRC_URI = "git://git.savannah.gnu.org/grub.git \ 12SRC_URI = "git://git.savannah.gnu.org/grub.git \
11 file://grub-2.00-fpmath-sse-387-fix.patch \ 13 file://0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch \
12 file://autogen.sh-exclude-pc.patch \ 14 file://autogen.sh-exclude-pc.patch \
13 file://grub-2.00-add-oe-kernel.patch \ 15 file://0001-grub.d-10_linux.in-add-oe-s-kernel-name.patch \
14 file://0001-Fix-build-with-glibc-2.20.patch \
15 " 16 "
16 17
17S = "${WORKDIR}/git" 18S = "${WORKDIR}/git"
@@ -30,6 +31,8 @@ GRUBPLATFORM ??= "pc"
30EXTRA_OECONF = "--with-platform=${GRUBPLATFORM} --disable-grub-mkfont --program-prefix="" \ 31EXTRA_OECONF = "--with-platform=${GRUBPLATFORM} --disable-grub-mkfont --program-prefix="" \
31 --enable-liblzma=no --enable-device-mapper=no --enable-libzfs=no" 32 --enable-liblzma=no --enable-device-mapper=no --enable-libzfs=no"
32 33
34EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '--enable-largefile ac_cv_sizeof_off_t=8', '--disable-largefile', d)}"
35
33do_configure_prepend() { 36do_configure_prepend() {
34 ( cd ${S} 37 ( cd ${S}
35 ${S}/autogen.sh ) 38 ${S}/autogen.sh )
@@ -37,7 +40,7 @@ do_configure_prepend() {
37 40
38do_install_append () { 41do_install_append () {
39 install -d ${D}${sysconfdir}/grub.d 42 install -d ${D}${sysconfdir}/grub.d
40 43 rm -rf ${D}${libdir}/charset.alias
41} 44}
42 45
43# debugedit chokes on bare metal binaries 46# debugedit chokes on bare metal binaries