[PATCH v1] erofs-utils: Fix cross compile with autoconf

Gao Xiang hsiangkao at linux.alibaba.com
Sat Oct 7 14:27:43 AEDT 2023


Hi Sandeep!

On 2023/10/6 06:40, Sandeep Dhavale wrote:
> AC_RUN_IFELSE expects the action if cross compiling. If not provided
> cross compilation fails with error "configure: error: cannot run test
> program while cross compiling".
> Use 4096 as the buest guess PAGESIZE if cross compiling as it is still
> the most common page size.

Thanks for your report!

> 
> Reported-in: https://lore.kernel.org/all/0101018aec71b531-0a354b1a-0b70-47a1-8efc-fea8c439304c-000000@us-west-2.amazonses.com/
> Fixes: 8ee2e591dfd6 ("erofs-utils: support detecting maximum block size")
> Signed-off-by: Sandeep Dhavale <dhavale at google.com>
> ---
>   configure.ac | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index 13ee616..a546310 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -284,8 +284,8 @@ AS_IF([test "x$MAX_BLOCK_SIZE" = "x"], [
>       return 0;
>   ]])],
>                                [erofs_cv_max_block_size=`cat conftest.out`],
> -                             [],
> -                             []))
> +                             [erofs_cv_max_block_size=4096],
> +                             [erofs_cv_max_block_size=4096]))
>   ], [erofs_cv_max_block_size=$MAX_BLOCK_SIZE])

Actually the following check will reset erofs_cv_max_block_size to 4096
if needed. But it seems that it has syntax errors.

I wonder if the following diff could fix the issue too?

Thanks,
Gao Xiang

diff --git a/configure.ac b/configure.ac
index 13ee616..94eec01 100644
--- a/configure.ac
+++ b/configure.ac
@@ -288,6 +288,9 @@ AS_IF([test "x$MAX_BLOCK_SIZE" = "x"], [
                               []))
  ], [erofs_cv_max_block_size=$MAX_BLOCK_SIZE])

+AS_IF([test "x$erofs_cv_max_block_size" = "x"],
+      [erofs_cv_max_block_size=4096], [])
+
  # Configure debug mode
  AS_IF([test "x$enable_debug" != "xno"], [], [
    dnl Turn off all assert checking.
@@ -501,9 +504,6 @@ if test "x$have_libdeflate" = "xyes"; then
  fi

  # Dump maximum block size
-AS_IF([test "x$erofs_cv_max_block_size" = "x"],
-      [$erofs_cv_max_block_size = 4096], [])
-
  AC_DEFINE_UNQUOTED([EROFS_MAX_BLOCK_SIZE], [$erofs_cv_max_block_size],
  		   [The maximum block size which erofs-utils supports])


More information about the Linux-erofs mailing list