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:
parent
eed14baec3
commit
c71fd76822
2 changed files with 9 additions and 38 deletions
|
@ -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).
|
||||
|
|
|
@ -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 ---*/
|
||||
/*--------------------------------------------------------------------*/
|
||||
|
Loading…
Reference in a new issue