diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2020-09-27 09:31:35 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2020-09-27 09:31:52 +0100 |
commit | d32794f6d9f1b9aafa7b89b9162eb1b7083252b6 (patch) | |
tree | 76d997a2edd3a05e835acbcac76255265531fc69 /sys-boot | |
parent | net-proxy/shadowsocks-libev: run as non-privilege user (diff) | |
download | gentoo-d32794f6d9f1b9aafa7b89b9162eb1b7083252b6.tar.gz gentoo-d32794f6d9f1b9aafa7b89b9162eb1b7083252b6.tar.bz2 gentoo-d32794f6d9f1b9aafa7b89b9162eb1b7083252b6.zip |
sys-boot/elilo: pass *FLAGS to eliloalt
The primary build target is a PE-EFI target.
But auxiliary binaries are native binaries.
Provide NATIVE_* variables to pass native opt flags.
Reported-by: Agostino Sarubbo
Closes: https://bugs.gentoo.org/744931
Package-Manager: Portage-3.0.8, Repoman-3.0.1
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Diffstat (limited to 'sys-boot')
-rw-r--r-- | sys-boot/elilo/elilo-3.16-r4.ebuild | 93 | ||||
-rw-r--r-- | sys-boot/elilo/files/elilo-3.16-FLAGS.patch | 19 |
2 files changed, 112 insertions, 0 deletions
diff --git a/sys-boot/elilo/elilo-3.16-r4.ebuild b/sys-boot/elilo/elilo-3.16-r4.ebuild new file mode 100644 index 000000000000..c4cd5a90dd8a --- /dev/null +++ b/sys-boot/elilo/elilo-3.16-r4.ebuild @@ -0,0 +1,93 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit toolchain-funcs eutils multilib + +DESCRIPTION="Linux boot loader for EFI-based systems such as IA-64" +HOMEPAGE="https://sourceforge.net/projects/elilo/" +SRC_URI="mirror://sourceforge/elilo/${P}-all.tar.gz + mirror://debian/pool/main/e/elilo/elilo_3.14-3.debian.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ia64 ~x86" +IUSE="" + +# gnu-efi contains only static libs, so there's no run-time dep on it +DEPEND=">=sys-boot/gnu-efi-3.0g + dev-util/patchutils" +# dosfstools[compat] to enable 'dosfsck' symlink +RDEPEND="sys-boot/efibootmgr + sys-fs/dosfstools[compat]" + +S="${WORKDIR}/${P}-source" + +PATCHES=( + "${FILESDIR}"/${PN}-3.16-elilo-loop.patch #299665 + "${FILESDIR}"/${PN}-3.16-gnu-efi-3.0.6-ia64.patch + "${FILESDIR}"/${PN}-3.16-strncpy-clash.patch + "${FILESDIR}"/${PN}-3.16-FLAGS.patch +) + +src_unpack() { + unpack ${A} ./${P}-source.tar.gz + mv debian "${S}"/ || die +} + +src_prepare() { + default + + case $(tc-arch) in + ia64) iarch=ia64 ;; + x86) iarch=ia32 ;; + amd64) iarch=x86_64 ;; + *) die "unknown architecture: $(tc-arch)" ;; + esac + + # Now Gentooize it. + sed -i \ + -e '1s:/bin/sh:/bin/bash:' \ + -e "s:##VERSION##:${PV}:" \ + -e 's:Debian GNU/:Gentoo :g' \ + -e 's:Debian:Gentoo:g' \ + -e 's:debian:gentoo:g' \ + -e "s:dpkg --print-architecture:echo ${iarch}:" \ + debian/elilo.sh || die +} + +src_compile() { + # "prefix" on the next line specifies where to find gcc, as, ld, + # etc. It's not the usual meaning of "prefix". By blanking it we + # allow PATH to be searched. + local libdir="${SYSROOT}${EPREFIX}/usr/$(get_libdir)" + emake -j1 \ + prefix= \ + AS="$(tc-getAS)" \ + CC="$(tc-getCC)" \ + LD="$(tc-getLD)" \ + OBJCOPY="$(tc-getOBJCOPY)" \ + HOSTARCH=${iarch} \ + ARCH=${iarch} \ + EFIINC="${SYSROOT}${EPREFIX}/usr/include/efi" \ + GNUEFILIB="${libdir}" \ + EFILIB="${libdir}" \ + EFICRT0="${libdir}" \ + NATIVE_CFLAGS="${CFLAGS}" \ + NATIVE_LDFLAGS="${LDFLAGS}" +} + +src_install() { + exeinto /usr/lib/elilo + doexe elilo.efi + + newsbin debian/elilo.sh elilo + dosbin tools/eliloalt + + insinto /etc + newins "${FILESDIR}"/elilo.conf.sample elilo.conf + + dodoc docs/* "${FILESDIR}"/elilo.conf.sample + doman debian/*.[0-9] +} diff --git a/sys-boot/elilo/files/elilo-3.16-FLAGS.patch b/sys-boot/elilo/files/elilo-3.16-FLAGS.patch new file mode 100644 index 000000000000..a77e44d0b186 --- /dev/null +++ b/sys-boot/elilo/files/elilo-3.16-FLAGS.patch @@ -0,0 +1,19 @@ +eliloalt is a rare native tool. Allow user to explicitly pass +standart optimization flags via + $ make NATIIVE_CFLAGS=${CFLAGS} NATIVE_LDFLAGS +https://bugs.gentoo.org/744931 +--- a/tools/Makefile ++++ b/tools/Makefile +@@ -42,10 +42,10 @@ all: $(TARGET) + # redefine local rule (we build a Linux/ia64 binary here) + # + %.o: %.c +- $(CC) $(OPTIMFLAGS) $(DEBUGFLAGS) -c $< -o $@ ++ $(CC) $(OPTIMFLAGS) $(NATIVE_CFLAGS) $(DEBUGFLAGS) -c $< -o $@ + + $(TARGET): %:%.o +- $(CC) -o $@ $(OPTIMFLAGS) $(DEBUGFLAGS) $^ ++ $(CC) -o $@ $(OPTIMFLAGS) $(NATIVE_CFLAGS) $(NATIVE_LDFLAGS) $(DEBUGFLAGS) $^ + + clean: + $(RM) -f $(TARGET) $(FILES) |