Here is my failed compile attempt on Raspberry Pi 4 with Ubuntu 20.10:
root@pi-03:/usr/src/drbd_manual/drbd-9.0.26-0rc1# make
Need a git checkout to regenerate drbd/.drbd_git_revision
make[1]: Entering directory '/usr/src/drbd_manual/drbd-9.0.26-0rc1/drbd'
Calling toplevel makefile of kernel source tree, which I believe is in
KDIR=/lib/modules/5.8.0-1006-raspi/build
make -C /lib/modules/5.8.0-1006-raspi/build
M=/usr/src/drbd_manual/drbd-9.0.26-0rc1/drbd modules
COMPAT __vmalloc_has_2_params
COMPAT alloc_workqueue_takes_fmt
COMPAT before_4_13_kernel_read
COMPAT blkdev_issue_zeroout_discard
COMPAT drbd_release_returns_void
COMPAT genl_policy_in_ops
COMPAT have_SHASH_DESC_ON_STACK
COMPAT have_WB_congested_enum
COMPAT have_allow_kernel_signal
COMPAT have_atomic_dec_if_positive_linux
COMPAT have_atomic_in_flight
COMPAT have_bd_claim_by_disk
COMPAT have_bd_unlink_disk_holder
COMPAT have_bdi_congested_fn
COMPAT have_bio_bi_bdev
COMPAT have_bio_bi_disk
COMPAT have_bio_bi_error
COMPAT have_bio_bi_opf
COMPAT have_bio_bi_status
COMPAT have_bio_clone_fast
COMPAT have_bio_flush
COMPAT have_bio_free
COMPAT have_bio_op_shift
COMPAT have_bio_rw
COMPAT have_bio_set_op_attrs
COMPAT have_bio_start_io_acct
COMPAT have_bioset_create_front_pad
COMPAT have_bioset_init
COMPAT have_bioset_need_bvecs
COMPAT have_blk_check_plugged
COMPAT have_blk_qc_t_make_request
COMPAT have_blk_queue_flag_set
COMPAT have_blk_queue_make_request
COMPAT have_blk_queue_merge_bvec
COMPAT have_blk_queue_plugged
COMPAT have_blk_queue_split_bio
COMPAT have_blk_queue_split_q_bio
COMPAT have_blk_queue_split_q_bio_bioset
COMPAT have_blk_queue_update_readahead
COMPAT have_blk_queue_write_cache
COMPAT have_blkdev_get_by_path
COMPAT have_d_inode
COMPAT have_fallthrough
COMPAT have_file_inode
COMPAT have_generic_start_io_acct_q_rw_sect_part
COMPAT have_generic_start_io_acct_rw_sect_part
COMPAT have_genl_family_parallel_ops
COMPAT have_ib_cq_init_attr
COMPAT have_ib_get_dma_mr
COMPAT have_idr_alloc
COMPAT have_idr_is_empty
COMPAT have_inode_lock
COMPAT have_ktime_to_timespec64
COMPAT have_kvfree
COMPAT have_max_send_recv_sge
COMPAT have_netlink_cb_portid
COMPAT have_nla_nest_start_noflag
COMPAT have_nla_parse_deprecated
COMPAT have_nla_put_64bit
COMPAT have_part_stat_h
COMPAT have_pointer_backing_dev_info
COMPAT have_prandom_u32
COMPAT have_proc_create_single
COMPAT have_ratelimit_state_init
COMPAT have_rb_augment_functions
COMPAT have_refcount_inc
COMPAT have_req_hardbarrier
COMPAT have_req_noidle
COMPAT have_req_nounmap
COMPAT have_req_op_write
COMPAT have_req_op_write_same
COMPAT have_req_op_write_zeroes
COMPAT have_req_prio
COMPAT have_req_write
COMPAT have_req_write_same
COMPAT have_revalidate_disk_size
COMPAT have_security_netlink_recv
COMPAT have_sendpage_ok
COMPAT have_shash_desc_zero
COMPAT have_signed_nla_put
COMPAT have_simple_positive
COMPAT have_struct_bvec_iter
COMPAT have_struct_kernel_param_ops
COMPAT have_struct_size
COMPAT have_submit_bio
COMPAT have_submit_bio_noacct
COMPAT have_tcp_sock_set_cork
COMPAT have_tcp_sock_set_nodelay
COMPAT have_tcp_sock_set_quickack
COMPAT have_time64_to_tm
COMPAT have_timer_setup
COMPAT have_void_make_request
COMPAT hlist_for_each_entry_has_three_parameters
COMPAT ib_alloc_pd_has_2_params
COMPAT ib_device_has_ops
COMPAT ib_post_send_const_params
COMPAT ib_query_device_has_3_params
COMPAT kmap_atomic_page_only
COMPAT need_make_request_recursion
COMPAT queue_limits_has_discard_zeroes_data
COMPAT rdma_create_id_has_net_ns
COMPAT sock_create_kern_has_five_parameters
COMPAT sock_ops_returns_addr_len
UPD /usr/src/drbd_manual/drbd-9.0.26-0rc1/drbd/compat.5.8.14.h
UPD /usr/src/drbd_manual/drbd-9.0.26-0rc1/drbd/compat.h
./drbd-kernel-compat/gen_compat_patch.sh: line 12: spatch: command not found
./drbd-kernel-compat/gen_compat_patch.sh: line 45: hash: spatch: not found
INFO: no suitable spatch found; trying spatch-as-a-service;
be patient, may take up to 10 minutes
if it is in the server side cache it might only take a second
SPAAS e770d31eb644591d9d0920dfda4bff32
Successfully connected to SPAAS ('d35a4b17210dab1336de2725b997f300e9acd297')
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 11287 0 5767 0 5520 406 388 --:--:-- 0:00:14
--:--:-- 1368
You can create a new .tgz including this pre-computed compat patch
by calling "make unpatch ; echo
drbd-9.0.26-0rc1/drbd/drbd-kernel-compat/cocci_cache/e770d31eb644591d9d0920dfda4bff32/compat.patch
>>.filelist ; make tgz"
PATCH
patching file ./drbd_int.h
patching file drbd_main.c
patching file drbd_debugfs.c
patching file drbd_nl.c
patching file drbd_req.c
CC [M] /usr/src/drbd_manual/drbd-9.0.26-0rc1/drbd/drbd_debugfs.o
CC [M] /usr/src/drbd_manual/drbd-9.0.26-0rc1/drbd/drbd_bitmap.o
CC [M] /usr/src/drbd_manual/drbd-9.0.26-0rc1/drbd/drbd_proc.o
CC [M] /usr/src/drbd_manual/drbd-9.0.26-0rc1/drbd/drbd_sender.o
CC [M] /usr/src/drbd_manual/drbd-9.0.26-0rc1/drbd/drbd_receiver.o
CC [M] /usr/src/drbd_manual/drbd-9.0.26-0rc1/drbd/drbd_req.o
CC [M] /usr/src/drbd_manual/drbd-9.0.26-0rc1/drbd/drbd_actlog.o
CC [M] /usr/src/drbd_manual/drbd-9.0.26-0rc1/drbd/lru_cache.o
CC [M] /usr/src/drbd_manual/drbd-9.0.26-0rc1/drbd/drbd_main.o
In file included from
/usr/src/drbd_manual/drbd-9.0.26-0rc1/drbd/drbd_main.c:19:
./include/linux/vermagic.h:6:2: error: #error "This header can be
included from kernel/module.c or *.mod.c only"
6 | #error "This header can be included from kernel/module.c or
*.mod.c only"
| ^~~~~
make[3]: *** [scripts/Makefile.build:290:
/usr/src/drbd_manual/drbd-9.0.26-0rc1/drbd/drbd_main.o] Error 1
make[2]: *** [Makefile:1783: /usr/src/drbd_manual/drbd-9.0.26-0rc1/drbd]
Error 2
make[1]: *** [Makefile:132: kbuild] Error 2
make[1]: Leaving directory '/usr/src/drbd_manual/drbd-9.0.26-0rc1/drbd'
make: *** [Makefile:131: module] Error 2
Regards,
Adam
On 11/11/20 07:50, Philipp Reisner wrote:
Hi,
with this release, DRBD becomes compatible with Linux 5.8 and 5.9. Thanks to
the coccinelle based compatibility framework it stays compatible all the
way back to the kernel 2.6.32.
In upstream quite a few things changed for block device drivers, following
all that and staying compatible with the old ones is a noticeable achievement
by Christoph! Thanks!
BTW, we got external contributions. One in the area of Linux 5.8 compatibility
and a bugfix.
This is a release candidate, please help testing it. With this huge change
in the compatibility framework, I ask the community to point out issues with
building DRBD on exotic distributions/kernels you might have.
Changelog:
9.0.26-0rc1 (api:genl2/proto:86-118/transport:14)
--------
* fix a case of a disk unexpectedly becoming Outdated by moving the
exchange of the initial packets into the body of the two-phase-commit
that happens at a connect
* fix adding of new volumes to resources with a primary node
* reliably detect split brain situation on both nodes
* fix an unexpected occurrence of NetworkFailure state in a tight
drbdsetup disconnect; drbdsetup connect sequence
* fix online verify to return to Established from VerifyS if the VerifyT node
was temporarily Inconsistent during the run
* fix a corner case where a node ends up Outdated after crash and rejoin
of a primary node
* implement 'blockdev --setro' in DRBD
* following upstream changes to DRBD up to Linux 5.9 and ensure
compatibility with Linux 5.8 and 5.9
https://www.linbit.com/downloads/drbd/9.0/drbd-9.0.26-0rc1.tar.gz
https://github.com/LINBIT/drbd/commit/79b368b143283a898ce65594361f49fcb460b3be
best regards,
Phil
_______________________________________________
Star us on GITHUB: https://github.com/LINBIT
drbd-user mailing list
drbd-user@lists.linbit.com
https://lists.linbit.com/mailman/listinfo/drbd-user
_______________________________________________
Star us on GITHUB: https://github.com/LINBIT
drbd-user mailing list
drbd-user@lists.linbit.com
https://lists.linbit.com/mailman/listinfo/drbd-user