From: Gao Xiang <xiang@kernel.org>
To: Alexander Egorenkov <egorenar@linux.ibm.com>
Cc: hsiangkao@linux.alibaba.com, linux-erofs@lists.ozlabs.org
Subject: Re: [PATCH v1 1/1] erofs-utils: fix endiannes issue
Date: Tue, 29 Apr 2025 21:54:34 +0800 [thread overview]
Message-ID: <aBDaGgtXhaCr9p0p@debian> (raw)
In-Reply-To: <20250429073052.53681-1-egorenar@linux.ibm.com>
Hi Alexander,
On Tue, Apr 29, 2025 at 09:30:52AM +0200, Alexander Egorenkov wrote:
> From: Super User <root@a8345034.lnxne.boe>
Thanks for catching this, the "From:" line seems invalid, so
I change it as "From: Alexander Egorenkov <egorenar@linux.ibm.com>"
>
> Macros __BYTE_ORDER, __LITTLE_ENDIAN and __BIG_ENDIAN are defined in
> user space header 'endian.h'. Not including this header results in
> the condition #if __BYTE_ORDER == __LITTLE_ENDIAN being always true, even on
> BE architectures (e.g. s390x). Due to this bug the compressor library was
> built for LE byte-order on BE arch s390x.
>
> Fixes: bc99c763e3fe ("erofs-utils: switch to effective unaligned access")
> Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com>
> ---
> include/erofs/defs.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/include/erofs/defs.h b/include/erofs/defs.h
> index 051a270531ca..196dfa8191a8 100644
> --- a/include/erofs/defs.h
> +++ b/include/erofs/defs.h
> @@ -19,6 +19,7 @@ extern "C"
> #include <inttypes.h>
> #include <limits.h>
> #include <stdbool.h>
> +#include <endian.h>
I guess it could break MacOS compilation, so I update as below:
From d55344291092b69a2ba6f11dbcda52fa534ac124 Mon Sep 17 00:00:00 2001
From: Alexander Egorenkov <egorenar@linux.ibm.com>
Date: Tue, 29 Apr 2025 09:30:52 +0200
Subject: [PATCH] erofs-utils: fix endiannes issue
Macros __BYTE_ORDER, __LITTLE_ENDIAN and __BIG_ENDIAN are defined in
user space header 'endian.h'. Not including this header results in
the condition #if __BYTE_ORDER == __LITTLE_ENDIAN being always true,
even on BE architectures (e.g. s390x). Due to this bug the compressor
library was built for LE byte-order on BE arch s390x.
Fixes: bc99c763e3fe ("erofs-utils: switch to effective unaligned access")
Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com>
Reviewed-by: Ian Kent <raven@themaw.net>
Reviewed-by: Hongbo Li <lihongbo22@huawei.com>
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
---
configure.ac | 1 +
include/erofs/defs.h | 15 +++++++++++++++
2 files changed, 16 insertions(+)
diff --git a/configure.ac b/configure.ac
index 6e1e7a1..88f1cbe 100644
--- a/configure.ac
+++ b/configure.ac
@@ -194,6 +194,7 @@ AC_ARG_WITH(selinux,
AC_CHECK_HEADERS(m4_flatten([
dirent.h
execinfo.h
+ endian.h
fcntl.h
getopt.h
inttypes.h
diff --git a/include/erofs/defs.h b/include/erofs/defs.h
index 051a270..21e0f09 100644
--- a/include/erofs/defs.h
+++ b/include/erofs/defs.h
@@ -24,6 +24,21 @@ extern "C"
#include <config.h>
#endif
+#ifdef HAVE_ENDIAN_H
+#include <endian.h>
+#else
+/* Use GNU C predefined macros as a fallback */
+#ifndef __BYTE_ORDER
+#define __BYTE_ORDER __BYTE_ORDER__
+#endif
+#ifndef __LITTLE_ENDIAN
+#define __LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__
+#endif
+#ifndef __BIG_ENDIAN
+#define __BIG_ENDIAN __ORDER_BIG_ENDIAN__
+#endif
+#endif
+
#ifdef HAVE_LINUX_TYPES_H
#include <linux/types.h>
#endif
--
2.30.2
next prev parent reply other threads:[~2025-04-29 13:54 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-29 7:30 [PATCH v1 1/1] erofs-utils: fix endiannes issue Alexander Egorenkov
2025-04-29 8:30 ` Hongbo Li
2025-04-29 11:07 ` Ian Kent
2025-04-29 13:54 ` Gao Xiang [this message]
2025-04-29 14:00 ` Alexander Egorenkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aBDaGgtXhaCr9p0p@debian \
--to=xiang@kernel.org \
--cc=egorenar@linux.ibm.com \
--cc=hsiangkao@linux.alibaba.com \
--cc=linux-erofs@lists.ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.