RFR (S) JDK-8043301: Duplicate definitions in vm/runtime/sharedRuntimeTrans.cpp versus math.h in VS2013

Lois Foltan lois.foltan at oracle.com
Wed May 21 17:22:26 UTC 2014

On 5/21/2014 12:49 PM, Tim Bell wrote:
> Lois:
>> Please review the following fix:
>> Webrev:
>>     http://cr.openjdk.java.net/~lfoltan/bug_jdk8043301/
>> Bug: Duplicate definitions in vm/runtime/sharedRuntimeTrans.cpp 
>> versus math.h in VS2013
>>     https://bugs.openjdk.java.net/browse/JDK-8043301
>> Summary of fix:
>> VS2013's include/math.h now contains definitions for both copysign() 
>> and scalbn().  This yielded compilation conflicts with the JVM's 
>> definition of these functions within runtime/sharedRuntimeTrans.cpp.  
>> I changed copysign and scalbn definitions to be consistent with how 
>> they are defined within sharedRuntimeTrig.cpp.  They are now defined 
>> as copysignA and scalbnA static functions.  I also removed the 
>> !defined(AIX) conditionalization around these defintions since no 
>> conflict should now exist with AIX's math.h.
>> Tests:
>>     JPRT build & test, Hotspot jtreg, JDK lang & util, 
>> vm.quick.testlist (in progress)
> Thank you for the fix.  Looks good to me, although I am not a hotspot 
> reviewer or committer.  I have very low confidence that their 
> implementations of 'copysign' and 'scalbn' would exactly match what we 
> use on all other platforms, especially since we can't inspect their code.

Thanks Tim for the review.  I think due to performance reasons 
sharedRuntimeTrans.cpp and sharedRuntimeTrig.cpp have their own 
definitions.   These are the only two files in the JVM that use copysign 
and scalbn.

> I have the sharedRuntimeTrans.cpp patch in my compiler upgrade source 
> tree... testing now.

Great, thanks again!

> Tim

More information about the hotspot-runtime-dev mailing list