You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
onload/src/driver/linux_resource/syscall_aarch64.c:47:20: error: redefinition of ‘aarch64_insn_is_bti’
47 | static inline bool aarch64_insn_is_bti(u32 code)
...
onload/src/driver/linux_onload/onload_kernel_compat.h:65:19: error: redefinition of ‘is_compat_task’
65 | static inline int is_compat_task(void)
applying this small fix:
diff --git a/src/driver/linux_onload/onload_kernel_compat.h b/src/driver/linux_onload/onload_kernel_compat.h
index 3ca63c79b914..9821f21611d8 100644
--- a/src/driver/linux_onload/onload_kernel_compat.h+++ b/src/driver/linux_onload/onload_kernel_compat.h@@ -61,7 +61,7 @@ ci_call_usermodehelper(char *path, char **argv, char **envp, int wait);
#endif
/* is_compat_task() was removed for x86 in linux-4.6 */
-#ifdef EFRM_NEED_IS_COMPAT_TASK+#if defined(EFRM_NEED_IS_COMPAT_TASK) && !defined(CONFIG_ARM64)
static inline int is_compat_task(void)
{
#if !defined(CONFIG_COMPAT)
diff --git a/src/driver/linux_resource/syscall_aarch64.c b/src/driver/linux_resource/syscall_aarch64.c
index 46319cad41e3..70a070a9e771 100644
--- a/src/driver/linux_resource/syscall_aarch64.c+++ b/src/driver/linux_resource/syscall_aarch64.c@@ -44,12 +44,12 @@ static typeof(aarch64_insn_adrp_get_offset) *ci_aarch64_insn_adrp_get_offset;
/* Linux does not have any function to check for 'bti' instruction. So we
* define it by ourselves. */
-static inline bool aarch64_insn_is_bti(u32 code)-{- u32 mask = 0xFFFFFF3F;- u32 val = 0xD503241F;- return (code & mask) == val;-}+// static inline bool aarch64_insn_is_bti(u32 code)+// {+// u32 mask = 0xFFFFFF3F;+// u32 val = 0xD503241F;+// return (code & mask) == val;+// }
/* Depending on the kernel version, locating the syscall table may be more
* or less straigthforward.
does manage to compile the driver.
Nevertheless, when trying to compile the userspace component with:
make -C "$(mmaketool --toppath)/build/$(mmaketool --userbuild)"
The compilation starts failing with a more serious issue:
onload/src/lib/ciul/shrub_server.c:656:3: error: implicit declaration of function ‘ci_bit_for_each_set’ [-Werror=implicit-function-declaration]
656 | ci_bit_for_each_set(ix, (const ci_bits*)server->vi->efct_rxqs.active_qs,
which makes sense considering that the macro ci_bit_for_each_set is only defined in src/include/ci/tools/platform/gcc_x86.h and not in src/include/ci/tools/platform/gcc_aarch64.h.
Tried digging into the build system, but I couldn't find how to disable the unit-testing compilation (if this is even possible), not sure if it's the only part which doesn't seem to compile on ARM.
System information
I'm running Ubuntu 24.04 AWS server version with a vanilla kernel 6.9 (compiled with the same configuration as the distributed one, but with MTD module added).
Different driver component compilation with Amazon Linux 2023
Tried to also run the same compilation test on a distribution onload used to compile on (though can't remember which version \=).
The same compilation error for ci_bit_for_each_set is encountered there as well, but interestingly enough the driver part is able to compile without any modifications.
Might be a compatibility thing. Amazon Linux 2023 runs kernel 6.1.112 and gcc (GCC) 11.4.1. I ran a dry run on both distros and compared the files which are being compiled. The same 308 files are compiled on both.
In any rate since it's not a supported distribution according to the main readme, I'm mostly concerned with the Ubuntu compilation error.
The text was updated successfully, but these errors were encountered:
Hi,
wonder if anyone has encountered the issue or has an idea off the top on his/her head for the cause
Encountered issue
Following compilation instructions:
On Ubuntu 24.04, raises the following errors:
applying this small fix:
does manage to compile the driver.
Nevertheless, when trying to compile the userspace component with:
make -C "$(mmaketool --toppath)/build/$(mmaketool --userbuild)"
The compilation starts failing with a more serious issue:
which makes sense considering that the macro
ci_bit_for_each_set
is only defined insrc/include/ci/tools/platform/gcc_x86.h
and not insrc/include/ci/tools/platform/gcc_aarch64.h
.Tried digging into the build system, but I couldn't find how to disable the unit-testing compilation (if this is even possible), not sure if it's the only part which doesn't seem to compile on ARM.
System information
I'm running Ubuntu 24.04 AWS server version with a vanilla kernel 6.9 (compiled with the same configuration as the distributed one, but with MTD module added).
Different driver component compilation with Amazon Linux 2023
Tried to also run the same compilation test on a distribution onload used to compile on (though can't remember which version \=).
The same compilation error for
ci_bit_for_each_set
is encountered there as well, but interestingly enough the driver part is able to compile without any modifications.Might be a compatibility thing. Amazon Linux 2023 runs kernel 6.1.112 and
gcc (GCC) 11.4.1
. I ran a dry run on both distros and compared the files which are being compiled. The same 308 files are compiled on both.In any rate since it's not a supported distribution according to the main readme, I'm mostly concerned with the Ubuntu compilation error.
The text was updated successfully, but these errors were encountered: