mirror of
https://git.yoctoproject.org/poky
synced 2026-02-10 02:33:02 +01:00
grub: Update to 2.02
Drop git recipe, add arm bits to 2.02 itself (From OE-Core rev: 4f27e4042dfb39caa71c7c6eb0a327de6af4d563) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -1,45 +0,0 @@
|
||||
From 6186bcf1bcaaa0f16e79339e07c64c841d4d957d Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Kanavin <alex.kanavin@gmail.com>
|
||||
Date: Fri, 2 Dec 2016 20:52:40 +0200
|
||||
Subject: [PATCH] Enforce -no-pie, if the compiler supports it.
|
||||
|
||||
Add a -no-pie as recent (2 Dec 2016) Debian testing compiler
|
||||
seems to default to enabling PIE when linking. See
|
||||
https://wiki.ubuntu.com/SecurityTeam/PIE
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
|
||||
---
|
||||
acinclude.m4 | 2 +-
|
||||
configure.ac | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/acinclude.m4 b/acinclude.m4
|
||||
index 19200b0..a713923 100644
|
||||
--- a/acinclude.m4
|
||||
+++ b/acinclude.m4
|
||||
@@ -416,7 +416,7 @@ int main() {
|
||||
|
||||
[# `$CC -c -o ...' might not be portable. But, oh, well... Is calling
|
||||
# `ac_compile' like this correct, after all?
|
||||
-if eval "$ac_compile -S -o conftest.s" 2> /dev/null; then]
|
||||
+if eval "$ac_compile -S -o conftest.s" 2> /dev/null && eval "$CC -dumpspecs 2>/dev/null | grep -e no-pie" ; then]
|
||||
AC_MSG_RESULT([yes])
|
||||
[# Should we clear up other files as well, having called `AC_LANG_CONFTEST'?
|
||||
rm -f conftest.s
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index df20991..506c6b4 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -603,7 +603,7 @@ grub_CHECK_PIE
|
||||
[# Need that, because some distributions ship compilers that include
|
||||
# `-fPIE' in the default specs.
|
||||
if [ x"$pie_possible" = xyes ]; then
|
||||
- TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIE"
|
||||
+ TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIE -no-pie"
|
||||
fi]
|
||||
|
||||
# Position independent executable.
|
||||
--
|
||||
2.10.2
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
Upstream-Status: Accepted
|
||||
CVE: CVE-2015-8370
|
||||
Signed-off-by: Awais Belal <awais_belal@mentor.com>
|
||||
|
||||
From 451d80e52d851432e109771bb8febafca7a5f1f2 Mon Sep 17 00:00:00 2001
|
||||
From: Hector Marco-Gisbert <hecmargi@upv.es>
|
||||
Date: Wed, 16 Dec 2015 04:57:18 +0000
|
||||
Subject: Fix security issue when reading username and password
|
||||
|
||||
This patch fixes two integer underflows at:
|
||||
* grub-core/lib/crypto.c
|
||||
* grub-core/normal/auth.c
|
||||
|
||||
CVE-2015-8370
|
||||
|
||||
Signed-off-by: Hector Marco-Gisbert <hecmargi@upv.es>
|
||||
Signed-off-by: Ismael Ripoll-Ripoll <iripoll@disca.upv.es>
|
||||
Also-By: Andrey Borzenkov <arvidjaar@gmail.com>
|
||||
---
|
||||
diff --git a/grub-core/lib/crypto.c b/grub-core/lib/crypto.c
|
||||
index 010e550..683a8aa 100644
|
||||
--- a/grub-core/lib/crypto.c
|
||||
+++ b/grub-core/lib/crypto.c
|
||||
@@ -470,7 +470,8 @@ grub_password_get (char buf[], unsigned buf_size)
|
||||
|
||||
if (key == '\b')
|
||||
{
|
||||
- cur_len--;
|
||||
+ if (cur_len)
|
||||
+ cur_len--;
|
||||
continue;
|
||||
}
|
||||
|
||||
diff --git a/grub-core/normal/auth.c b/grub-core/normal/auth.c
|
||||
index c6bd96e..8615c48 100644
|
||||
--- a/grub-core/normal/auth.c
|
||||
+++ b/grub-core/normal/auth.c
|
||||
@@ -174,8 +174,11 @@ grub_username_get (char buf[], unsigned buf_size)
|
||||
|
||||
if (key == '\b')
|
||||
{
|
||||
- cur_len--;
|
||||
- grub_printf ("\b");
|
||||
+ if (cur_len)
|
||||
+ {
|
||||
+ cur_len--;
|
||||
+ grub_printf ("\b");
|
||||
+ }
|
||||
continue;
|
||||
}
|
||||
|
||||
--
|
||||
cgit v0.9.0.2
|
||||
@@ -1,81 +0,0 @@
|
||||
From 3bac4caa2bc64db313aaee54fffb90383e118517 Mon Sep 17 00:00:00 2001
|
||||
From: Felix Janda <felix.janda@posteo.de>
|
||||
Date: Thu, 22 Jan 2015 19:54:36 +0100
|
||||
Subject: [PATCH] Remove direct _llseek code and require long filesystem libc.
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
Upstream-Status: Backport
|
||||
configure.ac | 8 ++++++++
|
||||
grub-core/osdep/unix/hostdisk.c | 24 ------------------------
|
||||
4 files changed, 13 insertions(+), 24 deletions(-)
|
||||
|
||||
Index: grub-2.00/configure.ac
|
||||
===================================================================
|
||||
--- grub-2.00.orig/configure.ac
|
||||
+++ grub-2.00/configure.ac
|
||||
@@ -306,6 +306,14 @@ if test x$grub_cv_apple_cc = xyes ; then
|
||||
HOST_LDFLAGS="$HOST_LDFLAGS -Wl,-allow_stack_execute"
|
||||
fi
|
||||
|
||||
+case "$host_os" in
|
||||
+ cygwin | windows* | mingw32* | aros*)
|
||||
+ ;;
|
||||
+ *)
|
||||
+ AC_CHECK_SIZEOF(off_t)
|
||||
+ test x"$ac_cv_sizeof_off_t" = x8 || AC_MSG_ERROR([Large file support is required]);;
|
||||
+esac
|
||||
+
|
||||
if test x$USE_NLS = xno; then
|
||||
HOST_CFLAGS="$HOST_CFLAGS -fno-builtin-gettext"
|
||||
fi
|
||||
Index: grub-2.00/grub-core/kern/emu/hostdisk.c
|
||||
===================================================================
|
||||
--- grub-2.00.orig/grub-core/kern/emu/hostdisk.c
|
||||
+++ grub-2.00/grub-core/kern/emu/hostdisk.c
|
||||
@@ -44,11 +44,6 @@
|
||||
#ifdef __linux__
|
||||
# include <sys/ioctl.h> /* ioctl */
|
||||
# include <sys/mount.h>
|
||||
-# if !defined(__GLIBC__) || \
|
||||
- ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))
|
||||
-/* Maybe libc doesn't have large file support. */
|
||||
-# include <linux/unistd.h> /* _llseek */
|
||||
-# endif /* (GLIBC < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR < 1)) */
|
||||
# ifndef BLKFLSBUF
|
||||
# define BLKFLSBUF _IO (0x12,97) /* flush buffer cache */
|
||||
# endif /* ! BLKFLSBUF */
|
||||
@@ -761,25 +756,6 @@ linux_find_partition (char *dev, grub_di
|
||||
}
|
||||
#endif /* __linux__ */
|
||||
|
||||
-#if defined(__linux__) && (!defined(__GLIBC__) || \
|
||||
- ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))))
|
||||
- /* Maybe libc doesn't have large file support. */
|
||||
-grub_err_t
|
||||
-grub_util_fd_seek (int fd, const char *name, grub_uint64_t off)
|
||||
-{
|
||||
- loff_t offset, result;
|
||||
- static int _llseek (uint filedes, ulong hi, ulong lo,
|
||||
- loff_t *res, uint wh);
|
||||
- _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo,
|
||||
- loff_t *, res, uint, wh);
|
||||
-
|
||||
- offset = (loff_t) off;
|
||||
- if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET))
|
||||
- return grub_error (GRUB_ERR_BAD_DEVICE, N_("cannot seek `%s': %s"),
|
||||
- name, strerror (errno));
|
||||
- return GRUB_ERR_NONE;
|
||||
-}
|
||||
-#else
|
||||
grub_err_t
|
||||
grub_util_fd_seek (int fd, const char *name, grub_uint64_t off)
|
||||
{
|
||||
@@ -790,7 +766,6 @@ grub_util_fd_seek (int fd, const char *n
|
||||
name, strerror (errno));
|
||||
return 0;
|
||||
}
|
||||
-#endif
|
||||
|
||||
static void
|
||||
flush_initial_buffer (const char *os_dev __attribute__ ((unused)))
|
||||
@@ -1,92 +0,0 @@
|
||||
From 7a5b301e3adb8e054288518a325135a1883c1c6c Mon Sep 17 00:00:00 2001
|
||||
From: Mike Gilbert <floppym@gentoo.org>
|
||||
Date: Tue, 19 Apr 2016 14:27:22 -0400
|
||||
Subject: [PATCH] build: Use AC_HEADER_MAJOR to find device macros
|
||||
|
||||
Depending on the OS/libc, device macros are defined in different
|
||||
headers. This change ensures we include the right one.
|
||||
|
||||
sys/types.h - BSD
|
||||
sys/mkdev.h - Sun
|
||||
sys/sysmacros.h - glibc (Linux)
|
||||
|
||||
glibc currently pulls sys/sysmacros.h into sys/types.h, but this may
|
||||
change in a future release.
|
||||
|
||||
https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html
|
||||
---
|
||||
Upstream-Status: Backport
|
||||
|
||||
configure.ac | 3 ++-
|
||||
grub-core/osdep/devmapper/getroot.c | 6 ++++++
|
||||
grub-core/osdep/devmapper/hostdisk.c | 5 +++++
|
||||
grub-core/osdep/linux/getroot.c | 6 ++++++
|
||||
grub-core/osdep/unix/getroot.c | 4 +++-
|
||||
5 files changed, 22 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: grub-2.00/configure.ac
|
||||
===================================================================
|
||||
--- grub-2.00.orig/configure.ac
|
||||
+++ grub-2.00/configure.ac
|
||||
@@ -326,7 +326,8 @@ fi
|
||||
|
||||
# Check for functions and headers.
|
||||
AC_CHECK_FUNCS(posix_memalign memalign asprintf vasprintf getextmntent)
|
||||
-AC_CHECK_HEADERS(sys/param.h sys/mount.h sys/mnttab.h sys/mkdev.h limits.h)
|
||||
+AC_CHECK_HEADERS(sys/param.h sys/mount.h sys/mnttab.h limits.h)
|
||||
+AC_HEADER_MAJOR
|
||||
|
||||
AC_CHECK_MEMBERS([struct statfs.f_fstypename],,,[$ac_includes_default
|
||||
#include <sys/param.h>
|
||||
Index: grub-2.00/grub-core/kern/emu/hostdisk.c
|
||||
===================================================================
|
||||
--- grub-2.00.orig/grub-core/kern/emu/hostdisk.c
|
||||
+++ grub-2.00/grub-core/kern/emu/hostdisk.c
|
||||
@@ -41,6 +41,12 @@
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
|
||||
+#if defined(MAJOR_IN_MKDEV)
|
||||
+#include <sys/mkdev.h>
|
||||
+#elif defined(MAJOR_IN_SYSMACROS)
|
||||
+#include <sys/sysmacros.h>
|
||||
+#endif
|
||||
+
|
||||
#ifdef __linux__
|
||||
# include <sys/ioctl.h> /* ioctl */
|
||||
# include <sys/mount.h>
|
||||
Index: grub-2.00/util/getroot.c
|
||||
===================================================================
|
||||
--- grub-2.00.orig/util/getroot.c
|
||||
+++ grub-2.00/util/getroot.c
|
||||
@@ -35,6 +35,13 @@
|
||||
#ifdef HAVE_LIMITS_H
|
||||
#include <limits.h>
|
||||
#endif
|
||||
+
|
||||
+#if defined(MAJOR_IN_MKDEV)
|
||||
+#include <sys/mkdev.h>
|
||||
+#elif defined(MAJOR_IN_SYSMACROS)
|
||||
+#include <sys/sysmacros.h>
|
||||
+#endif
|
||||
+
|
||||
#include <grub/util/misc.h>
|
||||
#include <grub/util/lvm.h>
|
||||
#include <grub/cryptodisk.h>
|
||||
Index: grub-2.00/util/raid.c
|
||||
===================================================================
|
||||
--- grub-2.00.orig/util/raid.c
|
||||
+++ grub-2.00/util/raid.c
|
||||
@@ -29,6 +29,12 @@
|
||||
#include <errno.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
+#if defined(MAJOR_IN_MKDEV)
|
||||
+#include <sys/mkdev.h>
|
||||
+#elif defined(MAJOR_IN_SYSMACROS)
|
||||
+#include <sys/sysmacros.h>
|
||||
+#endif
|
||||
+
|
||||
#include <linux/types.h>
|
||||
#include <linux/major.h>
|
||||
#include <linux/raid/md_p.h>
|
||||
@@ -1,39 +0,0 @@
|
||||
From f30c692c1f9ef0e93bee2b408a24baa017f1ca9d Mon Sep 17 00:00:00 2001
|
||||
From: Vladimir Serbinenko <phcoder@gmail.com>
|
||||
Date: Thu, 7 Nov 2013 01:01:47 +0100
|
||||
Subject: [PATCH] * grub-core/gettext/gettext.c (main_context),
|
||||
(secondary_context): Define after defining type and not before.
|
||||
|
||||
---
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Upstream-Status: Backport
|
||||
|
||||
ChangeLog | 5 +++++
|
||||
grub-core/gettext/gettext.c | 4 ++--
|
||||
2 files changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/grub-core/gettext/gettext.c b/grub-core/gettext/gettext.c
|
||||
index df73570..4880cef 100644
|
||||
--- a/grub-core/gettext/gettext.c
|
||||
+++ b/grub-core/gettext/gettext.c
|
||||
@@ -34,8 +34,6 @@ GRUB_MOD_LICENSE ("GPLv3+");
|
||||
http://www.gnu.org/software/autoconf/manual/gettext/MO-Files.html .
|
||||
*/
|
||||
|
||||
-static struct grub_gettext_context main_context, secondary_context;
|
||||
-
|
||||
static const char *(*grub_gettext_original) (const char *s);
|
||||
|
||||
struct grub_gettext_msg
|
||||
@@ -69,6 +67,8 @@ struct grub_gettext_context
|
||||
struct grub_gettext_msg *grub_gettext_msg_list;
|
||||
};
|
||||
|
||||
+static struct grub_gettext_context main_context, secondary_context;
|
||||
+
|
||||
#define MO_MAGIC_NUMBER 0x950412de
|
||||
|
||||
static grub_err_t
|
||||
--
|
||||
1.9.1
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
From b258761d11946b28a847dff0768c3f271e13d60a Mon Sep 17 00:00:00 2001
|
||||
From: Awais Belal <awais_belal@mentor.com>
|
||||
Date: Thu, 8 Dec 2016 18:21:12 +0500
|
||||
Subject: [PATCH 1/2] * grub-core/kern/efi/mm.c
|
||||
(grub_efi_finish_boot_services): Try terminating EFI services several times
|
||||
due to quirks in some implementations.
|
||||
|
||||
Upstream-status: Backport [ http://git.savannah.gnu.org/cgit/grub.git/patch/?id=e75fdee420a7ad95e9a465c9699adc2e2e970440 ]
|
||||
|
||||
Signed-off-by: Awais Belal <awais_belal@mentor.com>
|
||||
---
|
||||
grub-core/kern/efi/mm.c | 46 ++++++++++++++++++++++++++++++----------------
|
||||
1 file changed, 30 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c
|
||||
index 461deb0..b00e0bc 100644
|
||||
--- a/grub-core/kern/efi/mm.c
|
||||
+++ b/grub-core/kern/efi/mm.c
|
||||
@@ -167,27 +167,41 @@ grub_efi_finish_boot_services (grub_efi_uintn_t *outbuf_size, void *outbuf,
|
||||
apple, sizeof (apple)) == 0);
|
||||
#endif
|
||||
|
||||
- if (grub_efi_get_memory_map (&finish_mmap_size, finish_mmap_buf, &finish_key,
|
||||
- &finish_desc_size, &finish_desc_version) < 0)
|
||||
- return grub_error (GRUB_ERR_IO, "couldn't retrieve memory map");
|
||||
+ while (1)
|
||||
+ {
|
||||
+ if (grub_efi_get_memory_map (&finish_mmap_size, finish_mmap_buf, &finish_key,
|
||||
+ &finish_desc_size, &finish_desc_version) < 0)
|
||||
+ return grub_error (GRUB_ERR_IO, "couldn't retrieve memory map");
|
||||
|
||||
- if (outbuf && *outbuf_size < finish_mmap_size)
|
||||
- return grub_error (GRUB_ERR_IO, "memory map buffer is too small");
|
||||
+ if (outbuf && *outbuf_size < finish_mmap_size)
|
||||
+ return grub_error (GRUB_ERR_IO, "memory map buffer is too small");
|
||||
|
||||
- finish_mmap_buf = grub_malloc (finish_mmap_size);
|
||||
- if (!finish_mmap_buf)
|
||||
- return grub_errno;
|
||||
+ finish_mmap_buf = grub_malloc (finish_mmap_size);
|
||||
+ if (!finish_mmap_buf)
|
||||
+ return grub_errno;
|
||||
|
||||
- if (grub_efi_get_memory_map (&finish_mmap_size, finish_mmap_buf, &finish_key,
|
||||
- &finish_desc_size, &finish_desc_version) <= 0)
|
||||
- return grub_error (GRUB_ERR_IO, "couldn't retrieve memory map");
|
||||
+ if (grub_efi_get_memory_map (&finish_mmap_size, finish_mmap_buf, &finish_key,
|
||||
+ &finish_desc_size, &finish_desc_version) <= 0)
|
||||
+ {
|
||||
+ grub_free (finish_mmap_buf);
|
||||
+ return grub_error (GRUB_ERR_IO, "couldn't retrieve memory map");
|
||||
+ }
|
||||
|
||||
- b = grub_efi_system_table->boot_services;
|
||||
- status = efi_call_2 (b->exit_boot_services, grub_efi_image_handle,
|
||||
- finish_key);
|
||||
- if (status != GRUB_EFI_SUCCESS)
|
||||
- return grub_error (GRUB_ERR_IO, "couldn't terminate EFI services");
|
||||
+ b = grub_efi_system_table->boot_services;
|
||||
+ status = efi_call_2 (b->exit_boot_services, grub_efi_image_handle,
|
||||
+ finish_key);
|
||||
+ if (status == GRUB_EFI_SUCCESS)
|
||||
+ break;
|
||||
|
||||
+ if (status != GRUB_EFI_INVALID_PARAMETER)
|
||||
+ {
|
||||
+ grub_free (finish_mmap_buf);
|
||||
+ return grub_error (GRUB_ERR_IO, "couldn't terminate EFI services");
|
||||
+ }
|
||||
+
|
||||
+ grub_free (finish_mmap_buf);
|
||||
+ grub_printf ("Trying to terminate EFI services again\n");
|
||||
+ }
|
||||
grub_efi_is_finished = 1;
|
||||
if (outbuf_size)
|
||||
*outbuf_size = finish_mmap_size;
|
||||
--
|
||||
1.9.1
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
Upstream-Status: Backport
|
||||
|
||||
Original commit: http://git.savannah.gnu.org/cgit/grub.git/commit/grub-core/net/bootp.c?id=f06c2172c0b32052f22e37523445cf8e7affaea3
|
||||
|
||||
From 149d2a14f4723778ced23f439487201ccbf1a2c9 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Thu, 23 Apr 2015 07:03:34 +0000
|
||||
Subject: [PATCH] parse_dhcp_vendor: Add missing const qualifiers.
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
grub-core/net/bootp.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c
|
||||
index bc07d53..44131ed 100644
|
||||
--- a/grub-core/net/bootp.c
|
||||
+++ b/grub-core/net/bootp.c
|
||||
@@ -52,9 +52,9 @@ set_env_limn_ro (const char *intername, const char *suffix,
|
||||
}
|
||||
|
||||
static void
|
||||
-parse_dhcp_vendor (const char *name, void *vend, int limit, int *mask)
|
||||
+parse_dhcp_vendor (const char *name, const void *vend, int limit, int *mask)
|
||||
{
|
||||
- grub_uint8_t *ptr, *ptr0;
|
||||
+ const grub_uint8_t *ptr, *ptr0;
|
||||
|
||||
ptr = ptr0 = vend;
|
||||
|
||||
--
|
||||
2.1.4
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
From 630de45f3d5f9a2dda7fad99acd21449b8c4111d Mon Sep 17 00:00:00 2001
|
||||
From: Awais Belal <awais_belal@mentor.com>
|
||||
Date: Thu, 8 Dec 2016 18:27:01 +0500
|
||||
Subject: [PATCH 2/2] * grub-core/kern/efi/mm.c (grub_efi_get_memory_map):
|
||||
Never return a descriptor_size==0 to avoid potential divisions by zero.
|
||||
|
||||
Upstream-status: Backport [ http://git.savannah.gnu.org/cgit/grub.git/commit/?id=69aee43fa64601cabf6efa9279c10d69b466662e ]
|
||||
|
||||
Signed-off-by: Awais Belal <awais_belal@mentor.com>
|
||||
---
|
||||
grub-core/kern/efi/mm.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c
|
||||
index b00e0bc..9f1d194 100644
|
||||
--- a/grub-core/kern/efi/mm.c
|
||||
+++ b/grub-core/kern/efi/mm.c
|
||||
@@ -235,6 +235,7 @@ grub_efi_get_memory_map (grub_efi_uintn_t *memory_map_size,
|
||||
grub_efi_boot_services_t *b;
|
||||
grub_efi_uintn_t key;
|
||||
grub_efi_uint32_t version;
|
||||
+ grub_efi_uintn_t size;
|
||||
|
||||
if (grub_efi_is_finished)
|
||||
{
|
||||
@@ -264,10 +265,14 @@ grub_efi_get_memory_map (grub_efi_uintn_t *memory_map_size,
|
||||
map_key = &key;
|
||||
if (! descriptor_version)
|
||||
descriptor_version = &version;
|
||||
+ if (! descriptor_size)
|
||||
+ descriptor_size = &size;
|
||||
|
||||
b = grub_efi_system_table->boot_services;
|
||||
status = efi_call_5 (b->get_memory_map, memory_map_size, memory_map, map_key,
|
||||
descriptor_size, descriptor_version);
|
||||
+ if (*descriptor_size == 0)
|
||||
+ *descriptor_size = sizeof (grub_efi_memory_descriptor_t);
|
||||
if (status == GRUB_EFI_SUCCESS)
|
||||
return 1;
|
||||
else if (status == GRUB_EFI_BUFFER_TOO_SMALL)
|
||||
--
|
||||
1.9.1
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
Disable liblzma if --enable-liblzma=no
|
||||
|
||||
Upstream-Status: Inappropriate [configuration]
|
||||
|
||||
Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1029,10 +1029,20 @@ fi
|
||||
|
||||
AC_SUBST([LIBGEOM])
|
||||
|
||||
-AC_CHECK_LIB([lzma], [lzma_code],
|
||||
- [LIBLZMA="-llzma"
|
||||
- AC_DEFINE([HAVE_LIBLZMA], [1],
|
||||
- [Define to 1 if you have the LZMA library.])],)
|
||||
+AC_ARG_ENABLE([liblzma],
|
||||
+ [AS_HELP_STRING([--enable-liblzma],
|
||||
+ [enable liblzma integration (default=guessed)])])
|
||||
+if test x"$enable_liblzma" = xno ; then
|
||||
+ liblzma_excuse="explicitly disabled"
|
||||
+fi
|
||||
+
|
||||
+if test x"$liblzma_excuse" = x ; then
|
||||
+ AC_CHECK_LIB([lzma], [lzma_code],
|
||||
+ [LIBLZMA="-llzma"
|
||||
+ AC_DEFINE([HAVE_LIBLZMA], [1],
|
||||
+ [Define to 1 if you have the LZMA library.])],)
|
||||
+fi
|
||||
+
|
||||
AC_SUBST([LIBLZMA])
|
||||
|
||||
AC_ARG_ENABLE([libzfs],
|
||||
@@ -1,44 +0,0 @@
|
||||
grub-core/net/tftp.c: fix endianness problem.
|
||||
|
||||
* grub-core/net/tftp.c (ack): Fix endianness problem.
|
||||
(tftp_receive): Likewise.
|
||||
Reported by: Michael Davidsaver.
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
diff --git a/ChangeLog b/ChangeLog
|
||||
index 81bdae9..c2f42d5 100644
|
||||
--- a/ChangeLog
|
||||
+++ b/ChangeLog
|
||||
@@ -1,3 +1,9 @@
|
||||
+2012-07-02 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
+
|
||||
+ * grub-core/net/tftp.c (ack): Fix endianness problem.
|
||||
+ (tftp_receive): Likewise.
|
||||
+ Reported by: Michael Davidsaver.
|
||||
+
|
||||
2012-06-27 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* configure.ac: Bump version to 2.00.
|
||||
diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c
|
||||
index 9c70efb..d0f39ea 100644
|
||||
--- a/grub-core/net/tftp.c
|
||||
+++ b/grub-core/net/tftp.c
|
||||
@@ -143,7 +143,7 @@ ack (tftp_data_t data, grub_uint16_t block)
|
||||
|
||||
tftph_ack = (struct tftphdr *) nb_ack.data;
|
||||
tftph_ack->opcode = grub_cpu_to_be16 (TFTP_ACK);
|
||||
- tftph_ack->u.ack.block = block;
|
||||
+ tftph_ack->u.ack.block = grub_cpu_to_be16 (block);
|
||||
|
||||
err = grub_net_send_udp_packet (data->sock, &nb_ack);
|
||||
if (err)
|
||||
@@ -225,7 +225,7 @@ tftp_receive (grub_net_udp_socket_t sock __attribute__ ((unused)),
|
||||
grub_priority_queue_pop (data->pq);
|
||||
|
||||
if (file->device->net->packs.count < 50)
|
||||
- err = ack (data, tftph->u.data.block);
|
||||
+ err = ack (data, data->block + 1);
|
||||
else
|
||||
{
|
||||
file->device->net->stall = 1;
|
||||
@@ -1,21 +0,0 @@
|
||||
Upstream-Status: Backport
|
||||
|
||||
This fixes compilation issues when using flex-2.5.37. It was taken from upstream.
|
||||
|
||||
Original author is: Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
|
||||
|
||||
Index: grub-2.00/grub-core/script/yylex.l
|
||||
===================================================================
|
||||
--- grub-2.00.orig/grub-core/script/yylex.l 2012-06-08 23:24:15.000000000 +0300
|
||||
+++ grub-2.00/grub-core/script/yylex.l 2013-07-31 14:34:40.708100982 +0300
|
||||
@@ -29,6 +29,8 @@
|
||||
#pragma GCC diagnostic ignored "-Wmissing-prototypes"
|
||||
#pragma GCC diagnostic ignored "-Wmissing-declarations"
|
||||
#pragma GCC diagnostic ignored "-Wunsafe-loop-optimizations"
|
||||
+#pragma GCC diagnostic ignored "-Wunused-function"
|
||||
+#pragma GCC diagnostic ignored "-Wsign-compare"
|
||||
|
||||
#define yyfree grub_lexer_yyfree
|
||||
#define yyalloc grub_lexer_yyalloc
|
||||
@@ -1,32 +0,0 @@
|
||||
The tarball has a texi file that doesn't parse with current texinfo, so if it's
|
||||
being re-generated the build will fail. Take a patch from upstream to fix the
|
||||
texi.
|
||||
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Ross Burton <ross.burton@intel.com>
|
||||
|
||||
From d4c4b8e1a085f92afcec36f6e590c6dfc51d0a1c Mon Sep 17 00:00:00 2001
|
||||
From: Bryan Hundven <bryanhundven@gmail.com>
|
||||
Date: Mon, 08 Apr 2013 13:23:07 +0000
|
||||
Subject: * docs/grub-dev.texi: Move @itemize after @subsection to satisfy
|
||||
|
||||
texinfo-5.1.
|
||||
---
|
||||
(limited to 'docs/grub-dev.texi')
|
||||
|
||||
diff --git a/docs/grub-dev.texi b/docs/grub-dev.texi
|
||||
index a4a3820..f74c966 100644
|
||||
--- a/docs/grub-dev.texi
|
||||
+++ b/docs/grub-dev.texi
|
||||
@@ -1394,8 +1394,8 @@ grub_video_blit_glyph (&glyph, color, 0, 0);
|
||||
|
||||
@node Bitmap API
|
||||
@section Bitmap API
|
||||
-@itemize
|
||||
@subsection grub_video_bitmap_create
|
||||
+@itemize
|
||||
@item Prototype:
|
||||
@example
|
||||
grub_err_t grub_video_bitmap_create (struct grub_video_bitmap **bitmap, unsigned int width, unsigned int height, enum grub_video_blit_format blit_format)
|
||||
--
|
||||
cgit v0.9.0.2
|
||||
@@ -1,53 +0,0 @@
|
||||
From 7ab576a7c61406b7e63739d1b11017ae336b9008 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Yang <liezhi.yang@windriver.com>
|
||||
Date: Mon, 3 Mar 2014 03:34:48 -0500
|
||||
Subject: [PATCH] grub.d/10_linux.in: add oe's kernel name
|
||||
|
||||
Our kernel's name is bzImage, we need add it to grub.d/10_linux.in so
|
||||
that the grub-mkconfig and grub-install can work correctly.
|
||||
|
||||
We only need add the bzImage to util/grub.d/10_linux.in, but also add it
|
||||
to util/grub.d/20_linux_xen.in to keep compatibility.
|
||||
|
||||
Upstream-Status: Inappropriate [OE specific]
|
||||
|
||||
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
|
||||
---
|
||||
util/grub.d/10_linux.in | 4 ++--
|
||||
util/grub.d/20_linux_xen.in | 2 +-
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
|
||||
index 14402e8..c58f417 100644
|
||||
--- a/util/grub.d/10_linux.in
|
||||
+++ b/util/grub.d/10_linux.in
|
||||
@@ -153,11 +153,11 @@ EOF
|
||||
machine=`uname -m`
|
||||
case "x$machine" in
|
||||
xi?86 | xx86_64)
|
||||
- list=`for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do
|
||||
+ list=`for i in /boot/bzImage-* /bzImage-* /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do
|
||||
if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi
|
||||
done` ;;
|
||||
*)
|
||||
- list=`for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do
|
||||
+ list=`for i in /boot/bzImage-* /boot/vmlinuz-* /boot/vmlinux-* /bzImage-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do
|
||||
if grub_file_is_not_garbage "$i" ; then echo -n "$i " ; fi
|
||||
done` ;;
|
||||
esac
|
||||
diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
|
||||
index 1d94502..b2decf3 100644
|
||||
--- a/util/grub.d/20_linux_xen.in
|
||||
+++ b/util/grub.d/20_linux_xen.in
|
||||
@@ -138,7 +138,7 @@ EOF
|
||||
EOF
|
||||
}
|
||||
|
||||
-linux_list=`for i in /boot/vmlinu[xz]-* /vmlinu[xz]-* /boot/kernel-*; do
|
||||
+linux_list=`for i in /boot/bzImage[xz]-* /bzImage[xz]-* /boot/vmlinu[xz]-* /vmlinu[xz]-* /boot/kernel-*; do
|
||||
if grub_file_is_not_garbage "$i"; then
|
||||
basename=$(basename $i)
|
||||
version=$(echo $basename | sed -e "s,^[^0-9]*-,,g")
|
||||
--
|
||||
1.7.10.4
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
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 <nitin.a.kamble@intel.com>
|
||||
2012/04/13
|
||||
|
||||
Index: grub-2.00/acinclude.m4
|
||||
===================================================================
|
||||
--- grub-2.00.orig/acinclude.m4
|
||||
+++ grub-2.00/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([AC_LANG_SOURCE([[
|
||||
+void g (int);
|
||||
void f (int (*p) (void));
|
||||
void g (int i)
|
||||
{
|
||||
@@ -1,24 +0,0 @@
|
||||
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
|
||||
@@ -1,131 +0,0 @@
|
||||
Allow a compilation without -mcmodel=large
|
||||
|
||||
It's provided by Vladimir Serbinenko, and he will commit
|
||||
it upstream so it should be backport patch.
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
|
||||
|
||||
--
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 9f8fb8a..2c5e6ed 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -723,9 +723,7 @@ if test "$target_cpu" = x86_64; then
|
||||
[grub_cv_cc_mcmodel=yes],
|
||||
[grub_cv_cc_mcmodel=no])
|
||||
])
|
||||
- if test "x$grub_cv_cc_mcmodel" = xno; then
|
||||
- AC_MSG_ERROR([-mcmodel=large not supported. Upgrade your gcc.])
|
||||
- else
|
||||
+ if test "x$grub_cv_cc_mcmodel" = xyes; then
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS -mcmodel=large"
|
||||
fi
|
||||
fi
|
||||
diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c
|
||||
index 1409b5d..6e9dace 100644
|
||||
--- a/grub-core/kern/efi/mm.c
|
||||
+++ b/grub-core/kern/efi/mm.c
|
||||
@@ -32,6 +32,12 @@
|
||||
#define BYTES_TO_PAGES(bytes) (((bytes) + 0xfff) >> 12)
|
||||
#define PAGES_TO_BYTES(pages) ((pages) << 12)
|
||||
|
||||
+#if defined (__code_model_large__) || !defined (__x86_64__)
|
||||
+#define MAX_USABLE_ADDRESS 0xffffffff
|
||||
+#else
|
||||
+#define MAX_USABLE_ADDRESS 0x7fffffff
|
||||
+#endif
|
||||
+
|
||||
/* The size of a memory map obtained from the firmware. This must be
|
||||
a multiplier of 4KB. */
|
||||
#define MEMORY_MAP_SIZE 0x3000
|
||||
@@ -58,7 +64,7 @@ grub_efi_allocate_pages (grub_efi_physical_address_t address,
|
||||
|
||||
#if 1
|
||||
/* Limit the memory access to less than 4GB for 32-bit platforms. */
|
||||
- if (address > 0xffffffff)
|
||||
+ if (address > MAX_USABLE_ADDRESS)
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
@@ -66,7 +72,7 @@ grub_efi_allocate_pages (grub_efi_physical_address_t address,
|
||||
if (address == 0)
|
||||
{
|
||||
type = GRUB_EFI_ALLOCATE_MAX_ADDRESS;
|
||||
- address = 0xffffffff;
|
||||
+ address = MAX_USABLE_ADDRESS;
|
||||
}
|
||||
else
|
||||
type = GRUB_EFI_ALLOCATE_ADDRESS;
|
||||
@@ -86,7 +92,7 @@ grub_efi_allocate_pages (grub_efi_physical_address_t address,
|
||||
{
|
||||
/* Uggh, the address 0 was allocated... This is too annoying,
|
||||
so reallocate another one. */
|
||||
- address = 0xffffffff;
|
||||
+ address = MAX_USABLE_ADDRESS;
|
||||
status = efi_call_4 (b->allocate_pages, type, GRUB_EFI_LOADER_DATA, pages, &address);
|
||||
grub_efi_free_pages (0, pages);
|
||||
if (status != GRUB_EFI_SUCCESS)
|
||||
@@ -319,7 +325,7 @@ filter_memory_map (grub_efi_memory_descriptor_t *memory_map,
|
||||
{
|
||||
if (desc->type == GRUB_EFI_CONVENTIONAL_MEMORY
|
||||
#if 1
|
||||
- && desc->physical_start <= 0xffffffff
|
||||
+ && desc->physical_start <= MAX_USABLE_ADDRESS
|
||||
#endif
|
||||
&& desc->physical_start + PAGES_TO_BYTES (desc->num_pages) > 0x100000
|
||||
&& desc->num_pages != 0)
|
||||
@@ -337,9 +343,9 @@ filter_memory_map (grub_efi_memory_descriptor_t *memory_map,
|
||||
#if 1
|
||||
if (BYTES_TO_PAGES (filtered_desc->physical_start)
|
||||
+ filtered_desc->num_pages
|
||||
- > BYTES_TO_PAGES (0x100000000LL))
|
||||
+ > BYTES_TO_PAGES (MAX_USABLE_ADDRESS+1LL))
|
||||
filtered_desc->num_pages
|
||||
- = (BYTES_TO_PAGES (0x100000000LL)
|
||||
+ = (BYTES_TO_PAGES (MAX_USABLE_ADDRESS+1LL)
|
||||
- BYTES_TO_PAGES (filtered_desc->physical_start));
|
||||
#endif
|
||||
|
||||
diff --git a/grub-core/kern/x86_64/dl.c b/grub-core/kern/x86_64/dl.c
|
||||
index 65f09ef..17c1215 100644
|
||||
--- a/grub-core/kern/x86_64/dl.c
|
||||
+++ b/grub-core/kern/x86_64/dl.c
|
||||
@@ -100,14 +100,32 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr)
|
||||
break;
|
||||
|
||||
case R_X86_64_PC32:
|
||||
- *addr32 += rel->r_addend + sym->st_value -
|
||||
- (Elf64_Xword) seg->addr - rel->r_offset;
|
||||
+ {
|
||||
+ grub_int64_t value;
|
||||
+ value = ((grub_int32_t) *addr32) + rel->r_addend + sym->st_value -
|
||||
+ (Elf64_Xword) seg->addr - rel->r_offset;
|
||||
+ if (value != (grub_int32_t) value)
|
||||
+ return grub_error (GRUB_ERR_BAD_MODULE, "relocation out of range");
|
||||
+ *addr32 = value;
|
||||
+ }
|
||||
break;
|
||||
|
||||
case R_X86_64_32:
|
||||
+ {
|
||||
+ grub_uint64_t value = *addr32 + rel->r_addend + sym->st_value;
|
||||
+ if (value != (grub_uint32_t) value)
|
||||
+ return grub_error (GRUB_ERR_BAD_MODULE, "relocation out of range");
|
||||
+ *addr32 = value;
|
||||
+ }
|
||||
+ break;
|
||||
case R_X86_64_32S:
|
||||
- *addr32 += rel->r_addend + sym->st_value;
|
||||
- break;
|
||||
+ {
|
||||
+ grub_int64_t value = ((grub_int32_t) *addr32) + rel->r_addend + sym->st_value;
|
||||
+ if (value != (grub_int32_t) value)
|
||||
+ return grub_error (GRUB_ERR_BAD_MODULE, "relocation out of range");
|
||||
+ *addr32 = value;
|
||||
+ }
|
||||
+ break;
|
||||
|
||||
default:
|
||||
return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET,
|
||||
@@ -1,32 +0,0 @@
|
||||
From eb6368e65f6988eebad26cebdec057f797bceb40 Mon Sep 17 00:00:00 2001
|
||||
From: Robert Yang <liezhi.yang@windriver.com>
|
||||
Date: Tue, 9 Sep 2014 00:02:30 -0700
|
||||
Subject: [PATCH] Fix build with glibc 2.20
|
||||
|
||||
* grub-core/kern/emu/hostfs.c: squahes below warning
|
||||
warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
|
||||
|
||||
Upstream-Status: Submitted
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
|
||||
---
|
||||
grub-core/kern/emu/hostfs.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/grub-core/kern/emu/hostfs.c b/grub-core/kern/emu/hostfs.c
|
||||
index 3cb089c..a51ee32 100644
|
||||
--- a/grub-core/kern/emu/hostfs.c
|
||||
+++ b/grub-core/kern/emu/hostfs.c
|
||||
@@ -16,7 +16,7 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with GRUB. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
-#define _BSD_SOURCE
|
||||
+#define _DEFAULT_SOURCE
|
||||
#include <grub/fs.h>
|
||||
#include <grub/file.h>
|
||||
#include <grub/disk.h>
|
||||
--
|
||||
1.7.9.5
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
|
||||
Our use of grub-install doesn't require the -x option, so we should be
|
||||
be able make use of grep versions that don't support it.
|
||||
|
||||
Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
|
||||
|
||||
Index: grub-1.99/util/grub-install.in
|
||||
===================================================================
|
||||
--- grub-1.99.orig/util/grub-install.in 2011-09-09 22:37:20.093906679 -0500
|
||||
+++ grub-1.99/util/grub-install.in 2011-09-09 22:37:30.854737882 -0500
|
||||
@@ -510,7 +510,7 @@
|
||||
|
||||
if [ "x${devabstraction_module}" = "x" ] ; then
|
||||
if [ x"${install_device}" != x ]; then
|
||||
- if echo "${install_device}" | grep -qx "(.*)" ; then
|
||||
+ if echo "${install_device}" | grep -q "(.*)" ; then
|
||||
install_drive="${install_device}"
|
||||
else
|
||||
install_drive="`"$grub_probe" --device-map="${device_map}" --target=drive --device "${install_device}"`" || exit 1
|
||||
@@ -1,19 +0,0 @@
|
||||
Signed-off-by: Radu Moisan <radu.moisan@intel.com>
|
||||
Upstream-Status: Pending
|
||||
|
||||
I had an error because of an unused return value for read().
|
||||
I added -Wno-unused-result.
|
||||
|
||||
Index: grub-2.00/configure.ac
|
||||
===================================================================
|
||||
--- grub-2.00.orig/configure.ac 2012-08-13 16:32:33.000000000 +0300
|
||||
+++ grub-2.00/configure.ac 2012-08-13 16:38:22.000000000 +0300
|
||||
@@ -394,7 +394,7 @@
|
||||
LIBS=""
|
||||
|
||||
# debug flags.
|
||||
-WARN_FLAGS="-Wall -W -Wshadow -Wold-style-definition -Wpointer-arith -Wundef -Wextra -Waddress -Wattributes -Wcast-align -Wchar-subscripts -Wcomment -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero -Wempty-body -Wendif-labels -Wfloat-equal -Wformat-extra-args -Wformat-security -Wformat-y2k -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Winit-self -Wint-to-pointer-cast -Winvalid-pch -Wmain -Wmissing-braces -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-noreturn -Wmultichar -Wnonnull -Woverflow -Wparentheses -Wpointer-arith -Wpointer-to-int-cast -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wstrict-aliasing -Wswitch -Wtrigraphs -Wundef -Wunknown-pragmas -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -Wvariadic-macros -Wvolatile-register-var -Wwrite-strings -Wnested-externs -Wstrict-prototypes -Wpointer-sign"
|
||||
+WARN_FLAGS="-Wall -W -Wshadow -Wold-style-definition -Wpointer-arith -Wundef -Wextra -Waddress -Wattributes -Wcast-align -Wchar-subscripts -Wcomment -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero -Wempty-body -Wendif-labels -Wfloat-equal -Wformat-extra-args -Wformat-security -Wformat-y2k -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Winit-self -Wint-to-pointer-cast -Winvalid-pch -Wmain -Wmissing-braces -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-noreturn -Wmultichar -Wnonnull -Woverflow -Wparentheses -Wpointer-arith -Wpointer-to-int-cast -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wstrict-aliasing -Wswitch -Wtrigraphs -Wundef -Wunknown-pragmas -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -Wno-unused-result -Wvariadic-macros -Wvolatile-register-var -Wwrite-strings -Wnested-externs -Wstrict-prototypes -Wpointer-sign"
|
||||
HOST_CFLAGS="$HOST_CFLAGS $WARN_FLAGS"
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS $WARN_FLAGS -g -Wredundant-decls -Wmissing-prototypes -Wmissing-declarations"
|
||||
TARGET_CCASFLAGS="$TARGET_CCASFLAGS -g"
|
||||
@@ -1,48 +0,0 @@
|
||||
From 8fbb150a56966edde4dc07b8d01be5eb149b65ab Mon Sep 17 00:00:00 2001
|
||||
From: Colin Watson <cjwatson@ubuntu.com>
|
||||
Date: Sun, 20 Jan 2013 23:03:35 +0000
|
||||
Subject: [PATCH 1/1] * grub-core/loader/i386/linux.c (grub_cmd_initrd): Don't
|
||||
add the initrd size to addr_min, since the initrd will be allocated after
|
||||
this address.
|
||||
|
||||
commit 6a0debbd9167e8f79cdef5497a73d23e580c0cd4 upstream
|
||||
|
||||
Upstream-Status: Backport
|
||||
|
||||
Signed-off-by: Shan Hai <shan.hai@windriver.com>
|
||||
---
|
||||
ChangeLog | 6 ++++++
|
||||
grub-core/loader/i386/linux.c | 3 +--
|
||||
2 files changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/ChangeLog b/ChangeLog
|
||||
index c2f42d5..40cb508 100644
|
||||
--- a/ChangeLog
|
||||
+++ b/ChangeLog
|
||||
@@ -1,3 +1,9 @@
|
||||
+2013-01-20 Colin Watson <cjwatson@ubuntu.com>
|
||||
+
|
||||
+ * grub-core/loader/i386/linux.c (grub_cmd_initrd): Don't add the
|
||||
+ initrd size to addr_min, since the initrd will be allocated after
|
||||
+ this address.
|
||||
+
|
||||
2012-07-02 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/net/tftp.c (ack): Fix endianness problem.
|
||||
diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c
|
||||
index 62087cf..e2425c8 100644
|
||||
--- a/grub-core/loader/i386/linux.c
|
||||
+++ b/grub-core/loader/i386/linux.c
|
||||
@@ -1098,8 +1098,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
|
||||
worse than that of Linux 2.3.xx, so avoid the last 64kb. */
|
||||
addr_max -= 0x10000;
|
||||
|
||||
- addr_min = (grub_addr_t) prot_mode_target + prot_init_space
|
||||
- + page_align (size);
|
||||
+ addr_min = (grub_addr_t) prot_mode_target + prot_init_space;
|
||||
|
||||
/* Put the initrd as high as possible, 4KiB aligned. */
|
||||
addr = (addr_max - size) & ~0xFFF;
|
||||
--
|
||||
1.8.5.2.233.g932f7e4
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
Subject: [PATCH] grub2: remove grub-sparc64-setup from x86 builds
|
||||
|
||||
* remove the grub-sparc64-setup files from the x86 builds.
|
||||
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
|
||||
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
|
||||
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
|
||||
---
|
||||
Makefile.util.def | 18 ------------------
|
||||
1 file changed, 18 deletions(-)
|
||||
|
||||
diff --git a/Makefile.util.def b/Makefile.util.def
|
||||
index b80187c..a670cf2 100644
|
||||
--- a/Makefile.util.def
|
||||
+++ b/Makefile.util.def
|
||||
@@ -321,24 +321,6 @@ program = {
|
||||
};
|
||||
|
||||
program = {
|
||||
- name = grub-sparc64-setup;
|
||||
- installdir = sbin;
|
||||
- mansection = 8;
|
||||
- common = util/grub-setup.c;
|
||||
- common = util/lvm.c;
|
||||
- common = grub-core/kern/emu/argp_common.c;
|
||||
- common = grub-core/lib/reed_solomon.c;
|
||||
- common = util/ieee1275/ofpath.c;
|
||||
-
|
||||
- ldadd = libgrubmods.a;
|
||||
- ldadd = libgrubkern.a;
|
||||
- ldadd = libgrubgcry.a;
|
||||
- ldadd = grub-core/gnulib/libgnu.a;
|
||||
- ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)';
|
||||
- cppflags = '-DGRUB_SETUP_SPARC64=1';
|
||||
-};
|
||||
-
|
||||
-program = {
|
||||
name = grub-ofpathname;
|
||||
installdir = sbin;
|
||||
mansection = 8;
|
||||
--
|
||||
2.8.1
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
ISO C11 removes the specification of gets() from the C language, eglibc 2.16+ removed it
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
Upstream-Status: Pending
|
||||
Index: grub-1.99/grub-core/gnulib/stdio.in.h
|
||||
===================================================================
|
||||
--- grub-1.99.orig/grub-core/gnulib/stdio.in.h 2010-12-01 06:45:43.000000000 -0800
|
||||
+++ grub-1.99/grub-core/gnulib/stdio.in.h 2012-07-04 12:25:02.057099107 -0700
|
||||
@@ -140,8 +140,10 @@
|
||||
/* It is very rare that the developer ever has full control of stdin,
|
||||
so any use of gets warrants an unconditional warning. Assume it is
|
||||
always declared, since it is required by C89. */
|
||||
+#if defined gets
|
||||
#undef gets
|
||||
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
|
||||
+#endif
|
||||
|
||||
#if @GNULIB_FOPEN@
|
||||
# if @REPLACE_FOPEN@
|
||||
@@ -1,8 +1,9 @@
|
||||
require grub2.inc
|
||||
|
||||
GRUBPLATFORM = "efi"
|
||||
|
||||
DEPENDS_class-target = "grub-efi-native"
|
||||
RDEPENDS_${PN}_class-target = "diffutils freetype"
|
||||
PR = "r3"
|
||||
|
||||
SRC_URI += " \
|
||||
file://cfg \
|
||||
@@ -29,11 +30,7 @@ python __anonymous () {
|
||||
inherit deploy
|
||||
|
||||
CACHED_CONFIGUREVARS += "ac_cv_path_HELP2MAN="
|
||||
EXTRA_OECONF = "--with-platform=efi --disable-grub-mkfont \
|
||||
--enable-efiemu=no --program-prefix='' \
|
||||
--enable-liblzma=no --enable-device-mapper=no --enable-libzfs=no \
|
||||
--enable-largefile \
|
||||
"
|
||||
EXTRA_OECONF += "--enable-efiemu=no"
|
||||
|
||||
# ldm.c:114:7: error: trampoline generated for nested function 'hook' [-Werror=trampolines]
|
||||
# and many other places in the grub code when compiled with some native gcc compilers (specifically, gentoo)
|
||||
@@ -12,41 +12,37 @@ LICENSE = "GPLv3"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
|
||||
|
||||
SRC_URI = "ftp://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \
|
||||
file://grub-module-explicitly-keeps-symbole-.module_license.patch \
|
||||
file://grub-2.00-fpmath-sse-387-fix.patch \
|
||||
file://check-if-liblzma-is-disabled.patch \
|
||||
file://fix-issue-with-flex-2.5.37.patch \
|
||||
file://grub-2.00-add-oe-kernel.patch \
|
||||
file://grub-install.in.patch \
|
||||
file://remove-gets.patch \
|
||||
file://fix-endianness-problem.patch \
|
||||
file://grub2-remove-sparc64-setup-from-x86-builds.patch \
|
||||
file://grub-2.00-fix-enable_execute_stack-check.patch \
|
||||
file://grub-no-unused-result.patch \
|
||||
file://grub-efi-allow-a-compilation-without-mcmodel-large.patch \
|
||||
file://grub-efi-fix-with-glibc-2.20.patch \
|
||||
file://0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch \
|
||||
file://0001-Unset-need_charset_alias-when-building-for-musl.patch \
|
||||
file://0001-parse_dhcp_vendor-Add-missing-const-qualifiers.patch \
|
||||
file://grub2-fix-initrd-size-bug.patch \
|
||||
file://0001-Fix-CVE-2015-8370-Grub2-user-pass-vulnerability.patch \
|
||||
file://0001-Remove-direct-_llseek-code-and-require-long-filesyst.patch \
|
||||
file://fix-texinfo.patch \
|
||||
file://0001-grub-core-gettext-gettext.c-main_context-secondary_c.patch \
|
||||
file://0001-Enforce-no-pie-if-the-compiler-supports-it.patch \
|
||||
file://0001-grub-core-kern-efi-mm.c-grub_efi_finish_boot_service.patch \
|
||||
file://0002-grub-core-kern-efi-mm.c-grub_efi_get_memory_map-Neve.patch \
|
||||
file://0001-build-Use-AC_HEADER_MAJOR-to-find-device-macros.patch \
|
||||
"
|
||||
file://autogen.sh-exclude-pc.patch \
|
||||
file://grub-module-explicitly-keeps-symbole-.module_license.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "1116d1f60c840e6dbd67abbc99acb45d"
|
||||
SRC_URI[sha256sum] = "660ee136fbcee08858516ed4de2ad87068bfe1b6b8b37896ce3529ff054a726d"
|
||||
|
||||
DEPENDS = "flex-native bison-native autogen-native"
|
||||
|
||||
SRC_URI[md5sum] = "e927540b6eda8b024fb0391eeaa4091c"
|
||||
SRC_URI[sha256sum] = "65b39a0558f8c802209c574f4d02ca263a804e8a564bc6caf1cd0fd3b3cc11e3"
|
||||
COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*)-(linux.*|freebsd.*)'
|
||||
COMPATIBLE_HOST_armv7a = 'null'
|
||||
COMPATIBLE_HOST_armv7ve = 'null'
|
||||
|
||||
COMPATIBLE_HOST = '(x86_64.*|i.86.*)-(linux|freebsd.*)'
|
||||
# configure.ac has code to set this automagically from the target tuple
|
||||
# but the OE freeform one (core2-foo-bar-linux) don't work with that.
|
||||
|
||||
GRUBPLATFORM_arm = "uboot"
|
||||
GRUBPLATFORM_aarch64 = "efi"
|
||||
GRUBPLATFORM ??= "pc"
|
||||
|
||||
inherit autotools gettext texinfo
|
||||
|
||||
EXTRA_OECONF = "--with-platform=${GRUBPLATFORM} \
|
||||
--disable-grub-mkfont \
|
||||
--program-prefix="" \
|
||||
--enable-liblzma=no \
|
||||
--enable-libzfs=no \
|
||||
--enable-largefile \
|
||||
"
|
||||
|
||||
PACKAGECONFIG ??= ""
|
||||
PACKAGECONFIG[grub-mount] = "--enable-grub-mount,--disable-grub-mount,fuse"
|
||||
PACKAGECONFIG[device-mapper] = "--enable-device-mapper,--disable-device-mapper,lvm2"
|
||||
|
||||
@@ -1,12 +1,6 @@
|
||||
require grub2.inc
|
||||
|
||||
RDEPENDS_${PN} = "diffutils freetype grub-editenv"
|
||||
PR = "r1"
|
||||
|
||||
EXTRA_OECONF = "--with-platform=pc --disable-grub-mkfont --program-prefix="" \
|
||||
--enable-liblzma=no --enable-device-mapper=no --enable-libzfs=no \
|
||||
--enable-largefile \
|
||||
"
|
||||
|
||||
PACKAGES =+ "grub-editenv"
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
require grub2.inc
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
DEFAULT_PREFERENCE_arm = "1"
|
||||
|
||||
FILESEXTRAPATHS =. "${FILE_DIRNAME}/grub-git:"
|
||||
|
||||
PV = "2.00+${SRCPV}"
|
||||
SRCREV = "ce95549cc54b5d6f494608a7c390dba3aab4fba7"
|
||||
SRC_URI = "git://git.savannah.gnu.org/grub.git \
|
||||
file://0001-Disable-mfpmath-sse-as-well-when-SSE-is-disabled.patch \
|
||||
file://autogen.sh-exclude-pc.patch \
|
||||
file://0001-grub.d-10_linux.in-add-oe-s-kernel-name.patch \
|
||||
"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*)-(linux.*|freebsd.*)'
|
||||
COMPATIBLE_HOST_armv7a = 'null'
|
||||
COMPATIBLE_HOST_armv7ve = 'null'
|
||||
|
||||
# configure.ac has code to set this automagically from the target tuple
|
||||
# but the OE freeform one (core2-foo-bar-linux) don't work with that.
|
||||
|
||||
GRUBPLATFORM_arm = "uboot"
|
||||
GRUBPLATFORM_aarch64 = "efi"
|
||||
GRUBPLATFORM ??= "pc"
|
||||
|
||||
EXTRA_OECONF = "--with-platform=${GRUBPLATFORM} --disable-grub-mkfont --program-prefix="" \
|
||||
--enable-liblzma=no --enable-device-mapper=no --enable-libzfs=no \
|
||||
--enable-largefile \
|
||||
"
|
||||
|
||||
do_install_append () {
|
||||
install -d ${D}${sysconfdir}/grub.d
|
||||
rm -rf ${D}${libdir}/charset.alias
|
||||
}
|
||||
|
||||
# debugedit chokes on bare metal binaries
|
||||
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
||||
|
||||
RDEPENDS_${PN} = "diffutils freetype"
|
||||
|
||||
INSANE_SKIP_${PN} = "arch"
|
||||
INSANE_SKIP_${PN}-dbg = "arch"
|
||||
Reference in New Issue
Block a user