-
Notifications
You must be signed in to change notification settings - Fork 560
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
op/pack.t FAIL on 32-bit archs (i386, arm32v5, arm32v7) #22618
Comments
This test tries to get the integer representation of a pointer via unpack 'j', pack 'P'. But an IV is not necessarily the same size as a pointer. In particular, on 32-bit platforms with -Duse64bitint we have sizeof (IV) == 8 and sizeof (void *) == 4, which makes unpack 'j' fail (the input string is too short) and return undef. Work around the issue by checking for the most common pointer sizes (4 and 8 bytes) and selecting an appropriate integer unpack format. In all other cases (exotic platforms?), just skip the test. Fixes Perl#22618.
I believe this is caused by building with |
Hi @mauke, thanks for the prompt reply! 🙇 I'm also checking if this might be a change due to underlying base Docker image, since https://github.com/Perl/docker-perl/actions/runs/10963019337/job/30443596763#step:4:4036 actually passed this prior to getting rebuilt on Docker's infra. Still, this hypothesis looks promising, will await it 🤞 |
This test tries to get the integer representation of a pointer via unpack 'j', pack 'P'. But an IV is not necessarily the same size as a pointer. In particular, on 32-bit platforms with -Duse64bitint we have sizeof (IV) == 8 and sizeof (void *) == 4, which makes unpack 'j' fail (the input string is too short) and return undef. Work around the issue by checking for the most common pointer sizes (4 and 8 bytes) and selecting an appropriate integer unpack format. In all other cases (exotic platforms?), just skip the test. Fixes Perl#22618.
Thanks for the fix @mauke ! 🙇 |
Module:
Description
Hello from the @Perl/docker-team 👋 First off, thank you for the 5.41.4 release! 🎉
I got feedback from the Docker official-images team (cc @yosifkit) of a build failure on 32-bit archs (i386, arm32v5, and arm32v7) for the recent release of perl-5.41.4. Not sure if this is related to the recent
pack()
fixes as mentioned in https://metacpan.org/release/CONTRA/perl-5.41.4/view/pod/perldelta.pod#Selected-Bug-FixesCould be a failure in the test planning itself at around
perl5/t/op/pack.t
Line 355 in adaa1f0
t/op/pack.t
(e.g.make test_harness TEST_ARGS="-v" TEST_FILES="op/pack.t"
):Show output
Steps to Reproduce
See docker-library/official-images#17600 (comment) for the relevant build logs. For local reproduction, this is possible via any 32-bit Docker builder (including 32-bit emulation under amd64) for example:
Outside of Docker, building perl-5.41.4 through the standard
sh Configure -des; make; make test_harness
on an i386 system would suffice.Expected behavior
Building perl-5.41.4 on 32-bit archs should succeed.
Perl configuration
N/A as perl did not build successfully 😿
./myconfig
output in lieu:Show output
Will follow-up with further reproductions when able.
The text was updated successfully, but these errors were encountered: