define __ prefixed version of intXY_t types
PATCH 1/1 define __ prefixed version of intXY_t types
This is required since musl does not define them
unlike glibc
--- include/linux.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+)
include/linux.h +29 -0
@@ -40,6 +40,35 @@# undef fsxattr#endif +#ifndef loff_t +#define loff_t off_t +#endif +#ifndef __uint8_t +#define __uint8_t uint8_t +#endif +#ifndef __uint16_t +#define __uint16_t uint16_t +#endif +#ifndef __uint32_t +#define __uint32_t uint32_t +#endif +#ifndef __uint64_t +#define __uint64_t uint64_t +#endif + +#ifndef __int8_t +#define __int8_t int8_t +#endif +#ifndef __int16_t +#define __int16_t int16_t +#endif +#ifndef __int32_t +#define __int32_t int32_t +#endif +#ifndef __int64_t +#define __int64_t int64_t +#endif +static __inline__int xfsctl (const char *path,int fd,int cmd,void *p) {return ioctl (fd, cmd, p);
Signature · 1 line
2.14.1
Quoted 13 lines · Khem Raj
This is required since musl does not define them
unlike glibcSigned-off-by Khem Raj <[email protected]>--- include/linux.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+)include/linux.h +0
-0
include/linux.h line 44
Quoted 5 lines
include/linux.h +2
-0@@ -40,6 +40,35 @@# undef fsxattr#endif +#ifndef loff_t +#define loff_t off_t
I think you should just switch to off64_t in io/copy_file_range.c, the only user of loff_t.
None of the following double-underscore types are present in xfsprogs since this commit:
commit 14f8b6810bd240cc58131483790a099fcf56c073
Author: Darrick J. Wong <[email protected]> Date: Fri Aug 4 16:33:51 2017 -0500
xfsprogs: remove double-underscore integer types
This is a purely mechanical patch that removes the private __{u,}int{8,16,32,64}_t typedefs in favor of using the system {u,}int{8,16,32,64}_t typedefs. This is the sed script used to perform the transformation and fix the resulting whitespace and indentation errors:
s/typedef\t__uint8_t/typedef __uint8_t\t/g s/typedef\t__uint/typedef __uint/g s/typedef\t__int\([0-9]*\)_t/typedef int\1_t\t/g s/__uint8_t\t/__uint8_t\t\t/g s/__uint/uint/g s/__int\([0-9]*\)_t\t/__int\1_t\t\t/g s/__int/int/g
/^typedef.*int[0-9]*_t;$/d
currently on the for-next branch of xfsprogs. You might want to carry that patch until 4.13 is released.
(and 4a492e7 xfs: remove double-underscore integer types as well)
-Eric
Quoted 31 lines
include/linux.h +27
-0+#endif +#ifndef __uint8_t +#define __uint8_t uint8_t +#endif +#ifndef __uint16_t +#define __uint16_t uint16_t +#endif +#ifndef __uint32_t +#define __uint32_t uint32_t +#endif +#ifndef __uint64_t +#define __uint64_t uint64_t +#endif + +#ifndef __int8_t +#define __int8_t int8_t +#endif +#ifndef __int16_t +#define __int16_t int16_t +#endif +#ifndef __int32_t +#define __int32_t int32_t +#endif +#ifndef __int64_t +#define __int64_t int64_t +#endif +static __inline__int xfsctl (const char *path,int fd,int cmd,void *p) {return ioctl (fd, cmd, p);
Quoted 17 lines · Eric Sandeen
Quoted 16 lines · Khem Raj
This is required since musl does not define them
unlike glibcSigned-off-by Khem Raj <[email protected]>--- include/linux.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+)include/linux.h +0
-0@@ -40,6 +40,35 @@# undef fsxattr#endif
Quoted 5 lines
include/linux.h line 44
Quoted 2 lines
include/linux.h +2
-0+#ifndef loff_t +#define loff_t off_tI think you should just switch to
off64_tinio/copy_file_range.c, the only user ofloff_t.
OK. I was just following the darwin.h lead but I will make this change in v2
Quoted 3 lines
None of the following double-underscore types are present in xfsprogs since this commit:
I think it was not a complete commit. I still see issues. I will see if I can fix them
Quoted 66 lines
commit
14f8b6810bd240cc58131483790a099fcf56c073Author: Darrick J. Wong <[email protected]> Date: Fri Aug 4 16:33:51 2017 -0500xfsprogs: remove double-underscore integer types
This is a purely mechanical patch that removes the private __{u,}int{8,16,32,64}_t typedefs in favor of using the system {u,}int{8,16,32,64}_t typedefs. This is the sed script used to perform the transformation and fix the resulting whitespace and indentation errors:
s/typedef\t__uint8_t/typedef __uint8_t\t/g s/typedef\t__uint/typedef __uint/g s/typedef\t__int\([0-9]*\)_t/typedef int\1_t\t/g s/__uint8_t\t/__uint8_t\t\t/g s/__uint/uint/g s/__int\([0-9]*\)_t\t/__int\1_t\t\t/g s/__int/int/g
/^typedef.*int[0-9]*_t;$/dSigned-off-by Darrick J. Wong <[email protected]>Reviewed-by Carlos Maiolino <[email protected]>[sandeen: fix whitespace incidentals]Reviewed-by Darrick J. Wong <[email protected]>Signed-off-by Eric Sandeen <[email protected]>currently on the for-next branch of xfsprogs. You might want to carry that patch until 4.13 is released.
(and 4a492e7 xfs: remove double-underscore integer types as well)
-Eric
Quoted 31 lines
include/linux.h +27
-0+#endif +#ifndef __uint8_t +#define __uint8_t uint8_t +#endif +#ifndef __uint16_t +#define __uint16_t uint16_t +#endif +#ifndef __uint32_t +#define __uint32_t uint32_t +#endif +#ifndef __uint64_t +#define __uint64_t uint64_t +#endif + +#ifndef __int8_t +#define __int8_t int8_t +#endif +#ifndef __int16_t +#define __int16_t int16_t +#endif +#ifndef __int32_t +#define __int32_t int32_t +#endif +#ifndef __int64_t +#define __int64_t int64_t +#endif +static __inline__int xfsctl (const char *path,int fd,int cmd,void *p) {return ioctl (fd, cmd, p);
Quoted 18 lines · Khem Raj
Quoted 17 lines · Eric Sandeen
Quoted 16 lines · Khem Raj
This is required since musl does not define them
unlike glibcSigned-off-by Khem Raj <[email protected]>--- include/linux.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+)include/linux.h +0
-0@@ -40,6 +40,35 @@# undef fsxattr#endif
Quoted 8 lines
Quoted 5 lines
include/linux.h line 44
Quoted 2 lines
include/linux.h +2
-0+#ifndef loff_t +#define loff_t off_tI think you should just switch to
off64_tinio/copy_file_range.c, the only user ofloff_t.OK. I was just following the
darwin.hlead but I will make this change in v2
This seems to work ok with musl, if fcntl.h is included with -D_GNU_SOURCE which seems to be the case here so I did not do this change.
Quoted 6 lines
Quoted 3 lines
None of the following double-underscore types are present in xfsprogs since this commit:
I think it was not a complete commit. I still see issues. I will see if I can fix them
I sent another patch that fixes the remaining issues with __[u]int* uses and compiles fine with musl.
Quoted 67 lines
Quoted 67 lines
commit
14f8b6810bd240cc58131483790a099fcf56c073Author: Darrick J. Wong <[email protected]> Date: Fri Aug 4 16:33:51 2017 -0500xfsprogs: remove double-underscore integer types
This is a purely mechanical patch that removes the private __{u,}int{8,16,32,64}_t typedefs in favor of using the system {u,}int{8,16,32,64}_t typedefs. This is the sed script used to perform the transformation and fix the resulting whitespace and indentation errors:
s/typedef\t__uint8_t/typedef __uint8_t\t/g s/typedef\t__uint/typedef __uint/g s/typedef\t__int\([0-9]*\)_t/typedef int\1_t\t/g s/__uint8_t\t/__uint8_t\t\t/g s/__uint/uint/g s/__int\([0-9]*\)_t\t/__int\1_t\t\t/g s/__int/int/g
/^typedef.*int[0-9]*_t;$/dSigned-off-by Darrick J. Wong <[email protected]>Reviewed-by Carlos Maiolino <[email protected]>[sandeen: fix whitespace incidentals]Reviewed-by Darrick J. Wong <[email protected]>Signed-off-by Eric Sandeen <[email protected]>currently on the for-next branch of xfsprogs. You might want to carry that patch until 4.13 is released.
(and 4a492e7 xfs: remove double-underscore integer types as well)
-Eric
Quoted 31 lines
include/linux.h +27
-0+#endif +#ifndef __uint8_t +#define __uint8_t uint8_t +#endif +#ifndef __uint16_t +#define __uint16_t uint16_t +#endif +#ifndef __uint32_t +#define __uint32_t uint32_t +#endif +#ifndef __uint64_t +#define __uint64_t uint64_t +#endif + +#ifndef __int8_t +#define __int8_t int8_t +#endif +#ifndef __int16_t +#define __int16_t int16_t +#endif +#ifndef __int32_t +#define __int32_t int32_t +#endif +#ifndef __int64_t +#define __int64_t int64_t +#endif +static __inline__int xfsctl (const char *path,int fd,int cmd,void *p) {return ioctl (fd, cmd, p);
Quoted 2 lines · Khem Raj
This is required since musl does not define them
unlike glibc
[u]int*_t types are defined by the C99 standard and are supposed to be provided by stdint.h. If musl is not providing stdint.h, then the C99 compliant compiler should be.
What's the compilation error you're trying to fix?
Cheers,
Dave.
Signature · 2 lines
Dave Chinner [email protected]
Quoted 7 lines · Dave Chinner
Quoted 2 lines · Khem Raj
This is required since musl does not define them
unlike glibc[u]int*_t types are defined by the C99 standard and are supposed to be provided by
stdint.h. If musl is not providingstdint.h, then the C99 compliant compiler should be.
Sorry, ignore this, I read the defines the wrong way around. (more coffee!)
Cheers,
Dave.
Signature · 2 lines
Dave Chinner [email protected]