On Tue, Aug 23, 2022 at 11:38:26AM +0200, Dominik 'Rathann' Mierzejewski wrote: > I'd suggest doing a mock, copr or scratch build and running abipkgdiff > comparing current rawhide and the updated binary packages. It'll tell > you if there are any subtle ABI differences. Here's a scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=91169327 The differences are: $ abipkgdiff liburing-2.0-4.fc37.x86_64.rpm liburing-2.2-1.fc38.x86_64.rpm --devel-pkg1 liburing-devel-2.0-4.fc37.x86_64.rpm --devel-pkg2 liburing-devel-2.2-1.fc38.x86_64.rpm --debug-info-pkg1 liburing-debuginfo-2.0-4.fc37.x86_64.rpm --debug-info-pkg2 liburing-debuginfo-2.2-1.fc38.x86_64.rpm ================ changes of 'liburing.so.2.0.0'=============== Functions changes summary: 0 Removed, 1 Changed (24 filtered out), 16 Added functions Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 16 Added functions: [A] 'function ssize_t io_uring_mlock_size(unsigned int, unsigned int)' {io_uring_mlock_size@@LIBURING_2.1} [A] 'function ssize_t io_uring_mlock_size_params(unsigned int, io_uring_params*)' {io_uring_mlock_size_params@@LIBURING_2.1} [A] 'function int io_uring_register_buf_ring(io_uring*, io_uring_buf_reg*, unsigned int)' {io_uring_register_buf_ring@@LIBURING_2.2} [A] 'function int io_uring_register_buffers_sparse(io_uring*, unsigned int)' {io_uring_register_buffers_sparse@@LIBURING_2.2} [A] 'function int io_uring_register_buffers_tags(io_uring*, const iovec*, const __u64*, unsigned int)' {io_uring_register_buffers_tags@@LIBURING_2.1} [A] 'function int io_uring_register_buffers_update_tag(io_uring*, unsigned int, const iovec*, const __u64*, unsigned int)' {io_uring_register_buffers_update_tag@@LIBURING_2.1} [A] 'function int io_uring_register_files_sparse(io_uring*, unsigned int)' {io_uring_register_files_sparse@@LIBURING_2.2} [A] 'function int io_uring_register_files_tags(io_uring*, const int*, const __u64*, unsigned int)' {io_uring_register_files_tags@@LIBURING_2.1} [A] 'function int io_uring_register_files_update_tag(io_uring*, unsigned int, const int*, const __u64*, unsigned int)' {io_uring_register_files_update_tag@@LIBURING_2.1} [A] 'function int io_uring_register_iowq_aff(io_uring*, size_t, const cpu_set_t*)' {io_uring_register_iowq_aff@@LIBURING_2.1} [A] 'function int io_uring_register_iowq_max_workers(io_uring*, unsigned int*)' {io_uring_register_iowq_max_workers@@LIBURING_2.1} [A] 'function int io_uring_register_ring_fd(io_uring*)' {io_uring_register_ring_fd@@LIBURING_2.2} [A] 'function int io_uring_submit_and_wait_timeout(io_uring*, io_uring_cqe**, unsigned int, __kernel_timespec*, sigset_t*)' {io_uring_submit_and_wait_timeout@@LIBURING_2.2} [A] 'function int io_uring_unregister_buf_ring(io_uring*, int)' {io_uring_unregister_buf_ring@@LIBURING_2.2} [A] 'function int io_uring_unregister_iowq_aff(io_uring*)' {io_uring_unregister_iowq_aff@@LIBURING_2.1} [A] 'function int io_uring_unregister_ring_fd(io_uring*)' {io_uring_unregister_ring_fd@@LIBURING_2.2} 1 function with some indirect sub-type change: [C] 'function int __io_uring_get_cqe(io_uring*, io_uring_cqe**, unsigned int, unsigned int, sigset_t*)' at queue.c:113:1 has some indirect sub-type changes: parameter 1 of type 'io_uring*' has sub-type changes: in pointed to type 'struct io_uring' at liburing.h:77:1: type size hasn't changed 3 data member insertions: 'int enter_ring_fd', at offset 1632 (in bits) at liburing.h:84:1 '__u8 int_flags', at offset 1664 (in bits) at liburing.h:85:1 'unsigned int pad2', at offset 1696 (in bits) at liburing.h:87:1 2 data member changes (1 filtered): type of 'io_uring_sq sq' changed: type size hasn't changed 1 data member change: type of 'io_uring_sqe* sqes' changed: in pointed to type 'struct io_uring_sqe' at io_uring.h:21:1: type size hasn't changed 4 data member insertions: '__u16 personality', at offset 336 (in bits) at io_uring.h:63:1 'union {__s32 splice_fd_in; __u32 file_index;}', at offset 352 (in bits) '__u64 addr3', at offset 384 (in bits) at io_uring.h:68:1 '__u64 __pad2[1]', at offset 448 (in bits) at io_uring.h:69:1 1 data member changes (1 filtered): anonymous data member at offset 320 (in bits) changed from: union {struct {union {__u16 buf_index; __u16 buf_group;}; __u16 personality; __s32 splice_fd_in;}; __u64 __pad2[3];} to: union {__u16 buf_index; __u16 buf_group;} and size changed from 192 to 16 (in bits) (by -176 bits) type of 'unsigned int pad[3]' changed: array element type 'unsigned int' changed: entity changed from 'unsigned int' to compatible type 'typedef __u8' at int-ll64.h:21:1 type name changed from 'unsigned int' to 'unsigned char' type size changed from 32 to 8 (in bits) type name changed from 'unsigned int[3]' to '__u8[3]' array type size changed from 96 to 24 and offset changed from 1632 to 1672 (in bits) (by +40 bits) parameter 2 of type 'io_uring_cqe**' has sub-type changes: in pointed to type 'io_uring_cqe*': in pointed to type 'struct io_uring_cqe' at io_uring.h:258:1: type size hasn't changed 1 data member insertion: '__u64 big_cqe[]', at offset 128 (in bits) at io_uring.h:267:1 ================ end of changes of 'liburing.so.2.0.0'=============== I guess we can ignore the added functions as those should always be safe. The changed function __io_uring_get_cqe is documented in the header as: /* * Helper for the peek/wait single cqe functions. Exported because of that, * but probably shouldn't be used directly in an application. */ I looked at the source of qemu & ceph and neither call this function. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com nbdkit - Flexible, fast NBD server with plugins https://gitlab.com/nbdkit/nbdkit _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue