From 62d74d702f50713a24b72ee97afb9739213020ca Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Fri, 5 Jun 2020 17:37:58 +0100 Subject: sys-apps/memtest86+: allow user to override OBJCOPY Package-Manager: Portage-2.3.100, Repoman-2.3.22 Signed-off-by: Sergei Trofimovich --- .../memtest86+/files/memtest86+-5.01-objcopy.patch | 20 ++++ sys-apps/memtest86+/memtest86+-5.01-r5.ebuild | 115 +++++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100644 sys-apps/memtest86+/files/memtest86+-5.01-objcopy.patch create mode 100644 sys-apps/memtest86+/memtest86+-5.01-r5.ebuild diff --git a/sys-apps/memtest86+/files/memtest86+-5.01-objcopy.patch b/sys-apps/memtest86+/files/memtest86+-5.01-objcopy.patch new file mode 100644 index 000000000000..5effe20027a9 --- /dev/null +++ b/sys-apps/memtest86+/files/memtest86+-5.01-objcopy.patch @@ -0,0 +1,20 @@ +Allow 'objcopy' override with user's OBJCOPY. +--- a/Makefile ++++ b/Makefile +@@ -8,6 +8,7 @@ + # Path for the floppy disk device + # + FDISK=/dev/fd0 ++OBJCOPY=objcopy + + CFLAGS= -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin \ + -ffreestanding -fPIC $(SMP_FL) -fno-stack-protector +@@ -30,7 +31,7 @@ memtest_shared: $(OBJS) memtest_shared.lds Makefile + $(LD) -shared -Bsymbolic -T memtest_shared.lds -o $@ $(OBJS) + + memtest_shared.bin: memtest_shared +- objcopy -O binary $< memtest_shared.bin ++ $(OBJCOPY) -O binary $< memtest_shared.bin + + memtest: memtest_shared.bin memtest.lds + $(LD) -s -T memtest.lds -b binary memtest_shared.bin -o $@ diff --git a/sys-apps/memtest86+/memtest86+-5.01-r5.ebuild b/sys-apps/memtest86+/memtest86+-5.01-r5.ebuild new file mode 100644 index 000000000000..35c3e1085fa3 --- /dev/null +++ b/sys-apps/memtest86+/memtest86+-5.01-r5.ebuild @@ -0,0 +1,115 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +inherit mount-boot eutils toolchain-funcs + +DESCRIPTION="Memory tester based on memtest86" +HOMEPAGE="http://www.memtest.org/" +SRC_URI="http://www.memtest.org/download/${PV}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="-* ~amd64 ~x86" +IUSE="+boot floppy iso serial" + +BOOTDIR="/boot/memtest86plus" +QA_PRESTRIPPED="${BOOTDIR}/memtest /usr/share/${PN}/memtest" +QA_FLAGS_IGNORED="${BOOTDIR}/memtest /usr/share/${PN}/memtest" + +RDEPEND="floppy? ( sys-fs/mtools )" +DEPEND="iso? ( app-cdr/cdrtools )" + +pkg_pretend() { + use boot && mount-boot_pkg_pretend +} + +src_prepare() { + sed -i -e 's,0x10000,0x100000,' memtest.lds || die + epatch "${FILESDIR}/${P}-gcc-473.patch" \ + "${FILESDIR}/${P}-hardcoded_cc.patch" + epatch "${FILESDIR}"/${P}-no-scp.patch + epatch "${FILESDIR}"/${P}-io-extern-inline.patch #548312 + epatch "${FILESDIR}"/${P}-reboot-def.patch #548312 + epatch "${FILESDIR}"/${P}-no-clean.patch #557890 + epatch "${FILESDIR}"/${P}-no-C-headers.patch #592638 + epatch "${FILESDIR}"/${P}-test-random-cflags.patch #590974 + epatch "${FILESDIR}"/${P}-objcopy.patch + + sed -i 's:genisoimage:mkisofs:' makeiso.sh || die + if use serial ; then + sed -i \ + -e '/^#define SERIAL_CONSOLE_DEFAULT/s:0:1:' \ + config.h \ + || die "sed failed" + fi + default +} + +src_configure() { + tc-ld-disable-gold #580212 + tc-export AS CC LD +} + +src_compile() { + emake OBJCOPY="$(tc-getOBJCOPY)" + if use iso ; then + ./makeiso.sh || die + fi +} + +src_test() { :; } + +src_install() { + if use boot; then + insinto "${BOOTDIR}" + doins memtest memtest.bin + fi + + insinto /usr/share/${PN} + use iso && newins mt*.iso memtest.iso + doins memtest memtest.bin + + exeinto /etc/grub.d + newexe "${FILESDIR}"/39_${PN}-r1 39_${PN} + + dodoc README README.build-process FAQ changelog + + if use floppy ; then + dobin "${FILESDIR}"/make-memtest86+-boot-floppy + doman "${FILESDIR}"/make-memtest86+-boot-floppy.1 + fi +} + +pkg_preinst() { + use boot && mount-boot_pkg_preinst +} + +pkg_postinst() { + if use boot; then + mount-boot_pkg_postinst + + elog "memtest86+ has been installed in ${BOOTDIR}/" + elog "You may wish to update your bootloader configs by adding these lines:" + elog " - For grub2 just run grub-mkconfig, a configuration file is installed" + elog " as /etc/grub.d/39_${PN}" + elog " - For grub legacy: (replace '?' with correct numbers for your boot partition)" + elog " > title=${PN}" + elog " > root (hd?,?)" + elog " > kernel ${BOOTDIR}/memtest.bin" + elog " - For lilo:" + elog " > image = ${BOOTDIR}/memtest.bin" + elog " > label = ${PN}" + elog "" + elog "Note: For older configs, you might have to change from 'memtest' to 'memtest.bin'." + fi +} + +pkg_prerm() { + use boot && mount-boot_pkg_prerm +} + +pkg_postrm() { + use boot && mount-boot_pkg_postrm +} -- cgit v1.2.3-65-gdbad