URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
Compare Revisions
- This comparison shows the changes necessary to convert path
/openrisc/trunk/gnu-dev/or1k-gcc/libjava/testsuite
- from Rev 753 to Rev 765
- ↔ Reverse comparison
Rev 753 → Rev 765
/libjava.cni/longfield.java
0,0 → 1,22
public class longfield |
{ |
long lval = 232300; |
boolean bval = true; |
String sval = "maude"; |
|
public native void doitc (); |
|
public void doitj() |
{ |
System.out.println(lval); |
System.out.println(bval); |
System.out.println(sval); |
} |
|
public static void main(String[] args) |
{ |
longfield f = new longfield(); |
f.doitc(); |
f.doitj(); |
} |
} |
/libjava.cni/PR9577.out
0,0 → 1,22
Hello! |
/libjava.cni/shortfield.java
0,0 → 1,21
class shortfieldbase |
{ |
short modCount; |
} |
|
public class shortfield extends shortfieldbase |
{ |
short size__; |
int data; |
|
native void ouch (); |
|
public static void main (String[] s) |
{ |
shortfield f = new shortfield(); |
f.modCount = 99; |
f.size__ = 2; |
f.data = 0x12345678; |
f.ouch(); |
} |
} |
/libjava.cni/shortfieldbase.h
0,0 → 1,25
|
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- |
|
#ifndef __shortfieldbase__ |
#define __shortfieldbase__ |
|
#pragma interface |
|
#include <java/lang/Object.h> |
extern "Java" |
{ |
class shortfieldbase; |
} |
|
class shortfieldbase : public ::java::lang::Object |
{ |
|
public: // actually package-private |
shortfieldbase(); |
jshort __attribute__((aligned(__alignof__( ::java::lang::Object)))) modCount; |
public: |
static ::java::lang::Class class$; |
}; |
|
#endif // __shortfieldbase__ |
/libjava.cni/PR9577.jar
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
libjava.cni/PR9577.jar
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: libjava.cni/shortfield.h
===================================================================
--- libjava.cni/shortfield.h (nonexistent)
+++ libjava.cni/shortfield.h (revision 765)
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __shortfield__
+#define __shortfield__
+
+#pragma interface
+
+#include
+#include
+
+extern "Java"
+{
+ class shortfield;
+}
+
+class shortfield : public ::shortfieldbase
+{
+
+public:
+ shortfield();
+public: // actually package-private
+ virtual void ouch();
+public:
+ static void main(JArray< ::java::lang::String * > *);
+public: // actually package-private
+ jshort __attribute__((aligned(__alignof__( ::shortfieldbase)))) size__;
+ jint data;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __shortfield__
Index: libjava.cni/longfield.h
===================================================================
--- libjava.cni/longfield.h (nonexistent)
+++ libjava.cni/longfield.h (revision 765)
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __longfield__
+#define __longfield__
+
+#pragma interface
+
+#include
+#include
+
+extern "Java"
+{
+ class longfield;
+}
+
+class longfield : public ::java::lang::Object
+{
+
+public:
+ longfield();
+ virtual void doitc();
+ virtual void doitj();
+ static void main(JArray< ::java::lang::String * > *);
+public: // actually package-private
+ jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) lval;
+ jboolean bval;
+ ::java::lang::String * sval;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __longfield__
Index: libjava.cni/natlongfield.cc
===================================================================
--- libjava.cni/natlongfield.cc (nonexistent)
+++ libjava.cni/natlongfield.cc (revision 765)
@@ -0,0 +1,15 @@
+#include
+
+#include "longfield.h"
+#include
+#include
+
+void
+longfield::doitc ()
+{
+ java::io::PrintStream *ps = java::lang::System::out;
+
+ ps->println(lval);
+ ps->println(bval);
+ ps->println(sval);
+}
Index: libjava.cni/natshortfield.cc
===================================================================
--- libjava.cni/natshortfield.cc (nonexistent)
+++ libjava.cni/natshortfield.cc (revision 765)
@@ -0,0 +1,10 @@
+#include
+#include "shortfield.h"
+
+void shortfield::ouch ()
+{
+ printf ("list: %d %d 0x%x\n",
+ modCount,
+ size__,
+ data);
+}
Index: libjava.cni/PR9577.java
===================================================================
--- libjava.cni/PR9577.java (nonexistent)
+++ libjava.cni/PR9577.java (revision 765)
@@ -0,0 +1,14 @@
+// Check if a method name is mangled properly in the presence
+// of an array parameter sharing a part of the type name
+// with a subsequent parameter.
+
+public class PR9577
+{
+ private native void sayHello (String[] s, Object o);
+
+ public static void main (String[] args)
+ {
+ PR9577 x = new PR9577( );
+ x.sayHello( null, null);
+ }
+}
Index: libjava.cni/PR9577.h
===================================================================
--- libjava.cni/PR9577.h (nonexistent)
+++ libjava.cni/PR9577.h (revision 765)
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __PR9577__
+#define __PR9577__
+
+#pragma interface
+
+#include
+#include
+
+extern "Java"
+{
+ class PR9577;
+}
+
+class PR9577 : public ::java::lang::Object
+{
+
+public:
+ PR9577();
+private:
+ void sayHello(JArray< ::java::lang::String * > *, ::java::lang::Object *);
+public:
+ static void main(JArray< ::java::lang::String * > *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __PR9577__
Index: libjava.cni/cni.exp
===================================================================
--- libjava.cni/cni.exp (nonexistent)
+++ libjava.cni/cni.exp (revision 765)
@@ -0,0 +1,124 @@
+# Tests for CNI code.
+
+# Compile a single C++ file and produce a .o file. OPTIONS is a list
+# of options to pass to the compiler. Returns 0 on failure, 1 on
+# success.
+proc gcj_cni_compile_cxx_to_o {file {options {}}} {
+ global srcdir subdir
+
+ set name [file rootname [file tail $file]]
+ set oname ${name}.o
+
+ # Find the generated header.
+ lappend options "additional_flags=-I. -I.. -I$srcdir/$subdir -fdollars-in-identifiers"
+ # Find libgcj headers.
+ lappend options "additional_flags=-I$srcdir/.."
+
+ set x [libjava_prune_warnings \
+ [target_compile $file $oname object $options]]
+ if {$x != ""} {
+ verbose "target_compile failed: $x" 2
+ fail "[file tail $file] compilation"
+ return 0
+ }
+
+ pass "[file tail $file] compilation"
+ return 1
+}
+
+# Build header files given name of .java file. Return 0 on failure.
+proc gcj_cni_build_headers {file} {
+ global libgcj_jar
+
+ set gcjh [find_gcjh]
+
+ # Currently we only build a header file for the main class from the
+ # .java file, and then others on an ad hoc basis.
+ set list {}
+ set main [file rootname [file tail $file]]
+ lappend list $main
+ # ... for instance, an obvious hack.
+ if {$main == "shortfield"} {
+ lappend list shortfieldbase
+ }
+
+ foreach file $list {
+ set cmd "$gcjh -cni -force -classpath .:$libgcj_jar $file"
+ verbose $cmd
+ set x [string trim [libjava_prune_warnings \
+ [lindex [local_exec $cmd "" "" 300] 1]]]
+ if {$x != ""} {
+ verbose "local_exec failed: $x" 2
+ fail "$main header generation"
+ return 0
+ }
+ }
+
+ pass "$main header generation"
+ return 1
+}
+
+# Do all the work for a single CNI test. Return 0 on failure.
+proc gcj_cni_test_one {file} {
+ global runtests
+
+ # The base name. We use it for several purposes.
+ set main [file rootname [file tail $file]]
+ if {! [runtest_file_p $runtests $main]} {
+ # Simply skip it.
+ return 1
+ }
+
+# if {! [bytecompile_file $file [pwd]]} {
+# fail "bytecompile $file"
+# # FIXME - should use `untested' on all remaining tests.
+# # But that is hard.
+# return 0
+# }
+# pass "bytecompile $file"
+
+# if {! [gcj_cni_build_headers $file]} {
+# # FIXME
+# return 0
+# }
+
+ set cfile [file join [file dirname $file] nat$main.cc]
+ if {! [gcj_cni_compile_cxx_to_o $cfile]} {
+ # FIXME
+ return 0
+ }
+
+ if {! [gcj_link $main $main [list $file nat$main.o]]} {
+ # FIXME
+ return 0
+ }
+
+ if {! [gcj_invoke $main [file rootname $file].out {}]} {
+ # FIXME
+ return 0
+ }
+
+ # When we succeed we remove all our clutter.
+ eval gcj_cleanup [glob -nocomplain -- ${main}.*] [list $main nat$main.o]
+
+ return 1
+}
+
+# Run the CNI tests.
+proc gcj_cni_run {} {
+ global srcdir subdir
+ global build_triplet host_triplet
+
+ # For now we only test CNI on native builds.
+ if {$build_triplet == $host_triplet} {
+ catch { lsort [glob -nocomplain ${srcdir}/${subdir}/*.jar] } srcfiles
+
+ foreach x $srcfiles {
+ gcj_cni_test_one $x
+ }
+ } else {
+ verbose "CNI tests not run in cross-compilation environment"
+ }
+}
+
+gcj_cni_run
Index: libjava.cni/natPR9577.cc
===================================================================
--- libjava.cni/natPR9577.cc (nonexistent)
+++ libjava.cni/natPR9577.cc (revision 765)
@@ -0,0 +1,9 @@
+#include
+
+#include "PR9577.h"
+
+void
+PR9577::sayHello (JArray< ::java::lang::String *> *x, ::java::lang::Object *y)
+ {
+ printf( "Hello!\n");
+ }
Index: libjava.cni/shortfield.out
===================================================================
--- libjava.cni/shortfield.out (nonexistent)
+++ libjava.cni/shortfield.out (revision 765)
@@ -0,0 +1 @@
+list: 99 2 0x12345678
Index: libjava.cni/longfield.out
===================================================================
--- libjava.cni/longfield.out (nonexistent)
+++ libjava.cni/longfield.out (revision 765)
@@ -0,0 +1,6 @@
+232300
+true
+maude
+232300
+true
+maude
Index: libjava.cni/longfield.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: libjava.cni/longfield.jar
===================================================================
--- libjava.cni/longfield.jar (nonexistent)
+++ libjava.cni/longfield.jar (revision 765)
libjava.cni/longfield.jar
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: libjava.cni/shortfield.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: libjava.cni/shortfield.jar
===================================================================
--- libjava.cni/shortfield.jar (nonexistent)
+++ libjava.cni/shortfield.jar (revision 765)
libjava.cni/shortfield.jar
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: libjava.jvmti/events.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: libjava.jvmti/events.jar
===================================================================
--- libjava.jvmti/events.jar (nonexistent)
+++ libjava.jvmti/events.jar (revision 765)
libjava.jvmti/events.jar
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: libjava.jvmti/geterrorname.h
===================================================================
--- libjava.jvmti/geterrorname.h (nonexistent)
+++ libjava.jvmti/geterrorname.h (revision 765)
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __geterrorname__
+#define __geterrorname__
+
+#pragma interface
+
+#include
+#include
+
+extern "Java"
+{
+ class geterrorname;
+}
+
+class geterrorname : public ::java::lang::Object
+{
+
+public:
+ geterrorname();
+ static void do_errorname_tests();
+ static void main(JArray< ::java::lang::String * > *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __geterrorname__
Index: libjava.jvmti/natgeterrorname.cc
===================================================================
--- libjava.jvmti/natgeterrorname.cc (nonexistent)
+++ libjava.jvmti/natgeterrorname.cc (revision 765)
@@ -0,0 +1,76 @@
+#include
+
+#include
+#include
+#include
+
+#include "jvmti-int.h"
+#include "geterrorname.h"
+
+static void
+get_error (jvmtiEnv *env, jvmtiError err)
+{
+ char *s;
+ env->GetErrorName (err, &s);
+ printf ("%s\n", s);
+ env->Deallocate (reinterpret_cast (s));
+}
+
+void
+geterrorname::do_errorname_tests ()
+{
+ jvmtiEnv *env;
+ JavaVM *vm = _Jv_GetJavaVM ();
+ vm->GetEnv (reinterpret_cast (&env), JVMTI_VERSION_1_0);
+
+ get_error (env, JVMTI_ERROR_NONE);
+ get_error (env, JVMTI_ERROR_NULL_POINTER);
+ get_error (env, JVMTI_ERROR_OUT_OF_MEMORY);
+ get_error (env, JVMTI_ERROR_ACCESS_DENIED);
+ get_error (env, JVMTI_ERROR_WRONG_PHASE);
+ get_error (env, JVMTI_ERROR_INTERNAL);
+ get_error (env, JVMTI_ERROR_UNATTACHED_THREAD);
+ get_error (env, JVMTI_ERROR_INVALID_ENVIRONMENT);
+ get_error (env, JVMTI_ERROR_INVALID_PRIORITY);
+ get_error (env, JVMTI_ERROR_THREAD_NOT_SUSPENDED);
+ get_error (env, JVMTI_ERROR_THREAD_SUSPENDED);
+ get_error (env, JVMTI_ERROR_THREAD_NOT_ALIVE);
+ get_error (env, JVMTI_ERROR_CLASS_NOT_PREPARED);
+ get_error (env, JVMTI_ERROR_NO_MORE_FRAMES);
+ get_error (env, JVMTI_ERROR_OPAQUE_FRAME);
+ get_error (env, JVMTI_ERROR_DUPLICATE);
+ get_error (env, JVMTI_ERROR_NOT_FOUND);
+ get_error (env, JVMTI_ERROR_NOT_MONITOR_OWNER);
+ get_error (env, JVMTI_ERROR_INTERRUPT);
+ get_error (env, JVMTI_ERROR_UNMODIFIABLE_CLASS);
+ get_error (env, JVMTI_ERROR_NOT_AVAILABLE);
+ get_error (env, JVMTI_ERROR_ABSENT_INFORMATION);
+ get_error (env, JVMTI_ERROR_INVALID_EVENT_TYPE);
+ get_error (env, JVMTI_ERROR_NATIVE_METHOD);
+ get_error (env, JVMTI_ERROR_INVALID_THREAD);
+ get_error (env, JVMTI_ERROR_INVALID_THREAD_GROUP);
+ get_error (env, JVMTI_ERROR_INVALID_OBJECT);
+ get_error (env, JVMTI_ERROR_INVALID_CLASS);
+ get_error (env, JVMTI_ERROR_INVALID_METHODID);
+ get_error (env, JVMTI_ERROR_INVALID_LOCATION);
+ get_error (env, JVMTI_ERROR_INVALID_FIELDID);
+ get_error (env, JVMTI_ERROR_TYPE_MISMATCH);
+ get_error (env, JVMTI_ERROR_INVALID_SLOT);
+ get_error (env, JVMTI_ERROR_INVALID_MONITOR);
+ get_error (env, JVMTI_ERROR_INVALID_CLASS_FORMAT);
+ get_error (env, JVMTI_ERROR_CIRCULAR_CLASS_DEFINITION);
+ get_error (env, JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_ADDED);
+ get_error (env, JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED);
+ get_error (env, JVMTI_ERROR_INVALID_TYPESTATE);
+ get_error (env, JVMTI_ERROR_FAILS_VERIFICATION);
+ get_error (env, JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED);
+ get_error (env, JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_DELETED);
+ get_error (env, JVMTI_ERROR_UNSUPPORTED_VERSION);
+ get_error (env, JVMTI_ERROR_NAMES_DONT_MATCH);
+ get_error (env,
+ JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED);
+ get_error (env,
+ JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED);
+ get_error (env, JVMTI_ERROR_MUST_POSSESS_CAPABILITY);
+ get_error (env, JVMTI_ERROR_ILLEGAL_ARGUMENT);
+}
Index: libjava.jvmti/jvmti-interp.exp
===================================================================
--- libjava.jvmti/jvmti-interp.exp (nonexistent)
+++ libjava.jvmti/jvmti-interp.exp (revision 765)
@@ -0,0 +1,188 @@
+# Interpreted Tests for JVMTI code.
+# These tests are used to test JVMTI functions in a purley interpreted setting
+# This file compiles the JNI code into a shared object, then invokes gij to run
+# the test.
+
+
+# Compile a single C file and produce a .so file. OPTIONS is a list
+# of options to pass to the compiler. Returns 0 on failure, 1 on
+# success.
+proc gcj_jni_compile_c_to_so {file {options {}}} {
+ global srcdir subdir
+ global host_triplet
+ verbose "options: $options"
+ set options_cxx $options
+ set options ""
+
+# Apple uses a different extension for shared/dynamic libraries
+# so we check against powerpc-apple-darwin and set them to
+# dylib.
+# HP-UX uses sl, so we check this too, otherwise we take so.
+
+ if { [istarget "*-*-darwin*"] } {
+ set so_extension "dylib"
+ set so_flag "-dynamiclib"
+ } elseif { [istarget "hppa*-hp-hpux*"] } {
+ set so_extension "sl"
+ set so_flag "-shared"
+ } elseif { [istarget "*-*-cygwin*"] || [istarget "*-*-mingw*"] } {
+ set so_extension "dll"
+ set so_flag "-shared"
+ } else {
+ set so_extension "so"
+ set so_flag "-shared"
+ }
+
+ # ARM C++ emits an ABI warning for varargs.
+ if { [istarget "arm*"] } {
+ lappend options "additional_flags=-Wno-abi"
+ }
+ # Tru64 UNIX requires to be compiled with -pthread.
+ if { [istarget "alpha*-dec-osf*"] } {
+ lappend options "additional_flags=-pthread"
+ }
+
+ set filename [file tail $file]
+ set name [file rootname $filename]
+ set soname lib${name}.${so_extension}
+
+ lappend options "additional_flags=${so_flag} -fPIC"
+ # Find the generated header.
+ lappend options "additional_flags=-I. -I.. -I$srcdir/$subdir"
+
+ # Ensure that the generated header has correct prototypes.
+ set cfile [file rootname $file].c
+ if { [file exists $cfile] } {
+ # This option is only valid for C sources.
+ lappend options "additional_flags=-Wmissing-prototypes"
+ }
+
+ # Find jni.h and jni_md.h.
+ lappend options "additional_flags=-I$srcdir/../include \
+ -I$srcdir/../classpath/include -fdollars-in-identifiers"
+
+ # Append C++ options
+ lappend options "additional_flags=$options_cxx"
+
+ set x [libjava_prune_warnings \
+ [target_compile $file $soname executable $options]]
+ if {$x != ""} {
+ verbose "target_compile failed: $x" 2
+ fail "$filename compilation"
+ return 0
+ }
+
+ pass "$filename compilation"
+ return 1
+}
+
+# Do all the work for a single JVMTI test. Return 0 on failure.
+proc gij_jvmti_test_one {file} {
+ global runtests
+
+ # The base name. We use it for several purposes.
+ set main [file rootname [file tail $file]]
+ if {! [runtest_file_p $runtests $main] } {
+ # Simply skip it.
+ return 1
+ }
+
+# if {! [bytecompile_file $file [pwd]] } {
+# fail "bytecompile $file"
+# # FIXME - should use `untested' on all remaining tests.
+# # But that is hard.
+# return 0
+# }
+# pass "bytecompile $file"
+
+# if {! [gcj_jvmti_build_headers $file] } {
+# # FIXME
+# return 0
+# }
+
+ set cfile [file join [file dirname $file] nat$main.c]
+ set cxxflags ""
+ set cxxldlibflags {}
+ # If there is no `.c' file, assume there is a `.cc' file.
+ if {! [file exists $cfile] } {
+ set cfile [file join [file dirname $file] nat$main.cc]
+
+ set cxxflaglist {}
+ foreach arg [split [libjava_find_lib libstdc++-v3/src stdc++] " "] {
+ switch -glob -- $arg {
+ "-L*" {
+ set arg [string range $arg 2 end]
+ lappend cxxldlibflags $arg
+ # Strip the `.libs' directory; we link with libtool which
+ # doesn't need it.
+ set arg "-L[file dirname $arg]"
+ }
+ }
+
+ lappend cxxflaglist $arg
+ # In case the libstdc++ is not installed yet, we pass the build
+ # directory of it to the cxxflaglist.
+ lappend cxxflaglist "-L$cxxldlibflags"
+ }
+ # If you're building the compiler with --prefix set to a place
+ # where it's not yet installed, then the linker won't be able to
+ # find the libgcc used by libgcj.dylib/libstdc++.dylib. We could pass
+ # the -dylib_file option, but that's complicated, and it's much easier
+ # to just make the linker find libgcc using -L options.
+ if { [istarget "*-*-darwin*"] } {
+ lappend cxxflaglist "-shared-libgcc -lstdc++"
+ } else {
+ lappend cxxflaglist "-lstdc++"
+ }
+ set cxxflags [join $cxxflaglist]
+ }
+
+ if {! [gcj_jni_compile_c_to_so $cfile $cxxflags] } {
+ # FIXME
+ return 0
+ }
+
+ libjava_arguments
+
+ set jarfile [file join [file dirname $file] $main.jar]
+ set gij_flags {-agentlib:dummyagent}
+ if {! [exec_gij $jarfile [file rootname $file].out $cxxldlibflags $gij_flags] } {
+ return 0
+ }
+
+ # When we succeed we remove all our clutter.
+ eval gcj_cleanup [glob -nocomplain -- ${main}.*] \
+ [list $main.class libnat$main.so]
+
+ return 1
+}
+
+# Run the JVMTI tests.
+proc gij_jvmti_run {} {
+ global srcdir subdir
+ global build_triplet host_triplet
+
+ # For now we only test JVMTI on native builds.
+ if {$build_triplet == $host_triplet} {
+
+ # Build our dummy JVMTI agent library
+ if {![gcj_jni_compile_c_to_so [file join $srcdir $subdir dummyagent.c]]} {
+ fail "compiling dummy JVMTI agent"
+ } else {
+ pass "compiling dummy JVMTI agent"
+
+ catch {lsort [glob -nocomplain ${srcdir}/${subdir}/interp/*.jar]} \
+ srcfiles
+
+ foreach x $srcfiles {
+ gij_jvmti_test_one $x
+ }
+
+ gcj_cleanup libdummyagent.so
+ }
+ } else {
+ verbose "JVMTI tests not run in cross-compilation environment"
+ }
+}
+
+gij_jvmti_run
Index: libjava.jvmti/jvmti.exp
===================================================================
--- libjava.jvmti/jvmti.exp (nonexistent)
+++ libjava.jvmti/jvmti.exp (revision 765)
@@ -0,0 +1,126 @@
+# Tests for JVMTI code.
+
+# Compile a single C++ file and produce a .o file. OPTIONS is a list
+# of options to pass to the compiler. Returns 0 on failure, 1 on
+# success.
+proc gcj_jvmti_compile_cxx_to_o {file {options {}}} {
+ global srcdir
+ global objdir
+
+ set name [file rootname [file tail $file]]
+ set oname ${name}.o
+
+ # Find the generated header.
+ lappend options "additional_flags=-g -I. -I.. -fdollars-in-identifiers"
+ # Find libgcj headers.
+ lappend options "additional_flags=-I$srcdir/.."
+ # Find jvmti.h, jvmti_md.h, jvmti-int.h, jvm.h requirements
+ lappend options "additional_flags=-I$srcdir/../include -I$srcdir/../classpath/include -I$objdir/../include -I$objdir/../../boehm-gc/include "
+ # ARM C++ emits an ABI warning for varargs.
+ if { [istarget "arm*"] } {
+ lappend options "additional_flags=-Wno-abi"
+ }
+ # Tru64 UNIX requires to be compiled with -pthread.
+ if { [istarget "alpha*-dec-osf*"] } {
+ lappend options "additional_flags=-pthread"
+ }
+
+ set x [libjava_prune_warnings \
+ [target_compile $file $oname object $options]]
+ if {$x != ""} {
+ verbose "target_compile failed: $x" 2
+ fail "[file tail $file] compilation"
+ return 0
+ }
+
+ pass "[file tail $file] compilation"
+ return 1
+}
+
+# Build header files given name of .java file. Return 0 on failure.
+proc gcj_jvmti_build_headers {file} {
+ global libgcj_jar
+
+ set gcjh [find_gcjh]
+
+ # Currently we only build a header file for the main class from the
+ # .java file. If we need more than this, we'll have to figure
+ # something out.
+ set file [file rootname [file tail $file]]
+
+ set x [string trim [libjava_prune_warnings \
+ [lindex [local_exec "$gcjh -cni -force -classpath .:$libgcj_jar $file" "" "" 300] 1]]]
+ if {$x != ""} {
+ verbose "local_exec failed: $x" 2
+ fail "$file header generation"
+ return 0
+ }
+
+ pass "$file header generation"
+ return 1
+}
+
+# Do all the work for a single JVMTI test. Return 0 on failure.
+proc gcj_jvmti_test_one {file} {
+ global runtests
+
+ # The base name. We use it for several purposes.
+ set main [file rootname [file tail $file]]
+ if {! [runtest_file_p $runtests $main]} {
+ # Simply skip it.
+ return 1
+ }
+
+# if {! [bytecompile_file $file [pwd]]} {
+# fail "bytecompile $file"
+# # FIXME - should use `untested' on all remaining tests.
+# # But that is hard.
+# return 0
+# }
+# pass "bytecompile $file"
+
+# if {! [gcj_jvmti_build_headers $file]} {
+# # FIXME
+# return 0
+# }
+
+ set cfile [file join [file dirname $file] nat$main.cc]
+ if {! [gcj_jvmti_compile_cxx_to_o $cfile]} {
+ # FIXME
+ return 0
+ }
+
+ if {! [gcj_link $main $main [list $file nat$main.o]]} {
+ # FIXME
+ return 0
+ }
+
+ if {! [gcj_invoke $main [file rootname $file].out {}]} {
+ # FIXME
+ return 0
+ }
+
+ # When we succeed we remove all our clutter.
+ eval gcj_cleanup [glob -nocomplain -- ${main}.*] [list $main nat$main.o]
+
+ return 1
+}
+
+# Run the JVMTI tests.
+proc gcj_jvmti_run {} {
+ global srcdir subdir
+ global build_triplet host_triplet
+
+ # For now we only test JVMTI on native builds.
+ if {$build_triplet == $host_triplet} {
+ catch { lsort [glob -nocomplain ${srcdir}/${subdir}/*.jar] } srcfiles
+
+ foreach x $srcfiles {
+ gcj_jvmti_test_one $x
+ }
+ } else {
+ verbose "JVMTI tests not run in cross-compilation environment"
+ }
+}
+
+gcj_jvmti_run
Index: libjava.jvmti/events.java
===================================================================
--- libjava.jvmti/events.java (nonexistent)
+++ libjava.jvmti/events.java (revision 765)
@@ -0,0 +1,12 @@
+// Test JVMTI event notifications
+
+public class events
+{
+ public static native void do_events_tests ();
+
+ public static void main (String[] args)
+ {
+ System.out.println ("JVMTI event notification tests");
+ do_events_tests ();
+ }
+}
Index: libjava.jvmti/getmethodname.out
===================================================================
--- libjava.jvmti/getmethodname.out (nonexistent)
+++ libjava.jvmti/getmethodname.out (revision 765)
@@ -0,0 +1,59 @@
+JVMTI GetMethodName tests
+null jmethodID: invalid method ID
+GetClassMethods: none
+GetMethodName - name: none
+GetMethodName - signature: none
+GetMethodName - generic: none
+GetMethodName - name: none
+GetMethodName - signature: none
+GetMethodName - generic: none
+GetMethodName - name: none
+GetMethodName - signature: none
+GetMethodName - generic: none
+GetMethodName - name: none
+GetMethodName - signature: none
+GetMethodName - generic: none
+GetMethodName - name: none
+GetMethodName - signature: none
+GetMethodName - generic: none
+GetMethodName - name: none
+GetMethodName - signature: none
+GetMethodName - generic: none
+GetMethodName - name: none
+GetMethodName - signature: none
+GetMethodName - generic: none
+GetMethodName - name: none
+GetMethodName - signature: none
+GetMethodName - generic: none
+name=clone, signature=()Ljava.lang.Object;, generic=null
+names match
+signatures match
+generic not yet
+name=equals, signature=(Ljava.lang.Object;)Z, generic=null
+names match
+signatures match
+generic not yet
+name=finalize, signature=()V, generic=null
+names match
+signatures match
+generic not yet
+name=getClass, signature=()Ljava.lang.Class;, generic=null
+names match
+signatures match
+generic not yet
+name=hashCode, signature=()I, generic=null
+names match
+signatures match
+generic not yet
+name=notify, signature=()V, generic=null
+names match
+signatures match
+generic not yet
+name=notifyAll, signature=()V, generic=null
+names match
+signatures match
+generic not yet
+name=toString, signature=()Ljava.lang.String;, generic=null
+names match
+signatures match
+generic not yet
Index: libjava.jvmti/getallthreads.out
===================================================================
--- libjava.jvmti/getallthreads.out (nonexistent)
+++ libjava.jvmti/getallthreads.out (revision 765)
@@ -0,0 +1,23 @@
+JVMTI GetAllThreads tests
+Found thread 1
+Found thread 2
+Found thread 3
+Found thread 4
+Found thread 5
+Found thread 6
+Found thread 7
+Found thread 8
+Found thread 9
+Found thread 10
+Found thread 11
+Found thread 12
+Found thread 13
+Found thread 14
+Found thread 15
+Found thread 16
+Found thread 17
+Found thread 18
+Found thread 19
+Found thread 20
+Found thread 21
+Found thread 22
Index: libjava.jvmti/events.h
===================================================================
--- libjava.jvmti/events.h (nonexistent)
+++ libjava.jvmti/events.h (revision 765)
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __events__
+#define __events__
+
+#pragma interface
+
+#include
+#include
+
+extern "Java"
+{
+ class events;
+}
+
+class events : public ::java::lang::Object
+{
+
+public:
+ events();
+ static void do_events_tests();
+ static void main(JArray< ::java::lang::String * > *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __events__
Index: libjava.jvmti/natevents.cc
===================================================================
--- libjava.jvmti/natevents.cc (nonexistent)
+++ libjava.jvmti/natevents.cc (revision 765)
@@ -0,0 +1,578 @@
+#include
+
+#include
+#include
+#include
+
+#include "jvmti-int.h"
+#include "events.h"
+
+void
+print_events ()
+{
+#define DO(X) \
+ do \
+ { \
+ if (JVMTI_REQUESTED_EVENT (X)) \
+ printf (#X ","); \
+ } \
+ while (0)
+
+ printf ("RequestedEvents: ");
+ DO (VMInit);
+ DO (VMDeath);
+ DO (ThreadStart);
+ DO (ThreadEnd);
+ DO (ClassFileLoadHook);
+ DO (ClassLoad);
+ DO (ClassPrepare);
+ DO (VMStart);
+ DO (Exception);
+ DO (ExceptionCatch);
+ DO (SingleStep);
+ DO (FramePop);
+ DO (Breakpoint);
+ DO (FieldAccess);
+ DO (FieldModification);
+ DO (MethodEntry);
+ DO (MethodExit);
+ DO (NativeMethodBind);
+ DO (CompiledMethodLoad);
+ DO (CompiledMethodUnload);
+ DO (DynamicCodeGenerated);
+ DO (DataDumpRequest);
+ DO (MonitorWait);
+ DO (MonitorWaited);
+ DO (MonitorContendedEnter);
+ DO (MonitorContendedEntered);
+ DO (GarbageCollectionStart);
+ DO (GarbageCollectionFinish);
+ DO (ObjectFree);
+ DO (VMObjectAlloc);
+ printf ("\n");
+#undef DO
+}
+
+static void
+VMInitCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread)
+{
+ printf ("VMInitCB jni_env=%#llx thread=%#llx\n",
+ (unsigned long long) jni_env, (unsigned long long) thread);
+}
+
+static void
+VMDeathCB (jvmtiEnv *env, JNIEnv *jni_env)
+{
+ printf ("VMDeathCB jni_env=%#llx\n", (unsigned long long) jni_env);
+}
+
+static void
+ThreadStartCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread)
+{
+ printf ("ThreadStartCB jni_env=%#llx thread=%#llx\n",
+ (unsigned long long) jni_env, (unsigned long long) thread);
+}
+
+static void
+ThreadEndCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread)
+{
+ printf ("ThreadEndCB jni_env=%#llx thread=%#llx\n",
+ (unsigned long long) jni_env, (unsigned long long) thread);
+}
+
+static void
+ClassFileLoadHookCB (jvmtiEnv *env, JNIEnv *jni_env,
+ jclass class_being_redefined, jobject loader,
+ const char *name, jobject protection_domain,
+ jint class_data_len, const unsigned char *class_data,
+ jint *new_class_data_len, unsigned char **new_class_data)
+{
+ printf ("ClassFileLoadHookCB jni_env=%#llx class_being_redefined=%#llx"
+ " loader=%#llx", (unsigned long long) jni_env, (unsigned long long)
+ class_being_redefined, (unsigned long long) loader);
+ printf (" name=%s protection_domain=%#llx class_data_len=%d class_data=%#llx",
+ name, (unsigned long long) protection_domain, (int) class_data_len,
+ (unsigned long long) class_data);
+ printf (" new_class_data_len=%#llx new_class_data=%#llx\n",
+ (unsigned long long) new_class_data_len, (unsigned long long)
+ new_class_data);
+}
+
+static void
+ClassLoadCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jclass klass)
+{
+ printf ("ClassLoadCB jni_env=%#llx thread=%#llx klass=%#llx\n",
+ (unsigned long long) jni_env, (unsigned long long) thread,
+ (unsigned long long) klass);
+}
+
+static void
+ClassPrepareCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jclass klass)
+{
+ printf ("ClassPrepareCB jni_env=%#llx thread=%#llx klass=%#llx\n",
+ (unsigned long long)jni_env, (unsigned long long) thread,
+ (unsigned long long) klass);
+}
+
+static void
+VMStartCB (jvmtiEnv *env, JNIEnv *jni_env)
+{
+ printf ("VMStartCB jni_env=%#llx\n", (unsigned long long) jni_env);
+}
+
+static void
+ExceptionCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jmethodID method,
+ jlocation location, jobject exception, jmethodID catch_method,
+ jlocation catch_location)
+{
+ printf ("ExceptionCB jni_env=%#llx thread=%#llx method=%#llx location=%#llx",
+ (unsigned long long) jni_env, (unsigned long long) thread,
+ (unsigned long long) method, (unsigned long long) location);
+ printf (" exception=%#llx catch_method=%#llx catch_location=%#llx\n",
+ (unsigned long long) exception, (unsigned long long) catch_method,
+ (unsigned long long) catch_location);
+}
+
+static void
+ExceptionCatchCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+ jmethodID method, jlocation location, jobject exception)
+{
+ printf ("ExceptionCatchCB jni_env=%#llx thread=%#llx method=%#llx"
+ " location=%#llx",
+ (unsigned long long) jni_env, (unsigned long long) thread,
+ (unsigned long long) method, (unsigned long long) location);
+ printf (" exception=%#llx\n", (unsigned long long) exception);
+}
+
+static void
+SingleStepCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jmethodID method,
+ jlocation location)
+{
+ printf ("SingleStepCB jni_env=%#llx thread=%#llx method=%#llx"
+ " location=%#llx\n",
+ (unsigned long long) jni_env, (unsigned long long) thread,
+ (unsigned long long) method, (unsigned long long) location);
+}
+
+static void
+FramePopCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jmethodID method,
+ jboolean was_popped_by_exception)
+{
+ printf ("FramePopCB jni_env=%#llx thread=%#llx method=%#llx",
+ (unsigned long long) jni_env, (unsigned long long) thread,
+ (unsigned long long) method);
+ printf (" was_pooped_by_exception=%d\n", (was_popped_by_exception ?
+ 1 : 0));
+}
+
+static void
+BreakpointCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jmethodID method,
+ jlocation location)
+{
+ printf ("BreakpointCB jni_env=%#llx thread=%#llx method=%#llx"
+ " location=%#llx\n", (unsigned long long) jni_env,
+ (unsigned long long) thread, (unsigned long long) method,
+ (unsigned long long) location);
+}
+
+static void
+FieldAccessCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+ jmethodID method, jlocation location, jclass field_klass,
+ jobject object, jfieldID field)
+{
+ printf ("FieldAccessCB jni_env=%#llx thread=%#llx method=%#llx"
+ " location=%#llx", (unsigned long long) jni_env, (unsigned long long)
+ thread, (unsigned long long) method, (unsigned long long) location);
+ printf (" field_klass=%#llx object=%#llx field=%#llx\n", (unsigned long long)
+ field_klass, (unsigned long long) object, (unsigned long long) field);
+}
+
+static void
+FieldModificationCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+ jmethodID method, jlocation location, jclass field_klass,
+ jobject object, jfieldID field, char signature_type,
+ jvalue new_value)
+
+{
+ printf ("FieldModificationCB jni_env=%#llx thread=%#llx method=%#llx"
+ " location=%#llx", (unsigned long long) jni_env, (unsigned long long)
+ thread, (unsigned long long) method, (unsigned long long) location);
+ printf (" field_klass=%#llx object=%#llx field=%#llx signature_type=%c",
+ (unsigned long long) field_klass, (unsigned long long) object,
+ (unsigned long long) field, signature_type);
+ printf (" new_value=%#llx\n", (unsigned long long) new_value.l);
+}
+
+static void
+MethodEntryCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+ jmethodID method)
+{
+ printf ("MethodEntryCB jni_env=%#llx thread=%#llx method=%#llx\n",
+ (unsigned long long) jni_env, (unsigned long long) thread,
+ (unsigned long long) method);
+}
+
+static void
+MethodExitCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+ jmethodID method, jboolean was_popped_by_exception,
+ jvalue return_value)
+{
+ printf ("MethodExitCB jni_env=%#llx thread=%#llx method=%#llx",
+ (unsigned long long) jni_env, (unsigned long long) thread,
+ (unsigned long long) method);
+ printf (" was_popped_by_exception=%d return_value=%d\n",
+ (was_popped_by_exception) ? 1 : 0, (int) return_value.i);
+}
+
+static void
+NativeMethodBindCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+ jmethodID method, void *address, void **new_address_ptr)
+{
+ printf ("NativeMethodBindCB jni_env=%#llx thread=%#llx method=%#llx",
+ (unsigned long long) jni_env, (unsigned long long) thread,
+ (unsigned long long) method);
+ printf (" address=%#llx new_address_ptr=%#llx\n", (unsigned long long)
+ address, (unsigned long long) new_address_ptr);
+}
+
+static void
+CompiledMethodLoadCB (jvmtiEnv *env, jmethodID method, jint code_size,
+ const void *code_addr, jint map_length,
+ const jvmtiAddrLocationMap *map,
+ const void *compile_info)
+{
+ printf ("CompiledMethodLoadCB method=%#llx code_size=%#llx code_addr=%#llx",
+ (unsigned long long) method, (unsigned long long) code_size,
+ (unsigned long long) code_addr);
+ printf (" map_length=%d map=%#llx compile_info=%#llx\n", (int) map_length,
+ (unsigned long long) map, (unsigned long long) compile_info);
+}
+
+static void
+CompiledMethodUnloadCB (jvmtiEnv *env, jmethodID method, const void *code_addr)
+{
+ printf ("CompiledMethodUnloadCB method=%#llx code_addr=%#llx\n",
+ (unsigned long long) method, (unsigned long long) code_addr);
+}
+
+static void
+DynamicCodeGeneratedCB (jvmtiEnv *env, const char *name, const void *address,
+ jint length)
+{
+ printf ("DynamicCodeGeneratedCB name=%s address=%#llx length=%d\n", name,
+ (unsigned long long) address, (int) length);
+}
+
+static void
+DataDumpRequestCB (jvmtiEnv *env)
+{
+ printf ("DataDumpRequestCB\n");
+}
+
+static void
+MonitorWaitCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jobject object,
+ jlong timeout)
+{
+ printf ("MonitorWaitCB jni_env=%#llx thread=%#llx object=%#llx timeout=%ld\n",
+ (unsigned long long) jni_env, (unsigned long long) thread,
+ (unsigned long long) object, (long) timeout);
+}
+
+static void
+MonitorWaitedCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+ jobject object, jboolean timed_out)
+{
+ printf ("MonitorWaitedCB jni_env=%#llx thread=%#llx object=%#llx"
+ " timed_out=%d\n", (unsigned long long) jni_env, (unsigned long long)
+ thread, (unsigned long long) object, (timed_out) ? 1 : 0);
+}
+
+static void
+MonitorContendedEnterCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+ jobject object)
+{
+ printf ("MonitorContendedEnterCB jni_env=%#llx thread=%#llx object=%#llx\n",
+ (unsigned long long) jni_env, (unsigned long long) thread,
+ (unsigned long long) object);
+}
+
+static void
+MonitorContendedEnteredCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+ jobject object)
+{
+ printf ("MonitorContendedEnteredCB jni_env=%#llx thread=%#llx object=%#llx\n",
+ (unsigned long long) jni_env, (unsigned long long) thread,
+ (unsigned long long) object);
+}
+
+static void
+GarbageCollectionStartCB (jvmtiEnv *env)
+{
+ printf ("GarbageCollectionStartCB\n");
+}
+
+static void
+GarbageCollectionFinishCB (jvmtiEnv *env)
+{
+ printf ("GarbageCollectionFinishCB\n");
+}
+
+static void
+ObjectFreeCB (jvmtiEnv *env, jlong tag)
+{
+ printf ("ObjectFreeCB tag=%ld\n", (long) tag);
+}
+
+static void
+VMObjectAllocCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+ jobject object, jclass object_klass, jlong size)
+{
+ printf ("VMObjectAllocCB jni_env=%#llx thread=%#llx object=%#llx",
+ (unsigned long long) jni_env, (unsigned long long) thread,
+ (unsigned long long) object);
+ printf (" object_klass=%#llx size=%ld\n", (unsigned long long) object_klass,
+ (long) size);
+}
+
+static void
+do_enable_tests ()
+{
+ printf ("- enable tests -\n");
+ JavaVM *vm = _Jv_GetJavaVM ();
+ jvmtiEnv *env[3];
+ int i;
+ for (i = 0; i < 3; ++i)
+ {
+ vm->GetEnv (reinterpret_cast (&env[i]), JVMTI_VERSION_1_0);
+ printf ("created JVMTI environment #%d\n", i);
+ }
+
+ jvmtiEventCallbacks callbacks;
+ memset (&callbacks, 0, sizeof (jvmtiEventCallbacks));
+
+ printf ("setting callbacks for envs\n");
+ callbacks.VMInit = VMInitCB;
+ env[0]->SetEventCallbacks (&callbacks, sizeof (callbacks));
+ callbacks.VMDeath = VMDeathCB;
+ env[1]->SetEventCallbacks (&callbacks, sizeof (callbacks));
+ callbacks.ThreadEnd = ThreadEndCB;
+ env[2]->SetEventCallbacks (&callbacks, sizeof (callbacks));
+ print_events ();
+
+ printf ("enable VM_INIT for env0, env1, env2\n");
+ env[0]->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
+ env[1]->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
+ env[2]->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
+ print_events ();
+
+ printf ("enable VM_DEATH for env1,env2\n");
+ env[1]->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL);
+ env[2]->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL);
+ print_events ();
+
+ /* Used to use a non-NULL event thread, but that causes problems
+ when SetEventNotificationMode tries to validate the thread. */
+ printf ("enable THREAD_END for env2\n");
+ env[2]->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_THREAD_END,
+ NULL);
+ print_events ();
+
+ printf ("disposing of env1\n");
+ env[1]->DisposeEnvironment ();
+ print_events ();
+
+ printf ("disposing of env0\n");
+ env[0]->DisposeEnvironment ();
+ print_events ();
+
+ printf ("disable VMInit in env2\n");
+ env[2]->SetEventNotificationMode (JVMTI_DISABLE, JVMTI_EVENT_VM_INIT, NULL);
+ print_events ();
+
+ printf ("clear VMDeath callback in env2\n");
+ callbacks.VMDeath = NULL;
+ env[2]->SetEventCallbacks (&callbacks, sizeof (callbacks));
+ print_events ();
+
+ printf ("sending VMInit\n");
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_INIT, (jthread) 0x1234,
+ (JNIEnv *) 0x5678);
+
+ printf ("sending ThreadEnd\n");
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_THREAD_END, (jthread) 0x1234,
+ (JNIEnv *) 0x5678);
+
+ /* See comment above re: SetEventNotificationMode and validity
+ checking
+ printf ("sending ThreadEnd (no match)\n");
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_THREAD_END, (jthread) 0x4321,
+ (JNIEnv *) 0x5678);
+ */
+
+ printf ("sending VMDeath\n");
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_DEATH, (jthread) NULL,
+ (JNIEnv *) 0x5678);
+
+ printf ("disposing of env2\n");
+ env[2]->DisposeEnvironment ();
+ print_events ();
+}
+
+static void
+do_callback_arg_tests ()
+{
+ printf ("- callback arg tests -\n");
+ JavaVM *vm = _Jv_GetJavaVM ();
+ jvmtiEnv *env;
+ vm->GetEnv (reinterpret_cast (&env), JVMTI_VERSION_1_0);
+
+ // Define all the callbacks
+#define DEFINE(Event) callbacks.Event = Event ## CB;
+ jvmtiEventCallbacks callbacks;
+ DEFINE(VMInit);
+ DEFINE(VMDeath);
+ DEFINE(ThreadStart);
+ DEFINE(ThreadEnd);
+ DEFINE(ClassFileLoadHook);
+ DEFINE(ClassLoad);
+ DEFINE(ClassPrepare);
+ DEFINE(VMStart);
+ DEFINE(Exception);
+ DEFINE(ExceptionCatch);
+ DEFINE(SingleStep);
+ DEFINE(FramePop);
+ DEFINE(Breakpoint);
+ DEFINE(FieldAccess);
+ DEFINE(FieldModification);
+ DEFINE(MethodEntry);
+ DEFINE(MethodExit);
+ DEFINE(NativeMethodBind);
+ DEFINE(CompiledMethodLoad);
+ DEFINE(CompiledMethodUnload);
+ DEFINE(DynamicCodeGenerated);
+ DEFINE(DataDumpRequest);
+ DEFINE(MonitorWait);
+ DEFINE(MonitorWaited);
+ DEFINE(MonitorContendedEnter);
+ DEFINE(MonitorContendedEntered);
+ DEFINE(GarbageCollectionStart);
+ DEFINE(GarbageCollectionFinish);
+ DEFINE(ObjectFree);
+ DEFINE(VMObjectAlloc);
+#undef DEFINE
+ env->SetEventCallbacks (&callbacks, sizeof (callbacks));
+
+ // Enable all the callbacks
+#define ENABLE(Event) \
+ env->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_ ## Event, NULL)
+ ENABLE (VM_INIT);
+ ENABLE (VM_DEATH);
+ ENABLE (THREAD_START);
+ ENABLE (THREAD_END);
+ ENABLE (CLASS_FILE_LOAD_HOOK);
+ ENABLE (CLASS_LOAD);
+ ENABLE (CLASS_PREPARE);
+ ENABLE (VM_START);
+ ENABLE (EXCEPTION);
+ ENABLE (EXCEPTION_CATCH);
+ ENABLE (SINGLE_STEP);
+ ENABLE (FRAME_POP);
+ ENABLE (BREAKPOINT);
+ ENABLE (FIELD_ACCESS);
+ ENABLE (FIELD_MODIFICATION);
+ ENABLE (METHOD_ENTRY);
+ ENABLE (METHOD_EXIT);
+ ENABLE (NATIVE_METHOD_BIND);
+ ENABLE (COMPILED_METHOD_LOAD);
+ ENABLE (COMPILED_METHOD_UNLOAD);
+ ENABLE (DYNAMIC_CODE_GENERATED);
+ ENABLE (DATA_DUMP_REQUEST);
+ ENABLE (MONITOR_WAIT);
+ ENABLE (MONITOR_WAITED);
+ ENABLE (MONITOR_CONTENDED_ENTER);
+ ENABLE (MONITOR_CONTENDED_ENTERED);
+ ENABLE (GARBAGE_COLLECTION_START);
+ ENABLE (GARBAGE_COLLECTION_FINISH);
+ ENABLE (OBJECT_FREE);
+ ENABLE (VM_OBJECT_ALLOC);
+
+ // All events should now be enabled.
+ print_events ();
+
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_INIT, (jthread) 0x2, (JNIEnv *) 0x1);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_DEATH, (jthread) 0x2, (JNIEnv *) 0x1);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_THREAD_START, (jthread) 0x2,
+ (JNIEnv *) 0x1);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_THREAD_END, (jthread) 0x2,
+ (JNIEnv *) 0x1);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, (jthread) 0xb00,
+ (JNIEnv *) 0x1, (jclass) 0x2, (jobject) 0x3,
+ "4", (jobject) 0x5, (jint) 6,
+ (const unsigned char *) 0x7, (jint *) 0x8,
+ (unsigned char **) 0x9);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_CLASS_LOAD, (jthread) 0x2, (JNIEnv *) 0x1,
+ (jclass) 0x3);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_CLASS_PREPARE, (jthread) 0x2,
+ (JNIEnv *) 0x1, (jclass) 0x3);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_START, (jthread) 0xb00, (JNIEnv *) 0x1);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_EXCEPTION, (jthread) 0x2, (JNIEnv *) 0x1,
+ (jmethodID) 0x3, (jlocation) 0x4, (jobject) 0x5,
+ (jmethodID) 0x6, (jlocation) 0x7);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_EXCEPTION_CATCH, (jthread) 0x2,
+ (JNIEnv *) 0x1, (jmethodID) 0x3, (jlocation) 0x4,
+ (jobject) 0x5);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_SINGLE_STEP, (jthread) 0x2, (JNIEnv *) 0x1,
+ (jmethodID) 0x3, (jlocation) 0x4);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_FRAME_POP, (jthread) 0x2, (JNIEnv *) 0x1,
+ (jmethodID) 0x3, 4);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_BREAKPOINT, (jthread) 0x2, (JNIEnv *) 0x1,
+ (jmethodID) 0x3, (jlocation) 0x4);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_FIELD_ACCESS, (jthread) 0x2,
+ (JNIEnv *) 0x1, (jmethodID) 0x3, (jlocation) 0x4,
+ (jclass) 0x5, (jobject) 0x6, (jfieldID) 0x7);
+ jvalue value;
+ value.l = (jobject) 0x9;
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_FIELD_MODIFICATION, (jthread) 0x2,
+ (JNIEnv *) 0x1, (jmethodID) 0x3, (jlocation) 0x4,
+ (jclass) 0x5, (jobject) 0x6, (jfieldID) 0x7,
+ (int) '8', value);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_METHOD_ENTRY, (jthread) 0x2,
+ (JNIEnv *) 0x1, (jmethodID) 0x3);
+ jvalue value2;
+ value2.i = 5;
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_METHOD_EXIT, (jthread) 0x2,
+ (JNIEnv *) 0x1, (jmethodID) 0x3, 4, value2);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_NATIVE_METHOD_BIND, (jthread) 0x2,
+ (JNIEnv *) 0x1, (jmethodID) 0x3, (void *) 0x4,
+ (void **) 0x5);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_COMPILED_METHOD_LOAD, (jthread) 0xb00,
+ (jmethodID) 0x1, (jint) 2, (const void *) 0x3,
+ (jint) 4, (const jvmtiAddrLocationMap *) 0x5,
+ (const void *) 0x6);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_COMPILED_METHOD_UNLOAD, (jthread) 0xb00,
+ (jmethodID) 0x1, (const void *) 0x2);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_DYNAMIC_CODE_GENERATED, (jthread) 0xb00,
+ "1", (const void *) 0x2, (jint) 3);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_DATA_DUMP_REQUEST, (jthread) 0xb00);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_MONITOR_WAIT, (jthread) 0x2,
+ (JNIEnv *) 0x1, (jobject) 0x3, (jlong) 4);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_MONITOR_WAITED, (jthread) 0x2,
+ (JNIEnv *) 0x1, (jobject) 0x3, (int) 4);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_MONITOR_CONTENDED_ENTER, (jthread) 0x2,
+ (JNIEnv *) 0x1, (jobject) 0x3);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_MONITOR_CONTENDED_ENTERED, (jthread) 0x2,
+ (JNIEnv *) 0x1, (jobject) 0x3);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_GARBAGE_COLLECTION_START, (jthread) 0xb00);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_GARBAGE_COLLECTION_FINISH, (jthread) 0xb00);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_OBJECT_FREE, (jthread) 0xb00, (jlong) 1);
+ _Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_OBJECT_ALLOC, (jthread) 0x2,
+ (JNIEnv *) 0x1, (jobject) 0x3, (jclass) 0x4,
+ (jlong) 5);
+}
+
+void
+events::do_events_tests ()
+{
+ do_enable_tests ();
+ do_callback_arg_tests ();
+}
Index: libjava.jvmti/dummyagent.c
===================================================================
--- libjava.jvmti/dummyagent.c (nonexistent)
+++ libjava.jvmti/dummyagent.c (revision 765)
@@ -0,0 +1,10 @@
+#include
+
+JNIEXPORT jint JNICALL
+Agent_OnLoad (JavaVM *vm, char *options, void *reserved)
+{
+ // nothing -- this is just a stub to get JVMTI properly
+ // initialized
+ return 0;
+}
+
Index: libjava.jvmti/getmethodname.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: libjava.jvmti/getmethodname.jar
===================================================================
--- libjava.jvmti/getmethodname.jar (nonexistent)
+++ libjava.jvmti/getmethodname.jar (revision 765)
libjava.jvmti/getmethodname.jar
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: libjava.jvmti/getallthreads.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: libjava.jvmti/getallthreads.jar
===================================================================
--- libjava.jvmti/getallthreads.jar (nonexistent)
+++ libjava.jvmti/getallthreads.jar (revision 765)
libjava.jvmti/getallthreads.jar
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: libjava.jvmti/geterrorname.out
===================================================================
--- libjava.jvmti/geterrorname.out (nonexistent)
+++ libjava.jvmti/geterrorname.out (revision 765)
@@ -0,0 +1,49 @@
+JVMTI GetErrorName tests
+none
+null pointer
+out of memory
+access denied
+wrong phase
+internal error
+unattached thread
+invalid environment
+invalid priority
+thread not suspended
+thread suspended
+thread not alive
+class not prepared
+no more frames
+opaque frame
+duplicate
+not found
+not monitor owner
+interrupted
+unmodifiable class
+not available
+absent information
+invalid event type
+native method
+invalid thread
+invalid thread group
+invalid object
+invalid class
+invalid method ID
+invalid location
+invalid field ID
+type mismatch
+invalid slot
+invalid monitor
+invalid class format
+circular class definition
+unsupported redefinition: method added
+unsupported redefinition: schema changed
+invalid type state
+fails verification
+unsupported redefinition: hierarchy changed
+unsupported redefinition: method deleted
+unsupported version
+names do not match
+unsupported redefinition: class modifiers changed
+unsupported redefinition: method modifiers changed
+must possess capability
+illegal argument
Index: libjava.jvmti/getmethodname.java
===================================================================
--- libjava.jvmti/getmethodname.java (nonexistent)
+++ libjava.jvmti/getmethodname.java (revision 765)
@@ -0,0 +1,10 @@
+public class getmethodname
+{
+ public static native void do_getmethodname_tests ();
+
+ public static void main (String[] args)
+ {
+ System.out.println ("JVMTI GetMethodName tests");
+ do_getmethodname_tests ();
+ }
+}
Index: libjava.jvmti/interp/getstacktrace.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: libjava.jvmti/interp/getstacktrace.jar
===================================================================
--- libjava.jvmti/interp/getstacktrace.jar (nonexistent)
+++ libjava.jvmti/interp/getstacktrace.jar (revision 765)
libjava.jvmti/interp/getstacktrace.jar
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: libjava.jvmti/interp/getlocalvartable.h
===================================================================
--- libjava.jvmti/interp/getlocalvartable.h (nonexistent)
+++ libjava.jvmti/interp/getlocalvartable.h (revision 765)
@@ -0,0 +1,19 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+
+#ifndef __getlocalvartable__
+#define __getlocalvartable__
+
+#include
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+JNIEXPORT jint JNICALL Java_getlocalvartable_do_1getlocalvartable_1tests (JNIEnv *env, jclass);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __getlocalvartable__ */
Index: libjava.jvmti/interp/getlocalvartable.out
===================================================================
--- libjava.jvmti/interp/getlocalvartable.out (nonexistent)
+++ libjava.jvmti/interp/getlocalvartable.out (revision 765)
@@ -0,0 +1,109 @@
+JVMTI getlocalvartable Interpreted Test
+Slot: 0
+ Name: this
+ Sig: Lgetlocalvartable;
+ Gen Sig: Lgetlocalvartable;
+ Start Loc: 0
+ Length: 29
+Slot: 1
+ Name: pone
+ Sig: F
+ Gen Sig: F
+ Start Loc: 0
+ Length: 29
+Slot: 2
+ Name: ptwo
+ Sig: F
+ Gen Sig: F
+ Start Loc: 0
+ Length: 29
+Slot: 3
+ Name: fone
+ Sig: F
+ Gen Sig: F
+ Start Loc: 2
+ Length: 27
+Slot: 4
+ Name: ftwo
+ Sig: F
+ Gen Sig: F
+ Start Loc: 7
+ Length: 22
+Slot: 5
+ Name: done
+ Sig: D
+ Gen Sig: D
+ Start Loc: 14
+ Length: 15
+Slot: 7
+ Name: dtwo
+ Sig: D
+ Gen Sig: D
+ Start Loc: 22
+ Length: 7
+Slot: 0
+ Name: this
+ Sig: Lgetlocalvartable;
+ Gen Sig: Lgetlocalvartable;
+ Start Loc: 0
+ Length: 26
+Slot: 1
+ Name: ipone
+ Sig: I
+ Gen Sig: I
+ Start Loc: 0
+ Length: 26
+Slot: 2
+ Name: iptwo
+ Sig: I
+ Gen Sig: I
+ Start Loc: 0
+ Length: 26
+Slot: 3
+ Name: ione
+ Sig: I
+ Gen Sig: I
+ Start Loc: 2
+ Length: 24
+Slot: 4
+ Name: itwo
+ Sig: I
+ Gen Sig: I
+ Start Loc: 7
+ Length: 19
+Slot: 5
+ Name: lone
+ Sig: J
+ Gen Sig: J
+ Start Loc: 11
+ Length: 15
+Slot: 7
+ Name: ltwo
+ Sig: J
+ Gen Sig: J
+ Start Loc: 19
+ Length: 7
+Slot: 0
+ Name: this
+ Sig: Lgetlocalvartable;
+ Gen Sig: Lgetlocalvartable;
+ Start Loc: 0
+ Length: 9
+Slot: 1
+ Name: op
+ Sig: Ljava/lang/Object;
+ Gen Sig: Ljava/lang/Object;
+ Start Loc: 0
+ Length: 9
+Slot: 2
+ Name: oone
+ Sig: Ljava/lang/Object;
+ Gen Sig: Ljava/lang/Object;
+ Start Loc: 2
+ Length: 7
+Slot: 3
+ Name: otwo
+ Sig: Ljava/lang/Object;
+ Gen Sig: Ljava/lang/Object;
+ Start Loc: 4
+ Length: 5
Index: libjava.jvmti/interp/getargssize.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: libjava.jvmti/interp/getargssize.jar
===================================================================
--- libjava.jvmti/interp/getargssize.jar (nonexistent)
+++ libjava.jvmti/interp/getargssize.jar (revision 765)
libjava.jvmti/interp/getargssize.jar
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: libjava.jvmti/interp/natgetlocalvartable.cc
===================================================================
--- libjava.jvmti/interp/natgetlocalvartable.cc (nonexistent)
+++ libjava.jvmti/interp/natgetlocalvartable.cc (revision 765)
@@ -0,0 +1,70 @@
+#include
+
+#include
+#include
+#include
+
+#include "getlocalvartable.h"
+
+JNIEXPORT jint JNICALL Java_getlocalvartable_do_1getlocalvartable_1tests
+(JNIEnv *env, jclass klass)
+{
+ JavaVM *vm;
+ jint err = env->GetJavaVM (&vm);
+ if (err < 0)
+ {
+ fprintf (stderr, "error getting VM\n");
+ exit (1);
+ }
+
+ jvmtiEnv *jvmti = NULL;
+ vm->GetEnv ((void **) &jvmti, JVMTI_VERSION_1_0);
+
+ if (jvmti == NULL)
+ {
+ fprintf (stderr, "error getting jvmti environment\n");
+ exit (1);
+ }
+
+ jint entrys;
+ jvmtiLocalVariableEntry *var_table;
+
+ jvmtiError jerr;
+
+ jmethodID meth_ids[3];
+
+ meth_ids[0] = env->GetMethodID (klass, "aMethod", "(FF)D");
+ meth_ids[1] = env->GetMethodID (klass, "bMethod", "(II)J");
+ meth_ids[2] = env->GetMethodID (klass, "cMethod",
+ "(Ljava/lang/Object;)Ljava/lang/Object;");
+ for (int i = 0; i < 3; i++)
+ {
+ jerr = jvmti->GetLocalVariableTable (meth_ids[i], &entrys, &var_table);
+ if (jerr != JVMTI_ERROR_NONE)
+ {
+ char *error_name;
+ jvmti->GetErrorName (jerr, &error_name);
+ fprintf (stderr, "JVMTI Error: %s\n", error_name);
+ jvmti->Deallocate (reinterpret_cast (error_name));
+ }
+ else
+ {
+ for (int j = 0; j < entrys; j++)
+ {
+ printf ("Slot: %d\n", static_cast (var_table[j].slot));
+ printf (" Name: %s\n", var_table[j].name);
+ jvmti->Deallocate (reinterpret_cast (var_table[j].name));
+ printf (" Sig: %s\n", var_table[j].signature);
+ jvmti->Deallocate (reinterpret_cast (var_table[j].signature));
+ printf (" Gen Sig: %s\n", var_table[j].generic_signature);
+ jvmti->Deallocate (reinterpret_cast (var_table[j].generic_signature));
+ printf (" Start Loc: %ld\n", static_cast (var_table[j].start_location));
+ printf (" Length: %d\n", static_cast (var_table[j].length));
+ }
+
+ jvmti->Deallocate (reinterpret_cast (var_table));
+ }
+ }
+
+ return 0;
+}
Index: libjava.jvmti/interp/getstacktrace.java
===================================================================
--- libjava.jvmti/interp/getstacktrace.java (nonexistent)
+++ libjava.jvmti/interp/getstacktrace.java (revision 765)
@@ -0,0 +1,88 @@
+public class getstacktrace
+ extends Thread
+{
+ public boolean done = false;
+
+ // num_frames is the number of frames > the original run () call so if
+ // num_frames = 1, the thread will have 2 frames, the original Thread.run
+ // call, plus one additional
+ public int num_frames, thread_num;
+
+ public static int num_threads = 1;
+
+ static
+ {
+ System.loadLibrary("natgetstacktrace");
+ }
+
+ public void run ()
+ {
+ thread_num = num_threads++;
+ num_frames = thread_num;
+
+ if (num_frames <= 1)
+ {
+ natRunner ();
+ }
+ else
+ {
+ if (thread_num % 2 == 0)
+ natPlaceholder ();
+ else
+ placeholder ();
+ }
+ }
+
+ public void placeholder ()
+ {
+ num_frames--;
+ if (num_frames <= 1)
+ {
+ if (thread_num % 2 == 1)
+ natRunner ();
+ else
+ runner ();
+ }
+ else
+ {
+ if (thread_num % 2 == 0)
+ natPlaceholder ();
+ else
+ placeholder ();
+ }
+ }
+
+ public void runner ()
+ {
+ done = true;
+ while (done)
+ yield ();
+ }
+
+ public native void natPlaceholder ();
+ public native void natRunner ();
+
+ public static native int do_getstacktrace_tests (Thread[] threads);
+
+ public static void main (String[] args)
+ {
+ System.out.println ("JVMTI GetStackTrace Interpreted Test");
+
+ getstacktrace[] threads = new getstacktrace[10];
+
+ for (int i = 0; i < threads.length; i++)
+ {
+ threads[i] = new getstacktrace ();
+ threads[i].start ();
+ while (!threads[i].done)
+ yield ();
+ }
+
+ do_getstacktrace_tests (threads);
+
+ for (int i = 0; i < threads.length; i++)
+ {
+ threads[i].done = false;
+ }
+ }
+}
Index: libjava.jvmti/interp/getlocalvartable.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: libjava.jvmti/interp/getlocalvartable.jar
===================================================================
--- libjava.jvmti/interp/getlocalvartable.jar (nonexistent)
+++ libjava.jvmti/interp/getlocalvartable.jar (revision 765)
libjava.jvmti/interp/getlocalvartable.jar
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: libjava.jvmti/interp/getargssize.java
===================================================================
--- libjava.jvmti/interp/getargssize.java (nonexistent)
+++ libjava.jvmti/interp/getargssize.java (revision 765)
@@ -0,0 +1,36 @@
+public class getargssize
+{
+ static
+ {
+ System.loadLibrary("natgetargssize");
+ }
+
+ public int aMethod (float fone, int ione)
+ {
+ return 0;
+ }
+
+ public long bMethod (long lone, double done, int ione)
+ {
+ return 0;
+ }
+
+ public static boolean cMethod ()
+ {
+ return false;
+ }
+
+ public static Object dMethod (Object op)
+ {
+ return op;
+ }
+
+ public static native int do_getargssize_tests ();
+
+ public static void main (String[] args)
+ {
+ System.out.println ("JVMTI getargssize Interpreted Test");
+
+ do_getargssize_tests ();
+ }
+}
Index: libjava.jvmti/interp/getstacktrace.h
===================================================================
--- libjava.jvmti/interp/getstacktrace.h (nonexistent)
+++ libjava.jvmti/interp/getstacktrace.h (revision 765)
@@ -0,0 +1,21 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+
+#ifndef __getstacktrace__
+#define __getstacktrace__
+
+#include
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+JNIEXPORT void JNICALL Java_getstacktrace_natPlaceholder (JNIEnv *env, jobject);
+JNIEXPORT void JNICALL Java_getstacktrace_natRunner (JNIEnv *env, jobject);
+JNIEXPORT jint JNICALL Java_getstacktrace_do_1getstacktrace_1tests (JNIEnv *env, jclass, jobjectArray);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __getstacktrace__ */
Index: libjava.jvmti/interp/getstacktrace.out
===================================================================
--- libjava.jvmti/interp/getstacktrace.out (nonexistent)
+++ libjava.jvmti/interp/getstacktrace.out (revision 765)
@@ -0,0 +1,76 @@
+JVMTI GetStackTrace Interpreted Test
+Thread has 2 frames
+Frame 0 is native
+Frame 1 is interpreted
+Thread has 3 frames
+Frame 0 is interpreted
+Frame 1 is native
+Frame 2 is interpreted
+Thread has 4 frames
+Frame 0 is native
+Frame 1 is interpreted
+Frame 2 is interpreted
+Frame 3 is interpreted
+Thread has 5 frames
+Frame 0 is interpreted
+Frame 1 is native
+Frame 2 is native
+Frame 3 is native
+Frame 4 is interpreted
+Thread has 6 frames
+Frame 0 is native
+Frame 1 is interpreted
+Frame 2 is interpreted
+Frame 3 is interpreted
+Frame 4 is interpreted
+Frame 5 is interpreted
+Thread has 7 frames
+Frame 0 is interpreted
+Frame 1 is native
+Frame 2 is native
+Frame 3 is native
+Frame 4 is native
+Frame 5 is native
+Frame 6 is interpreted
+Thread has 8 frames
+Frame 0 is native
+Frame 1 is interpreted
+Frame 2 is interpreted
+Frame 3 is interpreted
+Frame 4 is interpreted
+Frame 5 is interpreted
+Frame 6 is interpreted
+Frame 7 is interpreted
+Thread has 9 frames
+Frame 0 is interpreted
+Frame 1 is native
+Frame 2 is native
+Frame 3 is native
+Frame 4 is native
+Frame 5 is native
+Frame 6 is native
+Frame 7 is native
+Frame 8 is interpreted
+Thread has 10 frames
+Frame 0 is native
+Frame 1 is interpreted
+Frame 2 is interpreted
+Frame 3 is interpreted
+Frame 4 is interpreted
+Frame 5 is interpreted
+Frame 6 is interpreted
+Frame 7 is interpreted
+Frame 8 is interpreted
+Frame 9 is interpreted
+Thread has 11 frames
+Frame 0 is interpreted
+Frame 1 is native
+Frame 2 is native
+Frame 3 is native
+Frame 4 is native
+Frame 5 is native
+Frame 6 is native
+Frame 7 is native
+Frame 8 is native
+Frame 9 is native
+Frame 10 is interpreted
Index: libjava.jvmti/interp/getlocalvartable.java
===================================================================
--- libjava.jvmti/interp/getlocalvartable.java (nonexistent)
+++ libjava.jvmti/interp/getlocalvartable.java (revision 765)
@@ -0,0 +1,63 @@
+public class getlocalvartable
+{
+ public boolean done = false;
+
+ // num_frames is the number of frames > the original run () call so if
+ // num_frames = 1, the thread will have 2 frames, the original Thread.run
+ // call, plus one additional
+ public int num_frames, thread_num;
+
+ public static int num_threads = 1;
+
+ static
+ {
+ System.loadLibrary("natgetlocalvartable");
+ }
+
+ public double aMethod (float pone, float ptwo)
+ {
+ float fone, ftwo;
+ double done, dtwo;
+
+ fone = pone;
+ ftwo = 2 * ptwo;
+
+ done = 5 * fone;
+ dtwo = 6 * ftwo;
+
+ return done + dtwo;
+ }
+
+ public long bMethod (int ipone, int iptwo)
+ {
+ int ione, itwo;
+ long lone, ltwo;
+
+ ione = ipone;
+ itwo = 5 * iptwo;
+
+ lone = ione;
+ ltwo = 8 * itwo;
+
+ return lone + ltwo;
+ }
+
+ public Object cMethod (Object op)
+ {
+ Object oone, otwo;
+ oone = op;
+ otwo = oone;
+ oone = null;
+
+ return otwo;
+ }
+
+ public static native int do_getlocalvartable_tests ();
+
+ public static void main (String[] args)
+ {
+ System.out.println ("JVMTI getlocalvartable Interpreted Test");
+
+ do_getlocalvartable_tests ();
+ }
+}
Index: libjava.jvmti/interp/natgetstacktrace.cc
===================================================================
--- libjava.jvmti/interp/natgetstacktrace.cc (nonexistent)
+++ libjava.jvmti/interp/natgetstacktrace.cc (revision 765)
@@ -0,0 +1,144 @@
+#include
+
+#include
+#include
+#include
+
+#include
+
+#include "getstacktrace.h"
+
+void
+printStackTrace (jvmtiFrameInfo *frames, jint frame_cnt)
+{
+ printf ("Thread has %d frames\n", static_cast (frame_cnt));
+
+ for (int i = 0; i < frame_cnt; i++)
+ {
+ jmethodID method = frames[i].method;
+ jlocation location = frames[i].location;
+
+ if (location == -1)
+ {
+ printf ("Frame %d is native\n", i);
+ }
+ else
+ {
+ printf ("Frame %d is interpreted\n", i);
+ }
+ }
+}
+
+
+JNIEXPORT void JNICALL Java_getstacktrace_natPlaceholder (JNIEnv *env, jobject obj)
+{
+ jclass klass = env->GetObjectClass (obj);
+ jfieldID done_id = env->GetFieldID (klass, "done", "Z");
+ jfieldID num_frames_id = env->GetFieldID (klass, "num_frames", "I");
+ jfieldID thread_num_id = env->GetFieldID (klass, "thread_num", "I");
+
+ // num_frames--
+ jint n_frames = env->GetIntField (obj, num_frames_id);
+ n_frames--;
+ env->SetIntField (obj, num_frames_id, n_frames);
+
+ jint t_num = env->GetIntField (obj, thread_num_id);
+
+ if (n_frames <= 1)
+ {
+ if (t_num % 2 == 1)
+ {
+ jmethodID natRunner_id = env->GetMethodID (klass, "natRunner", "()V");
+ env->CallVoidMethod (obj, natRunner_id);
+ }
+ else
+ {
+ jmethodID runner_id = env->GetMethodID (klass, "runner", "()V");
+ env->CallVoidMethod (obj, runner_id);
+ }
+ }
+ else
+ {
+ if (t_num % 2 == 0)
+ {
+ jmethodID natPlaceholder_id = env->GetMethodID (klass,
+ "natPlaceholder",
+ "()V");
+ env->CallVoidMethod (obj, natPlaceholder_id);
+ }
+ else
+ {
+ jmethodID placeholder_id = env->GetMethodID (klass, "placeholder",
+ "()V");
+ env->CallVoidMethod (obj, placeholder_id);
+ }
+ }
+}
+
+JNIEXPORT void JNICALL Java_getstacktrace_natRunner (JNIEnv *env, jobject obj)
+{
+ jclass klass = env->GetObjectClass (obj);
+ jfieldID done_id = env->GetFieldID (klass, "done", "Z");
+
+
+ jboolean done;
+ done = true;
+ env->SetBooleanField (obj, done_id, done);
+
+ do
+ {
+ done = env->GetBooleanField (obj, done_id);
+ if (done == false)
+ break;
+ usleep (40);
+ }
+ while (done != false);
+}
+
+JNIEXPORT jint JNICALL Java_getstacktrace_do_1getstacktrace_1tests
+(JNIEnv *env, jclass klass, jobjectArray thr_arr)
+{
+ JavaVM *vm;
+ jint err = env->GetJavaVM (&vm);
+ if (err < 0)
+ {
+ fprintf (stderr, "error getting VM\n");
+ exit (1);
+ }
+
+ jvmtiEnv *jvmti = NULL;
+ vm->GetEnv ((void **) &jvmti, JVMTI_VERSION_1_0);
+
+ if (jvmti == NULL)
+ {
+ fprintf (stderr, "error getting jvmti environment\n");
+ exit (1);
+ }
+
+ jint frame_cnt;
+ jvmtiFrameInfo frames[30];
+
+ jvmtiError jerr;
+ jthread thr;
+
+ jsize num_threads = env->GetArrayLength (thr_arr);
+
+ for (int i = 0; i < num_threads; i++)
+ {
+ thr = reinterpret_cast
+ (env->GetObjectArrayElement (thr_arr, static_cast (i)));
+ fflush (stdout);
+ jerr = jvmti->GetStackTrace (thr, 0, 30, frames, &frame_cnt);
+ if (jerr != JVMTI_ERROR_NONE)
+ {
+ char *error_name;
+ jvmti->GetErrorName (jerr, &error_name);
+ fprintf (stderr, "JVMTI Error: %s\n", error_name);
+ jvmti->Deallocate (reinterpret_cast (error_name));
+ }
+ else
+ {
+ printStackTrace (frames, frame_cnt);
+ }
+ }
+}
Index: libjava.jvmti/interp/getargssize.h
===================================================================
--- libjava.jvmti/interp/getargssize.h (nonexistent)
+++ libjava.jvmti/interp/getargssize.h (revision 765)
@@ -0,0 +1,19 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+
+#ifndef __getargssize__
+#define __getargssize__
+
+#include
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+JNIEXPORT jint JNICALL Java_getargssize_do_1getargssize_1tests (JNIEnv *env, jclass);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __getargssize__ */
Index: libjava.jvmti/interp/getargssize.out
===================================================================
--- libjava.jvmti/interp/getargssize.out (nonexistent)
+++ libjava.jvmti/interp/getargssize.out (revision 765)
@@ -0,0 +1,5 @@
+JVMTI getargssize Interpreted Test
+Method 0 requires 3 slots for its arguments
+Method 1 requires 6 slots for its arguments
+Method 2 requires 0 slots for its arguments
+Method 3 requires 1 slots for its arguments
Index: libjava.jvmti/interp/natgetargssize.cc
===================================================================
--- libjava.jvmti/interp/natgetargssize.cc (nonexistent)
+++ libjava.jvmti/interp/natgetargssize.cc (revision 765)
@@ -0,0 +1,58 @@
+#include
+
+#include
+#include
+#include
+
+#include "getargssize.h"
+
+JNIEXPORT jint JNICALL Java_getargssize_do_1getargssize_1tests
+(JNIEnv *env, jclass klass)
+{
+ JavaVM *vm;
+ jint err = env->GetJavaVM (&vm);
+ if (err < 0)
+ {
+ fprintf (stderr, "error getting VM\n");
+ exit (1);
+ }
+
+ jvmtiEnv *jvmti = NULL;
+ vm->GetEnv ((void **) &jvmti, JVMTI_VERSION_1_0);
+
+ if (jvmti == NULL)
+ {
+ fprintf (stderr, "error getting jvmti environment\n");
+ exit (1);
+ }
+
+ jint args_size;
+
+ jvmtiError jerr;
+
+ jmethodID meth_ids[4];
+
+ meth_ids[0] = env->GetMethodID (klass, "aMethod", "(FI)I");
+ meth_ids[1] = env->GetMethodID (klass, "bMethod", "(JDI)J");
+ meth_ids[2] = env->GetStaticMethodID (klass, "cMethod", "()Z");
+ meth_ids[3] = env->GetStaticMethodID (klass, "dMethod",
+ "(Ljava/lang/Object;)Ljava/lang/Object;");
+ for (int i = 0; i < 4; i++)
+ {
+ jerr = jvmti->GetArgumentsSize (meth_ids[i], &args_size);
+ if (jerr != JVMTI_ERROR_NONE)
+ {
+ char *error_name;
+ jvmti->GetErrorName (jerr, &error_name);
+ fprintf (stderr, "JVMTI Error: %s\n", error_name);
+ jvmti->Deallocate (reinterpret_cast (error_name));
+ }
+ else
+ {
+ printf ("Method %d requires %d slots for its arguments\n", i,
+ args_size);
+ }
+ }
+
+ return 0;
+}
Index: libjava.jvmti/getallthreads.java
===================================================================
--- libjava.jvmti/getallthreads.java (nonexistent)
+++ libjava.jvmti/getallthreads.java (revision 765)
@@ -0,0 +1,80 @@
+// Test JVMTI GetAllThreads
+
+import java.util.ArrayList;
+
+public class getallthreads extends Thread
+{
+ public static int thread_num;
+ public static ArrayList threads;
+
+ public int ex_frames;
+ public boolean done = false;
+
+ public static native void do_getallthreads_tests ();
+
+ public void run ()
+ {
+ ex_frames = thread_num;
+ thread_num++;
+
+ if (ex_frames > 0)
+ {
+ if ((ex_frames % 2) == 0)
+ placeholder ();
+ else
+ natPlaceholder ();
+ }
+ else
+ runner ();
+ }
+
+ public native void natPlaceholder ();
+ public native void natRunner ();
+
+ public void placeholder ()
+ {
+ ex_frames--;
+
+ if (ex_frames > 0)
+ {
+ if ((thread_num % 2) == 0)
+ placeholder ();
+ else
+ natPlaceholder ();
+ }
+ else
+ runner ();
+ }
+
+ public void runner ()
+ {
+ done = true;
+ while (done)
+ yield ();
+ }
+
+ public static void main (String[] args)
+ {
+ System.out.println ("JVMTI GetAllThreads tests");
+ threads = new ArrayList (20);
+
+ getallthreads t;
+
+ for (int i = 0; i < 20; i++)
+ {
+ t = new getallthreads ();
+ threads.add (t);
+ t.start ();
+ while (!t.done)
+ yield ();
+ }
+
+ do_getallthreads_tests ();
+
+ for (int i = 0; i < 20; i++)
+ {
+ t = (getallthreads) threads.get(i);
+ t.done = false;
+ }
+ }
+}
Index: libjava.jvmti/geterrorname.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: libjava.jvmti/geterrorname.jar
===================================================================
--- libjava.jvmti/geterrorname.jar (nonexistent)
+++ libjava.jvmti/geterrorname.jar (revision 765)
libjava.jvmti/geterrorname.jar
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: libjava.jvmti/getmethodname.h
===================================================================
--- libjava.jvmti/getmethodname.h (nonexistent)
+++ libjava.jvmti/getmethodname.h (revision 765)
@@ -0,0 +1,27 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __getmethodname__
+#define __getmethodname__
+
+#pragma interface
+
+#include
+#include
+
+extern "Java"
+{
+ class getmethodname;
+}
+
+class getmethodname : public ::java::lang::Object
+{
+
+public:
+ getmethodname();
+ static void do_getmethodname_tests();
+ static void main(JArray< ::java::lang::String * > *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __getmethodname__
Index: libjava.jvmti/natgetmethodname.cc
===================================================================
--- libjava.jvmti/natgetmethodname.cc (nonexistent)
+++ libjava.jvmti/natgetmethodname.cc (revision 765)
@@ -0,0 +1,116 @@
+#include
+
+#include
+#include
+#include
+
+#include
+
+#include "getmethodname.h"
+
+static void
+print_error (jvmtiEnv *env, const char *msg, jvmtiError err)
+{
+ char *error_msg;
+ env->GetErrorName (err, &error_msg);
+ printf ("%s: %s\n", msg, error_msg);
+ env->Deallocate (reinterpret_cast (error_msg));
+}
+
+#define NUM_METHODS 8
+static const char *function_names[] = { "clone",
+ "equals",
+ "finalize",
+ "getClass",
+ "hashCode",
+ "notify",
+ "notifyAll",
+ "toString" };
+static int
+function_index (const char *name)
+{
+ for (int i = 0; i < NUM_METHODS; ++i)
+ {
+ if (strcmp (function_names[i], name) == 0)
+ return i;
+ }
+
+ return -1;
+}
+
+void
+getmethodname::do_getmethodname_tests ()
+{
+ jvmtiEnv *env;
+ JavaVM *vm = _Jv_GetJavaVM ();
+ vm->GetEnv (reinterpret_cast (&env), JVMTI_VERSION_1_0);
+
+ jvmtiError err;
+ err = env->GetMethodName (reinterpret_cast (NULL),
+ reinterpret_cast (NULL),
+ reinterpret_cast (NULL),
+ reinterpret_cast (NULL));
+ print_error (env, "null jmethodID", err);
+
+ jint count;
+ jmethodID *methods;
+ err = env->GetClassMethods (&java::lang::Object::class$, &count, &methods);
+ print_error (env, "GetClassMethods", err);
+
+ char *names[NUM_METHODS], *solo_names[NUM_METHODS];
+ char *signatures[NUM_METHODS], *solo_signatures[NUM_METHODS];
+ char *generics[NUM_METHODS], *solo_generics[NUM_METHODS];
+
+ for (jint i = 0; i < count; ++i)
+ {
+ char *name, *n;
+ char *signature, *s;
+ char *generic, *g;
+ err = env->GetMethodName (methods[i], &name, &signature, &generic);
+
+ int idx = -1;
+ if (err != JVMTI_ERROR_NONE)
+ {
+ print_error (env, "GetMethodName - all fields", err);
+ continue;
+ }
+
+ idx = function_index (name);
+ if (idx == -1)
+ continue;
+
+ names[idx] = name;
+ signatures[idx] = signature;
+ generics[idx] = generic;
+
+ err = env->GetMethodName (methods[i], &n, NULL, NULL);
+ print_error (env, "GetMethodName - name", err);
+ solo_names[idx] = n;
+
+ err = env->GetMethodName (methods[i], NULL, &s, NULL);
+ print_error (env, "GetMethodName - signature", err);
+ solo_signatures[idx] = s;
+
+ err = env->GetMethodName (methods[i], NULL, NULL, &g);
+ print_error (env, "GetMethodName - generic", err);
+ solo_generics[idx] = g;
+ }
+
+#define WRAP(X) ((X) == NULL ? "null" : (X))
+#define MATCH(X,Y) (strcmp ((X),(Y)) == 0 ? "match" : "do not match")
+ for (int i = 0; i < NUM_METHODS; ++i)
+ {
+ printf ("name=%s, signature=%s, generic=%s\n",
+ WRAP (names[i]), WRAP (signatures[i]), WRAP (generics[i]));
+ printf ("names %s\n", MATCH (solo_names[i], names[i]));
+ printf ("signatures %s\n", MATCH (solo_signatures[i], signatures[i]));
+ printf ("generic %s\n", "not yet");
+
+ env->Deallocate (reinterpret_cast (names[i]));
+ env->Deallocate (reinterpret_cast (solo_names[i]));
+ env->Deallocate (reinterpret_cast (signatures[i]));
+ env->Deallocate (reinterpret_cast (solo_signatures[i]));
+ env->Deallocate (reinterpret_cast (generics[i]));
+ env->Deallocate (reinterpret_cast (solo_generics[i]));
+ }
+}
Index: libjava.jvmti/getallthreads.h
===================================================================
--- libjava.jvmti/getallthreads.h (nonexistent)
+++ libjava.jvmti/getallthreads.h (revision 765)
@@ -0,0 +1,35 @@
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __getallthreads__
+#define __getallthreads__
+
+#pragma interface
+
+#include
+#include
+
+extern "Java"
+{
+ class getallthreads;
+}
+
+class getallthreads : public ::java::lang::Thread
+{
+public:
+ getallthreads ();
+ static void do_getallthreads_tests ();
+ virtual void run ();
+ virtual void natPlaceholder ();
+ virtual void natRunner ();
+ virtual void placeholder ();
+ virtual void runner ();
+ static void main (JArray< ::java::lang::String *> *);
+ static jint thread_num;
+ static ::java::util::ArrayList *threads;
+ jint __attribute__((aligned(__alignof__( ::java::lang::Thread )))) ex_frames;
+ jboolean done;
+
+ static ::java::lang::Class class$;
+};
+
+#endif /* __getallthreads__ */
Index: libjava.jvmti/geterrorname.java
===================================================================
--- libjava.jvmti/geterrorname.java (nonexistent)
+++ libjava.jvmti/geterrorname.java (revision 765)
@@ -0,0 +1,12 @@
+// Test JVMTI GetErrorName
+
+public class geterrorname
+{
+ public static native void do_errorname_tests ();
+
+ public static void main (String[] args)
+ {
+ System.out.println ("JVMTI GetErrorName tests");
+ do_errorname_tests ();
+ }
+}
Index: libjava.jvmti/natgetallthreads.cc
===================================================================
--- libjava.jvmti/natgetallthreads.cc (nonexistent)
+++ libjava.jvmti/natgetallthreads.cc (revision 765)
@@ -0,0 +1,55 @@
+#include
+
+#include
+#include
+#include
+
+#include "jvmti-int.h"
+#include "getallthreads.h"
+
+void
+getallthreads::natPlaceholder ()
+{
+ ex_frames--;
+
+ if (ex_frames > 0)
+ {
+ if ((getallthreads::thread_num % 2) == 0)
+ placeholder ();
+ else
+ natPlaceholder ();
+ }
+ else
+ natRunner ();
+}
+
+void
+getallthreads::natRunner ()
+{
+ done = true;
+ while (done)
+ yield ();
+}
+
+void
+getallthreads::do_getallthreads_tests ()
+{
+ jvmtiEnv *env;
+ JavaVM *vm = _Jv_GetJavaVM ();
+ vm->GetEnv (reinterpret_cast (&env), JVMTI_VERSION_1_0);
+
+ jint num_threads;
+ jthread *thread_arr;
+
+ jvmtiError jerr = env->GetAllThreads (&num_threads, &thread_arr);
+ if (jerr != JVMTI_ERROR_NONE)
+ {
+ printf ("Test Failed, JVMTI Error!\n");
+ return;
+ }
+ env->Deallocate (reinterpret_cast (thread_arr));
+
+ for (int i = 0; i < num_threads; i++)
+ printf ("Found thread %d\n", i+1 );
+}
+
Index: libjava.jvmti/events.out
===================================================================
--- libjava.jvmti/events.out (nonexistent)
+++ libjava.jvmti/events.out (revision 765)
@@ -0,0 +1,59 @@
+JVMTI event notification tests
+- enable tests -
+created JVMTI environment #0
+created JVMTI environment #1
+created JVMTI environment #2
+setting callbacks for envs
+RequestedEvents:
+enable VM_INIT for env0, env1, env2
+RequestedEvents: VMInit,
+enable VM_DEATH for env1,env2
+RequestedEvents: VMInit,VMDeath,
+enable THREAD_END for env2
+RequestedEvents: VMInit,VMDeath,ThreadEnd,
+disposing of env1
+RequestedEvents: VMInit,VMDeath,ThreadEnd,
+disposing of env0
+RequestedEvents: VMInit,VMDeath,ThreadEnd,
+disable VMInit in env2
+RequestedEvents: VMDeath,ThreadEnd,
+clear VMDeath callback in env2
+RequestedEvents: ThreadEnd,
+sending VMInit
+sending ThreadEnd
+ThreadEndCB jni_env=0x5678 thread=0x1234
+sending VMDeath
+disposing of env2
+RequestedEvents:
+- callback arg tests -
+RequestedEvents: VMInit,VMDeath,ThreadStart,ThreadEnd,ClassFileLoadHook,ClassLoad,ClassPrepare,VMStart,Exception,ExceptionCatch,SingleStep,FramePop,Breakpoint,FieldAccess,FieldModification,MethodEntry,MethodExit,NativeMethodBind,CompiledMethodLoad,CompiledMethodUnload,DynamicCodeGenerated,DataDumpRequest,MonitorWait,MonitorWaited,MonitorContendedEnter,MonitorContendedEntered,GarbageCollectionStart,GarbageCollectionFinish,ObjectFree,VMObjectAlloc,
+VMInitCB jni_env=0x1 thread=0x2
+VMDeathCB jni_env=0x1
+ThreadStartCB jni_env=0x1 thread=0x2
+ThreadEndCB jni_env=0x1 thread=0x2
+ClassFileLoadHookCB jni_env=0x1 class_being_redefined=0x2 loader=0x3 name=4 protection_domain=0x5 class_data_len=6 class_data=0x7 new_class_data_len=0x8 new_class_data=0x9
+ClassLoadCB jni_env=0x1 thread=0x2 klass=0x3
+ClassPrepareCB jni_env=0x1 thread=0x2 klass=0x3
+VMStartCB jni_env=0x1
+ExceptionCB jni_env=0x1 thread=0x2 method=0x3 location=0x4 exception=0x5 catch_method=0x6 catch_location=0x7
+ExceptionCatchCB jni_env=0x1 thread=0x2 method=0x3 location=0x4 exception=0x5
+SingleStepCB jni_env=0x1 thread=0x2 method=0x3 location=0x4
+FramePopCB jni_env=0x1 thread=0x2 method=0x3 was_pooped_by_exception=1
+BreakpointCB jni_env=0x1 thread=0x2 method=0x3 location=0x4
+FieldAccessCB jni_env=0x1 thread=0x2 method=0x3 location=0x4 field_klass=0x5 object=0x6 field=0x7
+FieldModificationCB jni_env=0x1 thread=0x2 method=0x3 location=0x4 field_klass=0x5 object=0x6 field=0x7 signature_type=8 new_value=0x9
+MethodEntryCB jni_env=0x1 thread=0x2 method=0x3
+MethodExitCB jni_env=0x1 thread=0x2 method=0x3 was_popped_by_exception=1 return_value=5
+NativeMethodBindCB jni_env=0x1 thread=0x2 method=0x3 address=0x4 new_address_ptr=0x5
+CompiledMethodLoadCB method=0x1 code_size=0x2 code_addr=0x3 map_length=4 map=0x5 compile_info=0x6
+CompiledMethodUnloadCB method=0x1 code_addr=0x2
+DynamicCodeGeneratedCB name=1 address=0x2 length=3
+DataDumpRequestCB
+MonitorWaitCB jni_env=0x1 thread=0x2 object=0x3 timeout=4
+MonitorWaitedCB jni_env=0x1 thread=0x2 object=0x3 timed_out=1
+MonitorContendedEnterCB jni_env=0x1 thread=0x2 object=0x3
+MonitorContendedEnteredCB jni_env=0x1 thread=0x2 object=0x3
+GarbageCollectionStartCB
+GarbageCollectionFinishCB
+ObjectFreeCB tag=1
+VMObjectAllocCB jni_env=0x1 thread=0x2 object=0x3 object_klass=0x4 size=5
Index: Makefile.in
===================================================================
--- Makefile.in (nonexistent)
+++ Makefile.in (revision 765)
@@ -0,0 +1,598 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = testsuite
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \
+ $(top_srcdir)/../config/acx.m4 \
+ $(top_srcdir)/../config/depstand.m4 \
+ $(top_srcdir)/../config/enable.m4 \
+ $(top_srcdir)/../config/gxx-include-dir.m4 \
+ $(top_srcdir)/../config/iconv.m4 \
+ $(top_srcdir)/../config/lcmessage.m4 \
+ $(top_srcdir)/../config/ld-symbolic.m4 \
+ $(top_srcdir)/../config/lead-dot.m4 \
+ $(top_srcdir)/../config/lib-ld.m4 \
+ $(top_srcdir)/../config/lib-link.m4 \
+ $(top_srcdir)/../config/lib-prefix.m4 \
+ $(top_srcdir)/../config/lthostflags.m4 \
+ $(top_srcdir)/../config/multi.m4 \
+ $(top_srcdir)/../config/no-executables.m4 \
+ $(top_srcdir)/../config/override.m4 \
+ $(top_srcdir)/../config/tls.m4 \
+ $(top_srcdir)/../config/unwind_ipinfo.m4 \
+ $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltgcc.m4 \
+ $(top_srcdir)/../ltoptions.m4 $(top_srcdir)/../ltsugar.m4 \
+ $(top_srcdir)/../ltversion.m4 $(top_srcdir)/../lt~obsolete.m4 \
+ $(top_srcdir)/mingwld.m4 $(top_srcdir)/pkg.m4 \
+ $(top_srcdir)/shlibpath.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+CONFIG_HEADER = $(top_builddir)/include/config.h \
+ $(top_builddir)/gcj/libgcj-config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DEJATOOL = $(PACKAGE)
+RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+ANTLR_JAR = @ANTLR_JAR@
+AR = @AR@
+AS = @AS@
+ATOMICSPEC = @ATOMICSPEC@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BACKTRACESPEC = @BACKTRACESPEC@
+BUILD_VERSION = @BUILD_VERSION@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECKREFSPEC = @CHECKREFSPEC@
+CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CPU = @CPU@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DIRLTDL = @DIRLTDL@
+DIVIDESPEC = @DIVIDESPEC@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+ECJ_BUILD_JAR = @ECJ_BUILD_JAR@
+ECJ_JAR = @ECJ_JAR@
+EGREP = @EGREP@
+EXCEPTIONSPEC = @EXCEPTIONSPEC@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GCC_FOR_ECJX = @GCC_FOR_ECJX@
+GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@
+GCDEPS = @GCDEPS@
+GCINCS = @GCINCS@
+GCJ = @GCJ@
+GCJDEPMODE = @GCJDEPMODE@
+GCJFLAGS = @GCJFLAGS@
+GCJH = @GCJH@
+GCJVERSION = @GCJVERSION@
+GCJ_BIN_DIR = @GCJ_BIN_DIR@
+GCJ_FOR_ECJX = @GCJ_FOR_ECJX@
+GCLIBS = @GCLIBS@
+GCSPEC = @GCSPEC@
+GCTESTSPEC = @GCTESTSPEC@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GREP = @GREP@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+HASH_SYNC_SPEC = @HASH_SYNC_SPEC@
+IEEESPEC = @IEEESPEC@
+INCLTDL = @INCLTDL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTERPRETER = @INTERPRETER@
+JAR = @JAR@
+JAVA_HOME = @JAVA_HOME@
+JAVA_VERSION = @JAVA_VERSION@
+JC1GCSPEC = @JC1GCSPEC@
+JRE_BIN_DIR = @JRE_BIN_DIR@
+JRE_DIR = @JRE_DIR@
+JRE_LIB_DIR = @JRE_LIB_DIR@
+JRE_LNK = @JRE_LNK@
+JVM_JAR_DIR = @JVM_JAR_DIR@
+JVM_JAR_ROOT_DIR = @JVM_JAR_ROOT_DIR@
+JVM_ROOT_DIR = @JVM_ROOT_DIR@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LDLIBICONV = @LDLIBICONV@
+LD_FINISH_STATIC_SPEC = @LD_FINISH_STATIC_SPEC@
+LD_START_STATIC_SPEC = @LD_START_STATIC_SPEC@
+LIBART_CFLAGS = @LIBART_CFLAGS@
+LIBART_LIBS = @LIBART_LIBS@
+LIBDIR = @LIBDIR@
+LIBFFI = @LIBFFI@
+LIBFFIINCS = @LIBFFIINCS@
+LIBGCJDEBUG = @LIBGCJDEBUG@
+LIBGCJTESTSPEC = @LIBGCJTESTSPEC@
+LIBGCJ_BC_SPEC = @LIBGCJ_BC_SPEC@
+LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@
+LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@
+LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
+LIBGCJ_LD_EXPORT_ALL = @LIBGCJ_LD_EXPORT_ALL@
+LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@
+LIBGCJ_LD_SYMBOLIC_FUNCTIONS = @LIBGCJ_LD_SYMBOLIC_FUNCTIONS@
+LIBGCJ_SPEC = @LIBGCJ_SPEC@
+LIBGCJ_SUBLIB_CORE_EXTRA_DEPS = @LIBGCJ_SUBLIB_CORE_EXTRA_DEPS@
+LIBGCJ_SUBLIB_LTFLAGS = @LIBGCJ_SUBLIB_LTFLAGS@
+LIBICONV = @LIBICONV@
+LIBLTDL = @LIBLTDL@
+LIBMATHSPEC = @LIBMATHSPEC@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBSTDCXXSPEC = @LIBSTDCXXSPEC@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKE = @MAKE@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OS = @OS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PLATFORM = @PLATFORM@
+RANLIB = @RANLIB@
+SDK_BIN_DIR = @SDK_BIN_DIR@
+SDK_INCLUDE_DIR = @SDK_INCLUDE_DIR@
+SDK_LIB_DIR = @SDK_LIB_DIR@
+SDK_LNK = @SDK_LNK@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SYSDEP_SOURCES = @SYSDEP_SOURCES@
+SYSTEMSPEC = @SYSTEMSPEC@
+SYS_ZLIBS = @SYS_ZLIBS@
+THREADCXXFLAGS = @THREADCXXFLAGS@
+THREADDEPS = @THREADDEPS@
+THREADINCS = @THREADINCS@
+THREADLDFLAGS = @THREADLDFLAGS@
+THREADLIBS = @THREADLIBS@
+THREADSPEC = @THREADSPEC@
+THREADSTARTFILESPEC = @THREADSTARTFILESPEC@
+TOOLKIT = @TOOLKIT@
+UNZIP = @UNZIP@
+VERSION = @VERSION@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+ZINCS = @ZINCS@
+ZIP = @ZIP@
+ZLIBS = @ZLIBS@
+ZLIBSPEC = @ZLIBSPEC@
+ZLIBTESTSPEC = @ZLIBTESTSPEC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_GCJ = @ac_ct_GCJ@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_libsubdir = @build_libsubdir@
+build_os = @build_os@
+build_subdir = @build_subdir@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+dbexecdir = @dbexecdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+extra_ldflags = @extra_ldflags@
+extra_ldflags_libjava = @extra_ldflags_libjava@
+gcc_suffix = @gcc_suffix@
+gcjsubdir = @gcjsubdir@
+gxx_include_dir = @gxx_include_dir@
+here = @here@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_exeext = @host_exeext@
+host_os = @host_os@
+host_subdir = @host_subdir@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+libstdcxx_incdir = @libstdcxx_incdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+lt_host_flags = @lt_host_flags@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+mkinstalldirs = @mkinstalldirs@
+multi_basedir = @multi_basedir@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+python_mod_dir = @python_mod_dir@
+python_mod_dir_expanded = @python_mod_dir_expanded@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+subdirs = @subdirs@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+
+# autoconf2.13's target_alias
+target_noncanonical = @target_noncanonical@
+target_os = @target_os@
+target_subdir = @target_subdir@
+target_vendor = @target_vendor@
+toolexecdir = @toolexecdir@
+toolexeclibdir = @toolexeclibdir@
+toolexecmainlibdir = @toolexecmainlibdir@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = foreign dejagnu
+
+# May be used by various substitution variables.
+gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
+
+# Setup the testing framework, if you have one
+EXPECT = `if [ -f $(top_builddir)/../expect/expect ] ; then \
+ echo $(top_builddir)/../expect/expect ; \
+ else echo expect ; fi`
+
+RUNTEST = "`if [ -f $(top_srcdir)/../dejagnu/runtest ] ; then \
+ echo $(top_srcdir)/../dejagnu/runtest ; \
+ else echo runtest; fi` $(AM_RUNTESTFLAGS)"
+
+AM_RUNTESTFLAGS = INTERPRETER=$(INTERPRETER)
+MYGCJH = gjavah
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign testsuite/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign testsuite/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+check-DEJAGNU: site.exp
+ srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \
+ EXPECT=$(EXPECT); export EXPECT; \
+ runtest=$(RUNTEST); \
+ if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
+ exit_status=0; l='$(DEJATOOL)'; for tool in $$l; do \
+ if $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) $(RUNTESTFLAGS); \
+ then :; else exit_status=1; fi; \
+ done; \
+ else echo "WARNING: could not find \`runtest'" 1>&2; :;\
+ fi; \
+ exit $$exit_status
+
+distclean-DEJAGNU:
+ -rm -f site.exp site.bak
+ -l='$(DEJATOOL)'; for tool in $$l; do \
+ rm -f $$tool.sum $$tool.log; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-DEJAGNU distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: all all-am check check-DEJAGNU check-am clean clean-generic \
+ clean-libtool distclean distclean-DEJAGNU distclean-generic \
+ distclean-libtool dvi dvi-am html html-am info info-am install \
+ install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ uninstall uninstall-am
+
+
+.PHONY: compile-tests
+
+# We need more things in site.exp, but automake completely controls the
+# creation of that file; there's no way to append to it without messing up
+# the dependency chains. So we overrule automake. This rule is exactly
+# what it would have generated, plus our own additions.
+site.exp: Makefile
+ @echo 'Making a new site.exp file...'
+ @echo '## these variables are automatically generated by make ##' >site.tmp
+ @echo '# Do not edit here. If you wish to override these values' >>site.tmp
+ @echo '# edit the last section' >>site.tmp
+ @echo 'set srcdir $(srcdir)' >>site.tmp
+ @echo "set objdir `pwd`" >>site.tmp
+ @echo 'set build_alias "$(build_alias)"' >>site.tmp
+ @echo 'set build_triplet $(build_triplet)' >>site.tmp
+ @echo 'set host_alias "$(host_alias)"' >>site.tmp
+ @echo 'set host_triplet $(host_triplet)' >>site.tmp
+ @echo 'set target_alias "$(target_alias)"' >>site.tmp
+ @echo 'set target_triplet $(target_triplet)' >>site.tmp
+ @echo 'set libiconv "$(LIBICONV)"' >>site.tmp
+ @echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp
+ @test ! -f site.exp || \
+ sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
+ @-rm -f site.bak
+ @test ! -f site.exp || mv site.exp site.bak
+ @mv site.tmp site.exp
+
+check-am: compile-tests
+
+compile-tests:
+@JAVA_MAINTAINER_MODE_TRUE@ for test in `cd $(srcdir) > /dev/null; \
+@JAVA_MAINTAINER_MODE_TRUE@ find libjava.cni libjava.jni libjava.jvmti libjava.lang \
+@JAVA_MAINTAINER_MODE_TRUE@ libjava.loader libjava.verify -name \*.java`; do \
+@JAVA_MAINTAINER_MODE_TRUE@ testjar=$(srcdir)/`echo $$test | sed -e 's/\.java$$/\.jar/'`; \
+@JAVA_MAINTAINER_MODE_TRUE@ testdep=; \
+@JAVA_MAINTAINER_MODE_TRUE@ genheader=; \
+@JAVA_MAINTAINER_MODE_TRUE@ case "$$test" in \
+@JAVA_MAINTAINER_MODE_TRUE@ libjava.loader/dummy.java) \
+@JAVA_MAINTAINER_MODE_TRUE@ testjar=$(srcdir)/libjava.loader/dummy.class;; \
+@JAVA_MAINTAINER_MODE_TRUE@ libjava.loader/MyLoader.java) \
+@JAVA_MAINTAINER_MODE_TRUE@ continue;; \
+@JAVA_MAINTAINER_MODE_TRUE@ libjava.loader/*.java) \
+@JAVA_MAINTAINER_MODE_TRUE@ testdep="libjava.loader/MyLoader.java";; \
+@JAVA_MAINTAINER_MODE_TRUE@ libjava.jni/register2.java) \
+@JAVA_MAINTAINER_MODE_TRUE@ ;; \
+@JAVA_MAINTAINER_MODE_TRUE@ libjava.jni/*.java|libjava.jvmti/interp/*.java) \
+@JAVA_MAINTAINER_MODE_TRUE@ genheader=-jni;; \
+@JAVA_MAINTAINER_MODE_TRUE@ libjava.jvmti/*.java|libjava.cni/*.java) \
+@JAVA_MAINTAINER_MODE_TRUE@ genheader=-cni;; \
+@JAVA_MAINTAINER_MODE_TRUE@ esac; \
+@JAVA_MAINTAINER_MODE_TRUE@ if test -f $$testjar; then \
+@JAVA_MAINTAINER_MODE_TRUE@ if ! test $(srcdir)/$$test -nt $$testjar; then \
+@JAVA_MAINTAINER_MODE_TRUE@ test -z "$$testdep" && continue; \
+@JAVA_MAINTAINER_MODE_TRUE@ test $(srcdir)/$$testdep -nt $$testjar || continue; \
+@JAVA_MAINTAINER_MODE_TRUE@ fi; \
+@JAVA_MAINTAINER_MODE_TRUE@ fi; \
+@JAVA_MAINTAINER_MODE_TRUE@ echo Compiling $$test; \
+@JAVA_MAINTAINER_MODE_TRUE@ testtmpdir=`echo $$test | sed -e 's,/,_,g'`T; \
+@JAVA_MAINTAINER_MODE_TRUE@ rm -rf $$testtmpdir; $(mkdir_p) $$testtmpdir; \
+@JAVA_MAINTAINER_MODE_TRUE@ if test -n "$$testdep"; then \
+@JAVA_MAINTAINER_MODE_TRUE@ $(GCJ) -C -g -w --encoding=UTF-8 -bootclasspath \
+@JAVA_MAINTAINER_MODE_TRUE@ $(top_builddir)/libgcj-$(gcc_version).jar::$$testtmpdir \
+@JAVA_MAINTAINER_MODE_TRUE@ -d $$testtmpdir $(srcdir)/$$testdep || exit; \
+@JAVA_MAINTAINER_MODE_TRUE@ fi; \
+@JAVA_MAINTAINER_MODE_TRUE@ $(GCJ) -C -g -w --encoding=UTF-8 -bootclasspath \
+@JAVA_MAINTAINER_MODE_TRUE@ $(top_builddir)/libgcj-$(gcc_version).jar:$$testtmpdir \
+@JAVA_MAINTAINER_MODE_TRUE@ -d $$testtmpdir $(srcdir)/$$test || exit; \
+@JAVA_MAINTAINER_MODE_TRUE@ case "$$test" in \
+@JAVA_MAINTAINER_MODE_TRUE@ libjava.loader/dummy.java) \
+@JAVA_MAINTAINER_MODE_TRUE@ cp $$testtmpdir/dummy.class $$testjar;; \
+@JAVA_MAINTAINER_MODE_TRUE@ *) \
+@JAVA_MAINTAINER_MODE_TRUE@ $(JAR) cf $$testjar \
+@JAVA_MAINTAINER_MODE_TRUE@ `ls $$testtmpdir/*.class \
+@JAVA_MAINTAINER_MODE_TRUE@ | sed -e 's,^,-C ,;s,/\([^/]*\.class\)$$, \1,'` || exit ;; \
+@JAVA_MAINTAINER_MODE_TRUE@ esac; \
+@JAVA_MAINTAINER_MODE_TRUE@ if test -n "$$genheader"; then \
+@JAVA_MAINTAINER_MODE_TRUE@ $(MYGCJH) $$genheader $$testtmpdir/*.class \
+@JAVA_MAINTAINER_MODE_TRUE@ -bootclasspath $(top_builddir)/libgcj-$(gcc_version).jar \
+@JAVA_MAINTAINER_MODE_TRUE@ -d $$testtmpdir/ || exit; \
+@JAVA_MAINTAINER_MODE_TRUE@ mv $$testtmpdir/*.h $(srcdir)/`dirname $$test`/ 2>/dev/null; \
+@JAVA_MAINTAINER_MODE_TRUE@ fi; \
+@JAVA_MAINTAINER_MODE_TRUE@ rm -rf $$testtmpdir; \
+@JAVA_MAINTAINER_MODE_TRUE@ done
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
Index: libjava.jar/simple.out
===================================================================
--- libjava.jar/simple.out (nonexistent)
+++ libjava.jar/simple.out (revision 765)
@@ -0,0 +1 @@
+hi
Index: libjava.jar/TestClosureGC.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: libjava.jar/TestClosureGC.jar
===================================================================
--- libjava.jar/TestClosureGC.jar (nonexistent)
+++ libjava.jar/TestClosureGC.jar (revision 765)
libjava.jar/TestClosureGC.jar
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: libjava.jar/simple.jar
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: libjava.jar/simple.jar
===================================================================
--- libjava.jar/simple.jar (nonexistent)
+++ libjava.jar/simple.jar (revision 765)
libjava.jar/simple.jar
Property changes :
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: libjava.jar/TestClosureGC.java
===================================================================
--- libjava.jar/TestClosureGC.java (nonexistent)
+++ libjava.jar/TestClosureGC.java (revision 765)
@@ -0,0 +1,116 @@
+/* Verify that libffi closures aren't deallocated too early.
+
+ Copyright (C) 2007 Free Software Foundation, Inc
+ Contributed by Alexandre Oliva
+
+ If libffi closures are released too early, we lose.
+ */
+
+import java.util.HashSet;
+
+public class TestClosureGC {
+ public static String objId (Object obj) {
+ return obj + "/"
+ + Integer.toHexString(obj.getClass().getClassLoader().hashCode());
+ }
+ public static class cld extends java.net.URLClassLoader {
+ static final Object obj = new cl0();
+ public cld () throws Exception {
+ super(new java.net.URL[] { });
+ /* System.out.println (objId (this) + " created"); */
+ }
+ public void finalize () {
+ /* System.out.println (objId (this) + " finalized"); */
+ }
+ public String toString () {
+ return this.getClass().getName() + "@"
+ + Integer.toHexString (hashCode ());
+ }
+ public Class loadClass (String name) throws ClassNotFoundException {
+ try {
+ java.io.InputStream IS = getSystemResourceAsStream
+ (name + ".class");
+ int maxsz = 1024, readsz = 0;
+ byte buf[] = new byte[maxsz];
+ for(;;) {
+ int readnow = IS.read (buf, readsz, maxsz - readsz);
+ if (readnow <= 0)
+ break;
+ readsz += readnow;
+ if (readsz == maxsz) {
+ byte newbuf[] = new byte[maxsz *= 2];
+ System.arraycopy (buf, 0, newbuf, 0, readsz);
+ buf = newbuf;
+ }
+ }
+ return defineClass (name, buf, 0, readsz);
+ } catch (Exception e) {
+ return super.loadClass (name);
+ }
+ }
+ }
+ public static class cl0 {
+ public cl0 () {
+ /* System.out.println (objId (this) + " created"); */
+ }
+ public void finalize () {
+ /* System.out.println (objId (this) + " finalized"); */
+ }
+ }
+ public static class cl1 {
+ final HashSet hs;
+ static final Object obj = new cl0();
+ public cl1 (final HashSet hs) {
+ this.hs = hs;
+ /* System.out.println (objId (this) + " created"); */
+ }
+ public void finalize () {
+ /* System.out.println (objId (this) + " finalized"); */
+ }
+ }
+ public static class cl2 {
+ final HashSet hs;
+ static final Object obj = new cl0();
+ public cl2 (final HashSet hs) {
+ this.hs = hs;
+ /* System.out.println (objId (this) + " created"); */
+ }
+ public void finalize () {
+ /* System.out.println (objId (this) + " finalized"); */
+ hs.add(this);
+ hs.add(new cl0());
+ }
+ }
+ static final HashSet hs = new HashSet();
+ static final Object obj = new cl0();
+ public static void main(String[] argv) throws Exception {
+ {
+ Class[] hscs = { HashSet.class };
+ Object[] hsos = { hs };
+ new cld().loadClass ("TestClosureGC$cl1").
+ getConstructor (hscs).newInstance (hsos);
+ new cld().loadClass ("TestClosureGC$cl2").
+ getConstructor (hscs).newInstance (hsos);
+ new cld().loadClass ("TestClosureGC$cl1").
+ getConstructor (hscs).newInstance (hsos);
+ new cld().loadClass ("TestClosureGC$cl1").
+ getConstructor (hscs).newInstance (hsos);
+ }
+ for (int i = 1; i <= 5; i++) {
+ /* System.out.println ("Will run GC and finalization " + i); */
+ System.gc ();
+ Thread.sleep (100);
+ System.runFinalization ();
+ Thread.sleep (100);
+ if (hs.isEmpty ())
+ continue;
+ java.util.Iterator it = hs.iterator ();
+ while (it.hasNext ()) {
+ Object obj = it.next();
+ /* System.out.println (objId (obj) + " in ht, removing"); */
+ it.remove ();
+ }
+ }
+ System.out.println ("ok");
+ }
+}
Index: libjava.jar/jar.exp
===================================================================
--- libjava.jar/jar.exp (nonexistent)
+++ libjava.jar/jar.exp (revision 765)
@@ -0,0 +1,68 @@
+# Tests for .jar files.
+
+# Compile a single .jar file to an executable.
+# Returns 0 on failure.
+proc gcj_jar_link {jarfile mainclass} {
+}
+
+proc gcj_jar_compile_one {jarfile mainclass} {
+ set base [file rootname [file tail $jarfile]]
+ set out [file rootname $jarfile].out
+
+ if {! [gcj_link $base $mainclass [list $jarfile]]} {
+ return
+ }
+
+ gcj_invoke $base $out {}
+}
+
+proc gcj_jar_interpret {jarfile} {
+ global INTERPRETER srcdir
+
+ set gij [libjava_find_gij]
+ set errname [dg-trim-dirname $srcdir $jarfile]
+ # libjava_find_gij will return "" if it couldn't find the
+ # program; in this case we want to skip the test.
+ if {$INTERPRETER != "yes" || $gij == ""} {
+ untested "$errname execution - gij test"
+ untested "$errname output - gij test"
+ return
+ }
+
+ set opts(_) {}
+ set out [file rootname $jarfile].out
+ libjava_invoke $errname "gij test" opts $gij {} $out \
+ "" -jar $jarfile
+}
+
+proc gcj_jar_run {} {
+ global srcdir subdir env
+ foreach jar [lsort [glob -nocomplain ${srcdir}/${subdir}/*.jar]] {
+ set xff [file rootname $jar].xfail
+ set main {}
+ set interp 1
+ foreach item [libjava_read_xfail $xff] {
+ if {[string match main=* $item]} {
+ set main [string range $item 5 end]
+ break
+ } elseif {$item == "no-interpret"} {
+ set interp 0
+ }
+ }
+
+ gcj_jar_compile_one $jar $main
+ if {$interp} {
+ gcj_jar_interpret $jar
+ }
+ }
+ # When we succeed we remove all our clutter.
+ eval gcj_cleanup [glob -nocomplain -- ${main}.*] [list $main ]
+
+ # Reset CLASSPATH that we do not look into testsuite/libjava.jar for *.jar
+ # files which do not belong to the libgcj itself.
+ set env(CLASSPATH) ""
+
+ return 1
+}
+
+gcj_jar_run
Index: libjava.jar/TestClosureGC.xfail
===================================================================
--- libjava.jar/TestClosureGC.xfail (nonexistent)
+++ libjava.jar/TestClosureGC.xfail (revision 765)
@@ -0,0 +1 @@
+main=TestClosureGC
Index: libjava.jar/simple.java
===================================================================
--- libjava.jar/simple.java (nonexistent)
+++ libjava.jar/simple.java (revision 765)
@@ -0,0 +1,7 @@
+public class simple
+{
+ public static void main(String[] args)
+ {
+ System.out.println("hi");
+ }
+}
Index: libjava.jar/simple.xfail
===================================================================
--- libjava.jar/simple.xfail (nonexistent)
+++ libjava.jar/simple.xfail (revision 765)
@@ -0,0 +1 @@
+main=simple
Index: libjava.jar/TestClosureGC.out
===================================================================
--- libjava.jar/TestClosureGC.out (nonexistent)
+++ libjava.jar/TestClosureGC.out (revision 765)
@@ -0,0 +1 @@
+ok
Index: ChangeLog-old
===================================================================
--- ChangeLog-old (nonexistent)
+++ ChangeLog-old (revision 765)
@@ -0,0 +1,2153 @@
+2004-06-08 Andrew Pinski
+
+ PR java/15769
+ * libjava.compile/PR15769.java: New test.
+
+2004-01-12 Andreas Tobler
+
+ * lib/libjava.exp: Add LD_LIBRARY_PATH_32/64 to get proper
+ path setting for Ssolaris 32/64-bit testing.
+ Reorganize LD_LIBRARY_PATH setting.
+
+2004-01-09 Andrew Haley
+
+ * lib/libjava.exp (bytecompile_file): Log compile command.
+
+2004-01-07 Andreas Tobler
+
+ PR libgcj/13011:
+ * libjava.jar/simple.jar: Add a working MANIFEST.MF.
+
+2003-12-03 Ralph Loader
+
+ PR java/12374:
+ * libjava.compile/PR12374.java: New file.
+
+2003-12-01 Jeff Sturm
+
+ PR optimization/13024
+ * libjava.compile/PR13024.java: New file.
+
+ PR java/13237
+ * libjava.compile/PR13237.java: New file.
+
+2003-11-18 Andreas Tobler
+
+ * libjava.jar/jar.exp: Cleanup files and reset CLASSPATH.
+
+2003-11-17 Jeff Sturm
+
+ * libjava.compile/PR12857.java: New test case.
+
+2003-11-14 Tom Tromey
+
+ * libjava.jar/simple.jar: Replaced.
+
+2003-11-13 Tom Fitzsimmons
+
+ * libjava.jni/jniutf.c: New file.
+ * libjava.jni/jniutf.java: New file.
+ * libjava.jni/jniutf.out: New file.
+
+2003-11-11 Tom Tromey
+
+ For PR java/12915:
+ * libjava.lang/PR12915.java: New file.
+ * libjava.lang/PR12915.out: New file.
+
+ * libjava.jacks/jacks.exp (gcj_jacks_write): Enable "assert"
+ constraint.
+ * libjava.jacks/jacks.xfail: Added new xfails.
+
+2003-11-10 Tom Tromey
+
+ For PR java/12996:
+ * libjava.jar/simple.jar: New file.
+ * libjava.jar/simple.xfail: New file.
+ * libjava.jar/simple.out: New file.
+ * libjava.jar/simple.java: New file.
+ * libjava.jar/jar.exp: New file.
+
+2003-11-08 Tom Tromey
+
+ * libjava.jacks/jacks.xfail: Updated.
+
+2003-11-03 Jeff Sturm
+
+ PR java/12866:
+ * libjava.compile/InnerExcept.java: New File.
+
+2003-10-22 Tom Tromey
+
+ PR libgcj/12416:
+ * libjava.lang/PR12416.out: New file.
+ * libjava.lang/PR12416.java: New file.
+
+ PR libgcj/12656:
+ * libjava.lang/PR12656.java: New file.
+ * libjava.lang/PR12656.out: New file.
+
+2003-10-21 Tom Tromey
+
+ * lib/libjava.exp (find_javac): Use -Wno-unreachable-bytecode.
+
+2003-10-08 Tom Tromey
+
+ * libjava.mauve/xfails: Removed some tests.
+
+2003-09-27 Tom Tromey
+
+ * libjava.jacks/jacks.xfail: Updated for new passes.
+
+2003-09-21 Ralph Loader
+
+ PR java/12350
+ * libjava.lang/PR12350.java: New file.
+ * libjava.lang/PR12350.out: New file.
+
+2003-09-17 Ranjit Mathew
+
+ PR java/9577
+ * libjava.cni/PR9577.java: New file.
+ * libjava.cni/natPR9577.cc: New file.
+ * libjava.cni/PR9577.out: New file.
+
+2003-09-04 Jeff Sturm
+
+ * libjava.compile/compile.exp: Test with -O3 rather than -O.
+ * libjava.lang/lang.exp: Likewise.
+
+2003-09-04 Jeff Sturm
+
+ * lib/libjava.exp (libjava_arguments): Remove unneeded variables.
+ (test_libjava_from_source): Likewise.
+ (test_libjava_from_javac): Likewise.
+
+2003-08-23 Andreas Tobler
+
+ PR libgcj/8823
+ * libjava.lang/pr8823.xfail: Removed.
+
+2003-08-19 Jeff Sturm
+
+ * lib/libjava.exp (libjava_arguments): Add $libjava to the list of
+ libraries.
+
+2003-08-18 Tom Tromey
+
+ PR libgcj/11951:
+ * libjava.jni/pr11951.c: New file.
+ * libjava.jni/pr11951.out: New file.
+ * libjava.jni/pr11951.java: New file.
+
+2003-08-12 Tom Tromey
+
+ * libjava.jacks/jacks.xfail: Updated to account for new passes.
+ * libjava.compile/abstr.xfail: Now can compile from bytecode.
+ * libjava.compile/PR5641.xfail: Now can compile from bytecode.
+
+ * libjava.mauve/mauve.exp (test_mauve_sim): Don't find
+ DejaGNUTestHarness in gnu/testlet.
+ (test_mauve): Use correct object extension.
+
+2003-08-12 Tom Tromey
+
+ * lib/libjava.exp (libjava_find_lib): Search for .so file first.
+ (libjava_arguments): Don't add libraries to link line explictly.
+
+2003-08-05 Tom Tromey
+
+ For PR java/11600:
+ * libjava.compile/PR11600.xfail: New file.
+ * libjava.compile/PR11600.java: New file.
+
+2003-08-04 Tom Tromey
+
+ * libjava.jacks/jacks.exp (gcj_jacks_run): Just ignore errors
+ from jacks.
+
+2003-07-24 Tom Tromey
+
+ For PR libgcj/7482:
+ * libjava.lang/PR7482.java: New file.
+ * libjava.lang/PR7482.out: New file.
+
+2003-07-20 Tom Tromey
+
+ * libjava.mauve/mauve.exp (mauve_find_harness_files): New proc.
+ (test_mauve): Use it.
+ (test_mauve_sim): Likewise.
+
+2003-07-19 Tom Tromey
+
+ * libjava.verify/verify.exp (gcj_verify_list_tests): Only change
+ directory if new directory exists.
+
+2003-07-13 Tom Tromey
+
+ * libjava.verify/verify.exp: Fixed variable init.
+
+2003-07-10 Tom Tromey
+
+ * libjava.verify/verify.exp: New file.
+ * libjava.verify/README.verify: New file.
+
+2003-07-09 Jeff Sturm
+
+ * libjava.lang/SyncTest.java (run): Cache .class value.
+
+2003-06-08 Roger Sayle
+
+ * libjava.lang/MathBuiltin.java: New test case.
+ * libjava.lang/MathBuiltin.out: New file.
+
+2003-06-05 Mark Wielaard
+
+ * libjava.mauve/mauve.exp (test_mauve): Add -wno-deprecated to GCJ.
+
+ PR libgcj/6181:
+ * libjava.mauve/xfails: Remove getBeanInfo() failures.
+
+ PR libgcj/6293:
+ * libjava.mauve/xfails: Remove PipedStream.close() failure.
+
+2003-05-31 Roger Sayle
+
+ * libjava.lang/Overflow.java: New test.
+ * libjava.lang/Overflow.out: New file.
+
+2003-05-06 Tom Tromey
+
+ * libjava.lang/verify.java: New file.
+ * libjava.lang/verify.out: New file.
+
+2003-05-01 Tom Tromey
+
+ PR java/10459:
+ * libjava.compile/pr10459_2.java: New file.
+ * libjava.compile/pr10459.java: New file.
+
+2003-04-30 Tom Tromey
+
+ PR libgcj/10582:
+ * libjava.lang/assign.java: New file.
+ * libjava.lang/assign.out: New file.
+
+2003-04-16 Mark Mitchell
+
+ PR middle-end/8866
+ * libjava.lang/PR8866.java: New test.
+
+2003-04-16 Andrew Haley
+
+ * libjava.lang/Throw_2.java (main): Make a successful test produce
+ some output.
+
+2003-03-22 Andreas Tobler
+
+ * libjava.jni/jni.exp: Add compilation/link fix dor darwin dylibs.
+
+2003-03-22 Tom Tromey
+
+ * lib/libjava.exp (gcj_invoke): Moved...
+ * libjava.jni/jni.exp: ...from here.
+
+ * libjava.cni/shortfield.out: New file.
+ * libjava.cni/shortfield.java: New file.
+ * libjava.cni/natshortfield.cc: New file.
+ * libjava.cni/natlongfield.cc: New file.
+ * libjava.cni/longfield.out: New file.
+ * libjava.cni/longfield.java: New file.
+
+ * libjava.cni/cni.exp: New file.
+
+2003-03-11 Tom Tromey
+
+ * libjava.lang/initfield.java: New file.
+ * libjava.lang/initfield.out: New file.
+
+2003-03-08 Tom Tromey
+
+ * libjava.lang/initfield.java: New file.
+ * libjava.lang/initfield.out: New file.
+
+2003-03-10 Tom Tromey
+
+ * libjava.jacks/jacks.xfail: Updated to reflect reality.
+
+2003-03-02 Mark Wielaard
+
+ * libjava.mauve/xfails: Remove all AcuniaPropertiesTest failures
+
+2003-02-23 Tom Tromey
+
+ * libjava.jacks/jacks.xfail: Most 4.7.10 tests pass now.
+
+2003-02-16 Jeff Sturm
+
+ * libjava.lang/CompareNaN.java: New test.
+ * libjava.lang/CompareNaN.out: New test.
+
+2003-02-16 Mark Wielaard
+
+ * libjava.mauve/xfails: Add Class.reflect2 and String.getBytes FAILs.
+
+2003-02-15 Mark Wielaard
+
+ * lib/libjava.exp (test_libjava_from_javac): Use regsub not string map.
+ * libjava.mauve/mauve.exp (mauve_compute_uses): Likewise.
+ (test_mauve): Likewise.
+
+2003-02-14 Mark Wielaard
+
+ * lib/libjava.exp (test_libjava_from_javac): Don't create .o files
+ containing $ characters and always quote class files with "'"s.
+
+2003-02-14 Mark Wielaard
+
+ * libjava.mauve/mauve.exp (mauve_compute_uses): Add inner class
+ object files by changing all occurances of $ to ^.
+ (test_mauve): Replace ^ with $ for class file names and quote
+ them with "'"s.
+
+2003-02-13 Tom Tromey
+
+ * libjava.mauve/xfails: Added entries for an unimplemented Class
+ method.
+
+2003-02-07 Mark Wielaard
+
+ * libjava.mauve/xfails: Add new entries for
+ gnu.testlet.java.text.CollationElementIterator.jdk11
+
+2003-02-03 Ulrich Weigand
+
+ * libjava.jacks/jacks.exp (gcj_jacks_write): Set LD_LIBRARY_PATH
+ to find libgcc_s. Set JAVA_CLASSPATH to find libgcj.jar.
+
+2003-01-31 Mark Wielaard
+
+ * lib/libjava.exp (libjava_prune_warnings): Remove all unreachable
+ bytecode warnings.
+
+2003-01-28 Tom Tromey
+
+ * libjava.loader/TestEarlyGC.java: Added comment explaining
+ bytecode.
+
+ * libjava.jacks/jacks.xfail: More lexer tests now pass.
+
+2003-01-27 Tom Tromey
+
+ * libjava.compile/consthrow.java: New file.
+ * libjava.compile/consthrow.xfail: New file.
+
+2003-01-27 Kaveh R. Ghazi
+
+ * libjava.lang/pr8823.xfail: New file, add "xfail-byte".
+
+2003-01-24 Ranjit Mathew
+
+ * libjava.jni/calls.c (Java_calls_docall): Define with
+ JNIEXPORT and JNICALL method attributes.
+ * libjava.jni/field.c (Java_field_fetch): Likewise.
+ * libjava.jni/final_method.c (Java_final_1method_meth): Likewise.
+ * libjava.jni/findclass.c (Java_findclass_doit): Likewise.
+ * libjava.jni/invoke.c (Java_invoke_val): Likewise.
+ * libjava.jni/martin.c (Java_martin_myNative): Likewise.
+ * libjava.jni/noclass.c (Java_noclass_find_1it): Likewise.
+ * libjava.jni/overload.c (Java_overload_over__I): Likewise.
+ (Java_overload_over__II): Likewise.
+ * libjava.jni/register.c (JNI_OnLoad): Likewise.
+ * libjava.jni/simple_int.c (Java_simple_1int_nat): Likewise.
+ * libjava.jni/throwit.c (Java_throwit_throwit): Likewise.
+ * libjava.jni/virtual.c (Java_virtual_equals): Likewise.
+
+2003-01-21 Tom Tromey
+
+ * libjava.jacks/jacks.xfail: All 8.4.3 tests and 9.4-modifier-10
+ now pass.
+
+2003-01-12 Tom Tromey
+
+ Fix for PR libgcj/9139:
+ * lib/libjava.exp (find_javac): Put value of libgcj_jar into
+ return value when gcj is used.
+ * libjava.mauve/mauve.exp (test_mauve): Use libgcj_jar global.
+
+2003-01-03 Tom Tromey
+
+ * libjava.compile/pr8712.java: New file, for PR java/8712.
+
+2003-01-01 Tom Tromey
+
+ * libjava.compile/pr8955.java: New test, for PR java/8955.
+
+2002-12-19 Tom Tromey
+
+ * libjava.jacks/jacks.xfail: Updated.
+
+2002-12-18 Tom Tromey
+
+ * libjava.lang/pr8945.java: New file.
+ * libjava.lang/pr8945.out: New file.
+
+2002-12-12 Tom Tromey
+
+ * libjava.loader/loader.exp (gcj_loader_test_one): Use
+ libjava_prune_warnings.
+ (gcj_loader_run): Likewise.
+ * libjava.mauve/mauve.exp (test_mauve): Use
+ libjava_prune_warnings.
+ (test_mauve_sim): Likewise.
+ * libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Use
+ libjava_prune_warnings.
+ (gcj_jni_build_header): Likewise.
+ * lib/libjava.exp (libjava_prune_warnings): New proc.
+ (gcj_link): Use it.
+ (test_libjava_from_source): Likewise.
+ (test_libjava_from_javac): Likewise.
+
+2002-12-08 Tom Tromey
+
+ Test for PR libgcj/8823:
+ * libjava.lang/pr8823.java: New file.
+ * libjava.lang/pr8823.out: New file.
+
+2002-12-05 Tom Tromey
+
+ * libjava.lang/override.java: New file.
+ * libjava.lang/override.out: New file.
+
+2002-12-01 Tom Tromey
+
+ * libjava.jacks/jacks.exp (gcj_jacks_setup_xfail): New function.
+ (gcj_jacks_parse): Use it; set up xfails.
+ * libjava.jacks/jacks.xfail: New file.
+
+2002-12-01 Mark Wielaard
+
+ * libjava.mauve/xfails: Remove Inspector FAILs that now PASS.
+
+2002-11-21 Tom Tromey
+
+ For PR java/8676:
+ * libjava.lang/pr8676.java: New file.
+ * libjava.lang/pr8676.out: New file.
+
+2002-11-21 Ulrich Weigand
+
+ * libjava.loader/loader.exp (gcj_loader_test_one): Fix typo in
+ 'type' argument to libjava_tcompile.
+ (gcj_loader_run): Use libjava_tcompile instead of running
+ GCJ_UNDER_TEST directly.
+
+2002-11-05 Tom Tromey
+
+ * libjava.jacks/jacks.exp: New file.
+
+2002-11-04 Tom Tromey
+
+ * libjava.compile/pr7912.java: New file.
+
+2002-11-04 Andrew Haley
+
+ * libjava.lang/utilTest.java: New.
+ * libjava.lang/utilTest.out: New.
+
+2002-11-04 Anthony Green
+
+ * libjava.loader/MyLoader.java: New constructor.
+ * libjava.loader/TestParent.java: New file.
+ * libjava.loader/TestParent.out: New file.
+
+2002-11-04 Anthony Green
+
+ * libjava.loader/TestEarlyGC.java,
+ libjava.loader/TestEarlyGC.out: New files (from
+ Jeff Sturm).
+
+2002-11-04 Anthony Green
+
+ * libjava.loader/dummy.java, libjava.loader/loader.exp,
+ libjava.loader/MyLoader.java, libjava.loader/TestLeak.java,
+ libjava.loader/TestLeak.out, libjava.loader/TestMultiple.java,
+ libjava.loader/TestMultiple.out: New files.
+
+2002-11-02 Tom Tromey
+
+ * libjava.lang/initexc.java (fail): Static initializers must be
+ able to complete normally. From Eric Blake.
+
+ * libjava.lang/initexc.java: New file.
+ * libjava.lang/initexc.out: New file.
+
+2002-11-01 Tom Tromey
+
+ For PR java/8415:
+ * libjava.lang/pr8415.java: New file.
+ * libjava.lang/pr8415.out: New file.
+
+ * libjava.mauve/mauve.exp (find_mauve_sources): New proc.
+ (test_mauve): Use it.
+ (test_mauve_sim): Likewise.
+
+2002-10-24 Tom Tromey
+
+ * libjava.lang/Primes.java: Removed.
+ * libjava.lang/Primes.out: Removed.
+
+2002-10-23 Tom Tromey
+
+ For PR java/6388:
+ * libjava.lang/pr6388.java: New file.
+ * libjava.lang/pr6388.out: New file.
+
+2002-10-15 Andrew Haley
+
+ * libjava.lang/EvaluationOrder.java (EvaluationOrder): New.
+ * libjava.lang/EvaluationOrder.out (EvaluationOrder): New.
+
+2002-10-14 Andrew Haley
+
+ * libjava.lang/StaticConstructor.java: New.
+ * libjava.lang/StaticConstructor.out: New.
+
+2002-10-13 Mark Wielaard
+
+ * libjava.mauve/xfails: Remove tests that now XPASS.
+
+2002-10-03 Andrew Haley
+
+ * libjava.lang/Array_3.java (baz): New.
+ (main): Call baz.
+
+2002-09-29 Anthony Green
+
+ * libjava.lang/TestProxy.java: New file.
+ * libjava.lang/TestProxy.out: Ditto.
+
+2002-09-29 Anthony Green
+
+ * libjava.lang/utf8concat.java: New file.
+ * libjava.lang/utf8concat.out: Ditto.
+
+2002-08-26 Tom Tromey
+
+ * libjava.compile/narrow_case.java: New file.
+
+2002-08-25 Adam Megacz
+
+ * lib/libjava.exp: don't apply -no-install when platform is mingw.
+
+2002-08-16 H.J. Lu
+
+ * lib/libjava.exp (gcc_version): Removed.
+ (libgcj_jar): New.
+ (libjava_init): Set libgcj_jar with tcl glob.
+ (libjava_arguments): Use libgcj_jar.
+
+2002-07-22 Tom Tromey
+
+ * libjava.compile/zeroexp.java: New file.
+
+2002-07-18 Rainer Orth
+
+ * libjava.compile/compile.exp: Sort sources.
+ * libjava.jni/jni.exp (gcj_jni_run): Likewise.
+ * libjava.lang/lang.exp: Likewise.
+
+2002-07-02 Andrew Haley
+
+ * libjava.lang/inline.java: New file.
+ * libjava.lang/inline.out: Likewise.
+
+ * libjava.lang/Array_3.java: Add another case.
+
+2002-06-23 Tom Tromey
+
+ * Makefile.in: Rebuilt.
+ * Makefile.am (RUNTEST): Added AM_RUNTESTFLAGS.
+ (AM_RUNTESTFLAGS): New variable.
+ (RUNTESTFLAGS): Don't define.
+ * lib/libjava.exp (libjava_invoke): New proc.
+ (test_libjava_from_source): Use it.
+ (test_libjava_from_javac): Likewise.
+ (libjava_find_gij): New proc.
+
+2002-06-12 Tom Tromey
+
+ * lib/libjava.exp (test_libjava): Fixed typo.
+ * libjava.compile/PR6865.xfail: New file.
+
+2002-06-11 Tom Tromey
+
+ * libjava.compile/PR6865.java: New file. For PR java/6865.
+
+ * libjava.lang/PR6520.java: Fixed typo.
+
+2002-06-10 Tom Tromey
+
+ * libjava.lang/PR6520.java: New file. For PR java/6520.
+
+2002-06-04 Tom Tromey
+
+ * libjava.compile/T20020604.java: New file.
+
+ For PR libgcj/6389:
+ * libjava.mauve/xfails: Now passes System.getProperty test.
+
+ For PR java/1343 and PR java/6336:
+ * libjava.compile/PR1343.java: New file.
+
+ For PR java/5913:
+ * libjava.compile/PR5913.xfail: Removed.
+
+2002-05-29 Bryce McKinlay
+
+ * libjava.compile/T20020529.java: New file.
+
+2002-05-27 Bryce McKinlay
+
+ * libjava.lang/PR6820.java: New file.
+ * libjava.lang/PR6820.out: New file.
+
+2002-05-23 Bryce McKinlay
+
+ * libjava.lang/PR6729.java: New file.
+ * libjava.lang/PR6729.out: New file.
+
+2002-05-04 Mark Wielaard
+
+ For PR java/6519:
+ * libjava.lang/emptystring.java: New.
+ * libjava.lang/emptystring.out: New.
+
+2002-04-21 Mark Wielaard
+
+ * libjava.mauve/xfail: Expect failures for PR java/6391 and
+ libgcj/6389.
+
+2002-04-16 Mark Wielaard
+
+ * libjava.lang/negzero.java: New.
+ * libjava.lang/negzero.out: New.
+
+2002-04-14 Mark Wielaard
+
+ * libjava.mauve/xfails: Expect failures for PR libgcj/6302 and
+ libgcj/6298.
+
+2002-04-14 Mark Wielaard
+
+ * libjava.mauve/xfails: Expect failures for PR libgcj/6293,
+ libgcj/6295, libgcj/6296 and libgcj/6297.
+
+2002-04-12 Anthony Green
+
+ * lib/libjava.exp: Use libgcj-VERSION.jar, not libgcj.jar.
+
+2002-04-12 Loren J. Rittle
+
+ * libjava.lang/SyncGlobal.java, libjava.lang/SyncGlobal.out:
+ New test case.
+
+2002-04-09 Bryce McKinlay
+
+ * libjava.lang/PR6204.java, libjava.lang/PR6204.out: New test case.
+ * libjava.lang/PR6085.java, libjava.lang/PR6085.out: Likewise.
+
+2002-04-07 Mark Wielaard
+
+ * libjava.mauve/xfails: Add CASE_INSENSITIVE_ORDER, result was
+ unspecified and test should be updated to match latest spec.
+ Add AcuniaPropertiesTest, known bug #6219. Add test_getClassLoader,
+ what we do seems to be not really right or wrong.
+
+2002-04-06 Mark Wielaard
+
+ * libjava.mauve/mauve.exp: Use libgcj.jar not libgcj.zip.
+ * libjava.mauve/xfails: add Character.classify12 (number 1),
+ Character.getType (number 11), Character.getType (number 20) and
+ Character.getType (number 22). We implement 1.4 Character.
+
+2002-03-28 Andrew Haley
+
+ * libjava.lang/Throw_2.java: New.
+ * libjava.lang/Throw_2.out: New.
+
+2002-03-27 Anthony Green
+
+ * libjava.lang/InvokeReturn.java: Modify test for targets
+ which do not yet support reflection.
+
+2002-03-27 Anthony Green
+
+ * libjava.jni/jni.exp (gcj_jni_run): Fix cross build test.
+
+2002-03-27 Anthony Green
+
+ * lib/libjava.exp: Add the wrapper link options only when we're
+ linking.
+
+2002-03-26 Tom Tromey
+
+ * libjava.mauve/mauve.exp (test_mauve): Use correct stderr
+ redirection code.
+
+2002-03-22 Eric Blake
+
+ For PR java/6026:
+ * libjava.compile/PR6026.java: New file.
+
+2002-03-21 Andrew Haley
+
+ * libjava.lang/Thread_Interrupt.java (Looper.calibrate): New.
+ (yields): New.
+
+2002-03-18 Tom Tromey
+
+ * libjava.jni/jni.exp (gcj_jni_test_one): Find libstdc++ in build
+ tree.
+ (gcj_invoke): Added ld_library_additions argument.
+
+2002-03-17 Tom Tromey
+
+ * libjava.jni/jni.exp (gcj_jni_build_header): Use local_exec, not
+ target_compile. Fixes PR other/5874.
+
+2002-03-15 Eric Blake
+
+ For PR java/5902:
+ * libjava.compile/PR5902.java: Does not need to execute.
+ For PR java/5913:
+ * libjava.compile/PR5913.java: Ditto.
+
+2002-03-12 Tom Tromey
+
+ Test for PR java/5848:
+ * libjava.compile/PR5848.xfail: New file.
+ * libjava.compile/PR5848.java: New file.
+
+2002-03-12 Eric Blake
+
+ * libjava.compile/PR5913.java: Expand test.
+
+2002-03-11 Eric Blake
+
+ * libjava.compile/PR5902.java: New file.
+ * libjava.compile/PR5913.java: New file.
+ * libjava.compile/PR5913.xfail: New file.
+
+2002-02-23 Jeff Sturm
+
+ * libjava.lang/InvokeReturn.java: New file.
+ * libjava.lang/InvokeReturn.out: New file.
+
+2002-02-20 Bryce McKinlay
+
+ * lib/libjava.exp: Add "xfail-byte-output" and "xfail-source-output".
+ Don't display expected and actual output for a failed output test.
+
+ * libjava.lang/ArrayStore.java: New file.
+ * libjava.lang/ArrayStore.out: New file.
+ * libjava.lang/ArrayStore.xfail: New file. xfail-byte-output.
+ * libjava.lang/ArrayStore2.java: New file.
+ * libjava.lang/ArrayStore2.out: New file.
+ * libjava.lang/ArrayStore2.xfail: New file. xfail-source-output.
+
+ * libjava.lang/stringconst.xfail: xfail-output -> xfail-source-output.
+
+2002-02-18 Bryce McKinlay
+
+ * libjava.lang/err7.xfail: Removed.
+ * libjava.lang/err8.xfail: Removed.
+
+ * libjava.lang/ArrayStore.java: New file.
+ * libjava.lang/ArrayStore.out: New file.
+
+2002-02-10 Tom Tromey
+
+ For PR java/5641:
+ * libjava.compile/PR5641.xfail: New file.
+ * libjava.compile/PR5641.java: New file.
+
+2002-02-10 Rainer Orth
+
+ * lib/libjava.exp (libjava_find_lib): Remove duplicate .la files.
+
+2002-01-05 H.J. Lu
+
+ * libjava.jni/jni.exp: Add -I.. for generated header.
+
+2001-12-20 Tom Tromey
+
+ For PR java/4766:
+ * libjava.compile/PR4766.java: New file.
+
+2001-12-20 Andrew Haley
+
+ * libjava.lang/FileHandleGcTest.out: New file.
+ * libjava.lang/FileHandleGcTest.java: New file.
+ * libjava.lang/Array_3.out: New file.
+ * libjava.lang/Array_3.java: New file.
+
+2001-12-18 Tom Tromey
+
+ For PR java/3417:
+ * libjava.compile/PR3417.xfail: New file.
+ * libjava.compile/PR3417.java: New file.
+
+2001-12-17 Tom Tromey
+
+ * libjava.lang/PR3731.xfail: Removed.
+
+ Inspired by PR java/5057:
+ * libjava.lang/PR5057_2.java: New file.
+ * libjava.lang/PR5057_2.out: New file.
+
+ For PR java/5057:
+ * libjava.lang/PR5057.out: New file.
+ * libjava.lang/PR5057.java: New file.
+
+2001-12-13 Tom Tromey
+
+ For PR libgcj/5103:
+ * libjava.jni/cxxtest.out: New file.
+ * libjava.jni/cxxtest.cc: New file.
+ * libjava.jni/cxxtest.java: New file.
+ * libjava.jni/jni.exp (gcj_jni_test_one): If there is no .c file,
+ assume there is a .cc file.
+
+2001-12-09 Bryce McKinlay
+
+ * libjava.lang/PR3731.out: Adjust output to reflect that "instanceof"
+ shouldn't trigger class initialization.
+
+2001-12-06 Tom Tromey
+
+ * libjava.compile/BlankFinal.java: Removed; incorrect test.
+
+2001-11-02 Bryce McKinlay
+
+ * libjava.lang/TLtest.xfail: New file. Needs threads.
+
+2001-10-04 Alexandre Petit-Bianco
+
+ * libjava.lang/PR3096.java: New file.
+ * libjava.lang/PR3096.out: Likewise.
+
+2001-09-27 Alexandre Petit-Bianco
+
+ * libjava.compile/final_initialization_in_ctor.java: New file
+
+2001-08-28 Alexandre Petit-Bianco
+
+ * libjava.compile/final_assignment_check.java: New file.
+ * libjava.compile/final_assignment_check.xfail: Likewise.
+ * libjava.compile/final_local_switch.java: Likewise.
+
+2001-08-24 Alexandre Petit-Bianco
+
+ * libjava.lang/KeepInline.out: Fixed content.
+
+2001-08-17 Alexandre Petit-Bianco
+
+ * libjava.compile/XercesBug.java: New file.
+
+2001-08-12 Alexandre Petit-Bianco
+
+ * libjava.lang/Matrix4f.java: New file.
+ * libjava.lang/Matrix4f.out: New file.
+
+2001-08-03 Richard Henderson
+
+ * libjava.jni/calls.c (Java_calls_docall): Fix typo.
+
+2001-08-01 Jeff Sturm
+
+ * libjava.lang/KeepInline.java: New file.
+ * libjava.lang/KeepInline.out: New file.
+
+2001-07-30 Jeff Sturm
+
+ * libjava.lang/SyncTest.java: New file.
+ * libjava.lang/SyncTest.out: New file.
+ * libjava.lang/SyncTest.xfail: New file.
+
+2001-07-27 Rainer Orth
+
+ * lib/libjava.exp (${tool}_set_ld_library_path): New, copied from
+ g++.exp.
+
+2001-07-19 Jeff Sturm
+
+ * libjava.lang/PR3731.java: New file.
+ * libjava.lang/PR3731.out: New file.
+ * libjava.lang/PR3731.xfail: New file.
+
+2001-07-12 Alexandre Petit-Bianco
+
+ * libjava.compile/anon_ctor_itf_arg.java: Moved to `libjava.lang.'
+ * libjava.compile/anon_ctor_itf_arg.out: Likewise
+ * libjava.lang/invoke_from_inner.java: New file.
+ * libjava.lang/invoke_from_inner.out: Likewise.
+
+2001-07-12 Alexandre Petit-Bianco
+
+ * libjava.compile/anon_ctor_itf_arg.java: New file.
+ * libjava.compile/anon_ctor_itf_arg.out: New file.
+
+2001-07-12 Tom Tromey
+
+ * libjava.lang/N19990310_4.xfail: Removed.
+
+2001-07-10 Alexandre Petit-Bianco
+
+ * libjava.lang/TLtest.java: New file.
+ * libjava.lang/TLtest.out: New file.
+
+2001-07-06 Andrew Haley
+
+ * libjava.lang/Divide_1.java: Add many more test cases.
+ * libjava.lang/Divide_1.out: Likewise.
+
+2001-07-03 Jeff Sturm
+
+ * libjava.lang/II.java: New file.
+ * libjava.lang/II.out: New file.
+
+2001-06-25 Tom Tromey
+
+ * libjava.lang/stub.xfail: Removed.
+
+2001-06-24 Andreas Jaeger
+
+ * libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Fix path for
+ jni.h.
+
+2001-06-14 Tom Tromey
+
+ * libjava.jni/jni.exp: New file.
+ * lib/libjava.exp (gcj_link): New proc.
+
+2001-06-08 Tom Tromey
+
+ Fix for PR libgcj/2874:
+ * libjava.mauve/mauve.exp (gcj_run_mauve_tests): New proc.
+ (test_mauve): Return 0 on failure.
+ * lib/libjava.exp (test_libjava_from_source): Remove generated
+ files if test is successful.
+ (test_libjava_from_javac): Likewise.
+ (gcj_cleanup): New proc.
+
+2001-06-05 Jeff Sturm
+
+ * lib/libjava.exp (libjava_arguments): Build with `-no-install'
+ when $mode == "link".
+
+2001-06-02 Anthony Green
+
+ * libjava.lang/invokethrow.java: Fake a pass for systems which
+ don't support invocation.
+
+2001-05-30 Tom Tromey
+
+ * libjava.lang/invokethrow.out: New file.
+ * libjava.lang/invokethrow.java: New file.
+
+2001-05-03 Tom Tromey
+
+ * libjava.lang/Thread_Wait_Interrupt.xfail: New file.
+ * libjava.lang/Thread_Wait_2.xfail: New file.
+ * libjava.lang/Thread_Wait.xfail: New file.
+ * libjava.lang/Thread_Sleep.xfail: New file.
+ * libjava.lang/Thread_Monitor.xfail: New file.
+ * libjava.lang/Thread_Join.xfail: New file.
+ * libjava.lang/Thread_Interrupt.xfail: New file.
+ * libjava.lang/Thread_Alive.xfail: New file.
+ * lib/libjava.exp (libjava_init): Set global
+ libjava_uses_threads.
+ (test_libjava): Document `need-threads' tag.
+ (test_libjava_from_source): handle need-threads tag.
+ (test_libjava_from_javac): Likewise.
+
+2001-05-03 Tom Tromey
+
+ * libjava.lang/err11.xfail: Removed.
+
+2001-04-25 Tom Tromey
+
+ * lib/libjava.exp (libjava_init): Use UTF-8 encoding.
+ (test_libjava_from_javac): Likewise.
+
+2001-04-09 Tom Tromey
+
+ * libjava.lang/pr83.xfail: Removed.
+ * libjava.lang/Shazam.xfail: Removed.
+ * libjava.lang/PR162.xfail: Removed.
+ * libjava.compile/PR375.xfail: Removed.
+ * libjava.compile/PR208.xfail: Removed xfail-byte.
+ * libjava.compile/PR207.xfail: Removed xfail-byte.
+
+2001-04-07 Tom Tromey
+
+ * libjava.compile/weirddecl.xfail: Removed xfail-*.
+ * libjava.compile/PR374.xfail: Removed.
+
+2001-03-29 Alexandre Petit-Bianco
+
+ * libjava.lang/instinit2.out: Fixed.
+
+2001-03-22 Tom Tromey
+
+ * libjava.jni/field.out: New file.
+ * libjava.jni/field.c: New file.
+ * libjava.jni/field.java: New file.
+
+2001-03-20 Tom Tromey
+
+ * libjava.compile/uesc.java: New file.
+ * libjava.compile/uesc.xfail: New file.
+
+2001-03-16 Tom Tromey
+
+ * lib/libjava.exp (libjava_arguments): Rewrote computation of
+ LD_LIBRARY_PATH. Add gcc build directory if it contains
+ libgcc_s.so.
+
+2001-03-14 Tom Tromey
+
+ * libjava.compile/assignment.xfail: Removed.
+ * libjava.compile/assignment_2.xfail: Removed.
+
+2001-02-08 Warren Levy
+
+ * libjava.mauve/mauve.exp: Added support for XFAILs.
+ * libjava.mauve/xfails: New file.
+
+2001-01-26 Tom Tromey
+
+ * libjava.jni/martin.c (Java_martin_myNative): Flush stdout.
+
+ * libjava.jni/martin.out: New file.
+ * libjava.jni/martin.c: New file.
+ * libjava.jni/martin.java: New file.
+
+2001-01-16 Richard Henderson
+
+ * lib/libjava.exp (bytecompile_file): Don't unset CLASSPATH.
+ (libjava_arguments): Use .jar extension for libgcj.
+
+2001-01-08 Bryce McKinlay
+
+ * libjava.compile/SuperConstr.java: New test case.
+
+2000-12-18 Tom Tromey
+
+ * libjava.mauve/mauve.exp (test_mauve): Don't look for exceptions
+ thrown in the test harness.
+ (test_mauve_sim): Likewise.
+
+2000-12-16 Tom Tromey
+
+ * lib/libjava.exp (test_libjava_from_javac): Strange quoting trick
+ for `.class' link case.
+ (bytecompile_file): Change directory outside of `catch'.
+
+ * libjava.lang/Thread_1.java: Removed.
+ * libjava.lang/Thread_1.out: Likewise.
+
+ * libjava.lang/N19990310_4.xfail: New file.
+ * libjava.lang/stub.xfail: Added new failure modes.
+ * libjava.lang/stringconst.xfail: New file.
+ * libjava.lang/PR162.xfail: New file.
+ * libjava.lang/Final.xfail: Removed.
+
+2000-12-15 Tom Tromey
+
+ * libjava.lang/instinit.out: Removed erroneous line.
+
+ * libjava.lang/Thread_1.out: Expect `0' active count.
+
+ * libjava.lang/stub.xfail: New file.
+ * libjava.lang/pr83.xfail: New file.
+ * libjava.lang/err8.xfail: New file.
+ * libjava.lang/err7.xfail: New file.
+ * libjava.lang/Shazam.xfail: New file.
+ * libjava.lang/err11.xfail: New file.
+
+ * libjava.lang/instinit2.java: Renamed class to `instinit2'.
+
+ * libjava.lang/anon3.out: Fixed typo.
+
+ * libjava.lang/Class_1.java (main): Uncommented out previously
+ failing code; now it works
+
+ * lib/libjava.exp (libjava_tcompile): New proc.
+ (test_libjava_from_source): Use it.
+ (test_libjava_from_javac): Likewise.
+ (find_javac): New proc.
+ (bytecompile_file): Use it.
+ (test_libjava_from_javac): Handle `xfail-gcjC' tag. If no-exec
+ set, then don't link even if program has a `main'.
+
+ * libjava.compile/static_3.xfail: New file.
+ * libjava.compile/weirddecl.xfail: New file.
+ * libjava.compile/static_2.xfail: New file.
+ * libjava.compile/not_a_redef.xfail: New file.
+ * libjava.compile/inner_1.xfail: New file.
+ * libjava.compile/assignment_2.xfail: New file.
+ * libjava.compile/assignment.xfail: New file.
+ * libjava.compile/abstr.xfail: New file.
+ * libjava.compile/PR375.xfail: New file.
+ * libjava.compile/PR374.java: New file.
+ * libjava.compile/PR238.xfail: New file.
+ * libjava.compile/PR208.xfail: New file.
+ * libjava.compile/PR207.xfail: New file.
+
+2000-11-30 Tom Tromey
+
+ * libjava.lang/instinit.java: Don't extend `foo'.
+
+2000-11-26 Tom Tromey
+
+ * libjava.compile/weirddecl.java: New file.
+
+Fri Nov 24 11:25:20 2000 Anthony Green
+
+ * lib/libjava.exp (bytecompile_file): Change default from javac to
+ gcj -C.
+ (libjava_arguments): Fix classpath.
+
+ * libjava.compile/PR129_B.no-link: New file.
+
+2000-11-24 Tom Tromey
+
+ * libjava.compile/PR375.java: New file. For PR gcj/375.
+
+ * libjava.compile/PR374.java: New file. For PR gcj/374.
+
+2000-11-07 Tom Tromey
+
+ * libjava.compile/sjis_comment3.java: Removed.
+ * libjava.compile/sjis_comment2.java: Removed.
+ * libjava.compile/sjis_comment1.java: Removed.
+ * libjava.compile/euc_comment3.java: Removed.
+ * libjava.compile/euc_comment2.java: Removed.
+ * libjava.compile/euc_comment1.java: Removed.
+
+2000-11-03 Tom Tromey
+
+ * lib/libjava.exp (libjava_arguments): Set --tag on libtool
+ invocation.
+
+Sun Oct 8 19:14:05 2000 Anthony Green
+
+ * libjava.compile/ArrayClass.java: New file.
+
+2000-08-31 Tom Tromey
+
+ * libjava.compile/abstr.xfail: New file.
+ * libjava.compile/abstr.java: New file.
+
+2000-08-09 Tom Tromey
+
+ From PR gcj/310:
+ * libjava.compile/PR310.java: New file.
+ * libjava.compile/PR310.xfail: New file.
+
+2000-07-30 Anthony Green
+
+ * libjava.compile/PR295.java: New file.
+ See PR gcj/295.
+
+2000-07-11 Andrew Haley
+
+ * libjava.compile/static_init2.java: New file.
+
+2000-07-07 Tom Tromey
+
+ * libjava.lang/stringconst2.out: New file.
+ * libjava.lang/stringconst2.java: New file.
+
+2000-06-23 Tom Tromey
+
+ For PR gcj/260:
+ * libjava.lang/PR260.out: New file.
+ * libjava.lang/PR260.java: New file.
+
+2000-06-13 Warren Levy
+
+ Test for PR java.lang/258:
+ * libjava.lang/Class_1.java: New file.
+ * libjava.lang/Class_1.out: New file.
+
+2000-05-29 Bryce McKinlay
+
+ * libjava.lang/PR242.java: New file. PR gcj/242.
+
+2000-05-23 Tom Tromey
+
+ * libjava.compile/PR238.java: New file. For PR gcj/238.
+
+ * libjava.lang/stringconst.out: New file.
+ * libjava.lang/stringconst.java: New file.
+
+2000-05-22 Bryce McKinlay
+
+ * libjava.compile/PR232B.java: Additional PR gcj/232 test.
+
+2000-05-22 Tom Tromey
+
+ * libjava.compile/PR235.java: New file. For PR gcj/235.
+
+2000-05-21 Tom Tromey
+
+ * libjava.compile/PR234.java: New file. For PR gcj/234.
+
+2000-05-22 Bryce McKinlay
+
+ Test for PR gcj/232:
+ * libjava.compile/PR232.java: New file.
+
+2000-05-18 Tom Tromey
+
+ * lib/libjava.exp (bytecompile_file): Use exec, not system.
+
+2000-05-17 Tom Tromey
+
+ * libjava.mauve/mauve.exp (test_mauve): Call `prune_warnings'.
+ (test_mauve_sim): Likewise.
+ (test_mauve): Redirect stderr in system call.
+ (test_mauve_sim): Likewise.
+ * lib/libjava.exp (test_libjava_from_source): Call
+ `prune_warnings'.
+ (test_libjava_from_javac): Likewise.
+ (bytecompile_file): Redirect stderr in system call.
+ * lib/libjava.exp (libjava_find_program): New proc.
+ (find_jvscan): Use it.
+ (find_gcjh): New proc.
+
+ * libjava.compile/compile.exp: Use "", not $options.
+
+2000-05-16 Tom Tromey
+
+ * libjava.lang/instance.out: New file.
+ * libjava.lang/instance.java: New file.
+
+2000-05-10 Bryce McKinlay
+
+ * libjava.lang/StringBuffer_1.java: New file.
+ * libjava.lang/StringBuffer_1.out: New file.
+
+2000-05-08 Bryce McKinlay
+
+ Test for PR gcj/224:
+ * libjava.compile/PR224.java: New file.
+ * libjava.compile/PR224.xfail: New file.
+
+2000-04-28 Bryce McKinlay
+
+ Test for PR gcj/218:
+ * libjava.lang/PR218.java: New file.
+ * libjava.lang/PR218.out: New file.
+
+2000-04-25 Alexandre Petit-Bianco
+
+ * libjava.compile/MethodFailure4.java: New file.
+ * libjava.compile/MethodFailure4.out: New file.
+
+2000-04-20 Alexandre Petit-Bianco
+
+ * libjava.compile/block.java: New file.
+ * libjava.compile/block.out: New file.
+
+2000-04-20 Tom Tromey
+
+ * libjava.jni/throwit.out: Fixed output to be correct.
+
+ * libjava.jni/noclass.java (main): `find_it' throws an exception.
+
+2000-04-16 Anthony Green
+
+ * libjava.compile/PR209.java: New file.
+
+2000-04-16 Anthony Green
+
+ * libjava.compile/PR208.java: New file.
+
+2000-04-16 Anthony Green
+
+ * libjava.compile/PR207.java: New file.
+ libjava.compile/PR207_A.java: New file.
+ libjava.compile/PR206.java: New file.
+ libjava.compile/PR206_A.java: New file.
+
+2000-04-14 Bryce McKinlay
+
+ Additional test for PR gcj/148:
+ * libjava.compile/assignment_2.java: New file.
+
+2000-03-28 Bryce McKinlay
+
+ Test case for PR libgcj/184:
+ * libjava.lang/pr184.java: New file.
+ * libjava.lang/pr184.out: New file.
+
+2000-03-27 Tom Tromey
+
+ * libjava.lang/test_long.out: New file.
+ * libjava.lang/test_long.java: New file.
+
+2000-03-26 Tom Tromey
+
+ * libjava.lang/Array_1.xfail: Removed.
+
+2000-03-23 Bryce McKinlay
+
+ * libjava.lang/Thread_Wait.java: New file.
+ * libjava.lang/Thread_Sleep.java: New file.
+ * libjava.lang/Thread_Monitor.java: New file.
+ * libjava.lang/Thread_Wait.out: New file.
+ * libjava.lang/Thread_Sleep.out: New file.
+ * libjava.lang/Thread_Monitor.out: New file.
+ * libjava.lang/Thread_Interrupt.java: New file.
+ * libjava.lang/Thread_Wait_2.java: New file.
+ * libjava.lang/Thread_Wait_2.out: New file.
+ * libjava.lang/Thread_Wait_Interrupt.java: New file.
+ * libjava.lang/Thread_Wait_Interrupt.out: New file.
+ * libjava.lang/Thread_Interrupt.out: New file.
+ * libjava.lang/Thread_Join.java: New file.
+ * libjava.lang/Thread_Join.out: New file.
+ * libjava.lang/Thread_Alive.java: New file.
+ * libjava.lang/Thread_Alive.out: New file.
+
+2000-03-22 Tom Tromey
+
+ * libjava.compile/iface.java: New file.
+ * libjava.compile/static_3.java: New file.
+ * libjava.compile/static_2.java: New file.
+ * libjava.compile/static_1.xfail: New file.
+ * libjava.compile/static_1.java: New file.
+ * libjava.compile/redef6.xfail: New file.
+ * libjava.compile/redef6.java: New file.
+ * libjava.compile/redef5.xfail: New file.
+ * libjava.compile/redef5.java: New file.
+ * libjava.compile/redef4.xfail: New file.
+ * libjava.compile/redef4.java: New file.
+ * libjava.compile/redef3.xfail: New file.
+ * libjava.compile/redef3.java: New file.
+ * libjava.compile/redef2.xfail: New file.
+ * libjava.compile/redef2.java: New file.
+ * libjava.compile/redef1.xfail: New file.
+ * libjava.compile/redef1.java: New file.
+ * libjava.compile/not_a_redef.java: New file.
+ * libjava.compile/inner_1.java: New file.
+ * libjava.compile/static_init.xfail: New file.
+ * libjava.compile/static_init.java: New file.
+
+2000-03-21 Bryce McKinlay
+
+ Test case for PR libgcj/179:
+ * libjava.lang/pr179.java: New file.
+ * libjava.lang/pr179.out: New file.
+
+2000-03-18 Tom Tromey
+
+ * libjava.lang/pr109.java: Added `println' at end.
+
+2000-03-15 Tom Tromey
+
+ * libjava.compile/pr176.java: New file, for PR gcj/176.
+
+2000-03-15 Bryce McKinlay
+
+ * libjava.compile/pr172.java: Correct classname to match file name.
+ * libjava.compile/pr174.java: ditto. Remove superfluous main()
+ method.
+ * libjava.compile/PR140.xfail: New file.
+
+2000-03-14 Tom Tromey
+
+ * libjava.compile/PR140.java: New file, for PR gcj/140.
+
+ * libjava.compile/pr172.java: New file, for PR gcj/172.
+
+ * libjava.compile/pr174.java: New file, for PR gcj/174.
+
+2000-03-07 Tom Tromey
+
+ * libjava.lang/PR162.java: Mention `PR162', not `Test', as class
+ name.
+
+2000-03-07 Bryce McKinlay
+
+ Test for PR gcj/163:
+ * libjava.lang/PR163.java: New file.
+ * libjava.lang/PR163.xfail: New file.
+
+2000-03-07 Tom Tromey
+
+ * lib/libjava.exp (test_libjava_from_javac): Removed hack for
+ interfaces. Fail if jv-scan reports a parse error.
+
+ Test for PR gcj/162:
+ * libjava.lang/PR162.out: New file.
+ * libjava.lang/PR162.java: New file.
+
+2000-03-06 Tom Tromey
+
+ Test for PR gcj/164:
+ * libjava.compile/PR164.xfail: New file.
+ * libjava.compile/PR164.java: New file.
+
+2000-03-06 Bryce McKinlay
+
+ * libjava.compile/PR127.java: New file.
+ * libjava.compile/PR127.xfail: New file.
+ PR 127 test case from Joerg Brunsmann.
+
+2000-03-05 Tom Tromey
+
+ * lib/libjava.exp (test_libjava): Document `shouldfail' token.
+ (test_libjava_from_source): Handle `shouldfail' case.
+ (test_libjava_from_javac): Likewise.
+
+ Test for PR libgcj/124:
+ * libjava.compile/PR124.java: New file.
+ * libjava.compile/PR124.xfail: New file.
+
+2000-03-05 Anthony Green
+
+ * libjava.lang/PR141.java: New file.
+ * libjava.lang/PR141.out: New file.
+ For PR java.io/141.
+
+2000-03-05 Anthony Green
+
+ * libjava.compile/PR129_B.java: New file.
+ * libjava.compile/support/PR129_A.java: New file.
+ For PR gcj/129.
+
+2000-03-04 Anthony Green
+
+ * libjava.lang/PR160.java: New file.
+ * libjava.lang/PR160.out: New file.
+
+2000-02-28 Mo DeJong
+
+ * libjava.compile/static_inner.java: New file.
+
+2000-02-23 Tom Tromey
+
+ * libjava.jni/noclass.c: New file.
+ * libjava.jni/noclass.out: New file.
+ * libjava.jni/noclass.java: New file.
+
+2000-02-18 Tom Tromey
+
+ * libjava.jni/register.java: New file.
+ * libjava.jni/register.c: New file.
+ * libjava.jni/register.out: New file.
+
+2000-02-16 Tom Tromey
+
+ * libjava.jni/calls.c: New file.
+ * libjava.jni/calls.out: New file.
+ * libjava.jni/calls.java: New file.
+
+ * libjava.jni/throwit.java: New file.
+ * libjava.jni/throwit.c: New file.
+ * libjava.jni/throwit.out: New file.
+
+2000-02-15 Tom Tromey
+
+ * libjava.jni/findclass.java: New file
+ * libjava.jni/findclass.c: New file
+ * libjava.jni/findclass.out: New file
+
+2000-02-16 Bryce McKinlay
+
+ * libjava.lang/InterfaceDispatch.java: New file.
+ * libjava.lang/InterfaceDispatch.out: New file.
+
+2000-02-15 Tom Tromey
+
+ * libjava.jni/virtual.java: New file.
+ * libjava.jni/virtual.c: New file.
+ * libjava.jni/virtual.out: New file.
+ * libjava.jni/final_method.java: New file.
+ * libjava.jni/final_method.c: New file.
+ * libjava.jni/final_method.out: New file.
+ * libjava.jni/overload.java: New file.
+ * libjava.jni/overload.c: New file.
+ * libjava.jni/overload.out: New file.
+ * libjava.jni/simple_int.java: New file.
+ * libjava.jni/simple_int.c: New file.
+ * libjava.jni/simple_int.out: New file.
+ * libjava.jni/invoke.out: New file.
+ * libjava.jni/invoke.c: New file.
+ * libjava.jni/invoke.java: New file.
+
+2000-02-12 Anthony Green
+
+ * libjava.compile/comment.java: New file.
+
+2000-02-12 Anthony Green
+
+ * libjava.compile/assignment.java: New file.
+
+2000-02-12 Anthony Green
+
+ * libjava.compile/inner_data.java: New file.
+
+2000-02-12 Anthony Green
+
+ * libjava.compile/inner_inherit.java: New file.
+
+2000-02-12 Alexandre Petit-Bianco
+
+ * libjava.lang/inner_interface.out: New file.
+ * libjava.lang/inner_interface.java: New file.
+ * libjava.lang/final_int.out: New file.
+ * libjava.lang/final_int.java: New file.
+ * libjava.lang/final_static_and_friend.out: New file.
+ * libjava.lang/final_static_and_friend.java: New file.
+
+2000-02-07 Alexandre Petit-Bianco