File syslinux-4.04-gcc10.patch of Package syslinux

Index: syslinux-4.04/com32/MCONFIG
===================================================================
--- syslinux-4.04.orig/com32/MCONFIG
+++ syslinux-4.04/com32/MCONFIG
@@ -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,)
Index: syslinux-4.04/com32/lib/MCONFIG
===================================================================
--- syslinux-4.04.orig/com32/lib/MCONFIG
+++ syslinux-4.04/com32/lib/MCONFIG
@@ -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,)
Index: syslinux-4.04/dos/errno.h
===================================================================
--- syslinux-4.04.orig/dos/errno.h
+++ syslinux-4.04/dos/errno.h
@@ -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 */
Index: syslinux-4.04/gpxe/src/core/exec.c
===================================================================
--- syslinux-4.04.orig/gpxe/src/core/exec.c
+++ syslinux-4.04/gpxe/src/core/exec.c
@@ -38,8 +38,8 @@ FILE_LICENCE ( GPL2_OR_LATER );
  */
 
 /* Avoid dragging in getopt.o unless a command really uses it */
-int optind;
-int nextchar;
+extern int optind;
+extern int nextchar;
 
 /**
  * Execute command
Index: syslinux-4.04/gpxe/src/include/compiler.h
===================================================================
--- syslinux-4.04.orig/gpxe/src/include/compiler.h
+++ syslinux-4.04/gpxe/src/include/compiler.h
@@ -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
Index: syslinux-4.04/dos/string.h
===================================================================
--- syslinux-4.04.orig/dos/string.h
+++ syslinux-4.04/dos/string.h
@@ -5,12 +5,13 @@
 #ifndef _STRING_H
 #define _STRING_H
 
+#include <stdlib.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)
 
 /* This only returns true or false */
 static inline int memcmp(const void *__m1, const void *__m2, unsigned int __n)
@@ -21,6 +22,15 @@ static inline int memcmp(const void *__m
     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 */
openSUSE Build Service is sponsored by