syslinux: fix build on gcc10
This commit is contained in:
parent
97a279c71d
commit
68a4db3446
3 changed files with 35 additions and 3 deletions
|
@ -47,6 +47,7 @@ stdenv.mkDerivation {
|
||||||
url = mkURL "26f0e7b2" "0018-prevent-pow-optimization.patch";
|
url = mkURL "26f0e7b2" "0018-prevent-pow-optimization.patch";
|
||||||
sha256 = "1c8g0jz5yj9a0rsmryx9vdjsw4hw8mjfcg05c9pmyjg85w3dfp3m";
|
sha256 = "1c8g0jz5yj9a0rsmryx9vdjsw4hw8mjfcg05c9pmyjg85w3dfp3m";
|
||||||
})
|
})
|
||||||
|
./gcc10.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
|
33
pkgs/os-specific/linux/syslinux/gcc10.patch
Normal file
33
pkgs/os-specific/linux/syslinux/gcc10.patch
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
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 */
|
|
@ -19326,9 +19326,7 @@ in
|
||||||
|
|
||||||
sysklogd = callPackage ../os-specific/linux/sysklogd { };
|
sysklogd = callPackage ../os-specific/linux/sysklogd { };
|
||||||
|
|
||||||
syslinux = callPackage ../os-specific/linux/syslinux {
|
syslinux = callPackage ../os-specific/linux/syslinux { };
|
||||||
stdenv = gcc9Stdenv; # Fails with "undefined reference to `strlen'" on gcc10
|
|
||||||
};
|
|
||||||
|
|
||||||
sysstat = callPackage ../os-specific/linux/sysstat { };
|
sysstat = callPackage ../os-specific/linux/sysstat { };
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue