Nadya, guys,
please, review the patch.
I'am able to build in debug with it.
2007/1/15, Vladimir Ivanov <[EMAIL PROTECTED]>:
The drlvm build on the suse 9 linux failed for me with log:
<snip>
build.native.init:
[echo] ## Building native of 'vm.port'
[mkdir] Created dir:
/export/users/viv/trunk/cc/projects/drlvm/trunk/build/lnx_ia32_gcc_debug/semis/vm/port/_bin
[mkdir] Created dir:
/export/users/viv/trunk/cc/projects/drlvm/trunk/build/lnx_ia32_gcc_debug/semis/vm/port/_obj
build.native.c:
[cc] 12 total files to be compiled.
[cc] In file included from
/export/users/viv/trunk/cc/projects/drlvm/trunk/vm/port/include/port_sysinfo.h:25,
[cc] from
/export/users/viv/trunk/cc/projects/drlvm/trunk/vm/port/src/misc/linux/user.c:26:
[cc]
/export/users/viv/trunk/cc/projects/drlvm/trunk/vm/include/open/types.h:216:
error: parse error before "Java_java_lang_System"
[cc]
/export/users/viv/trunk/cc/projects/drlvm/trunk/vm/include/open/types.h:216:
warning: data definition has no type or storage class
[cc] In file included from
/export/users/viv/trunk/cc/projects/drlvm/trunk/vm/port/include/port_dso.h:25,
[cc] from
/export/users/viv/trunk/cc/projects/drlvm/trunk/vm/port/src/misc/linux/dso.c:26:
[cc]
/export/users/viv/trunk/cc/projects/drlvm/trunk/vm/include/open/types.h:216:
error: parse error before "Java_java_lang_System"
[cc]
/export/users/viv/trunk/cc/projects/drlvm/trunk/vm/include/open/types.h:216:
warning: data definition has no type or storage class
[cc] In file included from
/export/users/viv/trunk/cc/projects/drlvm/trunk/vm/port/include/port_sysinfo.h:25,
[cc] from
/export/users/viv/trunk/cc/projects/drlvm/trunk/vm/port/src/misc/linux/sysinfo.c:27:
[cc]
/export/users/viv/trunk/cc/projects/drlvm/trunk/vm/include/open/types.h:216:
error: parse error before "Java_java_lang_System"
[cc]
/export/users/viv/trunk/cc/projects/drlvm/trunk/vm/include/open/types.h:216:
warning: data definition has no type or storage class
[cc] In file included from
/export/users/viv/trunk/cc/projects/drlvm/trunk/vm/port/include/port_sysinfo.h:25,
[cc] from
/export/users/viv/trunk/cc/projects/drlvm/trunk/vm/port/src/misc/linux/timezone.c:26:
[cc]
/export/users/viv/trunk/cc/projects/drlvm/trunk/vm/include/open/types.h:216:
error: parse error before "Java_java_lang_System"
[cc]
/export/users/viv/trunk/cc/projects/drlvm/trunk/vm/include/open/types.h:216:
warning: data definition has no type or storage class
BUILD FAILED
/export/users/viv/trunk/cc/projects/drlvm/trunk/build/make/build.xml:432:
The following error occurred while executing this line:
/export/users/viv/trunk/cc/projects/drlvm/trunk/build/make/build.xml:439:
The following error occurred while executing this line:
/export/users/viv/trunk/cc/projects/drlvm/trunk/build/make/build_component.xml:72:
The following error occurred while executing this line:
/export/users/viv/trunk/cc/projects/drlvm/trunk/build/lnx_ia32_gcc_debug/semis/build/targets/build.native.xml:65:
gcc failed with return code 1
Total time: 2 minutes 51 seconds
Could somebody reproduce/ fix it?
thanks, Vladimir
Index: vm/include/open/types.h
===================================================================
--- vm/include/open/types.h (revision 496236)
+++ vm/include/open/types.h (working copy)
@@ -211,9 +211,9 @@
/**
* Fields of these types are not directly accessible from the core VM.
+ * typedef struct ManagedObject Java_java_lang_Class;
+ * typedef ManagedObject Java_java_lang_System;
*/
- typedef struct ManagedObject Java_java_lang_Class;
-typedef ManagedObject Java_java_lang_System;
typedef struct ManagedObject Java_java_lang_Throwable;
typedef struct ManagedObject Java_java_lang_Thread;
typedef struct ManagedObject Java_java_io_FileInputStream;
@@ -225,7 +225,7 @@
* to an array in the managed heap, so handling must be careful to account
* for the possiblity of a moving GC.
*/
- typedef void *Vector_Handle;
+typedef void *Vector_Handle;
typedef void *Managed_Object_Handle;
Index: vm/include/open/vm.h
===================================================================
--- vm/include/open/vm.h (revision 496236)
+++ vm/include/open/vm.h (working copy)
@@ -36,9 +36,9 @@
#endif
/**
- * This structure is meant to be opaque. External modules should not.
+ * This structure is meant to be opaque. External modules should not
+ * attempt to directly access any of its fields.
*/
- attempt to directly access any of its fields.
typedef struct ChaClassIterator {
Class_Handle _root_class;
Class_Handle _current;
@@ -47,9 +47,9 @@
/**
- * This structure is meant to be opaque. External modules should not.
+ * This structure is meant to be opaque. External modules should not
+ * attempt to directly access any of its fields.
*/
- attempt to directly access any of its fields.
typedef struct ChaMethodIterator {
Method_Handle _method;
Method_Handle _current;
Index: vm/include/jit_runtime_support.h
===================================================================
--- vm/include/jit_runtime_support.h (revision 496236)
+++ vm/include/jit_runtime_support.h (working copy)
@@ -116,7 +116,6 @@
VM_RT_THROW_SET_STACK_TRACE=210,
-
/**
* @param Object reference.
*
@@ -503,16 +502,16 @@
VM_RT_LSHL=910,
VM_RT_LSHR=911,
VM_RT_LUSHR=912,
- * Arguments:
- * (new version)
- * - Long value to be shifted
- * - Int value with count
- * (old version)
- * - (edx:eax) A long value to be shifted
- * - (ecx) Count
- * Return value: (edx:eax)
- * - The shifted value
- *
+ /**
+ * @param The parameters are the following:
+ * (new version)
+ * arg\ Long value to be shifted
+ * arg\ Int value with count
+ * (old version)
+ * arg\ (edx:eax) A long value to be shifted
+ * arg\ (ecx) Count
+ * @return (edx:eax) The shifted value
+ */
VM_RT_LMUL=920,
Index: vm/include/interpreter_exports.h
===================================================================
--- vm/include/interpreter_exports.h (revision 496236)
+++ vm/include/interpreter_exports.h (working copy)
@@ -20,6 +20,38 @@
#include "open/types.h"
#include "jvmti.h"
+
+typedef struct FrameHandle FrameHandle;
+
+typedef struct {
+ bool (*interpreter_st_get_frame) (unsigned target_depth, struct
StackTraceFrame* stf);
+ void (*interpreter_st_get_trace) (class VM_thread *thread, unsigned*
res_depth, struct StackTraceFrame** stfs);
+ void (*interpreter_enumerate_thread) (class VM_thread *thread);
+
+ FrameHandle* (*interpreter_get_last_frame) (class VM_thread *thread);
+ FrameHandle* (*interpreter_get_prev_frame) (FrameHandle* frame);
+ // 'end' is not inclusive
+ bool (*is_frame_in_native_frame) (struct FrameHandle* frame, void* begin,
void* end);
+
+ void (*interpreter_ti_enumerate_thread) (jvmtiEnv*, class VM_thread
*thread);
+
+#ifdef _IPF_
+ uint64* (*interpreter_get_stacked_register_address) (uint64* bsp, unsigned
reg);
+#endif
+
+ jvmtiError (*interpreter_ti_getFrameLocation) ( jvmtiEnv*, class
VM_thread*,
+ int, struct _jmethodID * *, int64 *);
+ jvmtiError (*interpreter_ti_getLocal32) ( jvmtiEnv*, class VM_thread*,
int, int, int *);
+ jvmtiError (*interpreter_ti_getLocal64) ( jvmtiEnv*, class VM_thread*,
int, int, int64 *);
+ jvmtiError (*interpreter_ti_getObject) ( jvmtiEnv*, class VM_thread*, int,
int, struct _jobject * *);
+ jvmtiError (*interpreter_ti_getStackTrace) (jvmtiEnv*, class VM_thread*,
int, int, jvmtiFrameInfo*, int *);
+ jvmtiError (*interpreter_ti_get_frame_count) ( jvmtiEnv*, class
VM_thread*, int *);
+ jvmtiError (*interpreter_ti_setLocal32) ( jvmtiEnv*, class VM_thread*,
int, int, int);
+ jvmtiError (*interpreter_ti_setLocal64) ( jvmtiEnv*, class VM_thread*,
int, int, int64);
+ jvmtiError (*interpreter_ti_setObject) ( jvmtiEnv*, class VM_thread*, int,
int, struct _jobject *);
+ unsigned int (*interpreter_st_get_interrupted_method_native_bit) (class
VM_thread *);
+
+
// Open interfaces part begins
/**
@@ -36,7 +68,7 @@
* Set breakpoint in place identified by method and location.
* No more then one breakpoint will be set at any specific place. Handling
* for multiple jvmti environments is done by jvmti framework.
- *
+ *
* @return Bytecode has been replaced by instrumentation.
*/
jbyte (*interpreter_ti_set_breakpoint)(jmethodID method, jlocation
location);
@@ -50,7 +82,7 @@
/**
* Set callback to notify JVMTI about frame pop event.
- *
+ *
* @return JVMTI_ERROR_NONE - successfully added notification<br>
* JVMTI_ERROR_OPAQUE_FRAME - frame is native<br>
* JVMTI_ERROR_NO_MORE_FRAMES - depth too large<br>
@@ -67,38 +99,6 @@
VMEXPORT Interpreter *interpreter_table();
-typedef struct FrameHandle FrameHandle;
-
-typedef struct {
- bool (*interpreter_st_get_frame) (unsigned target_depth, struct
StackTraceFrame* stf);
- void (*interpreter_st_get_trace) (class VM_thread *thread, unsigned*
res_depth, struct StackTraceFrame** stfs);
- void (*interpreter_enumerate_thread) (class VM_thread *thread);
-
- FrameHandle* (*interpreter_get_last_frame) (class VM_thread *thread);
- FrameHandle* (*interpreter_get_prev_frame) (FrameHandle* frame);
- // 'end' is not inclusive
- bool (*is_frame_in_native_frame) (struct FrameHandle* frame, void* begin,
void* end);
-
- void (*interpreter_ti_enumerate_thread) (jvmtiEnv*, class VM_thread
*thread);
-
-#ifdef _IPF_
- uint64* (*interpreter_get_stacked_register_address) (uint64* bsp, unsigned
reg);
-#endif
-
- jvmtiError (*interpreter_ti_getFrameLocation) ( jvmtiEnv*, class
VM_thread*,
- int, struct _jmethodID * *, int64 *);
- jvmtiError (*interpreter_ti_getLocal32) ( jvmtiEnv*, class VM_thread*,
int, int, int *);
- jvmtiError (*interpreter_ti_getLocal64) ( jvmtiEnv*, class VM_thread*,
int, int, int64 *);
- jvmtiError (*interpreter_ti_getObject) ( jvmtiEnv*, class VM_thread*, int,
int, struct _jobject * *);
- jvmtiError (*interpreter_ti_getStackTrace) (jvmtiEnv*, class VM_thread*,
int, int, jvmtiFrameInfo*, int *);
- jvmtiError (*interpreter_ti_get_frame_count) ( jvmtiEnv*, class
VM_thread*, int *);
- jvmtiError (*interpreter_ti_setLocal32) ( jvmtiEnv*, class VM_thread*,
int, int, int);
- jvmtiError (*interpreter_ti_setLocal64) ( jvmtiEnv*, class VM_thread*,
int, int, int64);
- jvmtiError (*interpreter_ti_setObject) ( jvmtiEnv*, class VM_thread*, int,
int, struct _jobject *);
- unsigned int (*interpreter_st_get_interrupted_method_native_bit) (class
VM_thread *);
-
-
-
#ifdef BUILDING_VM
extern Interpreter interpreter;
extern bool interpreter_enabled();
Index: vm/vmcore/include/jit_runtime_support_common.h
===================================================================
--- vm/vmcore/include/jit_runtime_support_common.h (revision 496236)
+++ vm/vmcore/include/jit_runtime_support_common.h (working copy)
@@ -56,7 +56,7 @@
* Creates a LIL code stub for checkcast or instance of
* can be used by both IA32 and IPF code
*/
- LilCodeStub *gen_lil_typecheck_stub(bool is_checkcast).
+LilCodeStub *gen_lil_typecheck_stub(bool is_checkcast);
/**
* Creates a <code>SPECIALIZED LIL</code> code stub for checkcast or instance
of