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