JDK-8245137 : aarch64 ICache flush depends on enabling gnu extensions
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: openjdk8u292,11,15
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • CPU: aarch64
  • Submitted: 2020-05-16
  • Updated: 2021-02-02
  • Resolved: 2020-05-18
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 15
15 b24Fixed
Related Reports
Blocks :  
Description
For aarch64, ICache::invalidate_word/range contain calls to the undeclared function __clear_cache.  This works when using -std=gnu++<whatever>, but not when using -std=c++<whatever>.

This works today because we are using -std=gnu++98.  However, when providing C++14 support (JDK-8208089) the plan is to use -std=c++14 and not enable gnu extensions.  That call to __clear_cache is the only place that currently requires gnu extensions.  It would be undesirable to enable gnu extensions in shared code just to allow this one use platform-specific code.

This can be solved by using __builtin___clear_cache instead of calling __clear_cache directly.

Comments
URL: https://hg.openjdk.java.net/jdk/jdk/rev/f814dd59bfe9 User: kbarrett Date: 2020-05-18 14:48:44 +0000
18-05-2020