All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] gdb upgrade and misc fixes to enable gcc8
@ 2018-05-16  6:31 Khem Raj
  2018-05-16  6:32 ` [PATCH 1/4] gdb: Upgrade to 8.1 release Khem Raj
                   ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: Khem Raj @ 2018-05-16  6:31 UTC (permalink / raw)
  To: openembedded-core

The following changes since commit 9611485bba03ef77ff31121e3b1da7cd57990c3e:

  patchreview: don't disable malformed SoB check (2018-05-15 10:00:33 +0100)

are available in the Git repository at:

  git://git.openembedded.org/openembedded-core-contrib kraj/pu
  http://cgit.openembedded.org/openembedded-core-contrib/log/?h=kraj/pu

Khem Raj (3):
  gdb: Upgrade to 8.1 release
  ovmf: Fix build with gcc8
  musl: Make dev package rdep on staticdev

Ross Burton (1):
  python2: Fix build with gcc8

 meta/conf/distro/include/tcmode-default.inc   |   2 +-
 meta/recipes-core/musl/musl_git.bb            |   2 +-
 ....makefile-add-Wno-stringop-truncatio.patch |  73 +++++++++
 ...ols-header.makefile-add-Wno-restrict.patch | 104 ++++++++++++
 ....makefile-revert-gcc-8-Wno-xxx-optio.patch |  55 +++++++
 ...-silence-false-stringop-overflow-war.patch |  65 ++++++++
 meta/recipes-core/ovmf/ovmf_git.bb            |   4 +
 .../gdb/{gdb-8.0.1.inc => gdb-8.1.inc}        |   5 +-
 ...ian_8.0.1.bb => gdb-cross-canadian_8.1.bb} |   0
 .../{gdb-cross_8.0.1.bb => gdb-cross_8.1.bb}  |   0
 .../0001-include-sys-types.h-for-mode_t.patch |  12 +-
 ...port-for-Renesas-SH-sh4-architecture.patch | 153 ++++++++----------
 ...0012-Unbreak-GDBserver-build-for-x32.patch | 101 ------------
 .../gdb/{gdb_8.0.1.bb => gdb_8.1.bb}          |   2 +
 .../python/python-native_2.7.14.bb            |   1 +
 .../python/python/fix-gc-alignment.patch      |  43 +++++
 meta/recipes-devtools/python/python_2.7.14.bb |   1 +
 17 files changed, 429 insertions(+), 194 deletions(-)
 create mode 100644 meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch
 create mode 100644 meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch
 create mode 100644 meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch
 create mode 100644 meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch
 rename meta/recipes-devtools/gdb/{gdb-8.0.1.inc => gdb-8.1.inc} (85%)
 rename meta/recipes-devtools/gdb/{gdb-cross-canadian_8.0.1.bb => gdb-cross-canadian_8.1.bb} (100%)
 rename meta/recipes-devtools/gdb/{gdb-cross_8.0.1.bb => gdb-cross_8.1.bb} (100%)
 delete mode 100644 meta/recipes-devtools/gdb/gdb/0012-Unbreak-GDBserver-build-for-x32.patch
 rename meta/recipes-devtools/gdb/{gdb_8.0.1.bb => gdb_8.1.bb} (86%)
 create mode 100644 meta/recipes-devtools/python/python/fix-gc-alignment.patch

-- 
2.17.0



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

* [PATCH 1/4] gdb: Upgrade to 8.1 release
  2018-05-16  6:31 [PATCH 0/4] gdb upgrade and misc fixes to enable gcc8 Khem Raj
@ 2018-05-16  6:32 ` Khem Raj
  2018-05-16  6:32 ` [PATCH 2/4] python2: Fix build with gcc8 Khem Raj
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 13+ messages in thread
From: Khem Raj @ 2018-05-16  6:32 UTC (permalink / raw)
  To: openembedded-core

cache strerror so it does not try to use rpl_* versions

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/conf/distro/include/tcmode-default.inc   |   2 +-
 .../gdb/{gdb-8.0.1.inc => gdb-8.1.inc}        |   5 +-
 ...ian_8.0.1.bb => gdb-cross-canadian_8.1.bb} |   0
 .../{gdb-cross_8.0.1.bb => gdb-cross_8.1.bb}  |   0
 .../0001-include-sys-types.h-for-mode_t.patch |  12 +-
 ...port-for-Renesas-SH-sh4-architecture.patch | 153 ++++++++----------
 ...0012-Unbreak-GDBserver-build-for-x32.patch | 101 ------------
 .../gdb/{gdb_8.0.1.bb => gdb_8.1.bb}          |   2 +
 8 files changed, 82 insertions(+), 193 deletions(-)
 rename meta/recipes-devtools/gdb/{gdb-8.0.1.inc => gdb-8.1.inc} (85%)
 rename meta/recipes-devtools/gdb/{gdb-cross-canadian_8.0.1.bb => gdb-cross-canadian_8.1.bb} (100%)
 rename meta/recipes-devtools/gdb/{gdb-cross_8.0.1.bb => gdb-cross_8.1.bb} (100%)
 delete mode 100644 meta/recipes-devtools/gdb/gdb/0012-Unbreak-GDBserver-build-for-x32.patch
 rename meta/recipes-devtools/gdb/{gdb_8.0.1.bb => gdb_8.1.bb} (86%)

diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
index 00399ae820..4b58df0459 100644
--- a/meta/conf/distro/include/tcmode-default.inc
+++ b/meta/conf/distro/include/tcmode-default.inc
@@ -25,7 +25,7 @@ PREFERRED_PROVIDER_virtual/gettext ??= "gettext"
 GCCVERSION ?= "7.%"
 SDKGCCVERSION ?= "${GCCVERSION}"
 BINUVERSION ?= "2.30%"
-GDBVERSION ?= "8.0%"
+GDBVERSION ?= "8.1%"
 GLIBCVERSION ?= "2.27%"
 LINUXLIBCVERSION ?= "4.15%"
 QEMUVERSION ?= "2.11%"
diff --git a/meta/recipes-devtools/gdb/gdb-8.0.1.inc b/meta/recipes-devtools/gdb/gdb-8.1.inc
similarity index 85%
rename from meta/recipes-devtools/gdb/gdb-8.0.1.inc
rename to meta/recipes-devtools/gdb/gdb-8.1.inc
index 4a5299b73f..4d9faa2d4b 100644
--- a/meta/recipes-devtools/gdb/gdb-8.0.1.inc
+++ b/meta/recipes-devtools/gdb/gdb-8.1.inc
@@ -16,9 +16,8 @@ SRC_URI = "http://ftp.gnu.org/gnu/gdb/gdb-${PV}.tar.xz \
            file://0009-Change-order-of-CFLAGS.patch \
            file://0010-resolve-restrict-keyword-conflict.patch \
            file://package_devel_gdb_patches_120-sigprocmask-invalid-call.patch \
-           file://0012-Unbreak-GDBserver-build-for-x32.patch \
            file://gdb-Fix-ia64-defining-TRAP_HWBKPT-before-including-g.patch \
 "
-SRC_URI[md5sum] = "48cac527e6f3018b865ece021e9723ac"
-SRC_URI[sha256sum] = "3dbd5f93e36ba2815ad0efab030dcd0c7b211d7b353a40a53f4c02d7d56295e3"
+SRC_URI[md5sum] = "f46487561f9a16916a8102316f7fd105"
+SRC_URI[sha256sum] = "af61a0263858e69c5dce51eab26662ff3d2ad9aa68da9583e8143b5426be4b34"
 
diff --git a/meta/recipes-devtools/gdb/gdb-cross-canadian_8.0.1.bb b/meta/recipes-devtools/gdb/gdb-cross-canadian_8.1.bb
similarity index 100%
rename from meta/recipes-devtools/gdb/gdb-cross-canadian_8.0.1.bb
rename to meta/recipes-devtools/gdb/gdb-cross-canadian_8.1.bb
diff --git a/meta/recipes-devtools/gdb/gdb-cross_8.0.1.bb b/meta/recipes-devtools/gdb/gdb-cross_8.1.bb
similarity index 100%
rename from meta/recipes-devtools/gdb/gdb-cross_8.0.1.bb
rename to meta/recipes-devtools/gdb/gdb-cross_8.1.bb
diff --git a/meta/recipes-devtools/gdb/gdb/0001-include-sys-types.h-for-mode_t.patch b/meta/recipes-devtools/gdb/gdb/0001-include-sys-types.h-for-mode_t.patch
index 4f06d46d70..5d19380e30 100644
--- a/meta/recipes-devtools/gdb/gdb/0001-include-sys-types.h-for-mode_t.patch
+++ b/meta/recipes-devtools/gdb/gdb/0001-include-sys-types.h-for-mode_t.patch
@@ -1,7 +1,7 @@
-From 91da0458b333249eb9c2f4c1f1e53fa4bc085cc9 Mon Sep 17 00:00:00 2001
+From ff37f9360ab6f841f28ced9f23f66542febcc0f6 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Tue, 19 Jan 2016 18:18:52 -0800
-Subject: [PATCH 01/10] include sys/types.h for mode_t
+Subject: [PATCH 01/11] include sys/types.h for mode_t
 
 mode_t is used in target.h, so we need to include sys/types.h to get the
 defintion
@@ -14,17 +14,17 @@ Upstream-Status: Pending
  1 file changed, 1 insertion(+)
 
 diff --git a/gdb/gdbserver/target.h b/gdb/gdbserver/target.h
-index 3cc2bc4bab..e6b19b06b9 100644
+index 25accd2207..7f6bca8aa4 100644
 --- a/gdb/gdbserver/target.h
 +++ b/gdb/gdbserver/target.h
-@@ -28,6 +28,7 @@
- #include "target/waitstatus.h"
+@@ -29,6 +29,7 @@
  #include "mem-break.h"
  #include "btrace-common.h"
+ #include <vector>
 +#include <sys/types.h>
  
  struct emit_ops;
  struct buffer;
 -- 
-2.13.1
+2.17.0
 
diff --git a/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch b/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch
index cb1b7abd07..f678598284 100644
--- a/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch
+++ b/meta/recipes-devtools/gdb/gdb/0005-Add-support-for-Renesas-SH-sh4-architecture.patch
@@ -1,7 +1,7 @@
-From 60ac68f601885ea6480229a5c8a89a0257da376c Mon Sep 17 00:00:00 2001
+From 8757b36be6109f6d7ea0bd8dafbaed647e0d2192 Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Mon, 2 Mar 2015 02:31:12 +0000
-Subject: [PATCH 05/10] Add support for Renesas SH (sh4) architecture.
+Subject: [PATCH 05/11] Add support for Renesas SH (sh4) architecture.
 
 gdb (7.4-1~cvs20111117.2) experimental; urgency=low
  .
@@ -15,35 +15,35 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  gdb/Makefile.in                      |   2 +
  gdb/configure.host                   |   1 +
- gdb/sh-linux-tdep.c                  | 519 +++++++++++++++++++++++++++++++++++
- gdb/sh-tdep.c                        |  54 ++--
- gdb/sh-tdep.h                        |  49 ++++
+ gdb/sh-linux-tdep.c                  | 519 +++++++++++++++++++++++++++
+ gdb/sh-tdep.c                        |  53 ++-
+ gdb/sh-tdep.h                        |  49 +++
  gdb/testsuite/gdb.asm/asm-source.exp |   5 +
  gdb/testsuite/gdb.asm/sh.inc         |   3 +-
  gdb/testsuite/gdb.base/annota1.c     |   3 +
  gdb/testsuite/gdb.base/annota3.c     |   4 +
  gdb/testsuite/gdb.base/sigall.c      |   3 +
  gdb/testsuite/gdb.base/signals.c     |   4 +
- 11 files changed, 618 insertions(+), 29 deletions(-)
+ 11 files changed, 617 insertions(+), 29 deletions(-)
 
-diff --git a/gdb/Makefile.in b/gdb/Makefile.in
-index 8be73ba423..e287ff6a2e 100644
---- a/gdb/Makefile.in
-+++ b/gdb/Makefile.in
-@@ -2638,6 +2638,8 @@ ALLDEPFILES = \
- 	sh-nbsd-tdep.c \
- 	sh-tdep.c \
- 	sh64-tdep.c \
-+	sh-linux-tdep.c \
-+	sh-linux-nat.c \
- 	sol2-tdep.c \
- 	solib-aix.c \
- 	solib-spu.c \
-diff --git a/gdb/configure.host b/gdb/configure.host
-index d74fd04934..be12de1446 100644
---- a/gdb/configure.host
-+++ b/gdb/configure.host
-@@ -150,6 +150,7 @@ powerpc*-*-linux*)	gdb_host=linux ;;
+Index: gdb-8.1/gdb/Makefile.in
+===================================================================
+--- gdb-8.1.orig/gdb/Makefile.in
++++ gdb-8.1/gdb/Makefile.in
+@@ -758,6 +758,8 @@ ALL_TARGET_OBS = \
+ 	sh-linux-tdep.o \
+ 	sh-nbsd-tdep.o \
+ 	sh-tdep.o \
++	sh-linux-tdep.o \
++	sh-linux-nat.o \
+ 	sh64-tdep.o \
+ 	sol2-tdep.o \
+ 	solib-aix.o \
+Index: gdb-8.1/gdb/configure.host
+===================================================================
+--- gdb-8.1.orig/gdb/configure.host
++++ gdb-8.1/gdb/configure.host
+@@ -152,6 +152,7 @@ powerpc*-*-linux*)	gdb_host=linux ;;
  
  s390*-*-linux*)		gdb_host=linux ;;
  
@@ -51,10 +51,10 @@ index d74fd04934..be12de1446 100644
  sh*-*-netbsdelf* | sh*-*-knetbsd*-gnu)
  			gdb_host=nbsd ;;
  sh*-*-openbsd*)		gdb_host=nbsd ;;
-diff --git a/gdb/sh-linux-tdep.c b/gdb/sh-linux-tdep.c
-index c5c745d218..84e539aad3 100644
---- a/gdb/sh-linux-tdep.c
-+++ b/gdb/sh-linux-tdep.c
+Index: gdb-8.1/gdb/sh-linux-tdep.c
+===================================================================
+--- gdb-8.1.orig/gdb/sh-linux-tdep.c
++++ gdb-8.1/gdb/sh-linux-tdep.c
 @@ -18,14 +18,37 @@
     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
  
@@ -93,7 +93,7 @@ index c5c745d218..84e539aad3 100644
  #include "glibc-tdep.h"
  #include "sh-tdep.h"
  #include "linux-tdep.h"
-@@ -180,9 +203,505 @@ static struct tramp_frame sh_linux_rt_sigreturn_tramp_frame = {
+@@ -180,9 +203,505 @@ static struct tramp_frame sh_linux_rt_si
    sh_linux_rt_sigreturn_init
  };
  
@@ -599,10 +599,10 @@ index c5c745d218..84e539aad3 100644
    linux_init_abi (info, gdbarch);
  
    /* GNU/Linux uses SVR4-style shared libraries.  */
-diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c
-index 2c2b26847d..14f5281ed4 100644
---- a/gdb/sh-tdep.c
-+++ b/gdb/sh-tdep.c
+Index: gdb-8.1/gdb/sh-tdep.c
+===================================================================
+--- gdb-8.1.orig/gdb/sh-tdep.c
++++ gdb-8.1/gdb/sh-tdep.c
 @@ -21,6 +21,9 @@
     sac@cygnus.com.  */
  
@@ -613,15 +613,7 @@ index 2c2b26847d..14f5281ed4 100644
  #include "frame.h"
  #include "frame-base.h"
  #include "frame-unwind.h"
-@@ -35,6 +38,7 @@
- #include "arch-utils.h"
- #include "floatformat.h"
- #include "regcache.h"
-+#include "regset.h"
- #include "doublest.h"
- #include "osabi.h"
- #include "reggroups.h"
-@@ -68,23 +72,6 @@ static const char *const sh_cc_enum[] = {
+@@ -67,23 +70,6 @@ static const char *const sh_cc_enum[] =
  
  static const char *sh_active_calling_convention = sh_cc_gcc;
  
@@ -645,7 +637,7 @@ index 2c2b26847d..14f5281ed4 100644
  static int
  sh_is_renesas_calling_convention (struct type *func_type)
  {
-@@ -1052,7 +1039,7 @@ sh_treat_as_flt_p (struct type *type)
+@@ -1051,7 +1037,7 @@ sh_treat_as_flt_p (struct type *type)
      return 0;
    /* Otherwise if the type of that member is float, the whole type is
       treated as float.  */
@@ -654,7 +646,7 @@ index 2c2b26847d..14f5281ed4 100644
      return 1;
    /* Otherwise it's not treated as float.  */
    return 0;
-@@ -1102,7 +1089,7 @@ sh_push_dummy_call_fpu (struct gdbarch *gdbarch,
+@@ -1101,7 +1087,7 @@ sh_push_dummy_call_fpu (struct gdbarch *
       in four registers available.  Loop thru args from first to last.  */
    for (argnum = 0; argnum < nargs; argnum++)
      {
@@ -663,7 +655,7 @@ index 2c2b26847d..14f5281ed4 100644
        len = TYPE_LENGTH (type);
        val = sh_justify_value_in_reg (gdbarch, args[argnum], len);
  
-@@ -1828,7 +1815,7 @@ sh_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
+@@ -1835,7 +1821,7 @@ sh_dwarf2_frame_init_reg (struct gdbarch
      reg->how = DWARF2_FRAME_REG_UNDEFINED;
  }
  
@@ -672,7 +664,7 @@ index 2c2b26847d..14f5281ed4 100644
  sh_alloc_frame_cache (void)
  {
    struct sh_frame_cache *cache;
-@@ -1855,7 +1842,7 @@ sh_alloc_frame_cache (void)
+@@ -1862,7 +1848,7 @@ sh_alloc_frame_cache (void)
    return cache;
  }
  
@@ -681,7 +673,7 @@ index 2c2b26847d..14f5281ed4 100644
  sh_frame_cache (struct frame_info *this_frame, void **this_cache)
  {
    struct gdbarch *gdbarch = get_frame_arch (this_frame);
-@@ -1922,9 +1909,9 @@ sh_frame_cache (struct frame_info *this_frame, void **this_cache)
+@@ -1929,9 +1915,9 @@ sh_frame_cache (struct frame_info *this_
    return cache;
  }
  
@@ -694,7 +686,7 @@ index 2c2b26847d..14f5281ed4 100644
  {
    struct gdbarch *gdbarch = get_frame_arch (this_frame);
    struct sh_frame_cache *cache = sh_frame_cache (this_frame, this_cache);
-@@ -1938,7 +1925,7 @@ sh_frame_prev_register (struct frame_info *this_frame,
+@@ -1945,7 +1931,7 @@ sh_frame_prev_register (struct frame_inf
       the current frame.  Frob regnum so that we pull the value from
       the correct place.  */
    if (regnum == gdbarch_pc_regnum (gdbarch))
@@ -703,7 +695,7 @@ index 2c2b26847d..14f5281ed4 100644
  
    if (regnum < SH_NUM_REGS && cache->saved_regs[regnum] != -1)
      return frame_unwind_got_memory (this_frame, regnum,
-@@ -2247,8 +2234,8 @@ sh_return_in_first_hidden_param_p (struct gdbarch *gdbarch,
+@@ -2254,8 +2240,8 @@ sh_return_in_first_hidden_param_p (struc
  static struct gdbarch *
  sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
  {
@@ -713,7 +705,7 @@ index 2c2b26847d..14f5281ed4 100644
  
    /* SH5 is handled entirely in sh64-tdep.c.  */
    if (info.bfd_arch_info->mach == bfd_mach_sh5)
-@@ -2264,6 +2251,18 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
+@@ -2271,6 +2257,18 @@ sh_gdbarch_init (struct gdbarch_info inf
    tdep = XCNEW (struct gdbarch_tdep);
    gdbarch = gdbarch_alloc (&info, tdep);
  
@@ -732,7 +724,7 @@ index 2c2b26847d..14f5281ed4 100644
    set_gdbarch_short_bit (gdbarch, 2 * TARGET_CHAR_BIT);
    set_gdbarch_int_bit (gdbarch, 4 * TARGET_CHAR_BIT);
    set_gdbarch_long_bit (gdbarch, 4 * TARGET_CHAR_BIT);
-@@ -2418,10 +2417,11 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
+@@ -2425,10 +2423,11 @@ sh_gdbarch_init (struct gdbarch_info inf
        break;
      }
  
@@ -745,10 +737,10 @@ index 2c2b26847d..14f5281ed4 100644
    frame_unwind_append_unwinder (gdbarch, &sh_stub_unwind);
    frame_unwind_append_unwinder (gdbarch, &sh_frame_unwind);
  
-diff --git a/gdb/sh-tdep.h b/gdb/sh-tdep.h
-index d15ef050e0..c4642cefa4 100644
---- a/gdb/sh-tdep.h
-+++ b/gdb/sh-tdep.h
+Index: gdb-8.1/gdb/sh-tdep.h
+===================================================================
+--- gdb-8.1.orig/gdb/sh-tdep.h
++++ gdb-8.1/gdb/sh-tdep.h
 @@ -21,6 +21,12 @@
  
  /* Contributed by Steve Chamberlain sac@cygnus.com.  */
@@ -828,10 +820,10 @@ index d15ef050e0..c4642cefa4 100644
    /* Non-NULL when debugging from a core file.  Provides the offset
       where each general-purpose register is stored inside the associated
       core file section.  */
-diff --git a/gdb/testsuite/gdb.asm/asm-source.exp b/gdb/testsuite/gdb.asm/asm-source.exp
-index e07e5543f2..f5e60e1002 100644
---- a/gdb/testsuite/gdb.asm/asm-source.exp
-+++ b/gdb/testsuite/gdb.asm/asm-source.exp
+Index: gdb-8.1/gdb/testsuite/gdb.asm/asm-source.exp
+===================================================================
+--- gdb-8.1.orig/gdb/testsuite/gdb.asm/asm-source.exp
++++ gdb-8.1/gdb/testsuite/gdb.asm/asm-source.exp
 @@ -116,6 +116,11 @@ switch -glob -- [istarget] {
              append link-flags " -m elf32ppc"
          }
@@ -844,10 +836,10 @@ index e07e5543f2..f5e60e1002 100644
      "sh*-*-*" {
          set asm-arch sh
  	set debug-flags "-gdwarf-2"
-diff --git a/gdb/testsuite/gdb.asm/sh.inc b/gdb/testsuite/gdb.asm/sh.inc
-index a4a5fc545e..89efed7795 100644
---- a/gdb/testsuite/gdb.asm/sh.inc
-+++ b/gdb/testsuite/gdb.asm/sh.inc
+Index: gdb-8.1/gdb/testsuite/gdb.asm/sh.inc
+===================================================================
+--- gdb-8.1.orig/gdb/testsuite/gdb.asm/sh.inc
++++ gdb-8.1/gdb/testsuite/gdb.asm/sh.inc
 @@ -40,9 +40,8 @@
  	mov.l   .Lconst\@,r1
  	bra	.Lafterconst\@
@@ -859,10 +851,10 @@ index a4a5fc545e..89efed7795 100644
  	.long	\subr
  	.align	1
  .Lafterconst\@:
-diff --git a/gdb/testsuite/gdb.base/annota1.c b/gdb/testsuite/gdb.base/annota1.c
-index 424e1b8327..0de2e7b633 100644
---- a/gdb/testsuite/gdb.base/annota1.c
-+++ b/gdb/testsuite/gdb.base/annota1.c
+Index: gdb-8.1/gdb/testsuite/gdb.base/annota1.c
+===================================================================
+--- gdb-8.1.orig/gdb/testsuite/gdb.base/annota1.c
++++ gdb-8.1/gdb/testsuite/gdb.base/annota1.c
 @@ -1,6 +1,9 @@
  #include <stdio.h>
  #include <signal.h>
@@ -873,10 +865,10 @@ index 424e1b8327..0de2e7b633 100644
  
  void
  handle_USR1 (int sig)
-diff --git a/gdb/testsuite/gdb.base/annota3.c b/gdb/testsuite/gdb.base/annota3.c
-index 424e1b8327..952aaf218a 100644
---- a/gdb/testsuite/gdb.base/annota3.c
-+++ b/gdb/testsuite/gdb.base/annota3.c
+Index: gdb-8.1/gdb/testsuite/gdb.base/annota3.c
+===================================================================
+--- gdb-8.1.orig/gdb/testsuite/gdb.base/annota3.c
++++ gdb-8.1/gdb/testsuite/gdb.base/annota3.c
 @@ -1,6 +1,10 @@
  #include <stdio.h>
  #include <signal.h>
@@ -888,10 +880,10 @@ index 424e1b8327..952aaf218a 100644
  
  void
  handle_USR1 (int sig)
-diff --git a/gdb/testsuite/gdb.base/sigall.c b/gdb/testsuite/gdb.base/sigall.c
-index 81f3b08d6b..1574b2d6cb 100644
---- a/gdb/testsuite/gdb.base/sigall.c
-+++ b/gdb/testsuite/gdb.base/sigall.c
+Index: gdb-8.1/gdb/testsuite/gdb.base/sigall.c
+===================================================================
+--- gdb-8.1.orig/gdb/testsuite/gdb.base/sigall.c
++++ gdb-8.1/gdb/testsuite/gdb.base/sigall.c
 @@ -1,6 +1,9 @@
  #include <signal.h>
  #include <unistd.h>
@@ -902,10 +894,10 @@ index 81f3b08d6b..1574b2d6cb 100644
  
  /* Signal handlers, we set breakpoints in them to make sure that the
     signals really get delivered.  */
-diff --git a/gdb/testsuite/gdb.base/signals.c b/gdb/testsuite/gdb.base/signals.c
-index 756606880f..1205a9bc9c 100644
---- a/gdb/testsuite/gdb.base/signals.c
-+++ b/gdb/testsuite/gdb.base/signals.c
+Index: gdb-8.1/gdb/testsuite/gdb.base/signals.c
+===================================================================
+--- gdb-8.1.orig/gdb/testsuite/gdb.base/signals.c
++++ gdb-8.1/gdb/testsuite/gdb.base/signals.c
 @@ -3,6 +3,10 @@
  #include <signal.h>
  #include <unistd.h>
@@ -917,6 +909,3 @@ index 756606880f..1205a9bc9c 100644
  
  static int count = 0;
  
--- 
-2.13.1
-
diff --git a/meta/recipes-devtools/gdb/gdb/0012-Unbreak-GDBserver-build-for-x32.patch b/meta/recipes-devtools/gdb/gdb/0012-Unbreak-GDBserver-build-for-x32.patch
deleted file mode 100644
index 18a3ce3d63..0000000000
--- a/meta/recipes-devtools/gdb/gdb/0012-Unbreak-GDBserver-build-for-x32.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From 3e1e401053ea5f02a9e9c65abddd31a03baa1bd1 Mon Sep 17 00:00:00 2001
-From: Yao Qi <yao.qi@linaro.org>
-Date: Fri, 29 Dec 2017 12:57:25 +0800
-Subject: [PATCH] Unbreak GDBserver build for x32
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-When I verify my target description changes, I build GDB and GDBserver for
-x32, but it failed.
-
-/../../binutils-gdb/gdb/gdbserver/linux-amd64-ipa.c
-../../../binutils-gdb/gdb/gdbserver/linux-amd64-ipa.c: In function ‘const target_desc* get_ipa_tdesc(int)’:
-../../../binutils-gdb/gdb/gdbserver/linux-amd64-ipa.c:184:10: error: ‘X86_TDESC_AVX512’ was not declared in this scope
-     case X86_TDESC_AVX512:
-          ^
-../../../binutils-gdb/gdb/gdbserver/linux-amd64-ipa.c:185:14: error: ‘tdesc_x32_avx512_linux’ was not declared in this scope
-       return tdesc_x32_avx512_linux;
-              ^
-../../../binutils-gdb/gdb/gdbserver/linux-amd64-ipa.c: In function ‘void initialize_low_tracepoint()’:
-../../../binutils-gdb/gdb/gdbserver/linux-amd64-ipa.c:282:36: error: ‘init_registers_x32_avx512_linux’ was not declared in this scope
-   init_registers_x32_avx512_linux ();
-                                    ^
-
-ipa_x32_linux_regobj use to be there, but removed by
-22049425ce40324139be82d9a6ec518c46b65815 by mistake.
-
-gdb/gdbserver:
-
-2017-08-04  Yao Qi  <yao.qi@linaro.org>
-
-        * configure.srv (ipa_x32_linux_regobj): New.
-        * linux-amd64-ipa.c (get_ipa_tdesc): Use X86_TDESC_AVX_AVX512
-        instead of X86_TDESC_AVX512.
-        (initialize_low_tracepoint): Call
-        init_registers_x32_avx_avx512_linux.
-
-Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=f02fd7745d003d65fd3b981618e07b874b721d79]
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- ChangeLog                       | 8 ++++++++
- gdb/gdbserver/configure.srv     | 1 +
- gdb/gdbserver/linux-amd64-ipa.c | 6 +++---
- 3 files changed, 12 insertions(+), 3 deletions(-)
-
-diff --git a/ChangeLog b/ChangeLog
-index 4ac2d63..b5b8228 100644
---- a/ChangeLog
-+++ b/ChangeLog
-@@ -1,3 +1,11 @@
-+ 2017-08-04  Yao Qi  <yao.qi@linaro.org>
-+
-+	* configure.srv (ipa_x32_linux_regobj): New.
-+	* linux-amd64-ipa.c (get_ipa_tdesc): Use X86_TDESC_AVX_AVX512
-+	instead of X86_TDESC_AVX512.
-+	(initialize_low_tracepoint): Call
-+	init_registers_x32_avx_avx512_linux.
-+
- 2017-04-13  Andrew Jenner  <andrew@codesourcery.com>
- 
- 	* config.sub: Sync with master version in config project.
-diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv
-index d00d9e2..56951c8 100644
---- a/gdb/gdbserver/configure.srv
-+++ b/gdb/gdbserver/configure.srv
-@@ -31,6 +31,7 @@ srv_amd64_linux_regobj="amd64-linux.o amd64-avx-linux.o amd64-avx-avx512-linux.o
- 
- ipa_i386_linux_regobj="i386-linux-ipa.o i386-avx-linux-ipa.o  i386-avx-mpx-linux-ipa.o i386-avx-avx512-linux-ipa.o i386-avx-mpx-avx512-pku-linux-ipa.o i386-mpx-linux-ipa.o i386-mmx-linux-ipa.o"
- ipa_amd64_linux_regobj="amd64-linux-ipa.o amd64-avx-linux-ipa.o amd64-avx-mpx-linux-ipa.o amd64-avx-avx512-linux-ipa.o amd64-avx-mpx-avx512-pku-linux-ipa.o amd64-mpx-linux-ipa.o"
-+ipa_x32_linux_regobj="x32-linux-ipa.o x32-avx-linux-ipa.o x32-avx-avx512-linux-ipa.o"
- ipa_ppc_linux_regobj="powerpc-32l-ipa.o powerpc-altivec32l-ipa.o powerpc-cell32l-ipa.o powerpc-vsx32l-ipa.o powerpc-isa205-32l-ipa.o powerpc-isa205-altivec32l-ipa.o powerpc-isa205-vsx32l-ipa.o powerpc-e500l-ipa.o powerpc-64l-ipa.o powerpc-altivec64l-ipa.o powerpc-cell64l-ipa.o powerpc-vsx64l-ipa.o powerpc-isa205-64l-ipa.o powerpc-isa205-altivec64l-ipa.o powerpc-isa205-vsx64l-ipa.o"
- 
- srv_i386_32bit_xmlfiles="i386/32bit-core.xml i386/32bit-sse.xml i386/32bit-avx.xml i386/32bit-avx512.xml i386/32bit-mpx.xml i386/32bit-pkeys.xml"
-diff --git a/gdb/gdbserver/linux-amd64-ipa.c b/gdb/gdbserver/linux-amd64-ipa.c
-index 67f36c2..683339b 100644
---- a/gdb/gdbserver/linux-amd64-ipa.c
-+++ b/gdb/gdbserver/linux-amd64-ipa.c
-@@ -181,8 +181,8 @@ get_ipa_tdesc (int idx)
-       return tdesc_x32_linux;
-     case X86_TDESC_AVX:
-       return tdesc_x32_avx_linux;
--    case X86_TDESC_AVX512:
--      return tdesc_x32_avx512_linux;
-+    case X86_TDESC_AVX_AVX512:
-+      return tdesc_x32_avx_avx512_linux;
-     default:
-       break;
-     }
-@@ -279,7 +279,7 @@ initialize_low_tracepoint (void)
- #if defined __ILP32__
-   init_registers_x32_linux ();
-   init_registers_x32_avx_linux ();
--  init_registers_x32_avx512_linux ();
-+  init_registers_x32_avx_avx512_linux ();
- #else
-   init_registers_amd64_linux ();
-   init_registers_amd64_avx_linux ();
--- 
-2.7.4
-
diff --git a/meta/recipes-devtools/gdb/gdb_8.0.1.bb b/meta/recipes-devtools/gdb/gdb_8.1.bb
similarity index 86%
rename from meta/recipes-devtools/gdb/gdb_8.0.1.bb
rename to meta/recipes-devtools/gdb/gdb_8.1.bb
index ea8fef122c..84ab08ce93 100644
--- a/meta/recipes-devtools/gdb/gdb_8.0.1.bb
+++ b/meta/recipes-devtools/gdb/gdb_8.1.bb
@@ -6,6 +6,8 @@ inherit python3-dir
 EXTRA_OEMAKE_append_libc-musl = "\
                                  gt_cv_func_gnugettext1_libc=yes \
                                  gt_cv_func_gnugettext2_libc=yes \
+                                 gl_cv_func_working_strerror=yes \
+                                 gl_cv_func_strerror_0_works=yes \
                                  gl_cv_func_gettimeofday_clobber=no \
                                 "
 
-- 
2.17.0



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

* [PATCH 2/4] python2: Fix build with gcc8
  2018-05-16  6:31 [PATCH 0/4] gdb upgrade and misc fixes to enable gcc8 Khem Raj
  2018-05-16  6:32 ` [PATCH 1/4] gdb: Upgrade to 8.1 release Khem Raj
