All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] fix gcc9 build with -Werror=address-of-packed-member
@ 2019-04-09 10:46 Michael Chang
  2019-04-09 10:46 ` [PATCH 1/8] cpio: fix gcc9 error address-of-packed-member Michael Chang
                   ` (8 more replies)
  0 siblings, 9 replies; 13+ messages in thread
From: Michael Chang @ 2019-04-09 10:46 UTC (permalink / raw)
  To: grub-devel

This patch set attempts to resolve the build failure in openSUSE build
service equipped with new gcc 9 compiler, which has added a new warning
flag -Waddress-of-packed-member. 

The new warning performs the check for taking the address of packed
member directly to a pointer variable with higher alignment requirement
and the outcome is risky to memory alignment fault on some architecture
when deferencing it.

Please help to review.

Thanks.

Michael Chang (8):
  cpio: fix gcc9 error address-of-packed-member
  jfs: fix gcc9 error address-of-packed-member
  hfs: fix gcc9 error address-of-packed-member
  hfsplus: fix gcc9 error address-of-packed-member
  acpi: fix gcc9 error address-of-packed-member
  usbtest: fix gcc9 error address-of-packed-member
  chainloader: fix gcc9 error address-of-packed-member
  efi: fix gcc9 error address-of-packed-member

 grub-core/commands/usbtest.c       | 13 ++++++++-
 grub-core/fs/cpio.c                |  5 ++--
 grub-core/fs/cpio_be.c             |  5 ++--
 grub-core/fs/hfsplus.c             | 57 ++++++++++++++++++++++++++------------
 grub-core/fs/jfs.c                 |  5 ++--
 grub-core/kern/efi/efi.c           | 27 ++++++++++++++++--
 grub-core/loader/efi/chainloader.c | 12 ++++++--
 include/grub/acpi.h                |  2 +-
 include/grub/hfs.h                 |  2 +-
 9 files changed, 96 insertions(+), 32 deletions(-)

-- 
2.16.4



^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH 1/8] cpio: fix gcc9 error address-of-packed-member
  2019-04-09 10:46 [PATCH 0/8] fix gcc9 build with -Werror=address-of-packed-member Michael Chang
@ 2019-04-09 10:46 ` Michael Chang
  2019-04-09 10:46 ` [PATCH 2/8] jfs: " Michael Chang
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Michael Chang @ 2019-04-09 10:46 UTC (permalink / raw)
  To: grub-devel

Change the read_number function to use void* type as its first argument
to silence the warning. The pointer is later type casted to
grub_uint16_t* and use grub_get_unaligned16 for safely deferencing it
for the value.

The solved gcc9 error like this.

[   59s] In file included from ../grub-core/fs/cpio.c:51:
[   59s] ../grub-core/fs/cpio_common.c: In function 'grub_cpio_find_file':
[   59s] ../grub-core/fs/cpio_common.c:58:31: error: taking address of packed member of 'struct head' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[   59s]    58 |   data->size = read_number (hd.filesize, ARRAY_SIZE (hd.filesize));
[   59s]       |                             ~~^~~~~~~~~
[   59s] ../grub-core/fs/cpio_common.c:60:29: error: taking address of packed member of 'struct head' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[   59s]    60 |     *mtime = read_number (hd.mtime, ARRAY_SIZE (hd.mtime));
[   59s]       |                           ~~^~~~~~
[   59s] ../grub-core/fs/cpio_common.c:61:28: error: taking address of packed member of 'struct head' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[   59s]    61 |   modeval = read_number (hd.mode, ARRAY_SIZE (hd.mode));
[   59s]       |                          ~~^~~~~
[   59s] ../grub-core/fs/cpio_common.c:62:29: error: taking address of packed member of 'struct head' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[   59s]    62 |   namesize = read_number (hd.namesize, ARRAY_SIZE (hd.namesize));
[   59s]       |                           ~~^~~~~~~~~
[   59s] In file included from ../grub-core/fs/cpio_be.c:51:
[   59s] ../grub-core/fs/cpio_common.c: In function 'grub_cpio_find_file':
[   59s] ../grub-core/fs/cpio_common.c:58:31: error: taking address of packed member of 'struct head' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[   59s]    58 |   data->size = read_number (hd.filesize, ARRAY_SIZE (hd.filesize));
[   59s]       |                             ~~^~~~~~~~~
[   59s] ../grub-core/fs/cpio_common.c:60:29: error: taking address of packed member of 'struct head' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[   59s]    60 |     *mtime = read_number (hd.mtime, ARRAY_SIZE (hd.mtime));
[   59s]       |                           ~~^~~~~~
[   59s] ../grub-core/fs/cpio_common.c:61:28: error: taking address of packed member of 'struct head' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[   59s]    61 |   modeval = read_number (hd.mode, ARRAY_SIZE (hd.mode));
[   59s]       |                          ~~^~~~~
[   59s] ../grub-core/fs/cpio_common.c:62:29: error: taking address of packed member of 'struct head' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[   59s]    62 |   namesize = read_number (hd.namesize, ARRAY_SIZE (hd.namesize));
[   59s]       |                           ~~^~~~~~~~~

Signed-off-by: Michael Chang <mchang@suse.com>
---
 grub-core/fs/cpio.c    | 5 +++--
 grub-core/fs/cpio_be.c | 5 +++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/grub-core/fs/cpio.c b/grub-core/fs/cpio.c
index dab5f9898..a1aa66689 100644
--- a/grub-core/fs/cpio.c
+++ b/grub-core/fs/cpio.c
@@ -38,11 +38,12 @@ struct head
 } GRUB_PACKED;
 
 static inline unsigned long long
-read_number (const grub_uint16_t *arr, grub_size_t size)
+read_number (const void *arr, grub_size_t size)
 {
   long long ret = 0;
+  const grub_uint16_t *p = (const grub_uint16_t *)arr;
   while (size--)
-    ret = (ret << 16) | grub_le_to_cpu16 (*arr++);
+    ret = (ret << 16) | grub_le_to_cpu16 (grub_get_unaligned16 (p++));
   return ret;
 }
 
