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

Ron Durbin ron.durbin at oracle.com
Wed Jun 19 06:39:53 PDT 2013


Dan

These changes look good.

Ron

> -----Original Message-----
> From: Daniel D. Daugherty
> Sent: Tuesday, June 18, 2013 2:50 PM
> To: hotspot-runtime-dev at openjdk.java.net; build-dev
> Subject: HSX-24: Code Review (round 0) request for MacOS X exported symbols fix (8014326)
> 
> 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