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

2013-06-24 Thread Coleen Phillimore


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, 

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

2013-06-19 Thread Ron Durbin
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 

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

2013-06-19 Thread Daniel D. Daugherty

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 

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

2013-06-19 Thread Daniel D. Daugherty

Thanks for the reviews!

Dan


On 6/19/13 1: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.



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

2013-06-18 Thread David Holmes

Thanks for picking this up Dan (and hs25)

Given this was my suggested fix I guess you are actually the one that 
needs to review it :)


For completeness I'll add that the linker complains about non-existent 
symbols on OSX hence the deletion of a number of entries. The linux and 
solaris mapfiles could probably be cleaned up too but as you note that 
is beyond the scope of this fix (and the linker doesn't care about 
non-existent symbols on those platforms).


Once we have mapfiles working on all platforms we can look into the 
explicit visibility declarations + compiler-flags that have previously 
been suggested - at least for 8 (hs25).


Thanks again,
David

On 19/06/2013 6:50 AM, 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 

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

2013-06-18 Thread Daniel D. Daugherty

On 6/18/13 8:11 PM, David Holmes wrote:

Thanks for picking this up Dan (and hs25)


You're welcome!


Given this was my suggested fix I guess you are actually the one that 
needs to review it :)


You are quite correct that I should have made this point clear.
I'm planning to list you as author since I only made cosmetic
changes to your fix. I'm planning to list myself as a reviewer
and I'll handle the JPRT juggling act.



For completeness I'll add that the linker complains about non-existent 
symbols on OSX hence the deletion of a number of entries. The linux 
and solaris mapfiles could probably be cleaned up too but as you note 
that is beyond the scope of this fix (and the linker doesn't care 
about non-existent symbols on those platforms).


Thanks for the info about the OSX linker.


Once we have mapfiles working on all platforms we can look into the 
explicit visibility declarations + compiler-flags that have previously 
been suggested - at least for 8 (hs25).


I'll file an RFE for that since I don't think one already exists.

Dan




Thanks again,
David

On 19/06/2013 6:50 AM, 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.