On Fri, 22 Mar 2024 15:30:35 GMT, Hamlin Li <m...@openjdk.org> wrote:

> > > Ah, it'll only be the redirect library that's compiled with 
> > > -march=armv8-a+sve Forget that.
> > 
> > 
> > But that raises an interesting question. What happens if you try to load a 
> > library compiled with `-march=armv8-a+sve` on a non-SVE system? Is the ELF 
> > flagged to require SVE so it will fail to load? I'm hoping this is the case 
> > -- if so, everything will work as it should in this PR, but I honestly 
> > don't know. (After spending like 10 years working with building, I still 
> > discover things I need to learn...).
> 
> I think we can handle it, when a jdk built with sve support runs on a non-sve 
> machine, the sve related code will not be executed with the protection of 
> UseSVE vm flag which is detected at runtime startup.

I think we should not have specified any `-march=Xxx` option here in 
`make/autoconf/flags-cflags.m4` under `AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP]`. 
It generates conflicts when a user builds JDK with relevant flags in 
`--with-extra-cflags=-march=Xxx`. Moreover, above `-march=armv8-a+sve` can 
accidentally overwrite `-mcpu=Xxx` or `-mtune=Xxx` contents if a user specified 
in configure cmdline, because `-march` is of higher priority for a toolchain 
deciding what uarch/cost-model/instructions would be used. 

The configure sequence can be briefly described as below:

> 1. FLAGS_PRE_TOOLCHAIN ->
>     FLAGS_SETUP_USER_SUPPLIED_FLAGS
>             AC_ARG_WITH(extra-cflags, [AS_HELP_STRING([--with-extra-cflags], 
> [extra flags to be used when compiling jdk c-files])])
>             (For example, we specify 
> **--with-extra-cflags="-march=armv8.2a+fp16"**)
>             
> 2. FLAGS_SETUP_FLAGS
>     -> FLAGS_SETUP_CFLAGS
>         -> FLAGS_SETUP_CFLAGS_CPU_DEP
>             CFLAGS="$CFLAGS **-march=armv8-a+sve"**

The later one will modify/overwrite the former one that the user is really 
building for. @Hamlin-Li @magicus @theRealAph

-------------

PR Comment: https://git.openjdk.org/jdk/pull/18294#issuecomment-2487793664

Reply via email to