@ 2018-05-16  6:32 ` Khem Raj
  2018-05-16  6:32 ` [PATCH 3/4] ovmf: " Khem Raj
  2018-05-16  6:32 ` [PATCH 4/4] musl: Make dev package rdep on staticdev Khem Raj
  3 siblings, 0 replies; 13+ messages in thread
From: Khem Raj @ 2018-05-16  6:32 UTC (permalink / raw)
  To: openembedded-core

From: Ross Burton <ross.burton@intel.com>

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 .../python/python-native_2.7.14.bb            |  1 +
 .../python/python/fix-gc-alignment.patch      | 43 +++++++++++++++++++
 meta/recipes-devtools/python/python_2.7.14.bb |  1 +
 3 files changed, 45 insertions(+)
 create mode 100644 meta/recipes-devtools/python/python/fix-gc-alignment.patch

diff --git a/meta/recipes-devtools/python/python-native_2.7.14.bb b/meta/recipes-devtools/python/python-native_2.7.14.bb
index 7c491fa3e0..b822583c53 100644
--- a/meta/recipes-devtools/python/python-native_2.7.14.bb
+++ b/meta/recipes-devtools/python/python-native_2.7.14.bb
@@ -16,6 +16,7 @@ SRC_URI += "\
             file://builddir.patch \
             file://parallel-makeinst-create-bindir.patch \
             file://revert_use_of_sysconfigdata.patch \
+            file://fix-gc-alignment.patch \
            "
 
 S = "${WORKDIR}/Python-${PV}"
diff --git a/meta/recipes-devtools/python/python/fix-gc-alignment.patch b/meta/recipes-devtools/python/python/fix-gc-alignment.patch
new file mode 100644
index 0000000000..b63cd08747
--- /dev/null
+++ b/meta/recipes-devtools/python/python/fix-gc-alignment.patch
@@ -0,0 +1,43 @@
+Upstream-Status: Submitted
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+Fix for over-aligned GC info
+Patch by Florian Weimer
+
+See: https://bugzilla.redhat.com/show_bug.cgi?id=1540316
+Upstream discussion: https://mail.python.org/pipermail/python-dev/2018-January/152000.html
+
+diff --git a/Include/objimpl.h b/Include/objimpl.h
+index 55e83eced6..aa906144dc 100644
+--- a/Include/objimpl.h
++++ b/Include/objimpl.h
+@@ -248,6 +248,18 @@ PyAPI_FUNC(PyVarObject *) _PyObject_GC_Resize(PyVarObject *, Py_ssize_t);
+ /* for source compatibility with 2.2 */
+ #define _PyObject_GC_Del PyObject_GC_Del
+ 
++/* Former over-aligned definition of PyGC_Head, used to compute the
++   size of the padding for the new version below. */
++union _gc_head;
++union _gc_head_old {
++    struct {
++        union _gc_head *gc_next;
++        union _gc_head *gc_prev;
++        Py_ssize_t gc_refs;
++    } gc;
++    long double dummy;
++};
++
+ /* GC information is stored BEFORE the object structure. */
+ typedef union _gc_head {
+     struct {
+@@ -255,7 +267,8 @@ typedef union _gc_head {
+         union _gc_head *gc_prev;
+         Py_ssize_t gc_refs;
+     } gc;
+-    long double dummy;  /* force worst-case alignment */
++    double dummy;  /* force worst-case alignment */
++    char dummy_padding[sizeof(union _gc_head_old)];
+ } PyGC_Head;
+ 
+ extern PyGC_Head *_PyGC_generation0;
+ 
\ No newline at end of file
diff --git a/meta/recipes-devtools/python/python_2.7.14.bb b/meta/recipes-devtools/python/python_2.7.14.bb
index 0a09926dfb..41a8609b15 100644
--- a/meta/recipes-devtools/python/python_2.7.14.bb
+++ b/meta/recipes-devtools/python/python_2.7.14.bb
@@ -30,6 +30,7 @@ SRC_URI += "\
   file://add-CROSSPYTHONPATH-for-PYTHON_FOR_BUILD.patch \
   file://pass-missing-libraries-to-Extension-for-mul.patch \
   file://support_SOURCE_DATE_EPOCH_in_py_compile_2.7.patch \
+  file://fix-gc-alignment.patch \
 "
 
 S = "${WORKDIR}/Python-${PV}"
-- 
2.17.0



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

* [PATCH 3/4] ovmf: Fix build with gcc8
  2018-05-16  6:31 [PATCH 0/4] gdb upgrade and misc fixes to enable gcc8 Khem Raj
  2018-05-16  6:32 ` [PATCH 1/4] gdb: Upgrade to 8.1 release Khem Raj
  2018-05-16  6:32 ` [PATCH 2/4] python2: Fix build with gcc8 Khem Raj
@ 2018-05-16  6:32 ` Khem Raj
  2018-05-17 10:17   ` Burton, Ross
  2018-05-16  6:32 ` [PATCH 4/4] musl: Make dev package rdep on staticdev Khem Raj
  3 siblings, 1 reply; 13+ messages in thread
