Slackware64-Current can't compile blksnap kernel module
by Barcoboy from LinuxQuestions.org on (#6MV02)
Greetings.
I am trying to get the free Veeam Linux Backup client running on my Slackware64-Current server like I have successfully got it running in Slackware64-15.0. Having trouble compiling the Veeam blksnap kernel module (https://github.com/veeam/blksnap). I did have it running with kernel 6.6 using the "VAL-6.0" branch, but now that I've upgraded to kernel 6.9, it won't compile anymore, giving the following:
Code:# ./mk.sh build
Making ...
make: Entering directory '/usr/src/linux-6.9'
grep: warning: stray \ before #
grep: warning: stray \ before #
CC [M] /usr/src/blksnap/module/bdevfilter.o
CC [M] /usr/src/blksnap/module/log.o
CC [M] /usr/src/blksnap/module/big_buffer.o
CC [M] /usr/src/blksnap/module/cbt_map.o
/usr/src/blksnap/module/log.c:246:5: warning: no previous prototype for ilog_processori [-Wmissing-prototypes]
246 | int log_processor(void *data)
| ^~~~~~~~~~~~~
CC [M] /usr/src/blksnap/module/chunk.o
CC [M] /usr/src/blksnap/module/ctrl.o
CC [M] /usr/src/blksnap/module/diff_io.o
CC [M] /usr/src/blksnap/module/diff_area.o
/usr/src/blksnap/module/ctrl.c:438:5: warning: no previous prototype for iioctl_modi [-Wmissing-prototypes]
438 | int ioctl_mod(unsigned long arg)
| ^~~~~~~~~
/usr/src/blksnap/module/ctrl.c:448:5: warning: no previous prototype for iioctl_setlogi [-Wmissing-prototypes]
448 | int ioctl_setlog(unsigned long arg)
| ^~~~~~~~~~~~
/usr/src/blksnap/module/diff_io.c:45:6: warning: no previous prototype for idiff_io_endioi [-Wmissing-prototypes]
45 | void diff_io_endio(struct bio *bio)
| ^~~~~~~~~~~~~
CC [M] /usr/src/blksnap/module/diff_buffer.o
/usr/src/blksnap/module/diff_area.c: In function idiff_area_freei:
/usr/src/blksnap/module/diff_area.c:128:17: error: implicit declaration of function iblkdev_puti; did you mean ibdev_fputi? [-Wimplicit-function-declaration]
128 | blkdev_put(diff_area->orig_bdev, NULL);
| ^~~~~~~~~~
| bdev_fput
/usr/src/blksnap/module/diff_area.c: In function idiff_area_newi:
/usr/src/blksnap/module/diff_area.c:283:16: error: implicit declaration of function iblkdev_get_by_devi; did you mean iblkdev_get_no_openi? [-Wimplicit-function-declaration]
283 | bdev = blkdev_get_by_dev(dev_id, FMODE_READ | FMODE_WRITE, NULL, NULL);
| ^~~~~~~~~~~~~~~~~
| blkdev_get_no_open
/usr/src/blksnap/module/diff_area.c:283:14: error: assignment to istruct block_device *i from iinti makes pointer from integer without a cast [-Wint-conversion]
283 | bdev = blkdev_get_by_dev(dev_id, FMODE_READ | FMODE_WRITE, NULL, NULL);
| ^
make[2]: *** [scripts/Makefile.build:244: /usr/src/blksnap/module/diff_area.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/usr/src/linux-6.9/Makefile:1919: /usr/src/blksnap/module] Error 2
make: *** [Makefile:240: __sub-make] Error 2
make: Leaving directory '/usr/src/linux-6.9'So I tried cloning and compiling the master branch, but the pre-compile checks fail with the following:
Code:# cmake .
-- The C compiler identification is GNU 14.1.0
-- The CXX compiler identification is GNU 14.1.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at /usr/lib64/cmake/Boost-1.85.0/BoostConfig.cmake:141 (find_package):
Found package configuration file:
/usr/lib64/cmake/boost_filesystem-1.85.0/boost_filesystem-config.cmake
but it set boost_filesystem_FOUND to FALSE so package "boost_filesystem" is
considered to be NOT FOUND. Reason given by package:
No suitable build variant has been found.
The following variants have been tried and rejected:
* libboost_filesystem.so.1.85.0 (shared, Boost_USE_STATIC_LIBS=ON)
Call Stack (most recent call first):
/usr/lib64/cmake/Boost-1.85.0/BoostConfig.cmake:262 (boost_find_component)
/usr/share/cmake-3.29/Modules/FindBoost.cmake:594 (find_package)
lib/blksnap/CMakeLists.txt:26 (FIND_PACKAGE)I believe the newer cmake compile branches are the way things are moving and that the previous branches which do not use the Boost library will be abandoned.
Anybody have any ideas?
I am trying to get the free Veeam Linux Backup client running on my Slackware64-Current server like I have successfully got it running in Slackware64-15.0. Having trouble compiling the Veeam blksnap kernel module (https://github.com/veeam/blksnap). I did have it running with kernel 6.6 using the "VAL-6.0" branch, but now that I've upgraded to kernel 6.9, it won't compile anymore, giving the following:
Code:# ./mk.sh build
Making ...
make: Entering directory '/usr/src/linux-6.9'
grep: warning: stray \ before #
grep: warning: stray \ before #
CC [M] /usr/src/blksnap/module/bdevfilter.o
CC [M] /usr/src/blksnap/module/log.o
CC [M] /usr/src/blksnap/module/big_buffer.o
CC [M] /usr/src/blksnap/module/cbt_map.o
/usr/src/blksnap/module/log.c:246:5: warning: no previous prototype for ilog_processori [-Wmissing-prototypes]
246 | int log_processor(void *data)
| ^~~~~~~~~~~~~
CC [M] /usr/src/blksnap/module/chunk.o
CC [M] /usr/src/blksnap/module/ctrl.o
CC [M] /usr/src/blksnap/module/diff_io.o
CC [M] /usr/src/blksnap/module/diff_area.o
/usr/src/blksnap/module/ctrl.c:438:5: warning: no previous prototype for iioctl_modi [-Wmissing-prototypes]
438 | int ioctl_mod(unsigned long arg)
| ^~~~~~~~~
/usr/src/blksnap/module/ctrl.c:448:5: warning: no previous prototype for iioctl_setlogi [-Wmissing-prototypes]
448 | int ioctl_setlog(unsigned long arg)
| ^~~~~~~~~~~~
/usr/src/blksnap/module/diff_io.c:45:6: warning: no previous prototype for idiff_io_endioi [-Wmissing-prototypes]
45 | void diff_io_endio(struct bio *bio)
| ^~~~~~~~~~~~~
CC [M] /usr/src/blksnap/module/diff_buffer.o
/usr/src/blksnap/module/diff_area.c: In function idiff_area_freei:
/usr/src/blksnap/module/diff_area.c:128:17: error: implicit declaration of function iblkdev_puti; did you mean ibdev_fputi? [-Wimplicit-function-declaration]
128 | blkdev_put(diff_area->orig_bdev, NULL);
| ^~~~~~~~~~
| bdev_fput
/usr/src/blksnap/module/diff_area.c: In function idiff_area_newi:
/usr/src/blksnap/module/diff_area.c:283:16: error: implicit declaration of function iblkdev_get_by_devi; did you mean iblkdev_get_no_openi? [-Wimplicit-function-declaration]
283 | bdev = blkdev_get_by_dev(dev_id, FMODE_READ | FMODE_WRITE, NULL, NULL);
| ^~~~~~~~~~~~~~~~~
| blkdev_get_no_open
/usr/src/blksnap/module/diff_area.c:283:14: error: assignment to istruct block_device *i from iinti makes pointer from integer without a cast [-Wint-conversion]
283 | bdev = blkdev_get_by_dev(dev_id, FMODE_READ | FMODE_WRITE, NULL, NULL);
| ^
make[2]: *** [scripts/Makefile.build:244: /usr/src/blksnap/module/diff_area.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [/usr/src/linux-6.9/Makefile:1919: /usr/src/blksnap/module] Error 2
make: *** [Makefile:240: __sub-make] Error 2
make: Leaving directory '/usr/src/linux-6.9'So I tried cloning and compiling the master branch, but the pre-compile checks fail with the following:
Code:# cmake .
-- The C compiler identification is GNU 14.1.0
-- The CXX compiler identification is GNU 14.1.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at /usr/lib64/cmake/Boost-1.85.0/BoostConfig.cmake:141 (find_package):
Found package configuration file:
/usr/lib64/cmake/boost_filesystem-1.85.0/boost_filesystem-config.cmake
but it set boost_filesystem_FOUND to FALSE so package "boost_filesystem" is
considered to be NOT FOUND. Reason given by package:
No suitable build variant has been found.
The following variants have been tried and rejected:
* libboost_filesystem.so.1.85.0 (shared, Boost_USE_STATIC_LIBS=ON)
Call Stack (most recent call first):
/usr/lib64/cmake/Boost-1.85.0/BoostConfig.cmake:262 (boost_find_component)
/usr/share/cmake-3.29/Modules/FindBoost.cmake:594 (find_package)
lib/blksnap/CMakeLists.txt:26 (FIND_PACKAGE)I believe the newer cmake compile branches are the way things are moving and that the previous branches which do not use the Boost library will be abandoned.
Anybody have any ideas?