summaryrefslogtreecommitdiff
path: root/sys-apps/kexec-tools
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-05-14 11:09:11 +0100
committerV3n3RiX <venerix@redcorelinux.org>2020-05-14 11:09:11 +0100
commitdeba8115d2c2af26df42966b91ef04ff4dd79cde (patch)
tree9a48f42594e1a9e6b2020d5535a784314434d7a7 /sys-apps/kexec-tools
parent38423c67c8a23f6a1bc42038193182e2da3116eb (diff)
gentoo resync : 14.05.2020
Diffstat (limited to 'sys-apps/kexec-tools')
-rw-r--r--sys-apps/kexec-tools/Manifest8
-rw-r--r--sys-apps/kexec-tools/files/kexec-tools-2.0.20-build-multiboot2-for-i386.patch68
-rw-r--r--sys-apps/kexec-tools/files/kexec-tools-2.0.20-remove-duplicated-variable-declarations.patch99
-rw-r--r--sys-apps/kexec-tools/kexec-tools-2.0.19-r1.ebuild85
-rw-r--r--sys-apps/kexec-tools/kexec-tools-2.0.20-r1.ebuild (renamed from sys-apps/kexec-tools/kexec-tools-2.0.20.ebuild)30
-rw-r--r--sys-apps/kexec-tools/kexec-tools-9999.ebuild28
6 files changed, 221 insertions, 97 deletions
diff --git a/sys-apps/kexec-tools/Manifest b/sys-apps/kexec-tools/Manifest
index 7301aa4e9740..3bfe3b029ae9 100644
--- a/sys-apps/kexec-tools/Manifest
+++ b/sys-apps/kexec-tools/Manifest
@@ -1,14 +1,14 @@
AUX 90_kexec 199 BLAKE2B 37bcd66beccc32a884b0c2fca9cbba14784b8e6bc7238c14397f0ded788b503df1f7d6fff01c9b9a6bc159c1a6e01821c4c78c144091a7e13bb2bbe88ab5a98c SHA512 31837eb7df9b5c9b63c5f500e55fb584e315ac20f328490ff812a265f1a01604724bf4699f142255f7c5fa78cb2d8f2d6220a91961ac90df644b5d545d47ca39
AUX README.Gentoo 937 BLAKE2B 88a8912015e1cab0d382661d6bdc82689c91970d6d84c949e99a932b4d153b0753183380930b753d23d1c40ab7f44cae784f716e54bc3609a28741ab0b5b1348 SHA512 f082763692def43a97866b88443daf08a2bc1b0dccdc90160d12effa16e1293d8db6935c72ca9dd5502f844078241cbecdfde15b6e8f67a2cca8f3e89f14e654
+AUX kexec-tools-2.0.20-build-multiboot2-for-i386.patch 3095 BLAKE2B 1e8019d09f3c90f801dd5cd4d2c02b5104a663c1bb1cd7c88ce98f6a934db7e427907a7df26e285bf481dd589f19f65b69862450d3ca81fc78bf00a828b7fed7 SHA512 0d47425508307e6614c618b54953e7c6259587a9519441910236c299950fb75ddaf1829870194da32acefff680034925135306e9b8df4f082ddeb2042f0f89bf
+AUX kexec-tools-2.0.20-remove-duplicated-variable-declarations.patch 3661 BLAKE2B 5f0f31b40475a049157a51797127a882d50ee435f1fbf3b2dea5a423f104fdec2c234324e2cd7a56b9f066148f382cb8582a3d988ee2fce40e0dc75ae6d159c7 SHA512 5ad9036ba28bdc8c319c71af5352e60b0a9ea2bd9153723e2256b6365417c0a43225dbed3c80809792318eda0eff86042ef32f5259d5ff733f0d55df4c45dd28
AUX kexec-tools-2.0.4-disable-kexec-test.patch 473 BLAKE2B ad62ae055cd4443ee4dcb4d9a5be1c918a9e1337545f60c683a1a47b848020d0f8fbdc38c7111e505424783191faf3e221ffa642169d2d055d5e17e6b19b9d0d SHA512 c7fe9176db7c3f9c84add1c263c5a695684bf1db55d47152534f0bbb97c084ad5d3f2090307d0bdfcf5622fa810aca3c104f81b3d24baa76f42d3f32d1d4bbad
AUX kexec-tools-2.0.4-out-of-source.patch 816 BLAKE2B 88dc0a8f01c65a32b6ae081ea222760845fe243aad1057e3620ed4c932a32edebf943f9557b2f67751bbcea1f91778c0c065e246d419d5725eb68edcb1e58ced SHA512 4839800f99e2bdb7dfbf3aa1f3ad795feb63b4e493812a50d4baa839a27b5e96319c4e848969cbcedf627a32ed5fbfb312461c2ac89b73daaa7f8f680f35f504
AUX kexec.conf 340 BLAKE2B a65aa0f402c712c10f6095b37b620dacfe883ad621f5403d8190febf582f3ab7e8b821091321036bff104ee5cebab21062830c774778ca17a34a2df76065cfb8 SHA512 66beb57ee13dba70f75f12326643270a0c888e178fdfca8ba7a566a874707aebe2afebb6ceae976dfb0aaf3135048daad6277e70580e4c7911b9ddbf74e4f00a
AUX kexec.conf-2.0.4 1013 BLAKE2B 7594bf8c150d1165f30449526b658c78feab82526e649aa8cce35b6a47b2abd5a208b7ae4376f0330ea2194ae63f786bf0c30682f734f1b604be131e6e63570e SHA512 96db2834454aa4d038061e9b1f918932da3d3054021487425d0f70c6ad32096b9433ae2f3921e83196b23af901c32e591df3d6a84a6d14e064608d8ad895a599
AUX kexec.init-2.0.13-r1 3688 BLAKE2B b0bfb8e94a1cf03c95c8a4b20164345a0ae46830ab59659e469854105d4d7665c77983414fb7fdd069c91002fd4d4f6a215da9dbb395c700a379483d720d9b22 SHA512 ff515de615fc2eb377b8235b33a3c047f9fe63f070181844bcf77761c464b557d9ecfcde2c631e5f09cb3f4a0dfb545485f02a4671c2d0cdf8943fc508250bd2
AUX kexec.service 407 BLAKE2B 7854172c36f550fece58b6cb351a6bd8b4ab8b5a11da0fd629048f8cc2866baa11ee7311424f998360f02dc2c1210be32222283c2bd2f93e1bf4bf65ec903203 SHA512 9f0fa6d39c67048fe774fee0f2e8ed10e9e12a2468e7dda193cd8c5bd8b4cf49819d14703efad35c91265cd4e03c6f5460934b5fe92efd06eab8dc619920b1e3
-DIST kexec-tools-2.0.19.tar.xz 292348 BLAKE2B c9827d77c82f11351086f4cdf4bacd076a03c744969952706ffd6f17395f28fba2437dac976e12e8e5648ca09fac6ff241daf9b8d3fee215519ded9f18441ff0 SHA512 68b15fe46f9633d55c5ae51a6e7114b0c66bd8f4fe81197f581121939a7b21990a2eea89a0961ac6eb7af364ba0d3981ea504df81c7b4cc0b288ca6ac896730f
DIST kexec-tools-2.0.20.tar.xz 297476 BLAKE2B 7e29e7f7d85296dd3e614c45f14c27eca74ce4426d5de2d20387d89f2f63afed318d6157cc4001849a04bb83505bbae87c43d34683ebaf9a70f5f29e3979ade3 SHA512 3112b6202c1030705c53e3f65a2b58aec14d65333a35aad681d48b9f2bd1c51a2e05c985a1e5e867ab02f8a9c97708483d9d225619db7c6993676f1a242e2d99
-EBUILD kexec-tools-2.0.19-r1.ebuild 1819 BLAKE2B 03fc414c1a8becbb3d14800c7b34db9bfdc158e86b5d2dd2cc22867b8afdd0147f5b4be64ed54c075e2a231a1331e6c0d01e9a77e4536932ebe45c78e41bbb70 SHA512 a3ee5b478a09e1ce22a5dd478b6cc27982eeecb8dd43368515f86e45f5a17c80a3184d7cfb16d505282e4e27ec3d1259b95727cf551d7023e01b1e3d80362483
-EBUILD kexec-tools-2.0.20.ebuild 1879 BLAKE2B 8f271ffa4cafb96ce2cd69e1df844acfc628c2230d25d66af9d6e3e3785bcaa33a43754cb5af9812860afc4e1e1ece5211fd3c5c86c5adefae7c750e3edcc985 SHA512 403160e37adbc7e6335d73b17d318302bff80511cf5fe05a8cd1de195dfc5746c7a5aa68cf04c67d8d2c71435c6791d066117776fbb1c6b13f0f9c451f3650a1
-EBUILD kexec-tools-9999.ebuild 1885 BLAKE2B 5c463974cd51b65c193cb50ff64a7a0ef96e078acf4e952d7748688b3aebb1739bb21a93b56aea983576b38afd2fd9b5b01d1cebeaab931e7b53bd9b70219cb5 SHA512 1fa987294ae3327d9508374314d3c6199b2aa1083d6e3074886dc4a444391d3d25509f92b28c746fc8175e51ccb42cfc7374472221f9cf39040ad24e891e709e
+EBUILD kexec-tools-2.0.20-r1.ebuild 2725 BLAKE2B cf29a8a41a98aab6402d1321ebb1f72a64b8cbc7677d8c81a241e89ccea062df0481d5a1b980cb7216db628bd7be5cf779714a027720234acfee4bb3f1bd89f8 SHA512 e98fabbba216a0051e4d2182d9e7ba5bf3d1e302b433d90bc8c0e46d84ab26c9682ce601786fe0cb776d36d106938868aa4a13e321ce74f6f0e88fc2700d242f
+EBUILD kexec-tools-9999.ebuild 2609 BLAKE2B 4f8fa08ade4962b5b6c73c3ea2006f8c69d742a9856509672fc26e141bb0a9a3920dbd0c6d0f4e094738766fb9628713229fd69274b9bbcbc09097e17a60360c SHA512 49eb9295420913d3edaee5c050ed8f4c430a7f3eee2bdb325243bfb8c0b6fe97f9633b785e765a114625ca8d2b3cfb4bffbd7fea526949d789e3f3bd600a251d
MISC metadata.xml 490 BLAKE2B 87c80e53801415341290c29dbc0728a4d084519c38f5c5d14bedde32596111f4cbb91c72ed36b6a8fe3f63ad715df57d59b2a61730ebe08ff7f2bc868c8ff916 SHA512 6f4b25178cc6b8ff3fea664f2717eb7268d9e71c4ca46c170887eb836f9d78dff7e64067968175d018dc22bbcc2bb8cd6fd5f44edba0966fa568f9fd827a1cff
diff --git a/sys-apps/kexec-tools/files/kexec-tools-2.0.20-build-multiboot2-for-i386.patch b/sys-apps/kexec-tools/files/kexec-tools-2.0.20-build-multiboot2-for-i386.patch
new file mode 100644
index 000000000000..8f63ddbe3ba3
--- /dev/null
+++ b/sys-apps/kexec-tools/files/kexec-tools-2.0.20-build-multiboot2-for-i386.patch
@@ -0,0 +1,68 @@
+From 2c9f26ed20a791a7df0182ba82e93abb52f5a615 Mon Sep 17 00:00:00 2001
+From: Chris Packham <chris.packham@alliedtelesis.co.nz>
+Date: Mon, 18 Nov 2019 12:52:15 +1300
+Subject: kexec: build multiboot2 for i386
+
+This addresses the following compilation issues when building for i386.
+
+ kexec/arch/i386/kexec-x86.c:39:22: error: 'multiboot2_x86_probe' undeclared here (not in a function); did you mean 'multiboot_x86_probe'?
+ { "multiboot2-x86", multiboot2_x86_probe, multiboot2_x86_load,
+ ^~~~~~~~~~~~~~~~~~~~
+ multiboot_x86_probe
+ kexec/arch/i386/kexec-x86.c:39:44: error: 'multiboot2_x86_load' undeclared here (not in a function); did you mean 'multiboot_x86_load'?
+ { "multiboot2-x86", multiboot2_x86_probe, multiboot2_x86_load,
+ ^~~~~~~~~~~~~~~~~~~
+ multiboot_x86_load
+ kexec/arch/i386/kexec-x86.c:40:4: error: 'multiboot2_x86_usage' undeclared here (not in a function); did you mean 'multiboot_x86_usage'?
+ multiboot2_x86_usage },
+ ^~~~~~~~~~~~~~~~~~~~
+ multiboot_x86_usage
+ make: *** [Makefile:114: kexec/arch/i386/kexec-x86.o] Error 1
+ make: *** Waiting for unfinished jobs....
+
+Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
+Signed-off-by: Simon Horman <horms@verge.net.au>
+---
+ kexec/arch/i386/Makefile | 2 +-
+ kexec/arch/i386/kexec-x86.h | 5 +++++
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/kexec/arch/i386/Makefile b/kexec/arch/i386/Makefile
+index 105cefd..f486103 100644
+--- a/kexec/arch/i386/Makefile
++++ b/kexec/arch/i386/Makefile
+@@ -7,6 +7,7 @@ i386_KEXEC_SRCS += kexec/arch/i386/kexec-elf-x86.c
+ i386_KEXEC_SRCS += kexec/arch/i386/kexec-elf-rel-x86.c
+ i386_KEXEC_SRCS += kexec/arch/i386/kexec-bzImage.c
+ i386_KEXEC_SRCS += kexec/arch/i386/kexec-multiboot-x86.c
++i386_KEXEC_SRCS += kexec/arch/i386/kexec-mb2-x86.c
+ i386_KEXEC_SRCS += kexec/arch/i386/kexec-beoboot-x86.c
+ i386_KEXEC_SRCS += kexec/arch/i386/kexec-nbi.c
+ i386_KEXEC_SRCS += kexec/arch/i386/x86-linux-setup.c
+@@ -14,7 +15,6 @@ i386_KEXEC_SRCS += kexec/arch/i386/crashdump-x86.c
+
+ dist += kexec/arch/i386/Makefile $(i386_KEXEC_SRCS) \
+ kexec/arch/i386/crashdump-x86.h \
+- kexec/arch/i386/kexec-mb2-x86.c \
+ kexec/arch/i386/kexec-x86.h \
+ kexec/arch/i386/x86-linux-setup.h \
+ kexec/arch/i386/include/arch/options.h
+diff --git a/kexec/arch/i386/kexec-x86.h b/kexec/arch/i386/kexec-x86.h
+index 1b58c3b..0f941df 100644
+--- a/kexec/arch/i386/kexec-x86.h
++++ b/kexec/arch/i386/kexec-x86.h
+@@ -60,6 +60,11 @@ int multiboot_x86_load(int argc, char **argv, const char *buf, off_t len,
+ struct kexec_info *info);
+ void multiboot_x86_usage(void);
+
++int multiboot2_x86_load(int argc, char **argv, const char *buf, off_t len,
++ struct kexec_info *info);
++void multiboot2_x86_usage(void);
++int multiboot2_x86_probe(const char *buf, off_t buf_len);
++
+ int elf_x86_probe(const char *buf, off_t len);
+ int elf_x86_load(int argc, char **argv, const char *buf, off_t len,
+ struct kexec_info *info);
+--
+cgit 1.2-0.3.lf.el7
+
diff --git a/sys-apps/kexec-tools/files/kexec-tools-2.0.20-remove-duplicated-variable-declarations.patch b/sys-apps/kexec-tools/files/kexec-tools-2.0.20-remove-duplicated-variable-declarations.patch
new file mode 100644
index 000000000000..d71e76b3d632
--- /dev/null
+++ b/sys-apps/kexec-tools/files/kexec-tools-2.0.20-remove-duplicated-variable-declarations.patch
@@ -0,0 +1,99 @@
+From cc087b11462af9f971a2c090d07e8d780a867b50 Mon Sep 17 00:00:00 2001
+From: Kairui Song <kasong@redhat.com>
+Date: Wed, 29 Jan 2020 13:38:19 +0800
+Subject: kexec-tools: Remove duplicated variable declarations
+
+When building kexec-tools for Fedora 32, following error is observed:
+
+/usr/bin/ld: kexec/arch/x86_64/kexec-bzImage64.o:(.bss+0x0): multiple definition of `bzImage_support_efi_boot';
+kexec/arch/i386/kexec-bzImage.o:(.bss+0x0): first defined here
+
+/builddir/build/BUILD/kexec-tools-2.0.20/kexec/arch/arm/../../fs2dt.h:33: multiple definition of `my_debug';
+kexec/fs2dt.o:/builddir/build/BUILD/kexec-tools-2.0.20/kexec/fs2dt.h:33: first defined here
+
+/builddir/build/BUILD/kexec-tools-2.0.20/kexec/arch/arm64/kexec-arm64.h:68: multiple definition of `arm64_mem';
+kexec/fs2dt.o:/builddir/build/BUILD/kexec-tools-2.0.20/././kexec/arch/arm64/kexec-arm64.h:68: first defined here
+
+/builddir/build/BUILD/kexec-tools-2.0.20/kexec/arch/arm64/kexec-arm64.h:54: multiple definition of `initrd_size';
+kexec/fs2dt.o:/builddir/build/BUILD/kexec-tools-2.0.20/././kexec/arch/arm64/kexec-arm64.h:54: first defined here
+
+/builddir/build/BUILD/kexec-tools-2.0.20/kexec/arch/arm64/kexec-arm64.h:53: multiple definition of `initrd_base';
+kexec/fs2dt.o:/builddir/build/BUILD/kexec-tools-2.0.20/././kexec/arch/arm64/kexec-arm64.h:53: first defined here
+
+And apparently, these variables are wrongly declared multiple times. So
+remove duplicated declaration.
+
+Signed-off-by: Kairui Song <kasong@redhat.com>
+Signed-off-by: Simon Horman <horms@verge.net.au>
+---
+ kexec/arch/arm64/kexec-arm64.h | 6 +++---
+ kexec/arch/ppc64/kexec-elf-ppc64.c | 2 --
+ kexec/arch/x86_64/kexec-bzImage64.c | 1 -
+ kexec/fs2dt.h | 2 +-
+ 4 files changed, 4 insertions(+), 7 deletions(-)
+
+diff --git a/kexec/arch/arm64/kexec-arm64.h b/kexec/arch/arm64/kexec-arm64.h
+index 628de79..ed447ac 100644
+--- a/kexec/arch/arm64/kexec-arm64.h
++++ b/kexec/arch/arm64/kexec-arm64.h
+@@ -50,8 +50,8 @@ int zImage_arm64_load(int argc, char **argv, const char *kernel_buf,
+ void zImage_arm64_usage(void);
+
+
+-off_t initrd_base;
+-off_t initrd_size;
++extern off_t initrd_base;
++extern off_t initrd_size;
+
+ /**
+ * struct arm64_mem - Memory layout info.
+@@ -65,7 +65,7 @@ struct arm64_mem {
+ };
+
+ #define arm64_mem_ngv UINT64_MAX
+-struct arm64_mem arm64_mem;
++extern struct arm64_mem arm64_mem;
+
+ uint64_t get_phys_offset(void);
+ uint64_t get_vp_offset(void);
+diff --git a/kexec/arch/ppc64/kexec-elf-ppc64.c b/kexec/arch/ppc64/kexec-elf-ppc64.c
+index 3510b70..695b8b0 100644
+--- a/kexec/arch/ppc64/kexec-elf-ppc64.c
++++ b/kexec/arch/ppc64/kexec-elf-ppc64.c
+@@ -44,8 +44,6 @@
+ uint64_t initrd_base, initrd_size;
+ unsigned char reuse_initrd = 0;
+ const char *ramdisk;
+-/* Used for enabling printing message from purgatory code */
+-int my_debug = 0;
+
+ int elf_ppc64_probe(const char *buf, off_t len)
+ {
+diff --git a/kexec/arch/x86_64/kexec-bzImage64.c b/kexec/arch/x86_64/kexec-bzImage64.c
+index 8edb3e4..ba8dc48 100644
+--- a/kexec/arch/x86_64/kexec-bzImage64.c
++++ b/kexec/arch/x86_64/kexec-bzImage64.c
+@@ -42,7 +42,6 @@
+ #include <arch/options.h>
+
+ static const int probe_debug = 0;
+-int bzImage_support_efi_boot;
+
+ int bzImage64_probe(const char *buf, off_t len)
+ {
+diff --git a/kexec/fs2dt.h b/kexec/fs2dt.h
+index 7633273..fe24931 100644
+--- a/kexec/fs2dt.h
++++ b/kexec/fs2dt.h
+@@ -30,7 +30,7 @@ extern struct bootblock bb[1];
+
+ /* Used for enabling printing message from purgatory code
+ * Only has implemented for PPC64 */
+-int my_debug;
++extern int my_debug;
+ extern int dt_no_old_root;
+
+ void reserve(unsigned long long where, unsigned long long length);
+--
+cgit 1.2-0.3.lf.el7
+
diff --git a/sys-apps/kexec-tools/kexec-tools-2.0.19-r1.ebuild b/sys-apps/kexec-tools/kexec-tools-2.0.19-r1.ebuild
deleted file mode 100644
index ddde674c4c83..000000000000
--- a/sys-apps/kexec-tools/kexec-tools-2.0.19-r1.ebuild
+++ /dev/null
@@ -1,85 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit flag-o-matic libtool linux-info systemd
-
-if [[ ${PV} == "9999" ]] ; then
- inherit git-r3 autotools
- EGIT_REPO_URI="https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git"
-else
- SRC_URI="https://www.kernel.org/pub/linux/utils/kernel/kexec/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 x86"
-fi
-
-DESCRIPTION="Load another kernel from the currently executing Linux kernel"
-HOMEPAGE="https://kernel.org/pub/linux/utils/kernel/kexec/"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="booke lzma xen zlib"
-
-REQUIRED_USE="lzma? ( zlib )"
-
-DEPEND="
- lzma? ( app-arch/xz-utils )
- zlib? ( sys-libs/zlib )"
-RDEPEND="${DEPEND}"
-
-CONFIG_CHECK="~KEXEC"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-2.0.4-disable-kexec-test.patch
- "${FILESDIR}"/${PN}-2.0.4-out-of-source.patch
-)
-
-pkg_setup() {
- # GNU Make's $(COMPILE.S) passes ASFLAGS to $(CCAS), CCAS=$(CC)
- export ASFLAGS="${CCASFLAGS}"
-}
-
-src_prepare() {
- default
- if [[ ${PV} == "9999" ]] ; then
- eautoreconf
- else
- elibtoolize
- fi
- filter-flags '-mindirect-branch=thunk*'
-}
-
-src_configure() {
- local myeconfargs=(
- $(use_with booke)
- $(use_with lzma)
- $(use_with xen)
- $(use_with zlib)
- )
- econf "${myeconfargs[@]}"
-}
-
-src_install() {
- default
-
- dodoc "${FILESDIR}"/README.Gentoo
-
- newinitd "${FILESDIR}"/kexec.init-2.0.13-r1 kexec
- newconfd "${FILESDIR}"/kexec.conf-2.0.4 kexec
-
- insinto /etc
- doins "${FILESDIR}"/kexec.conf
-
- insinto /etc/kernel/postinst.d
- doins "${FILESDIR}"/90_kexec
-
- systemd_dounit "${FILESDIR}"/kexec.service
-}
-
-pkg_postinst() {
- if systemd_is_booted || has_version sys-apps/systemd; then
- elog "For systemd support the new config file is"
- elog " /etc/kexec.conf"
- elog "Please adopt it to your needs as there is no autoconfig anymore"
- fi
-}
diff --git a/sys-apps/kexec-tools/kexec-tools-2.0.20.ebuild b/sys-apps/kexec-tools/kexec-tools-2.0.20-r1.ebuild
index 6f01ce718456..480260001a5e 100644
--- a/sys-apps/kexec-tools/kexec-tools-2.0.20.ebuild
+++ b/sys-apps/kexec-tools/kexec-tools-2.0.20-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-inherit flag-o-matic libtool linux-info systemd
+inherit libtool linux-info systemd
if [[ ${PV} == "9999" ]] ; then
inherit git-r3 autotools
@@ -11,7 +11,7 @@ if [[ ${PV} == "9999" ]] ; then
else
SRC_URI="https://www.kernel.org/pub/linux/utils/kernel/kexec/${P/_/-}.tar.xz"
[[ "${PV}" == *_rc* ]] || \
- KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+ KEYWORDS="amd64 ~arm64 ~ppc64 x86"
fi
DESCRIPTION="Load another kernel from the currently executing Linux kernel"
@@ -35,6 +35,8 @@ CONFIG_CHECK="~KEXEC"
PATCHES=(
"${FILESDIR}"/${PN}-2.0.4-disable-kexec-test.patch
"${FILESDIR}"/${PN}-2.0.4-out-of-source.patch
+ "${FILESDIR}"/${P}-remove-duplicated-variable-declarations.patch
+ "${FILESDIR}"/${P}-build-multiboot2-for-i386.patch
)
pkg_setup() {
@@ -44,12 +46,15 @@ pkg_setup() {
src_prepare() {
default
+
+ # Append PURGATORY_EXTRA_CFLAGS flags set by configure, instead of overriding them completely.
+ sed -e "/^PURGATORY_EXTRA_CFLAGS =/s/=/+=/" -i Makefile.in || die
+
if [[ "${PV}" == 9999 ]] ; then
eautoreconf
else
elibtoolize
fi
- filter-flags '-mindirect-branch=thunk*'
}
src_configure() {
@@ -62,6 +67,23 @@ src_configure() {
econf "${myeconfargs[@]}"
}
+src_compile() {
+ # Respect CFLAGS for purgatory.
+ # purgatory/Makefile uses PURGATORY_EXTRA_CFLAGS variable.
+ # -mfunction-return=thunk and -mindirect-branch=thunk conflict with
+ # -mcmodel=large which is added by build system.
+ # Replace them with -mfunction-return=thunk-inline and -mindirect-branch=thunk-inline.
+ local flag flags=()
+ for flag in ${CFLAGS}; do
+ [[ ${flag} == -mfunction-return=thunk ]] && flag="-mfunction-return=thunk-inline"
+ [[ ${flag} == -mindirect-branch=thunk ]] && flag="-mindirect-branch=thunk-inline"
+ flags+=("${flag}")
+ done
+ local -x PURGATORY_EXTRA_CFLAGS="${flags[*]}"
+
+ default
+}
+
src_install() {
default
diff --git a/sys-apps/kexec-tools/kexec-tools-9999.ebuild b/sys-apps/kexec-tools/kexec-tools-9999.ebuild
index 99c3438156f5..77c5d7c6e590 100644
--- a/sys-apps/kexec-tools/kexec-tools-9999.ebuild
+++ b/sys-apps/kexec-tools/kexec-tools-9999.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-inherit flag-o-matic libtool linux-info systemd
+inherit libtool linux-info systemd
if [[ ${PV} == "9999" ]] ; then
inherit git-r3 autotools
@@ -11,7 +11,7 @@ if [[ ${PV} == "9999" ]] ; then
else
SRC_URI="https://www.kernel.org/pub/linux/utils/kernel/kexec/${P/_/-}.tar.xz"
[[ "${PV}" == *_rc* ]] || \
- KEYWORDS="~amd64 ~arm64 ~hppa ~ppc64 ~x86"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
fi
DESCRIPTION="Load another kernel from the currently executing Linux kernel"
@@ -44,12 +44,15 @@ pkg_setup() {
src_prepare() {
default
+
+ # Append PURGATORY_EXTRA_CFLAGS flags set by configure, instead of overriding them completely.
+ sed -e "/^PURGATORY_EXTRA_CFLAGS =/s/=/+=/" -i Makefile.in || die
+
if [[ "${PV}" == 9999 ]] ; then
eautoreconf
else
elibtoolize
fi
- filter-flags '-mindirect-branch=thunk*'
}
src_configure() {
@@ -62,6 +65,23 @@ src_configure() {
econf "${myeconfargs[@]}"
}
+src_compile() {
+ # Respect CFLAGS for purgatory.
+ # purgatory/Makefile uses PURGATORY_EXTRA_CFLAGS variable.
+ # -mfunction-return=thunk and -mindirect-branch=thunk conflict with
+ # -mcmodel=large which is added by build system.
+ # Replace them with -mfunction-return=thunk-inline and -mindirect-branch=thunk-inline.
+ local flag flags=()
+ for flag in ${CFLAGS}; do
+ [[ ${flag} == -mfunction-return=thunk ]] && flag="-mfunction-return=thunk-inline"
+ [[ ${flag} == -mindirect-branch=thunk ]] && flag="-mindirect-branch=thunk-inline"
+ flags+=("${flag}")
+ done
+ local -x PURGATORY_EXTRA_CFLAGS="${flags[*]}"
+
+ default
+}
+
src_install() {
default