mirror of
https://github.com/openwrt/openwrt.git
synced 2025-02-22 10:01:03 +00:00
grub2: bump to 2.04
* GCC 8 and 9 support. * Gnulib integration overhaul. * RISC-V support. * Xen PVH support. * Native UEFI secure boot support. * UEFI TPM driver. * New IEEE 1275 obdisk driver. * Btrfs RAID 5 and RIAD 6 support. * bootin from F2FS support. * PARTUUID support. * VLAN support. * Native DHCP support. * Many ARM and ARM64 fixes. * Many SPARC fixes. * Many IEEE 1275 fixes. * ...and tons of other fixes and cleanups... Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
This commit is contained in:
parent
5ca243153b
commit
3fa0f32a68
@ -10,14 +10,13 @@ include $(INCLUDE_DIR)/kernel.mk
|
|||||||
|
|
||||||
PKG_NAME:=grub
|
PKG_NAME:=grub
|
||||||
PKG_CPE_ID:=cpe:/a:gnu:grub2
|
PKG_CPE_ID:=cpe:/a:gnu:grub2
|
||||||
PKG_VERSION:=2.02
|
PKG_VERSION:=2.04
|
||||||
PKG_RELEASE:=3
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||||
PKG_SOURCE_URL:=@GNU/grub
|
PKG_SOURCE_URL:=@GNU/grub
|
||||||
PKG_HASH:=810b3798d316394f94096ec2797909dbf23c858e48f7b3830826b8daa06b7b0f
|
PKG_HASH:=e5292496995ad42dabe843a0192cf2a2c502e7ffcc7479398232b10a472df77d
|
||||||
|
|
||||||
PKG_FIXUP:=autoreconf
|
|
||||||
HOST_BUILD_PARALLEL:=1
|
HOST_BUILD_PARALLEL:=1
|
||||||
PKG_BUILD_DEPENDS:=grub2/host
|
PKG_BUILD_DEPENDS:=grub2/host
|
||||||
|
|
||||||
|
@ -1,71 +0,0 @@
|
|||||||
From 563b1da6e6ae7af46cc8354cadb5dab416989f0a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Michael Chang <mchang@suse.com>
|
|
||||||
Date: Mon, 26 Mar 2018 16:52:34 +0800
|
|
||||||
Subject: Fix packed-not-aligned error on GCC 8
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
When building with GCC 8, there are several errors regarding packed-not-aligned.
|
|
||||||
|
|
||||||
./include/grub/gpt_partition.h:79:1: error: alignment 1 of ‘struct grub_gpt_partentry’ is less than 8 [-Werror=packed-not-aligned]
|
|
||||||
|
|
||||||
This patch fixes the build error by cleaning up the ambiguity of placing
|
|
||||||
aligned structure in a packed one. In "struct grub_btrfs_time" and "struct
|
|
||||||
grub_gpt_part_type", the aligned attribute seems to be superfluous, and also
|
|
||||||
has to be packed, to ensure the structure is bit-to-bit mapped to the format
|
|
||||||
laid on disk. I think we could blame to copy and paste error here for the
|
|
||||||
mistake. In "struct efi_variable", we have to use grub_efi_packed_guid_t, as
|
|
||||||
the name suggests. :)
|
|
||||||
|
|
||||||
Signed-off-by: Michael Chang <mchang@suse.com>
|
|
||||||
Tested-by: Michael Chang <mchang@suse.com>
|
|
||||||
Tested-by: Paul Menzel <paulepanter@users.sourceforge.net>
|
|
||||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
|
||||||
---
|
|
||||||
grub-core/fs/btrfs.c | 2 +-
|
|
||||||
include/grub/efiemu/runtime.h | 2 +-
|
|
||||||
include/grub/gpt_partition.h | 2 +-
|
|
||||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c
|
|
||||||
index 4849c1ceb..be195448d 100644
|
|
||||||
--- a/grub-core/fs/btrfs.c
|
|
||||||
+++ b/grub-core/fs/btrfs.c
|
|
||||||
@@ -175,7 +175,7 @@ struct grub_btrfs_time
|
|
||||||
{
|
|
||||||
grub_int64_t sec;
|
|
||||||
grub_uint32_t nanosec;
|
|
||||||
-} __attribute__ ((aligned (4)));
|
|
||||||
+} GRUB_PACKED;
|
|
||||||
|
|
||||||
struct grub_btrfs_inode
|
|
||||||
{
|
|
||||||
diff --git a/include/grub/efiemu/runtime.h b/include/grub/efiemu/runtime.h
|
|
||||||
index 9b6b729f4..36d2dedf4 100644
|
|
||||||
--- a/include/grub/efiemu/runtime.h
|
|
||||||
+++ b/include/grub/efiemu/runtime.h
|
|
||||||
@@ -29,7 +29,7 @@ struct grub_efiemu_ptv_rel
|
|
||||||
|
|
||||||
struct efi_variable
|
|
||||||
{
|
|
||||||
- grub_efi_guid_t guid;
|
|
||||||
+ grub_efi_packed_guid_t guid;
|
|
||||||
grub_uint32_t namelen;
|
|
||||||
grub_uint32_t size;
|
|
||||||
grub_efi_uint32_t attributes;
|
|
||||||
diff --git a/include/grub/gpt_partition.h b/include/grub/gpt_partition.h
|
|
||||||
index 1b32f6725..9668a68c3 100644
|
|
||||||
--- a/include/grub/gpt_partition.h
|
|
||||||
+++ b/include/grub/gpt_partition.h
|
|
||||||
@@ -28,7 +28,7 @@ struct grub_gpt_part_type
|
|
||||||
grub_uint16_t data2;
|
|
||||||
grub_uint16_t data3;
|
|
||||||
grub_uint8_t data4[8];
|
|
||||||
-} __attribute__ ((aligned(8)));
|
|
||||||
+} GRUB_PACKED;
|
|
||||||
typedef struct grub_gpt_part_type grub_gpt_part_type_t;
|
|
||||||
|
|
||||||
#define GRUB_GPT_PARTITION_TYPE_EMPTY \
|
|
||||||
--
|
|
||||||
cgit v1.1-33-g03f6
|
|
@ -17,7 +17,7 @@
|
|||||||
int force;
|
int force;
|
||||||
int fs_probe;
|
int fs_probe;
|
||||||
int allow_floppy;
|
int allow_floppy;
|
||||||
@@ -178,6 +181,13 @@ argp_parser (int key, char *arg, struct argp_state *state)
|
@@ -178,6 +181,13 @@ argp_parser (int key, char *arg, struct
|
||||||
arguments->dev_map = xstrdup (arg);
|
arguments->dev_map = xstrdup (arg);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -42,7 +42,7 @@
|
|||||||
|
|
||||||
--- a/util/setup.c
|
--- a/util/setup.c
|
||||||
+++ b/util/setup.c
|
+++ b/util/setup.c
|
||||||
@@ -247,13 +247,12 @@ identify_partmap (grub_disk_t disk __attribute__ ((unused)),
|
@@ -252,13 +252,12 @@ identify_partmap (grub_disk_t disk __att
|
||||||
void
|
void
|
||||||
SETUP (const char *dir,
|
SETUP (const char *dir,
|
||||||
const char *boot_file, const char *core_file,
|
const char *boot_file, const char *core_file,
|
||||||
@ -55,8 +55,8 @@
|
|||||||
char *boot_img, *core_img, *boot_path;
|
char *boot_img, *core_img, *boot_path;
|
||||||
- char *root = 0;
|
- char *root = 0;
|
||||||
size_t boot_size, core_size;
|
size_t boot_size, core_size;
|
||||||
#ifdef GRUB_SETUP_BIOS
|
|
||||||
grub_uint16_t core_sectors;
|
grub_uint16_t core_sectors;
|
||||||
|
grub_device_t root_dev = 0, dest_dev, core_dev;
|
||||||
@@ -307,7 +306,10 @@ SETUP (const char *dir,
|
@@ -307,7 +306,10 @@ SETUP (const char *dir,
|
||||||
|
|
||||||
core_dev = dest_dev;
|
core_dev = dest_dev;
|
||||||
@ -80,7 +80,7 @@
|
|||||||
continue;
|
continue;
|
||||||
--- a/include/grub/util/install.h
|
--- a/include/grub/util/install.h
|
||||||
+++ b/include/grub/util/install.h
|
+++ b/include/grub/util/install.h
|
||||||
@@ -184,13 +184,13 @@ grub_install_get_image_target (const char *arg);
|
@@ -191,13 +191,13 @@ grub_install_get_image_target (const cha
|
||||||
void
|
void
|
||||||
grub_util_bios_setup (const char *dir,
|
grub_util_bios_setup (const char *dir,
|
||||||
const char *boot_file, const char *core_file,
|
const char *boot_file, const char *core_file,
|
||||||
@ -98,7 +98,7 @@
|
|||||||
|
|
||||||
--- a/util/grub-install.c
|
--- a/util/grub-install.c
|
||||||
+++ b/util/grub-install.c
|
+++ b/util/grub-install.c
|
||||||
@@ -1673,7 +1673,7 @@ main (int argc, char *argv[])
|
@@ -1712,7 +1712,7 @@ main (int argc, char *argv[])
|
||||||
/* Now perform the installation. */
|
/* Now perform the installation. */
|
||||||
if (install_bootsector)
|
if (install_bootsector)
|
||||||
grub_util_bios_setup (platdir, "boot.img", "core.img",
|
grub_util_bios_setup (platdir, "boot.img", "core.img",
|
||||||
@ -107,7 +107,7 @@
|
|||||||
fs_probe, allow_floppy, add_rs_codes);
|
fs_probe, allow_floppy, add_rs_codes);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1699,7 +1699,7 @@ main (int argc, char *argv[])
|
@@ -1738,7 +1738,7 @@ main (int argc, char *argv[])
|
||||||
/* Now perform the installation. */
|
/* Now perform the installation. */
|
||||||
if (install_bootsector)
|
if (install_bootsector)
|
||||||
grub_util_sparc_setup (platdir, "boot.img", "core.img",
|
grub_util_sparc_setup (platdir, "boot.img", "core.img",
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
|
|
||||||
index 3619458..060e0db 100644
|
|
||||||
--- a/po/Makefile.in.in
|
|
||||||
+++ b/po/Makefile.in.in
|
|
||||||
@@ -97,7 +97,7 @@ CATALOGS = @CATALOGS@
|
|
||||||
mv t-$@ $@
|
|
||||||
|
|
||||||
|
|
||||||
-all: check-macro-version all-@USE_NLS@
|
|
||||||
+all: all-@USE_NLS@
|
|
||||||
|
|
||||||
all-yes: stamp-po
|
|
||||||
all-no:
|
|
@ -1,16 +0,0 @@
|
|||||||
--- a/grub-core/gnulib/stdio.in.h
|
|
||||||
+++ b/grub-core/gnulib/stdio.in.h
|
|
||||||
@@ -695,13 +695,6 @@ _GL_WARN_ON_USE (getline, "getline is un
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-/* It is very rare that the developer ever has full control of stdin,
|
|
||||||
- so any use of gets warrants an unconditional warning; besides, C11
|
|
||||||
- removed it. */
|
|
||||||
-#undef gets
|
|
||||||
-#if HAVE_RAW_DECL_GETS
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
|
|
||||||
#if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@
|
|
||||||
struct obstack;
|
|
@ -33,8 +33,8 @@ Signed-off-by: Ismael Ripoll-Ripoll <iripoll@disca.upv.es>
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
- if (key == '\b')
|
- if (key == GRUB_TERM_BACKSPACE)
|
||||||
+ if (key == '\b' && cur_len)
|
+ if (key == GRUB_TERM_BACKSPACE && cur_len)
|
||||||
{
|
{
|
||||||
if (cur_len)
|
if (cur_len)
|
||||||
{
|
{
|
||||||
|
@ -1,75 +0,0 @@
|
|||||||
From 02702bdfe14d8a04643a45b03715f734ae34dbac Mon Sep 17 00:00:00 2001
|
|
||||||
From: "H.J. Lu" <hjl.tools@gmail.com>
|
|
||||||
Date: Sat, 17 Feb 2018 06:47:28 -0800
|
|
||||||
Subject: x86-64: Treat R_X86_64_PLT32 as R_X86_64_PC32
|
|
||||||
|
|
||||||
Starting from binutils commit bd7ab16b4537788ad53521c45469a1bdae84ad4a:
|
|
||||||
|
|
||||||
https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=bd7ab16b4537788ad53521c45469a1bdae84ad4a
|
|
||||||
|
|
||||||
x86-64 assembler generates R_X86_64_PLT32, instead of R_X86_64_PC32, for
|
|
||||||
32-bit PC-relative branches. Grub2 should treat R_X86_64_PLT32 as
|
|
||||||
R_X86_64_PC32.
|
|
||||||
|
|
||||||
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
|
|
||||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
|
||||||
|
|
||||||
Origin: upstream, https://git.savannah.gnu.org/cgit/grub.git/commit/?id=842c390469e2c2e10b5aa36700324cd3bde25875
|
|
||||||
Last-Update: 2018-07-30
|
|
||||||
|
|
||||||
Patch-Name: R_X86_64_PLT32.patch
|
|
||||||
---
|
|
||||||
grub-core/efiemu/i386/loadcore64.c | 1 +
|
|
||||||
grub-core/kern/x86_64/dl.c | 1 +
|
|
||||||
util/grub-mkimagexx.c | 1 +
|
|
||||||
util/grub-module-verifier.c | 1 +
|
|
||||||
4 files changed, 4 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/grub-core/efiemu/i386/loadcore64.c b/grub-core/efiemu/i386/loadcore64.c
|
|
||||||
index e49d0b6ff..18facf47f 100644
|
|
||||||
--- a/grub-core/efiemu/i386/loadcore64.c
|
|
||||||
+++ b/grub-core/efiemu/i386/loadcore64.c
|
|
||||||
@@ -98,6 +98,7 @@ grub_arch_efiemu_relocate_symbols64 (grub_efiemu_segment_t segs,
|
|
||||||
break;
|
|
||||||
|
|
||||||
case R_X86_64_PC32:
|
|
||||||
+ case R_X86_64_PLT32:
|
|
||||||
err = grub_efiemu_write_value (addr,
|
|
||||||
*addr32 + rel->r_addend
|
|
||||||
+ sym.off
|
|
||||||
diff --git a/grub-core/kern/x86_64/dl.c b/grub-core/kern/x86_64/dl.c
|
|
||||||
index 440690673..3a73e6e6c 100644
|
|
||||||
--- a/grub-core/kern/x86_64/dl.c
|
|
||||||
+++ b/grub-core/kern/x86_64/dl.c
|
|
||||||
@@ -70,6 +70,7 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr,
|
|
||||||
break;
|
|
||||||
|
|
||||||
case R_X86_64_PC32:
|
|
||||||
+ case R_X86_64_PLT32:
|
|
||||||
{
|
|
||||||
grub_int64_t value;
|
|
||||||
value = ((grub_int32_t) *addr32) + rel->r_addend + sym->st_value -
|
|
||||||
diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c
|
|
||||||
index e63f148e4..f20255a28 100644
|
|
||||||
--- a/util/grub-mkimagexx.c
|
|
||||||
+++ b/util/grub-mkimagexx.c
|
|
||||||
@@ -832,6 +832,7 @@ SUFFIX (relocate_addresses) (Elf_Ehdr *e, Elf_Shdr *sections,
|
|
||||||
break;
|
|
||||||
|
|
||||||
case R_X86_64_PC32:
|
|
||||||
+ case R_X86_64_PLT32:
|
|
||||||
{
|
|
||||||
grub_uint32_t *t32 = (grub_uint32_t *) target;
|
|
||||||
*t32 = grub_host_to_target64 (grub_target_to_host32 (*t32)
|
|
||||||
diff --git a/util/grub-module-verifier.c b/util/grub-module-verifier.c
|
|
||||||
index 9179285a5..a79271f66 100644
|
|
||||||
--- a/util/grub-module-verifier.c
|
|
||||||
+++ b/util/grub-module-verifier.c
|
|
||||||
@@ -19,6 +19,7 @@ struct grub_module_verifier_arch archs[] = {
|
|
||||||
-1
|
|
||||||
}, (int[]){
|
|
||||||
R_X86_64_PC32,
|
|
||||||
+ R_X86_64_PLT32,
|
|
||||||
-1
|
|
||||||
}
|
|
||||||
},
|
|
Loading…
x
Reference in New Issue
Block a user