commit:     4eadb9d0d81834400ef482d3cadbf950022ffd88
Author:     Dave Hughes <davidhughes205 <AT> gmail <DOT> com>
AuthorDate: Sat Mar 13 04:43:52 2021 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Mar 13 16:18:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/musl.git/commit/?id=4eadb9d0

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 <AT> gmail.com>
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>

 .../files/syslinux-6.04_pre1-fcommon.patch         |  54 ++++
 .../syslinux-6.04_pre1-singleloadsegment.patch     | 304 +++++++++++++++++++++
 sys-boot/syslinux/metadata.xml                     |   3 +
 ...04_pre1.ebuild => syslinux-6.04_pre1-r2.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 0000000..7d061db
--- /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 0000000..db9b7d0
--- /dev/null
+++ b/sys-boot/syslinux/files/syslinux-6.04_pre1-singleloadsegment.patch
@@ -0,0 +1,304 @@
+Author: Lukas Schwaighofer <lu...@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 dbe176c..72e7472 100644
--- a/sys-boot/syslinux/metadata.xml
+++ b/sys-boot/syslinux/metadata.xml
@@ -8,4 +8,7 @@
        <email>base-sys...@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
similarity index 73%
rename from sys-boot/syslinux/syslinux-6.04_pre1.ebuild
rename to sys-boot/syslinux/syslinux-6.04_pre1-r2.ebuild
index 7356e25..d8eb8fa 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
-}

Reply via email to