mirror of
https://git.yoctoproject.org/poky
synced 2026-04-05 08:02:25 +02:00
grub2: Fix build with gcc9
Disable -Waddress-of-packed-member being treated as error (From OE-Core rev: cd2b008acb9b46e00a34c0fc23188c3f73d3c74e) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -0,0 +1,249 @@
|
||||
Disable address-of-packed-member warnings with gcc9
|
||||
|
||||
gcc9 has turned this warning into error when -Werror is used, lets paper
|
||||
it over by turning it into a warning for now
|
||||
|
||||
Fixes
|
||||
error: taking address of packed member of 'struct head' may result in an unaligned pointer value [-Werror=address-of-packed-member]
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
--- a/grub-core/commands/lsacpi.c
|
||||
+++ b/grub-core/commands/lsacpi.c
|
||||
@@ -26,6 +26,9 @@
|
||||
#include <grub/dl.h>
|
||||
|
||||
#pragma GCC diagnostic ignored "-Wcast-align"
|
||||
+#if __GNUC__ >= 9
|
||||
+#pragma GCC diagnostic ignored "-Waddress-of-packed-member"
|
||||
+#endif
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
--- a/grub-core/commands/lspci.c
|
||||
+++ b/grub-core/commands/lspci.c
|
||||
@@ -26,6 +26,9 @@
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
+#if __GNUC__ >= 9
|
||||
+#pragma GCC diagnostic ignored "-Waddress-of-packed-member"
|
||||
+#endif
|
||||
struct grub_pci_classname
|
||||
{
|
||||
int class;
|
||||
@@ -171,7 +174,7 @@ grub_lspci_iter (grub_pci_device_t dev,
|
||||
|
||||
if (space == 0)
|
||||
continue;
|
||||
-
|
||||
+
|
||||
switch (space & GRUB_PCI_ADDR_SPACE_MASK)
|
||||
{
|
||||
case GRUB_PCI_ADDR_SPACE_IO:
|
||||
@@ -195,13 +198,13 @@ grub_lspci_iter (grub_pci_device_t dev,
|
||||
(space & GRUB_PCI_ADDR_MEM_MASK),
|
||||
space & GRUB_PCI_ADDR_MEM_PREFETCH
|
||||
? "prefetchable" : "non-prefetchable");
|
||||
-
|
||||
+
|
||||
}
|
||||
else
|
||||
grub_printf ("\t32-bit memory space %d at 0x%016llx [%s]\n",
|
||||
(unsigned) ((reg - GRUB_PCI_REG_ADDRESSES)
|
||||
/ sizeof (grub_uint32_t)) - 1,
|
||||
- (unsigned long long)
|
||||
+ (unsigned long long)
|
||||
(space & GRUB_PCI_ADDR_MEM_MASK),
|
||||
space & GRUB_PCI_ADDR_MEM_PREFETCH
|
||||
? "prefetchable" : "non-prefetchable");
|
||||
--- a/grub-core/fs/cpio_common.c
|
||||
+++ b/grub-core/fs/cpio_common.c
|
||||
@@ -26,7 +26,9 @@
|
||||
#include <grub/archelp.h>
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
-
|
||||
+#if __GNUC__ >= 9
|
||||
+#pragma GCC diagnostic ignored "-Waddress-of-packed-member"
|
||||
+#endif
|
||||
struct grub_archelp_data
|
||||
{
|
||||
grub_disk_t disk;
|
||||
@@ -108,7 +110,7 @@ grub_cpio_get_link_target (struct grub_a
|
||||
if (!ret)
|
||||
return NULL;
|
||||
|
||||
- err = grub_disk_read (data->disk, 0, data->dofs, data->size,
|
||||
+ err = grub_disk_read (data->disk, 0, data->dofs, data->size,
|
||||
ret);
|
||||
if (err)
|
||||
{
|
||||
--- a/grub-core/fs/hfs.c
|
||||
+++ b/grub-core/fs/hfs.c
|
||||
@@ -32,6 +32,9 @@
|
||||
#include <grub/fshelp.h>
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
+#if __GNUC__ >= 9
|
||||
+#pragma GCC diagnostic ignored "-Waddress-of-packed-member"
|
||||
+#endif
|
||||
|
||||
#define GRUB_HFS_SBLOCK 2
|
||||
#define GRUB_HFS_EMBED_HFSPLUS_SIG 0x482B
|
||||
@@ -882,7 +885,7 @@ grub_hfs_iterate_dir_it_dir (struct grub
|
||||
{
|
||||
struct grub_hfs_catalog_key *ckey = rec->key;
|
||||
struct grub_hfs_iterate_dir_node_found_ctx *ctx = hook_arg;
|
||||
-
|
||||
+
|
||||
/* Stop when the entries do not match anymore. */
|
||||
if (ckey->parent_dir != ctx->dir_be)
|
||||
return 1;
|
||||
@@ -1076,7 +1079,7 @@ macroman_to_utf8 (char *to, const grub_u
|
||||
{
|
||||
*optr++ = ':';
|
||||
continue;
|
||||
- }
|
||||
+ }
|
||||
if (!(*iptr & 0x80))
|
||||
{
|
||||
*optr++ = *iptr;
|
||||
@@ -1093,7 +1096,7 @@ utf8_to_macroman (grub_uint8_t *to, cons
|
||||
grub_uint8_t *end = to + 31;
|
||||
grub_uint8_t *optr = to;
|
||||
const char *iptr = from;
|
||||
-
|
||||
+
|
||||
while (*iptr && optr < end)
|
||||
{
|
||||
int i, clen;
|
||||
@@ -1103,7 +1106,7 @@ utf8_to_macroman (grub_uint8_t *to, cons
|
||||
*optr++ = '/';
|
||||
iptr++;
|
||||
continue;
|
||||
- }
|
||||
+ }
|
||||
if (!(*iptr & 0x80))
|
||||
{
|
||||
*optr++ = *iptr++;
|
||||
@@ -1164,7 +1167,7 @@ lookup_file (grub_fshelp_node_t dir,
|
||||
*foundnode = grub_malloc (sizeof (struct grub_fshelp_node));
|
||||
if (!*foundnode)
|
||||
return grub_errno;
|
||||
-
|
||||
+
|
||||
(*foundnode)->inode = grub_be_to_cpu32 (fdrec.dir.dirid);
|
||||
(*foundnode)->fdrec = fdrec;
|
||||
(*foundnode)->data = dir->data;
|
||||
@@ -1265,7 +1268,7 @@ grub_hfs_dir (grub_device_t device, cons
|
||||
.hook_data = hook_data
|
||||
};
|
||||
grub_fshelp_node_t found = NULL;
|
||||
-
|
||||
+
|
||||
grub_dl_ref (my_mod);
|
||||
|
||||
data = grub_hfs_mount (device->disk);
|
||||
@@ -1294,7 +1297,7 @@ grub_hfs_open (struct grub_file *file, c
|
||||
{
|
||||
struct grub_hfs_data *data;
|
||||
grub_fshelp_node_t found = NULL;
|
||||
-
|
||||
+
|
||||
grub_dl_ref (my_mod);
|
||||
|
||||
data = grub_hfs_mount (file->device->disk);
|
||||
--- a/grub-core/fs/hfsplus.c
|
||||
+++ b/grub-core/fs/hfsplus.c
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
/* HFS+ is documented at http://developer.apple.com/technotes/tn/tn1150.html */
|
||||
|
||||
-#define grub_fshelp_node grub_hfsplus_file
|
||||
+#define grub_fshelp_node grub_hfsplus_file
|
||||
#include <grub/err.h>
|
||||
#include <grub/file.h>
|
||||
#include <grub/mm.h>
|
||||
@@ -34,6 +34,9 @@
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
+#if __GNUC__ >= 9
|
||||
+#pragma GCC diagnostic ignored "-Waddress-of-packed-member"
|
||||
+#endif
|
||||
/* The type of node. */
|
||||
enum grub_hfsplus_btnode_type
|
||||
{
|
||||
@@ -145,7 +148,7 @@ grub_hfsplus_read_block (grub_fshelp_nod
|
||||
{
|
||||
struct grub_hfsplus_btnode *nnode = 0;
|
||||
grub_disk_addr_t blksleft = fileblock;
|
||||
- struct grub_hfsplus_extent *extents = node->compressed
|
||||
+ struct grub_hfsplus_extent *extents = node->compressed
|
||||
? &node->resource_extents[0] : &node->extents[0];
|
||||
|
||||
while (1)
|
||||
@@ -461,7 +464,7 @@ grub_hfsplus_cmp_extkey (struct grub_hfs
|
||||
|
||||
if (extkey_a->type < extkey_b->type)
|
||||
return -1;
|
||||
-
|
||||
+
|
||||
akey = grub_be_to_cpu32 (extkey_a->start);
|
||||
if (akey > extkey_b->start)
|
||||
return 1;
|
||||
@@ -548,7 +551,7 @@ grub_hfsplus_btree_search (struct grub_h
|
||||
struct grub_hfsplus_key_internal *key,
|
||||
int (*compare_keys) (struct grub_hfsplus_key *keya,
|
||||
struct grub_hfsplus_key_internal *keyb),
|
||||
- struct grub_hfsplus_btnode **matchnode,
|
||||
+ struct grub_hfsplus_btnode **matchnode,
|
||||
grub_off_t *keyoffset)
|
||||
{
|
||||
grub_uint64_t currnode;
|
||||
--- a/grub-core/fs/jfs.c
|
||||
+++ b/grub-core/fs/jfs.c
|
||||
@@ -28,6 +28,9 @@
|
||||
#include <grub/i18n.h>
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
+#if __GNUC__ >= 9
|
||||
+#pragma GCC diagnostic ignored "-Waddress-of-packed-member"
|
||||
+#endif
|
||||
|
||||
#define GRUB_JFS_MAX_SYMLNK_CNT 8
|
||||
#define GRUB_JFS_FILETYPE_MASK 0170000
|
||||
--- a/grub-core/kern/efi/efi.c
|
||||
+++ b/grub-core/kern/efi/efi.c
|
||||
@@ -29,6 +29,9 @@
|
||||
#include <grub/mm.h>
|
||||
#include <grub/loader.h>
|
||||
|
||||
+#if __GNUC__ >= 9
|
||||
+#pragma GCC diagnostic ignored "-Waddress-of-packed-member"
|
||||
+#endif
|
||||
/* The handle of GRUB itself. Filled in by the startup code. */
|
||||
grub_efi_handle_t grub_efi_image_handle;
|
||||
|
||||
@@ -201,7 +204,7 @@ grub_efi_set_variable(const char *var, c
|
||||
|
||||
r = grub_efi_system_table->runtime_services;
|
||||
|
||||
- status = efi_call_5 (r->set_variable, var16, guid,
|
||||
+ status = efi_call_5 (r->set_variable, var16, guid,
|
||||
(GRUB_EFI_VARIABLE_NON_VOLATILE
|
||||
| GRUB_EFI_VARIABLE_BOOTSERVICE_ACCESS
|
||||
| GRUB_EFI_VARIABLE_RUNTIME_ACCESS),
|
||||
--- a/grub-core/loader/efi/chainloader.c
|
||||
+++ b/grub-core/loader/efi/chainloader.c
|
||||
@@ -41,6 +41,9 @@
|
||||
#endif
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
+#if __GNUC__ >= 9
|
||||
+#pragma GCC diagnostic ignored "-Waddress-of-packed-member"
|
||||
+#endif
|
||||
|
||||
static grub_dl_t my_mod;
|
||||
|
||||
@@ -21,6 +21,7 @@ SRC_URI = "https://ftp.gnu.org/gnu/grub/grub-${PV}.tar.gz \
|
||||
file://gcc8.patch \
|
||||
file://0001-x86-64-Treat-R_X86_64_PLT32-as-R_X86_64_PC32.patch \
|
||||
file://0001-grub-setup-Debug-message-cleanup.patch \
|
||||
file://disable-address-of-packed-member.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "1116d1f60c840e6dbd67abbc99acb45d"
|
||||
SRC_URI[sha256sum] = "660ee136fbcee08858516ed4de2ad87068bfe1b6b8b37896ce3529ff054a726d"
|
||||
|
||||
Reference in New Issue
Block a user