valgrind: Fix darwin build

The bzero-patch was merged upstream in
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16103, so it does no
longer apply.

Additionally - to make the build succeed on darwin systems more recent
than our nixpkgs.darwin.xnu kernel version - we need to teach the build
the version of the xnu headers we provide, instead of letting the build
figure out the actual system version using `uname -r`.
This commit is contained in:
Josef Kemetmueller 2017-09-12 00:53:30 +02:00
parent eed14baec3
commit c71fd76822
2 changed files with 9 additions and 38 deletions

View file

@ -18,7 +18,15 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true;
patches = stdenv.lib.optionals (stdenv.isDarwin) [ ./valgrind-bzero.patch ];
preConfigure = stdenv.lib.optionalString stdenv.isDarwin (
let OSRELEASE = ''
$(awk -F '"' '/#define OSRELEASE/{ print $2 }' \
<${xnu}/Library/Frameworks/Kernel.framework/Headers/libkern/version.h)'';
in ''
echo "Don't derive our xnu version using uname -r."
substituteInPlace configure --replace "uname -r" "echo ${OSRELEASE}"
''
);
postPatch = stdenv.lib.optionalString (stdenv.isDarwin)
# Apple's GCC doesn't recognize `-arch' (as of version 4.2.1, build 5666).

View file

@ -1,37 +0,0 @@
Index: coregrind/m_main.c
===================================================================
--- a/coregrind/m_main.c (revision 16102)
+++ b/coregrind/m_main.c (revision 16103)
@@ -3489,6 +3489,10 @@
// skip check
return VG_(memset)(s,c,n);
}
+void __bzero(void* s, UWord n);
+void __bzero(void* s, UWord n) {
+ (void)VG_(memset)(s,0,n);
+}
void bzero(void *s, SizeT n);
void bzero(void *s, SizeT n) {
VG_(memset)(s,0,n);
@@ -4058,20 +4062,7 @@
#endif
-#if defined(VGO_darwin) && DARWIN_VERS == DARWIN_10_10
-/* This might also be needed for > DARWIN_10_10, but I have no way
- to test for that. Hence '==' rather than '>=' in the version
- test above. */
-void __bzero ( void* s, UWord n );
-void __bzero ( void* s, UWord n )
-{
- (void) VG_(memset)( s, 0, n );
-}
-
-#endif
-
-
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/