Skip to content

Commit

Permalink
racket-minimal: build on darwin
Browse files Browse the repository at this point in the history
Technically, racket compiles and packages too, but it doesn't pass all
tests yet, so the build fails.

gcc7Stdenv is GCC 7 with the MacOS-specific adaptations retained.
Building on MacOS with that works, but we should be using clang.

I'm hoping that the next person wanting to override the compiler
version in some other derivation sees that attribute and doesn't
inadvertently break a MacOS build again.
  • Loading branch information
clacke committed Feb 21, 2018
1 parent ec2e601 commit fdbc744
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 4 deletions.
9 changes: 7 additions & 2 deletions pkgs/development/interpreters/racket/default.nix
Expand Up @@ -4,6 +4,7 @@
, libpng, libtool, mpfr, openssl, pango, poppler
, readline, sqlite
, disableDocs ? false
, CoreFoundation
}:

let
Expand Down Expand Up @@ -47,9 +48,13 @@ stdenv.mkDerivation rec {

FONTCONFIG_FILE = fontsConf;
LD_LIBRARY_PATH = libPath;
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.cc.isGNU "-lgcc_s";
NIX_LDFLAGS = stdenv.lib.concatStringsSep " " [
(stdenv.lib.optionalString (stdenv.cc.isGNU && ! stdenv.isDarwin) "-lgcc_s")
(stdenv.lib.optionalString stdenv.isDarwin "-framework CoreFoundation")
];

buildInputs = [ fontconfig libffi libtool makeWrapper sqlite ];
buildInputs = [ fontconfig libffi libtool makeWrapper sqlite ]
++ stdenv.lib.optionals stdenv.isDarwin [ CoreFoundation ];

preConfigure = ''
unset AR
Expand Down
2 changes: 1 addition & 1 deletion pkgs/development/interpreters/racket/minimal.nix
Expand Up @@ -14,6 +14,6 @@ racket.overrideAttrs (oldAttrs: rec {
as well as libraries that live in collections. In particular, raco
and the pkg library are still bundled.
'';
platforms = [ "x86_64-linux" "aarch64-linux" ];
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
};
})
5 changes: 4 additions & 1 deletion pkgs/top-level/all-packages.nix
Expand Up @@ -5822,6 +5822,8 @@ with pkgs;
extraBuildInputs = lib.optional hostPlatform.isDarwin clang.cc;
};

gcc7Stdenv = overrideCC gccStdenv gcc7;

wrapCCMulti = cc:
if system == "x86_64-linux" then let
# Binutils with glibc multi
Expand Down Expand Up @@ -7102,7 +7104,8 @@ with pkgs;
# racket 6.11 doesn't build with gcc6 + recent glibc:
# https://github.com/racket/racket/pull/1886
# https://github.com/NixOS/nixpkgs/pull/31017#issuecomment-343574769
stdenv = overrideCC stdenv gcc7;
stdenv = if stdenv.isDarwin then stdenv else gcc7Stdenv;
inherit (darwin.apple_sdk.frameworks) CoreFoundation;
};
racket-minimal = callPackage ../development/interpreters/racket/minimal.nix { };

Expand Down

0 comments on commit fdbc744

Please sign in to comment.