Skip to contentSkip to conversation

package/gnu-efi: bump version to 3.0.1

PATCH New Romain Naour 3 participants 12 messages Jan 19, 2015 – Jan 28, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/4 package/gnu-efi: bump version to 3.0.1

remove upstream patch gnu-efi-03-parallel-make.patch

---
 ...S-CPPFLAGS-to-be-completed-from-the-envir.patch | 80 ++++++++++++++++++++++
 ...02-Fix-parallel-make-failure-for-archives.patch | 57 +++++++++++++++
 .../gnu-efi/gnu-efi-01-use-override-cflags.patch   | 53 --------------
 .../gnu-efi-02-parallel-make-archives.patch        | 48 -------------
 package/gnu-efi/gnu-efi-03-parallel-make.patch     | 22 ------
 package/gnu-efi/gnu-efi.hash                       |  5 +-
 package/gnu-efi/gnu-efi.mk                         |  4 +-
 7 files changed, 142 insertions(+), 127 deletions(-)
 create mode 100644 package/gnu-efi/0001-Allow-CFLAGS-CPPFLAGS-to-be-completed-from-the-envir.patch
 create mode 100644 package/gnu-efi/0002-Fix-parallel-make-failure-for-archives.patch
 delete mode 100644 package/gnu-efi/gnu-efi-01-use-override-cflags.patch
 delete mode 100644 package/gnu-efi/gnu-efi-02-parallel-make-archives.patch
 delete mode 100644 package/gnu-efi/gnu-efi-03-parallel-make.patch