diff --git a/grub-core/fs/cpio_be.c b/grub-core/fs/cpio_be.c
index 846548892..9460d0ec1 100644
--- a/grub-core/fs/cpio_be.c
+++ b/grub-core/fs/cpio_be.c
@@ -38,11 +38,12 @@ struct head
 } GRUB_PACKED;
 
 static inline unsigned long long
-read_number (const grub_uint16_t *arr, grub_size_t size)
+read_number (const void *arr, grub_size_t size)
 {
   long long ret = 0;
+  const grub_uint16_t *p = (const grub_uint16_t *)arr;
   while (size--)
-    ret = (ret << 16) | grub_be_to_cpu16 (*arr++);
+    ret = (ret << 16) | grub_be_to_cpu16 (grub_get_unaligned16 (p++));
   return ret;
 }
 
-- 
2.16.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 2/8] jfs: fix gcc9 error address-of-packed-member
  2019-04-09 10:46 [PATCH 0/8] fix gcc9 build with -Werror=address-of-packed-member Michael Chang
  2019-04-09 10:46 ` [PATCH 1/8] cpio: fix gcc9 error address-of-packed-member Michael Chang
@ 2019-04-09 10:46 ` Michael Chang
  2019-04-09 10:46 ` [PATCH 3/8] hfs: " Michael Chang
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Michael Chang @ 2019-04-09 10:46 UTC (permalink / raw)
  To: grub-devel

Change the le_to_cpu16_copy function to use void* type as its second
argument to silence the warning. The pointer is later type casted to
grub_uint16_t* and use grub_get_unaligned16 for safely deferencing it
for the value.

The solved gcc9 error like this.

[   60s] ../grub-core/fs/jfs.c: In function 'grub_jfs_getent':
[   60s] ../grub-core/fs/jfs.c:557:44: error: taking address of packed member of 'struct grub_jfs_leaf_dirent' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[   60s]   557 |   le_to_cpu16_copy (filename + strpos, leaf->namepart, len < diro->data->namecomponentlen ? len
[   60s]       |                                        ~~~~^~~~~~~~~~
[   60s] ../grub-core/fs/jfs.c:570:48: error: taking address of packed member of 'struct grub_jfs_leaf_next_dirent' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[   60s]   570 |  le_to_cpu16_copy (filename + strpos, next_leaf->namepart, len < 15 ? len : 15);
[   60s]       |                                       ~~~~~~~~~^~~~~~~~~~
[   60s] cc1: all warnings being treated as errors

Signed-off-by: Michael Chang <mchang@suse.com>
---
 grub-core/fs/jfs.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/grub-core/fs/jfs.c b/grub-core/fs/jfs.c
index 09bc5608d..f1fe72192 100644
--- a/grub-core/fs/jfs.c
+++ b/grub-core/fs/jfs.c
@@ -499,10 +499,11 @@ grub_jfs_closedir (struct grub_jfs_diropen *diro)
 }
 
 static void
-le_to_cpu16_copy (grub_uint16_t *out, grub_uint16_t *in, grub_size_t len)
+le_to_cpu16_copy (grub_uint16_t *out, const void *in, grub_size_t len)
 {
+  const grub_uint16_t *p = (const grub_uint16_t *)in;
   while (len--)
-    *out++ = grub_le_to_cpu16 (*in++);
+    *out++ = grub_le_to_cpu16 (grub_get_unaligned16 (p++));
 }
 
 
-- 
2.16.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 3/8] hfs: fix gcc9 error address-of-packed-member
  2019-04-09 10:46 [PATCH 0/8] fix gcc9 build with -Werror=address-of-packed-member Michael Chang
  2019-04-09 10:46 ` [PATCH 1/8] cpio: fix gcc9 error address-of-packed-member Michael Chang
  2019-04-09 10:46 ` [PATCH 2/8] jfs: " Michael Chang
@ 2019-04-09 10:46 ` Michael Chang
  2019-04-09 10:46 ` [PATCH 4/8] hfsplus: " Michael Chang
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Michael Chang @ 2019-04-09 10:46 UTC (permalink / raw)
  To: grub-devel

Add missing packed attribute to struct grub_hfs_extent.

The solved gcc9 error like this.

[   83s] ../grub-core/fs/hfs.c: In function 'grub_hfs_iterate_records':
[   83s] ../grub-core/fs/hfs.c:699:9: error: taking address of packed member of 'struct grub_hfs_sblock' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[   83s]   699 |      ? (&data->sblock.catalog_recs)
[   83s]       |        ~^~~~~~~~~~~~~~~~~~~~~~~~~~~
[   83s] ../grub-core/fs/hfs.c:700:9: error: taking address of packed member of 'struct grub_hfs_sblock' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[   83s]   700 |      : (&data->sblock.extent_recs));
[   83s]       |        ~^~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Michael Chang <mchang@suse.com>
---
 include/grub/hfs.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/grub/hfs.h b/include/grub/hfs.h
index d935f5005..e27993c42 100644
--- a/include/grub/hfs.h
+++ b/include/grub/hfs.h
@@ -29,7 +29,7 @@ struct grub_hfs_extent
   /* The first physical block.  */
   grub_uint16_t first_block;
   grub_uint16_t count;
-};
+} GRUB_PACKED;
 
 /* HFS stores extents in groups of 3.  */
 typedef struct grub_hfs_extent grub_hfs_datarecord_t[3];
-- 
2.16.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 4/8] hfsplus: fix gcc9 error address-of-packed-member
  2019-04-09 10:46 [PATCH 0/8] fix gcc9 build with -Werror=address-of-packed-member Michael Chang
                   ` (2 preceding siblings ...)
  2019-04-09 10:46 ` [PATCH 3/8] hfs: " Michael Chang
@ 2019-04-09 10:46 ` Michael Chang
  2019-04-09 10:46 ` [PATCH 5/8] acpi: " Michael Chang
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Michael Chang @ 2019-04-09 10:46 UTC (permalink / raw)
  To: grub-devel

Use pointer to buffer returned by grub_malloc, which is supposed to be
suitably aligned for any data type, for holding the UTF16 string
converted to host by order from packed struct member catkey->name. The
aligned buffer is later used as argument to grub_utf16_to_utf8.

By using a new copy of buffer rather than catkey->name itself for
holding the endianess converted data, we can also get rid of the hunk
restoring byte order of catkey->name to what it was previously.

The solved gcc9 error like this.

[   59s] ../grub-core/fs/hfsplus.c: In function 'list_nodes':
[   59s] ../grub-core/fs/hfsplus.c:738:57: error: taking address of packed member of 'struct grub_hfsplus_catkey' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[   59s]   738 |   *grub_utf16_to_utf8 ((grub_uint8_t *) filename, catkey->name,
[   59s]       |                                                   ~~~~~~^~~~~~
[   59s] ../grub-core/fs/hfsplus.c: In function 'grub_hfsplus_label':
[   59s] ../grub-core/fs/hfsplus.c:1019:57: error: taking address of packed member of 'struct grub_hfsplus_catkey' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[   59s]  1019 |   *grub_utf16_to_utf8 ((grub_uint8_t *) (*label), catkey->name,
[   59s]       |                                                   ~~~~~~^~~~~~

Signed-off-by: Michael Chang <mchang@suse.com>
---
 grub-core/fs/hfsplus.c | 57 +++++++++++++++++++++++++++++++++++---------------
 1 file changed, 40 insertions(+), 17 deletions(-)

diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c
index 73ae95fbc..54786bb1c 100644
--- a/grub-core/fs/hfsplus.c
+++ b/grub-core/fs/hfsplus.c
@@ -661,6 +661,7 @@ list_nodes (void *record, void *hook_arg)
   char *filename;
   int i;
   struct grub_fshelp_node *node;
+  grub_uint16_t *keyname;
   struct grub_hfsplus_catfile *fileinfo;
   enum grub_fshelp_filetype type = GRUB_FSHELP_UNKNOWN;
   struct list_nodes_ctx *ctx = hook_arg;
@@ -719,32 +720,34 @@ list_nodes (void *record, void *hook_arg)
   if (! filename)
     return 0;
 
+  keyname = grub_malloc (grub_be_to_cpu16 (catkey->namelen) * sizeof (*keyname));
+  if (!keyname)
+    {
+      grub_free (filename);
+      return 0;
+    }
+
   /* Make sure the byte order of the UTF16 string is correct.  */
   for (i = 0; i < grub_be_to_cpu16 (catkey->namelen); i++)
     {
-      catkey->name[i] = grub_be_to_cpu16 (catkey->name[i]);
+      keyname[i] = grub_be_to_cpu16 (catkey->name[i]);
 
-      if (catkey->name[i] == '/')
-	catkey->name[i] = ':';
+      if (keyname[i] == '/')
+	keyname[i] = ':';
 
       /* If the name is obviously invalid, skip this node.  */
-      if (catkey->name[i] == 0)
+      if (keyname[i] == 0)
 	{
+	  grub_free (keyname);
 	  grub_free (filename);
 	  return 0;
 	}
     }
 
-  *grub_utf16_to_utf8 ((grub_uint8_t *) filename, catkey->name,
+  *grub_utf16_to_utf8 ((grub_uint8_t *) filename, keyname,
 		       grub_be_to_cpu16 (catkey->namelen)) = '\0';
 
-  /* Restore the byte order to what it was previously.  */
-  for (i = 0; i < grub_be_to_cpu16 (catkey->namelen); i++)
-    {
-      if (catkey->name[i] == ':')
-	catkey->name[i] = '/';
-      catkey->name[i] = grub_be_to_cpu16 (catkey->name[i]);
-    }
+  grub_free (keyname);
 
   /* hfs+ is case insensitive.  */
   if (! ctx->dir->data->case_sensitive)
@@ -975,6 +978,7 @@ grub_hfsplus_label (grub_device_t device, char **label)
   grub_disk_t disk = device->disk;
   struct grub_hfsplus_catkey *catkey;
   int i, label_len;
+  grub_uint16_t *label_name;
   struct grub_hfsplus_key_internal intern;
   struct grub_hfsplus_btnode *node = NULL;
   grub_disk_addr_t ptr = 0;
@@ -1003,22 +1007,41 @@ grub_hfsplus_label (grub_device_t device, char **label)
     grub_hfsplus_btree_recptr (&data->catalog_tree, node, ptr);
 
   label_len = grub_be_to_cpu16 (catkey->namelen);
+  label_name = grub_malloc (label_len * sizeof (*label_name));
+  if (!label_name)
+    {
+      grub_free (node);
+      grub_free (data);
+      return grub_errno;
+    }
+
   for (i = 0; i < label_len; i++)
     {
-      catkey->name[i] = grub_be_to_cpu16 (catkey->name[i]);
+      label_name[i] = grub_be_to_cpu16 (catkey->name[i]);
 
       /* If the name is obviously invalid, skip this node.  */
-      if (catkey->name[i] == 0)
-	return 0;
+      if (label_name[i] == 0)
+	{
+	  grub_free (label_name);
+	  grub_free (node);
+	  grub_free (data);
+	  return 0;
+	}
     }
 
   *label = grub_malloc (label_len * GRUB_MAX_UTF8_PER_UTF16 + 1);
   if (! *label)
-    return grub_errno;
+    {
+      grub_free (label_name);
+      grub_free (node);
+      grub_free (data);
+      return grub_errno;
+    }
 
-  *grub_utf16_to_utf8 ((grub_uint8_t *) (*label), catkey->name,
+  *grub_utf16_to_utf8 ((grub_uint8_t *) (*label), label_name,
 		       label_len) = '\0';
 
+  grub_free (label_name);
   grub_free (node);
   grub_free (data);
 
-- 
2.16.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 5/8] acpi: fix gcc9 error address-of-packed-member
  2019-04-09 10:46 [PATCH 0/8] fix gcc9 build with -Werror=address-of-packed-member Michael Chang
                   ` (3 preceding siblings ...)
  2019-04-09 10:46 ` [PATCH 4/8] hfsplus: " Michael Chang
@ 2019-04-09 10:46 ` Michael Chang
  2019-04-09 10:46 ` [PATCH 6/8] usbtest: " Michael Chang
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Michael Chang @ 2019-04-09 10:46 UTC (permalink / raw)
  To: grub-devel

Add missing GRUB_PACKED attribute to struct grub_acpi_madt.

The solved gcc9 error like this.

[  233s] ../../grub-core/commands/lsacpi.c: In function 'disp_acpi_xsdt_table':
[  233s] ../../grub-core/commands/lsacpi.c:201:27: error: converting a packed 'struct grub_acpi_table_header' pointer (alignment 1) to a 'struct grub_acpi_madt' pointer (alignment 4) may result in an unaligned pointer value [-Werror=address-of-packed-member]
[  233s]   201 |  disp_madt_table ((struct grub_acpi_madt *) t);
[  233s]       |                           ^~~~~~~~~~~~~~
[  233s] In file included from ../../grub-core/commands/lsacpi.c:23:
[  233s] ../../include/grub/acpi.h:50:8: note: defined here
[  233s]    50 | struct grub_acpi_table_header
[  233s]       |        ^~~~~~~~~~~~~~~~~~~~~~
[  233s] ../../include/grub/acpi.h:90:8: note: defined here
[  233s]    90 | struct grub_acpi_madt
[  233s]       |        ^~~~~~~~~~~~~~
[  233s] ../../grub-core/commands/lsacpi.c: In function 'disp_acpi_rsdt_table':
[  233s] ../../grub-core/commands/lsacpi.c:225:27: error: converting a packed 'struct grub_acpi_table_header' pointer (alignment 1) to a 'struct grub_acpi_madt' pointer (alignment 4) may result in an unaligned pointer value [-Werror=address-of-packed-member]
[  233s]   225 |  disp_madt_table ((struct grub_acpi_madt *) t);
[  233s]       |                           ^~~~~~~~~~~~~~
[  233s] In file included from ../../grub-core/commands/lsacpi.c:23:
[  233s] ../../include/grub/acpi.h:50:8: note: defined here
[  233s]    50 | struct grub_acpi_table_header
[  233s]       |        ^~~~~~~~~~~~~~~~~~~~~~
[  233s] ../../include/grub/acpi.h:90:8: note: defined here
[  233s]    90 | struct grub_acpi_madt
[  233s]       |        ^~~~~~~~~~~~~~

Signed-off-by: Michael Chang <mchang@suse.com>
---
 include/grub/acpi.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/grub/acpi.h b/include/grub/acpi.h
index 66148f684..84f49487d 100644
--- a/include/grub/acpi.h
+++ b/include/grub/acpi.h
@@ -93,7 +93,7 @@ struct grub_acpi_madt
   grub_uint32_t lapic_addr;
   grub_uint32_t flags;
   struct grub_acpi_madt_entry_header entries[0];
-};
+} GRUB_PACKED;
 
 enum
   {
-- 
2.16.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 6/8] usbtest: fix gcc9 error address-of-packed-member
  2019-04-09 10:46 [PATCH 0/8] fix gcc9 build with -Werror=address-of-packed-member Michael Chang
                   ` (4 preceding siblings ...)
  2019-04-09 10:46 ` [PATCH 5/8] acpi: " Michael Chang
@ 2019-04-09 10:46 ` Michael Chang
  2019-04-09 10:46 ` [PATCH 7/8] chainloader: " Michael Chang
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Michael Chang @ 2019-04-09 10:46 UTC (permalink / raw)
  To: grub-devel

Copy the packed member descstrp->str to the buffer strbuf returned by
grub_malloc, which is supposed to be suitably aligned for any data type
and after we use strbuf as argument to grub_utf16_to_utf8.

The solved gcc9 error like this.

[  229s] ../../grub-core/commands/usbtest.c: In function 'grub_usb_get_string':
[  229s] ../../grub-core/commands/usbtest.c:104:58: error: taking address of packed member of 'struct grub_usb_desc_str' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[  229s]   104 |   *grub_utf16_to_utf8 ((grub_uint8_t *) *string, descstrp->str,
[  229s]       |                                                  ~~~~~~~~^~~~~

Signed-off-by: Michael Chang <mchang@suse.com>
---
 grub-core/commands/usbtest.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/grub-core/commands/usbtest.c b/grub-core/commands/usbtest.c
index 01cdca934..b42e746c0 100644
--- a/grub-core/commands/usbtest.c
+++ b/grub-core/commands/usbtest.c
@@ -69,6 +69,7 @@ grub_usb_get_string (grub_usb_device_t dev, grub_uint8_t index, int langid,
 {
   struct grub_usb_desc_str descstr;
   struct grub_usb_desc_str *descstrp;
+  grub_uint16_t *strbuf;
   grub_usb_err_t err;
 
   /* Only get the length.  */
@@ -101,8 +102,18 @@ grub_usb_get_string (grub_usb_device_t dev, grub_uint8_t index, int langid,
       return GRUB_USB_ERR_INTERNAL;
     }
 
-  *grub_utf16_to_utf8 ((grub_uint8_t *) *string, descstrp->str,
+  strbuf = grub_malloc (descstrp->length - sizeof (*descstrp));
+  if (!strbuf)
+    {
+      grub_free (*string);
+      grub_free (descstrp);
+      return GRUB_USB_ERR_INTERNAL;
+    }
+
+  grub_memcpy (strbuf, descstrp->str, descstrp->length - sizeof (*descstrp));
+  *grub_utf16_to_utf8 ((grub_uint8_t *) *string, strbuf,
 		       descstrp->length / 2 - 1) = 0;
+  grub_free (strbuf);
   grub_free (descstrp);
 
   return GRUB_USB_ERR_NONE;
-- 
2.16.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 7/8] chainloader: fix gcc9 error address-of-packed-member
  2019-04-09 10:46 [PATCH 0/8] fix gcc9 build with -Werror=address-of-packed-member Michael Chang
                   ` (5 preceding siblings ...)
  2019-04-09 10:46 ` [PATCH 6/8] usbtest: " Michael Chang
@ 2019-04-09 10:46 ` Michael Chang
  2019-04-09 10:46 ` [PATCH 8/8] efi: " Michael Chang
  2019-04-09 10:57 ` [PATCH 0/8] fix gcc9 build with -Werror=address-of-packed-member Vladimir 'phcoder' Serbinenko
  8 siblings, 0 replies; 13+ messages in thread
