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

Daniel D. Daugherty daniel.daugherty at oracle.com
Tue Jun 18 13:30:25 PDT 2013


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-25 webrev URLs:

OpenJDK: http://cr.openjdk.java.net/~dcubed/8014326-webrev/0-hsx25/
Internal: http://javaweb.us.oracle.com/~ddaugher/8014326-webrev/0-hsx25/

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,}
195a196
 > JVM_SetNativeThreadName
219,236d219
< # 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
<
248,250d230
< fork1
< numa_warn
< numa_error
252,254d231
< # Needed because there is no JVM interface for this.
< sysThreadAvailableStackWithSlack
<

Line 196: 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,}
195a196
 > JVM_SetNativeThreadName
219,236d219
< # 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
<
243,245d225
< fork1
< numa_warn
< numa_error
247,249d226
< # Needed because there is no JVM interface for this.
< sysThreadAvailableStackWithSlack
<

Line 196: 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
218c218
< JVM_handle_bsd_signal
---
 > JVM_handle_linux_signal
230a231,233
 > fork1
 > numa_warn
 > numa_error
231a235,237
 > # Needed because there is no JVM interface for this.
 > sysThreadAvailableStackWithSlack
 >

Line 218 is an obvious rename.
Lines 231-233 are functions not compiled into BSD/MacOS X.
Line 236 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
218c218
< JVM_handle_bsd_signal
---
 > JVM_handle_linux_signal
225a226,228
 > fork1
 > numa_warn
 > numa_error
226a230,232
 > # Needed because there is no JVM interface for this.
 > sysThreadAvailableStackWithSlack
 >

Line 218 is an obvious rename.
Lines 226-228 are functions not compiled into BSD/MacOS X.
Line 231 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.



More information about the hotspot-runtime-dev mailing list