> Could I get a review of this fix to refine the warnings printed by `libjsig` > when using the deprecated `signal()`/`sigset()` functions? > > Currently the libjsig library supports chaining `signal()` and `sigset()`. > With these functions being deprecated, `libjsig` warns when a program calls > either function when the it's LD_PRELOADed. The warning is supposed to warn > that when the support for `signal()` and `sigset()` is removed, the > application might stop working as expected. > >> VM warning: the use of signal() and sigset() for signal chaining was >> deprecated in version 16.0 and will be removed in a future release. Use >> sigaction() instead. > > The warning is however printed in a few cases when its unnecessary, and also > fails to catch some usages where it should be printed. With this fix the > warning is printed (in order as they appear in jsig.c): > 1. when `signal()` or `sigset()` is called for a JVM-used signal, after the > JVM has installed its signals > 2. when the JVM installs its signals (using `sigaction()`), and libjsig sees > that `signal()` or `sigset()` has been used for a JVM-used signal > > ### Changes > * The printing is removed from `call_os_signal()`. This warning was only > correct if `signal()` or `sigset()` was called for a JVM-used signal before > the JVM was installed. This is now instead covered by step 1 above. > * If the JVM was installed first, the `signal()`/`sigset()` calls were > effectively translated to `sigaction()`, and the warning was _not_ printed. > When the `signal()`/`sigset()` support is dropped, this behaviour will change > and the warning should be printed. This is now covered by step 2. > > ## Testing > - [x] Test `open/test/hotspot/jtreg/runtime/signal` has added checks for the > deprecation warning, and passes with the fix > - [x] Tier1-3 in progress
Joakim Nordström has updated the pull request incrementally with three additional commits since the last revision: - Merge - Copyright year. Doc updated. Comments revised. - Merge ------------- Changes: - all: https://git.openjdk.org/jdk/pull/22806/files - new: https://git.openjdk.org/jdk/pull/22806/files/6aa575ef..0fd4e6f5 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=22806&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=22806&range=00-01 Stats: 12 lines in 3 files changed: 5 ins; 1 del; 6 mod Patch: https://git.openjdk.org/jdk/pull/22806.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/22806/head:pull/22806 PR: https://git.openjdk.org/jdk/pull/22806