RFR: JDK-8200609 Proper fix for mapfile removal for libjsig

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Wed Sep 5 22:13:57 UTC 2018

> 6 sep. 2018 kl. 00:00 skrev David Holmes <david.holmes at oracle.com>:
> Hi Magnus,
>> On 5/09/2018 10:11 PM, Magnus Ihse Bursie wrote:
>> When I removed (mostly) all mapfiles for the JDK libraries, building of libjsig started failing on Solaris, and that part was backed out.
>> Here's a new, and improved solution to remove the mapfile for libjsig, even on Solaris.
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8200609
>> WebRev: http://cr.openjdk.java.net/~ihse/JDK-8200609-remove-mapfile-for-libjsig/webrev.01
> Why are the forward declarations Solaris-only when the actual function definitions add JNIEXPORT unconditionally?

No other toolchain has a problem when the definition of the functions adds JNIEXPORT (i.e. adds a visibility attribute) to the initial declaration. 

It's certainly possible to do it for the other platforms, but it's not needed and I thought it didn't add anything to do it for all platforms. This way it's clear that the solstudio compiler is an anomaly. 

>  37  * before including signal.h */
>  38 #include "sys/signal.h"
> Why do we need to include sys/signal.h rather than just (the existing) signal.h?

Since it includes the definition of the sigaction struct that is needed for the sigaction() prototype. (signal.h includes sys/signal.h for type definitions)


> Thanks,
> David
>> /Magnus

More information about the core-libs-dev mailing list