Subject: Re: [BUGS] Git v2.51.2 on NonStop

From: Jeff King <[email-masked]>
Date: Wed, 29 Oct 2025 22:53:01 -0400

On Wed, Oct 29, 2025 at 08:24:52PM -0400, [email-masked] wrote:

> What appears to be happening is that the Make environment is only using SHELL=/bin/bash
> for the outer processing but not the inner #!/bin/sh of t7900. The system is using /bin/sh
> as specified, which uses ksh, not bash, which is the trace above. When I run the individual
> tests with bash, the error reported goes away. The problem is, with my version of Gnu Make,
> 4.1.2, the SHELL variable is only being replaced for the command processing of each
> recipe. Once the system loader sees the shebang of #!/bin/sh, /bin/sh is used as requested,
> and fails out. This means that I have to remember to manually run each test that fails with
> bash instead of the default. It is frustrating and now adds hours to my manual evaluation
> of the CI/CD results.
> 
> The trace above is from sh, not bash because of this.

Does "make TEST_SHELL_PATH=/bin/bash" work?

The default there is $(SHELL_PATH), which is distinct again from
$(SHELL). The former is a Git-ism for the shell we replace in #! lines
and invoke from within C programs, and the latter is a make-ism for how
to run make recipes. If your /bin/sh isn't fully functional you might
want to be setting SHELL_PATH, too.

-Peff