RFR: 8034094: SA agent can't compile when jni_x86.h is used
Erik Helin
erik.helin at oracle.com
Thu May 1 16:14:58 UTC 2014
Hi Erik,
thanks for having a look at the patches!
On Wednesday 30 April 2014 13:39:01 PM Erik Joelsson wrote:
> I think option 2 seems best.
Ok, that is my preferred option as well, thanks!
Erik
> /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