Date: Wednesday, April 3, 2019 @ 18:41:25
  Author: anatolik
Revision: 349813

Sync patches with Debian

Among other things it brings a fix for FS#59987

Added:
  syslinux/trunk/0002-gfxboot-menu-label.patch
  syslinux/trunk/0004-gnu-efi-from-arch.patch
  syslinux/trunk/0005-gnu-efi-version-compatibility.patch
  syslinux/trunk/0016-strip-gnu-property.patch
  syslinux/trunk/0017-single-load-segment.patch
  syslinux/trunk/0018-prevent-pow-optimization.patch
Modified:
  syslinux/trunk/PKGBUILD
Deleted:
  syslinux/trunk/prevent-pow-optimization.patch
  syslinux/trunk/single-load-segment.patch
  syslinux/trunk/strip_note_section.patch

------------------------------------------+
 0002-gfxboot-menu-label.patch            |   53 +++++
 0004-gnu-efi-from-arch.patch             |   36 +++
 0005-gnu-efi-version-compatibility.patch |   25 ++
 0016-strip-gnu-property.patch            |   43 ++++
 0017-single-load-segment.patch           |  306 +++++++++++++++++++++++++++++
 0018-prevent-pow-optimization.patch      |   36 +++
 PKGBUILD                                 |   46 +---
 prevent-pow-optimization.patch           |   36 ---
 single-load-segment.patch                |  304 ----------------------------
 strip_note_section.patch                 |   29 --
 10 files changed, 520 insertions(+), 394 deletions(-)