package/gnu-efi/0001-Allow-CFLAGS-CPPFLAGS-to-be-completed-from-the-envir.patch new file +80 -0
new file mode 100644
index 0000000..eee0a9a
@@ -0,0 +1,80 @@
+From eea0f62a1f6712f10afe47635b80a061505d2d2f Mon Sep 17 00:00:00 2001
+From: Romain Naour <[email protected]>
+Date: Sat, 17 Jan 2015 18:33:37 +0100
+Subject: [PATCH 1/2] 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.
+
+[Romain:
+ - rebase on top of 3.0.1 release]
+
+Signed-off-by: Thomas Petazzoni <[email protected]>
+Signed-off-by: Romain Naour <[email protected]>
+---
+ Make.defaults | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/Make.defaults b/Make.defaults
+index 169273d..b0ddea0 100644
+--- a/Make.defaults
++++ b/Make.defaults
+@@ -80,14 +80,14 @@ 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
+@@ -103,10 +103,10 @@ ifeq ($(ARCH),x86_64)
+                                  && [ $(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
+ 
+-  CFLAGS += -mno-red-zone -mno-mmx -mno-sse
++  override CFLAGS += -mno-red-zone -mno-mmx -mno-sse
+   ifeq ($(HOSTARCH),ia32)
+     ARCH3264 = -m64
+   endif
+@@ -127,7 +127,7 @@ export LIBGCC=$(shell $(CC) $(ARCH3264) -print-libgcc-file-name)
+ endif
+ 
+ ifeq ($(ARCH),arm)
+-CFLAGS += -marm
++override CFLAGS += -marm
+ endif
+ 
+ # Generic compilation flags
+@@ -135,10 +135,10 @@ INCDIR  += -I$(SRCDIR) -I$(TOPDIR)/inc -I$(TOPDIR)/inc/$(ARCH) \
+            -I$(TOPDIR)/inc/protocol
+ 
+ ifeq (FreeBSD, $(findstring FreeBSD, $(OS)))
+-CFLAGS  += $(ARCH3264) -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing \
++override CFLAGS  += $(ARCH3264) -O2 -fpic -Wall -fshort-wchar -fno-strict-aliasing \
+            -ffreestanding -fno-stack-protector
+ else
+-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
+ endif
+-- 
+1.9.3
+
package/gnu-efi/0002-Fix-parallel-make-failure-for-archives.patch new file +57 -0

57 lines not on this page · raw message

package/gnu-efi/gnu-efi-01-use-override-cflags.patch deleted +0 -53

53 lines not on this page · raw message

package/gnu-efi/gnu-efi-02-parallel-make-archives.patch deleted +0 -48

48 lines not on this page · raw message

package/gnu-efi/gnu-efi-03-parallel-make.patch deleted +0 -22
deleted file mode 100644
index 27c94e8..0000000
@@ -1,22 +0,0 @@
-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 <[email protected]>
-
-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):
package/gnu-efi/gnu-efi.hash +3 -2
index ec14922..21033bd 100644
@@ -1,2 +1,3 @@
-# Locally computed:
-sha256  3c0d450d5829204ca05dcb3b2aae772e52c379b7c7e09146759c6315606f934e  gnu-efi_3.0u.orig.tar.gz
+# From http://sourceforge.net/projects/gnu-efi/files
+md5 c4099c443b6b0c2b04dedc33e7814ec0 gnu-efi-3.0.1.tar.bz2
+sha1 07eea4d72f7ecb7229aaa77ddd411de5673c67b6 gnu-efi-3.0.1.tar.bz2
package/gnu-efi/gnu-efi.mk +2 -2
index 9fbbadd..0e067a6 100644
@@ -4,8 +4,8 @@
 #
 ################################################################################
 
-GNU_EFI_VERSION = 3.0u
-GNU_EFI_SOURCE = gnu-efi_$(GNU_EFI_VERSION).orig.tar.gz
+GNU_EFI_VERSION = 3.0.1
+GNU_EFI_SOURCE = gnu-efi-$(GNU_EFI_VERSION).tar.bz2
 GNU_EFI_SITE = http://downloads.sourceforge.net/project/gnu-efi
 GNU_EFI_INSTALL_STAGING = YES
 GNU_EFI_LICENSE = GPLv2+ (gnuefi), BSD (efilib)
Signature · 1 line
1.9.3
#1 lore raw

PATCH 2/4 boot/syslinux: bump version to 6.03

Remove gnu-efi dependency since it's directly included in syslinux sources since 6.03 release. Also remove the patch for find-gnu-efi.sh script which was removed.

There are still some parallel build issues, so MAKE1 can't be removed for now.

Also add a hash file.

---
 .../syslinux-000-user-headers-from-sysroot.patch   | 37 ----------------------
 boot/syslinux/syslinux.hash                        |  2 ++
 boot/syslinux/syslinux.mk                          |  4 +--
 3 files changed, 4 insertions(+), 39 deletions(-)
 delete mode 100644 boot/syslinux/syslinux-000-user-headers-from-sysroot.patch
 create mode 100644 boot/syslinux/syslinux.hash
boot/syslinux/syslinux-000-user-headers-from-sysroot.patch deleted +0 -37
deleted file mode 100644
index 5edf79f..0000000
@@ -1,37 +0,0 @@
-efi: look for headers and libs in the sysroot
-
-Currently, syslinux hard-codes search paths to /usr/.... directories.
-This does not play well in cross-compilation.
-
-If $SYSROOT is defined, prepend it to the search paths.
-
-Signed-off-by: "Yann E. MORIN" <[email protected]>
-
-diff -durN syslinux-6.02.orig/efi/find-gnu-efi.sh syslinux-6.02/efi/find-gnu-efi.sh
---- syslinux-6.02.orig/efi/find-gnu-efi.sh	2013-10-13 19:59:03.000000000 +0200
-+++ syslinux-6.02/efi/find-gnu-efi.sh	2014-04-22 00:19:23.638483887 +0200
-@@ -9,7 +9,7 @@
- find_include()
- {
-     for d in $include_dirs; do
--	found=`find $d -name efi -type d 2> /dev/null`
-+	found=`find $SYSROOT$d -name efi -type d 2> /dev/null`
- 	if [ "$found"x != "x" ] && [ -e $found/$ARCH/efibind.h ]; then
- 	    echo $found
- 	    break;
-@@ -20,12 +20,12 @@
- find_lib()
- {
-     for d in $lib_dirs; do
--	found=`find $d -name libgnuefi.a 2> /dev/null`
-+	found=`find $SYSROOT$d -name libgnuefi.a 2> /dev/null`
- 	if [ "$found"x != "x" ]; then
- 	    crt_name='crt0-efi-'$ARCH'.o'
--	    crt=`find $d -name $crt_name 2> /dev/null`
-+	    crt=`find $SYSROOT$d -name $crt_name 2> /dev/null`
- 	    if [ "$crt"x != "x" ]; then
--		echo $d
-+		echo $SYSROOT$d
- 		break;
- 	    fi
- 	fi
boot/syslinux/syslinux.hash new file +2 -0
new file mode 100644
index 0000000..5afa6d6
@@ -0,0 +1,2 @@
+# From https://www.kernel.org/pub/linux/utils/boot/syslinux/sha256sums.asc
+sha256 26d3986d2bea109d5dc0e4f8c4822a459276cf021125e8c9f23c3cca5d8c850e syslinux-6.03.tar.xz
boot/syslinux/syslinux.mk +2 -2
index 8ef53f9..7ec840e 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-SYSLINUX_VERSION = 6.02
+SYSLINUX_VERSION = 6.03
 SYSLINUX_SOURCE = syslinux-$(SYSLINUX_VERSION).tar.xz
 SYSLINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/boot/syslinux
 
@@ -19,13 +19,13 @@ ifeq ($(BR2_TARGET_SYSLINUX_LEGACY_BIOS),y)
 SYSLINUX_TARGET = bios
 endif
 
+# gnu-efi is directly included in syslinux sources since 6.03 release.
 ifeq ($(BR2_TARGET_SYSLINUX_EFI),y)
 ifeq ($(BR2_ARCH_IS_64),y)
 SYSLINUX_EFI_BITS = efi64
 else
 SYSLINUX_EFI_BITS = efi32
 endif # 64-bit
-SYSLINUX_DEPENDENCIES += gnu-efi
 SYSLINUX_TARGET = $(SYSLINUX_EFI_BITS)
 endif # EFI
 
Signature · 1 line
1.9.3
#2 lore raw

PATCH 2/4 boot/syslinux: bump version to 6.03

Dear Romain Naour,

Quoted 3 lines · Romain Naour

Remove gnu-efi dependency since it's directly included in syslinux sources since 6.03 release. Also remove the patch for find-gnu-efi.sh script which was removed.

The script has been renamed to output/build/syslinux-6.03/efi/check-gnu-efi.sh. And its contents seems to hint that syslinux can use an external gnu-efi installation, which would be the preferred solution in Buildroot. Can you investigate this? Of course, if there is no upstream supported way of using an external gnu-efi installation, then leave things as is in your current patch.

Also, if the gnu-efi dependency really needs to be removed, you also need to remove the "select" in syslinux Config.in file.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#3 lore raw

PATCH 2/4 boot/syslinux: bump version to 6.03

Hi Thomas,

Le 26/01/2015 23:22, Thomas Petazzoni a ?crit :

Quoted 7 lines

Dear Romain Naour,

Quoted 3 lines · Romain Naour

Remove gnu-efi dependency since it's directly included in syslinux sources since 6.03 release. Also remove the patch for find-gnu-efi.sh script which was removed.

Quoted 6 lines

The script has been renamed to output/build/syslinux-6.03/efi/check-gnu-efi.sh. And its contents seems to hint that syslinux can use an external gnu-efi installation, which would be the preferred solution in Buildroot. Can you investigate this? Of course, if there is no upstream supported way of using an external gnu-efi installation, then leave things as is in your current patch.

I checked if an external gnu-efi can be used but it's hard coded in build-gnu-efi.sh.

The gnu-efi build start in mk/efi.mk line 51 by calling:
$(topdir)/efi/check-gnu-efi.sh $(EFI_SUBARCH) $(objdir)

Where:
topdir = output/build/syslinux-6.03
EFI_SUBARCH = ia32
objdir = output/build/syslinux-6.03/efi32 (build output directory)

The script check-gnu-efi.sh test if gnu-efi needs to be build. If yes, it call build-gnu-efi.sh

The path to gnu-efi is hard coded by EFIDIR:
EFIDIR="$(readlink -f "$objdir/../gnu-efi/gnu-efi-3.0")"

I tried to comment this line and define EFIDIR=$(GNU_EFI_DIR) in SYSLINUX_BUILD_CMDS.
But there are some build issues to be investigated.

But clearly, external gnu-efi is not supported anymore...

Quoted 2 lines

Also, if the gnu-efi dependency really needs to be removed, you also need to remove the "select" in syslinux Config.in file.

Indeed, I forgot to remove the "select", thanks.

Quoted 5 lines

Thanks!

Thomas

#4 lore raw

PATCH 2/4 boot/syslinux: bump version to 6.03

Dear Romain Naour,

Quoted 14 lines · Romain Naour

I checked if an external gnu-efi can be used but it's hard coded in build-gnu-efi.sh.

The gnu-efi build start in mk/efi.mk line 51 by calling:
$(topdir)/efi/check-gnu-efi.sh $(EFI_SUBARCH) $(objdir)

Where:
topdir = output/build/syslinux-6.03
EFI_SUBARCH = ia32
objdir = output/build/syslinux-6.03/efi32 (build output directory)

The script check-gnu-efi.sh test if gnu-efi needs to be build. If yes, it call build-gnu-efi.sh

Quoted 8 lines

The path to gnu-efi is hard coded by EFIDIR:
EFIDIR="$(readlink -f "$objdir/../gnu-efi/gnu-efi-3.0")"

I tried to comment this line and define EFIDIR=$(GNU_EFI_DIR) in SYSLINUX_BUILD_CMDS.
But there are some build issues to be investigated.

But clearly, external gnu-efi is not supported anymore...

Ok, thanks for looking a bit closer!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#5 lore raw

PATCH 3/4 boot/syslinux: disable MinGW support

In reply to Romain Naour

If MinGW is found on the host, syslinux.exe and syslinux64.exe are build. Disable it since there are no MinGW support in Buildroot.

---
 boot/syslinux/0001-disable-MinGW-support.patch | 29 ++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 boot/syslinux/0001-disable-MinGW-support.patch
boot/syslinux/0001-disable-MinGW-support.patch new file +29 -0
new file mode 100644
index 0000000..3711afd
@@ -0,0 +1,29 @@
+From 0455fc58e191687931fe2c0eb5ab4b1d9b970aa4 Mon Sep 17 00:00:00 2001
+From: Romain Naour <[email protected]>
+Date: Sat, 17 Jan 2015 19:16:50 +0100
+Subject: [PATCH 1/1] disable MinGW support
+
+Signed-off-by: Romain Naour <[email protected]>
+---
+ win32/find-mingw32.sh | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/win32/find-mingw32.sh b/win32/find-mingw32.sh
+index 51dcdd7..674f46a 100755
+--- a/win32/find-mingw32.sh
++++ b/win32/find-mingw32.sh
+@@ -2,6 +2,11 @@
+ 
+ cc="$1"
+ 
++# There is no mingw package in Buildroot.
++# Don't use mingw from the host
++echo missing-
++exit 1
++
+ for prefix in \
+     mingw- \
+     mingw32- \
+-- 
+1.9.3
+
Signature · 1 line
1.9.3
#6 lore raw

PATCH 3/4 boot/syslinux: disable MinGW support

Dear Romain Naour,

Quoted 9 lines · Romain Naour

If MinGW is found on the host, syslinux.exe and syslinux64.exe are build. Disable it since there are no MinGW support in Buildroot.

---
 boot/syslinux/0001-disable-MinGW-support.patch | 29 ++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 boot/syslinux/0001-disable-MinGW-support.patch

Hum, why not, but your patch is clearly not upstreamable in Syslinux as is. Do you think you can instead propose a patch that could potentially be upstreamed (and submit it upstream) ?

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#7 lore raw

PATCH 4/4 boot/syslinux: add host-perl dependency

In reply to Romain Naour

Syslinux use a perl interpreter in it's build system, so add host-perl as dependency.

---
 boot/syslinux/syslinux.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
boot/syslinux/syslinux.mk +1 -1
index 7ec840e..c8107f1 100644
@@ -13,7 +13,7 @@ SYSLINUX_LICENSE_FILES = COPYING
 
 SYSLINUX_INSTALL_IMAGES = YES
 
-SYSLINUX_DEPENDENCIES = host-nasm host-util-linux host-upx
+SYSLINUX_DEPENDENCIES = host-nasm host-perl host-util-linux host-upx
 
 ifeq ($(BR2_TARGET_SYSLINUX_LEGACY_BIOS),y)
 SYSLINUX_TARGET = bios
Signature · 1 line
1.9.3
#8 lore raw

PATCH 4/4 boot/syslinux: add host-perl dependency

Hi Romain,

Quoted 2 lines · Romain Naour

Syslinux use a perl interpreter in it's build system, so add host-perl as dependency.

Buildroot expects perl to be installed on the host system already. See ?2.1 (Mandatory packages) in the manual. AFAIK host-perl is only used to build perl itself for the target.

Have you encountered any specific build failure?

baruch

Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
#9 lore raw

PATCH 4/4 boot/syslinux: add host-perl dependency

Hi Baruch,

Le 20/01/2015 09:54, Baruch Siach a ?crit :

Quoted 9 lines

Hi Romain,

Quoted 2 lines · Romain Naour

Syslinux use a perl interpreter in it's build system, so add host-perl as dependency.

Buildroot expects perl to be installed on the host system already. See ?2.1 (Mandatory packages) in the manual. AFAIK host-perl is only used to build perl itself for the target.

Thanks for the reminder, I haven't checked if perl was a mandatory packages before sending the patch...

Quoted 2 lines

Have you encountered any specific build failure?

Not at all.

Best regards,
Romain

Quoted 3 lines

baruch

#10 lore raw

PATCH 4/4 boot/syslinux: add host-perl dependency

Dear Romain Naour,

Quoted 10 lines · Romain Naour
Quoted 3 lines

Buildroot expects perl to be installed on the host system already. See ?2.1 (Mandatory packages) in the manual. AFAIK host-perl is only used to build perl itself for the target.

Thanks for the reminder, I haven't checked if perl was a mandatory packages before sending the patch...

Quoted 1 line

Have you encountered any specific build failure?

Not at all.

So I'll mark the patch as Rejected in patchwork. Thanks Romain and Baruch.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#11 lore raw

PATCH 1/4 package/gnu-efi: bump version to 3.0.1

In reply to Romain Naour

Dear Romain Naour,

Quoted 17 lines · Romain Naour

remove upstream patch gnu-efi-03-parallel-make.patch

---
 ...S-CPPFLAGS-to-be-completed-from-the-envir.patch | 80 ++++++++++++++++++++++
 ...02-Fix-parallel-make-failure-for-archives.patch | 57 +++++++++++++++
 .../gnu-efi/gnu-efi-01-use-override-cflags.patch   | 53 --------------
 .../gnu-efi-02-parallel-make-archives.patch        | 48 -------------
 package/gnu-efi/gnu-efi-03-parallel-make.patch     | 22 ------
 package/gnu-efi/gnu-efi.hash                       |  5 +-
 package/gnu-efi/gnu-efi.mk                         |  4 +-
 7 files changed, 142 insertions(+), 127 deletions(-)
 create mode 100644 package/gnu-efi/0001-Allow-CFLAGS-CPPFLAGS-to-be-completed-from-the-envir.patch
 create mode 100644 package/gnu-efi/0002-Fix-parallel-make-failure-for-archives.patch
 delete mode 100644 package/gnu-efi/gnu-efi-01-use-override-cflags.patch
 delete mode 100644 package/gnu-efi/gnu-efi-02-parallel-make-archives.patch
 delete mode 100644 package/gnu-efi/gnu-efi-03-parallel-make.patch

Applied, thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com