A licensee find out the hotspot source code does not follow ISO.
They tried to build JDK source code(1.4.2_05) in RedHat Enterprise Linux 4.0(64bits)
with gcc/g++ 3.4.2 and 3.4.1, there occurred some compile errors.
According to licensee's investigation, errors occurs in the lines which includes
"##" in pre-processing.
Specifically speaking, for example, methodName##signature in the following "(*)HERE" line.
---- src/share/vm/runtime/jvmdiInterfaceSupport.hpp ---
....
#define __JVMDI_ENTER(TransitionClass, trace, result_type, methodName, signature) \
extern "C" { \
result_type JNICALL methodName signature { \
JavaThread* thread = (JavaThread*) ThreadLocalStorage::thread(); \
TransitionClass __tiv(thread); \
__ENTRY(result_type, methodName##signature, thread) \ <==(*) HERE
debug_only(VMNativeEntryWrapper __vew;) \
debug_only(const char* const _jvmdi_methodName_ = #methodName;) \
debug_only(bool _trace_ = trace; ); \
debug_only(if (TraceJVMDICalls && _trace_) { JvmdiTraceWrapper _ignore(#methodName); });
#define JVMDI_ENTER(result_type, methodName, signature) \
__JVMDI_ENTER(ThreadInVMfromNative, true, result_type, methodName, signature)
...
---
For details, please see the comment section.
###@###.### 2004-11-10 08:26:20 GMT
They tried to build JDK source code(1.4.2_05) in RedHat Enterprise Linux 4.0(64bits)
with gcc/g++ 3.4.2 and 3.4.1, there occurred some compile errors.
According to licensee's investigation, errors occurs in the lines which includes
"##" in pre-processing.
Specifically speaking, for example, methodName##signature in the following "(*)HERE" line.
---- src/share/vm/runtime/jvmdiInterfaceSupport.hpp ---
....
#define __JVMDI_ENTER(TransitionClass, trace, result_type, methodName, signature) \
extern "C" { \
result_type JNICALL methodName signature { \
JavaThread* thread = (JavaThread*) ThreadLocalStorage::thread(); \
TransitionClass __tiv(thread); \
__ENTRY(result_type, methodName##signature, thread) \ <==(*) HERE
debug_only(VMNativeEntryWrapper __vew;) \
debug_only(const char* const _jvmdi_methodName_ = #methodName;) \
debug_only(bool _trace_ = trace; ); \
debug_only(if (TraceJVMDICalls && _trace_) { JvmdiTraceWrapper _ignore(#methodName); });
#define JVMDI_ENTER(result_type, methodName, signature) \
__JVMDI_ENTER(ThreadInVMfromNative, true, result_type, methodName, signature)
...
---
For details, please see the comment section.
###@###.### 2004-11-10 08:26:20 GMT
- duplicates
-
JDK-4955492 GCC 3.3.1 Build Error / Too many warnings when building HotSpot with gcc
- Closed