diff options
6 files changed, 187 insertions, 1 deletions
diff --git a/app-admin/coreboot-utils/Manifest b/app-admin/coreboot-utils/Manifest new file mode 100644 index 000000000000..3a7daa58eb9a --- /dev/null +++ b/app-admin/coreboot-utils/Manifest @@ -0,0 +1 @@ +DIST coreboot-4.18.tar.xz 57868424 BLAKE2B 981d8c1cf007be15a85d5860dcfcfa6fa637f66438ff4ef6619491aaf0192e622bfbe9608deb13a975d899c94430bc3d1f0eb3a5a3dc6598f49a726b8ff641e1 SHA512 b363850d31074950bc710bd0a47a896a6c6ef23c53d720ae90ec2257697a3eeeb211e163199064b5e532e5b1e86cdecf997276d742435deeaaacfb19b83f4e6d diff --git a/app-admin/coreboot-utils/coreboot-utils-4.18.ebuild b/app-admin/coreboot-utils/coreboot-utils-4.18.ebuild new file mode 100644 index 000000000000..a9115a5fe9d9 --- /dev/null +++ b/app-admin/coreboot-utils/coreboot-utils-4.18.ebuild @@ -0,0 +1,66 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="A selection from coreboot/utils useful in general" +HOMEPAGE="https://www.coreboot.org/" +SRC_URI="https://coreboot.org/releases/coreboot-${PV}.tar.xz" + +LICENSE="GPL-2+ GPL-2" +SLOT="0" +KEYWORDS="~amd64" + +DEPEND="sys-apps/pciutils + sys-libs/zlib" +RDEPEND="${DEPEND}" +BDEPEND="" + +S="${WORKDIR}/coreboot-${PV}" +PATCHES=( + "${FILESDIR}"/${PN}-4.18-musl.patch + "${FILESDIR}"/${PN}-4.18-flags.patch +) + +coreboot_utils=( + #cbfstool has textrels and is not really necessary outside coreboot + cbmem + ifdtool + intelmetool + inteltool + me_cleaner + nvramtool + pmh7tool + superiotool +) + +src_prepare() { + default + # drop some CFLAGS that hurt compilation on modern toolchains or + # force optimisation + # can't do this in one sed, because it all happens back-to-back + for e in '-O[01234567s]' '-g' '-Werror' '-ansi' '-pendantic' ; do + sed -i -e 's/ '"${e}"'\( \|$\)/ /g' util/*/Makefile{.inc,} || die + done +} + +src_compile() { + # selection from README.md that seem useful outside coreboot + + tc-export CC + export HOSTCFLAGS="${CFLAGS}" + for tool in ${coreboot_utils[*]} ; do + [[ -f util/${tool}/Makefile ]] || continue + emake -C util/${tool} V=1 + done +} + +src_install() { + exeinto /usr/sbin + for tool in ${coreboot_utils[*]} ; do + [[ -e util/${tool}/${tool} ]] && doexe util/${tool}/${tool} + [[ -e util/${tool}/${tool}.py ]] && doexe util/${tool}/${tool}.py + done +} diff --git a/app-admin/coreboot-utils/files/coreboot-utils-4.18-flags.patch b/app-admin/coreboot-utils/files/coreboot-utils-4.18-flags.patch new file mode 100644 index 000000000000..e42e6b2921da --- /dev/null +++ b/app-admin/coreboot-utils/files/coreboot-utils-4.18-flags.patch @@ -0,0 +1,35 @@ +- ifdtool: respect LDFLAGS +- nvramtool: respect CFLAGS +- pmh7tool: respect CC, CFLAGS + +--- a/util/ifdtool/Makefile.inc 2022-10-16 20:14:31.000000000 +0000 ++++ b/util/ifdtool/Makefile.inc 2022-12-25 11:38:47.572534621 +0000 +@@ -16,4 +16,4 @@ + + $(objutil)/ifdtool/ifdtool: $(addprefix $(objutil)/ifdtool/,$(ifdtoolobj)) + printf " IFDTOOL\n" +- $(HOSTCC) $(addprefix $(objutil)/ifdtool/,$(ifdtoolobj)) -o $@ ++ $(HOSTCC) $(LDFLAGS) $(addprefix $(objutil)/ifdtool/,$(ifdtoolobj)) -o $@ +--- a/util/nvramtool/Makefile 2022-10-16 20:14:31.000000000 +0000 ++++ b/util/nvramtool/Makefile 2022-12-25 11:39:15.924345609 +0000 +@@ -11,7 +11,7 @@ + CC ?= gcc + INSTALL = /usr/bin/env install + PREFIX = /usr/local +-CFLAGS = -O2 -g -Wall -Wextra -Wmissing-prototypes -I. -DCMOS_HAL=1 ++CFLAGS += -O2 -g -Wall -Wextra -Wmissing-prototypes -I. -DCMOS_HAL=1 + #CFLAGS = -Os -Wall + + CLI_OBJS = cli/nvramtool.o cli/opts.o +--- a/util/pmh7tool/Makefile 2022-10-16 20:14:31.000000000 +0000 ++++ b/util/pmh7tool/Makefile 2022-12-25 11:39:38.491195945 +0000 +@@ -1,7 +1,7 @@ + ## SPDX-License-Identifier: GPL-2.0-only + +-CC = gcc +-CFLAGS = -O2 -Wall -Wextra -Werror ++CC ?= gcc ++CFLAGS ?= -O2 -Wall -Wextra -Werror + PROGRAM = pmh7tool + INSTALL = /usr/bin/env install + PREFIX = /usr/local diff --git a/app-admin/coreboot-utils/files/coreboot-utils-4.18-musl.patch b/app-admin/coreboot-utils/files/coreboot-utils-4.18-musl.patch new file mode 100644 index 000000000000..435977ac9c0b --- /dev/null +++ b/app-admin/coreboot-utils/files/coreboot-utils-4.18-musl.patch @@ -0,0 +1,75 @@ +Author: Fabian Groffen <grobian@gentoo.org> +Date: Wed Dec 14 17:28:13 2022 +0100 + + musl: clumpsy buildfixes + +diff --git a/src/arch/x86/include/arch/mmio.h b/src/arch/x86/include/arch/mmio.h +index c2aa0fb910..b2a37a03dd 100644 +--- a/src/arch/x86/include/arch/mmio.h ++++ b/src/arch/x86/include/arch/mmio.h +@@ -5,6 +5,10 @@ + + #include <stdint.h> + ++#ifndef __always_inline ++#define __always_inline inline ++#endif ++ + static __always_inline uint8_t read8(const volatile void *addr) + { + return *((volatile uint8_t *)(addr)); +diff --git a/util/inteltool/inteltool.h b/util/inteltool/inteltool.h +index 5b40721262..2d0da33d72 100644 +--- a/util/inteltool/inteltool.h ++++ b/util/inteltool/inteltool.h +@@ -12,6 +12,7 @@ + #if defined(__GLIBC__) + #include <sys/io.h> + #endif ++#include <sys/io.h> + #if (defined(__MACH__) && defined(__APPLE__)) + /* DirectHW is available here: https://www.coreboot.org/DirectHW */ + #define __DARWIN__ +diff --git a/util/superiotool/superiotool.c b/util/superiotool/superiotool.c +index ed18c13e62..fa2c6ce35d 100644 +--- a/util/superiotool/superiotool.c ++++ b/util/superiotool/superiotool.c +@@ -320,6 +320,7 @@ int main(int argc, char *argv[]) + } + } + ++#if 0 + #if defined(__FreeBSD__) + if ((io_fd = open("/dev/io", O_RDWR)) < 0) { + perror("/dev/io"); +@@ -330,6 +331,7 @@ int main(int argc, char *argv[]) + printf("Superiotool must be run as root.\n"); + exit(1); + } ++#endif + + print_version(); + +diff --git a/util/superiotool/superiotool.h b/util/superiotool/superiotool.h +index a621ae5274..d5f44fece4 100644 +--- a/util/superiotool/superiotool.h ++++ b/util/superiotool/superiotool.h +@@ -24,6 +24,10 @@ + # endif + #endif + ++#include <sys/types.h> ++#include <stdint.h> ++#include <sys/io.h> ++ + #if defined(__FreeBSD__) + #include <sys/types.h> + #include <machine/cpufunc.h> +@@ -89,6 +93,7 @@ static __inline__ uint32_t inl(uint16_t port) + __asm__ __volatile__ ("inl %1,%0":"=a" (value):"Nd" (port)); + return value; + } ++ + #endif + + #define USAGE "Usage: superiotool [-d] [-e] [-a] [-l] [-V] [-v] [-h]\n\n\ diff --git a/app-admin/coreboot-utils/metadata.xml b/app-admin/coreboot-utils/metadata.xml new file mode 100644 index 000000000000..e33cf762c720 --- /dev/null +++ b/app-admin/coreboot-utils/metadata.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>grobian@gentoo.org</email> + </maintainer> +</pkgmetadata> diff --git a/app-arch/cpio/files/cpio-2.13-sysmacros-glibc-2.26.patch b/app-arch/cpio/files/cpio-2.13-sysmacros-glibc-2.26.patch index 0f902f060f86..abd1b663496d 100644 --- a/app-arch/cpio/files/cpio-2.13-sysmacros-glibc-2.26.patch +++ b/app-arch/cpio/files/cpio-2.13-sysmacros-glibc-2.26.patch @@ -1,10 +1,12 @@ --- a/am/ax_compile_check_rettype.m4 +++ b/am/ax_compile_check_rettype.m4 -@@ -70,6 +70,7 @@ AC_CACHE_VAL(AC_CV_NAME, +@@ -70,6 +70,9 @@ AC_CACHE_VAL(AC_CV_NAME, [for ac_type in char short int long "long long" $4 do AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ ++#ifdef HAVE_SYS_SYSMACROS_H +#include <sys/sysmacros.h> ++#endif #include <sys/types.h> $3 ]], [[switch (0) case 0: case (sizeof ($1($2)) == sizeof ($ac_type)):;]])], [AC_CV_NAME=$ac_type]) |