libs
libs copied to clipboard
Last stable release (0.14.3) fails to build kernel module with Linux 6.8.
Last stable release (0.14.3) fails to build kernel module with Linux 6.8.
error: implicit declaration of function ‘strlcpy’
Possibly fixed with https://github.com/falcosecurity/libs/commit/350208fac72a72d5e95dca0363ec52b018d40d84 and https://github.com/falcosecurity/libs/commit/18c33257e962dc17e189735756a4d95358226e91
Unfortunately it's not trivial to cherry-pick the fixes (there are 187 commits since last release) so I wonder when the next stable release is planned? Or maybe someone can provide a list of commits that can be backported?
Also, CheckSymbolExists in libscap.cmake falsely detects existence of STRL* in string.h which are disable by a macro __USE_MISC for Linux systems.
include(CheckSymbolExists)
check_symbol_exists(strlcpy "string.h" HAVE_STRLCPY)
check_symbol_exists(strlcat "string.h" HAVE_STRLCAT)
Background: Ubuntu 24.04 is almost in Beta and they already moved to Linux 6.8. Ubuntu and and Debian still use 0.14.1 and need to be "persuaded" to update to next release but 0.14.3 is still not enough for newer Kernels.
Below is the build log:
DKMS make.log for scap-0.14.3 for kernel 6.8.0-11-generic (x86_64)
Fri Mar 8 12:45:16 PM MST 2024
make: Entering directory '/usr/src/linux-headers-6.8.0-11-generic'
warning: the compiler differs from the one used to build the kernel
The kernel was built by: x86_64-linux-gnu-gcc-13 (Ubuntu 13.2.0-13ubuntu1) 13.2.0
You are using: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0
CC [M] /var/lib/dkms/scap/0.14.3/build/main.o
CC [M] /var/lib/dkms/scap/0.14.3/build/dynamic_params_table.o
CC [M] /var/lib/dkms/scap/0.14.3/build/fillers_table.o
CC [M] /var/lib/dkms/scap/0.14.3/build/flags_table.o
CC [M] /var/lib/dkms/scap/0.14.3/build/ppm_events.o
CC [M] /var/lib/dkms/scap/0.14.3/build/ppm_fillers.o
CC [M] /var/lib/dkms/scap/0.14.3/build/event_table.o
CC [M] /var/lib/dkms/scap/0.14.3/build/syscall_table64.o
CC [M] /var/lib/dkms/scap/0.14.3/build/ppm_cputime.o
/var/lib/dkms/scap/0.14.3/build/ppm_cputime.c:353:10: warning: no previous prototype for ‘nsec_to_clock_t’ [-Wmissing-prototypes]
353 | uint64_t nsec_to_clock_t(uint64_t x)
| ^~~~~~~~~~~~~~~
CC [M] /var/lib/dkms/scap/0.14.3/build/ppm_tp.o
/var/lib/dkms/scap/0.14.3/build/main.c:2838:5: warning: no previous prototype for ‘scap_init’ [-Wmissing-prototypes]
2838 | int scap_init(void)
| ^~~~~~~~~
/var/lib/dkms/scap/0.14.3/build/main.c:3001:6: warning: no previous prototype for ‘scap_exit’ [-Wmissing-prototypes]
3001 | void scap_exit(void)
| ^~~~~~~~~
CC [M] /var/lib/dkms/scap/0.14.3/build/syscall_ia32_64_map.o
/var/lib/dkms/scap/0.14.3/build/ppm_events.c: In function ‘val_to_ring’:
/var/lib/dkms/scap/0.14.3/build/ppm_events.c:652:36: error: implicit declaration of function ‘strlcpy’; did you mean ‘strscpy’? [-Werror=implicit-function-declaration]
652 | len = (int)strlcpy(args->buffer + args->arg_data_offset,
| ^~~~~~~
| strscpy
/var/lib/dkms/scap/0.14.3/build/ppm_fillers.c:509:14: warning: no previous prototype for ‘ppm_get_mm_exe_file’ [-Wmissing-prototypes]
509 | struct file *ppm_get_mm_exe_file(struct mm_struct *mm)
| ^~~~~~~~~~~~~~~~~~~
/var/lib/dkms/scap/0.14.3/build/ppm_fillers.c:550:15: warning: no previous prototype for ‘ppm_get_mm_counter’ [-Wmissing-prototypes]
550 | unsigned long ppm_get_mm_counter(struct mm_struct *mm, int member)
| ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/scap/0.14.3/build/ppm_fillers.c:728:5: warning: no previous prototype for ‘accumulate_argv_or_env’ [-Wmissing-prototypes]
728 | int accumulate_argv_or_env(const char __user * __user *argv,
| ^~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/scap/0.14.3/build/ppm_fillers.c:874:6: warning: no previous prototype for ‘ppm_is_upper_layer’ [-Wmissing-prototypes]
874 | bool ppm_is_upper_layer(struct file *exe_file){
| ^~~~~~~~~~~~~~~~~~
/var/lib/dkms/scap/0.14.3/build/ppm_fillers.c:2261:5: warning: no previous prototype for ‘f_sys_send_e_common’ [-Wmissing-prototypes]
2261 | int f_sys_send_e_common(struct event_filler_arguments *args, int *fd)
| ^~~~~~~~~~~~~~~~~~~
/var/lib/dkms/scap/0.14.3/build/ppm_fillers.c:2397:5: warning: no previous prototype for ‘f_sys_recv_x_common’ [-Wmissing-prototypes]
2397 | int f_sys_recv_x_common(struct event_filler_arguments *args, int64_t *retval)
| ^~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:243: /var/lib/dkms/scap/0.14.3/build/ppm_events.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/usr/src/linux-headers-6.8.0-11-generic/Makefile:1926: /var/lib/dkms/scap/0.14.3/build] Error 2
make: *** [Makefile:240: __sub-make] Error 2
make: Leaving directory '/usr/src/linux-headers-6.8.0-11-generic'
Please check out our build badges in https://github.com/falcosecurity/libs -> 6.8-rc7 is currently red. We usually wait until a kernel officially gets out of rc to avoid a feature being reverted again, which has happened in the past. CC @FedeDP.
Hi! Kernel 6.8 is already fixed since a couple of weeks! CI check is red because we have a different bug(related to driverkit) in libs master that I fixed this morning, tomorrow will be green! About the next release, it is scheduled somewhere during the next week!
Ubuntu 24.04 is almost in Beta and they already moved to Linux 6.8. Ubuntu and and Debian still use 0.14.1 and need to be "persuaded" to update to next release but 0.14.3 is still not enough for newer Kernels.
Uh didn't notice this part. While we plan to tag libs 0.15.0 and drivers during this week (or by the end of the next one), we won't release a new Falco until the end of May.
/milestone next-driver
Drivers 7.1.0+driver are now tagged. We can consider this issue as solved.
/close
@FedeDP: Closing this issue.
In response to this:
Drivers
7.1.0+driverare now tagged. We can consider this issue as solved. /close
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.