RFR: 8034094: SA agent can't compile when jni_x86.h is used
Erik Joelsson
erik.joelsson at oracle.com
Wed Apr 30 11:39:01 UTC 2014
I think option 2 seems best.
/Erik
On 2014-04-30 13:26, Erik Helin wrote:
> Anyone interested in this patch? I ran into this issue again yesterday...
>
> Thanks,
> Erik
>
> On 2014-02-10 16: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
More information about the build-dev
mailing list