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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions