Re: liburing 2.3 API/ABI breakage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2022-11-09 at 20:58 -0500, Stefan Hajnoczi wrote:
> > 2. Going from size_t to unsigned int is ABI breakage. This is
> > mitigated
> >    on CPU architectures that share 32-bit/64-bit registers (i.e.
> > rax/eax
> >    on x86-64 and r0/x0/w0 on aarch64). There's no guarantee this
> > works
> >    on all architectures, especially when the calling convention
> > passes
> >    arguments on the stack.
> 
> Good news, I realized that io_uring_prep_getxattr() and friends are
> static inline functions. ABI breakage doesn't come into play because
> they are compiled into the application.

Additionally the inline code was doing the narrowing cast anyway, so
there was no narrowing issues.

I really should have put this explanation in the commit message though
- will remember for next time.

> 
> The const char * to char * API breakage issue still remains but
> there's
> a pretty good chance that real applications already pass in char *.

If an application was passing a const pointer, it is probably
preferrable to get a compilation error here - as this would otherwise
lead to bugs (since it is very much treated as non-const).






[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux