Closed enclave-alistair closed 2 years ago
Any idea on what tests are failing on ARM? Any hints in the test/default/*.log
files?
@jedisct1; all tests fail with cannot execute binary file: Exec format error
.
I'm guessing that make check is building an arm binary, but then trying to run it directly rather than via QEMU.
When I call configure in the build I run ./configure --disable-debug --prefix=$PWD/.libsodium-build --host=aarch64-linux-gnu
. Any thoughts on why that --host
argument may not be making it through to the make check?
I still think that it would be really good if we could add back support for Ubuntu 16.04, CentOS 7, and Debian 9.
It seems this pull request is mergeable if we forgo the tests on ARM (like we do in #1106). Would that be possible?
Is it something we can maintain?
Ubuntu 16.04 reached end of life in April 2021, so it may soon not be available in GitHub Actions any more.
It seems that Ubuntu 16.04 reached end of standard support in April 2021 but won't EOL before April 2026. So I'd assume that it won't go away anytime soon (it's currently even officially supported by .NET 6). If it eventually does, we can still go "back" to a later version, right?
Just a note that I'm happy to continue supporting/working on this PR (16.04 is still something I'd like to support), if someone is able to assist me getting make check
to run on QEMU if I pass a --host
argument. It may just be a makefile change, but to be honest I don't have the make experience to make such a change without breaking everything else...
May I propose that we skip make check
on QEMU for now (which should bring this PR into a mergeable state, right?) and go ahead with the other bits?
Yep, that sounds good.
Sorry for the delay @ektrah and @jedisct1, just got back to this; pushed the change to disable make check
on linux-arm64.
Also had to change the windows build to use vs2022, since it looks like that's what's available on the windows-latest
runner. Seems like the nuget build hasn't worked on stable
for a little while.
There is a passing nuget build in my fork: https://github.com/enclave-alistair/libsodium/runs/5213899558
@jedisct1, I believe this is ready to merge and push a new nuget release?
@enclave-alistair Great!
Changes usually go from master
to stable
, never the other way round.
There are a couple conflicts here, I'm going to look at these.
Great; let me know if you want me to retarget master my side.
Also added tests that run the linux-x64 tests inside a centos container to verify the builds work on those OS versions.
One caveat, this fix currently won't allow Debian 9 on ARM chipsets via the nuget package, which is a supported .NET 5 target. (CentOS on ARM is not supported in .NET).
The reason for this is that I haven't been able to get the QEMU compilation for arm to run successfully inside a docker container (the tests don't pass). It might be possible somehow, but figured it might be best to get the CentOS x64 support in and go back for Debian on ARM?
It's worth noting that .NET 6 will remove support for Debian 9 (and will require Debian 10+). So this may not be as big of a deal.
Fixes #1075