From: Michael Chang @ 2019-04-09 10:46 UTC (permalink / raw)
  To: grub-devel

Copy the packed member fp->path_name to the buffer path_name returned by
grub_malloc, which is supposed to be suitably aligned for any data type
and use path_name as argument to grub_utf8_to_utf16. After the function
grub_utf8_to_utf16 returns, copy the content of path_name back to
fp->path_name.

The solved gcc9 error like this.

[  243s] ../../grub-core/loader/efi/chainloader.c: In function 'copy_file_path':
[  243s] ../../grub-core/loader/efi/chainloader.c:136:32: error: taking address of packed member of 'struct grub_efi_file_path_device_path' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[  243s]   136 |   size = grub_utf8_to_utf16 (fp->path_name, len * GRUB_MAX_UTF16_PER_UTF8,
[  243s]       |                              ~~^~~~~~~~~~~
[  243s] ../../grub-core/loader/efi/chainloader.c:138:12: error: taking address of packed member of 'struct grub_efi_file_path_device_path' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[  243s]   138 |   for (p = fp->path_name; p < fp->path_name + size; p++)
[  243s]       |            ^~

Signed-off-by: Michael Chang <mchang@suse.com>
---
 grub-core/loader/efi/chainloader.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c
index f706b1ac3..cd92ea3f2 100644
--- a/grub-core/loader/efi/chainloader.c
+++ b/grub-core/loader/efi/chainloader.c
@@ -110,21 +110,27 @@ static void
 copy_file_path (grub_efi_file_path_device_path_t *fp,
 		const char *str, grub_efi_uint16_t len)
 {
-  grub_efi_char16_t *p;
+  grub_efi_char16_t *p, *path_name;
   grub_efi_uint16_t size;
 
   fp->header.type = GRUB_EFI_MEDIA_DEVICE_PATH_TYPE;
   fp->header.subtype = GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE;
 
-  size = grub_utf8_to_utf16 (fp->path_name, len * GRUB_MAX_UTF16_PER_UTF8,
+  path_name = grub_malloc (len * GRUB_MAX_UTF16_PER_UTF8 * sizeof (*path_name));
+  if (!path_name)
+    return;
+
+  size = grub_utf8_to_utf16 (path_name, len * GRUB_MAX_UTF16_PER_UTF8,
 			     (const grub_uint8_t *) str, len, 0);
-  for (p = fp->path_name; p < fp->path_name + size; p++)
+  for (p = path_name; p < path_name + size; p++)
     if (*p == '/')
       *p = '\\';
 
+  grub_memcpy (fp->path_name, path_name, size * sizeof (*fp->path_name));
   /* File Path is NULL terminated */
   fp->path_name[size++] = '\0';
   fp->header.length = size * sizeof (grub_efi_char16_t) + sizeof (*fp);
+  grub_free (path_name);
 }
 
 static grub_efi_device_path_t *
-- 
2.16.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCH 8/8] efi: fix gcc9 error address-of-packed-member
  2019-04-09 10:46 [PATCH 0/8] fix gcc9 build with -Werror=address-of-packed-member Michael Chang
                   ` (6 preceding siblings ...)
  2019-04-09 10:46 ` [PATCH 7/8] chainloader: " Michael Chang
@ 2019-04-09 10:46 ` Michael Chang
  2019-04-09 10:57 ` [PATCH 0/8] fix gcc9 build with -Werror=address-of-packed-member Vladimir 'phcoder' Serbinenko
  8 siblings, 0 replies; 13+ messages in thread
From: Michael Chang @ 2019-04-09 10:46 UTC (permalink / raw)
  To: grub-devel

Copy the packed member to the buffer returned by grub_malloc, which is
supposed to be suitably aligned for any data type, then use it as
argument to grub_utf16_to_utf8.

The solved gcc9 error like this.

[  255s] ../../grub-core/kern/efi/efi.c: In function 'grub_efi_get_filename':
[  255s] ../../grub-core/kern/efi/efi.c:410:60: error: taking address of packed member of 'struct grub_efi_file_path_device_path' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[  255s]   410 |    p = (char *) grub_utf16_to_utf8 ((unsigned char *) p, fp->path_name, len);
[  255s]       |                                                          ~~^~~~~~~~~~~
[  255s] ../../grub-core/kern/efi/efi.c: In function 'grub_efi_print_device_path':
[  255s] ../../grub-core/kern/efi/efi.c:900:33: error: taking address of packed member of 'struct grub_efi_file_path_device_path' may result in an unaligned pointer value [-Werror=address-of-packed-member]
[  255s]   900 |     *grub_utf16_to_utf8 (buf, fp->path_name,
[  255s]       |                               ~~^~~~~~~~~~~

Signed-off-by: Michael Chang <mchang@suse.com>
---
 grub-core/kern/efi/efi.c | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c
index 708581fcb..62cd9829e 100644
--- a/grub-core/kern/efi/efi.c
+++ b/grub-core/kern/efi/efi.c
@@ -369,6 +369,7 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0)
 	{
 	  grub_efi_file_path_device_path_t *fp;
 	  grub_efi_uint16_t len;
+	  grub_efi_char16_t *dup_name;
 
 	  *p++ = '/';
 
@@ -379,7 +380,16 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0)
 	  while (len > 0 && fp->path_name[len - 1] == 0)
 	    len--;
 
-	  p = (char *) grub_utf16_to_utf8 ((unsigned char *) p, fp->path_name, len);
+	  dup_name = grub_malloc (len * sizeof (*dup_name));
+	  if (!dup_name)
+	    {
+	      grub_free (name);
+	      return NULL;
+	    }
+	  p = (char *) grub_utf16_to_utf8 ((unsigned char *) p,
+					    grub_memcpy (dup_name, fp->path_name, len * sizeof (*dup_name)),
+					    len);
+	  grub_free (dup_name);
 	}
 
       dp = GRUB_EFI_NEXT_DEVICE_PATH (dp);
@@ -809,9 +819,20 @@ grub_efi_print_device_path (grub_efi_device_path_t *dp)
 		fp = (grub_efi_file_path_device_path_t *) dp;
 		buf = grub_malloc ((len - 4) * 2 + 1);
 		if (buf)
-		  *grub_utf16_to_utf8 (buf, fp->path_name,
+		  {
+		    grub_efi_char16_t *dup_name = grub_malloc (len - 4);
+		    if (!dup_name)
+		      {
+			grub_errno = GRUB_ERR_NONE;
+			grub_printf ("/File((null))");
+			grub_free (buf);
+			break;
+		      }
+		    *grub_utf16_to_utf8 (buf, grub_memcpy (dup_name, fp->path_name, len - 4),
 				       (len - 4) / sizeof (grub_efi_char16_t))
-		    = '\0';
+		      = '\0';
+		    grub_free (dup_name);
+		  }
 		else
 		  grub_errno = GRUB_ERR_NONE;
 		grub_printf ("/File(%s)", buf);
-- 
2.16.4



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH 0/8] fix gcc9 build with -Werror=address-of-packed-member
  2019-04-09 10:46 [PATCH 0/8] fix gcc9 build with -Werror=address-of-packed-member Michael Chang
                   ` (7 preceding siblings ...)
  2019-04-09 10:46 ` [PATCH 8/8] efi: " Michael Chang
@ 2019-04-09 10:57 ` Vladimir 'phcoder' Serbinenko
  2019-04-09 11:39   ` Michael Chang
  8 siblings, 1 reply; 13+ messages in thread
From: Vladimir 'phcoder' Serbinenko @ 2019-04-09 10:57 UTC (permalink / raw)
  To: The development of GNU GRUB

On Tue, Apr 9, 2019 at 8:48 PM Michael Chang <mchang@suse.com> wrote:
>
> This patch set attempts to resolve the build failure in openSUSE build
> service equipped with new gcc 9 compiler, which has added a new warning
> flag -Waddress-of-packed-member.
>
> The new warning performs the check for taking the address of packed
> member directly to a pointer variable with higher alignment requirement
> and the outcome is risky to memory alignment fault on some architecture
> when deferencing it.
The problem here is that there is no way to tell the compiler to
create a structure without padding but a pointer to which is aligned.
This is very common in GRUB. Consider a struct like following:
grub_uint16_t a;
grub_uint32_t b;
grub_uint16_t c[40];

This needs packed attribute as otherwise compiler will insert a
padding before b. Yet c is guaranteed to be aligned if the pointer to
the structure is aligned.
>
> Please help to review.
>
> Thanks.
>
> Michael Chang (8):
>   cpio: fix gcc9 error address-of-packed-member
>   jfs: fix gcc9 error address-of-packed-member
>   hfs: fix gcc9 error address-of-packed-member
>   hfsplus: fix gcc9 error address-of-packed-member
>   acpi: fix gcc9 error address-of-packed-member
>   usbtest: fix gcc9 error address-of-packed-member
>   chainloader: fix gcc9 error address-of-packed-member
>   efi: fix gcc9 error address-of-packed-member
>
>  grub-core/commands/usbtest.c       | 13 ++++++++-
>  grub-core/fs/cpio.c                |  5 ++--
>  grub-core/fs/cpio_be.c             |  5 ++--
>  grub-core/fs/hfsplus.c             | 57 ++++++++++++++++++++++++++------------
>  grub-core/fs/jfs.c                 |  5 ++--
>  grub-core/kern/efi/efi.c           | 27 ++++++++++++++++--
>  grub-core/loader/efi/chainloader.c | 12 ++++++--
>  include/grub/acpi.h                |  2 +-
>  include/grub/hfs.h                 |  2 +-
>  9 files changed, 96 insertions(+), 32 deletions(-)
>
> --
> 2.16.4
>
>
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel



-- 
Regards
Vladimir 'phcoder' Serbinenko


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 0/8] fix gcc9 build with -Werror=address-of-packed-member
  2019-04-09 10:57 ` [PATCH 0/8] fix gcc9 build with -Werror=address-of-packed-member Vladimir 'phcoder' Serbinenko
@ 2019-04-09 11:39   ` Michael Chang
  2019-04-09 12:15     ` Vladimir 'phcoder' Serbinenko
  0 siblings, 1 reply; 13+ messages in thread
From: Michael Chang @ 2019-04-09 11:39 UTC (permalink / raw)
  To: The development of GNU GRUB

On Tue, Apr 09, 2019 at 08:57:25PM +1000, Vladimir 'phcoder' Serbinenko wrote:
> On Tue, Apr 9, 2019 at 8:48 PM Michael Chang <mchang@suse.com> wrote:
> >
> > This patch set attempts to resolve the build failure in openSUSE build
> > service equipped with new gcc 9 compiler, which has added a new warning
> > flag -Waddress-of-packed-member.
> >
> > The new warning performs the check for taking the address of packed
> > member directly to a pointer variable with higher alignment requirement
> > and the outcome is risky to memory alignment fault on some architecture
> > when deferencing it.
> The problem here is that there is no way to tell the compiler to
> create a structure without padding but a pointer to which is aligned.
> This is very common in GRUB. Consider a struct like following:
> grub_uint16_t a;
> grub_uint32_t b;
> grub_uint16_t c[40];
> 
> This needs packed attribute as otherwise compiler will insert a
> padding before b. Yet c is guaranteed to be aligned if the pointer to
> the structure is aligned.

But sometimes it is not easy to know as the packed structure could be
embedded to another and also it could map to a specific portion in
memory read from a file, with no guarantee where will be started (for eg
via searching occurrence of specific magic number ..)

Thanks,
Michael

> >
> > Please help to review.
> >
> > Thanks.
> >
> > Michael Chang (8):
> >   cpio: fix gcc9 error address-of-packed-member
> >   jfs: fix gcc9 error address-of-packed-member
> >   hfs: fix gcc9 error address-of-packed-member
> >   hfsplus: fix gcc9 error address-of-packed-member
> >   acpi: fix gcc9 error address-of-packed-member
> >   usbtest: fix gcc9 error address-of-packed-member
> >   chainloader: fix gcc9 error address-of-packed-member
> >   efi: fix gcc9 error address-of-packed-member
> >
> >  grub-core/commands/usbtest.c       | 13 ++++++++-
> >  grub-core/fs/cpio.c                |  5 ++--
> >  grub-core/fs/cpio_be.c             |  5 ++--
> >  grub-core/fs/hfsplus.c             | 57 ++++++++++++++++++++++++++------------
> >  grub-core/fs/jfs.c                 |  5 ++--
> >  grub-core/kern/efi/efi.c           | 27 ++++++++++++++++--
> >  grub-core/loader/efi/chainloader.c | 12 ++++++--
> >  include/grub/acpi.h                |  2 +-
> >  include/grub/hfs.h                 |  2 +-
> >  9 files changed, 96 insertions(+), 32 deletions(-)
> >
> > --
> > 2.16.4
> >
> >
> > _______________________________________________
> > Grub-devel mailing list
> > Grub-devel@gnu.org
> > https://lists.gnu.org/mailman/listinfo/grub-devel
> 
> 
> 
> -- 
> Regards
> Vladimir 'phcoder' Serbinenko
> 
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel
> 


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 0/8] fix gcc9 build with -Werror=address-of-packed-member
  2019-04-09 11:39   ` Michael Chang
