msquic
msquic copied to clipboard
Cannot cross compile to Linux ARM64 on Linux x86_64
Describe the bug
I get a compilation error when trying to build for Linux ARM64 on the linux-build-xcomp:22.04 docker image while building for Linux x86_64 works. I'm trying to build the secnetperf executable for both architecture.
Affected OS
- [ ] Windows
- [X] Linux
- [ ] macOS
- [ ] Other (specify below)
Additional OS information
Linux Ubuntu 22.04.3 LTS 5.15.0-91-generic x86_64 Docker version 24.0.7, build afdd53b
MsQuic version
main
Steps taken to reproduce bug
- Run the following commands on a Linux machine with docker installed :
docker pull ghcr.io/microsoft/msquic/linux-build-xcomp:22.04
docker run -it --rm --volume "$(pwd)/bin:/work/bin" ghcr.io/microsoft/msquic/linux-build-xcomp:22.04 bash
- Run the following commands inside the docker container :
cd work
git clone https://github.com/microsoft/msquic.git
cd msquic
pwsh
- Run the following commands inside the powershell :
./scripts/prepare-machine.ps1 -ForContainerBuild
./scripts/build.ps1 -Config Release -Arch arm64 -Platform linux -DisableTools -DisableTest -Clean
- See the following error (truncated for brevity) :
...
In file included from ../../../../../../../submodules/openssl3/crypto/armcap.c:26:
../../../../../../../submodules/openssl3/crypto/arm_arch.h:50:6: error: #error "unsupported ARM architecture"
50 | # error "unsupported ARM architecture"
| ^~~~~
...
make[4]: *** [Makefile:3912: crypto/libcrypto-lib-armcap.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[4]: Leaving directory '/work/msquic/build/linux/arm64_openssl3/_deps/opensslquic-build/submodules/openssl3'
make[3]: *** [Makefile:1406: build_libs] Error 2
make[3]: Leaving directory '/work/msquic/build/linux/arm64_openssl3/_deps/opensslquic-build/submodules/openssl3'
gmake[2]: *** [_deps/opensslquic-build/CMakeFiles/OpenSSL_Target.dir/build.make:74: _deps/opensslquic-build/openssl3/lib/libssl.a] Error 2
gmake[2]: Leaving directory '/work/msquic/build/linux/arm64_openssl3'
gmake[1]: *** [CMakeFiles/Makefile2:226: _deps/opensslquic-build/CMakeFiles/OpenSSL_Target.dir/all] Error 2
gmake[1]: Leaving directory '/work/msquic/build/linux/arm64_openssl3'
gmake: *** [Makefile:146: all] Error 2
Write-Error: /work/msquic/scripts/build.ps1:523
Line |
523 | CMake-Execute $Arguments
| ~~~~~~~~~~~~~~~~~~~~~~~~
| [12/22/2023 12:42:21] CMake exited with status code 2
Expected behavior
The build for Linux ARM64 on the linux-build-xcomp:22.04 docker image should succeed.
Actual outcome
The build fail saying the ARM architecture is unsupported.
Additional details
No response