Skip to content

Conversation

@MrXinWang
Copy link
Member

This commit adds a Jenkins stage to enable AArch64 CI with musl toolchain.

Signed-off-by: Henry Wang [email protected]

@MrXinWang MrXinWang mentioned this pull request Jul 8, 2020
8 tasks
@MrXinWang MrXinWang marked this pull request as draft July 8, 2020 03:58
@MrXinWang MrXinWang force-pushed the arm64_musl branch 3 times, most recently from 32e4366 to 821b65c Compare July 10, 2020 08:17
ln -s /usr/include/aarch64-linux-gnu/asm /usr/include/aarch64-linux-musl/asm \
&& ln -s /usr/include/asm-generic /usr/include/aarch64-linux-musl/asm-generic \
&& ln -s /usr/include/linux /usr/include/aarch64-linux-musl/linux \
&& mkdir /openssl-musl && wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1f.tar.gz \
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wondering if we need to pin the specific version of openssl.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also do we need to update the version of Dockerfile again? This modification is also AArch64 only, even if we keep the version the same as before (i.e. v4), nothing will be broken.

@MrXinWang MrXinWang marked this pull request as ready for review July 10, 2020 08:19
@MrXinWang MrXinWang requested review from rbradford and sboeuf July 10, 2020 08:20
@MrXinWang
Copy link
Member Author

MrXinWang commented Jul 10, 2020

Hi @sboeuf @rbradford, now this PR is ready for review. Previously the CI failed because of some additional crates (for example: ssh2) were needed in compiling the test binaries. On arm64, openssl needs to be recompiled against musl glibc to fix this issue.

I left some of my concerns in the review of myself. Would be more than happy to get some comments from you :)

Copy link
Member

@rbradford rbradford left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you get away with only using musl to build the cloud-hypervisor binary but continue to use glibc for the test suite (i.e. the cargo tests) This would remove the need for the openssl hack?

@MrXinWang
Copy link
Member Author

Could you get away with only using musl to build the cloud-hypervisor binary but continue to use glibc for the test suite (i.e. the cargo tests) This would remove the need for the openssl hack?

@rbradford Yes I can confirm that without the openssl hack the musl toolchain can be used to build the cloud-hypervisor binary. If we only need to build the binary using musl, I am happy to remove the workaround I made.

@rbradford
Copy link
Member

@MrXinWang Please proceed with that. We only need to build the cloud-hypervisor binary itself with the toolchain.

This commit adds required environment configurations to the
`dev_cli.sh` and a Jenkins stage to enable AArch64 binary
building using musl toolchain.

Signed-off-by: Henry Wang <[email protected]>
@MrXinWang
Copy link
Member Author

@rbradford Reversed the unit/integration test support code. PTAL. Thanks!

@sboeuf sboeuf merged commit 5a2ff98 into cloud-hypervisor:master Jul 15, 2020
@MrXinWang MrXinWang deleted the arm64_musl branch June 4, 2021 07:37
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.

3 participants