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

Reply via email to