diff options
author | Bryce McKinlay <bryce@gcc.gnu.org> | 2005-05-13 02:02:39 +0100 |
---|---|---|
committer | Bryce McKinlay <bryce@gcc.gnu.org> | 2005-05-13 02:02:39 +0100 |
commit | f5ea88a3c84867db582caf0154a8635501c3a819 (patch) | |
tree | 90f2c51143a8ba2fb5311f20878ab77cfef3f642 | |
parent | 87255f602fb6efce6061c54e4ffd420717b020a1 (diff) | |
download | gcc-f5ea88a3c84867db582caf0154a8635501c3a819.zip gcc-f5ea88a3c84867db582caf0154a8635501c3a819.tar.gz gcc-f5ea88a3c84867db582caf0154a8635501c3a819.tar.bz2 |
[multiple changes]
2005-05-12 Bryce McKinlay <mckinlay@redhat.com>
* include/jvm.h (gcj::verifyClasses): Declare.
* link.cc (gcj::verbose_class_flag): Moved.
* prims.cc (gcj::verifyClasses): Define here.
(gcj::verbose_class_flag): Move definition here.
(_Jv_Linker::wait_for_state): Don't call verify_class
if gcj::verifyClasses is not set.
* gij.cc (main): Set gcj::verifyClasses when '-noverify' is given.
2005-05-12 Aaron Luchko <aluchko@redhat.com>
* gij.cc (main): Recognize '-verify', '-noverify', and
'-verifyremote'
2005-05-12 Aaron Luchko <aluchko@redhat.com>
* gcj.texi: Add '-verify', '-noverify', and '-verifyremote'.
From-SVN: r99646
-rw-r--r-- | gcc/java/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/java/gcj.texi | 8 | ||||
-rw-r--r-- | libjava/ChangeLog | 15 | ||||
-rw-r--r-- | libjava/gij.cc | 8 | ||||
-rw-r--r-- | libjava/include/jvm.h | 3 | ||||
-rw-r--r-- | libjava/link.cc | 6 | ||||
-rw-r--r-- | libjava/prims.cc | 6 |
7 files changed, 45 insertions, 5 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 126e0c8..6341396 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,7 @@ +2005-05-12 Aaron Luchko <aluchko@redhat.com> + + * gcj.texi: Add '-verify', '-noverify', and '-verifyremote'. + 2005-05-11 Tom Tromey <tromey@redhat.com> * gcj.texi (Code Generation): Document -fbootstrap-classes. diff --git a/gcc/java/gcj.texi b/gcc/java/gcj.texi index 3b2f12e..28316bf 100644 --- a/gcc/java/gcj.texi +++ b/gcc/java/gcj.texi @@ -1095,6 +1095,11 @@ Equivalent to @code{-Xms}. @item -mx=@var{number} Equivalent to @code{-Xmx}. +@item -noverify +Do not verify compliance of bytecode with the VM specification. In addition, +this option disables type verification which is otherwise performed on BC-ABI +compiled code. + @item -X @itemx -X@var{argument} Supplying @code{-X} by itself will cause @code{gij} to list all the @@ -1137,7 +1142,8 @@ Each time a class is initialized, print a short message on standard error. compatibility with existing application launch scripts: @code{-client}, @code{-server}, @code{-hotspot}, @code{-jrockit}, @code{-agentlib}, @code{-agentpath}, @code{-debug}, @code{-d32}, -@code{-d64}, @code{-javaagent} and @code{-noclassgc}. +@code{-d64}, @code{-javaagent}, @code{-noclassgc}, @code{-verify}, +and @code{-verifyremote}. @c man end diff --git a/libjava/ChangeLog b/libjava/ChangeLog index e0508a5..469bb76 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,18 @@ +2005-05-12 Bryce McKinlay <mckinlay@redhat.com> + + * include/jvm.h (gcj::verifyClasses): Declare. + * link.cc (gcj::verbose_class_flag): Moved. + * prims.cc (gcj::verifyClasses): Define here. + (gcj::verbose_class_flag): Move definition here. + (_Jv_Linker::wait_for_state): Don't call verify_class + if gcj::verifyClasses is not set. + * gij.cc (main): Set gcj::verifyClasses when '-noverify' is given. + +2005-05-12 Aaron Luchko <aluchko@redhat.com> + + * gij.cc (main): Recognize '-verify', '-noverify', and + '-verifyremote' + 2005-05-12 Kaz Kojima <kkojima@gcc.gnu.org> * configure.host: Set IEEESPEC to -mieee for sh*-*-*. diff --git a/libjava/gij.cc b/libjava/gij.cc index 010e72f..60d5b34 100644 --- a/libjava/gij.cc +++ b/libjava/gij.cc @@ -296,6 +296,14 @@ main (int argc, char const** argv) nonstandard_opts_help (); else if (! strncmp (arg, "-X", 2)) add_option (vm_args, arg, NULL); + // Obsolete options recognized for backwards-compatibility. + else if (! strcmp (arg, "-verify") + || ! strcmp (arg, "-verifyremote")) + continue; + else if (! strcmp (arg, "-noverify")) + { + gcj::verifyClasses = false; + } else { fprintf (stderr, "gij: unrecognized option -- `%s'\n", argv[i]); diff --git a/libjava/include/jvm.h b/libjava/include/jvm.h index 6b978f9..bceb291 100644 --- a/libjava/include/jvm.h +++ b/libjava/include/jvm.h @@ -230,6 +230,9 @@ namespace gcj /* Print out class names as they are initialized. */ extern bool verbose_class_flag; + + /* When true, enable the bytecode verifier and BC-ABI verification. */ + extern bool verifyClasses; } // This class handles all aspects of class preparation and linking. diff --git a/libjava/link.cc b/libjava/link.cc index 0a70573..3fe0734 100644 --- a/libjava/link.cc +++ b/libjava/link.cc @@ -44,9 +44,6 @@ details. */ using namespace gcj; -// When true, print debugging information about class loading. -bool gcj::verbose_class_flag; - typedef unsigned int uaddr __attribute__ ((mode (pointer))); template<typename T> @@ -1728,7 +1725,8 @@ _Jv_Linker::wait_for_state (jclass klass, int state) if (state >= JV_STATE_LINKED && klass->state < JV_STATE_LINKED) { - verify_class (klass); + if (gcj::verifyClasses) + verify_class (klass); ensure_class_linked (klass); link_exception_table (klass); diff --git a/libjava/prims.cc b/libjava/prims.cc index 98d3023..af17724 100644 --- a/libjava/prims.cc +++ b/libjava/prims.cc @@ -953,6 +953,12 @@ namespace gcj _Jv_Utf8Const *finit_name; bool runtimeInitialized = false; + + // When true, print debugging information about class loading. + bool verbose_class_flag; + + // When true, enable the bytecode verifier and BC-ABI type verification. + bool verifyClasses = true; } // We accept all non-standard options accepted by Sun's java command, |