Use /bin/sh as shebang in gdb/make-init-c

Message ID 20210713001925.475570-1-lsix@lancelotsix.com
State New
Headers show
Series
  • Use /bin/sh as shebang in gdb/make-init-c
Related show

Commit Message

Simon Marchi via Gdb-patches July 13, 2021, 12:19 a.m.
While testing the NixOS[1] packaging for gdb-11.0.90.tar.xz, I got the
following error:

  […]
  CXX    aarch32-tdep.o
  CXX    gdb.o
  GEN    init.c
  /nix/store/26a78ync552m8j4sbjavhvkmnqir8c9y-bash-4.4-p23/bin/bash: ./make-init-c: /usr/bin/env: bad interpreter: No such file or directory
  make[2]: *** [Makefile:1866: stamp-init] Error 126
  make[2]: *** Waiting for unfinished jobs....
  make[2]: Leaving directory '/build/gdb-11.0.90/gdb'
  make[1]: *** [Makefile:9814: all-gdb] Error 2
  make[1]: Leaving directory '/build/gdb-11.0.90'
  make: *** [Makefile:903: all] Error 2
  builder for '/nix/store/xs8my3rrc3l4kdlbpx0azh6q0v0jxphr-gdb-gdb-11.0.90.drv' failed with exit code 2
  error: build of '/nix/store/xs8my3rrc3l4kdlbpx0azh6q0v0jxphr-gdb-gdb-11.0.90.drv' failed

In the nix build environment, /usr/bin/env is not present, only /bin/sh
is.  This patch makes sure that gdb/make-init-c uses '/bin/sh' as
interpreter as this is the only one available on this platform.

I do not think this change will cause regressions on any other
configuration, but feedbacks on portability with regard to this issue
are welcome.

This patch is intended for both master and gdb-11-branch.

[1] https://nixos.org/

gdb/Changelog

	* make-init-c: Use /bin/sh as shebang.
---
 gdb/make-init-c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.31.1

Comments

Simon Marchi via Gdb-patches July 13, 2021, 12:42 a.m. | #1
On 2021-07-12 8:19 p.m., Lancelot SIX via Gdb-patches wrote:
> While testing the NixOS[1] packaging for gdb-11.0.90.tar.xz, I got the

> following error:

> 

>   […]

>   CXX    aarch32-tdep.o

>   CXX    gdb.o

>   GEN    init.c

>   /nix/store/26a78ync552m8j4sbjavhvkmnqir8c9y-bash-4.4-p23/bin/bash: ./make-init-c: /usr/bin/env: bad interpreter: No such file or directory

>   make[2]: *** [Makefile:1866: stamp-init] Error 126

>   make[2]: *** Waiting for unfinished jobs....

>   make[2]: Leaving directory '/build/gdb-11.0.90/gdb'

>   make[1]: *** [Makefile:9814: all-gdb] Error 2

>   make[1]: Leaving directory '/build/gdb-11.0.90'

>   make: *** [Makefile:903: all] Error 2

>   builder for '/nix/store/xs8my3rrc3l4kdlbpx0azh6q0v0jxphr-gdb-gdb-11.0.90.drv' failed with exit code 2

>   error: build of '/nix/store/xs8my3rrc3l4kdlbpx0azh6q0v0jxphr-gdb-gdb-11.0.90.drv' failed

> 

> In the nix build environment, /usr/bin/env is not present, only /bin/sh

> is.  This patch makes sure that gdb/make-init-c uses '/bin/sh' as

> interpreter as this is the only one available on this platform.

> 

> I do not think this change will cause regressions on any other

> configuration, but feedbacks on portability with regard to this issue

> are welcome.

> 

> This patch is intended for both master and gdb-11-branch.

> 

> [1] https://nixos.org/

> 

> gdb/Changelog

> 

> 	* make-init-c: Use /bin/sh as shebang.

> ---

>  gdb/make-init-c | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

> 

> diff --git a/gdb/make-init-c b/gdb/make-init-c

> index e3c5985f133..d8630591c89 100755

> --- a/gdb/make-init-c

> +++ b/gdb/make-init-c

> @@ -1,4 +1,4 @@

> -#!/usr/bin/env sh

> +#!/bin/sh

>  

>  # Copyright (C) 2013-2021 Free Software Foundation, Inc.

>  #

> 


This is ok.  I didn't use /usr/bin/env for a particular reason, it's
just by habit.

Simon
Simon Marchi via Gdb-patches July 13, 2021, 10:11 p.m. | #2
Hi,

I have pushed this commit to both master and gdb-11-branch (with a
changelog entry for the latter).

Thanks,
Lancelot.