@ 2019-04-09 12:15     ` Vladimir 'phcoder' Serbinenko
  2019-04-10  4:41       ` Michael Chang
  0 siblings, 1 reply; 13+ messages in thread
From: Vladimir 'phcoder' Serbinenko @ 2019-04-09 12:15 UTC (permalink / raw)
  To: The development of GNU GRUB

On Tue, Apr 9, 2019 at 9:40 PM Michael Chang <mchang@suse.com> wrote:
>
> On Tue, Apr 09, 2019 at 08:57:25PM +1000, Vladimir 'phcoder' Serbinenko wrote:
> > On Tue, Apr 9, 2019 at 8:48 PM Michael Chang <mchang@suse.com> wrote:
> > >
> > > This patch set attempts to resolve the build failure in openSUSE build
> > > service equipped with new gcc 9 compiler, which has added a new warning
> > > flag -Waddress-of-packed-member.
> > >
> > > The new warning performs the check for taking the address of packed
> > > member directly to a pointer variable with higher alignment requirement
> > > and the outcome is risky to memory alignment fault on some architecture
> > > when deferencing it.
> > The problem here is that there is no way to tell the compiler to
> > create a structure without padding but a pointer to which is aligned.
> > This is very common in GRUB. Consider a struct like following:
> > grub_uint16_t a;
> > grub_uint32_t b;
> > grub_uint16_t c[40];
> >
> > This needs packed attribute as otherwise compiler will insert a
> > padding before b. Yet c is guaranteed to be aligned if the pointer to
> > the structure is aligned.
>
> But sometimes it is not easy to know as the packed structure could be
> embedded to another and also it could map to a specific portion in
> memory read from a file, with no guarantee where will be started (for eg
> via searching occurrence of specific magic number ..)
Yes. It's not easy. But that's why just following warnings isn't
always the good way to go [without going into specific details for
particular patches].
>
> Thanks,
> Michael
>
> > >
> > > Please help to review.
> > >
> > > Thanks.
> > >
> > > Michael Chang (8):
> > >   cpio: fix gcc9 error address-of-packed-member
> > >   jfs: fix gcc9 error address-of-packed-member
> > >   hfs: fix gcc9 error address-of-packed-member
> > >   hfsplus: fix gcc9 error address-of-packed-member
> > >   acpi: fix gcc9 error address-of-packed-member
> > >   usbtest: fix gcc9 error address-of-packed-member
> > >   chainloader: fix gcc9 error address-of-packed-member
> > >   efi: fix gcc9 error address-of-packed-member
> > >
> > >  grub-core/commands/usbtest.c       | 13 ++++++++-
> > >  grub-core/fs/cpio.c                |  5 ++--
> > >  grub-core/fs/cpio_be.c             |  5 ++--
> > >  grub-core/fs/hfsplus.c             | 57 ++++++++++++++++++++++++++------------
> > >  grub-core/fs/jfs.c                 |  5 ++--
> > >  grub-core/kern/efi/efi.c           | 27 ++++++++++++++++--
> > >  grub-core/loader/efi/chainloader.c | 12 ++++++--
> > >  include/grub/acpi.h                |  2 +-
> > >  include/grub/hfs.h                 |  2 +-
> > >  9 files changed, 96 insertions(+), 32 deletions(-)
> > >
> > > --
> > > 2.16.4
> > >
> > >
> > > _______________________________________________
> > > Grub-devel mailing list
> > > Grub-devel@gnu.org
> > > https://lists.gnu.org/mailman/listinfo/grub-devel
> >
> >
> >
> > --
> > Regards
> > Vladimir 'phcoder' Serbinenko
> >
> > _______________________________________________
> > Grub-devel mailing list
> > Grub-devel@gnu.org
> > https://lists.gnu.org/mailman/listinfo/grub-devel
> >
>
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel



