diff --git a/syslinux-4.04-gcc10.diff b/syslinux-4.04-gcc10.diff new file mode 100644 index 0000000..5155ef9 --- /dev/null +++ b/syslinux-4.04-gcc10.diff @@ -0,0 +1,88 @@ +--- com32/MCONFIG 2011-04-18 23:24:17.000000000 +0200 ++++ com32/MCONFIG 2020-03-18 17:05:57.507347671 +0100 +@@ -18,6 +18,7 @@ + include $(topdir)/MCONFIG + + GCCOPT := $(call gcc_ok,-std=gnu99,) ++GCCOPT += $(call gcc_ok,-fcommon,) + GCCOPT += $(call gcc_ok,-m32,) + GCCOPT += $(call gcc_ok,-fno-stack-protector,) + GCCOPT += $(call gcc_ok,-fwrapv,) +--- com32/lib/MCONFIG 2011-04-18 23:24:17.000000000 +0200 ++++ com32/lib/MCONFIG 2020-03-18 17:07:39.960337684 +0100 +@@ -3,6 +3,7 @@ + include $(topdir)/MCONFIG + + GCCOPT := $(call gcc_ok,-std=gnu99,) ++GCCOPT += $(call gcc_ok,-fcommon,) + GCCOPT += $(call gcc_ok,-m32,) + GCCOPT += $(call gcc_ok,-fno-stack-protector,) + GCCOPT += $(call gcc_ok,-fwrapv,) +--- dos/errno.h 2011-04-18 23:24:17.000000000 +0200 ++++ dos/errno.h 2020-03-18 17:12:17.359044057 +0100 +@@ -36,7 +36,7 @@ + #define EDOM 33 /* Math argument out of domain of func */ + #define ERANGE 34 /* Math result not representable */ + +-int errno; ++int errno __attribute__ ((common)); + void perror(const char *); + + #endif /* ERRNO_H */ +--- gpxe/src/core/exec.c 2011-04-18 23:24:17.000000000 +0200 ++++ gpxe/src/core/exec.c 2020-03-18 16:56:52.257888015 +0100 +@@ -38,8 +38,8 @@ + */ + + /* Avoid dragging in getopt.o unless a command really uses it */ +-int optind; +-int nextchar; ++extern int optind; ++extern int nextchar; + + /** + * Execute command +--- gpxe/src/include/compiler.h 2011-04-18 23:24:17.000000000 +0200 ++++ gpxe/src/include/compiler.h 2020-03-18 16:48:56.193236495 +0100 +@@ -64,7 +64,7 @@ + .comm _sym, 0 + #else /* ASSEMBLY */ + #define PROVIDE_SYMBOL( _sym ) \ +- char _sym[0] ++ char _sym[0] __attribute__ ((common)) + #endif /* ASSEMBLY */ + + /** Require a symbol within this object file +--- dos/string.h 2020-03-18 17:25:50.019155261 +0100 ++++ dos/string.h 2020-03-19 15:10:36.310787373 +0100 +@@ -5,12 +5,13 @@ + #ifndef _STRING_H + #define _STRING_H + ++#include ++ + /* 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) + + /* This only returns true or false */ + static inline int memcmp(const void *__m1, const void *__m2, unsigned int __n) +@@ -21,6 +22,15 @@ + return rv; + } + ++static inline size_t strlen(const char *s) ++{ ++ size_t len = 0; ++ ++ while(*s++) len++; ++ ++ return len; ++} ++ + extern char *strchr(const char *s, int c); + + #endif /* _STRING_H */ diff --git a/syslinux.changes b/syslinux.changes index e2aece8..f7b6258 100644 --- a/syslinux.changes +++ b/syslinux.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Mar 19 14:24:57 UTC 2020 - Steffen Winterfeldt + +- syslinux-4.04-gcc10.diff: fix gcc10 related issues (bsc#1166605) + * -fno-common is now the default + * provide missing strlen() implementation + ------------------------------------------------------------------- Mon Feb 18 13:53:18 UTC 2019 - snwint@suse.com diff --git a/syslinux.spec b/syslinux.spec index a32e147..61ca748 100644 --- a/syslinux.spec +++ b/syslinux.spec @@ -1,7 +1,7 @@ # # spec file for package syslinux # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -62,6 +62,7 @@ Patch20: %{name}-%{version}-python3.diff Patch21: sysmacros.patch Patch22: remove-note-gnu-section.patch Patch23: %{name}-%{version}-lzo.diff +Patch24: %{name}-%{version}-gcc10.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -101,6 +102,7 @@ Authors: %patch21 -p1 %patch22 -p1 %patch23 -p0 +%patch24 -p0 %build cp %{SOURCE2} .