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)
More information about the hotspot-dev