[PATCH] Fix POSIX compliance: Make blkcnt_t and blksize_t signed on alpha
Osama Abdelkader
osama.abdelkader@gmail.com
Sat Nov 22 22:09:29 GMT 2025
On Sat, Nov 22, 2025 at 01:08:24PM -0800, Collin Funk wrote:
> Hi Osama,
>
> Osama Abdelkader <osama.abdelkader@gmail.com> writes:
>
> > POSIX requires that blkcnt_t and blksize_t are signed integer types.
> > On alpha, these were incorrectly defined as unsigned types (__U32_TYPE).
> > This change makes them signed (__SLONGWORD_TYPE) to match:
> > - POSIX requirements
> > - All other architectures in glibc
> > - Similar types on alpha (off_t, clock_t, time_t)
> >
> > Fixes #33355
> >
> > Suggested-by: Collin Funk <collin.funk@gmail.com>
> > Signed-off-by: Osama Abdelkader <osama.abdelkader@gmail.com>
> > ---
> > sysdeps/unix/sysv/linux/alpha/bits/typesizes.h | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h b/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
> > index 8cc4491c0b..2682dfc83f 100644
> > --- a/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
> > +++ b/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
> > @@ -38,7 +38,7 @@
> > #define __PID_T_TYPE __S32_TYPE
> > #define __RLIM_T_TYPE __ULONGWORD_TYPE
> > #define __RLIM64_T_TYPE __U64_TYPE
> > -#define __BLKCNT_T_TYPE __U32_TYPE
> > +#define __BLKCNT_T_TYPE __SLONGWORD_TYPE
> > #define __BLKCNT64_T_TYPE __U64_TYPE
> > #define __FSBLKCNT_T_TYPE __S32_TYPE
> > #define __FSBLKCNT64_T_TYPE __S64_TYPE
> > @@ -54,7 +54,7 @@
> > #define __KEY_T_TYPE __S32_TYPE
> > #define __CLOCKID_T_TYPE __S32_TYPE
> > #define __TIMER_T_TYPE void *
> > -#define __BLKSIZE_T_TYPE __U32_TYPE
> > +#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
> > #define __FSID_T_TYPE struct { int __val[2]; }
> > #define __SSIZE_T_TYPE __SWORD_TYPE
> > #define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
>
> Thanks for the patch.
>
> I had something similar written myself, but I wasn't sure if there was a
> historical reason for this definition. And I do not have an alpha
> machine to test on to make sure things work as expected after the
> change.
>
> CC'ing Richard Henderson who is listed as the system maintainer for
> alpha in MAINTAINERS [1].
>
> Collin
>
> [1] https://sourceware.org/glibc/wiki/MAINTAINERS#Machine_maintainers
Thanks Collin, I didn't know that sorry, feel free to drop it.
Best regards,
Osama
More information about the Libc-alpha
mailing list