2014-11-04 23:29:18

by Darrick J. Wong

[permalink] [raw]
Subject: [PATCH] libext2fs: fix endian checking bits

Commit 3e683eef936e6d ("define bitwise types and annotate conversion
routines") broke the build on various platforms. Turns out that
crossing our fingers wasn't such a good idea, so just define it
separately.

Signed-off-by: Darrick J. Wong <[email protected]>
---
lib/blkid/blkid_types.h.in | 15 ---------------
lib/ext2fs/ext2_types.h.in | 8 +++++++-
2 files changed, 7 insertions(+), 16 deletions(-)

diff --git a/lib/blkid/blkid_types.h.in b/lib/blkid/blkid_types.h.in
index 2bb3d85..d4c81d0 100644
--- a/lib/blkid/blkid_types.h.in
+++ b/lib/blkid/blkid_types.h.in
@@ -164,19 +164,4 @@ typedef long __s64;
#undef __S64_TYPEDEF
#undef __U64_TYPEDEF

-#ifdef __CHECKER__
-#define __bitwise __attribute__((bitwise))
-#define __force __attribute__((force))
-#else
-#define __bitwise
-#define __force
-#endif
-
-typedef __u16 __bitwise __le16;
-typedef __u32 __bitwise __le32;
-typedef __u64 __bitwise __le64;
-typedef __u16 __bitwise __be16;
-typedef __u32 __bitwise __be32;
-typedef __u64 __bitwise __be64;
-
#endif /* _*_TYPES_H */
diff --git a/lib/ext2fs/ext2_types.h.in b/lib/ext2fs/ext2_types.h.in
index a00ed7f..fd57231 100644
--- a/lib/ext2fs/ext2_types.h.in
+++ b/lib/ext2fs/ext2_types.h.in
@@ -164,6 +164,12 @@ typedef long __s64;
#undef __S64_TYPEDEF
#undef __U64_TYPEDEF

+#endif /* _*_TYPES_H */
+
+/* endian checking stuff */
+#ifndef EXT2_ENDIAN_H_
+#define EXT2_ENDIAN_H_
+
#ifdef __CHECKER__
#define __bitwise __attribute__((bitwise))
#define __force __attribute__((force))
@@ -179,6 +185,6 @@ typedef __u16 __bitwise __be16;
typedef __u32 __bitwise __be32;
typedef __u64 __bitwise __be64;

-#endif /* _*_TYPES_H */
+#endif /* EXT2_ENDIAN_H_ */

@PUBLIC_CONFIG_HEADER@


2014-11-04 23:35:21

by Eric Sandeen

[permalink] [raw]
Subject: Re: [PATCH] libext2fs: fix endian checking bits

On 11/4/14 5:29 PM, Darrick J. Wong wrote:
> Commit 3e683eef936e6d ("define bitwise types and annotate conversion
> routines") broke the build on various platforms. Turns out that
> crossing our fingers wasn't such a good idea, so just define it
> separately.

sooorrry!

Seems fine, thanks.

Reviewed-by: Eric Sandeen <[email protected]>

> Signed-off-by: Darrick J. Wong <[email protected]>
> ---
> lib/blkid/blkid_types.h.in | 15 ---------------
> lib/ext2fs/ext2_types.h.in | 8 +++++++-
> 2 files changed, 7 insertions(+), 16 deletions(-)
>
> diff --git a/lib/blkid/blkid_types.h.in b/lib/blkid/blkid_types.h.in
> index 2bb3d85..d4c81d0 100644
> --- a/lib/blkid/blkid_types.h.in
> +++ b/lib/blkid/blkid_types.h.in
> @@ -164,19 +164,4 @@ typedef long __s64;
> #undef __S64_TYPEDEF
> #undef __U64_TYPEDEF
>
> -#ifdef __CHECKER__
> -#define __bitwise __attribute__((bitwise))
> -#define __force __attribute__((force))
> -#else
> -#define __bitwise
> -#define __force
> -#endif
> -
> -typedef __u16 __bitwise __le16;
> -typedef __u32 __bitwise __le32;
> -typedef __u64 __bitwise __le64;
> -typedef __u16 __bitwise __be16;
> -typedef __u32 __bitwise __be32;
> -typedef __u64 __bitwise __be64;
> -
> #endif /* _*_TYPES_H */
> diff --git a/lib/ext2fs/ext2_types.h.in b/lib/ext2fs/ext2_types.h.in
> index a00ed7f..fd57231 100644
> --- a/lib/ext2fs/ext2_types.h.in
> +++ b/lib/ext2fs/ext2_types.h.in
> @@ -164,6 +164,12 @@ typedef long __s64;
> #undef __S64_TYPEDEF
> #undef __U64_TYPEDEF
>
> +#endif /* _*_TYPES_H */
> +
> +/* endian checking stuff */
> +#ifndef EXT2_ENDIAN_H_
> +#define EXT2_ENDIAN_H_
> +
> #ifdef __CHECKER__
> #define __bitwise __attribute__((bitwise))
> #define __force __attribute__((force))
> @@ -179,6 +185,6 @@ typedef __u16 __bitwise __be16;
> typedef __u32 __bitwise __be32;
> typedef __u64 __bitwise __be64;
>
> -#endif /* _*_TYPES_H */
> +#endif /* EXT2_ENDIAN_H_ */
>
> @PUBLIC_CONFIG_HEADER@
>


2014-11-05 16:09:15

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH] libext2fs: fix endian checking bits

On Tue, Nov 04, 2014 at 05:35:15PM -0600, Eric Sandeen wrote:
> On 11/4/14 5:29 PM, Darrick J. Wong wrote:
> > Commit 3e683eef936e6d ("define bitwise types and annotate conversion
> > routines") broke the build on various platforms. Turns out that
> > crossing our fingers wasn't such a good idea, so just define it
> > separately.
>
> sooorrry!
>
> Seems fine, thanks.
>
> Reviewed-by: Eric Sandeen <[email protected]>

Applied, thanks.

- Ted