Package sources for project devel:languages:perl are received through scmsync. This is not supported by the OBS frontend

File 0015-Fix-gcc10-related-issues-bsc-1166605.patch of Package syslinux

From 4622e992240afaaceca4d4db6dc93f92c7b5c2d7 Mon Sep 17 00:00:00 2001
From: Steffen Winterfeldt <snwint@suse.com>
Date: Thu, 19 Mar 2020 14:24:57 +0000
Subject: [PATCH 15/22] Fix gcc10 related issues (bsc#1166605)

 * -fno-common is now the default
 * provide missing strlen() implementation
---
 core/include/core_pxe.h |  2 +-
 dos/errno.h             |  2 +-
 dos/string.h            | 12 +++++++++++-
 mk/elf.mk               |  1 +
 mk/embedded.mk          |  1 +
 mk/lib.mk               |  1 +
 6 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/core/include/core_pxe.h b/core/include/core_pxe.h
index 19664f9b..62355100 100644
--- a/core/include/core_pxe.h
+++ b/core/include/core_pxe.h
@@ -265,7 +265,7 @@ void ftp_open(struct url_info *url, int flags, struct inode *inode,
 int ftp_readdir(struct inode *inode, struct dirent *dirent);
 
 /* tcp.c */
-const struct pxe_conn_ops tcp_conn_ops;
+const struct pxe_conn_ops tcp_conn_ops __attribute__ ((common));
 
 extern void gpxe_init(void);
 extern int pxe_init(bool quiet);
diff --git a/dos/errno.h b/dos/errno.h
index da733bfa..3e4c6371 100644
--- a/dos/errno.h
+++ b/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 */
diff --git a/dos/string.h b/dos/string.h
index f648de2d..360c4409 100644
--- a/dos/string.h
+++ b/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 *__m1, const void *__m2, unsigned int __n)
     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/mk/elf.mk b/mk/elf.mk
index b46dbd06..27a5542d 100644
--- a/mk/elf.mk
+++ b/mk/elf.mk
@@ -19,6 +19,7 @@ include $(MAKEDIR)/syslinux.mk
 # Support IA32 and x86_64 platforms with one build
 # Set up architecture specifics; for cross compilation, set ARCH as apt
 GCCOPT := $(call gcc_ok,-std=gnu99,)
+GCCOPT := $(call gcc_ok,-fcommon,)
 ifeq ($(ARCH),i386)
 	GCCOPT += $(call gcc_ok,-m32,)
 	GCCOPT += $(call gcc_ok,-march=i386)
diff --git a/mk/embedded.mk b/mk/embedded.mk
index 488dc0fc..2da2e0cc 100644
--- a/mk/embedded.mk
+++ b/mk/embedded.mk
@@ -21,6 +21,7 @@ include $(MAKEDIR)/syslinux.mk
 # Initialize GCCOPT to null to begin with. Without this, make generates
 # recursive error for GCCOPT
 GCCOPT :=
+GCCOPT    += $(call gcc_ok,-fcommon,)
 ifeq ($(ARCH),i386)
 	GCCOPT := $(call gcc_ok,-m32)
 	GCCOPT += $(call gcc_ok,-march=i386)
diff --git a/mk/lib.mk b/mk/lib.mk
index f8591e56..07ec8728 100644
--- a/mk/lib.mk
+++ b/mk/lib.mk
@@ -5,6 +5,7 @@ include $(MAKEDIR)/syslinux.mk
 # Support IA32 and x86_64 platforms with one build
 # Set up architecture specifics; for cross compilation, set ARCH as apt
 GCCOPT := $(call gcc_ok,-std=gnu99,)
+GCCOPT += $(call gcc_ok,-fcommon,)
 ifeq ($(ARCH),i386)
 	GCCOPT += $(call gcc_ok,-m32,)
 	GCCOPT += $(call gcc_ok,-mpreferred-stack-boundary=2,)
-- 
2.42.0

openSUSE Build Service is sponsored by