<div dir="ltr"><div>This seems to be in master now. I&#39;m not sure if we have a new master build after that but ross/mut has some sort of linker failure in ofmv (in nightly-world-lsb only):</div><div><br>| GenFw: ERROR 3000: Invalid<br>|   /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-world-lsb/build/build/tmp/work/i586-poky-linux/ovmf/git-r0/git/Build/OvmfIa32/RELEASE_GCC5/IA32/OvmfPkg/AcpiTables/AcpiTables/OUTPUT/./Madt.dll: Bad definition for symbol &#39;&lt;unknown&gt;&#39;@0 or unsupported symbol type.  For example, absolute and undefined symbols are not supported.<br><br></div><div><a href="https://autobuilder.yocto.io/builders/nightly-world-lsb/builds/304/steps/BuildImages/logs/stdio">https://autobuilder.yocto.io/builders/nightly-world-lsb/builds/304/steps/BuildImages/logs/stdio</a><br><br>Looks like a check for symbol table alignment is failing? The LSB distro configuration requires security_flags.inc so that may be related.  <br><br>Jussi<br><br>On 12 June 2017 at 17:59, Khem Raj &lt;<a href="mailto:raj.khem@gmail.com">raj.khem@gmail.com</a>&gt; wrote:<br></div>&gt;<br>&gt; Fix build with gcc7<br>&gt;<br>&gt; clang can not compile it therefore mark it gcc only recipe<br>&gt;<br>&gt; Signed-off-by: Khem Raj &lt;<a href="mailto:raj.khem@gmail.com">raj.khem@gmail.com</a>&gt;<br>&gt; ---<br>&gt;  ...g-UefiHiiLib-Fix-incorrect-comparison-exp.patch | 45 ----------------------<br>&gt;  .../ovmf/ovmf/0001-ia32-Dont-use-pie.patch         | 37 ++++++++++++++++++<br>&gt;  ...makefile-adjust-to-build-in-under-bitbake.patch | 25 ++++++------<br>&gt;  .../ovmf/ovmf/no-stack-protector-all-archs.patch   | 19 +++++++++<br>&gt;  meta/recipes-core/ovmf/<a href="http://ovmf_git.bb">ovmf_git.bb</a>                 |  6 ++-<br>&gt;  5 files changed, 72 insertions(+), 60 deletions(-)<br>&gt;  delete mode 100644 meta/recipes-core/ovmf/ovmf/0001-MdeModulePkg-UefiHiiLib-Fix-incorrect-comparison-exp.patch<br>&gt;  create mode 100644 meta/recipes-core/ovmf/ovmf/0001-ia32-Dont-use-pie.patch<br>&gt;  create mode 100644 meta/recipes-core/ovmf/ovmf/no-stack-protector-all-archs.patch<br>&gt;<br>&gt; diff --git a/meta/recipes-core/ovmf/ovmf/0001-MdeModulePkg-UefiHiiLib-Fix-incorrect-comparison-exp.patch b/meta/recipes-core/ovmf/ovmf/0001-MdeModulePkg-UefiHiiLib-Fix-incorrect-comparison-exp.patch<br>&gt; deleted file mode 100644<br>&gt; index 0529a27b16..0000000000<br>&gt; --- a/meta/recipes-core/ovmf/ovmf/0001-MdeModulePkg-UefiHiiLib-Fix-incorrect-comparison-exp.patch<br>&gt; +++ /dev/null<br>&gt; @@ -1,45 +0,0 @@<br>&gt; -From 73692710d50da1f421b0e6ddff784ca3135389b3 Mon Sep 17 00:00:00 2001<br>&gt; -From: Dandan Bi &lt;<a href="mailto:dandan.bi@intel.com">dandan.bi@intel.com</a>&gt;<br>&gt; -Date: Sat, 1 Apr 2017 10:31:14 +0800<br>&gt; -Subject: [PATCH] MdeModulePkg/UefiHiiLib:Fix incorrect comparison expression<br>&gt; -<br>&gt; -Fix the incorrect comparison between pointer and constant zero character.<br>&gt; -<br>&gt; -<a href="https://bugzilla.tianocore.org/show_bug.cgi?id=416">https://bugzilla.tianocore.org/show_bug.cgi?id=416</a><br>&gt; -<br>&gt; -V2: The pointer StringPtr points to a string returned<br>&gt; -by ExtractConfig/ExportConfig, if it is NULL, function<br>&gt; -InternalHiiIfrValueAction will return FALSE. So in<br>&gt; -current usage model, the StringPtr can not be NULL before<br>&gt; -using it, so we can add ASSERT here.<br>&gt; -<br>&gt; -Cc: Eric Dong &lt;<a href="mailto:eric.dong@intel.com">eric.dong@intel.com</a>&gt;<br>&gt; -Cc: Liming Gao &lt;<a href="mailto:liming.gao@intel.com">liming.gao@intel.com</a>&gt;<br>&gt; -Contributed-under: TianoCore Contribution Agreement 1.0<br>&gt; -Signed-off-by: Dandan Bi &lt;<a href="mailto:dandan.bi@intel.com">dandan.bi@intel.com</a>&gt;<br>&gt; -Reviewed-by: Eric Dong &lt;<a href="mailto:eric.dong@intel.com">eric.dong@intel.com</a>&gt;<br>&gt; ----<br>&gt; -Upstream-Status: Backport<br>&gt; -<br>&gt; - MdeModulePkg/Library/UefiHiiLib/HiiLib.c | 5 +++--<br>&gt; - 1 file changed, 3 insertions(+), 2 deletions(-)<br>&gt; -<br>&gt; -diff --git a/MdeModulePkg/Library/UefiHiiLib/HiiLib.c b/MdeModulePkg/Library/UefiHiiLib/HiiLib.c<br>&gt; -index 8579501..46ca7bc 100644<br>&gt; ---- a/MdeModulePkg/Library/UefiHiiLib/HiiLib.c<br>&gt; -+++ b/MdeModulePkg/Library/UefiHiiLib/HiiLib.c<br>&gt; -@@ -2180,8 +2180,9 @@ InternalHiiIfrValueAction (<br>&gt; -   }<br>&gt; -<br>&gt; -   StringPtr = ConfigAltResp;<br>&gt; --<br>&gt; --  while (StringPtr != L&#39;\0&#39;) {<br>&gt; -+  ASSERT (StringPtr != NULL);<br>&gt; -+<br>&gt; -+  while (*StringPtr != L&#39;\0&#39;) {<br>&gt; -     //<br>&gt; -     // 1. Find &lt;ConfigHdr&gt; GUID=...&amp;NAME=...&amp;PATH=...<br>&gt; -     //<br>&gt; ---<br>&gt; -1.9.1<br>&gt; -<br>&gt; diff --git a/meta/recipes-core/ovmf/ovmf/0001-ia32-Dont-use-pie.patch b/meta/recipes-core/ovmf/ovmf/0001-ia32-Dont-use-pie.patch<br>&gt; new file mode 100644<br>&gt; index 0000000000..7ce20be54c<br>&gt; --- /dev/null<br>&gt; +++ b/meta/recipes-core/ovmf/ovmf/0001-ia32-Dont-use-pie.patch<br>&gt; @@ -0,0 +1,37 @@<br>&gt; +From f65e9cc025278387b494c2383c5d9ff3bed98687 Mon Sep 17 00:00:00 2001<br>&gt; +From: Khem Raj &lt;<a href="mailto:raj.khem@gmail.com">raj.khem@gmail.com</a>&gt;<br>&gt; +Date: Sun, 11 Jun 2017 00:47:24 -0700<br>&gt; +Subject: [PATCH] ia32: Dont use -pie<br>&gt; +<br>&gt; +Upstream-Status: Pending<br>&gt; +<br>&gt; +Signed-off-by: Khem Raj &lt;<a href="mailto:raj.khem@gmail.com">raj.khem@gmail.com</a>&gt;<br>&gt; +---<br>&gt; + BaseTools/Conf/tools_def.template | 4 ++--<br>&gt; + 1 file changed, 2 insertions(+), 2 deletions(-)<br>&gt; +<br>&gt; +diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template<br>&gt; +index 04a1bcb210..84c5f84f93 100755<br>&gt; +--- a/BaseTools/Conf/tools_def.template<br>&gt; ++++ b/BaseTools/Conf/tools_def.template<br>&gt; +@@ -4336,7 +4336,7 @@ RELEASE_*_*_OBJCOPY_ADDDEBUGFLAG   =<br>&gt; + NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG     = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug<br>&gt; +<br>&gt; + DEFINE GCC_ALL_CC_FLAGS            = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common<br>&gt; +-DEFINE GCC_IA32_CC_FLAGS           = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe<br>&gt; ++DEFINE GCC_IA32_CC_FLAGS           = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe -fno-PIE -no-pie<br>&gt; + DEFINE GCC_X64_CC_FLAGS            = DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe<br>&gt; + DEFINE GCC_IPF_CC_FLAGS            = DEF(GCC_ALL_CC_FLAGS) -minline-int-divide-min-latency<br>&gt; + DEFINE GCC_ARM_CC_FLAGS            = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -mabi=aapcs -fno-short-enums -funsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -mfloat-abi=soft -fno-pic -fno-pie<br>&gt; +@@ -4369,7 +4369,7 @@ DEFINE GCC_ARM_RC_FLAGS            = -I binary -O elf32-littlearm     -B arm<br>&gt; + DEFINE GCC_AARCH64_RC_FLAGS        = -I binary -O elf64-littleaarch64 -B aarch64 --rename-section .data=.hii<br>&gt; +<br>&gt; + DEFINE GCC44_ALL_CC_FLAGS            = -g -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -include AutoGen.h -fno-common -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings<br>&gt; +-DEFINE GCC44_IA32_CC_FLAGS           = DEF(GCC44_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables<br>&gt; ++DEFINE GCC44_IA32_CC_FLAGS           = DEF(GCC44_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables -fno-PIE -no-pie<br>&gt; + DEFINE GCC44_X64_CC_FLAGS            = DEF(GCC44_ALL_CC_FLAGS) -m64 -fno-stack-protector &quot;-DEFIAPI=__attribute__((ms_abi))&quot; -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables<br>&gt; + DEFINE GCC44_IA32_X64_DLINK_COMMON   = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x20<br>&gt; + DEFINE GCC44_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable<br>&gt; +--<br>&gt; +2.13.1<br>&gt; +<br>&gt; diff --git a/meta/recipes-core/ovmf/ovmf/0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch b/meta/recipes-core/ovmf/ovmf/0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch<br>&gt; index 0fdc278ce2..1f8332ef56 100644<br>&gt; --- a/meta/recipes-core/ovmf/ovmf/0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch<br>&gt; +++ b/meta/recipes-core/ovmf/ovmf/0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch<br>&gt; @@ -11,29 +11,28 @@ Signed-off-by: Ricardo Neri &lt;<a href="mailto:ricardo.neri@linux.intel.com">ricardo.neri@linux.intel.com</a>&gt;<br>&gt;   BaseTools/Source/C/Makefiles/header.makefile | 8 ++++----<br>&gt;   1 file changed, 4 insertions(+), 4 deletions(-)<br>&gt;<br>&gt; -diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile<br>&gt; -index 821d114..fe0f08b 100644<br>&gt; ---- a/BaseTools/Source/C/Makefiles/header.makefile<br>&gt; -+++ b/BaseTools/Source/C/Makefiles/header.makefile<br>&gt; -@@ -44,14 +44,14 @@ ARCH_INCLUDE = -I $(MAKEROOT)/Include/AArch64/<br>&gt; +Index: git/BaseTools/Source/C/Makefiles/header.makefile<br>&gt; +===================================================================<br>&gt; +--- git.orig/BaseTools/Source/C/Makefiles/header.makefile<br>&gt; ++++ git/BaseTools/Source/C/Makefiles/header.makefile<br>&gt; +@@ -44,15 +44,15 @@ ARCH_INCLUDE = -I $(MAKEROOT)/Include/AA<br>&gt;   endif<br>&gt;<br>&gt;   INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKEROOT)/Include/ -I $(MAKEROOT)/Include/IndustryStandard -I $(MAKEROOT)/Common/ -I .. -I . $(ARCH_INCLUDE)<br>&gt;  -BUILD_CPPFLAGS = $(INCLUDE) -O2<br>&gt; -+BUILD_CPPFLAGS := $(BUILD_CPPFLAGS) $(INCLUDE) -O2<br>&gt; ++BUILD_CPPFLAGS += $(INCLUDE) -O2<br>&gt;   ifeq ($(DARWIN),Darwin)<br>&gt;   # assume clang or clang compatible flags on OS X<br>&gt;  -BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -c -g<br>&gt; -+BUILD_CFLAGS := $(BUILD_CFLAGS) -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -c -g<br>&gt; ++BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib -c -g<br>&gt;   else<br>&gt;  -BUILD_CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-unused-result -nostdlib -c -g<br>&gt; -+BUILD_CFLAGS := $(BUILD_CFLAGS) -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-unused-result -nostdlib -c -g<br>&gt; ++BUILD_CFLAGS += -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-deprecated-declarations -Wno-unused-result -nostdlib -c -g<br>&gt;   endif<br>&gt;  -BUILD_LFLAGS =<br>&gt; -+BUILD_LFLAGS := $(LDFLAGS)<br>&gt; - BUILD_CXXFLAGS =<br>&gt; +-BUILD_CXXFLAGS = -Wno-unused-result<br>&gt; ++BUILD_LFLAGS = $(LDFLAGS)<br>&gt; ++BUILD_CXXFLAGS += -Wno-unused-result<br>&gt;<br>&gt;   ifeq ($(ARCH), IA32)<br>&gt; ---<br>&gt; -2.9.3<br>&gt; -<br>&gt; + #<br>&gt; diff --git a/meta/recipes-core/ovmf/ovmf/no-stack-protector-all-archs.patch b/meta/recipes-core/ovmf/ovmf/no-stack-protector-all-archs.patch<br>&gt; new file mode 100644<br>&gt; index 0000000000..25a09c5ce3<br>&gt; --- /dev/null<br>&gt; +++ b/meta/recipes-core/ovmf/ovmf/no-stack-protector-all-archs.patch<br>&gt; @@ -0,0 +1,19 @@<br>&gt; +Author: Steve Langasek &lt;<a href="mailto:steve.langasek@ubuntu.com">steve.langasek@ubuntu.com</a>&gt;<br>&gt; +Description: pass -fno-stack-protector to all GCC toolchains<br>&gt; + The upstream build rules inexplicably pass -fno-stack-protector only<br>&gt; + when building for i386 and amd64.  Add this essential argument to the<br>&gt; + generic rules for gcc 4.4 and later.<br>&gt; +Last-Updated: 2016-04-12<br>&gt; +Index: git/BaseTools/Conf/tools_def.template<br>&gt; +===================================================================<br>&gt; +--- git.orig/BaseTools/Conf/tools_def.template<br>&gt; ++++ git/BaseTools/Conf/tools_def.template<br>&gt; +@@ -4368,7 +4368,7 @@ DEFINE GCC_IPF_RC_FLAGS            = -I<br>&gt; + DEFINE GCC_ARM_RC_FLAGS            = -I binary -O elf32-littlearm     -B arm     --rename-section .data=.hii<br>&gt; + DEFINE GCC_AARCH64_RC_FLAGS        = -I binary -O elf64-littleaarch64 -B aarch64 --rename-section .data=.hii<br>&gt; +<br>&gt; +-DEFINE GCC44_ALL_CC_FLAGS            = -g -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -include AutoGen.h -fno-common -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings<br>&gt; ++DEFINE GCC44_ALL_CC_FLAGS            = -g -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -fno-stack-protector -include AutoGen.h -fno-common -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings<br>&gt; + DEFINE GCC44_IA32_CC_FLAGS           = DEF(GCC44_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables -fno-PIE -no-pie<br>&gt; + DEFINE GCC44_X64_CC_FLAGS            = DEF(GCC44_ALL_CC_FLAGS) -m64 -fno-stack-protector &quot;-DEFIAPI=__attribute__((ms_abi))&quot; -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables<br>&gt; + DEFINE GCC44_IA32_X64_DLINK_COMMON   = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x20<br>&gt; diff --git a/meta/recipes-core/ovmf/<a href="http://ovmf_git.bb">ovmf_git.bb</a> b/meta/recipes-core/ovmf/<a href="http://ovmf_git.bb">ovmf_git.bb</a><br>&gt; index 9d988e9d41..5d7216e80e 100644<br>&gt; --- a/meta/recipes-core/ovmf/<a href="http://ovmf_git.bb">ovmf_git.bb</a><br>&gt; +++ b/meta/recipes-core/ovmf/<a href="http://ovmf_git.bb">ovmf_git.bb</a><br>&gt; @@ -14,7 +14,8 @@ SRC_URI = &quot;git://<a href="http://github.com/tianocore/edk2.git;branch=master">github.com/tianocore/edk2.git;branch=master</a> \<br>&gt;         file://0002-ovmf-update-path-to-native-BaseTools.patch \<br>&gt;         file://0003-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch \<br>&gt;         file://VfrCompile-increase-path-length-limit.patch \<br>&gt; -        file://0001-MdeModulePkg-UefiHiiLib-Fix-incorrect-comparison-exp.patch \<br>&gt; +       file://0001-ia32-Dont-use-pie.patch \<br>&gt; +       file://no-stack-protector-all-archs.patch \<br>&gt;          &quot;<br>&gt;<br>&gt;  SRC_URI_append_class-target = &quot; \<br>&gt; @@ -22,7 +23,7 @@ SRC_URI_append_class-target = &quot; \<br>&gt;         file://0007-OvmfPkg-EnrollDefaultKeys-application-for-enrolling-.patch \<br>&gt;  &quot;<br>&gt;<br>&gt; -SRCREV=&quot;4575a602ca6072ee9d04150b38bfb143cbff8588&quot;<br>&gt; +SRCREV=&quot;ec4910cd3336565fdb61dafdd9ec4ae7a6160ba3&quot;<br>&gt;  SRC_URI[openssl.md5sum] = &quot;96322138f0b69e61b7212bc53d5e912b&quot;<br>&gt;  SRC_URI[openssl.sha256sum] = &quot;e7aff292be21c259c6af26469c7a9b3ba26e9abaaffd325e3dccc9785256c431&quot;<br>&gt;<br>&gt; @@ -241,3 +242,4 @@ do_deploy_class-target() {<br>&gt;  addtask do_deploy after do_compile before do_build<br>&gt;<br>&gt;  BBCLASSEXTEND = &quot;native&quot;<br>&gt; +TOOLCHAIN = &quot;gcc&quot;<br>&gt; --<br>&gt; 2.13.1<br>&gt;<br>&gt; --<br>&gt; _______________________________________________<br>&gt; Openembedded-core mailing list<br>&gt; <a href="mailto:Openembedded-core@lists.openembedded.org">Openembedded-core@lists.openembedded.org</a><br>&gt; <a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core">http://lists.openembedded.org/mailman/listinfo/openembedded-core</a></div>