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 + /* 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 *//> Previously it would try to access the real elpa.gnu.org. This would succeed when network is available because "taxy-magit-section" is an existing package. * guix/import/elpa.scm (elpa-repository) (package-from-elpa-repository?): Recognize 'gnu/http. * tests/elpa.scm ("package-latest-release"): Use 'http' instead of 'https'. Change "taxy-magit-section" to "fake-taxy-magit-section". 2023-05-31tests: Use quasiquoted 'match' patterns for package sexps.Ludovic Courtès Turns out it's easier to read. * tests/cpan.scm ("cpan->guix-package"): Use a quasiquoted pattern. * tests/elpa.scm (eval-test-with-elpa): Likewise. * tests/gem.scm ("gem->guix-package") ("gem->guix-package with a specific version") ("gem-recursive-import") ("gem-recursive-import with a specific version"): Likewise. * tests/hexpm.scm ("hexpm-recursive-import"): Likewise. * tests/opam.scm ("opam->guix-package"): Likewise. * tests/pypi.scm ("pypi->guix-package, no wheel") ("pypi->guix-package, wheels") ("pypi->guix-package, no usable requirement file.") ("pypi->guix-package, package name contains \"-\" followed by digits"): Likewise. * tests/texlive.scm ("texlive->guix-package"): Likewise. 2023-05-31import: elpa: Updater provides input list.Ludovic Courtès * guix/import/elpa.scm (elpa-dependency->upstream-input): New procedure. (latest-release): Add 'inputs' field. * tests/elpa.scm ("package-latest-release"): New test. 2021-12-18import: elpa: Support ‘upstream-name’ property.Xinglu Chen * guix/import/elpa.scm: (guix-package->elpa-name): New procedure. (latest-release): Use it. * tests/elpa.scm ("guix-package->elpa-name: without 'upstream-name' property") ("guix-package->elpa-name: with 'upstream-name' property"): Test it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>