commit 2a3ac018044f24eb37e32d5296b4fa9a37cdd4ff
Author: Arkadiusz Miśkiewicz <[email protected]>
Date:   Tue Jan 28 15:26:29 2020 +0100

    - re; 2; add patches from debian

 0005-gnu-efi-version-compatibility.patch |  41 +++++
 0016-strip-gnu-property.patch            |  43 +++++
 0017-single-load-segment.patch           | 306 +++++++++++++++++++++++++++++++
 0018-prevent-pow-optimization.patch      |  36 ++++
 syslinux.spec                            |  13 +-
 5 files changed, 438 insertions(+), 1 deletion(-)
---
diff --git a/syslinux.spec b/syslinux.spec
index 9046d48..04b976f 100644
--- a/syslinux.spec
+++ b/syslinux.spec
@@ -16,14 +16,20 @@ Summary(pt_BR.UTF-8):       Carregador de boot simples
 Summary(zh_CN.UTF-8):  Linux操作系统的启动管理器
 Name:          syslinux
 Version:       6.04
-Release:       1
+Release:       2
 License:       GPL v2+
 Group:         Applications/System
 # Source0:     
https://www.kernel.org/pub/linux/utils/boot/syslinux/%{name}-%{version}.tar.xz
 Source0:       
https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/Testing/6.04/syslinux-6.04-pre1.tar.xz
 # Source0-md5: f9c956fde0de29be297402ecbc8ff4d0
+# FC:
 Patch0:                0002-ext4-64bit-feature.patch
 Patch1:                0003-include-sysmacros-h.patch
+# Debian:
+Patch10:       0005-gnu-efi-version-compatibility.patch
+Patch11:       0016-strip-gnu-property.patch
+Patch12:       0017-single-load-segment.patch
+Patch13:       0018-prevent-pow-optimization.patch
 URL:           http://syslinux.zytor.com/
 BuildRequires: gnu-efi >= 3.0u
 BuildRequires: libuuid-devel
@@ -97,6 +103,11 @@ jeśli chcemy tworzyć lub kompilować własnych klientów 
syslinuksa.
 %patch0 -p1
 %patch1 -p1
 
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+
 %{__sed} -i 's/-march=i386//' sample/Makefile
 
 %build
diff --git a/0005-gnu-efi-version-compatibility.patch 
b/0005-gnu-efi-version-compatibility.patch
new file mode 100644
index 0000000..fda0937
--- /dev/null
+++ b/0005-gnu-efi-version-compatibility.patch
@@ -0,0 +1,41 @@
+From: Lukas Schwaighofer <[email protected]>
+Date: Mon, 6 May 2019 00:43:10 +0200
+Subject: Strip memtest and memcpy from libefi
+
+Repack libefi.a to not contain the memset and memcpy symbols to make sure the
+implementation from syslinux is used and no multiple symbol definitions are
+present.
+---
+ efi/Makefile | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/efi/Makefile b/efi/Makefile
+index f4501e7..adae73f 100644
+--- a/efi/Makefile
++++ b/efi/Makefile
+@@ -43,8 +43,10 @@ CORE_OBJS += $(addprefix $(OBJ)/../core/, \
+       fs/pxe/pxe.o fs/pxe/tftp.o fs/pxe/urlparse.o fs/pxe/dhcp_option.o \
+       fs/pxe/ftp.o fs/pxe/ftp_readdir.o fs/pxe/http.o fs/pxe/http_readdir.o)
+ 
++LIBEFI_STRIPPED = $(objdir)/libefi_stripped.a
++
+ LIB_OBJS = $(addprefix $(objdir)/com32/lib/,$(CORELIBOBJS)) \
+-      $(LIBEFI)
++      $(LIBEFI_STRIPPED)
+ 
+ CSRC = $(sort $(wildcard $(SRC)/*.c))
+ OBJS = $(subst $(SRC)/,,$(filter-out %wrapper.o, $(patsubst %.c,%.o,$(CSRC))))
+@@ -73,6 +75,13 @@ BTARGET  = syslinux.efi
+ syslinux.so: $(OBJS) $(CORE_OBJS) $(LIB_OBJS)
+       $(LD) $(LDFLAGS) --strip-debug -o $@ $^ -lgnuefi -lefi
+ 
++$(LIBEFI_STRIPPED): $(LIBEFI)
++      cp $(LIBEFI) $(LIBEFI_STRIPPED)
++      ar x $(LIBEFI_STRIPPED) init.o
++      strip -N memset -N memcpy init.o
++      ar r $(LIBEFI_STRIPPED) init.o
++      rm init.o
++
+ # We need to rename the .hash section because the EFI firmware
+ # linker really doesn't like it.
+ # $(OBJCOPY) --rename-section .gnu.hash=.sdata,load,data,alloc $^ $@
diff --git a/0016-strip-gnu-property.patch b/0016-strip-gnu-property.patch
new file mode 100644
index 0000000..69656f9
--- /dev/null
+++ b/0016-strip-gnu-property.patch
@@ -0,0 +1,43 @@
+From: Lukas Schwaighofer <[email protected]>
+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)
++  }
+ }
diff --git a/0017-single-load-segment.patch b/0017-single-load-segment.patch
new file mode 100644
index 0000000..7fd53b1
--- /dev/null
+++ b/0017-single-load-segment.patch
@@ -0,0 +1,306 @@
+From: Lukas Schwaighofer <[email protected]>
+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 = .;
+ 
diff --git a/0018-prevent-pow-optimization.patch 
b/0018-prevent-pow-optimization.patch
new file mode 100644
index 0000000..0c42c7b
--- /dev/null
+++ b/0018-prevent-pow-optimization.patch
@@ -0,0 +1,36 @@
+From: Lukas Schwaighofer <[email protected]>
+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));
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/syslinux.git/commitdiff/2a3ac018044f24eb37e32d5296b4fa9a37cdd4ff

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to