darwin: Add new package maloader.

This is the mentioned Mach-O loader that we're yoing to use to execute
Apple's proprietary binaries.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
This commit is contained in:
aszlig 2014-03-10 22:02:46 +01:00
parent 53a267e535
commit 45cd9994bc
No known key found for this signature in database
GPG Key ID: D0EBD0EC8C2DC961
2 changed files with 41 additions and 1 deletions

View File

@ -0,0 +1,36 @@
{ stdenv, fetchgit, opencflite, clang, libcxx }:
stdenv.mkDerivation {
name = "maloader-0git";
src = fetchgit {
url = "git://github.com/shinh/maloader.git";
rev = "5f220393e0b7b9ad0cf1aba0e89df2b42a1f0442";
sha256 = "07j9b7n0grrbxxyn2h8pnk6pa8b370wq5z5zwbds8dlhi7q37rhn";
};
postPatch = ''
sed -i \
-e '/if.*loadLibMac.*mypath/s|mypath|"'"$out/lib/"'"|' \
-e 's|libCoreFoundation\.so|${opencflite}/lib/&|' \
ld-mac.cc
'';
NIX_CFLAGS_COMPILE = "-I${libcxx}/include/c++/v1";
buildInputs = [ clang libcxx ];
buildFlags = [ "USE_LIBCXX=1" "release" ];
installPhase = ''
install -vD libmac.so "$out/lib/libmac.so"
for bin in extract macho2elf ld-mac; do
install -vD "$bin" "$out/bin/$bin"
done
'';
meta = {
description = "Mach-O loader for Linux";
homepage = "https://github.com/shinh/maloader";
license = stdenv.lib.licenses.bsd2;
};
}

View File

@ -6551,11 +6551,15 @@ let
cramfsswap = callPackage ../os-specific/linux/cramfsswap { };
darwin = {
darwin = rec {
cctools = forceNativeDrv (callPackage ../os-specific/darwin/cctools-port {
cross = assert crossSystem != null; crossSystem;
});
maloader = callPackage ../os-specific/darwin/maloader {
inherit opencflite;
};
opencflite = callPackage ../os-specific/darwin/opencflite {};
xcode = callPackage ../os-specific/darwin/xcode {};