HSX-24: Code Review (round 0) request for MacOS X exported symbols fix (8014326)

Coleen Phillimore coleen.phillimore at oracle.com
Wed Jun 19 13:08:09 PDT 2013


Added back build-dev.

On 6/19/2013 3:58 PM, Coleen Phillimore wrote:
>
> Dan,
> This looks good!
> Coleen
>
> On 6/18/2013 4:50 PM, Daniel D. Daugherty wrote:
>> Greetings,
>>
>> I have picked up David Holmes' work on the following bug:
>>
>>     8014326 [OSX] All libjvm symbols are exported
>>     http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8014326
>>     https://jbs.oracle.com/bugs/browse/JDK-8014326
>>
>> Here are the HSX-24 backport webrev URLs:
>>
>> OpenJDK: http://cr.openjdk.java.net/~dcubed/8014326-webrev/0-hsx24/
>> Internal: http://javaweb.us.oracle.com/~ddaugher/8014326-webrev/0-hsx24/
>>
>> Testing:
>> - JPRT test job on MacOS X
>> - (in process) Aurora Adhoc vm.quick batch for MacOS X in the following
>>   configs: {Server VM} x {fastdebug} x {-Xmixed}
>>
>> Gory details are below. As always, comments, questions and
>> suggestions are welome.
>>
>> Dan
>>
>>
>> Gory Details:
>>
>> The script and Makefile changes are easy to review via the webrev.
>>
>> However, every function name in the MacOS X mapfiles had to be modified
>> to match the MacOS X symbol export syntax. I created "normalized"
>> copies of the mapfiles in order to compare the semantic changes (and
>> ignore the syntactic changes). These diffs are added to bug report,
>> but JBS is not yet accessible outside Oracle and bugs.sun.com can
>> be slow to update so I've included the diffs here.
>>
>>
>> ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>> mapfile-vers-debug: current BSD versus updated BSD
>> ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>>
>> $ diff bsd-funcs-debug{.orig,}
>> 191a192
>> > JVM_SetNativeThreadName
>> 215,232d215
>> < # Old reflection routines
>> < # These do not need to be present in the product build in JDK 1.4
>> < # but their code has not been removed yet because there will not
>> < # be a substantial code savings until JVM_InvokeMethod and
>> < # JVM_NewInstanceFromConstructor can also be removed; see
>> < # reflectionCompat.hpp.
>> < JVM_GetClassConstructor
>> < JVM_GetClassConstructors
>> < JVM_GetClassField
>> < JVM_GetClassFields
>> < JVM_GetClassMethod
>> < JVM_GetClassMethods
>> < JVM_GetField
>> < JVM_GetPrimitiveField
>> < JVM_NewInstance
>> < JVM_SetField
>> < JVM_SetPrimitiveField
>> <
>> 239,241d221
>> < fork1
>> < numa_warn
>> < numa_error
>> 243,245d222
>> < # Needed because there is no JVM interface for this.
>> < sysThreadAvailableStackWithSlack
>> <
>>
>> Line 192: add missing JVM_SetNativeThreadName entry
>> Delete the old reflection routines!
>> Delete other functions not compiled into BSD/MacOS X.
>>
>>
>> ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>> mapfile-vers-product: current BSD versus updated BSD
>> ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>>
>> $ diff bsd-funcs-product.orig bsd-funcs-product
>> 191a192
>> > JVM_SetNativeThreadName
>> 215,232d215
>> < # Old reflection routines
>> < # These do not need to be present in the product build in JDK 1.4
>> < # but their code has not been removed yet because there will not
>> < # be a substantial code savings until JVM_InvokeMethod and
>> < # JVM_NewInstanceFromConstructor can also be removed; see
>> < # reflectionCompat.hpp.
>> < JVM_GetClassConstructor
>> < JVM_GetClassConstructors
>> < JVM_GetClassField
>> < JVM_GetClassFields
>> < JVM_GetClassMethod
>> < JVM_GetClassMethods
>> < JVM_GetField
>> < JVM_GetPrimitiveField
>> < JVM_NewInstance
>> < JVM_SetField
>> < JVM_SetPrimitiveField
>> <
>> 239,241d221
>> < fork1
>> < numa_warn
>> < numa_error
>> 243,245d222
>> < # Needed because there is no JVM interface for this.
>> < sysThreadAvailableStackWithSlack
>> <
>>
>> Line 192: add missing JVM_SetNativeThreadName entry
>> Delete the old reflection routines!
>> Delete other functions not compiled into BSD/MacOS X.
>>
>>
>> Since the MacOS X port was originally derived from the Linux port,
>> it also makes sense to compare the updated BSD files versus the
>> current Linux files. This is a useful sanity check.
>>
>>
>> ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>> mapfile-vers-debug: updated BSD versus current Linux
>> ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>>
>> $ diff {bsd,linux}-funcs-debug
>> 214c214
>> < JVM_handle_bsd_signal
>> ---
>> > JVM_handle_linux_signal
>> 226a227,229
>> > fork1
>> > numa_warn
>> > numa_error
>> 227a231,233
>> > # Needed because there is no JVM interface for this.
>> > sysThreadAvailableStackWithSlack
>> >
>>
>> Line 214 is an obvious rename.
>> Lines 227-229 are functions not compiled into BSD/MacOS X.
>> Line 232 is an error on Linux; sysThreadAvailableStackWithSlack is
>> only on Solaris, but we won't fix that with this bug since we want
>> the MacOS X fix in HSX24 and in HSX25.
>>
>>
>> ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>> mapfile-vers-product: updated BSD versus current Linux
>> ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>>
>> $ diff {bsd,linux}-funcs-product
>> 214c214
>> < JVM_handle_bsd_signal
>> ---
>> > JVM_handle_linux_signal
>> 221a222,224
>> > fork1
>> > numa_warn
>> > numa_error
>> 222a226,228
>> > # Needed because there is no JVM interface for this.
>> > sysThreadAvailableStackWithSlack
>> >
>>
>> Line 214 is an obvious rename.
>> Lines 222-224 are functions not compiled into BSD/MacOS X.
>> Line 227 is an error on Linux; sysThreadAvailableStackWithSlack is
>> only on Solaris, but we won't fix that with this bug since we want
>> the MacOS X fix in HSX24 and in HSX25.
>>
>>
>> Lastly, since this is a backport from HSX-25 -> HSX-24, we should
>> look at what's different between those two version:
>>
>>
>> ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>> mapfile-vers-debug: updated HSX-24 BSD versus HSX-25 BSD
>> ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>>
>> $ diff 8014326_exp_for_hsx2{4,5}/bsd-funcs-debug
>> 98a99
>> >                 JVM_GetClassTypeAnnotations
>> 104a106
>> >                 JVM_GetFieldTypeAnnotations
>> 124a127,128
>> >                 JVM_GetMethodParameters
>> >                 JVM_GetMethodTypeAnnotations
>> 156a161
>> >                 JVM_IsVMGeneratedMethodIx
>> 174d178
>> <                 JVM_PrintStackTrace
>>
>> Several new functions were added in HSX-25 and one function
>> was deleted in HSX25.
>>
>>
>> ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>> mapfile-vers-product: updated HSX-24 BSD versus HSX-25 BSD
>> ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>>
>> $ diff 8014326_exp_for_hsx2{4,5}/bsd-funcs-product
>> 98a99
>> >                 JVM_GetClassTypeAnnotations
>> 104a106
>> >                 JVM_GetFieldTypeAnnotations
>> 124a127,128
>> >                 JVM_GetMethodParameters
>> >                 JVM_GetMethodTypeAnnotations
>> 156a161
>> >                 JVM_IsVMGeneratedMethodIx
>> 174d178
>> <                 JVM_PrintStackTrace
>>
>> Several new functions were added in HSX-25 and one function
>> was deleted in HSX25.
>



More information about the hotspot-runtime-dev mailing list