Add ARM32/ARM64 CI #930
pull sipa wants to merge 2 commits into bitcoin-core:master from sipa:202104_armci changing 2 files +49 −0-
sipa commented at 7:49 pm on May 2, 2021: contributor
-
sipa force-pushed on May 2, 2021
-
sipa force-pushed on May 2, 2021
-
sipa force-pushed on May 2, 2021
-
sipa cross-referenced this on May 2, 2021 from issue Arm ASM builds are broken by gmaxwell
-
sipa force-pushed on May 2, 2021
-
sipa force-pushed on May 2, 2021
-
sipa force-pushed on May 2, 2021
-
in .cirrus.yml:222 in 541269f65a outdated
217+ - env: {} 218+ - env: {ASM: arm} 219+ << : *MERGE_BASE 220+ test_script: 221+ # https://sourceware.org/bugzilla/show_bug.cgi?id=27008 222+ - rm /etc/ld.so.cache
real-or-random commented at 9:32 am on May 3, 2021:I don’t think we need these lines. This is really only an issue when using qemu with a different endianness, so this affects us only on s390x.
sipa commented at 7:04 pm on May 3, 2021:Done, let’s see.real-or-random approvedreal-or-random commented at 9:33 am on May 3, 2021: contributorACK mod nitreal-or-random commented at 9:52 am on May 3, 2021: contributorWait, the expectation was probably that this should break due to #931.
I think this is related to the “shortcut” in configure.ac that simply uses the native toolchain to build gen_context when we’re not cross-compiling. In this case, we are cross compiling, so we don’t take that shortcut.
I’ll have a look.
real-or-random commented at 12:39 pm on May 3, 2021: contributorWait, the expectation was probably that this should break due to #931.
I think this is related to the “shortcut” in configure.ac that simply uses the native toolchain to build gen_context when we’re not cross-compiling. In this case, we are cross compiling, so we don’t take that shortcut.
I’ll have a look.
Ok I think I was a little confused when I wrote that. The issue #931 appears when compiling gen_context for the build machine. On CI, we cross-compile for ARM, so building gen_context for the CI machine is never an issue.
I think no simple CI test could test for the breakage in #931. We could of course cross-compile
gen_context
and then run it on qemu.One possible way to do so without fiddling around with the build system would be to rely on
binfmt_misc
, a kernel feature which allows you to run commands like./cmd
which then will be automatically wrapped, e.g., by qemu or wine. (This is why my machine will build and rungen_context.exe
when cross-compiling for mingw…) But I heardbinfmt_misc
has some issues with Docker.Another possible way is to simply add a CI job that manually cross-compiles
gen_context
for ARM and runs it on qemu. But this doesn’t really test if the autoconf build works.So I’m not convinced that testing this on CI is worth the hassle.
Anyway, my ACK on this PR is still valid.
real-or-random commented at 1:08 pm on May 3, 2021: contributorStill, these are very useful CI targets I think.
For sure, and this fixes #598.
edit: By the way, I’m happy to see that it really wasn’t a lot of work to add this build and the mingw build. So it seems that the general structure of the CI is pretty portable and adding qemu buils is simply a matter of installing the right Debian packages and passing the right HOST.
gmaxwell commented at 1:56 pm on May 3, 2021: contributorif this supports a full docker environment could we just run qemu-system and run a whole emulated distribution? :P That said, having a cross compile to arm test is really really good too.Add ARM32/ARM64 CI 7d65ed5214Add asm build to ARM32 CI 8bbad7a18esipa force-pushed on May 3, 2021real-or-random approvedreal-or-random commented at 10:38 am on May 5, 2021: contributorACK 8bbad7a18e5dc5054b27ae44ea0c8dffe050f6bf CI output looks finejonasnick commented at 7:30 pm on May 13, 2021: contributorACK 8bbad7a18e5dc5054b27ae44ea0c8dffe050f6bfjonasnick merged this on May 13, 2021jonasnick closed this on May 13, 2021
real-or-random cross-referenced this on Jun 10, 2021 from issue Add arm8 tests to the testing configuration. by gmaxwelljonasnick cross-referenced this on Jun 14, 2021 from issue Upstream PRs 831, 907, 903, 889, 918, 906, 928, 922, 933, Merge bitcoin-core/secp256k1#936: Fix gen_context/ASM build on ARM, 925, 937, 926, Merge bitcoin-core/secp256k1#940: contrib: Explain explicit header guards, 850, 930, 941, 846, 947, 662, 950 by jonasnickreal-or-random cross-referenced this on Dec 20, 2021 from issue Travis should build and test arm asm by gmaxwell
This is a metadata mirror of the GitHub repository bitcoin-core/secp256k1. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-10-30 05:15 UTC
More mirrored repositories can be found on mirror.b10c.me