On ti, 23 elo 2022, Richard W.M. Jones wrote:
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.
Samba does not call __io_uring_get_cqe() either.
--
/ Alexander Bokovoy
Sr. Principal Software Engineer
Security / Identity Management Engineering
Red Hat Limited, Finland
_______________________________________________
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