Skip to content

Commit

Permalink
gnumake: disable subsecond mtime on darwin
Browse files Browse the repository at this point in the history
gnumake can support subsecond mtimes if it is available. But Darwin
doesn’t support setting subsecond mtimes until 10.13! So we can just
disable this check to avoid the issue where most of our built tools
use seconds but make uses nanoseconds. Might fix some parallel issues
along the way.

Fixes #51221
  • Loading branch information
matthewbauer committed Dec 3, 2018
1 parent 7beb1ad commit 26de2d1
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion pkgs/development/tools/build-managers/gnumake/4.2/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,16 @@ stdenv.mkDerivation {
nativeBuildInputs = stdenv.lib.optionals guileSupport [ pkgconfig ];
buildInputs = stdenv.lib.optionals guileSupport [ guile ];

configureFlags = stdenv.lib.optional guileSupport "--with-guile";
configureFlags = stdenv.lib.optional guileSupport "--with-guile"

# Make uses this test to decide whether it should keep track of
# subseconds. Apple made this possible with APFS and macOS 10.13.
# However, we still support macOS 10.11 and 10.12. Binaries built
# in Nixpkgs will be unable to use futimens to set mtime less than
# a second. So, tell Make to ignore nanoseconds in mtime here by
# overriding the autoconf test for the struct.
# See https://github.com/NixOS/nixpkgs/issues/51221 for discussion.
++ stdenv.lib.optional stdenv.isDarwin "ac_cv_struct_st_mtim_nsec=no";

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

Expand Down

0 comments on commit 26de2d1

Please sign in to comment.