From: Khem Raj @ 2018-05-16  6:32 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ....makefile-add-Wno-stringop-truncatio.patch |  73 ++++++++++++
 ...ols-header.makefile-add-Wno-restrict.patch | 104 ++++++++++++++++++
 ....makefile-revert-gcc-8-Wno-xxx-optio.patch |  55 +++++++++
 ...-silence-false-stringop-overflow-war.patch |  65 +++++++++++
 meta/recipes-core/ovmf/ovmf_git.bb            |   4 +
 5 files changed, 301 insertions(+)
 create mode 100644 meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch
 create mode 100644 meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch
 create mode 100644 meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch
 create mode 100644 meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch

diff --git a/meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch b/meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch
new file mode 100644
index 0000000000..1d1679fe7e
--- /dev/null
+++ b/meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch
@@ -0,0 +1,73 @@
+From 9fce4bab014b9aa618060eba13d6dd04b0fa1b70 Mon Sep 17 00:00:00 2001
+From: Laszlo Ersek <lersek@redhat.com>
+Date: Fri, 2 Mar 2018 17:11:52 +0100
+Subject: [PATCH 1/4] BaseTools/header.makefile: add "-Wno-stringop-truncation"
+
+gcc-8 (which is part of Fedora 28) enables the new warning
+"-Wstringop-truncation" in "-Wall". This warning is documented in detail
+at <https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html>; the
+introduction says
+
+> Warn for calls to bounded string manipulation functions such as strncat,
+> strncpy, and stpncpy that may either truncate the copied string or leave
+> the destination unchanged.
+
+It breaks the BaseTools build with:
+
+> EfiUtilityMsgs.c: In function 'PrintMessage':
+> EfiUtilityMsgs.c:484:9: error: 'strncat' output may be truncated copying
+> between 0 and 511 bytes from a string of length 511
+> [-Werror=stringop-truncation]
+>          strncat (Line, Line2, MAX_LINE_LEN - strlen (Line) - 1);
+>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+> EfiUtilityMsgs.c:469:9: error: 'strncat' output may be truncated copying
+> between 0 and 511 bytes from a string of length 511
+> [-Werror=stringop-truncation]
+>          strncat (Line, Line2, MAX_LINE_LEN - strlen (Line) - 1);
+>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+> EfiUtilityMsgs.c:511:5: error: 'strncat' output may be truncated copying
+> between 0 and 511 bytes from a string of length 511
+> [-Werror=stringop-truncation]
+>      strncat (Line, Line2, MAX_LINE_LEN - strlen (Line) - 1);
+>      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The right way to fix the warning would be to implement string concat with
+snprintf(). However, Microsoft does not appear to support snprintf()
+before VS2015
+<https://stackoverflow.com/questions/2915672/snprintf-and-visual-studio-2010>,
+so we just have to shut up the warning. The strncat() calls flagged above
+are valid BTW.
+
+Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+Cc: Cole Robinson <crobinso@redhat.com>
+Cc: Liming Gao <liming.gao@intel.com>
+Cc: Paolo Bonzini <pbonzini@redhat.com>
+Cc: Yonghong Zhu <yonghong.zhu@intel.com>
+Contributed-under: TianoCore Contribution Agreement 1.1
+Signed-off-by: Laszlo Ersek <lersek@redhat.com>
+Reviewed-by: Liming Gao <liming.gao@intel.com>
+---
+Upstream-Status: Backport
+
+ BaseTools/Source/C/Makefiles/header.makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile
+index 063982b82f..6c3826aecb 100644
+--- a/BaseTools/Source/C/Makefiles/header.makefile
++++ b/BaseTools/Source/C/Makefiles/header.makefile
+@@ -47,9 +47,9 @@ INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKE
+ BUILD_CPPFLAGS = $(INCLUDE) -O2
+ ifeq ($(DARWIN),Darwin)
+ # assume clang or clang compatible flags on OS X
+-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -c -g
++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-self-assign -Wno-unused-result -nostdlib -c -g
+ else
+-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-unused-result -nostdlib -c -g
++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-unused-result -nostdlib -c -g
+ endif
+ BUILD_LFLAGS =
+ BUILD_CXXFLAGS = -Wno-unused-result
+-- 
+2.17.0
+
diff --git a/meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch b/meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch
new file mode 100644
index 0000000000..4a25e230ce
--- /dev/null
+++ b/meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch
@@ -0,0 +1,104 @@
+From 86dbdac5a25bd23deb4a0e0a97b527407e02184d Mon Sep 17 00:00:00 2001
+From: Laszlo Ersek <lersek@redhat.com>
+Date: Fri, 2 Mar 2018 17:11:52 +0100
+Subject: [PATCH 2/4] BaseTools/header.makefile: add "-Wno-restrict"
+
+gcc-8 (which is part of Fedora 28) enables the new warning
+"-Wrestrict" in "-Wall". This warning is documented in detail
+at <https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html>; the
+introduction says
+
+> Warn when an object referenced by a restrict-qualified parameter (or, in
+> C++, a __restrict-qualified parameter) is aliased by another argument,
+> or when copies between such objects overlap.
+
+It breaks the BaseTools build (in the Brotli compression library) with:
+
+> In function 'ProcessCommandsInternal',
+>     inlined from 'ProcessCommands' at dec/decode.c:1828:10:
+> dec/decode.c:1781:9: error: 'memcpy' accessing between 17 and 2147483631
+> bytes at offsets 16 and 16 overlaps between 17 and 2147483631 bytes at
+> offset 16 [-Werror=restrict]
+>          memcpy(copy_dst + 16, copy_src + 16, (size_t)(i - 16));
+>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+> In function 'ProcessCommandsInternal',
+>     inlined from 'SafeProcessCommands' at dec/decode.c:1833:10:
+> dec/decode.c:1781:9: error: 'memcpy' accessing between 17 and 2147483631
+> bytes at offsets 16 and 16 overlaps between 17 and 2147483631 bytes at
+> offset 16 [-Werror=restrict]
+>          memcpy(copy_dst + 16, copy_src + 16, (size_t)(i - 16));
+>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Paolo Bonzini <pbonzini@redhat.com> analyzed the Brotli source in detail,
+and concluded that the warning is a false positive:
+
+> This seems safe to me, because it's preceded by:
+>
+>     uint8_t* copy_dst = &s->ringbuffer[pos];
+>     uint8_t* copy_src = &s->ringbuffer[src_start];
+>     int dst_end = pos + i;
+>     int src_end = src_start + i;
+>     if (src_end > pos && dst_end > src_start) {
+>       /* Regions intersect. */
+>       goto CommandPostWrapCopy;
+>     }
+>
+> If [src_start, src_start + i) and [pos, pos + i) don't intersect, then
+> neither do [src_start + 16, src_start + i) and [pos + 16, pos + i).
+>
+> The if seems okay:
+>
+>        (src_start + i > pos && pos + i > src_start)
+>
+> which can be rewritten to:
+>
+>        (pos < src_start + i && src_start < pos + i)
+>
+> Then the numbers are in one of these two orders:
+>
+>      pos <= src_start < pos + i <= src_start + i
+>      src_start <= pos < src_start + i <= pos + i
+>
+> These two would be allowed by the "if", but they can only happen if pos
+> == src_start so they degenerate to the same two orders above:
+>
+>      pos <= src_start < src_start + i <= pos + i
+>      src_start <= pos < pos + i <= src_start + i
+>
+> So it is a false positive in GCC.
+
+Disable the warning for now.
+
+Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+Cc: Cole Robinson <crobinso@redhat.com>
+Cc: Liming Gao <liming.gao@intel.com>
+Cc: Paolo Bonzini <pbonzini@redhat.com>
+Cc: Yonghong Zhu <yonghong.zhu@intel.com>
+Reported-by: Cole Robinson <crobinso@redhat.com>
+Contributed-under: TianoCore Contribution Agreement 1.1
+Signed-off-by: Laszlo Ersek <lersek@redhat.com>
+Reviewed-by: Liming Gao <liming.gao@intel.com>
+---
+Upstream-Status: Backport
+ BaseTools/Source/C/Makefiles/header.makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile
+index 6c3826aecb..3feae10095 100644
+--- a/BaseTools/Source/C/Makefiles/header.makefile
++++ b/BaseTools/Source/C/Makefiles/header.makefile
+@@ -47,9 +47,9 @@ INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKE
+ BUILD_CPPFLAGS = $(INCLUDE) -O2
+ ifeq ($(DARWIN),Darwin)
+ # assume clang or clang compatible flags on OS X
+-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-self-assign -Wno-unused-result -nostdlib -c -g
++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-self-assign -Wno-unused-result -nostdlib -c -g
+ else
+-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-unused-result -nostdlib -c -g
++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-unused-result -nostdlib -c -g
+ endif
+ BUILD_LFLAGS =
+ BUILD_CXXFLAGS = -Wno-unused-result
+-- 
+2.17.0
+
diff --git a/meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch b/meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch
new file mode 100644
index 0000000000..19f32e7cee
--- /dev/null
+++ b/meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch
@@ -0,0 +1,55 @@
+From 6866325dd9c17412e555974dde41f9631224db52 Mon Sep 17 00:00:00 2001
+From: Laszlo Ersek <lersek@redhat.com>
+Date: Wed, 7 Mar 2018 10:17:28 +0100
+Subject: [PATCH 3/4] BaseTools/header.makefile: revert gcc-8 "-Wno-xxx"
+ options on OSX
+
+I recently added the gcc-8 specific "-Wno-stringop-truncation" and
+"-Wno-restrict" options to BUILD_CFLAGS, both for "Darwin" (XCODE5 /
+clang, OSX) and otherwise (gcc, Linux / Cygwin).
+
+I also regression-tested the change with gcc-4.8 on Linux -- gcc-4.8 does
+not know either of the (gcc-8 specific) "-Wno-stringop-truncation" and
+"-Wno-restrict" options, yet the build completed fine (by GCC design).
+
+Regarding OSX, my expectation was that
+
+- XCODE5 / clang would either recognize these warnings options (because
+  clang does recognize most -W options of gcc),
+
+- or, similarly to gcc, clang would simply ignore the "-Wno-xxx" flags
+  that it didn't recognize.
+
+Neither is the case; the new flags have broken the BaseTools build on OSX.
+Revert them (for OSX only).
+
+Cc: Liming Gao <liming.gao@intel.com>
+Cc: Yonghong Zhu <yonghong.zhu@intel.com>
+Reported-by: Liming Gao <liming.gao@intel.com>
+Fixes: 1d212a83df0eaf32a6f5d4159beb2d77832e0231
+Fixes: 9222154ae7b3eef75ae88cdb56158256227cb929
+Contributed-under: TianoCore Contribution Agreement 1.1
+Signed-off-by: Laszlo Ersek <lersek@redhat.com>
+Reviewed-by: Liming Gao <liming.gao@intel.com>
+Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+---
+Upstream-Status: Backport
+ BaseTools/Source/C/Makefiles/header.makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile
+index 3feae10095..6eefddb417 100644
+--- a/BaseTools/Source/C/Makefiles/header.makefile
++++ b/BaseTools/Source/C/Makefiles/header.makefile
+@@ -47,7 +47,7 @@ INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKE
+ BUILD_CPPFLAGS = $(INCLUDE) -O2
+ ifeq ($(DARWIN),Darwin)
+ # assume clang or clang compatible flags on OS X
+-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-self-assign -Wno-unused-result -nostdlib -c -g
++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -c -g
+ else
+ BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-unused-result -nostdlib -c -g
+ endif
+-- 
+2.17.0
+
diff --git a/meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch b/meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch
new file mode 100644
index 0000000000..5fd4e9d573
--- /dev/null
+++ b/meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch
@@ -0,0 +1,65 @@
+From dfb42a5bff78d9239a80731e337855234badef3e Mon Sep 17 00:00:00 2001
+From: Laszlo Ersek <lersek@redhat.com>
+Date: Fri, 2 Mar 2018 17:11:52 +0100
+Subject: [PATCH 4/4] BaseTools/GenVtf: silence false "stringop-overflow"
+ warning with memcpy()
+
+gcc-8 (which is part of Fedora 28) enables the new warning
+"-Wstringop-overflow" in "-Wall". This warning is documented in detail at
+<https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html>; the
+introduction says
+
+> Warn for calls to string manipulation functions such as memcpy and
+> strcpy that are determined to overflow the destination buffer.
+
+It breaks the BaseTools build with:
+
+> GenVtf.c: In function 'ConvertVersionInfo':
+> GenVtf.c:132:7: error: 'strncpy' specified bound depends on the length
+> of the source argument [-Werror=stringop-overflow=]
+>        strncpy (TemStr + 4 - Length, Str, Length);
+>        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+> GenVtf.c:130:14: note: length computed here
+>      Length = strlen(Str);
+>               ^~~~~~~~~~~
+
+It is a false positive because, while the bound equals the length of the
+source argument, the destination pointer is moved back towards the
+beginning of the destination buffer by the same amount (and this amount is
+range-checked first, so we can't precede the start of the dest buffer).
+
+Replace both strncpy() calls with memcpy().
+
+Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
+Cc: Cole Robinson <crobinso@redhat.com>
+Cc: Liming Gao <liming.gao@intel.com>
+Cc: Paolo Bonzini <pbonzini@redhat.com>
+Cc: Yonghong Zhu <yonghong.zhu@intel.com>
+Reported-by: Cole Robinson <crobinso@redhat.com>
+Contributed-under: TianoCore Contribution Agreement 1.1
+Signed-off-by: Laszlo Ersek <lersek@redhat.com>
+Reviewed-by: Liming Gao <liming.gao@intel.com>
+---
+Upstream-Status: Backport
+ BaseTools/Source/C/GenVtf/GenVtf.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/BaseTools/Source/C/GenVtf/GenVtf.c b/BaseTools/Source/C/GenVtf/GenVtf.c
+index 2ae9a7be2c..0cd33e71e9 100644
+--- a/BaseTools/Source/C/GenVtf/GenVtf.c
++++ b/BaseTools/Source/C/GenVtf/GenVtf.c
+@@ -129,9 +129,9 @@ Returns:
+   } else {
+     Length = strlen(Str);
+     if (Length < 4) {
+-      strncpy (TemStr + 4 - Length, Str, Length);
++      memcpy (TemStr + 4 - Length, Str, Length);
+     } else {
+-      strncpy (TemStr, Str + Length - 4, 4);
++      memcpy (TemStr, Str + Length - 4, 4);
+     }
+   
+     sscanf (
+-- 
+2.17.0
+
diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/ovmf_git.bb
index 8750b3c528..212530acbf 100644
--- a/meta/recipes-core/ovmf/ovmf_git.bb
+++ b/meta/recipes-core/ovmf/ovmf_git.bb
@@ -19,6 +19,10 @@ SRC_URI = "git://github.com/tianocore/edk2.git;branch=master \
 	file://0004-ovmf-enable-long-path-file.patch \
 	file://VfrCompile-increase-path-length-limit.patch \
 	file://no-stack-protector-all-archs.patch \
+	file://0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch \
+	file://0002-BaseTools-header.makefile-add-Wno-restrict.patch \
+	file://0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch \
+	file://0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch \
         "
 UPSTREAM_VERSION_UNKNOWN = "1"
 
-- 
2.17.0



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

* [PATCH 4/4] musl: Make dev package rdep on staticdev
  2018-05-16  6:31 [PATCH 0/4] gdb upgrade and misc fixes to enable gcc8 Khem Raj
                   ` (2 preceding siblings ...)
  2018-05-16  6:32 ` [PATCH 3/4] ovmf: " Khem Raj
@ 2018-05-16  6:32 ` Khem Raj
  2018-05-16 11:09   ` Burton, Ross
  3 siblings, 1 reply; 13+ messages in thread
From: Khem Raj @ 2018-05-16  6:32 UTC (permalink / raw)
  To: openembedded-core

This is needed for enabling static linking with SDK

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 meta/recipes-core/musl/musl_git.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-core/musl/musl_git.bb b/meta/recipes-core/musl/musl_git.bb
index a0a098f5b4..d7d201df9d 100644
--- a/meta/recipes-core/musl/musl_git.bb
+++ b/meta/recipes-core/musl/musl_git.bb
@@ -66,7 +66,7 @@ do_install() {
 	done
 }
 
-RDEPENDS_${PN}-dev += "linux-libc-headers-dev bsd-headers-dev libssp-nonshared-staticdev"
+RDEPENDS_${PN}-dev += "linux-libc-headers-dev bsd-headers-dev libssp-nonshared-staticdev ${PN}-staticdev"
 RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
 RPROVIDES_${PN} += "ldd libsegfault rtld(GNU_HASH)"
 
-- 
2.17.0



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

* Re: [PATCH 4/4] musl: Make dev package rdep on staticdev
  2018-05-16  6:32 ` [PATCH 4/4] musl: Make dev package rdep on staticdev Khem Raj
@ 2018-05-16 11:09   ` Burton, Ross
  2018-05-16 13:32     ` Khem Raj
  0 siblings, 1 reply; 13+ messages in thread
From: Burton, Ross @ 2018-05-16 11:09 UTC (permalink / raw)
  To: Khem Raj; +Cc: OE-core

Surely if you want to support static linking in the SDK, you just need
to add staticdev-pkgs to the SDKIMAGE_FEATURES?

Ross

On 16 May 2018 at 07:32, Khem Raj <raj.khem@gmail.com> wrote:
> This is needed for enabling static linking with SDK
>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>  meta/recipes-core/musl/musl_git.bb | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meta/recipes-core/musl/musl_git.bb b/meta/recipes-core/musl/musl_git.bb
> index a0a098f5b4..d7d201df9d 100644
> --- a/meta/recipes-core/musl/musl_git.bb
> +++ b/meta/recipes-core/musl/musl_git.bb
> @@ -66,7 +66,7 @@ do_install() {
>         done
>  }
>
> -RDEPENDS_${PN}-dev += "linux-libc-headers-dev bsd-headers-dev libssp-nonshared-staticdev"
> +RDEPENDS_${PN}-dev += "linux-libc-headers-dev bsd-headers-dev libssp-nonshared-staticdev ${PN}-staticdev"
>  RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
>  RPROVIDES_${PN} += "ldd libsegfault rtld(GNU_HASH)"
>
> --
> 2.17.0
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

* Re: [PATCH 4/4] musl: Make dev package rdep on staticdev
  2018-05-16 11:09   ` Burton, Ross
@ 2018-05-16 13:32     ` Khem Raj
  2018-05-16 14:38       ` Burton, Ross
  0 siblings, 1 reply; 13+ messages in thread
From: Khem Raj @ 2018-05-16 13:32 UTC (permalink / raw)
  To: Burton, Ross; +Cc: OE-core

On Wed, May 16, 2018 at 4:09 AM, Burton, Ross <ross.burton@intel.com> wrote:
> Surely if you want to support static linking in the SDK, you just need
> to add staticdev-pkgs to the SDKIMAGE_FEATURES?
>

In some usecase, compiler runtime and c library is only required everything
else is external. Adding whole staticdev bundle would conflict with that

> Ross
>
> On 16 May 2018 at 07:32, Khem Raj <raj.khem@gmail.com> wrote:
>> This is needed for enabling static linking with SDK
>>
>> Signed-off-by: Khem Raj <raj.khem@gmail.com>
>> ---
>>  meta/recipes-core/musl/musl_git.bb | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/meta/recipes-core/musl/musl_git.bb b/meta/recipes-core/musl/musl_git.bb
>> index a0a098f5b4..d7d201df9d 100644
>> --- a/meta/recipes-core/musl/musl_git.bb
>> +++ b/meta/recipes-core/musl/musl_git.bb
>> @@ -66,7 +66,7 @@ do_install() {
>>         done
>>  }
>>
>> -RDEPENDS_${PN}-dev += "linux-libc-headers-dev bsd-headers-dev libssp-nonshared-staticdev"
>> +RDEPENDS_${PN}-dev += "linux-libc-headers-dev bsd-headers-dev libssp-nonshared-staticdev ${PN}-staticdev"
>>  RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
>>  RPROVIDES_${PN} += "ldd libsegfault rtld(GNU_HASH)"
>>
>> --
>> 2.17.0
>>
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

* Re: [PATCH 4/4] musl: Make dev package rdep on staticdev
  2018-05-16 13:32     ` Khem Raj
@ 2018-05-16 14:38       ` Burton, Ross
  2018-05-16 15:04         ` Khem Raj
  0 siblings, 1 reply; 13+ messages in thread
From: Burton, Ross @ 2018-05-16 14:38 UTC (permalink / raw)
  To: Khem Raj; +Cc: OE-core

Surely in that usecase you can add musl-staticdev yourself?  Forcing
it into every SDK seems wasteful.

Ross

On 16 May 2018 at 14:32, Khem Raj <raj.khem@gmail.com> wrote:
> On Wed, May 16, 2018 at 4:09 AM, Burton, Ross <ross.burton@intel.com> wrote:
>> Surely if you want to support static linking in the SDK, you just need
>> to add staticdev-pkgs to the SDKIMAGE_FEATURES?
>>
>
> In some usecase, compiler runtime and c library is only required everything
> else is external. Adding whole staticdev bundle would conflict with that
>
>> Ross
>>
>> On 16 May 2018 at 07:32, Khem Raj <raj.khem@gmail.com> wrote:
>>> This is needed for enabling static linking with SDK
>>>
>>> Signed-off-by: Khem Raj <raj.khem@gmail.com>
>>> ---
>>>  meta/recipes-core/musl/musl_git.bb | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/meta/recipes-core/musl/musl_git.bb b/meta/recipes-core/musl/musl_git.bb
>>> index a0a098f5b4..d7d201df9d 100644
>>> --- a/meta/recipes-core/musl/musl_git.bb
>>> +++ b/meta/recipes-core/musl/musl_git.bb
>>> @@ -66,7 +66,7 @@ do_install() {
>>>         done
>>>  }
>>>
>>> -RDEPENDS_${PN}-dev += "linux-libc-headers-dev bsd-headers-dev libssp-nonshared-staticdev"
>>> +RDEPENDS_${PN}-dev += "linux-libc-headers-dev bsd-headers-dev libssp-nonshared-staticdev ${PN}-staticdev"
>>>  RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
>>>  RPROVIDES_${PN} += "ldd libsegfault rtld(GNU_HASH)"
>>>
>>> --
>>> 2.17.0
>>>
>>> --
>>> _______________________________________________
>>> Openembedded-core mailing list
>>> Openembedded-core@lists.openembedded.org
>>> http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

* Re: [PATCH 4/4] musl: Make dev package rdep on staticdev
  2018-05-16 14:38       ` Burton, Ross
@ 2018-05-16 15:04         ` Khem Raj
  0 siblings, 0 replies; 13+ messages in thread
From: Khem Raj @ 2018-05-16 15:04 UTC (permalink / raw)
  To: Burton, Ross; +Cc: OE-core

On Wed, May 16, 2018 at 7:38 AM, Burton, Ross <ross.burton@intel.com> wrote:
> Surely in that usecase you can add musl-staticdev yourself?  Forcing
> it into every SDK seems wasteful.
>

I guess thats a fair argument I can accept it. Please ignore this patch then

> Ross
>
> On 16 May 2018 at 14:32, Khem Raj <raj.khem@gmail.com> wrote:
>> On Wed, May 16, 2018 at 4:09 AM, Burton, Ross <ross.burton@intel.com> wrote:
>>> Surely if you want to support static linking in the SDK, you just need
>>> to add staticdev-pkgs to the SDKIMAGE_FEATURES?
>>>
>>
>> In some usecase, compiler runtime and c library is only required everything
>> else is external. Adding whole staticdev bundle would conflict with that
>>
>>> Ross
>>>
>>> On 16 May 2018 at 07:32, Khem Raj <raj.khem@gmail.com> wrote:
>>>> This is needed for enabling static linking with SDK
>>>>
>>>> Signed-off-by: Khem Raj <raj.khem@gmail.com>
>>>> ---
>>>>  meta/recipes-core/musl/musl_git.bb | 2 +-
>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/meta/recipes-core/musl/musl_git.bb b/meta/recipes-core/musl/musl_git.bb
>>>> index a0a098f5b4..d7d201df9d 100644
>>>> --- a/meta/recipes-core/musl/musl_git.bb
>>>> +++ b/meta/recipes-core/musl/musl_git.bb
>>>> @@ -66,7 +66,7 @@ do_install() {
>>>>         done
>>>>  }
>>>>
>>>> -RDEPENDS_${PN}-dev += "linux-libc-headers-dev bsd-headers-dev libssp-nonshared-staticdev"
>>>> +RDEPENDS_${PN}-dev += "linux-libc-headers-dev bsd-headers-dev libssp-nonshared-staticdev ${PN}-staticdev"
>>>>  RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"
>>>>  RPROVIDES_${PN} += "ldd libsegfault rtld(GNU_HASH)"
>>>>
>>>> --
>>>> 2.17.0
>>>>
>>>> --
>>>> _______________________________________________
>>>> Openembedded-core mailing list
>>>> Openembedded-core@lists.openembedded.org
>>>> http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

* Re: [PATCH 3/4] ovmf: Fix build with gcc8
  2018-05-16  6:32 ` [PATCH 3/4] ovmf: " Khem Raj
@ 2018-05-17 10:17   ` Burton, Ross
  2018-05-17 10:47     ` Martin Jansa
                       ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Burton, Ross @ 2018-05-17 10:17 UTC (permalink / raw)
  To: Khem Raj; +Cc: OE-core

Even when I pick from the branch instead of the mail, I suspect the
line endings are messed up and this won't apply.  Can you
double-check?

(I *hate* the ovmf recipe for this reason and am very tempted to just
run dos2unix over the tree after unpack!)

Ross

On 16 May 2018 at 07:32, Khem Raj <raj.khem@gmail.com> wrote:
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>  ....makefile-add-Wno-stringop-truncatio.patch |  73 ++++++++++++
>  ...ols-header.makefile-add-Wno-restrict.patch | 104 ++++++++++++++++++
>  ....makefile-revert-gcc-8-Wno-xxx-optio.patch |  55 +++++++++
>  ...-silence-false-stringop-overflow-war.patch |  65 +++++++++++
>  meta/recipes-core/ovmf/ovmf_git.bb            |   4 +
>  5 files changed, 301 insertions(+)
>  create mode 100644 meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch
>  create mode 100644 meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch
>  create mode 100644 meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch
>  create mode 100644 meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch
>
> diff --git a/meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch b/meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch
> new file mode 100644
> index 0000000000..1d1679fe7e
> --- /dev/null
> +++ b/meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch
> @@ -0,0 +1,73 @@
> +From 9fce4bab014b9aa618060eba13d6dd04b0fa1b70 Mon Sep 17 00:00:00 2001
> +From: Laszlo Ersek <lersek@redhat.com>
> +Date: Fri, 2 Mar 2018 17:11:52 +0100
> +Subject: [PATCH 1/4] BaseTools/header.makefile: add "-Wno-stringop-truncation"
> +
> +gcc-8 (which is part of Fedora 28) enables the new warning
> +"-Wstringop-truncation" in "-Wall". This warning is documented in detail
> +at <https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html>; the
> +introduction says
> +
> +> Warn for calls to bounded string manipulation functions such as strncat,
> +> strncpy, and stpncpy that may either truncate the copied string or leave
> +> the destination unchanged.
> +
> +It breaks the BaseTools build with:
> +
> +> EfiUtilityMsgs.c: In function 'PrintMessage':
> +> EfiUtilityMsgs.c:484:9: error: 'strncat' output may be truncated copying
> +> between 0 and 511 bytes from a string of length 511
> +> [-Werror=stringop-truncation]
> +>          strncat (Line, Line2, MAX_LINE_LEN - strlen (Line) - 1);
> +>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +> EfiUtilityMsgs.c:469:9: error: 'strncat' output may be truncated copying
> +> between 0 and 511 bytes from a string of length 511
> +> [-Werror=stringop-truncation]
> +>          strncat (Line, Line2, MAX_LINE_LEN - strlen (Line) - 1);
> +>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +> EfiUtilityMsgs.c:511:5: error: 'strncat' output may be truncated copying
> +> between 0 and 511 bytes from a string of length 511
> +> [-Werror=stringop-truncation]
> +>      strncat (Line, Line2, MAX_LINE_LEN - strlen (Line) - 1);
> +>      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +The right way to fix the warning would be to implement string concat with
> +snprintf(). However, Microsoft does not appear to support snprintf()
> +before VS2015
> +<https://stackoverflow.com/questions/2915672/snprintf-and-visual-studio-2010>,
> +so we just have to shut up the warning. The strncat() calls flagged above
> +are valid BTW.
> +
> +Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> +Cc: Cole Robinson <crobinso@redhat.com>
> +Cc: Liming Gao <liming.gao@intel.com>
> +Cc: Paolo Bonzini <pbonzini@redhat.com>
> +Cc: Yonghong Zhu <yonghong.zhu@intel.com>
> +Contributed-under: TianoCore Contribution Agreement 1.1
> +Signed-off-by: Laszlo Ersek <lersek@redhat.com>
> +Reviewed-by: Liming Gao <liming.gao@intel.com>
> +---
> +Upstream-Status: Backport
> +
> + BaseTools/Source/C/Makefiles/header.makefile | 4 ++--
> + 1 file changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile
> +index 063982b82f..6c3826aecb 100644
> +--- a/BaseTools/Source/C/Makefiles/header.makefile
> ++++ b/BaseTools/Source/C/Makefiles/header.makefile
> +@@ -47,9 +47,9 @@ INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKE
> + BUILD_CPPFLAGS = $(INCLUDE) -O2
> + ifeq ($(DARWIN),Darwin)
> + # assume clang or clang compatible flags on OS X
> +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -c -g
> ++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-self-assign -Wno-unused-result -nostdlib -c -g
> + else
> +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-unused-result -nostdlib -c -g
> ++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-unused-result -nostdlib -c -g
> + endif
> + BUILD_LFLAGS =
> + BUILD_CXXFLAGS = -Wno-unused-result
> +--
> +2.17.0
> +
> diff --git a/meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch b/meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch
> new file mode 100644
> index 0000000000..4a25e230ce
> --- /dev/null
> +++ b/meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch
> @@ -0,0 +1,104 @@
> +From 86dbdac5a25bd23deb4a0e0a97b527407e02184d Mon Sep 17 00:00:00 2001
> +From: Laszlo Ersek <lersek@redhat.com>
> +Date: Fri, 2 Mar 2018 17:11:52 +0100
> +Subject: [PATCH 2/4] BaseTools/header.makefile: add "-Wno-restrict"
> +
> +gcc-8 (which is part of Fedora 28) enables the new warning
> +"-Wrestrict" in "-Wall". This warning is documented in detail
> +at <https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html>; the
> +introduction says
> +
> +> Warn when an object referenced by a restrict-qualified parameter (or, in
> +> C++, a __restrict-qualified parameter) is aliased by another argument,
> +> or when copies between such objects overlap.
> +
> +It breaks the BaseTools build (in the Brotli compression library) with:
> +
> +> In function 'ProcessCommandsInternal',
> +>     inlined from 'ProcessCommands' at dec/decode.c:1828:10:
> +> dec/decode.c:1781:9: error: 'memcpy' accessing between 17 and 2147483631
> +> bytes at offsets 16 and 16 overlaps between 17 and 2147483631 bytes at
> +> offset 16 [-Werror=restrict]
> +>          memcpy(copy_dst + 16, copy_src + 16, (size_t)(i - 16));
> +>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +> In function 'ProcessCommandsInternal',
> +>     inlined from 'SafeProcessCommands' at dec/decode.c:1833:10:
> +> dec/decode.c:1781:9: error: 'memcpy' accessing between 17 and 2147483631
> +> bytes at offsets 16 and 16 overlaps between 17 and 2147483631 bytes at
> +> offset 16 [-Werror=restrict]
> +>          memcpy(copy_dst + 16, copy_src + 16, (size_t)(i - 16));
> +>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +Paolo Bonzini <pbonzini@redhat.com> analyzed the Brotli source in detail,
> +and concluded that the warning is a false positive:
> +
> +> This seems safe to me, because it's preceded by:
> +>
> +>     uint8_t* copy_dst = &s->ringbuffer[pos];
> +>     uint8_t* copy_src = &s->ringbuffer[src_start];
> +>     int dst_end = pos + i;
> +>     int src_end = src_start + i;
> +>     if (src_end > pos && dst_end > src_start) {
> +>       /* Regions intersect. */
> +>       goto CommandPostWrapCopy;
> +>     }
> +>
> +> If [src_start, src_start + i) and [pos, pos + i) don't intersect, then
> +> neither do [src_start + 16, src_start + i) and [pos + 16, pos + i).
> +>
> +> The if seems okay:
> +>
> +>        (src_start + i > pos && pos + i > src_start)
> +>
> +> which can be rewritten to:
> +>
> +>        (pos < src_start + i && src_start < pos + i)
> +>
> +> Then the numbers are in one of these two orders:
> +>
> +>      pos <= src_start < pos + i <= src_start + i
> +>      src_start <= pos < src_start + i <= pos + i
> +>
> +> These two would be allowed by the "if", but they can only happen if pos
> +> == src_start so they degenerate to the same two orders above:
> +>
> +>      pos <= src_start < src_start + i <= pos + i
> +>      src_start <= pos < pos + i <= src_start + i
> +>
> +> So it is a false positive in GCC.
> +
> +Disable the warning for now.
> +
> +Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> +Cc: Cole Robinson <crobinso@redhat.com>
> +Cc: Liming Gao <liming.gao@intel.com>
> +Cc: Paolo Bonzini <pbonzini@redhat.com>
> +Cc: Yonghong Zhu <yonghong.zhu@intel.com>
> +Reported-by: Cole Robinson <crobinso@redhat.com>
> +Contributed-under: TianoCore Contribution Agreement 1.1
> +Signed-off-by: Laszlo Ersek <lersek@redhat.com>
> +Reviewed-by: Liming Gao <liming.gao@intel.com>
> +---
> +Upstream-Status: Backport
> + BaseTools/Source/C/Makefiles/header.makefile | 4 ++--
> + 1 file changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile
> +index 6c3826aecb..3feae10095 100644
> +--- a/BaseTools/Source/C/Makefiles/header.makefile
> ++++ b/BaseTools/Source/C/Makefiles/header.makefile
> +@@ -47,9 +47,9 @@ INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKE
> + BUILD_CPPFLAGS = $(INCLUDE) -O2
> + ifeq ($(DARWIN),Darwin)
> + # assume clang or clang compatible flags on OS X
> +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-self-assign -Wno-unused-result -nostdlib -c -g
> ++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-self-assign -Wno-unused-result -nostdlib -c -g
> + else
> +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-unused-result -nostdlib -c -g
> ++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-unused-result -nostdlib -c -g
> + endif
> + BUILD_LFLAGS =
> + BUILD_CXXFLAGS = -Wno-unused-result
> +--
> +2.17.0
> +
> diff --git a/meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch b/meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch
> new file mode 100644
> index 0000000000..19f32e7cee
> --- /dev/null
> +++ b/meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch
> @@ -0,0 +1,55 @@
> +From 6866325dd9c17412e555974dde41f9631224db52 Mon Sep 17 00:00:00 2001
> +From: Laszlo Ersek <lersek@redhat.com>
> +Date: Wed, 7 Mar 2018 10:17:28 +0100
> +Subject: [PATCH 3/4] BaseTools/header.makefile: revert gcc-8 "-Wno-xxx"
> + options on OSX
> +
> +I recently added the gcc-8 specific "-Wno-stringop-truncation" and
> +"-Wno-restrict" options to BUILD_CFLAGS, both for "Darwin" (XCODE5 /
> +clang, OSX) and otherwise (gcc, Linux / Cygwin).
> +
> +I also regression-tested the change with gcc-4.8 on Linux -- gcc-4.8 does
> +not know either of the (gcc-8 specific) "-Wno-stringop-truncation" and
> +"-Wno-restrict" options, yet the build completed fine (by GCC design).
> +
> +Regarding OSX, my expectation was that
> +
> +- XCODE5 / clang would either recognize these warnings options (because
> +  clang does recognize most -W options of gcc),
> +
> +- or, similarly to gcc, clang would simply ignore the "-Wno-xxx" flags
> +  that it didn't recognize.
> +
> +Neither is the case; the new flags have broken the BaseTools build on OSX.
> +Revert them (for OSX only).
> +
> +Cc: Liming Gao <liming.gao@intel.com>
> +Cc: Yonghong Zhu <yonghong.zhu@intel.com>
> +Reported-by: Liming Gao <liming.gao@intel.com>
> +Fixes: 1d212a83df0eaf32a6f5d4159beb2d77832e0231
> +Fixes: 9222154ae7b3eef75ae88cdb56158256227cb929
> +Contributed-under: TianoCore Contribution Agreement 1.1
> +Signed-off-by: Laszlo Ersek <lersek@redhat.com>
> +Reviewed-by: Liming Gao <liming.gao@intel.com>
> +Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> +---
> +Upstream-Status: Backport
> + BaseTools/Source/C/Makefiles/header.makefile | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile
> +index 3feae10095..6eefddb417 100644
> +--- a/BaseTools/Source/C/Makefiles/header.makefile
> ++++ b/BaseTools/Source/C/Makefiles/header.makefile
> +@@ -47,7 +47,7 @@ INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKE
> + BUILD_CPPFLAGS = $(INCLUDE) -O2
> + ifeq ($(DARWIN),Darwin)
> + # assume clang or clang compatible flags on OS X
> +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-self-assign -Wno-unused-result -nostdlib -c -g
> ++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -c -g
> + else
> + BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-unused-result -nostdlib -c -g
> + endif
> +--
> +2.17.0
> +
> diff --git a/meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch b/meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch
> new file mode 100644
> index 0000000000..5fd4e9d573
> --- /dev/null
> +++ b/meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch
> @@ -0,0 +1,65 @@
> +From dfb42a5bff78d9239a80731e337855234badef3e Mon Sep 17 00:00:00 2001
> +From: Laszlo Ersek <lersek@redhat.com>
> +Date: Fri, 2 Mar 2018 17:11:52 +0100
> +Subject: [PATCH 4/4] BaseTools/GenVtf: silence false "stringop-overflow"
> + warning with memcpy()
> +
> +gcc-8 (which is part of Fedora 28) enables the new warning
> +"-Wstringop-overflow" in "-Wall". This warning is documented in detail at
> +<https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html>; the
> +introduction says
> +
> +> Warn for calls to string manipulation functions such as memcpy and
> +> strcpy that are determined to overflow the destination buffer.
> +
> +It breaks the BaseTools build with:
> +
> +> GenVtf.c: In function 'ConvertVersionInfo':
> +> GenVtf.c:132:7: error: 'strncpy' specified bound depends on the length
> +> of the source argument [-Werror=stringop-overflow=]
> +>        strncpy (TemStr + 4 - Length, Str, Length);
> +>        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +> GenVtf.c:130:14: note: length computed here
> +>      Length = strlen(Str);
> +>               ^~~~~~~~~~~
> +
> +It is a false positive because, while the bound equals the length of the
> +source argument, the destination pointer is moved back towards the
> +beginning of the destination buffer by the same amount (and this amount is
> +range-checked first, so we can't precede the start of the dest buffer).
> +
> +Replace both strncpy() calls with memcpy().
> +
> +Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> +Cc: Cole Robinson <crobinso@redhat.com>
> +Cc: Liming Gao <liming.gao@intel.com>
> +Cc: Paolo Bonzini <pbonzini@redhat.com>
> +Cc: Yonghong Zhu <yonghong.zhu@intel.com>
> +Reported-by: Cole Robinson <crobinso@redhat.com>
> +Contributed-under: TianoCore Contribution Agreement 1.1
> +Signed-off-by: Laszlo Ersek <lersek@redhat.com>
> +Reviewed-by: Liming Gao <liming.gao@intel.com>
> +---
> +Upstream-Status: Backport
> + BaseTools/Source/C/GenVtf/GenVtf.c | 4 ++--
> + 1 file changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/BaseTools/Source/C/GenVtf/GenVtf.c b/BaseTools/Source/C/GenVtf/GenVtf.c
> +index 2ae9a7be2c..0cd33e71e9 100644
> +--- a/BaseTools/Source/C/GenVtf/GenVtf.c
> ++++ b/BaseTools/Source/C/GenVtf/GenVtf.c
> +@@ -129,9 +129,9 @@ Returns:
> +   } else {
> +     Length = strlen(Str);
> +     if (Length < 4) {
> +-      strncpy (TemStr + 4 - Length, Str, Length);
> ++      memcpy (TemStr + 4 - Length, Str, Length);
> +     } else {
> +-      strncpy (TemStr, Str + Length - 4, 4);
> ++      memcpy (TemStr, Str + Length - 4, 4);
> +     }
> +
> +     sscanf (
> +--
> +2.17.0
> +
> diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/ovmf_git.bb
> index 8750b3c528..212530acbf 100644
> --- a/meta/recipes-core/ovmf/ovmf_git.bb
> +++ b/meta/recipes-core/ovmf/ovmf_git.bb
> @@ -19,6 +19,10 @@ SRC_URI = "git://github.com/tianocore/edk2.git;branch=master \
>         file://0004-ovmf-enable-long-path-file.patch \
>         file://VfrCompile-increase-path-length-limit.patch \
>         file://no-stack-protector-all-archs.patch \
> +       file://0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch \
> +       file://0002-BaseTools-header.makefile-add-Wno-restrict.patch \
> +       file://0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch \
> +       file://0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch \
>          "
>  UPSTREAM_VERSION_UNKNOWN = "1"
>
> --
> 2.17.0
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

* Re: [PATCH 3/4] ovmf: Fix build with gcc8
  2018-05-17 10:17   ` Burton, Ross
@ 2018-05-17 10:47     ` Martin Jansa
  2018-05-17 15:30     ` Dan McGregor
  2018-05-18  5:52     ` Khem Raj
  2 siblings, 0 replies; 13+ messages in thread
From: Martin Jansa @ 2018-05-17 10:47 UTC (permalink / raw)
  To: Burton, Ross; +Cc: OE-core

[-- Attachment #1: Type: text/plain, Size: 19228 bytes --]

On Thu, May 17, 2018 at 11:17:11AM +0100, Burton, Ross wrote:
> Even when I pick from the branch instead of the mail, I suspect the
> line endings are messed up and this won't apply.  Can you
> double-check?
> 
> (I *hate* the ovmf recipe for this reason and am very tempted to just
> run dos2unix over the tree after unpack!)

meta-openembedded/meta-oe/classes/dos2unix.bbclass
might help you do that automatically.

> On 16 May 2018 at 07:32, Khem Raj <raj.khem@gmail.com> wrote:
> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > ---
> >  ....makefile-add-Wno-stringop-truncatio.patch |  73 ++++++++++++
> >  ...ols-header.makefile-add-Wno-restrict.patch | 104 ++++++++++++++++++
> >  ....makefile-revert-gcc-8-Wno-xxx-optio.patch |  55 +++++++++
> >  ...-silence-false-stringop-overflow-war.patch |  65 +++++++++++
> >  meta/recipes-core/ovmf/ovmf_git.bb            |   4 +
> >  5 files changed, 301 insertions(+)
> >  create mode 100644 meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch
> >  create mode 100644 meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch
> >  create mode 100644 meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch
> >  create mode 100644 meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch
> >
> > diff --git a/meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch b/meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch
> > new file mode 100644
> > index 0000000000..1d1679fe7e
> > --- /dev/null
> > +++ b/meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch
> > @@ -0,0 +1,73 @@
> > +From 9fce4bab014b9aa618060eba13d6dd04b0fa1b70 Mon Sep 17 00:00:00 2001
> > +From: Laszlo Ersek <lersek@redhat.com>
> > +Date: Fri, 2 Mar 2018 17:11:52 +0100
> > +Subject: [PATCH 1/4] BaseTools/header.makefile: add "-Wno-stringop-truncation"
> > +
> > +gcc-8 (which is part of Fedora 28) enables the new warning
> > +"-Wstringop-truncation" in "-Wall". This warning is documented in detail
> > +at <https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html>; the
> > +introduction says
> > +
> > +> Warn for calls to bounded string manipulation functions such as strncat,
> > +> strncpy, and stpncpy that may either truncate the copied string or leave
> > +> the destination unchanged.
> > +
> > +It breaks the BaseTools build with:
> > +
> > +> EfiUtilityMsgs.c: In function 'PrintMessage':
> > +> EfiUtilityMsgs.c:484:9: error: 'strncat' output may be truncated copying
> > +> between 0 and 511 bytes from a string of length 511
> > +> [-Werror=stringop-truncation]
> > +>          strncat (Line, Line2, MAX_LINE_LEN - strlen (Line) - 1);
> > +>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > +> EfiUtilityMsgs.c:469:9: error: 'strncat' output may be truncated copying
> > +> between 0 and 511 bytes from a string of length 511
> > +> [-Werror=stringop-truncation]
> > +>          strncat (Line, Line2, MAX_LINE_LEN - strlen (Line) - 1);
> > +>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > +> EfiUtilityMsgs.c:511:5: error: 'strncat' output may be truncated copying
> > +> between 0 and 511 bytes from a string of length 511
> > +> [-Werror=stringop-truncation]
> > +>      strncat (Line, Line2, MAX_LINE_LEN - strlen (Line) - 1);
> > +>      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > +
> > +The right way to fix the warning would be to implement string concat with
> > +snprintf(). However, Microsoft does not appear to support snprintf()
> > +before VS2015
> > +<https://stackoverflow.com/questions/2915672/snprintf-and-visual-studio-2010>,
> > +so we just have to shut up the warning. The strncat() calls flagged above
> > +are valid BTW.
> > +
> > +Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> > +Cc: Cole Robinson <crobinso@redhat.com>
> > +Cc: Liming Gao <liming.gao@intel.com>
> > +Cc: Paolo Bonzini <pbonzini@redhat.com>
> > +Cc: Yonghong Zhu <yonghong.zhu@intel.com>
> > +Contributed-under: TianoCore Contribution Agreement 1.1
> > +Signed-off-by: Laszlo Ersek <lersek@redhat.com>
> > +Reviewed-by: Liming Gao <liming.gao@intel.com>
> > +---
> > +Upstream-Status: Backport
> > +
> > + BaseTools/Source/C/Makefiles/header.makefile | 4 ++--
> > + 1 file changed, 2 insertions(+), 2 deletions(-)
> > +
> > +diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile
> > +index 063982b82f..6c3826aecb 100644
> > +--- a/BaseTools/Source/C/Makefiles/header.makefile
> > ++++ b/BaseTools/Source/C/Makefiles/header.makefile
> > +@@ -47,9 +47,9 @@ INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKE
> > + BUILD_CPPFLAGS = $(INCLUDE) -O2
> > + ifeq ($(DARWIN),Darwin)
> > + # assume clang or clang compatible flags on OS X
> > +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -c -g
> > ++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-self-assign -Wno-unused-result -nostdlib -c -g
> > + else
> > +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-unused-result -nostdlib -c -g
> > ++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-unused-result -nostdlib -c -g
> > + endif
> > + BUILD_LFLAGS =
> > + BUILD_CXXFLAGS = -Wno-unused-result
> > +--
> > +2.17.0
> > +
> > diff --git a/meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch b/meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch
> > new file mode 100644
> > index 0000000000..4a25e230ce
> > --- /dev/null
> > +++ b/meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch
> > @@ -0,0 +1,104 @@
> > +From 86dbdac5a25bd23deb4a0e0a97b527407e02184d Mon Sep 17 00:00:00 2001
> > +From: Laszlo Ersek <lersek@redhat.com>
> > +Date: Fri, 2 Mar 2018 17:11:52 +0100
> > +Subject: [PATCH 2/4] BaseTools/header.makefile: add "-Wno-restrict"
> > +
> > +gcc-8 (which is part of Fedora 28) enables the new warning
> > +"-Wrestrict" in "-Wall". This warning is documented in detail
> > +at <https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html>; the
> > +introduction says
> > +
> > +> Warn when an object referenced by a restrict-qualified parameter (or, in
> > +> C++, a __restrict-qualified parameter) is aliased by another argument,
> > +> or when copies between such objects overlap.
> > +
> > +It breaks the BaseTools build (in the Brotli compression library) with:
> > +
> > +> In function 'ProcessCommandsInternal',
> > +>     inlined from 'ProcessCommands' at dec/decode.c:1828:10:
> > +> dec/decode.c:1781:9: error: 'memcpy' accessing between 17 and 2147483631
> > +> bytes at offsets 16 and 16 overlaps between 17 and 2147483631 bytes at
> > +> offset 16 [-Werror=restrict]
> > +>          memcpy(copy_dst + 16, copy_src + 16, (size_t)(i - 16));
> > +>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > +> In function 'ProcessCommandsInternal',
> > +>     inlined from 'SafeProcessCommands' at dec/decode.c:1833:10:
> > +> dec/decode.c:1781:9: error: 'memcpy' accessing between 17 and 2147483631
> > +> bytes at offsets 16 and 16 overlaps between 17 and 2147483631 bytes at
> > +> offset 16 [-Werror=restrict]
> > +>          memcpy(copy_dst + 16, copy_src + 16, (size_t)(i - 16));
> > +>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > +
> > +Paolo Bonzini <pbonzini@redhat.com> analyzed the Brotli source in detail,
> > +and concluded that the warning is a false positive:
> > +
> > +> This seems safe to me, because it's preceded by:
> > +>
> > +>     uint8_t* copy_dst = &s->ringbuffer[pos];
> > +>     uint8_t* copy_src = &s->ringbuffer[src_start];
> > +>     int dst_end = pos + i;
> > +>     int src_end = src_start + i;
> > +>     if (src_end > pos && dst_end > src_start) {
> > +>       /* Regions intersect. */
> > +>       goto CommandPostWrapCopy;
> > +>     }
> > +>
> > +> If [src_start, src_start + i) and [pos, pos + i) don't intersect, then
> > +> neither do [src_start + 16, src_start + i) and [pos + 16, pos + i).
> > +>
> > +> The if seems okay:
> > +>
> > +>        (src_start + i > pos && pos + i > src_start)
> > +>
> > +> which can be rewritten to:
> > +>
> > +>        (pos < src_start + i && src_start < pos + i)
> > +>
> > +> Then the numbers are in one of these two orders:
> > +>
> > +>      pos <= src_start < pos + i <= src_start + i
> > +>      src_start <= pos < src_start + i <= pos + i
> > +>
> > +> These two would be allowed by the "if", but they can only happen if pos
> > +> == src_start so they degenerate to the same two orders above:
> > +>
> > +>      pos <= src_start < src_start + i <= pos + i
> > +>      src_start <= pos < pos + i <= src_start + i
> > +>
> > +> So it is a false positive in GCC.
> > +
> > +Disable the warning for now.
> > +
> > +Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> > +Cc: Cole Robinson <crobinso@redhat.com>
> > +Cc: Liming Gao <liming.gao@intel.com>
> > +Cc: Paolo Bonzini <pbonzini@redhat.com>
> > +Cc: Yonghong Zhu <yonghong.zhu@intel.com>
> > +Reported-by: Cole Robinson <crobinso@redhat.com>
> > +Contributed-under: TianoCore Contribution Agreement 1.1
> > +Signed-off-by: Laszlo Ersek <lersek@redhat.com>
> > +Reviewed-by: Liming Gao <liming.gao@intel.com>
> > +---
> > +Upstream-Status: Backport
> > + BaseTools/Source/C/Makefiles/header.makefile | 4 ++--
> > + 1 file changed, 2 insertions(+), 2 deletions(-)
> > +
> > +diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile
> > +index 6c3826aecb..3feae10095 100644
> > +--- a/BaseTools/Source/C/Makefiles/header.makefile
> > ++++ b/BaseTools/Source/C/Makefiles/header.makefile
> > +@@ -47,9 +47,9 @@ INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKE
> > + BUILD_CPPFLAGS = $(INCLUDE) -O2
> > + ifeq ($(DARWIN),Darwin)
> > + # assume clang or clang compatible flags on OS X
> > +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-self-assign -Wno-unused-result -nostdlib -c -g
> > ++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-self-assign -Wno-unused-result -nostdlib -c -g
> > + else
> > +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-unused-result -nostdlib -c -g
> > ++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-unused-result -nostdlib -c -g
> > + endif
> > + BUILD_LFLAGS =
> > + BUILD_CXXFLAGS = -Wno-unused-result
> > +--
> > +2.17.0
> > +
> > diff --git a/meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch b/meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch
> > new file mode 100644
> > index 0000000000..19f32e7cee
> > --- /dev/null
> > +++ b/meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch
> > @@ -0,0 +1,55 @@
> > +From 6866325dd9c17412e555974dde41f9631224db52 Mon Sep 17 00:00:00 2001
> > +From: Laszlo Ersek <lersek@redhat.com>
> > +Date: Wed, 7 Mar 2018 10:17:28 +0100
> > +Subject: [PATCH 3/4] BaseTools/header.makefile: revert gcc-8 "-Wno-xxx"
> > + options on OSX
> > +
> > +I recently added the gcc-8 specific "-Wno-stringop-truncation" and
> > +"-Wno-restrict" options to BUILD_CFLAGS, both for "Darwin" (XCODE5 /
> > +clang, OSX) and otherwise (gcc, Linux / Cygwin).
> > +
> > +I also regression-tested the change with gcc-4.8 on Linux -- gcc-4.8 does
> > +not know either of the (gcc-8 specific) "-Wno-stringop-truncation" and
> > +"-Wno-restrict" options, yet the build completed fine (by GCC design).
> > +
> > +Regarding OSX, my expectation was that
> > +
> > +- XCODE5 / clang would either recognize these warnings options (because
> > +  clang does recognize most -W options of gcc),
> > +
> > +- or, similarly to gcc, clang would simply ignore the "-Wno-xxx" flags
> > +  that it didn't recognize.
> > +
> > +Neither is the case; the new flags have broken the BaseTools build on OSX.
> > +Revert them (for OSX only).
> > +
> > +Cc: Liming Gao <liming.gao@intel.com>
> > +Cc: Yonghong Zhu <yonghong.zhu@intel.com>
> > +Reported-by: Liming Gao <liming.gao@intel.com>
> > +Fixes: 1d212a83df0eaf32a6f5d4159beb2d77832e0231
> > +Fixes: 9222154ae7b3eef75ae88cdb56158256227cb929
> > +Contributed-under: TianoCore Contribution Agreement 1.1
> > +Signed-off-by: Laszlo Ersek <lersek@redhat.com>
> > +Reviewed-by: Liming Gao <liming.gao@intel.com>
> > +Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> > +---
> > +Upstream-Status: Backport
> > + BaseTools/Source/C/Makefiles/header.makefile | 2 +-
> > + 1 file changed, 1 insertion(+), 1 deletion(-)
> > +
> > +diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile
> > +index 3feae10095..6eefddb417 100644
> > +--- a/BaseTools/Source/C/Makefiles/header.makefile
> > ++++ b/BaseTools/Source/C/Makefiles/header.makefile
> > +@@ -47,7 +47,7 @@ INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKE
> > + BUILD_CPPFLAGS = $(INCLUDE) -O2
> > + ifeq ($(DARWIN),Darwin)
> > + # assume clang or clang compatible flags on OS X
> > +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-self-assign -Wno-unused-result -nostdlib -c -g
> > ++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -c -g
> > + else
> > + BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-unused-result -nostdlib -c -g
> > + endif
> > +--
> > +2.17.0
> > +
> > diff --git a/meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch b/meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch
> > new file mode 100644
> > index 0000000000..5fd4e9d573
> > --- /dev/null
> > +++ b/meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch
> > @@ -0,0 +1,65 @@
> > +From dfb42a5bff78d9239a80731e337855234badef3e Mon Sep 17 00:00:00 2001
> > +From: Laszlo Ersek <lersek@redhat.com>
> > +Date: Fri, 2 Mar 2018 17:11:52 +0100
> > +Subject: [PATCH 4/4] BaseTools/GenVtf: silence false "stringop-overflow"
> > + warning with memcpy()
> > +
> > +gcc-8 (which is part of Fedora 28) enables the new warning
> > +"-Wstringop-overflow" in "-Wall". This warning is documented in detail at
> > +<https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html>; the
> > +introduction says
> > +
> > +> Warn for calls to string manipulation functions such as memcpy and
> > +> strcpy that are determined to overflow the destination buffer.
> > +
> > +It breaks the BaseTools build with:
> > +
> > +> GenVtf.c: In function 'ConvertVersionInfo':
> > +> GenVtf.c:132:7: error: 'strncpy' specified bound depends on the length
> > +> of the source argument [-Werror=stringop-overflow=]
> > +>        strncpy (TemStr + 4 - Length, Str, Length);
> > +>        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > +> GenVtf.c:130:14: note: length computed here
> > +>      Length = strlen(Str);
> > +>               ^~~~~~~~~~~
> > +
> > +It is a false positive because, while the bound equals the length of the
> > +source argument, the destination pointer is moved back towards the
> > +beginning of the destination buffer by the same amount (and this amount is
> > +range-checked first, so we can't precede the start of the dest buffer).
> > +
> > +Replace both strncpy() calls with memcpy().
> > +
> > +Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> > +Cc: Cole Robinson <crobinso@redhat.com>
> > +Cc: Liming Gao <liming.gao@intel.com>
> > +Cc: Paolo Bonzini <pbonzini@redhat.com>
> > +Cc: Yonghong Zhu <yonghong.zhu@intel.com>
> > +Reported-by: Cole Robinson <crobinso@redhat.com>
> > +Contributed-under: TianoCore Contribution Agreement 1.1
> > +Signed-off-by: Laszlo Ersek <lersek@redhat.com>
> > +Reviewed-by: Liming Gao <liming.gao@intel.com>
> > +---
> > +Upstream-Status: Backport
> > + BaseTools/Source/C/GenVtf/GenVtf.c | 4 ++--
> > + 1 file changed, 2 insertions(+), 2 deletions(-)
> > +
> > +diff --git a/BaseTools/Source/C/GenVtf/GenVtf.c b/BaseTools/Source/C/GenVtf/GenVtf.c
> > +index 2ae9a7be2c..0cd33e71e9 100644
> > +--- a/BaseTools/Source/C/GenVtf/GenVtf.c
> > ++++ b/BaseTools/Source/C/GenVtf/GenVtf.c
> > +@@ -129,9 +129,9 @@ Returns:
> > +   } else {
> > +     Length = strlen(Str);
> > +     if (Length < 4) {
> > +-      strncpy (TemStr + 4 - Length, Str, Length);
> > ++      memcpy (TemStr + 4 - Length, Str, Length);
> > +     } else {
> > +-      strncpy (TemStr, Str + Length - 4, 4);
> > ++      memcpy (TemStr, Str + Length - 4, 4);
> > +     }
> > +
> > +     sscanf (
> > +--
> > +2.17.0
> > +
> > diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/ovmf_git.bb
> > index 8750b3c528..212530acbf 100644
> > --- a/meta/recipes-core/ovmf/ovmf_git.bb
> > +++ b/meta/recipes-core/ovmf/ovmf_git.bb
> > @@ -19,6 +19,10 @@ SRC_URI = "git://github.com/tianocore/edk2.git;branch=master \
> >         file://0004-ovmf-enable-long-path-file.patch \
> >         file://VfrCompile-increase-path-length-limit.patch \
> >         file://no-stack-protector-all-archs.patch \
> > +       file://0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch \
> > +       file://0002-BaseTools-header.makefile-add-Wno-restrict.patch \
> > +       file://0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch \
> > +       file://0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch \
> >          "
> >  UPSTREAM_VERSION_UNKNOWN = "1"
> >
> > --
> > 2.17.0
> >
> > --
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core
> -- 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 201 bytes --]

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

* Re: [PATCH 3/4] ovmf: Fix build with gcc8
  2018-05-17 10:17   ` Burton, Ross
  2018-05-17 10:47     ` Martin Jansa
@ 2018-05-17 15:30     ` Dan McGregor
  2018-05-18  5:52     ` Khem Raj
  2 siblings, 0 replies; 13+ messages in thread
From: Dan McGregor @ 2018-05-17 15:30 UTC (permalink / raw)
  To: Burton, Ross; +Cc: OE-core

On 17 May 2018 at 04:17, Burton, Ross <ross.burton@intel.com> wrote:
> Even when I pick from the branch instead of the mail, I suspect the
> line endings are messed up and this won't apply.  Can you
> double-check?
>
> (I *hate* the ovmf recipe for this reason and am very tempted to just
> run dos2unix over the tree after unpack!)

I was tempted last week to set the text=auto property in a
.gitattributes file in the udk2 repository and submit it upstream for
exactly that reason.

>
> Ross
>
> On 16 May 2018 at 07:32, Khem Raj <raj.khem@gmail.com> wrote:
>> Signed-off-by: Khem Raj <raj.khem@gmail.com>
>> ---
>>  ....makefile-add-Wno-stringop-truncatio.patch |  73 ++++++++++++
>>  ...ols-header.makefile-add-Wno-restrict.patch | 104 ++++++++++++++++++
>>  ....makefile-revert-gcc-8-Wno-xxx-optio.patch |  55 +++++++++
>>  ...-silence-false-stringop-overflow-war.patch |  65 +++++++++++
>>  meta/recipes-core/ovmf/ovmf_git.bb            |   4 +
>>  5 files changed, 301 insertions(+)
>>  create mode 100644 meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch
>>  create mode 100644 meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch
>>  create mode 100644 meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch
>>  create mode 100644 meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch
>>
>> diff --git a/meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch b/meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch
>> new file mode 100644
>> index 0000000000..1d1679fe7e
>> --- /dev/null
>> +++ b/meta/recipes-core/ovmf/ovmf/0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch
>> @@ -0,0 +1,73 @@
>> +From 9fce4bab014b9aa618060eba13d6dd04b0fa1b70 Mon Sep 17 00:00:00 2001
>> +From: Laszlo Ersek <lersek@redhat.com>
>> +Date: Fri, 2 Mar 2018 17:11:52 +0100
>> +Subject: [PATCH 1/4] BaseTools/header.makefile: add "-Wno-stringop-truncation"
>> +
>> +gcc-8 (which is part of Fedora 28) enables the new warning
>> +"-Wstringop-truncation" in "-Wall". This warning is documented in detail
>> +at <https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html>; the
>> +introduction says
>> +
>> +> Warn for calls to bounded string manipulation functions such as strncat,
>> +> strncpy, and stpncpy that may either truncate the copied string or leave
>> +> the destination unchanged.
>> +
>> +It breaks the BaseTools build with:
>> +
>> +> EfiUtilityMsgs.c: In function 'PrintMessage':
>> +> EfiUtilityMsgs.c:484:9: error: 'strncat' output may be truncated copying
>> +> between 0 and 511 bytes from a string of length 511
>> +> [-Werror=stringop-truncation]
>> +>          strncat (Line, Line2, MAX_LINE_LEN - strlen (Line) - 1);
>> +>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> +> EfiUtilityMsgs.c:469:9: error: 'strncat' output may be truncated copying
>> +> between 0 and 511 bytes from a string of length 511
>> +> [-Werror=stringop-truncation]
>> +>          strncat (Line, Line2, MAX_LINE_LEN - strlen (Line) - 1);
>> +>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> +> EfiUtilityMsgs.c:511:5: error: 'strncat' output may be truncated copying
>> +> between 0 and 511 bytes from a string of length 511
>> +> [-Werror=stringop-truncation]
>> +>      strncat (Line, Line2, MAX_LINE_LEN - strlen (Line) - 1);
>> +>      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> +
>> +The right way to fix the warning would be to implement string concat with
>> +snprintf(). However, Microsoft does not appear to support snprintf()
>> +before VS2015
>> +<https://stackoverflow.com/questions/2915672/snprintf-and-visual-studio-2010>,
>> +so we just have to shut up the warning. The strncat() calls flagged above
>> +are valid BTW.
>> +
>> +Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>> +Cc: Cole Robinson <crobinso@redhat.com>
>> +Cc: Liming Gao <liming.gao@intel.com>
>> +Cc: Paolo Bonzini <pbonzini@redhat.com>
>> +Cc: Yonghong Zhu <yonghong.zhu@intel.com>
>> +Contributed-under: TianoCore Contribution Agreement 1.1
>> +Signed-off-by: Laszlo Ersek <lersek@redhat.com>
>> +Reviewed-by: Liming Gao <liming.gao@intel.com>
>> +---
>> +Upstream-Status: Backport
>> +
>> + BaseTools/Source/C/Makefiles/header.makefile | 4 ++--
>> + 1 file changed, 2 insertions(+), 2 deletions(-)
>> +
>> +diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile
>> +index 063982b82f..6c3826aecb 100644
>> +--- a/BaseTools/Source/C/Makefiles/header.makefile
>> ++++ b/BaseTools/Source/C/Makefiles/header.makefile
>> +@@ -47,9 +47,9 @@ INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKE
>> + BUILD_CPPFLAGS = $(INCLUDE) -O2
>> + ifeq ($(DARWIN),Darwin)
>> + # assume clang or clang compatible flags on OS X
>> +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -c -g
>> ++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-self-assign -Wno-unused-result -nostdlib -c -g
>> + else
>> +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-unused-result -nostdlib -c -g
>> ++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-unused-result -nostdlib -c -g
>> + endif
>> + BUILD_LFLAGS =
>> + BUILD_CXXFLAGS = -Wno-unused-result
>> +--
>> +2.17.0
>> +
>> diff --git a/meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch b/meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch
>> new file mode 100644
>> index 0000000000..4a25e230ce
>> --- /dev/null
>> +++ b/meta/recipes-core/ovmf/ovmf/0002-BaseTools-header.makefile-add-Wno-restrict.patch
>> @@ -0,0 +1,104 @@
>> +From 86dbdac5a25bd23deb4a0e0a97b527407e02184d Mon Sep 17 00:00:00 2001
>> +From: Laszlo Ersek <lersek@redhat.com>
>> +Date: Fri, 2 Mar 2018 17:11:52 +0100
>> +Subject: [PATCH 2/4] BaseTools/header.makefile: add "-Wno-restrict"
>> +
>> +gcc-8 (which is part of Fedora 28) enables the new warning
>> +"-Wrestrict" in "-Wall". This warning is documented in detail
>> +at <https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html>; the
>> +introduction says
>> +
>> +> Warn when an object referenced by a restrict-qualified parameter (or, in
>> +> C++, a __restrict-qualified parameter) is aliased by another argument,
>> +> or when copies between such objects overlap.
>> +
>> +It breaks the BaseTools build (in the Brotli compression library) with:
>> +
>> +> In function 'ProcessCommandsInternal',
>> +>     inlined from 'ProcessCommands' at dec/decode.c:1828:10:
>> +> dec/decode.c:1781:9: error: 'memcpy' accessing between 17 and 2147483631
>> +> bytes at offsets 16 and 16 overlaps between 17 and 2147483631 bytes at
>> +> offset 16 [-Werror=restrict]
>> +>          memcpy(copy_dst + 16, copy_src + 16, (size_t)(i - 16));
>> +>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> +> In function 'ProcessCommandsInternal',
>> +>     inlined from 'SafeProcessCommands' at dec/decode.c:1833:10:
>> +> dec/decode.c:1781:9: error: 'memcpy' accessing between 17 and 2147483631
>> +> bytes at offsets 16 and 16 overlaps between 17 and 2147483631 bytes at
>> +> offset 16 [-Werror=restrict]
>> +>          memcpy(copy_dst + 16, copy_src + 16, (size_t)(i - 16));
>> +>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> +
>> +Paolo Bonzini <pbonzini@redhat.com> analyzed the Brotli source in detail,
>> +and concluded that the warning is a false positive:
>> +
>> +> This seems safe to me, because it's preceded by:
>> +>
>> +>     uint8_t* copy_dst = &s->ringbuffer[pos];
>> +>     uint8_t* copy_src = &s->ringbuffer[src_start];
>> +>     int dst_end = pos + i;
>> +>     int src_end = src_start + i;
>> +>     if (src_end > pos && dst_end > src_start) {
>> +>       /* Regions intersect. */
>> +>       goto CommandPostWrapCopy;
>> +>     }
>> +>
>> +> If [src_start, src_start + i) and [pos, pos + i) don't intersect, then
>> +> neither do [src_start + 16, src_start + i) and [pos + 16, pos + i).
>> +>
>> +> The if seems okay:
>> +>
>> +>        (src_start + i > pos && pos + i > src_start)
>> +>
>> +> which can be rewritten to:
>> +>
>> +>        (pos < src_start + i && src_start < pos + i)
>> +>
>> +> Then the numbers are in one of these two orders:
>> +>
>> +>      pos <= src_start < pos + i <= src_start + i
>> +>      src_start <= pos < src_start + i <= pos + i
>> +>
>> +> These two would be allowed by the "if", but they can only happen if pos
>> +> == src_start so they degenerate to the same two orders above:
>> +>
>> +>      pos <= src_start < src_start + i <= pos + i
>> +>      src_start <= pos < pos + i <= src_start + i
>> +>
>> +> So it is a false positive in GCC.
>> +
>> +Disable the warning for now.
>> +
>> +Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>> +Cc: Cole Robinson <crobinso@redhat.com>
>> +Cc: Liming Gao <liming.gao@intel.com>
>> +Cc: Paolo Bonzini <pbonzini@redhat.com>
>> +Cc: Yonghong Zhu <yonghong.zhu@intel.com>
>> +Reported-by: Cole Robinson <crobinso@redhat.com>
>> +Contributed-under: TianoCore Contribution Agreement 1.1
>> +Signed-off-by: Laszlo Ersek <lersek@redhat.com>
>> +Reviewed-by: Liming Gao <liming.gao@intel.com>
>> +---
>> +Upstream-Status: Backport
>> + BaseTools/Source/C/Makefiles/header.makefile | 4 ++--
>> + 1 file changed, 2 insertions(+), 2 deletions(-)
>> +
>> +diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile
>> +index 6c3826aecb..3feae10095 100644
>> +--- a/BaseTools/Source/C/Makefiles/header.makefile
>> ++++ b/BaseTools/Source/C/Makefiles/header.makefile
>> +@@ -47,9 +47,9 @@ INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKE
>> + BUILD_CPPFLAGS = $(INCLUDE) -O2
>> + ifeq ($(DARWIN),Darwin)
>> + # assume clang or clang compatible flags on OS X
>> +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-self-assign -Wno-unused-result -nostdlib -c -g
>> ++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-self-assign -Wno-unused-result -nostdlib -c -g
>> + else
>> +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-unused-result -nostdlib -c -g
>> ++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-unused-result -nostdlib -c -g
>> + endif
>> + BUILD_LFLAGS =
>> + BUILD_CXXFLAGS = -Wno-unused-result
>> +--
>> +2.17.0
>> +
>> diff --git a/meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch b/meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch
>> new file mode 100644
>> index 0000000000..19f32e7cee
>> --- /dev/null
>> +++ b/meta/recipes-core/ovmf/ovmf/0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch
>> @@ -0,0 +1,55 @@
>> +From 6866325dd9c17412e555974dde41f9631224db52 Mon Sep 17 00:00:00 2001
>> +From: Laszlo Ersek <lersek@redhat.com>
>> +Date: Wed, 7 Mar 2018 10:17:28 +0100
>> +Subject: [PATCH 3/4] BaseTools/header.makefile: revert gcc-8 "-Wno-xxx"
>> + options on OSX
>> +
>> +I recently added the gcc-8 specific "-Wno-stringop-truncation" and
>> +"-Wno-restrict" options to BUILD_CFLAGS, both for "Darwin" (XCODE5 /
>> +clang, OSX) and otherwise (gcc, Linux / Cygwin).
>> +
>> +I also regression-tested the change with gcc-4.8 on Linux -- gcc-4.8 does
>> +not know either of the (gcc-8 specific) "-Wno-stringop-truncation" and
>> +"-Wno-restrict" options, yet the build completed fine (by GCC design).
>> +
>> +Regarding OSX, my expectation was that
>> +
>> +- XCODE5 / clang would either recognize these warnings options (because
>> +  clang does recognize most -W options of gcc),
>> +
>> +- or, similarly to gcc, clang would simply ignore the "-Wno-xxx" flags
>> +  that it didn't recognize.
>> +
>> +Neither is the case; the new flags have broken the BaseTools build on OSX.
>> +Revert them (for OSX only).
>> +
>> +Cc: Liming Gao <liming.gao@intel.com>
>> +Cc: Yonghong Zhu <yonghong.zhu@intel.com>
>> +Reported-by: Liming Gao <liming.gao@intel.com>
>> +Fixes: 1d212a83df0eaf32a6f5d4159beb2d77832e0231
>> +Fixes: 9222154ae7b3eef75ae88cdb56158256227cb929
>> +Contributed-under: TianoCore Contribution Agreement 1.1
>> +Signed-off-by: Laszlo Ersek <lersek@redhat.com>
>> +Reviewed-by: Liming Gao <liming.gao@intel.com>
>> +Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>> +---
>> +Upstream-Status: Backport
>> + BaseTools/Source/C/Makefiles/header.makefile | 2 +-
>> + 1 file changed, 1 insertion(+), 1 deletion(-)
>> +
>> +diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile
>> +index 3feae10095..6eefddb417 100644
>> +--- a/BaseTools/Source/C/Makefiles/header.makefile
>> ++++ b/BaseTools/Source/C/Makefiles/header.makefile
>> +@@ -47,7 +47,7 @@ INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKE
>> + BUILD_CPPFLAGS = $(INCLUDE) -O2
>> + ifeq ($(DARWIN),Darwin)
>> + # assume clang or clang compatible flags on OS X
>> +-BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-self-assign -Wno-unused-result -nostdlib -c -g
>> ++BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -c -g
>> + else
>> + BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict -Wno-unused-result -nostdlib -c -g
>> + endif
>> +--
>> +2.17.0
>> +
>> diff --git a/meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch b/meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch
>> new file mode 100644
>> index 0000000000..5fd4e9d573
>> --- /dev/null
>> +++ b/meta/recipes-core/ovmf/ovmf/0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch
>> @@ -0,0 +1,65 @@
>> +From dfb42a5bff78d9239a80731e337855234badef3e Mon Sep 17 00:00:00 2001
>> +From: Laszlo Ersek <lersek@redhat.com>
>> +Date: Fri, 2 Mar 2018 17:11:52 +0100
>> +Subject: [PATCH 4/4] BaseTools/GenVtf: silence false "stringop-overflow"
>> + warning with memcpy()
>> +
>> +gcc-8 (which is part of Fedora 28) enables the new warning
>> +"-Wstringop-overflow" in "-Wall". This warning is documented in detail at
>> +<https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html>; the
>> +introduction says
>> +
>> +> Warn for calls to string manipulation functions such as memcpy and
>> +> strcpy that are determined to overflow the destination buffer.
>> +
>> +It breaks the BaseTools build with:
>> +
>> +> GenVtf.c: In function 'ConvertVersionInfo':
>> +> GenVtf.c:132:7: error: 'strncpy' specified bound depends on the length
>> +> of the source argument [-Werror=stringop-overflow=]
>> +>        strncpy (TemStr + 4 - Length, Str, Length);
>> +>        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> +> GenVtf.c:130:14: note: length computed here
>> +>      Length = strlen(Str);
>> +>               ^~~~~~~~~~~
>> +
>> +It is a false positive because, while the bound equals the length of the
>> +source argument, the destination pointer is moved back towards the
>> +beginning of the destination buffer by the same amount (and this amount is
>> +range-checked first, so we can't precede the start of the dest buffer).
>> +
>> +Replace both strncpy() calls with memcpy().
>> +
>> +Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>> +Cc: Cole Robinson <crobinso@redhat.com>
>> +Cc: Liming Gao <liming.gao@intel.com>
>> +Cc: Paolo Bonzini <pbonzini@redhat.com>
>> +Cc: Yonghong Zhu <yonghong.zhu@intel.com>
>> +Reported-by: Cole Robinson <crobinso@redhat.com>
>> +Contributed-under: TianoCore Contribution Agreement 1.1
>> +Signed-off-by: Laszlo Ersek <lersek@redhat.com>
>> +Reviewed-by: Liming Gao <liming.gao@intel.com>
>> +---
>> +Upstream-Status: Backport
>> + BaseTools/Source/C/GenVtf/GenVtf.c | 4 ++--
>> + 1 file changed, 2 insertions(+), 2 deletions(-)
>> +
>> +diff --git a/BaseTools/Source/C/GenVtf/GenVtf.c b/BaseTools/Source/C/GenVtf/GenVtf.c
>> +index 2ae9a7be2c..0cd33e71e9 100644
>> +--- a/BaseTools/Source/C/GenVtf/GenVtf.c
>> ++++ b/BaseTools/Source/C/GenVtf/GenVtf.c
>> +@@ -129,9 +129,9 @@ Returns:
>> +   } else {
>> +     Length = strlen(Str);
>> +     if (Length < 4) {
>> +-      strncpy (TemStr + 4 - Length, Str, Length);
>> ++      memcpy (TemStr + 4 - Length, Str, Length);
>> +     } else {
>> +-      strncpy (TemStr, Str + Length - 4, 4);
>> ++      memcpy (TemStr, Str + Length - 4, 4);
>> +     }
>> +
>> +     sscanf (
>> +--
>> +2.17.0
>> +
>> diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/ovmf_git.bb
>> index 8750b3c528..212530acbf 100644
>> --- a/meta/recipes-core/ovmf/ovmf_git.bb
>> +++ b/meta/recipes-core/ovmf/ovmf_git.bb
>> @@ -19,6 +19,10 @@ SRC_URI = "git://github.com/tianocore/edk2.git;branch=master \
>>         file://0004-ovmf-enable-long-path-file.patch \
>>         file://VfrCompile-increase-path-length-limit.patch \
>>         file://no-stack-protector-all-archs.patch \
>> +       file://0001-BaseTools-header.makefile-add-Wno-stringop-truncatio.patch \
>> +       file://0002-BaseTools-header.makefile-add-Wno-restrict.patch \
>> +       file://0003-BaseTools-header.makefile-revert-gcc-8-Wno-xxx-optio.patch \
>> +       file://0004-BaseTools-GenVtf-silence-false-stringop-overflow-war.patch \
>>          "
>>  UPSTREAM_VERSION_UNKNOWN = "1"
>>
>> --
>> 2.17.0
>>
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

* Re: [PATCH 3/4] ovmf: Fix build with gcc8
  2018-05-17 10:17   ` Burton, Ross
  2018-05-17 10:47     ` Martin Jansa
  2018-05-17 15:30     ` Dan McGregor
@ 2018-05-18  5:52     ` Khem Raj
  2 siblings, 0 replies; 13+ messages in thread
From: Khem Raj @ 2018-05-18  5:52 UTC (permalink / raw)
  To: Burton, Ross; +Cc: OE-core



On 5/17/18 3:17 AM, Burton, Ross wrote:
> Even when I pick from the branch instead of the mail, I suspect the
> line endings are messed up and this won't apply.  Can you
> double-check?
> 
> (I *hate* the ovmf recipe for this reason and am very tempted to just
> run dos2unix over the tree after unpack!)

I have updated the patches which hopefully should make quilt happier

http://git.openembedded.org/openembedded-core-contrib/commit/?h=kraj/master&id=be616a0b6c3decc06f2acbf27f47ebb58d32aa90

Thanks
-Khem


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

end of thread, other threads:[~2018-05-18  5:52 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-16  6:31 [PATCH 0/4] gdb upgrade and misc fixes to enable gcc8 Khem Raj
2018-05-16  6:32 ` [PATCH 1/4] gdb: Upgrade to 8.1 release Khem Raj
2018-05-16  6:32 ` [PATCH 2/4] python2: Fix build with gcc8 Khem Raj
2018-05-16  6:32 ` [PATCH 3/4] ovmf: " Khem Raj
2018-05-17 10:17   ` Burton, Ross
2018-05-17 10:47     ` Martin Jansa
2018-05-17 15:30     ` Dan McGregor
2018-05-18  5:52     ` Khem Raj
2018-05-16  6:32 ` [PATCH 4/4] musl: Make dev package rdep on staticdev Khem Raj
2018-05-16 11:09   ` Burton, Ross
2018-05-16 13:32     ` Khem Raj
2018-05-16 14:38       ` Burton, Ross
2018-05-16 15:04         ` Khem Raj

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.