RFR: 8282392: [zero] Build broken on AArch64 [v2]

David Holmes dholmes at openjdk.java.net
Wed Mar 2 22:48:06 UTC 2022


On Wed, 2 Mar 2022 10:23:25 GMT, Andrew Haley <aph at openjdk.org> wrote:

>> Zero is a CPU-agnostic interpreter build, but our builds are inherently CPU-based, so Zero has to represent that "don't care" CPU because it has to replace some CPU specific code with Zero's C code. But then you have to build other CPU-specific parts of the JDK even when using Zero. Hence the approach of using CPU ifdefs combined with a check for Zero.
>> Yes it is awkward and confusing and mistakes can creep in. But I don't think you will come up with anything better for this situation. And the AARCH64_PORT_ONLY is certainly not better IMO.
>
>> Zero is a CPU-agnostic interpreter build, but our builds are inherently CPU-based, so Zero has to represent that "don't care" CPU because it has to replace some CPU specific code with Zero's C code. But then you have to build other CPU-specific parts of the JDK even when using Zero. Hence the approach of using CPU ifdefs combined with a check for Zero. Yes it is awkward and confusing and mistakes can creep in. But I don't think you will come up with anything better for this situation. And the AARCH64_PORT_ONLY is certainly not better IMO.
> 
> Can you explain why it's not better? I don't want to waste your time by prolonging discussions unnecessarily, but it seems to me that this nomenclature conveys exactly what we mean: not so much running on a particular CPU, but a particular port.
> There's a matrix of possible combinations of instruction set architecture and port, with the ports ranging from highly-tuned and customized to completely portable, with space in between.

@theRealAph the word "port" may have a very specific meaning to you such that this macro conveys what you expect, but it doesn't to me. You have to know what is not considered part of a "port" when building Aarch64 - and that is simply when building Zero. So to me Zero should be part of any conditionalisation. e.g. (if macros work this way)

`NOT_ZERO(AARCH64_ONLY(ret_pc = pauth_strip_pointer(ret_pc);))`

or the ifdefs @shipilev  suggested.

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

PR: https://git.openjdk.java.net/jdk/pull/7633


More information about the hotspot-dev mailing list