[RFC,hurd,64bit] : st_dev type

Message ID 20230501134526.727cicipy7pkutv6@begin
State Committed, archived
Headers
Series [RFC,hurd,64bit] : st_dev type |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent
dj/TryBot-32bit success Build for i686

Commit Message

Samuel Thibault May 1, 2023, 1:45 p.m. UTC
  Hello,

Since we are creating a new ABI, it's time to take care of types :)

I have fixed a few cases that had been identified on hurd 32bit, so that
hurd 64bit doesn't get affected.

There is however one case which remains problematic: stat.st_dev, which
the standars say to have type dev_t, is #defined to st_fsid on Hurd,
since the pid of the translator is what is representative of the device
number. It happens that dev_t is 32bit (__U32_TYPE) and fsid_t is
64bit (__UQUAD_TYPE), see BZ 23084. Perhaps we should just make dev_t
UWORD_TYPE, so it becomes 64bit on Hurd 64bit, as the attached patch
does? (it is UQUAD or 64bit on Linux ports)

I have only checked what is tested by the testsuite, we should
probably carefully review all types exposed by libc with hurd-specific
definitions.

Samuel
  

Patch

diff --git a/sysdeps/mach/hurd/bits/typesizes.h b/sysdeps/mach/hurd/bits/typesizes.h
index 7b95bb0b91..646ee934bb 100644
--- a/sysdeps/mach/hurd/bits/typesizes.h
+++ b/sysdeps/mach/hurd/bits/typesizes.h
@@ -26,7 +26,7 @@ 
 /* See <bits/types.h> for the meaning of these macros.  This file exists so
    that <bits/types.h> need not vary across different GNU platforms.  */
 
-#define __DEV_T_TYPE		__U32_TYPE
+#define __DEV_T_TYPE		__UWORD_TYPE
 #define __UID_T_TYPE		__U32_TYPE
 #define __GID_T_TYPE		__U32_TYPE
 #define __INO_T_TYPE		__ULONGWORD_TYPE