[PATCH v3] Fix POSIX compliance: Make blkcnt_t and blksize_t signed on alpha
Yury Khrustalev
yury.khrustalev@arm.com
Mon Dec 1 16:25:03 GMT 2025
On Wed, Nov 26, 2025 at 08:30:38AM -0300, Adhemerval Zanella Netto wrote:
>
> > ...
> >
> > I think it should be
> >
> > blkcnt64_t:l // long for __S64_TYPE
> > blkcnt_t:i // int for __S32_TYPE
> > blksize_t:i // int for __S32_TYPE
> >
> > given the new definitions of these types?
> >
>
> This is essentially an ABI break, albeit I think it should not matter for most
> usercases. In theory it might break some usercases where the struct is used in
> C++ function call (thus changing the mangling name) without a module rebuild.
>
> I am not sure how to properly fix it, I don't recall any change where we did
> this. Usually we add new types, as like the 64-bit time_t stat support, to
> avoid it.
Even if it is an ABI break, what choice do we have? I think we shouldn't
keep using incorrect types.
Thanks,
Yury
More information about the Libc-alpha
mailing list