RFR: 8034094: SA agent can't compile when jni_x86.h is used

Dmitry Samersoff dmitry.samersoff at oracle.com
Wed Apr 30 19:18:40 UTC 2014


Erik,

Sorry, missed the thread.

Changes (option 2) looks good for me.

-Dmitry

On 2014-02-10 19:21, Erik Helin wrote:
> Sigh, I forgot the subject...
> 
> "RFR: 8034094: SA agent can't compile when jni_x86.h is used"
> 
> Thanks,
> Erik
> 
> On 2014-02-10 16:08, Erik Helin wrote:
>> Hi all,
>>
>> this patch fixes an issue with HotSpot's makefiles, IMPORT_JDK and
>> jni_md.h.
>>
>> The bug manifests itself when using an IMPORT_JDK which
>> include/linux/jni_md.h has a timestamp that is older than
>> hotspot/src/cpu/x86/jni_x86.h. When this happens, the Makefiles will
>> copy hotspot/src/cpu/x86/jni_x86.h to
>> hotspot/build/jdk-linux-amd64/fastdebug/include/linux/jni_md.h.
>>
>> The issue is that hotspot/src/cpu/x86/jni_x86.h differs slightly from
>> jdk/include/jni.h, since it is used for all operating systems:
>>
>> #if defined(SOLARIS) || defined(LINUX) || defined(_ALLBSD_SOURCE)
>> ... // common stuff
>> #else
>> ... // windows stuff
>> #endif
>>
>> We compile the SA agent, see make/linux/makefiles/saproc.make, without
>> defining LINUX (LINUX is hotspot's own define, gcc uses __linux__).
>>
>> In my opinion, there are two ways to solve this:
>> 1. Add -DLINUX to make/linux/makefiles/saproc.make (and corresponding
>>     defines for Solaris and BSD).
>> 2. Rewrite the #if check in jni_x86.h to use platform specific "native"
>>     defines.
>>
>> I've created a patch for each alternative:
>> 1: http://cr.openjdk.java.net/~ehelin/8034094/webrev.1/
>> 2: http://cr.openjdk.java.net/~ehelin/8034094/webrev.2/
>>
>> For the second patch, note that I've inverted the #if check so that it
>> checks for _WIN32 is defined and treat all others operating systems as
>> "#else".
>>
>> Bug:
>> https://bugs.openjdk.java.net/browse/JDK-8034094
>>
>> Testing:
>> - Compiled both version locally and made sure it worked
>> - JPRT
>>
>> Thanks,
>> Erik


-- 
Dmitry Samersoff
Oracle Java development team, Saint Petersburg, Russia
* I would love to change the world, but they won't give me the sources.



More information about the build-dev mailing list