RFR (M): 8023033: PPC64 (part 13): basic changes for AIX

David Holmes david.holmes at oracle.com
Thu Aug 15 17:48:19 PDT 2013

Hi Goetz,

On 15/08/2013 10:10 PM, Lindenmaier, Goetz wrote:
> I prepared a webrev for
> 8023033: PPC64 (part 13): basic changes for AIX
> http://cr.openjdk.java.net/~goetz/webrevs/8023033-aixShared/
> This contains the basic shared changes needed for the AIX port,
> as there are
> - #includes

Aside: Seeing this I'm now firmly convinced that the platform-include 
mechanism is worse than the old includeDB mechanism that it replaced. We 
really need a way to #include these based on the value of the platform 
variable :(

> - Fixes to get the code compiling with xlC/on AIX

Are there makefile changes for xlC support as well?

> - Basic adaptions as in vm_version.cpp.
> It also determines the placement and naming of the aix files,
> which will go to os/aix and os_cpu/aix_ppc, as you can see in
> http://hg.openjdk.java.net/ppc-aix-port/jdk8/hotspot/file/9677ba28c6d8/src/os/aix/vm/
> Some details about the compilation problems:
> relocInfo.hpp:
> xlC wants initialization in inline implementation.
> vmreg.hpp:
> BAD is defined in AIX system header sys/param.h. Renamed.
> allocation.hpp
> xlC complains:
> runtime/mutexLocker.hpp", line 192.3: 1540-0300 (S) The "private" member "StackObj::operator delete(void *)" cannot be accessed.

Hmmm. So the whole point of these being private was so that they could 
not be called but we had to override the use of the global operators. 
The concrete implementations then give fatal errors if you do manage to 
use them (impossible?). So making them public is undesirable.

Is there some other way to resolve this? A pragma to tell xlC to ignore 
the perceived problem?

> sharedRuntimeTrig.cpp
> Aix defines hz to be 100, see sys/m_param.h. Renamed.

It #defines a lowercase constant! Ouch! :)

> debug.hpp
> With other include order we get a lot of
> memory/metaspace.hpp", line 281.66: 1540-0130 (S) "PRIuPTR" is not declared.

Curious. BTW have you tested with and without precompiled headers enabled?

> Please review and test this change. Comments are welcome.

Typo in src/share/vm/memory/universe.cpp: preserverd


Is this recognized as a compiler bug?


> Thanks and best regards,
>    Goetz.

More information about the hotspot-dev mailing list