Группа :: Система/Основа
Пакет: extlinux
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: 0019-GCC-10-compatibility.patch
Скачать
Скачать
From 5603e89ed85314362b667b1a4ba89461dee3455a Mon Sep 17 00:00:00 2001
From: Alexey Gladkov <legion@altlinux.org>
Date: Tue, 15 Dec 2020 20:49:33 +0300
Subject: [PATCH] GCC-10 compatibility
Signed-off-by: Alexey Gladkov <legion@altlinux.org>
---
dos/string.h | 11 ++++++++++-
mk/efi.mk | 1 +
mk/elf.mk | 1 +
mk/embedded.mk | 1 +
mk/lib.mk | 1 +
5 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/dos/string.h b/dos/string.h
index f648de2d..b46cc61d 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 f097ad22..2dce19a4 100644
--- a/mk/efi.mk
+++ b/mk/efi.mk
@@ -8,6 +8,7 @@ core = $(topdir)/core
# gnuefi sets up architecture specifics in ia32 or x86_64 sub directories
# set up the LIBDIR and EFIINC for building for the appropriate architecture
GCCOPT := $(call gcc_ok,-fno-stack-protector,)
+GCCOPT += $(call gcc_ok,-fcommon,)
EFIINC = $(objdir)/include/efi
LIBDIR = $(objdir)/lib
diff --git a/mk/elf.mk b/mk/elf.mk
index b46dbd06..a7951ea1 100644
--- a/mk/elf.mk
+++ b/mk/elf.mk
@@ -31,6 +31,7 @@ ifeq ($(ARCH),x86_64)
endif
GCCOPT += -Os -fomit-frame-pointer
GCCOPT += $(call gcc_ok,-fno-stack-protector,)
+GCCOPT += $(call gcc_ok,-fcommon,)
GCCOPT += $(call gcc_ok,-fwrapv,)
GCCOPT += $(call gcc_ok,-freg-struct-return,)
GCCOPT += $(call gcc_ok,-fno-exceptions,)
diff --git a/mk/embedded.mk b/mk/embedded.mk
index 488dc0fc..4c18d716 100644
--- a/mk/embedded.mk
+++ b/mk/embedded.mk
@@ -36,6 +36,7 @@ ifeq ($(ARCH),x86_64)
endif
GCCOPT += $(call gcc_ok,-ffreestanding,)
GCCOPT += $(call gcc_ok,-fno-stack-protector,)
+GCCOPT += $(call gcc_ok,-fcommon,)
GCCOPT += $(call gcc_ok,-fwrapv,)
GCCOPT += $(call gcc_ok,-freg-struct-return,)
ifeq ($(FWCLASS),EFI)
diff --git a/mk/lib.mk b/mk/lib.mk
index f8591e56..5dd2330f 100644
--- a/mk/lib.mk
+++ b/mk/lib.mk
@@ -16,6 +16,7 @@ ifeq ($(ARCH),x86_64)
MARCH = x86-64
endif
GCCOPT += $(call gcc_ok,-fno-stack-protector,)
+GCCOPT += $(call gcc_ok,-fcommon,)
GCCOPT += $(call gcc_ok,-fwrapv,)
GCCOPT += $(call gcc_ok,-freg-struct-return,)
# Note -fPIE does not work with ld on x86_64, try -fPIC instead
--
2.25.4