-- 
Regards
Vladimir 'phcoder' Serbinenko


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH 0/8] fix gcc9 build with -Werror=address-of-packed-member
  2019-04-09 12:15     ` Vladimir 'phcoder' Serbinenko
@ 2019-04-10  4:41       ` Michael Chang
  0 siblings, 0 replies; 13+ messages in thread
From: Michael Chang @ 2019-04-10  4:41 UTC (permalink / raw)
  To: The development of GNU GRUB

On Tue, Apr 09, 2019 at 10:15:33PM +1000, Vladimir 'phcoder' Serbinenko wrote:
> On Tue, Apr 9, 2019 at 9:40 PM Michael Chang <mchang@suse.com> wrote:
> >
> > On Tue, Apr 09, 2019 at 08:57:25PM +1000, Vladimir 'phcoder' Serbinenko wrote:
> > > On Tue, Apr 9, 2019 at 8:48 PM Michael Chang <mchang@suse.com> wrote:
> > > >
> > > > This patch set attempts to resolve the build failure in openSUSE build
> > > > service equipped with new gcc 9 compiler, which has added a new warning
> > > > flag -Waddress-of-packed-member.
> > > >
> > > > The new warning performs the check for taking the address of packed
> > > > member directly to a pointer variable with higher alignment requirement
> > > > and the outcome is risky to memory alignment fault on some architecture
> > > > when deferencing it.
> > > The problem here is that there is no way to tell the compiler to
> > > create a structure without padding but a pointer to which is aligned.
> > > This is very common in GRUB. Consider a struct like following:
> > > grub_uint16_t a;
> > > grub_uint32_t b;
> > > grub_uint16_t c[40];
> > >
> > > This needs packed attribute as otherwise compiler will insert a
> > > padding before b. Yet c is guaranteed to be aligned if the pointer to
> > > the structure is aligned.
> >
> > But sometimes it is not easy to know as the packed structure could be
> > embedded to another and also it could map to a specific portion in
> > memory read from a file, with no guarantee where will be started (for eg
> > via searching occurrence of specific magic number ..)
> Yes. It's not easy. But that's why just following warnings isn't
> always the good way to go [without going into specific details for
> particular patches].

OK. Point taken. I'll go through the pathes again and ignore the
warnings if the diagnostic is found to be false positive.

Thanks,
Michael

> >
> > Thanks,
> > Michael
> >
> > > >
> > > > Please help to review.
> > > >
> > > > Thanks.
> > > >
> > > > Michael Chang (8):
> > > >   cpio: fix gcc9 error address-of-packed-member
> > > >   jfs: fix gcc9 error address-of-packed-member
> > > >   hfs: fix gcc9 error address-of-packed-member
> > > >   hfsplus: fix gcc9 error address-of-packed-member
> > > >   acpi: fix gcc9 error address-of-packed-member
> > > >   usbtest: fix gcc9 error address-of-packed-member
> > > >   chainloader: fix gcc9 error address-of-packed-member
> > > >   efi: fix gcc9 error address-of-packed-member
> > > >
> > > >  grub-core/commands/usbtest.c       | 13 ++++++++-
> > > >  grub-core/fs/cpio.c                |  5 ++--
> > > >  grub-core/fs/cpio_be.c             |  5 ++--
> > > >  grub-core/fs/hfsplus.c             | 57 ++++++++++++++++++++++++++------------
> > > >  grub-core/fs/jfs.c                 |  5 ++--
> > > >  grub-core/kern/efi/efi.c           | 27 ++++++++++++++++--
> > > >  grub-core/loader/efi/chainloader.c | 12 ++++++--
> > > >  include/grub/acpi.h                |  2 +-
> > > >  include/grub/hfs.h                 |  2 +-
> > > >  9 files changed, 96 insertions(+), 32 deletions(-)
> > > >
> > > > --
> > > > 2.16.4
> > > >
> > > >
> > > > _______________________________________________
> > > > Grub-devel mailing list
> > > > Grub-devel@gnu.org
> > > > https://lists.gnu.org/mailman/listinfo/grub-devel
> > >
> > >
> > >
> > > --
> > > Regards
> > > Vladimir 'phcoder' Serbinenko
> > >
> > > _______________________________________________
> > > Grub-devel mailing list
> > > Grub-devel@gnu.org
> > > https://lists.gnu.org/mailman/listinfo/grub-devel
> > >
> >
> > _______________________________________________
> > Grub-devel mailing list
> > Grub-devel@gnu.org
> > https://lists.gnu.org/mailman/listinfo/grub-devel
> 
> 
> 
> -- 
> Regards
> Vladimir 'phcoder' Serbinenko
> 
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2019-04-10  4:42 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-09 10:46 [PATCH 0/8] fix gcc9 build with -Werror=address-of-packed-member Michael Chang
2019-04-09 10:46 ` [PATCH 1/8] cpio: fix gcc9 error address-of-packed-member Michael Chang
2019-04-09 10:46 ` [PATCH 2/8] jfs: " Michael Chang
2019-04-09 10:46 ` [PATCH 3/8] hfs: " Michael Chang
2019-04-09 10:46 ` [PATCH 4/8] hfsplus: " Michael Chang
2019-04-09 10:46 ` [PATCH 5/8] acpi: " Michael Chang
2019-04-09 10:46 ` [PATCH 6/8] usbtest: " Michael Chang
2019-04-09 10:46 ` [PATCH 7/8] chainloader: " Michael Chang
2019-04-09 10:46 ` [PATCH 8/8] efi: " Michael Chang
2019-04-09 10:57 ` [PATCH 0/8] fix gcc9 build with -Werror=address-of-packed-member Vladimir 'phcoder' Serbinenko
2019-04-09 11:39   ` Michael Chang
2019-04-09 12:15     ` Vladimir 'phcoder' Serbinenko
2019-04-10  4:41       ` Michael Chang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.