Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions lib/systems/examples.nix
Original file line number Diff line number Diff line change
Expand Up @@ -179,8 +179,8 @@ rec {
iphone64 = {
config = "aarch64-apple-ios";
# config = "aarch64-apple-darwin14";
sdkVer = "12.4";
xcodeVer = "10.3";
sdkVer = "13.2";
xcodeVer = "11.3.1";
xcodePlatform = "iPhoneOS";
useiOSPrebuilt = true;
platform = {};
Expand All @@ -189,8 +189,8 @@ rec {
iphone32 = {
config = "armv7a-apple-ios";
# config = "arm-apple-darwin10";
sdkVer = "12.4";
xcodeVer = "10.3";
sdkVer = "13.2";
xcodeVer = "11.3.1";
xcodePlatform = "iPhoneOS";
useiOSPrebuilt = true;
platform = {};
Expand All @@ -199,8 +199,8 @@ rec {
iphone64-simulator = {
config = "x86_64-apple-ios";
# config = "x86_64-apple-darwin14";
sdkVer = "12.4";
xcodeVer = "10.3";
sdkVer = "13.2";
xcodeVer = "11.3.1";
xcodePlatform = "iPhoneSimulator";
useiOSPrebuilt = true;
platform = {};
Expand All @@ -209,8 +209,8 @@ rec {
iphone32-simulator = {
config = "i686-apple-ios";
# config = "i386-apple-darwin11";
sdkVer = "12.4";
xcodeVer = "10.3";
sdkVer = "13.2";
xcodeVer = "11.3.1";
xcodePlatform = "iPhoneSimulator";
useiOSPrebuilt = true;
platform = {};
Expand Down
170 changes: 84 additions & 86 deletions pkgs/os-specific/darwin/cctools/port.nix
Original file line number Diff line number Diff line change
Expand Up @@ -17,92 +17,90 @@ in
# Non-Darwin alternatives
assert (!stdenv.hostPlatform.isDarwin) -> maloader != null;

let
baseParams = rec {
name = "${targetPrefix}cctools-port";
version = "927.0.2";

src = fetchFromGitHub {
owner = "tpoechtrager";
repo = "cctools-port";
rev = "8239a5211bcf07d6b9d359782e1a889ec1d7cce5";
sha256 = "0h8b1my0wf1jyjq63wbiqkl2clgxsf87f6i4fjhqs431fzlq8sac";
};

outputs = [ "out" "dev" "man" ];

nativeBuildInputs = [ autoconf automake libtool autoreconfHook installShellFiles ];
buildInputs = [ libuuid ]
++ stdenv.lib.optionals stdenv.isDarwin [ libcxxabi libobjc ]
++ stdenv.lib.optional enableTapiSupport libtapi;

patches = [ ./ld-ignore-rpath-link.patch ./ld-rpath-nonfinal.patch ];

__propagatedImpureHostDeps = [
# As far as I can tell, otool from cctools is the only thing that depends on these two, and we should fix them
"/usr/lib/libobjc.A.dylib"
"/usr/lib/libobjc.dylib"
stdenv.mkDerivation {
pname = "${targetPrefix}cctools-port";
version = "949.0.1";

src = fetchFromGitHub {
owner = "tpoechtrager";
repo = "cctools-port";
rev = "43f32a4c61b5ba7fde011e816136c550b1b3146f";
sha256 = "10yc5smiczzm62q6ijqccc58bwmfhc897f3bwa5i9j98csqsjj0k";
};

outputs = [ "out" "dev" "man" ];

nativeBuildInputs = [ autoconf automake libtool autoreconfHook installShellFiles ];
buildInputs = [ libuuid ]
++ stdenv.lib.optionals stdenv.isDarwin [ libcxxabi libobjc ]
++ stdenv.lib.optional enableTapiSupport libtapi;

patches = [ ./ld-ignore-rpath-link.patch ./ld-rpath-nonfinal.patch ];

__propagatedImpureHostDeps = [
# As far as I can tell, otool from cctools is the only thing that depends on these two, and we should fix them
"/usr/lib/libobjc.A.dylib"
"/usr/lib/libobjc.dylib"
];

enableParallelBuilding = true;

# TODO(@Ericson2314): Always pass "--target" and always targetPrefix.
configurePlatforms = [ "build" "host" ]
++ stdenv.lib.optional (stdenv.targetPlatform != stdenv.hostPlatform) "target";
configureFlags = [ "--disable-clang-as" ]
++ stdenv.lib.optionals enableTapiSupport [
"--enable-tapi-support"
"--with-libtapi=${libtapi}"
];

enableParallelBuilding = true;

# TODO(@Ericson2314): Always pass "--target" and always targetPrefix.
configurePlatforms = [ "build" "host" ]
++ stdenv.lib.optional (stdenv.targetPlatform != stdenv.hostPlatform) "target";
configureFlags = [ "--disable-clang-as" ]
++ stdenv.lib.optionals enableTapiSupport [
"--enable-tapi-support"
"--with-libtapi=${libtapi}"
];

postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace cctools/Makefile.am --replace libobjc2 ""
'' + ''
sed -i -e 's/addStandardLibraryDirectories = true/addStandardLibraryDirectories = false/' cctools/ld64/src/ld/Options.cpp

# FIXME: there are far more absolute path references that I don't want to fix right now
substituteInPlace cctools/configure.ac \
--replace "-isystem /usr/local/include -isystem /usr/pkg/include" "" \
--replace "-L/usr/local/lib" "" \

substituteInPlace cctools/include/Makefile \
--replace "/bin/" ""

patchShebangs tools
sed -i -e 's/which/type -P/' tools/*.sh

# Workaround for https://www.sourceware.org/bugzilla/show_bug.cgi?id=11157
cat > cctools/include/unistd.h <<EOF
#ifdef __block
# undef __block
# include_next "unistd.h"
# define __block __attribute__((__blocks__(byref)))
#else
# include_next "unistd.h"
#endif
EOF

cd cctools
'';

preInstall = ''
pushd include
make DSTROOT=$out/include RC_OS=common install
popd

installManPage ar/ar.{1,5}
'';

passthru = {
inherit targetPrefix;
};

meta = {
broken = !stdenv.targetPlatform.isDarwin; # Only supports darwin targets
homepage = "http://www.opensource.apple.com/source/cctools/";
description = "MacOS Compiler Tools (cross-platform port)";
license = stdenv.lib.licenses.apsl20;
maintainers = with stdenv.lib.maintainers; [ matthewbauer ];
};
postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace cctools/Makefile.am --replace libobjc2 ""
'' + ''
sed -i -e 's/addStandardLibraryDirectories = true/addStandardLibraryDirectories = false/' cctools/ld64/src/ld/Options.cpp

# FIXME: there are far more absolute path references that I don't want to fix right now
substituteInPlace cctools/configure.ac \
--replace "-isystem /usr/local/include -isystem /usr/pkg/include" "" \
--replace "-L/usr/local/lib" "" \

substituteInPlace cctools/include/Makefile \
--replace "/bin/" ""

patchShebangs tools
sed -i -e 's/which/type -P/' tools/*.sh

# Workaround for https://www.sourceware.org/bugzilla/show_bug.cgi?id=11157
cat > cctools/include/unistd.h <<EOF
#ifdef __block
# undef __block
# include_next "unistd.h"
# define __block __attribute__((__blocks__(byref)))
#else
# include_next "unistd.h"
#endif
EOF

cd cctools
'';

preInstall = ''
pushd include
make DSTROOT=$out/include RC_OS=common install
popd

installManPage ar/ar.{1,5}
'';

passthru = {
inherit targetPrefix;
};

meta = {
broken = !stdenv.targetPlatform.isDarwin; # Only supports darwin targets
homepage = "http://www.opensource.apple.com/source/cctools/";
description = "MacOS Compiler Tools (cross-platform port)";
license = stdenv.lib.licenses.apsl20;
maintainers = with stdenv.lib.maintainers; [ matthewbauer ];
};
in stdenv.mkDerivation baseParams
}
4 changes: 2 additions & 2 deletions pkgs/os-specific/darwin/libtapi/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ stdenv.mkDerivation {
src = fetchFromGitHub {
owner = "tpoechtrager";
repo = "apple-libtapi";
rev = "cd9885b97fdff92cc41e886bba4a404c42fdf71b";
sha256 = "1a19h39a48agvnmal99n9j1fjadiqwib7hfzmn342wmgh9z3vk0g";
rev = "3cb307764cc5f1856c8a23bbdf3eb49dfc6bea48";
sha256 = "1zb10p6xkls8x7wsdwgy9c0v16z97rfkgidii9ffq5rfczgvrhjh";
};

sourceRoot = "source/src/llvm";
Expand Down
3 changes: 2 additions & 1 deletion pkgs/os-specific/darwin/xcode/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -53,5 +53,6 @@ in lib.makeExtensible (self: {
xcode_10_2_1 = requireXcode "10.2.1" "11sdb54nr0x7kp987qq839x6k5gdx7vqdxjiy5xm5279n1n47bmg";
xcode_10_3 = requireXcode "10.3" "1i628vfn6zad81fsz3zpc6z15chhskvyp8qnajp2wnpzvrwl6ngb";
xcode_11 = requireXcode "11" "1r03j3kkp4blfp2kqpn538w3dx57ms930fj8apjkq6dk7fv3jcqh";
xcode = self."xcode_${lib.replaceStrings ["."] ["_"] (if stdenv.targetPlatform.useiOSPrebuilt then stdenv.targetPlatform.xcodeVer else "10.3")}";
xcode_11_3_1 = requireXcode "11.3.1" "1p6nicj91kr6ad3rmycahd1i7z4hj7ccjs93ixsiximjzaahx3q4";
xcode = self."xcode_${lib.replaceStrings ["."] ["_"] (if (stdenv.targetPlatform ? xcodeVer) then stdenv.targetPlatform.xcodeVer else "11.3.1")}";
})
6 changes: 5 additions & 1 deletion pkgs/os-specific/darwin/xcode/sdk-pkgs.nix
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

let

minSdkVersion = "9.0";
minSdkVersion = targetPlatform.minSdkVersion or "9.0";

iosPlatformArch = { parsed, ... }: {
armv7a = "armv7";
Expand All @@ -37,6 +37,10 @@ rec {
bintools = binutils-unwrapped;
extraBuildCommands = ''
echo "-arch ${iosPlatformArch targetPlatform}" >> $out/nix-support/libc-ldflags
'' + stdenv.lib.optionalString (sdk.platform == "iPhoneSimulator") ''
echo "-platform_version ios-sim ${minSdkVersion} ${sdk.version}" >> $out/nix-support/libc-ldflags
'' + stdenv.lib.optionalString (sdk.platform == "iPhoneOS") ''
echo "-platform_version ios ${minSdkVersion} ${sdk.version}" >> $out/nix-support/libc-ldflags
'';
};

Expand Down