Added: 0002-gfxboot-menu-label.patch
===================================================================
--- 0002-gfxboot-menu-label.patch                               (rev 0)
+++ 0002-gfxboot-menu-label.patch       2019-04-03 18:41:25 UTC (rev 349813)
@@ -0,0 +1,53 @@
+From: Colin Watson <cjwat...@ubuntu.com>
+Date: Wed, 2 Nov 2011 07:57:23 +0100
+Subject: Allow boot entry to start with label instead of menu_label.
+
+menu_ptr->menu_label is human-readable (perhaps even translatable!) text if
+the MENU LABEL command is used, which isn't very convenient at the start of
+a boot entry.  Allow the entry to start with menu_ptr->label (an
+identifier) as an alternative.
+---
+ com32/gfxboot/gfxboot.c | 16 ++++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/com32/gfxboot/gfxboot.c b/com32/gfxboot/gfxboot.c
+index f67132c..4c76a35 100644
+--- a/com32/gfxboot/gfxboot.c
++++ b/com32/gfxboot/gfxboot.c
+@@ -818,7 +818,7 @@ void boot(int index)
+ {
+   char *arg, *alt_kernel;
+   menu_t *menu_ptr;
+-  int i, label_len;
++  int i, label_len, menu_label_len;
+   unsigned ipapp;
+   const struct syslinux_ipappend_strings *ipappend;
+   char *gfxboot_cwd = (char *) gfx_config.gfxboot_cwd;
+@@ -836,18 +836,22 @@ void boot(int index)
+   if(!menu_ptr || !menu_ptr->menu_label) return;
+ 
+   arg = skipspace(cmdline);
+-  label_len = strlen(menu_ptr->menu_label);
++  label_len = strlen(menu_ptr->label);
++  menu_label_len = strlen(menu_ptr->menu_label);
+ 
+   // if it does not start with label string, assume first word is kernel name
+-  if(strncmp(arg, menu_ptr->menu_label, label_len)) {
++  if(!strncmp(arg, menu_ptr->label, label_len)) {
++    arg += label_len;
++  }
++  else if(!strncmp(arg, menu_ptr->menu_label, menu_label_len)) {
++    arg += menu_label_len;
++  }
++  else {
+     alt_kernel = arg;
+     arg = skip_nonspaces(arg);
+     if(*arg) *arg++ = 0;
+     if(*alt_kernel) menu_ptr->alt_kernel = alt_kernel;
+   }
+-  else {
+-    arg += label_len;
+-  }
+ 
+   arg = skipspace(arg);
+ 

Added: 0004-gnu-efi-from-arch.patch
===================================================================
--- 0004-gnu-efi-from-arch.patch                                (rev 0)
+++ 0004-gnu-efi-from-arch.patch        2019-04-03 18:41:25 UTC (rev 349813)
@@ -0,0 +1,36 @@
+From: Lukas Schwaighofer <lu...@schwaighofer.name>
+Date: Tue, 3 Oct 2017 18:29:13 +0200
+Subject: Link against gnu-efi from Debian
+
+Adjust EFIINC, LIBDIR and LIBEFI variables in mk/efi.mk to point to the
+files installed by Arch's gnu-efi package.
+
+Forwarded: not-needed
+---
+ mk/efi.mk | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/mk/efi.mk b/mk/efi.mk
+index f097ad2..dc2b708 100644
+--- a/mk/efi.mk
++++ b/mk/efi.mk
+@@ -8,8 +8,8 @@ core = $(topdir)/core
+ # 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,)
+-EFIINC = $(objdir)/include/efi
+-LIBDIR  = $(objdir)/lib
++EFIINC = /usr/include/efi
++LIBDIR  = /usr/lib
+ 
+ ifeq ($(ARCH),i386)
+       ARCHOPT = -m32 -march=i386
+@@ -44,7 +51,7 @@ SFLAGS     = $(GCCOPT) $(GCCWARN) $(ARCHOPT) \
+            -nostdinc -iwithprefix include \
+            -I$(com32)/libutil/include -I$(com32)/include 
-I$(com32)/include/sys $(GPLINCLUDE)
+ 
+-LIBEFI = $(objdir)/lib/libefi.a
++LIBEFI = $(LIBDIR)/libefi.a
+ 
+ $(LIBEFI):
+       @echo Building gnu-efi for $(EFI_SUBARCH)

Added: 0005-gnu-efi-version-compatibility.patch
===================================================================
--- 0005-gnu-efi-version-compatibility.patch                            (rev 0)
+++ 0005-gnu-efi-version-compatibility.patch    2019-04-03 18:41:25 UTC (rev 
349813)
@@ -0,0 +1,25 @@
+From: Lukas Schwaighofer <lu...@schwaighofer.name>
+Date: Mon, 3 Dec 2018 22:45:44 +0100
+Subject: Fix compatibility with new gnu-efi version
+
+Allow multiple definitions when linking the syslinux binary so the
+memset and memcpy symbols which are included by gnu-efi since 3.0.8 are
+ignored (we still use the definitions from syslinux) but linking
+succeeds.
+---
+ efi/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/efi/Makefile b/efi/Makefile
+index f4501e7..0d1a673 100644
+--- a/efi/Makefile
++++ b/efi/Makefile
+@@ -71,7 +71,7 @@ $(OBJS): | $(OBJ)/$(ARCH)
+ BTARGET  = syslinux.efi
+ 
+ syslinux.so: $(OBJS) $(CORE_OBJS) $(LIB_OBJS)
+-      $(LD) $(LDFLAGS) --strip-debug -o $@ $^ -lgnuefi -lefi
++      $(LD) $(LDFLAGS) -zmuldefs --strip-debug -o $@ $^ -lgnuefi -lefi
+ 
+ # We need to rename the .hash section because the EFI firmware
+ # linker really doesn't like it.

Added: 0016-strip-gnu-property.patch
===================================================================
--- 0016-strip-gnu-property.patch                               (rev 0)
+++ 0016-strip-gnu-property.patch       2019-04-03 18:41:25 UTC (rev 349813)
@@ -0,0 +1,43 @@
+From: Lukas Schwaighofer <lu...@schwaighofer.name>
+Date: Sat, 18 Aug 2018 12:48:21 +0200
+Subject: Strip the .note.gnu.property section for the mbr
+
+This section is added since binutils Debian version 2.31.1-2 and causes mbr.bin
+to grow in size beyond what can fit into the master boot record.
+
+Forwarded: https://www.syslinux.org/archives/2018-August/026168.html
+---
+ mbr/i386/mbr.ld   | 6 +++++-
+ mbr/x86_64/mbr.ld | 6 +++++-
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/mbr/i386/mbr.ld b/mbr/i386/mbr.ld
+index d14ba80..6d48990 100644
+--- a/mbr/i386/mbr.ld
++++ b/mbr/i386/mbr.ld
+@@ -69,5 +69,9 @@ SECTIONS
+   .debug_funcnames 0 : { *(.debug_funcnames) }
+   .debug_typenames 0 : { *(.debug_typenames) }
+   .debug_varnames  0 : { *(.debug_varnames) }
+-  /DISCARD/ : { *(.note.GNU-stack) }
++  /DISCARD/     :
++  {
++    *(.note.GNU-stack)
++    *(.note.gnu.property)
++  }
+ }
+diff --git a/mbr/x86_64/mbr.ld b/mbr/x86_64/mbr.ld
+index ae27d49..5b46db6 100644
+--- a/mbr/x86_64/mbr.ld
++++ b/mbr/x86_64/mbr.ld
+@@ -68,5 +68,9 @@ SECTIONS
+   .debug_funcnames 0 : { *(.debug_funcnames) }
+   .debug_typenames 0 : { *(.debug_typenames) }
+   .debug_varnames  0 : { *(.debug_varnames) }
+-  /DISCARD/ : { *(.note.GNU-stack) }
++  /DISCARD/     :
++  {
++    *(.note.GNU-stack)
++    *(.note.gnu.property)
++  }
+ }

