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:
parent
53a267e535
commit
45cd9994bc
36
pkgs/os-specific/darwin/maloader/default.nix
Normal file
36
pkgs/os-specific/darwin/maloader/default.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
@ -6551,11 +6551,15 @@ let
|
|||||||
|
|
||||||
cramfsswap = callPackage ../os-specific/linux/cramfsswap { };
|
cramfsswap = callPackage ../os-specific/linux/cramfsswap { };
|
||||||
|
|
||||||
darwin = {
|
darwin = rec {
|
||||||
cctools = forceNativeDrv (callPackage ../os-specific/darwin/cctools-port {
|
cctools = forceNativeDrv (callPackage ../os-specific/darwin/cctools-port {
|
||||||
cross = assert crossSystem != null; crossSystem;
|
cross = assert crossSystem != null; crossSystem;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
maloader = callPackage ../os-specific/darwin/maloader {
|
||||||
|
inherit opencflite;
|
||||||
|
};
|
||||||
|
|
||||||
opencflite = callPackage ../os-specific/darwin/opencflite {};
|
opencflite = callPackage ../os-specific/darwin/opencflite {};
|
||||||
|
|
||||||
xcode = callPackage ../os-specific/darwin/xcode {};
|
xcode = callPackage ../os-specific/darwin/xcode {};
|
||||||
|
Loading…
Reference in New Issue
Block a user