commit:     6984c3b42ceaa152b76a10d284cbd4bbd9de8ba0
Author:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Wed Apr  3 19:53:04 2019 +0000
Commit:     Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Wed Apr  3 19:53:22 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6984c3b4

sys-boot/syslinux: Add binutils-2.32 compatibility patch, bug 662678

This is 0017-single-load-segment.patch from Debian

Bug: https://bugs.gentoo.org/662678
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>

 .../syslinux-6.04_pre1-singleloadsegment.patch     | 304 +++++++++++++++++++++
 sys-boot/syslinux/syslinux-6.04_pre1.ebuild        |   1 +
 2 files changed, 305 insertions(+)

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 00000000000..db9b7d0a137
--- /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/syslinux-6.04_pre1.ebuild 
b/sys-boot/syslinux/syslinux-6.04_pre1.ebuild
index 026381ff536..5ad853d33db 100644
--- a/sys-boot/syslinux/syslinux-6.04_pre1.ebuild
+++ b/sys-boot/syslinux/syslinux-6.04_pre1.ebuild
@@ -45,6 +45,7 @@ src_prepare() {
        rm -f gethostip #bug 137081
 
        epatch "${FILESDIR}"/${PN}-6.03-sysmacros.patch #579928
+       epatch "${FILESDIR}"/${P}-singleloadsegment.patch #662678
 
        # Don't prestrip or override user LDFLAGS, bug #305783
        local SYSLINUX_MAKEFILES="extlinux/Makefile linux/Makefile 
mtools/Makefile \

Reply via email to