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

Lindenmaier, Goetz goetz.lindenmaier at sap.com
Thu Aug 15 14:32:00 PDT 2013

Hi Vladimir,

throw is needed because it`s there in the implementation in nmethod.cpp.
(So you are using it a bit at least :))
xlc says
"nmethod.cpp", line 802.7: 1540-0400 (S) "nmethod::operator new(size_t, int)" has a conflicting declaration.
"nmethod.hpp", line 268.9: 1540-0424 (I) "operator new" is declared on line 268 of "nmethod.hpp".

int64 is defined correctly, uint64 is not defined, but never used in hotspot.
I can not reproduce an error, but that's rather old coding from our VM.
We also switched from xlc8 to xlc10 in the course of this project.
I will test some more and talk to the person who implemented that tomorrow, 
and if possible remove the change.

Best regards & thanks for the review,

-----Original Message-----
From: Vladimir Kozlov [mailto:vladimir.kozlov at oracle.com] 
Sent: Thursday, August 15, 2013 5:52 PM
To: Lindenmaier, Goetz
Cc: 'hotspot-dev at openjdk.java.net'; ppc-aix-port-dev at openjdk.java.net; Albert Noll (albert.noll at oracle.com)
Subject: Re: RFR (M): 8023033: PPC64 (part 13): basic changes for AIX


I only see 2 problems which you did not explain:

nmethod.hpp. Why the next change? we don't use C++ exceptions:

-  void* operator new(size_t size, int nmethod_size);
+  void* operator new(size_t size, int nmethod_size) throw ();

port.hpp. Did AIX has the same definitions for jlong and julong?:

+#ifndef _AIX
+// These conflict with /usr/include/sys/inttypes.h on aix.
  typedef jlong int64;            // Java long for my 64-bit type
  typedef julong uint64;          // Java long for my 64-bit type

And of cause we need to test these changes with compilers we use.


On 8/15/13 5:10 AM, Lindenmaier, Goetz wrote:
> Hi,
> 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
> - Fixes to get the code compiling with xlC/on AIX
> - 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.
> sharedRuntimeTrig.cpp
> Aix defines hz to be 100, see sys/m_param.h. Renamed.
> debug.hpp
> With other include order we get a lot of
> memory/metaspace.hpp", line 281.66: 1540-0130 (S) "PRIuPTR" is not declared.
> Please review and test this change. Comments are welcome.
> Thanks and best regards,
>    Goetz.

More information about the hotspot-dev mailing list