Details
-
Enhancement
-
Resolution: Fixed
-
P4
-
15
-
None
-
b23
-
aarch64
Description
When building HotSpot with gcc9.x for aarch64, there are a couple of places that trigger a "warning" (technically a "note") about an ABI change from earlier versions. The message is
<location>: note: parameter passing for argument of type '<type> changed in GCC 9.1
This is mentioned prominently in the gcc 9 release notes:
"On Arm targets (arm*-*-*), a bug in the implementation of the procedure call standard (AAPCS) in the GCC 6, 7 and 8 releases has been fixed: a structure containing a bit-field based on a 64-bit integral type and where no other element in a structure required 64-bit alignment could be passed incorrectly to functions. This is an ABI change. If the option -Wpsabi is enabled (on by default) the compiler will emit a diagnostic note for code that might be affected."
As the only HotSpot types being warned about are internal and do not cross library boundaries, and we compile the entire jdk with the same compiler, these "warnings" are not interesting and just clutter build logs and cause unnecessary worry.
To suppress these notes, -Wno-psabi should be added to the compiler options for HotSpot when building for any flavor of ARM, i.e. when the $VAR_CPU build variable is "arm" or "aarch64". That option is already present for "arm" because of a similar issue with gcc 4.4. We should add it for "aarch64".
<location>: note: parameter passing for argument of type '<type> changed in GCC 9.1
This is mentioned prominently in the gcc 9 release notes:
"On Arm targets (arm*-*-*), a bug in the implementation of the procedure call standard (AAPCS) in the GCC 6, 7 and 8 releases has been fixed: a structure containing a bit-field based on a 64-bit integral type and where no other element in a structure required 64-bit alignment could be passed incorrectly to functions. This is an ABI change. If the option -Wpsabi is enabled (on by default) the compiler will emit a diagnostic note for code that might be affected."
As the only HotSpot types being warned about are internal and do not cross library boundaries, and we compile the entire jdk with the same compiler, these "warnings" are not interesting and just clutter build logs and cause unnecessary worry.
To suppress these notes, -Wno-psabi should be added to the compiler options for HotSpot when building for any flavor of ARM, i.e. when the $VAR_CPU build variable is "arm" or "aarch64". That option is already present for "arm" because of a similar issue with gcc 4.4. We should add it for "aarch64".
Attachments
Issue Links
- duplicates
-
JDK-8235983 AArch64: Struct with 64-bit bitfield (128-bit on AArch64) may be passed in wrong registers
-
- Closed
-
- relates to
-
JDK-8235983 AArch64: Struct with 64-bit bitfield (128-bit on AArch64) may be passed in wrong registers
-
- Closed
-