On Sun, 7 Sep 2025 14:04:40 GMT, SendaoYan <[email protected]> wrote: >> make/autoconf/flags-cflags.m4 line 996: >> >>> 994: AC_DEFUN([BPERF_SETUP_SVE], >>> 995: [ >>> 996: UTIL_ARG_ENABLE(NAME: aarch64-sve, DEFAULT: auto, >> >> The idea with this macro is that you put the supported check and actions on >> enabled/disabled in the call and let it handle the logic. It shouldn't be >> moved to a separate macro. Also, macros defined in this file should have the >> `FLAGS` prefix, not `BPERF`. > > I also want to put the put the supported check and actions on > enabled/disabled in the call previous. But I found that the configure will > stuck at below command: > > > ++ /usr/bin/autoconf -W all -I/home/yansendao/git/jdk-ysd/make/autoconf - > > > The change like that: > > > diff --git a/make/autoconf/flags-cflags.m4 b/make/autoconf/flags-cflags.m4 > index 97e37cc923b..96ea730e80a 100644 > --- a/make/autoconf/flags-cflags.m4 > +++ b/make/autoconf/flags-cflags.m4 > @@ -940,6 +940,10 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP], > # ACLE and this flag are required to build the aarch64 SVE related > functions in > # libvectormath. Apple Silicon does not support SVE; use macOS as a proxy > for > # that check. > + UTIL_ARG_ENABLE(NAME: aarch64-sve, DEFAULT: auto, > + RESULT: enable_aarch64_sve, > + DESC: [Use SVE when compile libsleef]) > + AC_SUBST(enable_aarch64_sve) > 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 > AC_LANG_PUSH(C) > @@ -991,14 +995,6 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP], > AC_SUBST($2SVE_CFLAGS) > ]) > > -AC_DEFUN([BPERF_SETUP_SVE], > -[ > - UTIL_ARG_ENABLE(NAME: aarch64-sve, DEFAULT: auto, > - RESULT: enable_aarch64_sve, > - DESC: [Use SVE when compile libsleef]) > - AC_SUBST(enable_aarch64_sve) > -]) > - > AC_DEFUN_ONCE([FLAGS_SETUP_BRANCH_PROTECTION], > [ > # Is branch protection available? > > > I think I should find other solution later.
This is since `FLAGS_SETUP_CFLAGS_CPU_DEP` is called twice. UTIL_ARG_ENABLE should only be called once. So it is (unfortunately) correct that the call to UTIL_ARG_ENABLE cannot be close to where it is used, in this case. However, it seems excessive to call a separate function from the top-level configure.ac only for that. I believe you can just inline this into FLAGS_SETUP_FLAGS, or at the very least, call `FLAGS_SETUP_SVE` (as it should be called, if kept) from FLAGS_SETUP_FLAGS. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/27073#discussion_r2332273569
