RFR: 8306033: Resolve multiple definition of 'throwIOException' and friends when statically linking with JDK native libraries

Jiangli Zhou jiangli at openjdk.org
Mon Apr 17 17:25:16 UTC 2023


- Make functions 'static' when feasible:
  - throwByName() in src/java.security.jgss/share/native/libj2gss/NativeUtil.c.
  - throwByName(), throwIOException() and throwNullPointerException() in src/java.smartcardio/unix/native/libj2pcsc/pcsc_md.c.
  - throwByName() in src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_util.c.
  - throwOutOfMemoryError() in src/java.smartcardio/share/native/libj2pcsc/pcsc.c.
  - Move throwDisconnectedRuntimeException() to src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_util.c since it's only used in the file. Make it static.
  - Move throw_internal_error() to src/jdk.management/unix/native/libmanagement_ext/OperatingSystemImpl.c as it's only used in the file. Make it static.

- Rename functions by following the existing naming usages in different libraries code:
  - Rename throwOutOfMemoryError() to gssThrowOutOfMemoryError() in libj2gss.
  - Rename throwOutOfMemoryError() to p11ThrowOutOfMemoryError() in libj2pks11.
  - Rename throwNullPointerException() to p11ThrowNullPointerException() in libj2pks11.
  - Rename throwIOException() to p11ThrowIOException() in libj2pks11.
  - Rename throwPKCS11RuntimeException() to p11ThrowPKCS11RuntimeException() in libj2pks11. This function only exists in libj2pks11. The rename is done so the function naming is consistent with the other throw<exception> functions.

- Remove throw_internal_error() from src/java.management/share/native/libmanagement/management.h and src/java.management/share/native/libmanagement/management.c. It's not used.
- Remove throw_internal_error() from src/jdk.management/share/native/libmanagement_ext/management_ext.h and src/jdk.management/share/native/libmanagement_ext/management_ext.c.

-------------

Commit messages:
 - - Fix whitespaces in p11_util.c.
 - 8306033: Resolve multiple definition of 'throwIOException' and friends when statically linking with JDK native libraries

Changes: https://git.openjdk.org/jdk/pull/13497/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=13497&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8306033
  Stats: 162 lines in 25 files changed: 17 ins; 28 del; 117 mod
  Patch: https://git.openjdk.org/jdk/pull/13497.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/13497/head:pull/13497

PR: https://git.openjdk.org/jdk/pull/13497


More information about the serviceability-dev mailing list