Skip to content

Fails to build on 6.13 #2151

@ionelmc

Description

@ionelmc

From what I can tell the kernel version check was replaced with some a configure time check but it's broken and get the access_ok signature wrong. A regression of #1299

[165/171] Installing sysdig-0:0.40.1_rc2-1.x86_64                                                                                                                          100% |   7.2 MiB/s |  46.6 MiB |  00m06s
>>> Running post-install scriptlet: sysdig-0:0.40.1_rc2-1.x86_64
>>> Non-critical error in post-install scriptlet: sysdig-0:0.40.1_rc2-1.x86_64
>>> Scriptlet output:
>>> Creating symlink /var/lib/dkms/scap/8.0.0+driver/source -> /usr/src/scap-8.0.0+driver
>>> Sign command: /lib/modules/6.13.8-200.fc41.x86_64/build/scripts/sign-file
>>> Signing key: /var/lib/dkms/mok.key
>>> Public certificate (MOK): /var/lib/dkms/mok.pub
>>>
>>> Cleaning build area... done.
>>> Building module(s)...(bad exit status: 2)
>>> Failed command:
>>> make -j15 KERNELRELEASE=6.13.8-200.fc41.x86_64 -C /lib/modules/6.13.8-200.fc41.x86_64/build M=/var/lib/dkms/scap/8.0.0+driver/build
>>>
>>> Error! Bad return status for module build on kernel: 6.13.8-200.fc41.x86_64 (x86_64)
>>> Consult /var/lib/dkms/scap/8.0.0+driver/build/make.log for more information.
>>> Sign command: /lib/modules/6.13.8-200.fc41.x86_64/build/scripts/sign-file
>>> Signing key: /var/lib/dkms/mok.key
>>> Public certificate (MOK): /var/lib/dkms/mok.pub
>>>
>>> Cleaning build area... done.
>>> Building module(s)...(bad exit status: 2)
>>> Failed command:
>>> make -j15 KERNELRELEASE=6.13.8-200.fc41.x86_64 -C /lib/modules/6.13.8-200.fc41.x86_64/build M=/var/lib/dkms/scap/8.0.0+driver/build
>>>
>>> Error! Bad return status for module build on kernel: 6.13.8-200.fc41.x86_64 (x86_64)
>>> Consult /var/lib/dkms/scap/8.0.0+driver/build/make.log for more information.
>>>
>>> [RPM] %post(sysdig-0.40.1_rc2-1.x86_64) scriptlet failed, exit status 10

build logs

DKMS (dkms-3.1.6) make.log for scap/8.0.0+driver for kernel 6.13.8-200.fc41.x86_64 (x86_64)
Wed Mar 26 11:53:16 AM EET 2025

Cleaning build area
# command: make -C /lib/modules/6.13.8-200.fc41.x86_64/build M=/var/lib/dkms/scap/8.0.0+driver/build clean
make: Entering directory '/usr/src/kernels/6.13.8-200.fc41.x86_64'
make[1]: Entering directory '/var/lib/dkms/scap/8.0.0+driver/build'
make[1]: Leaving directory '/var/lib/dkms/scap/8.0.0+driver/build'
make: Leaving directory '/usr/src/kernels/6.13.8-200.fc41.x86_64'

# exit code: 0
# elapsed time: 00:00:00
----------------------------------------------------------------

