Skip to contentSkip to conversation

init/Kconfig: Specify the interpreter for rust-version.sh

PATCH Superseded SeongJae Park 3 participants 4 messages Jan 6, 2022 – Jan 10, 2022 Rust

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 init/Kconfig: Specify the interpreter for rust-version.sh

Some common tools like 'diff' don't support permissions of the files. Due to that, 'rust-version.sh' in some trees including '-mm' result in having no execution permission, and therefore build fails like below:

    $ make O=../linux.out/ olddefconfig
    make[1]: Entering directory 'linux.out'
      GEN     Makefile
    sh: 1: linux/scripts/rust-version.sh: Permission denied
    init/Kconfig:71: syntax error
    init/Kconfig:70: invalid statement
    linux/scripts/kconfig/Makefile:77: recipe for target 'olddefconfig' failed
    make[2]: *** [olddefconfig] Error 1
    linux/Makefile:666: recipe for target 'olddefconfig' failed
    make[1]: *** [olddefconfig] Error 2
    make[1]: Leaving directory 'linux.out'
    Makefile:226: recipe for target '__sub-make' failed
    make: *** [__sub-make] Error 2

It's not a big deal, but not so fun. This commit fixes the issue by specifying the interpreter for 'rust-version.sh' in the Kconfig file.

---
 init/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
init/Kconfig +1 -1
index cd23faa163d1..97ab35692d46 100644
@@ -67,7 +67,7 @@ config HAS_RUST
 config RUSTC_VERSION
 	depends on HAS_RUST
 	int
-	default $(shell,$(srctree)/scripts/rust-version.sh $(RUSTC))
+	default $(shell,/bin/sh $(srctree)/scripts/rust-version.sh $(RUSTC))
 
 config CC_CAN_LINK
 	bool
Signature · 1 line
2.17.1
Reviewed-by on v1 1/1
#1 lore raw
Quoted 18 lines · SeongJae Park

Some common tools like 'diff' don't support permissions of the files. Due to that, 'rust-version.sh' in some trees including '-mm' result in having no execution permission, and therefore build fails like below:

    $ make O=../linux.out/ olddefconfig
    make[1]: Entering directory 'linux.out'
      GEN     Makefile
    sh: 1: linux/scripts/rust-version.sh: Permission denied
    init/Kconfig:71: syntax error
    init/Kconfig:70: invalid statement
    linux/scripts/kconfig/Makefile:77: recipe for target 'olddefconfig' failed
    make[2]: *** [olddefconfig] Error 1
    linux/Makefile:666: recipe for target 'olddefconfig' failed
    make[1]: *** [olddefconfig] Error 2
    make[1]: Leaving directory 'linux.out'
    Makefile:226: recipe for target '__sub-make' failed
    make: *** [__sub-make] Error 2
Quoted 4 lines

It's not a big deal, but not so fun. This commit fixes the issue by specifying the interpreter for 'rust-version.sh' in the Kconfig file.

Quoted 20 lines
---
 init/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
init/Kconfig +1 -1
index cd23faa163d1..97ab35692d46 100644
@@ -67,7 +67,7 @@ config HAS_RUST
 config RUSTC_VERSION
 	depends on HAS_RUST
 	int
-	default $(shell,$(srctree)/scripts/rust-version.sh $(RUSTC))
+	default $(shell,/bin/sh $(srctree)/scripts/rust-version.sh $(RUSTC))
 
 config CC_CAN_LINK
 	bool
Signature · 1 line
2.17.1
#2 lore raw
In reply to SeongJae Park
Quoted 4 lines · SeongJae Park

Some common tools like 'diff' don't support permissions of the files. Due to that, 'rust-version.sh' in some trees including '-mm' result in having no execution permission, and therefore build fails like below:

Do you mean the Quilt workflow? From a quick look:

https://lists.nongnu.org/archive/html/quilt-dev/2008-01/msg00000.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=749069

Is that the issue? I am surprised it loses that information...

Quoted 2 lines

It's not a big deal, but not so fun. This commit fixes the issue by specifying the interpreter for 'rust-version.sh' in the Kconfig file.

Other script calls do not do that, so I would prefer to avoid it. But I can take it temporarily to help you (until we are in mainline, if I understand correctly the issue), but I would prefer to have a comment nearby it justifying the workaround and explaining when we can remove it.

Cheers,
Miguel

#3 lore raw
Quoted 6 lines · On Sun, 9 Jan 2022 21:38:40 +0100 Miguel Ojeda…
Quoted 4 lines · SeongJae Park

Some common tools like 'diff' don't support permissions of the files. Due to that, 'rust-version.sh' in some trees including '-mm' result in having no execution permission, and therefore build fails like below:

Quoted 6 lines

Do you mean the Quilt workflow? From a quick look:

https://lists.nongnu.org/archive/html/quilt-dev/2008-01/msg00000.html
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=749069

Is that the issue? I am surprised it loses that information...

Right. I once encountered similar issue with DAMON kselftest[1], and as a result we made kselftest deals with such case[2].

[1] https://lore.kernel.org/mm-commits/[email protected]/
[2] https://lore.kernel.org/linux-kselftest/[email protected]/

Quoted 9 lines
Quoted 3 lines

It's not a big deal, but not so fun. This commit fixes the issue by specifying the interpreter for 'rust-version.sh' in the Kconfig file.

Other script calls do not do that, so I would prefer to avoid it. But I can take it temporarily to help you (until we are in mainline, if I understand correctly the issue), but I would prefer to have a comment nearby it justifying the workaround and explaining when we can remove it.

Fully agreed. I will send v2 with the comment.

Thanks,
SJ

Quoted 4 lines

Cheers,
Miguel