Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 61517de024cc
Choose a base ref
...
head repository: NixOS/nixpkgs
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 9112a9d882ed
Choose a head ref
  • 8 commits
  • 5 files changed
  • 1 contributor

Commits on Jul 21, 2020

  1. Copy the full SHA
    c36cf87 View commit details
  2. Unverified

    This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
    Copy the full SHA
    39c536c View commit details
  3. darwin.cctools: 927.0.2 -> 949.0.1

    Needed for iOS 13 support
    matthewbauer committed Jul 21, 2020

    Unverified

    This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
    Copy the full SHA
    3c6bd61 View commit details
  4. systems/examples.nix: update to iOS 13

    new apps need iOS 13, so we should try to use that here
    matthewbauer committed Jul 21, 2020

    Unverified

    This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
    Copy the full SHA
    bb5d0a4 View commit details

Commits on Jul 22, 2020

  1. Unverified

    This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
    Copy the full SHA
    753e801 View commit details

Commits on Jul 23, 2020

  1. xcode/sdk-pkgs.nix: set -platform_version in addition to -miphoneos-v…

    …ersion-min
    
    The App Store looks at LC_VERSION_MIN_IPHONEOS to verify you have a
    new enough SDK version. This is not just the minimum version, but also
    the sdk version used. When the linker can’t figure it out, it tries to
    infer it from the sdk path[1]. When no sdk version is found, it
    defaults to just using the -miphoneos-version-min value[2]. So, to make
    sure we don’t rely on inference (which doesn’t work in the current
    directory structure), we have to specify -platform_version.
    
    [1]:
    https://github.com/tpoechtrager/cctools-port/blob/43f32a4c61b5ba7fde011e816136c550b1b3146f/cctools/ld64/src/ld/Options.cpp#L5355-L5376
    [2]: https://github.com/tpoechtrager/cctools-port/blob/43f32a4c61b5ba7fde011e816136c550b1b3146f/cctools/ld64/src/ld/ld.hpp#L58
    matthewbauer committed Jul 23, 2020

    Unverified

    This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
    Copy the full SHA
    95eabdf View commit details

Commits on Sep 11, 2020

  1. Unverified

    This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
    Copy the full SHA
    86d8c55 View commit details
  2. Merge pull request #93596 from obsidiansystems/ios-13

    Support iOS 13 in cross
    matthewbauer authored Sep 11, 2020
    Copy the full SHA
    9112a9d View commit details
16 changes: 8 additions & 8 deletions lib/systems/examples.nix
Original file line number Diff line number Diff line change
@@ -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 = {};
@@ -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 = {};
@@ -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 = {};
@@ -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 = {};
170 changes: 84 additions & 86 deletions pkgs/os-specific/darwin/cctools/port.nix
Original file line number Diff line number Diff line change
@@ -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
@@ -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";
3 changes: 2 additions & 1 deletion pkgs/os-specific/darwin/xcode/default.nix
Original file line number Diff line number Diff line change
@@ -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
@@ -12,7 +12,7 @@

let

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

iosPlatformArch = { parsed, ... }: {
armv7a = "armv7";
@@ -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
'';
};