{ stdenv, runCommand, makeBinaryWrapper, binutils, lib, expectedArch ? stdenv.hostPlatform.parsed.cpu.name, }: runCommand "make-binary-wrapper-test-cross" { nativeBuildInputs = [ makeBinaryWrapper binutils ]; # For x86_64-linux the machine field is # Advanced Micro Devices X86-64 # and uses a dash instead of a underscore unlike x86_64-linux in hostPlatform.parsed.cpu.name expectedArch = lib.replaceStrings [ "_" ] [ "-" ] expectedArch; } '' touch prog chmod +x prog makeWrapper prog $out read -r _ arch < <($READELF --file-header $out | grep Machine:) if [[ ''${arch,,} != *"''${expectedArch,,}"* ]]; then echo "expected $expectedArch, got $arch" exit 1 fi ''