lol

Merge pull request #23393 from periklis/topic_valgrind_darwin

valgrind: enable darwin build

authored by

Daiderd Jordan and committed by
GitHub
3ea16e98 89e46182

+64 -5
+23 -4
pkgs/development/tools/analysis/valgrind/default.nix
··· 1 - { stdenv, fetchurl, fetchpatch, perl, gdb }: 1 + { stdenv, fetchurl, fetchpatch, perl, gdb, llvm, cctools, xnu, bootstrap_cmds }: 2 2 3 3 stdenv.mkDerivation rec { 4 4 name = "valgrind-3.12.0"; ··· 14 14 15 15 # Perl is needed for `cg_annotate'. 16 16 # GDB is needed to provide a sane default for `--db-command'. 17 - buildInputs = [ perl ] ++ stdenv.lib.optional (!stdenv.isDarwin) gdb; 17 + buildInputs = [ perl gdb ] ++ stdenv.lib.optionals (stdenv.isDarwin) [ bootstrap_cmds xnu ]; 18 18 19 19 enableParallelBuilding = true; 20 20 21 - postPatch = 21 + patches = stdenv.lib.optionals (stdenv.isDarwin) [ ./valgrind-bzero.patch ]; 22 + 23 + postPatch = stdenv.lib.optionalString (stdenv.isDarwin) 22 24 # Apple's GCC doesn't recognize `-arch' (as of version 4.2.1, build 5666). 23 25 '' 24 26 echo "getting rid of the \`-arch' GCC option..." ··· 27 29 28 30 sed -i coregrind/link_tool_exe_darwin.in \ 29 31 -e 's/^my \$archstr = .*/my $archstr = "x86_64";/g' 32 + 33 + echo "substitute hardcoded /usr/include/mach with ${xnu}/include/mach" 34 + substituteInPlace coregrind/Makefile.in \ 35 + --replace /usr/include/mach ${xnu}/include/mach 36 + 37 + echo "substitute hardcoded dsymutil with ${llvm}/bin/llvm-dsymutil" 38 + find -name "Makefile.in" | while read file; do 39 + substituteInPlace "$file" \ 40 + --replace dsymutil ${llvm}/bin/llvm-dsymutil 41 + done 42 + 43 + substituteInPlace coregrind/m_debuginfo/readmacho.c \ 44 + --replace /usr/bin/dsymutil ${llvm}/bin/llvm-dsymutil 45 + 46 + echo "substitute hardcoded /usr/bin/ld with ${cctools}/bin/ld" 47 + substituteInPlace coregrind/link_tool_exe_darwin.in \ 48 + --replace /usr/bin/ld ${cctools}/bin/ld 30 49 ''; 31 50 32 51 configureFlags = ··· 58 77 license = stdenv.lib.licenses.gpl2Plus; 59 78 60 79 maintainers = [ stdenv.lib.maintainers.eelco ]; 61 - platforms = stdenv.lib.platforms.linux; 80 + platforms = stdenv.lib.platforms.unix; 62 81 }; 63 82 }
+37
pkgs/development/tools/analysis/valgrind/valgrind-bzero.patch
··· 1 + Index: coregrind/m_main.c 2 + =================================================================== 3 + --- a/coregrind/m_main.c (revision 16102) 4 + +++ b/coregrind/m_main.c (revision 16103) 5 + @@ -3489,6 +3489,10 @@ 6 + // skip check 7 + return VG_(memset)(s,c,n); 8 + } 9 + +void __bzero(void* s, UWord n); 10 + +void __bzero(void* s, UWord n) { 11 + + (void)VG_(memset)(s,0,n); 12 + +} 13 + void bzero(void *s, SizeT n); 14 + void bzero(void *s, SizeT n) { 15 + VG_(memset)(s,0,n); 16 + @@ -4058,20 +4062,7 @@ 17 + 18 + #endif 19 + 20 + -#if defined(VGO_darwin) && DARWIN_VERS == DARWIN_10_10 21 + 22 + -/* This might also be needed for > DARWIN_10_10, but I have no way 23 + - to test for that. Hence '==' rather than '>=' in the version 24 + - test above. */ 25 + -void __bzero ( void* s, UWord n ); 26 + -void __bzero ( void* s, UWord n ) 27 + -{ 28 + - (void) VG_(memset)( s, 0, n ); 29 + -} 30 + - 31 + -#endif 32 + - 33 + - 34 + /*--------------------------------------------------------------------*/ 35 + /*--- end ---*/ 36 + /*--------------------------------------------------------------------*/ 37 +
+4 -1
pkgs/top-level/all-packages.nix
··· 6862 6862 6863 6863 gdb-multitarget = lowPrio (gdb.override { multitarget = true; }); 6864 6864 6865 - valgrind = callPackage ../development/tools/analysis/valgrind { }; 6865 + valgrind = callPackage ../development/tools/analysis/valgrind { 6866 + inherit (darwin) xnu bootstrap_cmds cctools; 6867 + llvm = llvm_39; 6868 + }; 6866 6869 6867 6870 valkyrie = callPackage ../development/tools/analysis/valkyrie { }; 6868 6871