summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Trofimovich <slyfox@gentoo.org>2020-09-27 09:31:35 +0100
committerSergei Trofimovich <slyfox@gentoo.org>2020-09-27 09:31:52 +0100
commitd32794f6d9f1b9aafa7b89b9162eb1b7083252b6 (patch)
tree76d997a2edd3a05e835acbcac76255265531fc69 /sys-boot
parentnet-proxy/shadowsocks-libev: run as non-privilege user (diff)
downloadgentoo-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.ebuild93
-rw-r--r--sys-boot/elilo/files/elilo-3.16-FLAGS.patch19
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)