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

David Holmes david.holmes at oracle.com
Thu Aug 15 17:14:38 PDT 2013


On 16/08/2013 7:54 AM, Vladimir Kozlov wrote:
> On 8/15/13 2:32 PM, Lindenmaier, Goetz wrote:
>> 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".
>
> Okay, it is just declaration.

Why do we have throw here:

void* nmethod::operator new(size_t size, int nmethod_size) throw () {
   // Not critical, may return null if there is too little continuous memory
   return CodeCache::allocate(nmethod_size);
}

Seems to me it should be removed if anything.

David
-----

>
>>
>> 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.
>
> Okay, I will test it also.
>
> Vladimir
>
>>
>> Best regards & thanks for the review,
>>    Goetz.
>>
>>
>>
>>
>>
>> -----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
>>
>> Goetz,
>>
>> 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
>> +#endif
>>
>>
>> And of cause we need to test these changes with compilers we use.
>>
>> Thanks,
>> Vladimir
>>
>> 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 ppc-aix-port-dev mailing list