gnu-efi, syslinux: Support gcc < 4.7

This helps compiling the code with older gcc especially on older build
hosts, additionally clang advertizes itself as gcc 4.2.1 so it helps
compiling dependent modues using clang as well

(From OE-Core rev: 90e7cfebc6a9ac4b229b45c6a7dc95218efe55c5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Khem Raj 2015-09-09 08:26:06 +00:00 committed by Richard Purdie
parent cdfd96eb92
commit 05b9a0c628
4 changed files with 60 additions and 0 deletions

View File

@ -0,0 +1,21 @@
don't break with old compilers and -DGNU_EFI_USE_MS_ABI
It's entirely legitimate to request GNU_EFI_USE_MS_ABI even if the current
compiler doesn't support it, and gnu-efi should transparently fall back to
using legacy techniques to set the calling convention. We don't get type
checking, but at least it will still compile.
Author: Steve Langasek <steve.langasek@ubuntu.com>
Upstream-Status: Pending
Index: gnu-efi-3.0.3/inc/x86_64/efibind.h
===================================================================
--- gnu-efi-3.0.3.orig/inc/x86_64/efibind.h
+++ gnu-efi-3.0.3/inc/x86_64/efibind.h
@@ -25,8 +25,6 @@ Revision History
#if defined(GNU_EFI_USE_MS_ABI)
#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))
#define HAVE_USE_MS_ABI 1
- #else
- #error Compiler is too old for GNU_EFI_USE_MS_ABI
#endif
#endif

View File

@ -18,6 +18,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2 \
file://parallel-make-archives.patch \
file://lib-Makefile-fix-parallel-issue.patch \
file://gnu-efi-Make-setjmp.S-portable-to-ARM.patch \
file://gcc46-compatibility.patch \
"
SRC_URI[md5sum] = "15a4bcbc18a9a5e8110ed955970622e6"

View File

@ -0,0 +1,37 @@
don't break with old compilers and -DGNU_EFI_USE_MS_ABI
It's entirely legitimate to request GNU_EFI_USE_MS_ABI even if the current
compiler doesn't support it, and gnu-efi should transparently fall back to
using legacy techniques to set the calling convention. We don't get type
checking, but at least it will still compile.
Adapted from gnu-efi
Author: Steve Langasek <steve.langasek@ubuntu.com>
Upstream-Status: Pending
Index: syslinux-6.03/efi64/include/efi/x86_64/efibind.h
===================================================================
--- syslinux-6.03.orig/efi64/include/efi/x86_64/efibind.h
+++ syslinux-6.03/efi64/include/efi/x86_64/efibind.h
@@ -25,8 +25,6 @@ Revision History
#if defined(GNU_EFI_USE_MS_ABI)
#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))
#define HAVE_USE_MS_ABI 1
- #else
- #error Compiler is too old for GNU_EFI_USE_MS_ABI
#endif
#endif
Index: syslinux-6.03/gnu-efi/gnu-efi-3.0/inc/x86_64/efibind.h
===================================================================
--- syslinux-6.03.orig/gnu-efi/gnu-efi-3.0/inc/x86_64/efibind.h
+++ syslinux-6.03/gnu-efi/gnu-efi-3.0/inc/x86_64/efibind.h
@@ -25,8 +25,6 @@ Revision History
#if defined(GNU_EFI_USE_MS_ABI)
#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))
#define HAVE_USE_MS_ABI 1
- #else
- #error Compiler is too old for GNU_EFI_USE_MS_ABI
#endif
#endif

View File

@ -21,6 +21,7 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/boot/syslinux/syslinux-${PV}.tar.xz \
file://0007-linux-syslinux-implement-ext_construct_sectmap_fs.patch \
file://0008-libinstaller-syslinuxext-implement-syslinux_patch_bo.patch \
file://0009-linux-syslinux-implement-install_bootblock.patch \
file://0010-gcc46-compatibility.patch \
"
SRC_URI[md5sum] = "92a253df9211e9c20172796ecf388f13"