[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