diff options
Diffstat (limited to 'pkgs/development/libraries/libelf/default.nix')
-rw-r--r-- | pkgs/development/libraries/libelf/default.nix | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/pkgs/development/libraries/libelf/default.nix b/pkgs/development/libraries/libelf/default.nix index 3302d127d4d3e..0a1a7175296ef 100644 --- a/pkgs/development/libraries/libelf/default.nix +++ b/pkgs/development/libraries/libelf/default.nix @@ -21,6 +21,8 @@ stdenv.mkDerivation rec { # Fix warnings from preprocessor instructions. # https://github.com/NixOS/nixpkgs/issues/59929 ./preprocessor-warnings.patch + # `configure` defines a test `main` with an implicit `int` return, which clang 16 disallows. + ./fix-configure-main.patch ]; enableParallelBuilding = true; @@ -55,7 +57,13 @@ stdenv.mkDerivation rec { # cross-compiling, but `autoreconfHook` brings in `makeWrapper` which # doesn't work with the bootstrapTools bash, so can only do this for # cross builds when `stdenv.shell` is a newer bash. - ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) autoreconfHook; + ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform + # The provided `configure` script fails on clang 16 because some tests have a `main` + # returning an implicit `int`, which clang 16 treats as an error. Running `autoreconf` fixes + # the test and allows `configure` to detect clang properly. + # This is done only for clang on Darwin because the Darwin stdenv bootstrap does not use + # libelf, so should be safe because it will always be run with a compatible version of bash. + || (stdenv.cc.isClang && stdenv.isDarwin)) autoreconfHook; meta = { description = "ELF object file access library"; |