On Fri, 12 Sep 2025 06:57:44 GMT, SendaoYan <s...@openjdk.org> wrote:
>> make/autoconf/flags-other.m4 line 167: >> >>> 165: fi >>> 166: CFLAGS="$OLD_CFLAGS" >>> 167: AC_LANG_POP(C) >> >> This part should be included in the `IF_ENABLED` block in `UTIL_ARG_ENABLE`. > > The `FLAGS_COMPILER_CHECK_ARGUMENTS` macro seem do not work normally in > `IF_ENABLED:` block. The 'bash configure' command report "Internal error: > Argument DEFAULT to UTIL_ARG_ENABLE can only be true, false or auto, was: > ARG_DEFAULT". Below is the implementation. > > Even though I add `PREFIX: BUILD_` or `PREFIX: ` argument to > `FLAGS_COMPILER_CHECK_ARGUMENTS` it still report the same error. > > > AC_DEFUN([FLAGS_SETUP_SVE], > [ > UTIL_ARG_ENABLE(NAME: aarch64-sve, DEFAULT: auto, > RESULT: AARCH64_SVE_ENABLED, > DESC: [Use SVE when compiling libsleef], > AVAILABLE: false, > CHECK_AVAILABLE: [ > # Apple Silicon does not support SVE; use macOS as a proxy for that > check. > if test "x$OPENJDK_TARGET_CPU" = "xaarch64" && test > "x$OPENJDK_TARGET_OS" = "xlinux"; then > if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = > xclang; then > # check the compiler and binutils support sve or not > AC_MSG_CHECKING([if Arm SVE ACLE is supported]) > AC_LANG_PUSH([C]) > saved_cflags="$CFLAGS" > saved_cc="$CC" > CFLAGS="$CFLAGS -march=armv8-a+sve $CFLAGS_WARNINGS_ARE_ERRORS > ARG_ARGUMENT" > CC="$ARG_PREFIX[CC]" > AC_COMPILE_IFELSE([AC_LANG_PROGRAM( > [ > #include <arm_sve.h> > svfloat64_t a() {} > ], > [ > svint32_t r = svdup_n_s32(1) > ])], > [AVAILABLE=true], > [AVAILABLE=false] > ) > AC_MSG_RESULT([$AVAILABLE]) > CC="$saved_cc" > CFLAGS="$saved_cflags" > AC_LANG_POP([C]) > fi > fi > ], > IF_ENABLED: [ > SVE_CFLAGS="-march=armv8-a+sve" > # Switching the initialization mode with gcc from 'pattern' to 'zero' > # avoids the use of unsupported `__builtin_clear_padding` for variable > # length aggregates > if test "x$DEBUG_LEVEL" != xrelease && test "x$TOOLCHAIN_TYPE" = xgcc ; > then > AC_MSG_CHECKING([Switching the initialization mode with gcc from > pattern to zero]) > INIT_ZERO_FLAG="-ftrivial-auto-var-init=zero" > FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$INIT_ZERO_FLAG], > IF_TRUE: [SVE_CFLAGS="${SVE_CFLAGS} $INIT_ZERO_FLAG"]) > fi > ] > ) > AC_SUBST(SVE_CFLAGS) > ]) > > > [default.log](https://github.com/user-attachments/files/22293047/default.log) That's a valid reason not to do it. Seems like there is some issue with nesting calls to our named parameter macros. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/27073#discussion_r2344215834