Added: 0017-single-load-segment.patch
===================================================================
--- 0017-single-load-segment.patch                              (rev 0)
+++ 0017-single-load-segment.patch      2019-04-03 18:41:25 UTC (rev 349813)
@@ -0,0 +1,306 @@
+From: Lukas Schwaighofer <lu...@schwaighofer.name>
+Date: Sat, 18 Aug 2018 16:56:35 +0200
+Subject: 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..19c1647 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..a2c124f 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 = .;
+ 

Added: 0018-prevent-pow-optimization.patch
===================================================================
--- 0018-prevent-pow-optimization.patch                         (rev 0)
+++ 0018-prevent-pow-optimization.patch 2019-04-03 18:41:25 UTC (rev 349813)
@@ -0,0 +1,36 @@
+From: Lukas Schwaighofer <lu...@schwaighofer.name>
+Date: Tue, 26 Feb 2019 23:13:58 +0100
+Subject: Prevent optimizing the pow() function
+
+With the current GCC 8.2.0 from Debian, a section of code calling pow() in
+zzjson_parse.c is turned into a sequence calling exp(). Since no exp()
+implementation is available in syslinux those optimizations need to be
+disabled.
+---
+ com32/gpllib/zzjson/zzjson_parse.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/com32/gpllib/zzjson/zzjson_parse.c 
b/com32/gpllib/zzjson/zzjson_parse.c
+index ecb6f61..e66a9d8 100644
+--- a/com32/gpllib/zzjson/zzjson_parse.c
++++ b/com32/gpllib/zzjson/zzjson_parse.c
+@@ -138,6 +138,10 @@ static ZZJSON *parse_string2(ZZJSON_CONFIG *config) {
+     return zzjson;
+ }
+ 
++static double __attribute__((optimize("O0"))) pow_noopt(double x, double y) {
++      return pow(x, y);
++}
++
+ static ZZJSON *parse_number(ZZJSON_CONFIG *config) {
+     ZZJSON *zzjson;
+     unsigned long long ival = 0, expo = 0;
+@@ -213,7 +217,7 @@ skipexpo:
+     if (dbl) {
+         dval = sign * (long long) ival;
+         dval += sign * frac;
+-        dval *= pow(10.0, (double) signexpo * expo);
++        dval *= pow_noopt(10.0, (double) signexpo * expo);
+     }
+ 
+     zzjson = config->calloc(1, sizeof(ZZJSON));

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2019-04-03 18:39:36 UTC (rev 349812)
+++ PKGBUILD    2019-04-03 18:41:25 UTC (rev 349813)
@@ -4,9 +4,9 @@
 # Contributor: Keshav Amburay <(the ddoott ridikulus ddoott rat) (aatt) 
(gemmaeiil) (ddoott) (ccoomm)>
 
 pkgname=syslinux
-pkgver=6.04.pre3.r3.g05ac953c
+pkgver=6.04.pre2.r11.gbf6db5b4
 #_tag=syslinux-$pkgver
-_commit=05ac953c23f90b2328d393f7eecde96e41aed067
+_commit=bf6db5b4
 pkgrel=1
 pkgdesc='Collection of boot loaders that boot from FAT, ext2/3/4 and btrfs 
filesystems, from CDs and via PXE'
 url='http://www.syslinux.org/'
@@ -32,21 +32,24 @@
 source=(git+https://repo.or.cz/syslinux.git#commit=$_commit
         syslinux.cfg
         syslinux-install_update
-        strip_note_section.patch
-        single-load-segment.patch
-        prevent-pow-optimization.patch
+        0002-gfxboot-menu-label.patch
+        0005-gnu-efi-version-compatibility.patch
+        0017-single-load-segment.patch
+        0004-gnu-efi-from-arch.patch
+        0016-strip-gnu-property.patch
+        0018-prevent-pow-optimization.patch
 )
 sha1sums=('SKIP'
           '1145f454bd297d373ad123425f93620c3e92f585'
           'df5160a138ca8c6502d67fe1a64fec78b50e82c2'
-          '11d928087764ca286af0327d40230f219348568c'
-          '830c88005fb6c9e759f67b91ab33a10b002385de'
+          '69239fda4a3d5a247f0e48c5c683e0124c7d9201'
+          '1e0cd52252622f206d22e84f2a4d358508c902f4'
+          '81d05572b15dc5c55b63489fecdc79a6a332959c'
+          '4c3706e7a5620e450a6abb9238c08d7b39bb6945'
+          'f4a6768c7e5b8d02428ae550e37a7ca445ad1bb8'
           'c94622eaa14ad9512e4f43b13302ba35d1787cbc')
 
-_targets='bios efi32'
-case "$CARCH" in
-  x86_64) _targets+=' efi64' ;;
-esac
+_targets='bios efi64 efi32'
 
 pkgver() {
   cd syslinux
@@ -56,15 +59,15 @@
 prepare() {
   cd syslinux
 
-  # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=906414
-  patch -p1 < ../strip_note_section.patch
+  patch -p1 < ../0002-gfxboot-menu-label.patch
+  patch -p1 < ../0017-single-load-segment.patch
+  patch -p1 < ../0016-strip-gnu-property.patch
+  patch -p1 < ../0018-prevent-pow-optimization.patch
 
-  # https://bugs.archlinux.org/task/61059
-  patch -p1 < ../single-load-segment.patch
+  # TODO: use 'gnu-efi-libs' package instead of embedded sources
+  # patch -p1 < ../0004-gnu-efi-from-arch.patch
+  # patch -p1 < ../0005-gnu-efi-version-compatibility.patch
 
-  # https://bugs.archlinux.org/task/59987
-  patch -p1 < ../prevent-pow-optimization.patch
-
   # do not swallow efi compilation output to make debugging easier
   sed 's|> /dev/null 2>&1||' -i efi/check-gnu-efi.sh
 
@@ -79,13 +82,6 @@
   make PYTHON=python2 $_targets
 }
 
-check() {
-  cd syslinux
-  # tests fail to compile
-  # make unittest
-  true
-}
-
 package() {
   cd syslinux
   make $_targets install INSTALLROOT="$pkgdir" SBINDIR=/usr/bin 
MANDIR=/usr/share/man AUXDIR=/usr/lib/syslinux

Deleted: prevent-pow-optimization.patch
===================================================================
--- prevent-pow-optimization.patch      2019-04-03 18:39:36 UTC (rev 349812)
+++ prevent-pow-optimization.patch      2019-04-03 18:41:25 UTC (rev 349813)
@@ -1,36 +0,0 @@
-From: Lukas Schwaighofer <lu...@schwaighofer.name>
-Date: Tue, 26 Feb 2019 23:13:58 +0100
-Subject: Prevent optimizing the pow() function
-
-With the current GCC 8.2.0 from Debian, a section of code calling pow() in
-zzjson_parse.c is turned into a sequence calling exp(). Since no exp()
-implementation is available in syslinux those optimizations need to be
-disabled.
----
- com32/gpllib/zzjson/zzjson_parse.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/com32/gpllib/zzjson/zzjson_parse.c 
b/com32/gpllib/zzjson/zzjson_parse.c
-index ecb6f61..e66a9d8 100644
---- a/com32/gpllib/zzjson/zzjson_parse.c
-+++ b/com32/gpllib/zzjson/zzjson_parse.c
-@@ -138,6 +138,10 @@ static ZZJSON *parse_string2(ZZJSON_CONFIG *config) {
-     return zzjson;
- }
- 
-+static double __attribute__((optimize("O0"))) pow_noopt(double x, double y) {
-+      return pow(x, y);
-+}
-+
- static ZZJSON *parse_number(ZZJSON_CONFIG *config) {
-     ZZJSON *zzjson;
-     unsigned long long ival = 0, expo = 0;
-@@ -213,7 +217,7 @@ skipexpo:
-     if (dbl) {
-         dval = sign * (long long) ival;
-         dval += sign * frac;
--        dval *= pow(10.0, (double) signexpo * expo);
-+        dval *= pow_noopt(10.0, (double) signexpo * expo);
-     }
- 
-     zzjson = config->calloc(1, sizeof(ZZJSON));

Deleted: single-load-segment.patch
===================================================================
--- single-load-segment.patch   2019-04-03 18:39:36 UTC (rev 349812)
+++ single-load-segment.patch   2019-04-03 18:41:25 UTC (rev 349813)
@@ -1,304 +0,0 @@
-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 = .;
- 

Deleted: strip_note_section.patch
===================================================================
--- strip_note_section.patch    2019-04-03 18:39:36 UTC (rev 349812)
+++ strip_note_section.patch    2019-04-03 18:41:25 UTC (rev 349813)
@@ -1,29 +0,0 @@
-Author: Lukas Schwaighofer <lu...@schwaighofer.name>
-Description: Strip the .note.gnu.property section for the mbr. This section is
- added since binutils Debian version 2.31.1-2 and causes mbr.bin to grow in
- size beyond what can fit into the master boot record.
----
- mbr/i386/mbr.ld   | 1 +
- mbr/x86_64/mbr.ld | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/mbr/i386/mbr.ld b/mbr/i386/mbr.ld
-index d14ba80..5368346 100644
---- a/mbr/i386/mbr.ld
-+++ b/mbr/i386/mbr.ld
-@@ -70,4 +70,5 @@ SECTIONS
-   .debug_typenames 0 : { *(.debug_typenames) }
-   .debug_varnames  0 : { *(.debug_varnames) }
-   /DISCARD/ : { *(.note.GNU-stack) }
-+  /DISCARD/ : { *(.note.gnu.property) }
- }
-diff --git a/mbr/x86_64/mbr.ld b/mbr/x86_64/mbr.ld
-index ae27d49..b8c0d89 100644
---- a/mbr/x86_64/mbr.ld
-+++ b/mbr/x86_64/mbr.ld
-@@ -69,4 +69,5 @@ SECTIONS
-   .debug_typenames 0 : { *(.debug_typenames) }
-   .debug_varnames  0 : { *(.debug_varnames) }
-   /DISCARD/ : { *(.note.GNU-stack) }
-+  /DISCARD/ : { *(.note.gnu.property) }
- }

Reply via email to