Building module(s)
# command: make -j15 KERNELRELEASE=6.13.8-200.fc41.x86_64 -C /lib/modules/6.13.8-200.fc41.x86_64/build M=/var/lib/dkms/scap/8.0.0+driver/build
make: Entering directory '/usr/src/kernels/6.13.8-200.fc41.x86_64'
make[1]: Entering directory '/var/lib/dkms/scap/8.0.0+driver/build'
[configure-kmod] Including /var/lib/dkms/scap/8.0.0+driver/build//configure/DEVNODE_ARG1_CONST/Makefile.inc /var/lib/dkms/scap/8.0.0+driver/build//configure/ACCESS_OK_2/Makefile.inc /var/lib/dkms/scap/8.0.0+driver/build//configure/CLASS_CREATE_1/Makefile.inc
[configure-kmod] Build output for HAS_DEVNODE_ARG1_CONST:
[configure-kmod] make: Entering directory '/var/lib/dkms/scap/8.0.0+driver/build/configure/DEVNODE_ARG1_CONST' make -C /var/lib/dkms/scap/8.0.0+driver/build M=/var/lib/dkms/scap/8.0.0+driver/build/configure/DEVNODE_ARG1_CONST modules make[1]: Entering directory '/var/lib/dkms/scap/8.0.0+driver/build' make[1]: *** No rule to make target 'modules'.  Stop. make[1]: Leaving directory '/var/lib/dkms/scap/8.0.0+driver/build' make: *** [Makefile:15: all] Error 2 make: Leaving directory '/var/lib/dkms/scap/8.0.0+driver/build/configure/DEVNODE_ARG1_CONST'
[configure-kmod] Build output for HAS_ACCESS_OK_2:
[configure-kmod] make: Entering directory '/var/lib/dkms/scap/8.0.0+driver/build/configure/ACCESS_OK_2' make -C /var/lib/dkms/scap/8.0.0+driver/build M=/var/lib/dkms/scap/8.0.0+driver/build/configure/ACCESS_OK_2 modules make[1]: Entering directory '/var/lib/dkms/scap/8.0.0+driver/build' make[1]: *** No rule to make target 'modules'.  Stop. make[1]: Leaving directory '/var/lib/dkms/scap/8.0.0+driver/build' make: *** [Makefile:15: all] Error 2 make: Leaving directory '/var/lib/dkms/scap/8.0.0+driver/build/configure/ACCESS_OK_2'
[configure-kmod] Build output for HAS_CLASS_CREATE_1:
[configure-kmod] make: Entering directory '/var/lib/dkms/scap/8.0.0+driver/build/configure/CLASS_CREATE_1' make -C /var/lib/dkms/scap/8.0.0+driver/build M=/var/lib/dkms/scap/8.0.0+driver/build/configure/CLASS_CREATE_1 modules make[1]: Entering directory '/var/lib/dkms/scap/8.0.0+driver/build' make[1]: *** No rule to make target 'modules'.  Stop. make[1]: Leaving directory '/var/lib/dkms/scap/8.0.0+driver/build' make: *** [Makefile:15: all] Error 2 make: Leaving directory '/var/lib/dkms/scap/8.0.0+driver/build/configure/CLASS_CREATE_1'
  CC [M]  main.o
  CC [M]  dynamic_params_table.o
  CC [M]  fillers_table.o
  CC [M]  flags_table.o
  CC [M]  ppm_events.o
  CC [M]  ppm_fillers.o
  CC [M]  event_table.o
  CC [M]  syscall_table64.o
  CC [M]  ppm_cputime.o
  CC [M]  ppm_tp.o
  CC [M]  syscall_ia32_64_map.o
ppm_events.c: In function ‘ppm_copy_from_user’:
ppm_events.c:91:54: error: macro "access_ok" passed 3 arguments, but takes just 2
   91 |         if(likely(ppm_access_ok(VERIFY_READ, from, n)))
      |                                                      ^
In file included from /usr/src/kernels/6.13.8-200.fc41.x86_64/arch/x86/include/asm/uaccess.h:25,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/uaccess.h:12,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/sched/task.h:13,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/sched/signal.h:9,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/rcuwait.h:6,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/percpu-rwsem.h:7,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/fs.h:33,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/compat.h:17,
                 from ppm_events.c:13:
/usr/src/kernels/6.13.8-200.fc41.x86_64/include/asm-generic/access_ok.h:45:9: note: macro "access_ok" defined here
   45 | #define access_ok(addr, size) likely(__access_ok(addr, size))
      |         ^~~~~~~~~
In file included from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/export.h:5,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/linkage.h:7,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/arch/x86/include/asm/cache.h:5,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/cache.h:6,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/time.h:5,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/compat.h:10:
ppm_events.c:50:41: error: ‘access_ok’ undeclared (first use in this function)
   50 | #define ppm_access_ok(type, addr, size) access_ok(type, addr, size)
      |                                         ^~~~~~~~~
/usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/compiler.h:76:45: note: in definition of macro ‘likely’
   76 | # define likely(x)      __builtin_expect(!!(x), 1)
      |                                             ^
ppm_events.c:91:19: note: in expansion of macro ‘ppm_access_ok’
   91 |         if(likely(ppm_access_ok(VERIFY_READ, from, n)))
      |                   ^~~~~~~~~~~~~
