Hi Alexander, ---
src/java.base/unix/native/libnet/net_util_md.h why include pthread.h? SIGRTMAX is in signal.h on posix ( https://pubs.opengroup.org/onlinepubs/007908799/xsh/signal.h.html). I see the old code included this too, pretty sure this was either incidental or just wrong. --- Are there tests which exercise this code? --- Thanks, Thomas On Tue, Aug 25, 2020 at 7:02 PM Alexander Scherbatiy < alexander.scherba...@bell-sw.com> wrote: > > Hello, > > Could your review the fix for the issue: > Bug: https://bugs.openjdk.java.net/browse/JDK-8252248 > Fix: http://cr.openjdk.java.net/~alexsch/8252248/webrev.00/ > > Building JDK on Alpine Linux with musl libc gives the error: > src/java.base/linux/native/libnet/linux_close.c:63:25: error: > '__SIGRTMAX' undeclared here (not in a function); did you mean 'SIGRTMAX'? > 63 | static int sigWakeup = (__SIGRTMAX - 2); > > musl libc does not contain __SIGRTMAX definition. It defines only > SIGRTMAX as a function call [1]. > > __SIGRTMAX is used in JDK in two files NativeThread.c and linux_close.c . > > The first idea of the fix was simply to substitute __SIGRTMAX to > SIGRTMAX in NativeThread.c and use the same definition > #define INTERRUPT_SIGNAL (__SIGRTMAX - 2) > in linux_close.c. > "static int sigWakeup = (SIGRTMAX - 2)" does not work because the > SIGRTMAX is defined as a function and leads to "initializer element is > not constant" error. > > The fix has been discussed on the portola-dev alias [2] where it was > pointed out that the fix can be reviewed in the mainline and it was > suggested to rename the INTERRUPT_SIGNAL and move its definition to > net_util_md.h. > > > [1] https://git.musl-libc.org/cgit/musl/tree/include/signal.h#n196 > [2] > https://mail.openjdk.java.net/pipermail/portola-dev/2020-August/000471.html > > Thanks, > Alexander. > >