[syslinux] Syslinux 6.00 released

Matt Fleming matt at console-pimps.org
Mon Jul 1 00:37:09 PDT 2013


On Sat, 29 Jun, at 04:40:00PM, Igor Sverkos wrote:
> Hi,
> 
> seems like there is a problem in gnu-efi Makefiles:
> 
> When you are not on Debian, this will be installed (from
> $source/inc/Makefile, called from $source/Makefile):
> 
>   install:
>   	mkdir -p $(INSTALLROOT)$(PREFIX)/include/efi
>   	mkdir -p $(INSTALLROOT)$(PREFIX)/include/efi/protocol
>   	mkdir -p $(INSTALLROOT)$(PREFIX)/include/efi/$(ARCH)
>   	$(INSTALL) -m 644 *.h $(INSTALLROOT)$(PREFIX)/include/efi
>   	$(INSTALL) -m 644 protocol/*.h $(INSTALLROOT)$(PREFIX)/include/efi/protocol
>   	$(INSTALL) -m 644 $(ARCH)/*.h $(INSTALLROOT)$(PREFIX)/include/efi/$(ARCH)
>   ifeq ($(ARCH),ia64)
>   	mkdir -p $(INSTALLROOT)$(PREFIX)/include/efi/protocol/ia64
>   	$(INSTALL) -m 644 protocol/ia64/*.h
> $(INSTALLROOT)$(PREFIX)/include/efi/protocol/ia64
>   endif
> 
> So if you are not on ia32/ia64, no ia32/ia64 headers will be installed.
> 
> But on Debian (from $source/Debian/Makefile):
> 
>   install: build
>   	dh_testdir
>   	dh_testroot
>   	dh_clean -k
>   	dh_installdirs -A
> 
>   	# gnu-efi files
>    	cp -r inc/* debian/gnu-efi/usr/include/efi/
>   	rm debian/gnu-efi/usr/include/efi/Makefile
>   	rm debian/gnu-efi/usr/include/efi/inc.mak
>   	rm debian/gnu-efi/usr/include/efi/make.inf
>   	rm debian/gnu-efi/usr/include/efi/makefile.hdr
>   	rm debian/gnu-efi/usr/include/efi/protocol/make.inf
>   	rm debian/gnu-efi/usr/include/efi/protocol/makefile.hdr
>   	rm debian/gnu-efi/usr/include/efi/protocol/readme.txt
>   ifeq ($(buildarch),ia64)
>   	rm -rf debian/gnu-efi/usr/include/efi/ia32
>   	rm -rf debian/gnu-efi/usr/include/efi/x84_64
>   else
>   	rm -rf debian/gnu-efi/usr/include/efi/ia64
>   endif
> 
>   [...]
> 
> Debian will copy *everything* from inc. When it is an ia64 system,
> they will remove the ia32 and x84_64 headers (so you should be unable
> to build syslinux in ia64 on Debian, too).

To my knowledge, Syslinux has not been tested on ia64. Despite the fact
that it uses a version of EFI, I very much doubt it would work out of
the box without quite a bit of hacking.
 
> This will raise the question: Why does syslinux require these headers
> if you don't build for these archs? This would require gnu-efi too
> install headers for every arch, not only the arch you are on...
 
You can explicitly build Syslinux for only the architectures you care
about using, 'make bios', 'make efi32', etc. It's just that by default
'make' will build for BIOS, EFI 32-bit and EFI 64-bit.

-- 
Matt Fleming, Intel Open Source Technology Center


More information about the Syslinux mailing list