* [PATCH 0/5] perl-ptest: fix 5 of the ExtUtils ptests
@ 2025-05-15 16:50 Rajendra Desai
2025-05-15 16:50 ` [PATCH 1/5] perl-ptest: include gcc as a recommended package Rajendra Desai
` (4 more replies)
0 siblings, 5 replies; 8+ messages in thread
From: Rajendra Desai @ 2025-05-15 16:50 UTC (permalink / raw)
To: openembedded-core; +Cc: Rajendra Desai
This patch series fixes 5 of the perl ExtUtils ptests which
were skipping or giving out the warning due to missing packages.
The fix consists of 5 patches which combinely adds missing
packages and resolves missing file error. More details about the
changes have been explained in each of the patches.
Rajendra Desai (5):
perl-ptest: include gcc as a recommended package
perl-ptest: include libxcrypt-dev as recommended
perl-ptest: include g++ as a recommended package
perl-ptest: include make as a recommended package
perl-ptest: copy xconfig data from perl source directory
meta/recipes-devtools/perl/perl-ptest.inc | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
--
2.34.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/5] perl-ptest: include gcc as a recommended package
2025-05-15 16:50 [PATCH 0/5] perl-ptest: fix 5 of the ExtUtils ptests Rajendra Desai
@ 2025-05-15 16:50 ` Rajendra Desai
2025-05-16 6:16 ` [OE-core] " Richard Purdie
2025-05-15 16:50 ` [PATCH 2/5] perl-ptest: include libxcrypt-dev as recommended Rajendra Desai
` (3 subsequent siblings)
4 siblings, 1 reply; 8+ messages in thread
From: Rajendra Desai @ 2025-05-15 16:50 UTC (permalink / raw)
To: openembedded-core; +Cc: Rajendra Desai
The following perl ptests:
dist/ExtUtils-ParseXS/t/001-basic
dist/ExtUtils-ParseXS/t/002-more
dist/ExtUtils-ParseXS/t/003-usage
are giving out below warning while running on the yocto CI build:
Can't exec "x86_64-poky-linux-gcc": No such file or directory at
/usr/lib/perl/ptest/dist/ExtUtils-ParseXS/../../lib/ExtUtils/CBuilder/Base.pm
line 362.
additionally, 2 of the tests are skipping out:
SKIP: cpan/ExtUtils-Constant/t/Constant
SKIP: cpan/ExtUtils-MakeMaker/t/02-xsdynamic
This is mainly due to a missing gcc dependency which is needed by
the above tests. Hence, adding the package under RRECOMMENDS to
make sure the tests are able to find the compiler and that the
tests do not skip or output the missing file or directory warning.
Signed-off-by: Rajendra Desai <rajendra.desai@emerson.com>
---
meta/recipes-devtools/perl/perl-ptest.inc | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta/recipes-devtools/perl/perl-ptest.inc b/meta/recipes-devtools/perl/perl-ptest.inc
index 4b4756118c..817ad401f4 100644
--- a/meta/recipes-devtools/perl/perl-ptest.inc
+++ b/meta/recipes-devtools/perl/perl-ptest.inc
@@ -60,6 +60,7 @@ python populate_packages:prepend() {
}
RDEPENDS:${PN}-ptest += "${PN}-modules ${PN}-doc sed procps-ps"
+RRECOMMENDS:${PN}-ptest += "gcc"
# The perl-ptest package contains Perl internal modules and generating file
# dependencies for it causes problems.
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/5] perl-ptest: include libxcrypt-dev as recommended
2025-05-15 16:50 [PATCH 0/5] perl-ptest: fix 5 of the ExtUtils ptests Rajendra Desai
2025-05-15 16:50 ` [PATCH 1/5] perl-ptest: include gcc as a recommended package Rajendra Desai
@ 2025-05-15 16:50 ` Rajendra Desai
2025-05-16 9:28 ` [OE-core] " Mathieu Dubois-Briand
2025-05-15 16:50 ` [PATCH 3/5] perl-ptest: include g++ as a recommended package Rajendra Desai
` (2 subsequent siblings)
4 siblings, 1 reply; 8+ messages in thread
From: Rajendra Desai @ 2025-05-15 16:50 UTC (permalink / raw)
To: openembedded-core; +Cc: Rajendra Desai
The following perl ptests:
dist/ExtUtils-ParseXS/t/001-basic
dist/ExtUtils-ParseXS/t/002-more
dist/ExtUtils-ParseXS/t/003-usage
cpan/ExtUtils-Constant/t/Constant
cpan/ExtUtils-MakeMaker/t/02-xsdynamic
are erroring out with:
In file included from /usr/lib/perl/ptest/op.h:700,
from /usr/lib/perl/ptest/perl.h:4553,
from XSUsage.xs:2:
/usr/lib/perl/ptest/reentr.h:126:16: fatal error: crypt.h: No such file or directory
126 | # include <crypt.h>
| ^~~~~~~~~
compilation terminated.
error building XSUsage.o from 'XSUsage.c' at /usr/lib/perl/ptest/dist/ExtUtils-ParseXS/../../lib/ExtUtils/CBuilder/Base.pm line 185.
This is because the tests require crypt.h file which is provided
by the libxcrypt-dev package. Hence, adding the package under
RRECOMMENDS to make sure the tests are able to find the required
header file and not fail with the above error.
Signed-off-by: Rajendra Desai <rajendra.desai@emerson.com>
---
meta/recipes-devtools/perl/perl-ptest.inc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-devtools/perl/perl-ptest.inc b/meta/recipes-devtools/perl/perl-ptest.inc
index 817ad401f4..3eab5e25e9 100644
--- a/meta/recipes-devtools/perl/perl-ptest.inc
+++ b/meta/recipes-devtools/perl/perl-ptest.inc
@@ -60,7 +60,7 @@ python populate_packages:prepend() {
}
RDEPENDS:${PN}-ptest += "${PN}-modules ${PN}-doc sed procps-ps"
-RRECOMMENDS:${PN}-ptest += "gcc"
+RRECOMMENDS:${PN}-ptest += "gcc libxcrypt-dev"
# The perl-ptest package contains Perl internal modules and generating file
# dependencies for it causes problems.
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/5] perl-ptest: include g++ as a recommended package
2025-05-15 16:50 [PATCH 0/5] perl-ptest: fix 5 of the ExtUtils ptests Rajendra Desai
2025-05-15 16:50 ` [PATCH 1/5] perl-ptest: include gcc as a recommended package Rajendra Desai
2025-05-15 16:50 ` [PATCH 2/5] perl-ptest: include libxcrypt-dev as recommended Rajendra Desai
@ 2025-05-15 16:50 ` Rajendra Desai
2025-05-15 16:50 ` [PATCH 4/5] perl-ptest: include make " Rajendra Desai
2025-05-15 16:50 ` [PATCH 5/5] perl-ptest: copy xconfig data from perl source directory Rajendra Desai
4 siblings, 0 replies; 8+ messages in thread
From: Rajendra Desai @ 2025-05-15 16:50 UTC (permalink / raw)
To: openembedded-core; +Cc: Rajendra Desai
The following perl ptests:
dist/ExtUtils-ParseXS/t/001-basic
dist/ExtUtils-ParseXS/t/002-more
dist/ExtUtils-ParseXS/t/003-usage
are giving out below warning while running on the yocto CI build:
/usr/lib/gcc/x86_64-poky-linux/14.2.0/../../../../x86_64-poky-linux/bin/ld: cannot find crtbeginS.o: No such file or directory
/usr/lib/gcc/x86_64-poky-linux/14.2.0/../../../../x86_64-poky-linux/bin/ld: cannot find -lgcc: No such file or directory
/usr/lib/gcc/x86_64-poky-linux/14.2.0/../../../../x86_64-poky-linux/bin/ld: cannot find -lgcc_s: No such file or directory
collect2: error: ld returned 1 exit status
additionally, 2 of the tests are skipping out:
SKIP: cpan/ExtUtils-Constant/t/Constant
/usr/lib/gcc/x86_64-poky-linux/14.2.0/../../../../x86_64-poky-linux/bin/ld: cannot find crtbeginS.o: No such file or directory
/usr/lib/gcc/x86_64-poky-linux/14.2.0/../../../../x86_64-poky-linux/bin/ld: cannot find -lgcc: No such file or directory
/usr/lib/gcc/x86_64-poky-linux/14.2.0/../../../../x86_64-poky-linux/bin/ld: cannot find -lgcc_s: No such file or directory
collect2: error: ld returned 1 exit status
SKIP: cpan/ExtUtils-MakeMaker/t/02-xsdynamic
This is mainly due to a missing g++ dependency which is needed by
the above tests. Hence, adding the package under RRECOMMENDS to
make sure the tests are able to find the compiler and that the
tests do not skip or output the missing file or directory warning.
Signed-off-by: Rajendra Desai <rajendra.desai@emerson.com>
---
meta/recipes-devtools/perl/perl-ptest.inc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-devtools/perl/perl-ptest.inc b/meta/recipes-devtools/perl/perl-ptest.inc
index 3eab5e25e9..e14f0d0403 100644
--- a/meta/recipes-devtools/perl/perl-ptest.inc
+++ b/meta/recipes-devtools/perl/perl-ptest.inc
@@ -60,7 +60,7 @@ python populate_packages:prepend() {
}
RDEPENDS:${PN}-ptest += "${PN}-modules ${PN}-doc sed procps-ps"
-RRECOMMENDS:${PN}-ptest += "gcc libxcrypt-dev"
+RRECOMMENDS:${PN}-ptest += "gcc libxcrypt-dev g++"
# The perl-ptest package contains Perl internal modules and generating file
# dependencies for it causes problems.
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 4/5] perl-ptest: include make as a recommended package
2025-05-15 16:50 [PATCH 0/5] perl-ptest: fix 5 of the ExtUtils ptests Rajendra Desai
` (2 preceding siblings ...)
2025-05-15 16:50 ` [PATCH 3/5] perl-ptest: include g++ as a recommended package Rajendra Desai
@ 2025-05-15 16:50 ` Rajendra Desai
2025-05-15 16:50 ` [PATCH 5/5] perl-ptest: copy xconfig data from perl source directory Rajendra Desai
4 siblings, 0 replies; 8+ messages in thread
From: Rajendra Desai @ 2025-05-15 16:50 UTC (permalink / raw)
To: openembedded-core; +Cc: Rajendra Desai
The following perl ptest:
cpan/ExtUtils-MakeMaker/t/02-xsdynamic
is failing with below error:
Failed test '"make" exited normally'
at lib/MakeMaker/Test/Setup/XS.pm line 448.
got: '32512'
expected: '0'
sh: make: not found
This is mainly due to a missing make dependency which is needed by
the above test. Hence, adding the package under RRECOMMENDS.
Signed-off-by: Rajendra Desai <rajendra.desai@emerson.com>
---
meta/recipes-devtools/perl/perl-ptest.inc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-devtools/perl/perl-ptest.inc b/meta/recipes-devtools/perl/perl-ptest.inc
index e14f0d0403..df6db7def9 100644
--- a/meta/recipes-devtools/perl/perl-ptest.inc
+++ b/meta/recipes-devtools/perl/perl-ptest.inc
@@ -60,7 +60,7 @@ python populate_packages:prepend() {
}
RDEPENDS:${PN}-ptest += "${PN}-modules ${PN}-doc sed procps-ps"
-RRECOMMENDS:${PN}-ptest += "gcc libxcrypt-dev g++"
+RRECOMMENDS:${PN}-ptest += "gcc libxcrypt-dev g++ make"
# The perl-ptest package contains Perl internal modules and generating file
# dependencies for it causes problems.
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 5/5] perl-ptest: copy xconfig data from perl source directory
2025-05-15 16:50 [PATCH 0/5] perl-ptest: fix 5 of the ExtUtils ptests Rajendra Desai
` (3 preceding siblings ...)
2025-05-15 16:50 ` [PATCH 4/5] perl-ptest: include make " Rajendra Desai
@ 2025-05-15 16:50 ` Rajendra Desai
4 siblings, 0 replies; 8+ messages in thread
From: Rajendra Desai @ 2025-05-15 16:50 UTC (permalink / raw)
To: openembedded-core; +Cc: Rajendra Desai
The following perl ptests:
- dist/ExtUtils-ParseXS/t/001-basic
- dist/ExtUtils-ParseXS/t/002-more
- dist/ExtUtils-ParseXS/t/003-usage
- cpan/ExtUtils-Constant/t/Constant
- cpan/ExtUtils-MakeMaker/t/02-xsdynamic
are erroring out with:
| /usr/lib/perl/ptest/perl_langinfo.h:8:10: fatal error:
xconfig.h: No such file or directory
| 8 | #include "xconfig.h"
xconfig.h contains references to the build host architecture and was
removed by commit 2e0f30c46802 ("perl: do not install files that
contain build host specific data")
However, it is still included from various other places including
these tests, and we are still depending on build host architecture
data by including the patches from perl-cross recipe, a dependency
to perl recipe.
xconfig.h was added back as a copy step in the commit 5b18d7a0c048
("update 5.36.1 -> 5.38.0") but was not added back in perl-ptest
include file.
Borrowed the logic from the above commit to make a copy of config.h
that is specific to the target architecture. The changes in this
commit fixes the test failures.
Signed-off-by: Rajendra Desai <rajendra.desai@emerson.com>
---
meta/recipes-devtools/perl/perl-ptest.inc | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/meta/recipes-devtools/perl/perl-ptest.inc b/meta/recipes-devtools/perl/perl-ptest.inc
index df6db7def9..d9eb0a1905 100644
--- a/meta/recipes-devtools/perl/perl-ptest.inc
+++ b/meta/recipes-devtools/perl/perl-ptest.inc
@@ -20,6 +20,11 @@ do_install_ptest () {
ln -sf ${bindir}/perl ${D}${PTEST_PATH}/t/perl
+ # xconfig.h contains references to build host architecture, and yet is included from various other places.
+ # To make it reproducible let's make it a copy of config.h patch that is specific to the target architecture.
+ # It is believed that the original header is the product of building miniperl (a helper executable built with host compiler).
+ cp ${D}${libdir}/perl5/${PV}/${TARGET_ARCH}-linux/CORE/config.h ${D}${PTEST_PATH}/xconfig.h
+
# Remove build host references from various scattered files...
find "${D}${PTEST_PATH}" \
\( -name '*.PL' -o -name 'myconfig' -o -name 'cflags' -o -name '*.pl' -o -name '*.sh' -o -name '*.pm' \
@@ -44,7 +49,7 @@ do_install_ptest () {
sed -i -e '/Autogenerated starting on/d' ${D}${PTEST_PATH}/lib/unicore/mktables.lst
# Remove files with host-specific configuration for building native binaries
- rm ${D}${PTEST_PATH}/Makefile.config ${D}${PTEST_PATH}/xconfig.h ${D}${PTEST_PATH}/xconfig.sh
+ rm ${D}${PTEST_PATH}/Makefile.config ${D}${PTEST_PATH}/xconfig.sh
# create an empty file that is checked for existence by makerel test
touch ${D}${PTEST_PATH}/win32/Makefile
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [OE-core] [PATCH 1/5] perl-ptest: include gcc as a recommended package
2025-05-15 16:50 ` [PATCH 1/5] perl-ptest: include gcc as a recommended package Rajendra Desai
@ 2025-05-16 6:16 ` Richard Purdie
0 siblings, 0 replies; 8+ messages in thread
From: Richard Purdie @ 2025-05-16 6:16 UTC (permalink / raw)
To: rajendra.desai, openembedded-core
On Thu, 2025-05-15 at 22:20 +0530, Rajendra Desai via lists.openembedded.org wrote:
> The following perl ptests:
>
> dist/ExtUtils-ParseXS/t/001-basic
> dist/ExtUtils-ParseXS/t/002-more
> dist/ExtUtils-ParseXS/t/003-usage
>
> are giving out below warning while running on the yocto CI build:
> Can't exec "x86_64-poky-linux-gcc": No such file or directory at
> /usr/lib/perl/ptest/dist/ExtUtils-ParseXS/../../lib/ExtUtils/CBuilder/Base.pm
> line 362.
>
> additionally, 2 of the tests are skipping out:
> SKIP: cpan/ExtUtils-Constant/t/Constant
> SKIP: cpan/ExtUtils-MakeMaker/t/02-xsdynamic
>
> This is mainly due to a missing gcc dependency which is needed by
> the above tests. Hence, adding the package under RRECOMMENDS to
> make sure the tests are able to find the compiler and that the
> tests do not skip or output the missing file or directory warning.
>
> Signed-off-by: Rajendra Desai <rajendra.desai@emerson.com>
> ---
> meta/recipes-devtools/perl/perl-ptest.inc | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/meta/recipes-devtools/perl/perl-ptest.inc b/meta/recipes-devtools/perl/perl-ptest.inc
> index 4b4756118c..817ad401f4 100644
> --- a/meta/recipes-devtools/perl/perl-ptest.inc
> +++ b/meta/recipes-devtools/perl/perl-ptest.inc
> @@ -60,6 +60,7 @@ python populate_packages:prepend() {
> }
>
> RDEPENDS:${PN}-ptest += "${PN}-modules ${PN}-doc sed procps-ps"
> +RRECOMMENDS:${PN}-ptest += "gcc"
>
> # The perl-ptest package contains Perl internal modules and generating file
> # dependencies for it causes problems.
We've avoided doing this as there are key elements of a build that
require perl and this means those builds will now build gcc. It
effectively means that even small images will end up building target
toolchain tools. I'm not sure that is what people want, even if it does
come at the price of a small number of skipped ptests.
We should perhaps comment this in the recipe through so people know
we've considered it.
Cheers,
Richard
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [OE-core] [PATCH 2/5] perl-ptest: include libxcrypt-dev as recommended
2025-05-15 16:50 ` [PATCH 2/5] perl-ptest: include libxcrypt-dev as recommended Rajendra Desai
@ 2025-05-16 9:28 ` Mathieu Dubois-Briand
0 siblings, 0 replies; 8+ messages in thread
From: Mathieu Dubois-Briand @ 2025-05-16 9:28 UTC (permalink / raw)
To: rajendra.desai, openembedded-core
On Thu May 15, 2025 at 6:50 PM CEST, Rajendra Desai via lists.openembedded.org wrote:
> The following perl ptests:
>
> dist/ExtUtils-ParseXS/t/001-basic
> dist/ExtUtils-ParseXS/t/002-more
> dist/ExtUtils-ParseXS/t/003-usage
> cpan/ExtUtils-Constant/t/Constant
> cpan/ExtUtils-MakeMaker/t/02-xsdynamic
>
> are erroring out with:
> In file included from /usr/lib/perl/ptest/op.h:700,
> from /usr/lib/perl/ptest/perl.h:4553,
> from XSUsage.xs:2:
> /usr/lib/perl/ptest/reentr.h:126:16: fatal error: crypt.h: No such file or directory
> 126 | # include <crypt.h>
> | ^~~~~~~~~
> compilation terminated.
> error building XSUsage.o from 'XSUsage.c' at /usr/lib/perl/ptest/dist/ExtUtils-ParseXS/../../lib/ExtUtils/CBuilder/Base.pm line 185.
>
> This is because the tests require crypt.h file which is provided
> by the libxcrypt-dev package. Hence, adding the package under
> RRECOMMENDS to make sure the tests are able to find the required
> header file and not fail with the above error.
>
> Signed-off-by: Rajendra Desai <rajendra.desai@emerson.com>
> ---
Hi Rajendra,
Thanks for your patch.
I believe this is breaking builds, at least the musl ones:
ERROR: Nothing RPROVIDES 'libxcrypt-dev' (but /srv/pokybuild/yocto-worker/musl-qemux86-64/build/meta/recipes-devtools/perl/perl_5.40.2.bb RDEPENDS on or otherwise requires it)
libxcrypt RPROVIDES libxcrypt-dev but was skipped: PREFERRED_PROVIDER_virtual/crypt set to musl, not libxcrypt
https://autobuilder.yoctoproject.org/valkyrie/#/builders/3/builds/1679
https://autobuilder.yoctoproject.org/valkyrie/#/builders/6/builds/1649
Can you have a look at this failure please?
--
Mathieu Dubois-Briand, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-05-16 9:28 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-15 16:50 [PATCH 0/5] perl-ptest: fix 5 of the ExtUtils ptests Rajendra Desai
2025-05-15 16:50 ` [PATCH 1/5] perl-ptest: include gcc as a recommended package Rajendra Desai
2025-05-16 6:16 ` [OE-core] " Richard Purdie
2025-05-15 16:50 ` [PATCH 2/5] perl-ptest: include libxcrypt-dev as recommended Rajendra Desai
2025-05-16 9:28 ` [OE-core] " Mathieu Dubois-Briand
2025-05-15 16:50 ` [PATCH 3/5] perl-ptest: include g++ as a recommended package Rajendra Desai
2025-05-15 16:50 ` [PATCH 4/5] perl-ptest: include make " Rajendra Desai
2025-05-15 16:50 ` [PATCH 5/5] perl-ptest: copy xconfig data from perl source directory Rajendra Desai
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.