diff options
author | Dave Hughes <davidhughes205@gmail.com> | 2021-03-12 23:43:52 -0500 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2021-03-13 11:18:39 -0500 |
commit | 4eadb9d0d81834400ef482d3cadbf950022ffd88 (patch) | |
tree | 2bff9a5b27b4dd7d38901c42bd79ff539d6ea84b /sys-boot | |
parent | dev-java/openjdk: bump to latest + some fix-up patches from Alpine (diff) | |
download | musl-4eadb9d0d81834400ef482d3cadbf950022ffd88.tar.gz musl-4eadb9d0d81834400ef482d3cadbf950022ffd88.tar.bz2 musl-4eadb9d0d81834400ef482d3cadbf950022ffd88.zip |
sys-boot/syslinux: sync with ::gentoo
Package-Manager: Portage-3.0.17, Repoman-3.0.2
Manifest-Sign-Key: 0xA1919C830E9498E0
Signed-off-by: Dave Hughes <davidhughes205@gmail.com>
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Diffstat (limited to 'sys-boot')
-rw-r--r-- | sys-boot/syslinux/files/syslinux-6.04_pre1-fcommon.patch | 54 | ||||
-rw-r--r-- | sys-boot/syslinux/files/syslinux-6.04_pre1-singleloadsegment.patch | 304 | ||||
-rw-r--r-- | sys-boot/syslinux/metadata.xml | 3 | ||||
-rw-r--r-- | sys-boot/syslinux/syslinux-6.04_pre1-r2.ebuild (renamed from sys-boot/syslinux/syslinux-6.04_pre1.ebuild) | 53 |
4 files changed, 391 insertions, 23 deletions
diff --git a/sys-boot/syslinux/files/syslinux-6.04_pre1-fcommon.patch b/sys-boot/syslinux/files/syslinux-6.04_pre1-fcommon.patch new file mode 100644 index 00000000..7d061db2 --- /dev/null +++ b/sys-boot/syslinux/files/syslinux-6.04_pre1-fcommon.patch @@ -0,0 +1,54 @@ +https://bugs.gentoo.org/705730 + +gcc-10 enabled f-no-common by default. Broke syslinux linking. +--- a/mk/com32.mk ++++ b/mk/com32.mk +@@ -47,6 +47,7 @@ GCCOPT += $(call gcc_ok,-falign-functions=0,-malign-functions=0) + GCCOPT += $(call gcc_ok,-falign-jumps=0,-malign-jumps=0) + GCCOPT += $(call gcc_ok,-falign-labels=0,-malign-labels=0) + GCCOPT += $(call gcc_ok,-falign-loops=0,-malign-loops=0) ++GCCOPT += $(call gcc_ok,-fcommon) + + ifeq ($(FWCLASS),EFI) + GCCOPT += -mno-red-zone +--- a/mk/elf.mk ++++ b/mk/elf.mk +@@ -42,6 +42,7 @@ GCCOPT += $(call gcc_ok,-falign-functions=0,-malign-functions=0) + GCCOPT += $(call gcc_ok,-falign-jumps=0,-malign-jumps=0) + GCCOPT += $(call gcc_ok,-falign-labels=0,-malign-labels=0) + GCCOPT += $(call gcc_ok,-falign-loops=0,-malign-loops=0) ++GCCOPT += $(call gcc_ok,-fcommon) + + com32 = $(topdir)/com32 + core = $(topdir)/core +--- a/mk/embedded.mk ++++ b/mk/embedded.mk +@@ -51,6 +51,7 @@ GCCOPT += $(call gcc_ok,-falign-jumps=0,-malign-jumps=0) + GCCOPT += $(call gcc_ok,-falign-labels=0,-malign-labels=0) + GCCOPT += $(call gcc_ok,-falign-loops=0,-malign-loops=0) + GCCOPT += $(call gcc_ok,-fvisibility=hidden) ++GCCOPT += $(call gcc_ok,-fcommon) + + LIBGCC := $(shell $(CC) $(GCCOPT) --print-libgcc) + +--- a/mk/lib.mk ++++ b/mk/lib.mk +@@ -28,6 +28,7 @@ GCCOPT += $(call gcc_ok,-falign-functions=0,-malign-functions=0) + GCCOPT += $(call gcc_ok,-falign-jumps=0,-malign-jumps=0) + GCCOPT += $(call gcc_ok,-falign-labels=0,-malign-labels=0) + GCCOPT += $(call gcc_ok,-falign-loops=0,-malign-loops=0) ++GCCOPT += $(call gcc_ok,-fcommon) + + INCLUDE = -I$(SRC) + STRIP = strip --strip-all -R .comment -R .note +--- a/mk/efi.mk ++++ b/mk/efi.mk +@@ -7,7 +7,7 @@ core = $(topdir)/core + # Set up architecture specifics; for cross compilation, set ARCH as apt + # gnuefi sets up architecture specifics in ia32 or x86_64 sub directories + # set up the LIBDIR and EFIINC for building for the appropriate architecture +-GCCOPT := $(call gcc_ok,-fno-stack-protector,) ++GCCOPT := $(call gcc_ok,-fno-stack-protector,) $(call gcc_ok,-fcommon) + EFIINC = $(objdir)/include/efi + LIBDIR = $(objdir)/lib + diff --git a/sys-boot/syslinux/files/syslinux-6.04_pre1-singleloadsegment.patch b/sys-boot/syslinux/files/syslinux-6.04_pre1-singleloadsegment.patch new file mode 100644 index 00000000..db9b7d0a --- /dev/null +++ b/sys-boot/syslinux/files/syslinux-6.04_pre1-singleloadsegment.patch @@ -0,0 +1,304 @@ +Author: Lukas Schwaighofer <lukas@schwaighofer.name> +Description: Force the linker to put all sections into a single PT_LOAD + segment. This is required when using binutils >= 2.31 which writes two PT_LOAD + segments by default. This is not supported by the wrapper.c script used to + convert the shared object into an elf binary. +Forwarded: https://www.syslinux.org/archives/2018-August/026167.html + +--- + efi/i386/syslinux.ld | 37 +++++++++++++++++++++---------------- + efi/x86_64/syslinux.ld | 37 +++++++++++++++++++++---------------- + 2 files changed, 42 insertions(+), 32 deletions(-) + +diff --git a/efi/i386/syslinux.ld b/efi/i386/syslinux.ld +index bab3fc7..5b4589d 100644 +--- a/efi/i386/syslinux.ld ++++ b/efi/i386/syslinux.ld +@@ -19,6 +19,11 @@ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") + OUTPUT_ARCH(i386) + ENTRY(_start) + ++PHDRS ++{ ++ all PT_LOAD ; ++} ++ + SECTIONS + { + . = 0; +@@ -31,7 +36,7 @@ SECTIONS + *(.text) + *(.text.*) + __text_end = .; +- } ++ } :all + + . = ALIGN(16); + +@@ -40,7 +45,7 @@ SECTIONS + *(.rodata) + *(.rodata.*) + __rodata_end = .; +- } ++ } :all + + . = ALIGN(4); + +@@ -49,14 +54,14 @@ SECTIONS + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + __ctors_end = .; +- } ++ } :all + + .dtors : { + __dtors_start = .; + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) + __dtors_end = .; +- } ++ } :all + + . = ALIGN(4096); + .rel : { +@@ -64,7 +69,7 @@ SECTIONS + *(.rel.data) + *(.rel.data.*) + *(.rel.ctors) +- } ++ } :all + + . = ALIGN(4); + +@@ -72,14 +77,14 @@ SECTIONS + __gnu_hash_start = .; + *(.gnu.hash) + __gnu_hash_end = .; +- } ++ } :all + + + .dynsym : { + __dynsym_start = .; + *(.dynsym) + __dynsym_end = .; +- } ++ } :all + + . = ALIGN(4); + +@@ -87,7 +92,7 @@ SECTIONS + __dynstr_start = .; + *(.dynstr) + __dynstr_end = .; +- } ++ } :all + + . = ALIGN(4); + +@@ -104,7 +109,7 @@ SECTIONS + KEEP (*(.got.plt)) + KEEP (*(.got)) + __got_end = .; +- } ++ } :all + + . = ALIGN(4); + +@@ -112,7 +117,7 @@ SECTIONS + __dynamic_start = .; + *(.dynamic) + __dynamic_end = .; +- } ++ } :all + + . = ALIGN(16); + +@@ -122,19 +127,19 @@ SECTIONS + *(.data.*) + *(.lowmem) + __data_end = .; +- } ++ } :all + + .reloc : { + *(.reloc) +- } ++ } :all + + .symtab : { + *(.symtab) +- } ++ } :all + + .strtab : { + *(.strtab) +- } ++ } :all + + .bss (NOLOAD) : { + /* the EFI loader doesn't seem to like a .bss section, +@@ -148,7 +153,7 @@ SECTIONS + __bss_end = .; + *(.sbss) + *(.scommon) +- } ++ } :all + __bss_len = ABSOLUTE(__bss_end) - ABSOLUTE(__bss_start); + __bss_dwords = (__bss_len + 3) >> 2; + +@@ -161,7 +166,7 @@ SECTIONS + *(.hugebss) + *(.hugebss.*) + __hugebss_end = .; +- } ++ } :all + + _end = .; + +diff --git a/efi/x86_64/syslinux.ld b/efi/x86_64/syslinux.ld +index 450641c..cad28a8 100644 +--- a/efi/x86_64/syslinux.ld ++++ b/efi/x86_64/syslinux.ld +@@ -19,6 +19,11 @@ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") + OUTPUT_ARCH(i386:x86-64) + ENTRY(_start) + ++PHDRS ++{ ++ all PT_LOAD ; ++} ++ + SECTIONS + { + . = 0; +@@ -31,7 +36,7 @@ SECTIONS + *(.text) + *(.text.*) + __text_end = .; +- } ++ } :all + + . = ALIGN(16); + +@@ -40,7 +45,7 @@ SECTIONS + *(.rodata) + *(.rodata.*) + __rodata_end = .; +- } ++ } :all + + . = ALIGN(4); + +@@ -49,14 +54,14 @@ SECTIONS + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + __ctors_end = .; +- } ++ } :all + + .dtors : { + __dtors_start = .; + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) + __dtors_end = .; +- } ++ } :all + + . = ALIGN(4096); + .rel : { +@@ -64,7 +69,7 @@ SECTIONS + *(.rel.data) + *(.rel.data.*) + *(.rel.ctors) +- } ++ } :all + + . = ALIGN(4); + +@@ -72,14 +77,14 @@ SECTIONS + __gnu_hash_start = .; + *(.gnu.hash) + __gnu_hash_end = .; +- } ++ } :all + + + .dynsym : { + __dynsym_start = .; + *(.dynsym) + __dynsym_end = .; +- } ++ } :all + + . = ALIGN(4); + +@@ -87,7 +92,7 @@ SECTIONS + __dynstr_start = .; + *(.dynstr) + __dynstr_end = .; +- } ++ } :all + + . = ALIGN(4); + +@@ -104,7 +109,7 @@ SECTIONS + KEEP (*(.got.plt)) + KEEP (*(.got)) + __got_end = .; +- } ++ } :all + + . = ALIGN(4); + +@@ -112,7 +117,7 @@ SECTIONS + __dynamic_start = .; + *(.dynamic) + __dynamic_end = .; +- } ++ } :all + + . = ALIGN(16); + +@@ -122,19 +127,19 @@ SECTIONS + *(.data.*) + *(.lowmem) + __data_end = .; +- } ++ } :all + + .reloc : { + *(.reloc) +- } ++ } :all + + .symtab : { + *(.symtab) +- } ++ } :all + + .strtab : { + *(.strtab) +- } ++ } :all + + .bss (NOLOAD) : { + /* the EFI loader doesn't seem to like a .bss section, +@@ -148,7 +153,7 @@ SECTIONS + __bss_end = .; + *(.sbss) + *(.scommon) +- } ++ } :all + __bss_len = ABSOLUTE(__bss_end) - ABSOLUTE(__bss_start); + __bss_dwords = (__bss_len + 3) >> 2; + +@@ -161,7 +166,7 @@ SECTIONS + *(.hugebss) + *(.hugebss.*) + __hugebss_end = .; +- } ++ } :all + + _end = .; + diff --git a/sys-boot/syslinux/metadata.xml b/sys-boot/syslinux/metadata.xml index dbe176ca..72e7472a 100644 --- a/sys-boot/syslinux/metadata.xml +++ b/sys-boot/syslinux/metadata.xml @@ -8,4 +8,7 @@ <email>base-system@gentoo.org</email> <name>Gentoo Base System</name> </maintainer> +<upstream> + <remote-id type="cpe">cpe:/a:gentoo:syslinux</remote-id> +</upstream> </pkgmetadata> diff --git a/sys-boot/syslinux/syslinux-6.04_pre1.ebuild b/sys-boot/syslinux/syslinux-6.04_pre1-r2.ebuild index 7356e25e..d8eb8fa1 100644 --- a/sys-boot/syslinux/syslinux-6.04_pre1.ebuild +++ b/sys-boot/syslinux/syslinux-6.04_pre1-r2.ebuild @@ -1,12 +1,12 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=5 +EAPI=7 inherit eutils toolchain-funcs DESCRIPTION="SYSLINUX, PXELINUX, ISOLINUX, EXTLINUX and MEMDISK bootloaders" -HOMEPAGE="http://www.syslinux.org/" +HOMEPAGE="https://www.syslinux.org/" # Final releases in 6.xx/$PV.tar.* (literal "xx") # Testing releases in Testing/$PV/$PV.tar.* SRC_URI_DIR=${PV:0:1}.xx @@ -15,7 +15,7 @@ SRC_URI_TESTING=Testing/${PV:0:4} [[ ${PV/_beta} != $PV ]] && SRC_URI_DIR=$SRC_URI_TESTING [[ ${PV/_pre} != $PV ]] && SRC_URI_DIR=$SRC_URI_TESTING [[ ${PV/_rc} != $PV ]] && SRC_URI_DIR=$SRC_URI_TESTING -SRC_URI="mirror://kernel/linux/utils/boot/syslinux/${SRC_URI_DIR}/${P/_/-}.tar.xz" +SRC_URI="https://www.kernel.org/pub/linux/utils/boot/syslinux/${SRC_URI_DIR}/${P/_/-}.tar.xz" LICENSE="GPL-2" SLOT="0" @@ -23,8 +23,8 @@ KEYWORDS="-* amd64 x86" IUSE="custom-cflags" RDEPEND="sys-fs/mtools - dev-perl/Crypt-PasswdMD5 - dev-perl/Digest-SHA1" + dev-perl/Crypt-PasswdMD5 + dev-perl/Digest-SHA1" DEPEND="${RDEPEND} dev-lang/nasm >=sys-boot/gnu-efi-3.0u @@ -41,11 +41,17 @@ QA_PREBUILT="usr/share/${PN}/*.c32" # removed all the unpack/patching stuff since we aren't rebuilding the core stuff anymore +PATCHES=( + "${FILESDIR}"/${PN}-6.03-sysmacros.patch #579928 + "${FILESDIR}"/${P}-singleloadsegment.patch #662678 + "${FILESDIR}"/${P}-fcommon.patch #705730 + "${FILESDIR}"/${PN}-musl.patch +) + src_prepare() { - rm -f gethostip #bug 137081 + default - epatch "${FILESDIR}"/${PN}-6.03-sysmacros.patch #579928 - epatch "${FILESDIR}"/${PN}-musl.patch + rm -f gethostip #bug 137081 # Don't prestrip or override user LDFLAGS, bug #305783 local SYSLINUX_MAKEFILES="extlinux/Makefile linux/Makefile mtools/Makefile \ @@ -83,31 +89,32 @@ src_prepare() { ewarn "Continuing anyway as requested." fi fi + + tc-export AR CC LD OBJCOPY RANLIB +} + +_emake() { + emake \ + AR="${AR}" \ + CC="${CC}" \ + LD="${LD}" \ + OBJCOPY="${OBJCOPY}" \ + RANLIB="${RANLIB}" \ + "$@" } src_compile() { # build system abuses the LDFLAGS variable to pass arguments to ld unset LDFLAGS if [[ ! -z ${loaderarch} ]]; then - emake CC="$(tc-getCC)" LD="$(tc-getLD)" ${loaderarch} + _emake ${loaderarch} fi - emake CC="$(tc-getCC)" LD="$(tc-getLD)" ${loaderarch} installer + _emake ${loaderarch} installer } src_install() { # parallel install fails sometimes einfo "loaderarch=${loaderarch}" - emake -j1 LD="$(tc-getLD)" INSTALLROOT="${D}" MANDIR=/usr/share/man bios ${loaderarch} install + _emake -j1 INSTALLROOT="${D}" MANDIR=/usr/share/man bios ${loaderarch} install dodoc README NEWS doc/*.txt } - -pkg_postinst() { - # print warning for users upgrading from the previous stable version - if has 4.07 ${REPLACING_VERSIONS}; then - ewarn "syslinux now uses dynamically linked ELF executables. Before you reboot," - ewarn "ensure that needed dependencies are fulfilled. For example, run from your" - ewarn "syslinux directory:" - ewarn - ewarn "LD_LIBRARY_PATH=\".\" ldd menu.c32" - fi -} |