Skip to content
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

ci: Enable CI on aarch64 #167

Merged
merged 4 commits into from
Nov 9, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,9 @@ jobs:
"""
CPU architecture supported by CI.
"""
x86_64 = "x86_64"
aarch64 = "aarch64"
s390x = "s390x"
x86_64 = "x86_64"

def set_output(name, value):
"""Write an output variable to the GitHub output file."""
Expand Down Expand Up @@ -66,6 +67,8 @@ jobs:
matrix = [
{"kernel": "LATEST", "runs_on": [], "arch": Arch.x86_64.value, "toolchain": "gcc"},
{"kernel": "LATEST", "runs_on": [], "arch": Arch.x86_64.value, "toolchain": "${{ needs.llvm-toolchain.outputs.llvm }}"},
{"kernel": "LATEST", "runs_on": [], "arch": Arch.aarch64.value, "toolchain": "gcc"},
{"kernel": "LATEST", "runs_on": [], "arch": Arch.aarch64.value, "toolchain": "${{ needs.llvm-toolchain.outputs.llvm }}"},
{"kernel": "LATEST", "runs_on": [], "arch": Arch.s390x.value, "toolchain": "gcc"},
]
self_hosted_repos = [
Expand Down Expand Up @@ -168,7 +171,7 @@ jobs:
# zstd is installed by default in the runner images.
tar -cf - \
"${KBUILD_OUTPUT}"/.config \
"${KBUILD_OUTPUT}"/arch/*/boot/bzImage \
"${KBUILD_OUTPUT}"/$(KBUILD_OUTPUT="${KBUILD_OUTPUT}" make -s image_name) \
"${KBUILD_OUTPUT}"/include/config/auto.conf \
"${KBUILD_OUTPUT}"/include/generated/autoconf.h \
"${KBUILD_OUTPUT}"/vmlinux \
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
Recently, ld.lld moved from '--undefined-version' to
'--no-undefined-version' as the default, which breaks building the vDSO
when CONFIG_X86_SGX is not set:

ld.lld: error: version script assignment of 'LINUX_2.6' to symbol '__vdso_sgx_enter_enclave' failed: symbol not defined

__vdso_sgx_enter_enclave is only included in the vDSO when
CONFIG_X86_SGX is set. Only export it if it will be present in the final
object, which clears up the error.

Link: https://github.com/ClangBuiltLinux/linux/issues/1756
Signed-off-by: Nathan Chancellor <[email protected]>
---

It would be nice if this could be picked up for an -rc release but I
won't argue otherwise.

Alternatively, we could add '--undefined-version' to the vDSO ldflags
but this does not seem unreasonable to me.

arch/x86/entry/vdso/vdso.lds.S | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/x86/entry/vdso/vdso.lds.S b/arch/x86/entry/vdso/vdso.lds.S
index 4bf48462fca7..e8c60ae7a7c8 100644
--- a/arch/x86/entry/vdso/vdso.lds.S
+++ b/arch/x86/entry/vdso/vdso.lds.S
@@ -27,7 +27,9 @@ VERSION {
__vdso_time;
clock_getres;
__vdso_clock_getres;
+#ifdef CONFIG_X86_SGX
__vdso_sgx_enter_enclave;
+#endif
local: *;
};
}

base-commit: f0c4d9fc9cc9462659728d168387191387e903cc

--
2.38.1


3 changes: 3 additions & 0 deletions ci/vmtest/configs/DENYLIST.aarch64
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
cgrp_local_storage # libbpf: prog 'update_cookie_tracing': failed to attach: ERROR: strerror_r(-524)=22
usdt/multispec # usdt_300_bad_attach unexpected pointer: 0x558c63d8f0
core_reloc_btfgen # run_core_reloc_tests:FAIL:run_btfgen unexpected error: 32512 (errno 22)