lib/build_OID_registry | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
On a system with Perl 5.12.1, commit 5ef6dc08cfde
("lib/build_OID_registry: don't mention the full path of the script in
output") causes the build to fail with the error below.
Bareword found where operator expected at ./lib/build_OID_registry line 41, near "s#^\Q$abs_srctree/\E##r"
syntax error at ./lib/build_OID_registry line 41, near "s#^\Q$abs_srctree/\E##r"
Execution of ./lib/build_OID_registry aborted due to compilation errors.
make[3]: *** [lib/Makefile:352: lib/oid_registry_data.c] Error 255
Ahmad Fatoum analyzed that non-destructive substitution is only supported since
Perl 5.13.2. Instead of dropping `r` and having the side effect of modifying
`$0`, introduce a dedicated variable to support older Perl versions.
Fixes: 5ef6dc08cfde ("lib/build_OID_registry: don't mention the full path of
the script in output")
Link: https://lore.kernel.org/all/259f7a87-2692-480e-9073-1c1c35b52f67@molgen.mpg.de/
Solution-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Cc: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Cc: Nicolas Schier <nicolas@fjasle.eu>
Cc: Masahiro Yamada <masahiroy@kernel.org>
Cc: kernel@pengutronix.de
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Ahmad Fatoum <a.fatoum@pengutronix.de>
Cc: it+linux-kconfig@molgen.mpg.de
Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de>
---
lib/build_OID_registry | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/build_OID_registry b/lib/build_OID_registry
index 56d8bafeb848b..8267e8d71338b 100755
--- a/lib/build_OID_registry
+++ b/lib/build_OID_registry
@@ -38,7 +38,9 @@ close IN_FILE || die;
#
open C_FILE, ">$ARGV[1]" or die;
print C_FILE "/*\n";
-print C_FILE " * Automatically generated by ", $0 =~ s#^\Q$abs_srctree/\E##r, ". Do not edit\n";
+my $scriptname = $0;
+$scriptname =~ s#^\Q$abs_srctree/\E##;
+print C_FILE " * Automatically generated by ", $scriptname, ". Do not edit\n";
print C_FILE " */\n";
#
--
2.40.1
Hello Paul,
On Mon, Jul 01, 2024 at 05:58:01PM +0200, Paul Menzel wrote:
> On a system with Perl 5.12.1, commit 5ef6dc08cfde
> ("lib/build_OID_registry: don't mention the full path of the script in
> output") causes the build to fail with the error below.
>
> Bareword found where operator expected at ./lib/build_OID_registry line 41, near "s#^\Q$abs_srctree/\E##r"
> syntax error at ./lib/build_OID_registry line 41, near "s#^\Q$abs_srctree/\E##r"
> Execution of ./lib/build_OID_registry aborted due to compilation errors.
> make[3]: *** [lib/Makefile:352: lib/oid_registry_data.c] Error 255
>
> Ahmad Fatoum analyzed that non-destructive substitution is only supported since
> Perl 5.13.2. Instead of dropping `r` and having the side effect of modifying
> `$0`, introduce a dedicated variable to support older Perl versions.
>
> Fixes: 5ef6dc08cfde ("lib/build_OID_registry: don't mention the full path of
> the script in output")
No real objection from my side. But if this is an issue for you, I
recommend to upgrade your build system. Looking at Debian releases
(because they are known for their up-to-date software) and their
included versions of Perl, we have:
release | releaseno | Perl version | release date
---------+-----------+--------------+-------------------
squeeze | 6 | 5.10.1 | February 6th, 2011
wheezy | 7 | 5.14.2 | May 4th, 2013
jessie | 8 | 5.20.2 | April 26th, 2015
stretch | 9 | 5.24.1 | June 17th, 2017
buster | 10 | 5.28.1 | July 6th, 2019
bullseye | 11 | 5.32.1 | August 14th, 2021
bookworm | 12 | 5.36.0 | June 10th, 2023
So wheezy is new enough, and that's 11 years old.
Perl 5.13.2 was released June 22, 2010---that's 14 years ago.
I don't know about your build environment, but I wonder if a system that
old can really build a recent kernel (if the patch under discussion is
applied).
Best regards
Uwe
On Mon, Jul 01, 2024 at 08:01:46PM +0200, Uwe Kleine-König wrote:
> Hello Paul,
>
> On Mon, Jul 01, 2024 at 05:58:01PM +0200, Paul Menzel wrote:
> > On a system with Perl 5.12.1, commit 5ef6dc08cfde
> > ("lib/build_OID_registry: don't mention the full path of the script in
> > output") causes the build to fail with the error below.
> >
> > Bareword found where operator expected at ./lib/build_OID_registry line 41, near "s#^\Q$abs_srctree/\E##r"
> > syntax error at ./lib/build_OID_registry line 41, near "s#^\Q$abs_srctree/\E##r"
> > Execution of ./lib/build_OID_registry aborted due to compilation errors.
> > make[3]: *** [lib/Makefile:352: lib/oid_registry_data.c] Error 255
> >
> > Ahmad Fatoum analyzed that non-destructive substitution is only supported since
> > Perl 5.13.2. Instead of dropping `r` and having the side effect of modifying
> > `$0`, introduce a dedicated variable to support older Perl versions.
> >
> > Fixes: 5ef6dc08cfde ("lib/build_OID_registry: don't mention the full path of
> > the script in output")
>
> No real objection from my side. But if this is an issue for you, I
> recommend to upgrade your build system. Looking at Debian releases
> (because they are known for their up-to-date software) and their
> included versions of Perl, we have:
>
> release | releaseno | Perl version | release date
> ---------+-----------+--------------+-------------------
> squeeze | 6 | 5.10.1 | February 6th, 2011
> wheezy | 7 | 5.14.2 | May 4th, 2013
> jessie | 8 | 5.20.2 | April 26th, 2015
> stretch | 9 | 5.24.1 | June 17th, 2017
> buster | 10 | 5.28.1 | July 6th, 2019
> bullseye | 11 | 5.32.1 | August 14th, 2021
> bookworm | 12 | 5.36.0 | June 10th, 2023
>
> So wheezy is new enough, and that's 11 years old.
> Perl 5.13.2 was released June 22, 2010---that's 14 years ago.
>
> I don't know about your build environment, but I wonder if a system that
> old can really build a recent kernel (if the patch under discussion is
> applied).
I think, extending support by 6 weeks from Perl 5.13.2 (2010-06-22) to
Perl 5.12.1 (2010-05-16) [1] sounds a bit strange. I'd like to remember
that Masahiro recommended to just remove the script name from the
generated comment [2].
Would you mind satifying my curiosity: what distribution are you using?
Kind regards,
Nicolas
[1]: https://dev.perl.org/perl5/news/
[2]: https://lore.kernel.org/linux-kbuild/CAK7LNASa-KedA_CTww6unckAGkJCQTctdbk0d-MUsN7wQpM=kQ@mail.gmail.com/
© 2016 - 2025 Red Hat, Inc.