On Thu, 15 Feb 2024 11:10:32 GMT, Joachim Kern <jk...@openjdk.org> wrote:

>> What does this mean? That you are not using xlc at all? Or is it clang but 
>> still with an xlc frontend, so all xlc flags etc need to stay?
>
>> What does this mean? That you are not using xlc at all? Or is it clang but 
>> still with an xlc frontend, so all xlc flags etc need to stay?
> 
> 
> The `xlc` toolchain is for the compiler versions up to 16 (xlclang++); the 
> `clang` toolchain is for the compiler versions 17 (ibm-clang++_r) and higher. 
> For the 17 Compiler the frontend is `clang`-ish and we are using the `clang` 
> flags instead of the `xlc` flags.
> `toolchain.m4` decides on the basis of the found compiler which toolchain to 
> use as default.
> 
> # On AIX the default toolchain depends on the installed (found) compiler
>   #   xlclang++     -> xlc toolchain
>   #   ibm-clang++_r -> clang toolchain
>   # The compiler is searched on the PATH and TOOLCHAIN_PATH
>   # xlclang++ has precedence over ibm-clang++_r if both are installed
> 
> So, if we set the minimum compiler level for AIX to 17, we can remove the xlc 
> toolchain at all. 
> We cannot remove every reference to xlc, because at least some headers we 
> still use the xlc version (globalDefinitions_xlc.hpp)

> @JoKern65 Thanks for the explanation! It would be nice to clear out the xlc 
> stuff. Let's open a separate issue for that once this is integrated.
> 
> I also believe that the selection of `globalDefinitions_xlc.hpp` is done by 
> #ifdefs in Hotspot source code, and has no relation to the build systems 
> concept of toolchains.

There is one spot in the build system where clang is forcefully labelled as 
xlc, in the place where the HotSpot toolchain type is set
https://github.com/openjdk/jdk/blob/a0e5e16afbd19f6396f0af2cba954225a357eca8/make/autoconf/toolchain.m4#L1015

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

PR Comment: https://git.openjdk.org/jdk/pull/17857#issuecomment-1945992143

Reply via email to