gnu-efi: new package
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Christophe Vu-Brugier <cvubrugier@yahoo.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
c24fdb3680
commit
a241b4b071
@ -584,6 +584,7 @@ endmenu
|
|||||||
menu "Hardware handling"
|
menu "Hardware handling"
|
||||||
source "package/ccid/Config.in"
|
source "package/ccid/Config.in"
|
||||||
source "package/dtc/Config.in"
|
source "package/dtc/Config.in"
|
||||||
|
source "package/gnu-efi/Config.in"
|
||||||
source "package/lcdapi/Config.in"
|
source "package/lcdapi/Config.in"
|
||||||
source "package/libaio/Config.in"
|
source "package/libaio/Config.in"
|
||||||
source "package/libatasmart/Config.in"
|
source "package/libatasmart/Config.in"
|
||||||
|
9
package/gnu-efi/Config.in
Normal file
9
package/gnu-efi/Config.in
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
config BR2_PACKAGE_GNU_EFI
|
||||||
|
bool "gnu-efi"
|
||||||
|
depends on BR2_i386 || BR2_x86_64
|
||||||
|
help
|
||||||
|
Develop EFI applications for IA-64 (IPF), IA-32 (x86), and
|
||||||
|
x86_64 platforms using the GNU toolchain and the EFI
|
||||||
|
development environment.
|
||||||
|
|
||||||
|
http://gnu-efi.sourceforge.net/
|
53
package/gnu-efi/gnu-efi-01-use-override-cflags.patch
Normal file
53
package/gnu-efi/gnu-efi-01-use-override-cflags.patch
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
Allow CFLAGS/CPPFLAGS to be completed from the environment
|
||||||
|
|
||||||
|
Buildroot passes its own CPPFLAGS and CFLAGS in the environment, so
|
||||||
|
the CFLAGS += and CPPFLAGS += statements in gnu-efi Makefile have no
|
||||||
|
effect. Change these to override <VARIABLE> += so that they extend the
|
||||||
|
flags passed by Buildroot.
|
||||||
|
|
||||||
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||||
|
|
||||||
|
Index: b/Make.defaults
|
||||||
|
===================================================================
|
||||||
|
--- a/Make.defaults
|
||||||
|
+++ b/Make.defaults
|
||||||
|
@@ -83,25 +83,25 @@
|
||||||
|
&& [ $(GCCMINOR) -ge "7" ] ) ) \
|
||||||
|
&& echo 1)
|
||||||
|
ifeq ($(GCCNEWENOUGH),1)
|
||||||
|
- CPPFLAGS += -DGNU_EFI_USE_MS_ABI -maccumulate-outgoing-args --std=c11
|
||||||
|
+ override CPPFLAGS += -DGNU_EFI_USE_MS_ABI -maccumulate-outgoing-args --std=c11
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Arch-specific compilation flags
|
||||||
|
-CPPFLAGS += -DCONFIG_$(ARCH)
|
||||||
|
+override CPPFLAGS += -DCONFIG_$(ARCH)
|
||||||
|
|
||||||
|
ifeq ($(ARCH),ia64)
|
||||||
|
- CFLAGS += -mfixed-range=f32-f127
|
||||||
|
+ override CFLAGS += -mfixed-range=f32-f127
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(ARCH),ia32)
|
||||||
|
- CFLAGS += -mno-mmx -mno-sse
|
||||||
|
+ override CFLAGS += -mno-mmx -mno-sse
|
||||||
|
ifeq ($(HOSTARCH),x86_64)
|
||||||
|
ARCH3264 = -m32
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(ARCH),x86_64)
|
||||||
|
- CFLAGS += -mno-red-zone -mno-mmx -mno-sse
|
||||||
|
+ override CFLAGS += -mno-red-zone -mno-mmx -mno-sse
|
||||||
|
ifeq ($(HOSTARCH),ia32)
|
||||||
|
ARCH3264 = -m64
|
||||||
|
endif
|
||||||
|
@@ -110,7 +110,7 @@
|
||||||
|
# Generic compilation flags
|
||||||
|
INCDIR += -I$(SRCDIR) -I$(TOPDIR)/inc -I$(TOPDIR)/inc/$(ARCH) \
|
||||||
|
-I$(TOPDIR)/inc/protocol
|
||||||
|
-CFLAGS += $(ARCH3264) -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing \
|
||||||
|
+override CFLAGS += $(ARCH3264) -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing \
|
||||||
|
-fno-merge-constants -ffreestanding -fno-stack-protector \
|
||||||
|
-fno-stack-check
|
||||||
|
ASFLAGS += $(ARCH3264)
|
48
package/gnu-efi/gnu-efi-02-parallel-make-archives.patch
Normal file
48
package/gnu-efi/gnu-efi-02-parallel-make-archives.patch
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
Fix parallel make failure for archives
|
||||||
|
|
||||||
|
Upstream-Status: Pending
|
||||||
|
|
||||||
|
The lib and gnuefi makefiles were using the lib.a() form which compiles
|
||||||
|
and ar's as a pair instead of compiling all and then ar'ing which can
|
||||||
|
parallelize better. This was resulting in build failures on larger values
|
||||||
|
of -j.
|
||||||
|
|
||||||
|
See http://www.chemie.fu-berlin.de/chemnet/use/info/make/make_toc.html#TOC105
|
||||||
|
for details.
|
||||||
|
|
||||||
|
Signed-off-by: Saul Wold <sgw@linux.intel.com>
|
||||||
|
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
|
||||||
|
---
|
||||||
|
---
|
||||||
|
gnuefi/Makefile | 3 ++-
|
||||||
|
lib/Makefile | 3 ++-
|
||||||
|
2 files changed, 4 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
Index: gnu-efi-3.0/lib/Makefile
|
||||||
|
===================================================================
|
||||||
|
--- gnu-efi-3.0.orig/lib/Makefile
|
||||||
|
+++ gnu-efi-3.0/lib/Makefile
|
||||||
|
@@ -66,7 +66,8 @@ all: libsubdirs libefi.a
|
||||||
|
libsubdirs:
|
||||||
|
for sdir in $(SUBDIRS); do mkdir -p $$sdir; done
|
||||||
|
|
||||||
|
-libefi.a: $(patsubst %,libefi.a(%),$(OBJS))
|
||||||
|
+libefi.a: $(OBJS)
|
||||||
|
+ $(AR) rv $@ $(OBJS)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f libefi.a *~ $(OBJS) */*.o
|
||||||
|
Index: gnu-efi-3.0/gnuefi/Makefile
|
||||||
|
===================================================================
|
||||||
|
--- gnu-efi-3.0.orig/gnuefi/Makefile
|
||||||
|
+++ gnu-efi-3.0/gnuefi/Makefile
|
||||||
|
@@ -51,7 +51,8 @@ TARGETS = crt0-efi-$(ARCH).o libgnuefi.a
|
||||||
|
|
||||||
|
all: $(TARGETS)
|
||||||
|
|
||||||
|
-libgnuefi.a: $(patsubst %,libgnuefi.a(%),$(OBJS))
|
||||||
|
+libgnuefi.a: $(OBJS)
|
||||||
|
+ $(AR) rv $@ $(OBJS)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(TARGETS) *~ *.o $(OBJS)
|
22
package/gnu-efi/gnu-efi-03-parallel-make.patch
Normal file
22
package/gnu-efi/gnu-efi-03-parallel-make.patch
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
Fix parallel make failure
|
||||||
|
|
||||||
|
Upstream-Status: Submitted [Maintainer directly]
|
||||||
|
|
||||||
|
Add a missing dependency which resulted in a race leading to failure
|
||||||
|
on larger values of -j.
|
||||||
|
|
||||||
|
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
|
||||||
|
|
||||||
|
Index: gnu-efi-3.0/Makefile
|
||||||
|
===================================================================
|
||||||
|
--- gnu-efi-3.0.orig/Makefile
|
||||||
|
+++ gnu-efi-3.0/Makefile
|
||||||
|
@@ -42,6 +42,8 @@ include $(SRCDIR)/Make.defaults
|
||||||
|
|
||||||
|
SUBDIRS = lib gnuefi inc apps
|
||||||
|
|
||||||
|
+gnuefi: lib
|
||||||
|
+
|
||||||
|
all: check_gcc $(SUBDIRS)
|
||||||
|
|
||||||
|
$(SUBDIRS):
|
38
package/gnu-efi/gnu-efi.mk
Normal file
38
package/gnu-efi/gnu-efi.mk
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# gnu-efi
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
GNU_EFI_VERSION = 3.0u
|
||||||
|
GNU_EFI_SOURCE = gnu-efi_$(GNU_EFI_VERSION).orig.tar.gz
|
||||||
|
GNU_EFI_SITE = http://downloads.sourceforge.net/project/gnu-efi/
|
||||||
|
GNU_EFI_INSTALL_STAGING = YES
|
||||||
|
GNU_EFI_LICENSE = GPLv2+ (gnuefi), BSD (efilib)
|
||||||
|
GNU_EFI_LICENSE_FILES = debian/copyright
|
||||||
|
|
||||||
|
# gnu-efi is a set of library and header files used to build
|
||||||
|
# standalone EFI applications such as bootloaders. There is no point
|
||||||
|
# in installing these libraries to the target.
|
||||||
|
GNU_EFI_INSTALL_TARGET = NO
|
||||||
|
|
||||||
|
ifeq ($(BR2_i386),y)
|
||||||
|
GNU_EFI_PLATFORM=ia32
|
||||||
|
else ifeq ($(BR2_x86_64),y)
|
||||||
|
GNU_EFI_PLATFORM=x86_64
|
||||||
|
endif
|
||||||
|
|
||||||
|
define GNU_EFI_BUILD_CMDS
|
||||||
|
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
|
||||||
|
$(TARGET_CONFIGURE_OPTS) \
|
||||||
|
ARCH=$(GNU_EFI_PLATFORM)
|
||||||
|
endef
|
||||||
|
|
||||||
|
define GNU_EFI_INSTALL_STAGING_CMDS
|
||||||
|
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
|
||||||
|
$(TARGET_CONFIGURE_OPTS) \
|
||||||
|
INSTALLROOT=$(STAGING_DIR) \
|
||||||
|
PREFIX=/usr ARCH=$(GNU_EFI_PLATFORM) install
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(generic-package))
|
Loading…
Reference in New Issue
Block a user