[packages/syslinux] - added gcc >= 10 fix from Debian
hawk
hawk at pld-linux.org
Thu Apr 25 20:24:55 CEST 2024
commit af1b46dbe59c2fce6ecfde708ae94ee0780bb894
Author: Marcin Krol <hawk at tld-linux.org>
Date: Thu Apr 25 20:07:56 2024 +0200
- added gcc >= 10 fix from Debian
0005-gnu-efi-version-compatibility.patch | 13 ++---
0019-gcc-10-compatibility.patch | 95 ++++++++++++++++++++++++++++++++
syslinux.spec | 4 +-
3 files changed, 104 insertions(+), 8 deletions(-)
---
diff --git a/syslinux.spec b/syslinux.spec
index 04b976f..0399b27 100644
--- a/syslinux.spec
+++ b/syslinux.spec
@@ -16,7 +16,7 @@ Summary(pt_BR.UTF-8): Carregador de boot simples
Summary(zh_CN.UTF-8): Linux操作系统的启动管理器
Name: syslinux
Version: 6.04
-Release: 2
+Release: 3
License: GPL v2+
Group: Applications/System
# Source0: https://www.kernel.org/pub/linux/utils/boot/syslinux/%{name}-%{version}.tar.xz
@@ -30,6 +30,7 @@ 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
+Patch14: 0019-gcc-10-compatibility.patch
URL: http://syslinux.zytor.com/
BuildRequires: gnu-efi >= 3.0u
BuildRequires: libuuid-devel
@@ -107,6 +108,7 @@ jeśli chcemy tworzyć lub kompilować własnych klientów syslinuksa.
%patch11 -p1
%patch12 -p1
%patch13 -p1
+%patch14 -p1
%{__sed} -i 's/-march=i386//' sample/Makefile
diff --git a/0005-gnu-efi-version-compatibility.patch b/0005-gnu-efi-version-compatibility.patch
index fda0937..aa4c319 100644
--- a/0005-gnu-efi-version-compatibility.patch
+++ b/0005-gnu-efi-version-compatibility.patch
@@ -9,11 +9,10 @@ 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/, \
+diff -urNp -x '*.orig' syslinux-6.04-pre1.org/efi/Makefile syslinux-6.04-pre1/efi/Makefile
+--- syslinux-6.04-pre1.org/efi/Makefile 2016-03-02 06:06:02.000000000 +0100
++++ syslinux-6.04-pre1/efi/Makefile 2024-04-25 20:04:18.449147821 +0200
+@@ -41,8 +41,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)
@@ -23,9 +22,9 @@ index f4501e7..adae73f 100644
- $(LIBEFI)
+ $(LIBEFI_STRIPPED)
- CSRC = $(sort $(wildcard $(SRC)/*.c))
+ CSRC = $(wildcard $(SRC)/*.c)
OBJS = $(subst $(SRC)/,,$(filter-out %wrapper.o, $(patsubst %.c,%.o,$(CSRC))))
-@@ -73,6 +75,13 @@ BTARGET = syslinux.efi
+@@ -71,6 +73,13 @@ BTARGET = syslinux.efi
syslinux.so: $(OBJS) $(CORE_OBJS) $(LIB_OBJS)
$(LD) $(LDFLAGS) --strip-debug -o $@ $^ -lgnuefi -lefi
diff --git a/0019-gcc-10-compatibility.patch b/0019-gcc-10-compatibility.patch
new file mode 100644
index 0000000..105a88b
--- /dev/null
+++ b/0019-gcc-10-compatibility.patch
@@ -0,0 +1,95 @@
+From: Lukas Schwaighofer <lukas at schwaighofer.name>
+Date: Sun, 16 Aug 2020 15:23:21 +0200
+Subject: GCC-10 compatibility patch
+
+* Add `-fcommon` to most gcc invocations to allow duplicate definitions
+* __builtin_strlen is not really a "builtin" an implementation still
+ needs to be provided (source:
+ https://bugzilla.suse.com/show_bug.cgi?id=1166605#c5). Work around the
+ issue by supplying an inline function. The strlen function added to
+ dos/string.h was copied from com32/lib/strlen.c.
+---
+ dos/string.h | 11 ++++++++++-
+ mk/efi.mk | 1 +
+ mk/elf.mk | 1 +
+ mk/embedded.mk | 2 +-
+ mk/lib.mk | 2 +-
+ 5 files changed, 14 insertions(+), 3 deletions(-)
+
+diff --git a/dos/string.h b/dos/string.h
+index f648de2..c4649f5 100644
+--- a/dos/string.h
++++ b/dos/string.h
+@@ -5,12 +5,21 @@
+ #ifndef _STRING_H
+ #define _STRING_H
+
++#include <stddef.h>
++
+ /* Standard routines */
+ #define memcpy(a,b,c) __builtin_memcpy(a,b,c)
+ #define memmove(a,b,c) __builtin_memmove(a,b,c)
+ #define memset(a,b,c) __builtin_memset(a,b,c)
+ #define strcpy(a,b) __builtin_strcpy(a,b)
+-#define strlen(a) __builtin_strlen(a)
++
++static inline size_t strlen(const char *s)
++{
++ const char *ss = s;
++ while (*ss)
++ ss++;
++ return ss - s;
++}
+
+ /* This only returns true or false */
+ static inline int memcmp(const void *__m1, const void *__m2, unsigned int __n)
+diff --git a/mk/efi.mk b/mk/efi.mk
+index dc2b708..f1399e5 100644
+--- a/mk/efi.mk
++++ b/mk/efi.mk
+@@ -32,6 +32,7 @@ FORMAT=efi-app-$(EFI_SUBARCH)
+
+ CFLAGS = -I$(EFIINC) -I$(EFIINC)/$(EFI_SUBARCH) \
+ -DEFI_FUNCTION_WRAPPER -fPIC -fshort-wchar -ffreestanding \
++ -fcommon \
+ -Wall -I$(com32)/include -I$(com32)/include/sys \
+ -I$(core)/include -I$(core)/ $(ARCHOPT) \
+ -I$(com32)/lib/ -I$(com32)/libutil/include -std=gnu99 \
+diff --git a/mk/elf.mk b/mk/elf.mk
+index b46dbd0..dc265ce 100644
+--- a/mk/elf.mk
++++ b/mk/elf.mk
+@@ -55,6 +55,7 @@ GPLINCLUDE =
+ endif
+
+ CFLAGS = $(GCCOPT) $(GCCWARN) -W -Wall \
++ -fcommon \
+ -fomit-frame-pointer -D__COM32__ -D__FIRMWARE_$(FIRMWARE)__ -DDYNAMIC_MODULE \
+ -nostdinc -iwithprefix include \
+ -I$(com32)/libutil/include -I$(com32)/include \
+diff --git a/mk/embedded.mk b/mk/embedded.mk
+index 488dc0f..fae13e2 100644
+--- a/mk/embedded.mk
++++ b/mk/embedded.mk
+@@ -57,7 +57,7 @@ LIBGCC := $(shell $(CC) $(GCCOPT) --print-libgcc)
+ LD += -m elf_$(ARCH)
+
+ # Note: use += for CFLAGS and SFLAGS in case something is set in MCONFIG.local
+-CFLAGS += $(GCCOPT) -g $(GCCWARN) -Wno-sign-compare $(OPTFLAGS) $(INCLUDES)
++CFLAGS += $(GCCOPT) -g $(GCCWARN) -Wno-sign-compare -fcommon $(OPTFLAGS) $(INCLUDES)
+ SFLAGS += $(CFLAGS) -D__ASSEMBLY__
+
+ .SUFFIXES: .c .o .S .s .i .elf .com .bin .asm .lst .c32 .lss
+diff --git a/mk/lib.mk b/mk/lib.mk
+index f3fb07c..2ffea2d 100644
+--- a/mk/lib.mk
++++ b/mk/lib.mk
+@@ -49,7 +49,7 @@ OPTFLAGS = -Os -march=$(MARCH) -falign-functions=0 -falign-jumps=0 \
+ -falign-labels=0 -ffast-math -fomit-frame-pointer
+ WARNFLAGS = $(GCCWARN) -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Winline
+
+-CFLAGS = $(OPTFLAGS) $(REQFLAGS) $(WARNFLAGS) $(LIBFLAGS)
++CFLAGS = $(OPTFLAGS) $(REQFLAGS) -fcommon $(WARNFLAGS) $(LIBFLAGS)
+
+ ifeq ($(FWCLASS),EFI)
+ CFLAGS += -mno-red-zone
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/syslinux.git/commitdiff/af1b46dbe59c2fce6ecfde708ae94ee0780bb894
More information about the pld-cvs-commit
mailing list