Ron,

Thanks for the review.

Dan


On 6/19/13 7:39 AM, Ron Durbin wrote:
Dan

These changes look good.

Ron

-----Original Message-----
From: Daniel D. Daugherty
Sent: Tuesday, June 18, 2013 2:50 PM
To: hotspot-runtime-...@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.

Reply via email to