diff options
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 @@ | |||
1 | From 3bac4caa2bc64db313aaee54fffb90383e118517 Mon Sep 17 00:00:00 2001 | ||
2 | From: Felix Janda <felix.janda@posteo.de> | ||
3 | Date: Thu, 22 Jan 2015 19:54:36 +0100 | ||
4 | Subject: [PATCH] Remove direct _llseek code and require long filesystem libc. | ||
5 | |||
6 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
7 | --- | ||
8 | Upstream-Status: Backport | ||
9 | configure.ac | 8 ++++++++ | ||
10 | grub-core/osdep/unix/hostdisk.c | 24 ------------------------ | ||
11 | 4 files changed, 13 insertions(+), 24 deletions(-) | ||
12 | |||
13 | Index: 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 | ||
32 | Index: 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 | ||
36 | EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '--enable-largefile ac_cv_sizeof_off_t=8', '--disable-largefile', d)}" | ||
37 | |||
36 | do_install_class-native() { | 38 | do_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 @@ | |||
1 | From fb7b827a56b1f92f882d0f5ef130acc968b23293 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Wed, 13 Jan 2016 19:17:31 +0000 | ||
4 | Subject: [PATCH] Disable -mfpmath=sse as well when SSE is disabled | ||
5 | |||
6 | Fixes | ||
7 | |||
8 | configure: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 | ||
11 | conftest -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 | ||
19 | conftest.c:1:0: error: SSE instruction set disabled, using 387 | ||
20 | arithmetics [-Werror] | ||
21 | cc1: all warnings being treated as errors | ||
22 | |||
23 | Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> | ||
24 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
25 | --- | ||
26 | Upstream-Status: Pending | ||
27 | |||
28 | configure.ac | 2 +- | ||
29 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
30 | |||
31 | diff --git a/configure.ac b/configure.ac | ||
32 | index 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 | -- | ||
45 | 2.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 @@ | |||
1 | From b512c77222a8b133d7dd71a0dcef081a921d97d4 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Wed, 13 Jan 2016 19:28:00 +0000 | ||
4 | Subject: [PATCH] grub.d/10_linux.in: add oe's kernel name | ||
5 | |||
6 | Our kernel's name is bzImage, we need add it to grub.d/10_linux.in so | ||
7 | that the grub-mkconfig and grub-install can work correctly. | ||
8 | |||
9 | We only need add the bzImage to util/grub.d/10_linux.in, but also add it | ||
10 | to util/grub.d/20_linux_xen.in to keep compatibility. | ||
11 | |||
12 | Signed-off-by: Robert Yang <liezhi.yang@windriver.com> | ||
13 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
14 | --- | ||
15 | Upstream-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 | |||
21 | diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in | ||
22 | index 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 | ||
41 | diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in | ||
42 | index 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 | -- | ||
55 | 2.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 | ||
33 | DEPENDS = "flex-native bison-native xz" | 34 | DEPENDS = "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" | |||
6 | EXTRA_OECONF = "--with-platform=pc --disable-grub-mkfont --program-prefix="" \ | 6 | EXTRA_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 | ||
9 | EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '--enable-largefile ac_cv_sizeof_off_t=8', '--disable-largefile', d)}" | ||
10 | |||
9 | do_install_append () { | 11 | do_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" | |||
5 | DEFAULT_PREFERENCE = "-1" | 5 | DEFAULT_PREFERENCE = "-1" |
6 | DEFAULT_PREFERENCE_arm = "1" | 6 | DEFAULT_PREFERENCE_arm = "1" |
7 | 7 | ||
8 | FILESEXTRAPATHS =. "${FILE_DIRNAME}/grub-git:" | ||
9 | |||
8 | PV = "2.00+${SRCPV}" | 10 | PV = "2.00+${SRCPV}" |
9 | SRCREV = "87de66d9d83446ecddb29cfbdf7369102c8e209e" | 11 | SRCREV = "b95e92678882f56056c64ae29092bc9cf129905f" |
10 | SRC_URI = "git://git.savannah.gnu.org/grub.git \ | 12 | SRC_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 | ||
17 | S = "${WORKDIR}/git" | 18 | S = "${WORKDIR}/git" |
@@ -30,6 +31,8 @@ GRUBPLATFORM ??= "pc" | |||
30 | EXTRA_OECONF = "--with-platform=${GRUBPLATFORM} --disable-grub-mkfont --program-prefix="" \ | 31 | EXTRA_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 | ||
34 | EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'largefile', '--enable-largefile ac_cv_sizeof_off_t=8', '--disable-largefile', d)}" | ||
35 | |||
33 | do_configure_prepend() { | 36 | do_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 | ||
38 | do_install_append () { | 41 | do_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 |