Installation fails during compilation: /var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:42:34: error: macro "DEFINE_SEMAPHORE" requires 2 arguments, but only 1 given

Bug #2068891 reported by Florian Riepen
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ddcci-driver-linux (Ubuntu)
New
Undecided
Unassigned

Bug Description

I am on Ubuntu 22.04.4 LTS (Kernel 6.5.0-35-generic) and was trying to install the package above. It failed during installation, during compilation with error code 10 ("... ddcci-dkms-Skript ... post-installation subprocess").
I am on a desktop system with AMD mainboard, cpu and graphics and using FOSS drivers only.

This is the error (in German):
"
ddcci-dkms (0.4.1-3ubuntu2) wird eingerichtet ...
Loading new ddcci-0.4.1 DKMS files...
Building for 6.5.0-35-generic
Building initial module for 6.5.0-35-generic
Error! Bad return status for module build on kernel: 6.5.0-35-generic (x86_64)
Consult /var/lib/dkms/ddcci/0.4.1/build/make.log for more information.
dpkg: Fehler beim Bearbeiten des Paketes ddcci-dkms (--configure):
 »installiertes ddcci-dkms-Skript des Paketes post-installation«-Unterprozess ga
b den Fehlerwert 10 zurück
"

This is the content of /var/lib/dkms/ddcci/0.4.1/build/make.log:

"
DKMS make.log for ddcci-0.4.1 for kernel 6.5.0-35-generic (x86_64)
Mo 10. Jun 14:06:04 CEST 2024
make: Verzeichnis „/var/lib/dkms/ddcci/0.4.1/build“ wird betreten
make -C "ddcci"
make[1]: Verzeichnis „/var/lib/dkms/ddcci/0.4.1/build/ddcci“ wird betreten
make -C "/lib/modules/6.5.0-35-generic/build" M="/var/lib/dkms/ddcci/0.4.1/build/ddcci" modules
make[2]: Verzeichnis „/usr/src/linux-headers-6.5.0-35-generic“ wird betreten
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
  You are using: gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
  CC [M] /var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.o
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:42:34: error: macro "DEFINE_SEMAPHORE" requires 2 arguments, but only 1 given
   42 | static DEFINE_SEMAPHORE(core_lock);
      | ^
In file included from ./include/linux/fs.h:25,
                 from /var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:19:
./include/linux/semaphore.h:34: note: macro "DEFINE_SEMAPHORE" defined here
   34 | #define DEFINE_SEMAPHORE(_name, _n) \
      |
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:42:8: error: type defaults to ‘int’ in declaration of ‘DEFINE_SEMAPHORE’ [-Werror=implicit-int]
   42 | static DEFINE_SEMAPHORE(core_lock);
      | ^~~~~~~~~~~~~~~~
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c: In function ‘ddcci_device_release’:
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:1002:23: error: ‘core_lock’ undeclared (first use in this function); did you mean ‘file_lock’?
 1002 | down(&core_lock);
      | ^~~~~~~~~
      | file_lock
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:1002:23: note: each undeclared identifier is reported only once for each function it appears in
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c: At top level:
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:1053:27: error: initialization of ‘int (*)(const struct device *, struct kobj_uevent_env *)’ from incompatible pointer type ‘int (*)(struct device *, struct kobj_uevent_env *)’ [-Werror=incompatible-pointer-types]
 1053 | .uevent = ddcci_device_uevent,
      | ^~~~~~~~~~~~~~~~~~~
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:1053:27: note: (near initialization for ‘ddcci_device_type.uevent’)
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:1056:27: error: initialization of ‘char * (*)(const struct device *, umode_t *, kuid_t *, kgid_t *)’ {aka ‘char * (*)(const struct device *, short unsigned int *, kuid_t *, kgid_t *)’} from incompatible pointer type ‘char * (*)(struct device *, umode_t *, kuid_t *, kgid_t *)’ {aka ‘char * (*)(struct device *, short unsigned int *, kuid_t *, kgid_t *)’} [-Werror=incompatible-pointer-types]
 1056 | .devnode = ddcci_devnode
      | ^~~~~~~~~~~~~
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:1056:27: note: (near initialization for ‘ddcci_device_type.devnode’)
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:1062:27: error: initialization of ‘int (*)(const struct device *, struct kobj_uevent_env *)’ from incompatible pointer type ‘int (*)(struct device *, struct kobj_uevent_env *)’ [-Werror=incompatible-pointer-types]
 1062 | .uevent = ddcci_device_uevent,
      | ^~~~~~~~~~~~~~~~~~~
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:1062:27: note: (near initialization for ‘ddcci_dependent_type.uevent’)
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:1065:27: error: initialization of ‘char * (*)(const struct device *, umode_t *, kuid_t *, kgid_t *)’ {aka ‘char * (*)(const struct device *, short unsigned int *, kuid_t *, kgid_t *)’} from incompatible pointer type ‘char * (*)(struct device *, umode_t *, kuid_t *, kgid_t *)’ {aka ‘char * (*)(struct device *, short unsigned int *, kuid_t *, kgid_t *)’} [-Werror=incompatible-pointer-types]
 1065 | .devnode = ddcci_dependent_devnode
      | ^~~~~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:1065:27: note: (near initialization for ‘ddcci_dependent_type.devnode’)