ppm_events.c:50:41: note: each undeclared identifier is reported only once for each function it appears in
   50 | #define ppm_access_ok(type, addr, size) access_ok(type, addr, size)
      |                                         ^~~~~~~~~
/usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/compiler.h:76:45: note: in definition of macro ‘likely’
   76 | # define likely(x)      __builtin_expect(!!(x), 1)
      |                                             ^
ppm_events.c:91:19: note: in expansion of macro ‘ppm_access_ok’
   91 |         if(likely(ppm_access_ok(VERIFY_READ, from, n)))
      |                   ^~~~~~~~~~~~~
ppm_events.c: In function ‘ppm_strncpy_from_user’:
ppm_events.c:127:67: error: macro "access_ok" passed 3 arguments, but takes just 2
  127 |                 if(!ppm_access_ok(VERIFY_READ, from, bytes_to_read)) {
      |                                                                   ^
/usr/src/kernels/6.13.8-200.fc41.x86_64/include/asm-generic/access_ok.h:45:9: note: macro "access_ok" defined here
   45 | #define access_ok(addr, size) likely(__access_ok(addr, size))
      |         ^~~~~~~~~
In file included from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/printk.h:6,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/kernel.h:31,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/cpumask.h:11,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/smp.h:13,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/tracepoint.h:15,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/trace/syscall.h:5,
                 from main.c:14:
main.c: In function ‘scap_init’:
/usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/init.h:180:22: error: passing argument 1 of ‘class_create’ from incompatible pointer type [-Wincompatible-pointer-types]
  180 | #define THIS_MODULE (&__this_module)
      |                     ~^~~~~~~~~~~~~~~
      |                      |
      |                      struct module *
main.c:2893:36: note: in expansion of macro ‘THIS_MODULE’
 2893 |         g_ppm_class = class_create(THIS_MODULE, DRIVER_DEVICE_NAME);
      |                                    ^~~~~~~~~~~
In file included from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/device.h:31,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/node.h:18,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/cpu.h:17,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/static_call.h:135,
                 from /usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/tracepoint.h:22:
/usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/device/class.h:228:54: note: expected ‘const char *’ but argument is of type ‘struct module *’
  228 | struct class * __must_check class_create(const char *name);
      |                                          ~~~~~~~~~~~~^~~~
main.c:2893:23: error: too many arguments to function ‘class_create’
 2893 |         g_ppm_class = class_create(THIS_MODULE, DRIVER_DEVICE_NAME);
      |                       ^~~~~~~~~~~~
/usr/src/kernels/6.13.8-200.fc41.x86_64/include/linux/device/class.h:228:29: note: declared here
  228 | struct class * __must_check class_create(const char *name);
      |                             ^~~~~~~~~~~~
main.c:2904:30: error: assignment to ‘char * (*)(const struct device *, umode_t *)’ {aka ‘char * (*)(const struct device *, short unsigned int *)’} from incompatible pointer type ‘char * (*)(struct device *, umode_t *)’ {aka ‘char * (*)(struct device *, short unsigned int *)’} [-Wincompatible-pointer-types]
 2904 |         g_ppm_class->devnode = ppm_devnode;
      |                              ^
ppm_events.c:50:41: error: ‘access_ok’ undeclared (first use in this function)
   50 | #define ppm_access_ok(type, addr, size) access_ok(type, addr, size)
      |                                         ^~~~~~~~~
ppm_events.c:127:21: note: in expansion of macro ‘ppm_access_ok’
  127 |                 if(!ppm_access_ok(VERIFY_READ, from, bytes_to_read)) {
      |                     ^~~~~~~~~~~~~
make[3]: *** [/usr/src/kernels/6.13.8-200.fc41.x86_64/scripts/Makefile.build:196: main.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: *** [/usr/src/kernels/6.13.8-200.fc41.x86_64/scripts/Makefile.build:196: ppm_events.o] Error 1
make[2]: *** [/usr/src/kernels/6.13.8-200.fc41.x86_64/Makefile:2029: .] Error 2
make[1]: *** [/usr/src/kernels/6.13.8-200.fc41.x86_64/Makefile:263: __sub-make] Error 2
make[1]: Leaving directory '/var/lib/dkms/scap/8.0.0+driver/build'
make: *** [Makefile:263: __sub-make] Error 2
make: Leaving directory '/usr/src/kernels/6.13.8-200.fc41.x86_64'

# exit code: 2
# elapsed time: 00:00:03
----------------------------------------------------------------

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions