Skip to content

support arm64 architecture #38

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

Closed
wants to merge 1 commit into from
Closed

Conversation

longquan7
Copy link

I build the docker-perl/5.026.000-64bit/Dockerfile from arm64v8/buildpack-deps:stretch and make success,so I think we can add it to support arm64.

@zakame
Copy link
Member

zakame commented Aug 14, 2017

Thanks @longquan7 for the PR!

I took a deeper look at how multiple-architecture images can be supported and it seems we can specify additional Architectures in library/perl to include arm64v8. For now though, I'll have to verify first if our perls build and completely pass tests before proceeding.

@zakame zakame self-assigned this Aug 14, 2017
@longquan7
Copy link
Author

@zakame thank you, if you build and pass tests please let me know.

@zakame
Copy link
Member

zakame commented Aug 15, 2017

I got these test failures on my system building perl-5.26.0 on Ubuntu 16.04 aarch64 QEMU/KVM (closest I could get to an arm64v8:

Test Summary Report
-------------------
re/fold_grind.t                                                  (Wstat: 9 Tests: 0 Failed: 0)
  Non-zero wait status: 9
  Parse errors: No plan found in TAP output
re/pat_psycho.t                                                  (Wstat: 9 Tests: 13 Failed: 0)
  Non-zero wait status: 9
  Parse errors: Bad plan.  You planned 15 tests but ran 13.
Files=2560, Tests=1230777, 19982 wallclock secs (6029.22 usr 1776.39 sys + 29608.85 cusr 6851.37 csys = 44265.83 CPU)
Result: FAIL

Will be looking into it further (perhaps find myself a proper arm64v8 hardware and try to test it from there.)

@zakame
Copy link
Member

zakame commented Aug 15, 2017

Running re/pat_psycho.t on its own seems to make it pass:

root@0f2171d2f275:/usr/src/perl/t# LD_LIBRARY_PATH=.. ./perl harness re/pat_psycho.t 
re/pat_psycho.t .. ok     
All tests successful.
Files=1, Tests=15, 127 wallclock secs ( 0.28 usr  0.07 sys + 125.83 cusr  0.54 csys = 126.72 CPU)
Result: PASS

Which leads me to think it may be just a system load issue (since the tests are normally run with TEST_JOBS=$(nproc) tests in parallel, instead of one at a time.)

For re/fold_grind.t it seems that it happens too in sparc64, per this Debian bug from July. Running it on its own still fails:

root@0f2171d2f275:/usr/src/perl/t# LD_LIBRARY_PATH=.. ./perl harness re/fold_grind.t 
re/fold_grind.t .. 1/? # Test process timed out - terminating
re/fold_grind.t .. All 116 subtests passed 

Test Summary Report
-------------------
re/fold_grind.t (Wstat: 9 Tests: 116 Failed: 0)
  Non-zero wait status: 9
  Parse errors: No plan found in TAP output
Files=1, Tests=116, 301 wallclock secs ( 0.45 usr  0.08 sys + 300.36 cusr  0.33 csys = 301.22 CPU)
Result: FAIL

@longquan7
Copy link
Author

@zakame this problem influence that the image suport arm64 architecture?

@zakame
Copy link
Member

zakame commented Aug 16, 2017

@longquan7 at least for myself, I won't be able to support it properly if I can't replicate issues (or have access to an arm64 device.) I'll resolve this first somehow.

@longquan7
Copy link
Author

@zakame OK,thanks

@zakame
Copy link
Member

zakame commented Aug 17, 2017

For re/fold_grind.t a workaround is to increase the timeout via the PERL_TEST_TIME_OUT_FACTOR environment variable:

root@0f2171d2f275:/usr/src/perl/t# PERL_TEST_TIME_OUT_FACTOR=2 ./perl harness re/fold_grind.t 
re/fold_grind.t .. ok     
All tests successful.
Files=1, Tests=684, 549 wallclock secs ( 1.67 usr  0.10 sys + 547.65 cusr  0.60 csys = 550.02 CPU)
Result: PASS

@longquan7
Copy link
Author

longquan7 commented Aug 17, 2017

@zakame that's great. Is there anything else besides this problem

@zakame
Copy link
Member

zakame commented Aug 26, 2017

I tested on Packet.net's Type 2A servers and both 5.26{,-threaded} seem to build and test fine. Now checking on 5.24 and 5.22.

@zakame
Copy link
Member

zakame commented Aug 26, 2017

I can confirm that currently supported Perl versions (5.22 through 5.26) can build and test successfully on aarch64/arm64v8. I'll put an update to https://github.com/docker-library/official-images to include building arm64v8 in the perl image builder.

Thanks again!

zakame added a commit to zakame/docker-library-official-images that referenced this pull request Aug 26, 2017
- tagged buildpack-deps (Perl/docker-perl#35)
- more secure installation of cpanm (Perl/docker-perl#41)
- arm64v8 support (Perl/docker-perl#38)
@zakame
Copy link
Member

zakame commented Aug 26, 2017

@zakame zakame closed this Aug 26, 2017
@longquan7
Copy link
Author

@zakame OK.thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants