On 14.07.19 20:48, Ramon Fried wrote:
On Sun, Jul 14, 2019 at 7:44 PM Heinrich Schuchardt <xypron.g...@gmx.de> wrote:

When building with GCC 9.1 an error occurs:

disk/part_efi.c: In function ‘gpt_verify_partitions’:
disk/part_efi.c:737:49: error: taking address of packed member of
‘struct _gpt_entry’ may result in an unaligned pointer value
[-Werror=address-of-packed-member]
   737 |   gpt_convert_efi_name_to_char(efi_str, gpt_e[i].partition_name,
       |                                         ~~~~~~~~^~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[1]: *** [scripts/Makefile.build:279: disk/part_efi.o] Error 1
make: *** [Makefile:1594: disk] Error 2

Adjust gpt_convert_efi_name_to_char() to accept unaligned strings.

Reported-by: Ramon Fried <rfried....@gmail.com>
Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de>
---
  Makefile        |  2 +-
  disk/part_efi.c | 13 +++++++++++--
  2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index 73fdf70cdd..a0e521363e 100644
--- a/Makefile
+++ b/Makefile
@@ -665,7 +665,7 @@ endif
  endif

  # Prohibit date/time macros, which would make the build non-deterministic
-KBUILD_CFLAGS   += $(call cc-option,-Werror=date-time)
+KBUILD_CFLAGS   += $(call cc-option,-Werror)
Is this part of the patch or commited by mistake ?

This got in by mistake. Sorry.

Heinrich


  include scripts/Makefile.extrawarn

diff --git a/disk/part_efi.c b/disk/part_efi.c
index 3e026697db..359b55a818 100644
--- a/disk/part_efi.c
+++ b/disk/part_efi.c
@@ -670,9 +670,18 @@ err:
         return ret;
  }

-static void gpt_convert_efi_name_to_char(char *s, efi_char16_t *es, int n)
+/**
+ * gpt_convert_efi_name_to_char() - convert u16 string to char string
+ *
+ * TODO: this conversion only supports ANSI characters
+ *
+ * @s: target buffer
+ * @es:        u16 string to be converted
+ * @n: size of target buffer
+ */
+static void gpt_convert_efi_name_to_char(char *s, void *es, int n)
  {
-       char *ess = (char *)es;
+       char *ess = es;
         int i, j;

         memset(s, '\0', n);
--
2.22.0


_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to