In file included from ./include/linux/build_bug.h:5,
                 from ./include/linux/container_of.h:5,
                 from ./include/linux/list.h:5,
                 from ./include/linux/kobject.h:19,
                 from ./include/linux/cdev.h:5,
                 from /var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:16:
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c: In function ‘ddcci_register_driver’:
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:1107:46: error: ‘struct bus_type’ has no member named ‘p’; did you mean ‘pm’?
 1107 | if (unlikely(WARN_ON(!ddcci_bus_type.p)))
      | ^
./include/linux/compiler.h:77:45: note: in definition of macro ‘unlikely’
   77 | # define unlikely(x) __builtin_expect(!!(x), 0)
      | ^
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:1107:22: note: in expansion of macro ‘WARN_ON’
 1107 | if (unlikely(WARN_ON(!ddcci_bus_type.p)))
      | ^~~~~~~
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c: In function ‘ddcci_detect_device’:
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:1588:15: error: ‘core_lock’ undeclared (first use in this function); did you mean ‘file_lock’?
 1588 | down(&core_lock);
      | ^~~~~~~~~
      | file_lock
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c: At top level:
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:1819:27: error: initialization of ‘int (*)(struct i2c_client *)’ from incompatible pointer type ‘int (*)(struct i2c_client *, const struct i2c_device_id *)’ [-Werror=incompatible-pointer-types]
 1819 | .probe = ddcci_probe,
      | ^~~~~~~~~~~
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:1819:27: note: (near initialization for ‘ddcci_driver.<anonymous>.probe’)
/var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.c:42:8: warning: ‘DEFINE_SEMAPHORE’ defined but not used [-Wunused-variable]
   42 | static DEFINE_SEMAPHORE(core_lock);
      | ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[4]: *** [scripts/Makefile.build:251: /var/lib/dkms/ddcci/0.4.1/build/ddcci/ddcci.o] Fehler 1
make[3]: *** [/usr/src/linux-headers-6.5.0-35-generic/Makefile:2039: /var/lib/dkms/ddcci/0.4.1/build/ddcci] Fehler 2
make[2]: *** [Makefile:234: __sub-make] Fehler 2
make[2]: Verzeichnis „/usr/src/linux-headers-6.5.0-35-generic“ wird verlassen
make[1]: *** [Makefile:38: ddcci.ko] Fehler 2
make[1]: Verzeichnis „/var/lib/dkms/ddcci/0.4.1/build/ddcci“ wird verlassen
make: *** [Makefile:28: ddcci] Fehler 2
make: Verzeichnis „/var/lib/dkms/ddcci/0.4.1/build“ wird verlassen
"

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.