-
Bug
-
Resolution: Fixed
-
P4
-
9
-
b14
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__).
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__).