On 2023/10/7 15:16, Sandeep Dhavale wrote:
On Fri, Oct 6, 2023 at 8:27 PM Gao Xiang <[email protected]> wrote:
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-000...@us-west-2.amazonses.com/
Fixes: 8ee2e591dfd6 ("erofs-utils: support detecting maximum block size")
Signed-off-by: Sandeep Dhavale <[email protected]>
---
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.
Hi Gao,
If I understand this correctly, the problem here is not having defined
action if we are cross compiling for AC_RUN_IFELSE(). The cross
compilation will fail until we have an action defined.
While at it I specified erofs_cv_max_block_size=4096 for the second
action which will be the value if the test program fails to detect the
page size.
Oh, thanks! got it. How about updating erofs_cv_max_block_size to
$MAX_BLOCK_SIZE first, and fallback to 4096 if MAX_BLOCK_SIZE is
not defined? (We need to use $MAX_BLOCK_SIZE if defined anyway...)
I mean applying the following diff in addition to the previous diff too?
+ [erofs_cv_max_block_size=$MAX_BLOCK_SIZE],
+ [erofs_cv_max_block_size=$MAX_BLOCK_SIZE]))
], [erofs_cv_max_block_size=$MAX_BLOCK_SIZE])
If it works, I could apply this version.
Thanks,
Gao Xiang
With your suggested patch, cross compilation still fails with the error
configure: error: cannot run test program while cross compiling
See `config.log' for more details
Thanks,
Sandeep.
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])