On Mon, Jul 12, 2021 at 08:42:59PM -0400, Simon Marchi via Gdb-patches wrote:
> 

> 

> On 2021-07-12 8:19 p.m., Lancelot SIX via Gdb-patches wrote:

> > While testing the NixOS[1] packaging for gdb-11.0.90.tar.xz, I got the

> > following error:

> > 

> >   […]

> >   CXX    aarch32-tdep.o

> >   CXX    gdb.o

> >   GEN    init.c

> >   /nix/store/26a78ync552m8j4sbjavhvkmnqir8c9y-bash-4.4-p23/bin/bash: ./make-init-c: /usr/bin/env: bad interpreter: No such file or directory

> >   make[2]: *** [Makefile:1866: stamp-init] Error 126

> >   make[2]: *** Waiting for unfinished jobs....

> >   make[2]: Leaving directory '/build/gdb-11.0.90/gdb'

> >   make[1]: *** [Makefile:9814: all-gdb] Error 2

> >   make[1]: Leaving directory '/build/gdb-11.0.90'

> >   make: *** [Makefile:903: all] Error 2

> >   builder for '/nix/store/xs8my3rrc3l4kdlbpx0azh6q0v0jxphr-gdb-gdb-11.0.90.drv' failed with exit code 2

> >   error: build of '/nix/store/xs8my3rrc3l4kdlbpx0azh6q0v0jxphr-gdb-gdb-11.0.90.drv' failed

> > 

> > In the nix build environment, /usr/bin/env is not present, only /bin/sh

> > is.  This patch makes sure that gdb/make-init-c uses '/bin/sh' as

> > interpreter as this is the only one available on this platform.

> > 

> > I do not think this change will cause regressions on any other

> > configuration, but feedbacks on portability with regard to this issue

> > are welcome.

> > 

> > This patch is intended for both master and gdb-11-branch.

> > 

> > [1] https://nixos.org/

> > 

> > gdb/Changelog

> > 

> > 	* make-init-c: Use /bin/sh as shebang.

> > ---

> >  gdb/make-init-c | 2 +-

> >  1 file changed, 1 insertion(+), 1 deletion(-)

> > 

> > diff --git a/gdb/make-init-c b/gdb/make-init-c

> > index e3c5985f133..d8630591c89 100755

> > --- a/gdb/make-init-c

> > +++ b/gdb/make-init-c

> > @@ -1,4 +1,4 @@

> > -#!/usr/bin/env sh

> > +#!/bin/sh

> >  

> >  # Copyright (C) 2013-2021 Free Software Foundation, Inc.

> >  #

> > 

> 

> This is ok.  I didn't use /usr/bin/env for a particular reason, it's

> just by habit.

> 

> Simon
Joel Brobecker July 17, 2021, 6:34 p.m. | #3
> > diff --git a/gdb/make-init-c b/gdb/make-init-c

> > index e3c5985f133..d8630591c89 100755

> > --- a/gdb/make-init-c

> > +++ b/gdb/make-init-c

> > @@ -1,4 +1,4 @@

> > -#!/usr/bin/env sh

> > +#!/bin/sh

> >  

> >  # Copyright (C) 2013-2021 Free Software Foundation, Inc.

> >  #

> > 

> 

> This is ok.  I didn't use /usr/bin/env for a particular reason, it's

> just by habit.


Maybe what we could be doing is make sure that the Makefile calls
the script using $SHELL?

-- 
Joel
Simon Marchi via Gdb-patches July 18, 2021, 2:45 a.m. | #4
On 2021-07-17 2:34 p.m., Joel Brobecker wrote:
>>> diff --git a/gdb/make-init-c b/gdb/make-init-c

>>> index e3c5985f133..d8630591c89 100755

>>> --- a/gdb/make-init-c

>>> +++ b/gdb/make-init-c

>>> @@ -1,4 +1,4 @@

>>> -#!/usr/bin/env sh

>>> +#!/bin/sh

>>>  

>>>  # Copyright (C) 2013-2021 Free Software Foundation, Inc.

>>>  #

>>>

>>

>> This is ok.  I didn't use /usr/bin/env for a particular reason, it's

>> just by habit.

> 

> Maybe what we could be doing is make sure that the Makefile calls

> the script using $SHELL?

> 


That would be fine with me.

Simon

Patch

diff --git a/gdb/make-init-c b/gdb/make-init-c
index e3c5985f133..d8630591c89 100755
--- a/gdb/make-init-c
+++ b/gdb/make-init-c
@@ -1,4 +1,4 @@ 
-#!/usr/bin/env sh
+#!/bin/sh
 
 # Copyright (C) 2013-2021 Free Software Foundation, Inc.
 #