Open tw00000 opened 6 months ago
Yes. Several people already posted their fix/PR for these compile issues within the last couple of months. Browse the issues to find out more..
Try this one: https://github.com/MischaBaars/dma_ip_drivers. The XDMA and QDMA parts will compile for the newer kernels. The XVSEC part won't compile for the newer kernels yet. That part makes use of structures (mm_segment_t) for which kernel support has been removed as of kernel 5.17.16. It probably does compile for the 5.15.x kernels you're using.
Then again, I'm just getting started as you are and I'm still looking into the details of the XDMA part. I have no idea what the XVSEC part does.
I got xdma and xvsec working for 6.7.7: https://github.com/Xilinx/dma_ip_drivers/pull/275
Makefile:17: XVC_FLAGS: .
make -C /lib/modules/6.5.0-26-generic/build M=/home/truss/xilinx/dma_ip_drivers/XDMA/linux-kernel/xdma modules
make[1]: Entering directory '/usr/src/linux-headers-6.5.0-26-generic'
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
/home/truss/xilinx/dma_ip_drivers/XDMA/linux-kernel/xdma/Makefile:17: XVC_FLAGS: .
CC [M] /home/truss/xilinx/dma_ip_drivers/XDMA/linux-kernel/xdma/libxdma.o
CC [M] /home/truss/xilinx/dma_ip_drivers/XDMA/linux-kernel/xdma/xdma_cdev.o
In file included from ./include/linux/linkage.h:7,
/home/truss/xilinx/dma_ip_drivers/XDMA/linux-kernel/xdma/xdma_cdev.c: In function ‘xdma_cdev_init’:
./include/linux/export.h:29:22: error: passing argument 1 of ‘class_create’ from incompatible pointer type [-Werror=incompatible-pointer-types]
29 | #define THIS_MODULE (&__this_module)
/home/truss/xilinx/dma_ip_drivers/XDMA/linux-kernel/xdma/xdma_cdev.c:606:37: note: in expansion of macro ‘THIS_MODULE’
606 | g_xdma_class = class_create(THIS_MODULE, XDMA_NODE_NAME);
In file included from ./include/linux/device.h:31,
./include/linux/device/class.h:230:54: note: expected ‘const char ’ but argument is of type ‘struct module ’
230 | struct class __must_check class_create(const char name);
/home/truss/xilinx/dma_ip_drivers/XDMA/linux-kernel/xdma/xdma_cdev.c:606:24: error: too many arguments to function ‘class_create’
606 | g_xdma_class = class_create(THIS_MODULE, XDMA_NODE_NAME);
./include/linux/device/class.h:230:29: note: declared here
230 | struct class __must_check class_create(const char name);
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:251: /home/truss/xilinx/dma_ip_drivers/XDMA/linux-kernel/xdma/xdma_cdev.o] Error 1
make[2]: *** [/usr/src/linux-headers-6.5.0-26-generic/Makefile:2039: /home/truss/xilinx/dma_ip_drivers/XDMA/linux-kernel/xdma] Error 2
make[1]: *** [Makefile:234: __sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-6.5.0-26-generic'
make: *** [Makefile:39: all] Error 2
It builds fine against Ubuntu kernel version 5.15.x. with the same gcc compiler (12.3.0)