26cb0c3960
* gnu/packages/patches/syslinux-gcc10.patch: New file. * gnu/packages/patches/syslinux-strip-gnu-property.patch: New file. * gnu/local.mk (DIST_PATCH_DATA): Add them. * gnu/packages/bootloaders.scm (syslinux)[source]: Use them. [arguments]: Only strip debug symbols.
87 lines
No EOL
2.9 KiB
Diff
87 lines
No EOL
2.9 KiB
Diff
Taken from Gentoo and adapted to fix the build using GCC 10. See:
|
|
https://bugs.gentoo.org/705730.
|
|
|
|
--- a/mk/com32.mk
|
|
+++ b/mk/com32.mk
|
|
@@ -47,6 +47,7 @@ GCCOPT += $(call gcc_ok,-falign-functions=0,-malign-functions=0)
|
|
GCCOPT += $(call gcc_ok,-falign-jumps=0,-malign-jumps=0)
|
|
GCCOPT += $(call gcc_ok,-falign-labels=0,-malign-labels=0)
|
|
GCCOPT += $(call gcc_ok,-falign-loops=0,-malign-loops=0)
|
|
+GCCOPT += $(call gcc_ok,-fcommon)
|
|
|
|
ifeq ($(FWCLASS),EFI)
|
|
GCCOPT += -mno-red-zone
|
|
--- a/mk/elf.mk
|
|
+++ b/mk/elf.mk
|
|
@@ -42,6 +42,7 @@ GCCOPT += $(call gcc_ok,-falign-functions=0,-malign-functions=0)
|
|
GCCOPT += $(call gcc_ok,-falign-jumps=0,-malign-jumps=0)
|
|
GCCOPT += $(call gcc_ok,-falign-labels=0,-malign-labels=0)
|
|
GCCOPT += $(call gcc_ok,-falign-loops=0,-malign-loops=0)
|
|
+GCCOPT += $(call gcc_ok,-fcommon)
|
|
|
|
com32 = $(topdir)/com32
|
|
core = $(topdir)/core
|
|
--- a/mk/embedded.mk
|
|
+++ b/mk/embedded.mk
|
|
@@ -51,6 +51,7 @@ GCCOPT += $(call gcc_ok,-falign-jumps=0,-malign-jumps=0)
|
|
GCCOPT += $(call gcc_ok,-falign-labels=0,-malign-labels=0)
|
|
GCCOPT += $(call gcc_ok,-falign-loops=0,-malign-loops=0)
|
|
GCCOPT += $(call gcc_ok,-fvisibility=hidden)
|
|
+GCCOPT += $(call gcc_ok,-fcommon)
|
|
|
|
LIBGCC := $(shell $(CC) $(GCCOPT) --print-libgcc)
|
|
|
|
--- a/mk/lib.mk
|
|
+++ b/mk/lib.mk
|
|
@@ -28,6 +28,7 @@ GCCOPT += $(call gcc_ok,-falign-functions=0,-malign-functions=0)
|
|
GCCOPT += $(call gcc_ok,-falign-jumps=0,-malign-jumps=0)
|
|
GCCOPT += $(call gcc_ok,-falign-labels=0,-malign-labels=0)
|
|
GCCOPT += $(call gcc_ok,-falign-loops=0,-malign-loops=0)
|
|
+GCCOPT += $(call gcc_ok,-fcommon)
|
|
|
|
INCLUDE = -I$(SRC)
|
|
STRIP = strip --strip-all -R .comment -R .note
|
|
--- a/mk/efi.mk
|
|
+++ b/mk/efi.mk
|
|
@@ -7,7 +7,7 @@ core = $(topdir)/core
|
|
# Set up architecture specifics; for cross compilation, set ARCH as apt
|
|
# 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,-fno-stack-protector,) $(call gcc_ok,-fcommon)
|
|
EFIINC = $(objdir)/include/efi
|
|
LIBDIR = $(objdir)/lib
|
|
|
|
diff --git a/dos/string.h b/dos/string.h
|
|
index f648de2..a502132 100644
|
|
--- a/dos/string.h
|
|
+++ b/dos/string.h
|
|
@@ -5,12 +5,13 @@
|
|
#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)
|
|
|
|
/* This only returns true or false */
|
|
static inline int memcmp(const void *__m1, const void *__m2, unsigned int __n)
|
|
@@ -21,6 +22,13 @@ 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 */
|