mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-20 20:53:48 +00:00
5ac9fcfc60
The problem was initially noticed in https://sourceware.org/PR30052#c5 where 'runtest' was passing bogus target name when ran without parameters: $ ./result/bin/runtest ... Target is .runtest-wrapped Host is x86_64-pc-linux-gnu Note that runtest switches to non-native mode and uses wrapper name as a target name. Mechanics of it is a bit involved: 'runtest' itself detects targets passing via ${0} parameter: # somewhere in runtest: mypath=${0-.} ... if [ "$target" != runtest ] ; then target="--target ${target}" else target="" fi which would be fine if we ran 'runtest'. In `nixpkgs` `runtest` is a shell wrapper: $ cat /<<NIX>>/dejagnu-1.6.3/bin/runtest #! /<<NIX>>/bash-5.2-p15/bin/bash -e ... exec -a "$0" "/<<NIX>>/dejagnu-1.6.3/bin/.runtest-wrapped" "$@" You would expect that `.runtest-wrapped` would get `$0` as an `argv[0]` here, but no. If both are `bash` scripts `bash` peeks original `argv[0]` and breaks `runtest`: https://lists.gnu.org/archive/html/bug-bash/2023-01/msg00082.html The workaround here is to drop the wrapper and place `expect` symlink into a place where `dejagnu` and `runtest` expect it to be without a wrapper creation. |
||
---|---|---|
.. | ||
default.nix |