Hi, Gao Xiang <xi...@kernel.org> writes:
> Hi Alexander, > > On Tue, Apr 29, 2025 at 09:30:52AM +0200, Alexander Egorenkov wrote: >> From: Super User <r...@a8345034.lnxne.boe> > > Thanks for catching this, the "From:" line seems invalid, so > I change it as "From: Alexander Egorenkov <egore...@linux.ibm.com>" > Thanks! Argh, sorry for the wrong From field. > > I guess it could break MacOS compilation, so I update as below: > > From d55344291092b69a2ba6f11dbcda52fa534ac124 Mon Sep 17 00:00:00 2001 > From: Alexander Egorenkov <egore...@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 <egore...@linux.ibm.com> > Reviewed-by: Ian Kent <ra...@themaw.net> > Reviewed-by: Hongbo Li <lihongb...@huawei.com> > Signed-off-by: Gao Xiang <hsiang...@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 Thanks! Regards Alex