glibc: use local copy of patch to fix w/musl

fetchpatch doesn't work with bootstrap fetchurl,
so just use local file like we do for other glibc patches.
This commit is contained in:
Will Dietz 2018-04-22 22:02:38 -05:00
parent 3f42a6eb84
commit c3ab285ce2
2 changed files with 39 additions and 6 deletions

View file

@ -95,12 +95,7 @@ stdenv.mkDerivation ({
./allow-kernel-2.6.32.patch
]
++ lib.optional stdenv.isx86_64 ./fix-x64-abi.patch
++ lib.optional stdenv.hostPlatform.isMusl
(fetchpatch {
name = "fix-with-musl.patch";
url = "https://sourceware.org/bugzilla/attachment.cgi?id=10151&action=diff&collapsed=&headers=1&format=raw";
sha256 = "18kk534k6da5bkbsy1ivbi77iin76lsna168mfcbwv4ik5vpziq2";
});
++ lib.optional stdenv.hostPlatform.isMusl ./fix-rpc-types-musl-conflicts.patch;
postPatch =
''

View file

@ -0,0 +1,38 @@
@@ -, +, @@
---
sunrpc/rpc/types.h | 22 ++++++----------------
1 file changed, 6 insertions(+), 16 deletions(-)
--- a/sunrpc/rpc/types.h
+++ a/sunrpc/rpc/types.h
@@ -69,24 +69,14 @@ typedef unsigned long rpcport_t;
#include <sys/types.h>
#endif
-#if defined __APPLE_CC__ || defined __FreeBSD__
-# define __u_char_defined
-# define __daddr_t_defined
-#endif
-
-#ifndef __u_char_defined
-typedef __u_char u_char;
-typedef __u_short u_short;
-typedef __u_int u_int;
-typedef __u_long u_long;
-typedef __quad_t quad_t;
-typedef __u_quad_t u_quad_t;
-typedef __fsid_t fsid_t;
+/* IMPORTANT NOTE: This has been modified to build against the musl C
+ * library and it probably now ONLY builds with the musl C library.
+ *
+ * See: https://sourceware.org/bugzilla/show_bug.cgi?id=21604
+ */
# define __u_char_defined
-#endif
#ifndef __daddr_t_defined
-typedef __daddr_t daddr_t;
-typedef __caddr_t caddr_t;
+typedef int daddr_t;
# define __daddr_t_defined
#endif
--