diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2020-05-14 11:09:11 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2020-05-14 11:09:11 +0100 |
commit | deba8115d2c2af26df42966b91ef04ff4dd79cde (patch) | |
tree | 9a48f42594e1a9e6b2020d5535a784314434d7a7 /sys-apps/kexec-tools | |
parent | 38423c67c8a23f6a1bc42038193182e2da3116eb (diff) |
gentoo resync : 14.05.2020
Diffstat (limited to 'sys-apps/kexec-tools')
-rw-r--r-- | sys-apps/kexec-tools/Manifest | 8 | ||||
-rw-r--r-- | sys-apps/kexec-tools/files/kexec-tools-2.0.20-build-multiboot2-for-i386.patch | 68 | ||||
-rw-r--r-- | sys-apps/kexec-tools/files/kexec-tools-2.0.20-remove-duplicated-variable-declarations.patch | 99 | ||||
-rw-r--r-- | sys-apps/kexec-tools/kexec-tools-2.0.19-r1.ebuild | 85 | ||||
-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.ebuild | 28 |
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 |