treewide: simplify exec format conditionals

This commit is contained in:
Ryan Burns 2024-01-07 17:43:33 -08:00
parent 1bf1c7a244
commit c324705cc3
13 changed files with 16 additions and 26 deletions

View file

@ -80,7 +80,7 @@ stdenv.mkDerivation {
cp -L "$libblas" $out/lib/libblas${canonicalExtension}
chmod +w $out/lib/libblas${canonicalExtension}
'' + (if stdenv.hostPlatform.parsed.kernel.execFormat.name == "elf" then ''
'' + (if stdenv.hostPlatform.isElf then ''
patchelf --set-soname libblas${canonicalExtension} $out/lib/libblas${canonicalExtension}
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libblas${canonicalExtension}):${lib.getLib blasProvider'}/lib" $out/lib/libblas${canonicalExtension}
'' else lib.optionalString (stdenv.hostPlatform.isDarwin) ''
@ -112,7 +112,7 @@ EOF
cp -L "$libcblas" $out/lib/libcblas${canonicalExtension}
chmod +w $out/lib/libcblas${canonicalExtension}
'' + (if stdenv.hostPlatform.parsed.kernel.execFormat.name == "elf" then ''
'' + (if stdenv.hostPlatform.isElf then ''
patchelf --set-soname libcblas${canonicalExtension} $out/lib/libcblas${canonicalExtension}
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/libcblas${canonicalExtension}):${lib.getLib blasProvider'}/lib" $out/lib/libcblas${canonicalExtension}
'' else lib.optionalString stdenv.hostPlatform.isDarwin ''

View file

@ -57,7 +57,7 @@ stdenv.mkDerivation {
cp -L "$liblapack" $out/lib/liblapack${canonicalExtension}
chmod +w $out/lib/liblapack${canonicalExtension}
'' + (lib.optionalString (stdenv.hostPlatform.parsed.kernel.execFormat.name == "elf") ''
'' + (lib.optionalString stdenv.hostPlatform.isElf ''
patchelf --set-soname liblapack${canonicalExtension} $out/lib/liblapack${canonicalExtension}
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/liblapack${canonicalExtension}):${lapackProvider'}/lib" $out/lib/liblapack${canonicalExtension}
'') + ''
@ -86,7 +86,7 @@ EOF
cp -L "$liblapacke" $out/lib/liblapacke${canonicalExtension}
chmod +w $out/lib/liblapacke${canonicalExtension}
'' + (lib.optionalString (stdenv.hostPlatform.parsed.kernel.execFormat.name == "elf") ''
'' + (lib.optionalString stdenv.hostPlatform.isElf ''
patchelf --set-soname liblapacke${canonicalExtension} $out/lib/liblapacke${canonicalExtension}
patchelf --set-rpath "$(patchelf --print-rpath $out/lib/liblapacke${canonicalExtension}):${lib.getLib lapackProvider'}/lib" $out/lib/liblapacke${canonicalExtension}
'') + ''

View file

@ -98,8 +98,7 @@ rustPlatform.buildRustPackage.override {
# Disable check phase as there are failures (4 tests fail)
doCheck = false;
doInstallCheck = !stdenv.hostPlatform.isStatic &&
stdenv.hostPlatform.parsed.kernel.execFormat == lib.systems.parse.execFormats.elf;
doInstallCheck = !stdenv.hostPlatform.isStatic && stdenv.hostPlatform.isElf;
installCheckPhase = ''
runHook preInstallCheck
readelf -a $out/bin/.cargo-wrapped | grep -F 'Shared library: [libcurl.so'

View file

@ -73,8 +73,7 @@ let
else if stdenv.hostPlatform.parsed.cpu.name == "s390x" then "s390x"
else toString stdenv.hostPlatform.parsed.cpu.family}"
# env in host triplet for Mach-O is "macho", but boost binary format for Mach-O is "mach-o"
"binary-format=${if stdenv.hostPlatform.parsed.kernel.execFormat == lib.systems.parse.execFormats.macho
then "mach-o"
"binary-format=${if stdenv.hostPlatform.isMacho then "mach-o"
else toString stdenv.hostPlatform.parsed.kernel.execFormat.name}"
"target-os=${toString stdenv.hostPlatform.parsed.kernel.name}"

View file

@ -234,7 +234,7 @@ stdenv.mkDerivation rec {
'';
doInstallCheck = (lib.elem "webp" selectedPlugins) && !stdenv.hostPlatform.isStatic &&
stdenv.hostPlatform.parsed.kernel.execFormat == lib.systems.parse.execFormats.elf;
stdenv.hostPlatform.isElf;
installCheckPhase = ''
runHook preInstallCheck
readelf -a $out/lib/gstreamer-1.0/libgstrswebp.so | grep -F 'Shared library: [libwebpdemux.so'

View file

@ -93,7 +93,7 @@ let
else if stdenv.hostPlatform.isBSD
then if stdenv.hostPlatform.isx86_64 then "./Configure BSD-x86_64"
else if stdenv.hostPlatform.isx86_32
then "./Configure BSD-x86" + lib.optionalString (stdenv.hostPlatform.parsed.kernel.execFormat.name == "elf") "-elf"
then "./Configure BSD-x86" + lib.optionalString stdenv.hostPlatform.isElf "-elf"
else "./Configure BSD-generic${toString stdenv.hostPlatform.parsed.cpu.bits}"
else if stdenv.hostPlatform.isMinGW
then "./Configure mingw${lib.optionalString

View file

@ -90,7 +90,7 @@ stdenv.mkDerivation (finalAttrs: {
else if stdenv.hostPlatform.isBSD && stdenv.hostPlatform.isx86_64
then "./Configure BSD-x86_64"
else if stdenv.hostPlatform.isBSD && stdenv.hostPlatform.isx86_32
then "./Configure BSD-x86" + lib.optionalString (stdenv.hostPlatform.parsed.kernel.execFormat.name == "elf") "-elf"
then "./Configure BSD-x86" + lib.optionalString stdenv.hostPlatform.isElf "-elf"
else if stdenv.hostPlatform.isBSD
then "./Configure BSD-generic${toString stdenv.hostPlatform.parsed.cpu.bits}"
else if stdenv.hostPlatform.isMinGW

View file

@ -66,7 +66,7 @@ buildPythonPackage rec {
"test_flipping_upload_enabled_respects_order_of_events"
];
postInstallCheck = lib.optionalString (stdenv.hostPlatform.parsed.kernel.execFormat == lib.systems.parse.execFormats.elf) ''
postInstallCheck = lib.optionalString stdenv.hostPlatform.isElf ''
readelf -a $out/${python.sitePackages}/glean/libglean_ffi.so | grep -F 'Shared library: [liblmdb.so'
'';

View file

@ -1,7 +1,3 @@
let
execFormatIsELF = platform: platform.parsed.kernel.execFormat.name == "elf";
in
{ stdenv
, autoreconfHook
, autoconf269, automake, libtool
@ -18,7 +14,7 @@ in
, texinfo
, zlib
, enableGold ? execFormatIsELF stdenv.targetPlatform
, enableGold ? stdenv.targetPlatform.isElf
, enableShared ? !stdenv.hostPlatform.isStatic
# WARN: Enabling all targets increases output size to a multiple.
, withAllTargets ? false
@ -26,7 +22,7 @@ in
# WARN: configure silently disables ld.gold if it's unsupported, so we need to
# make sure that intent matches result ourselves.
assert enableGold -> execFormatIsELF stdenv.targetPlatform;
assert enableGold -> stdenv.targetPlatform.isElf;
let

View file

@ -1,5 +1,5 @@
let
withGold = platform: platform.parsed.kernel.execFormat.name == "elf" && !platform.isRiscV && !platform.isLoongArch64;
withGold = platform: platform.isElf && !platform.isRiscV && !platform.isLoongArch64;
in
{ stdenv

View file

@ -31,8 +31,7 @@ rustPlatform.buildRustPackage {
--fish <("$out/bin/catwalk" completion fish)
'';
doInstallCheck = !stdenv.hostPlatform.isStatic &&
stdenv.hostPlatform.parsed.kernel.execFormat == lib.systems.parse.execFormats.elf;
doInstallCheck = !stdenv.hostPlatform.isStatic && stdenv.hostPlatform.isElf;
installCheckPhase = ''
runHook preInstallCheck
readelf -a $out/bin/catwalk | grep -F 'Shared library: [libwebp.so'

View file

@ -109,7 +109,7 @@ let
# there (yet?) so it goes here until then.
preHook = preHook + lib.optionalString buildPlatform.isDarwin ''
export NIX_DONT_SET_RPATH_FOR_BUILD=1
'' + lib.optionalString (hostPlatform.isDarwin || (hostPlatform.parsed.kernel.execFormat != lib.systems.parse.execFormats.elf && hostPlatform.parsed.kernel.execFormat != lib.systems.parse.execFormats.macho)) ''
'' + lib.optionalString (hostPlatform.isDarwin || (!hostPlatform.isElf && !hostPlatform.isMacho)) ''
export NIX_DONT_SET_RPATH=1
export NIX_NO_SELF_RPATH=1
'' + lib.optionalString (hostPlatform.isDarwin && hostPlatform.isMacOS) ''

View file

@ -21575,10 +21575,7 @@ with pkgs;
mtrace = callPackage ../development/libraries/glibc/mtrace.nix { };
# Provided by libc on Operating Systems that use the Extensible Linker Format.
elf-header =
if stdenv.hostPlatform.parsed.kernel.execFormat.name == "elf"
then null
else elf-header-real;
elf-header = if stdenv.hostPlatform.isElf then null else elf-header-real;
elf-header-real = callPackage ../development/libraries/elf-header { };