{
  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
  ''
