1 diff -rBub boehm-gc/configureboehm-gc/configure
2 --- boehm-gc/configure Tue May 13 17:18:14 2003
3 +++ boehm-gc/configure Mon Mar 1 01:03:55 2004
5 if test "$ac_test_CFLAGS" = set; then
6 CFLAGS="$ac_save_CFLAGS"
7 elif test $ac_cv_prog_cc_g = yes; then
9 + CFLAGS="-g -Os -ffunction-sections -fdata-sections"
12 + CFLAGS="-Os -ffunction-sections -fdata-sections"
17 if test "$ac_test_CXXFLAGS" = set; then
18 CXXFLAGS="$ac_save_CXXFLAGS"
19 elif test $ac_cv_prog_cxx_g = yes; then
21 + CXXFLAGS="-g -Os -ffunction-sections -fdata-sections"
24 + CXXFLAGS="-Os -ffunction-sections -fdata-sections"
28 diff -rBub gcc/dwarf2out.cgcc/dwarf2out.c
29 --- gcc/dwarf2out.c Mon May 5 09:59:20 2003
30 +++ gcc/dwarf2out.c Sat Feb 28 02:37:20 2004
32 else if (!flag_asynchronous_unwind_tables && cfa.reg != STACK_POINTER_REGNUM)
35 + if (frame_pointer_needed) return;
37 if (GET_CODE (insn) == BARRIER)
39 /* When we see a BARRIER, we know to reset args_size to 0. Usually
40 diff -rBub gcc/java/class.cgcc/java/class.c
41 --- gcc/java/class.c Fri Feb 28 12:53:07 2003
42 +++ gcc/java/class.c Mon Mar 1 00:20:15 2004
46 int is_compiled = is_compiled_class (type);
48 + if (is_compiled || flag_inhibit_reflection)
50 tree ref, decl_name, decl;
51 if (TREE_CODE (type) == POINTER_TYPE)
52 @@ -1199,13 +1199,17 @@
53 int resolved = is_compiled_class (type);
55 START_RECORD_CONSTRUCTOR (finit, field_type_node);
56 + if (!flag_inhibit_reflection) {
57 PUSH_FIELD_VALUE (finit, "name", build_utf8_ref (DECL_NAME (fdecl)));
59 + PUSH_FIELD_VALUE (finit, "name", null_pointer_node);
62 type = build_class_ref (type);
65 + if (!flag_inhibit_reflection) {
66 tree signature = build_java_signature (type);
68 type = build_utf8_ref (unmangle_classname
69 (IDENTIFIER_POINTER (signature),
70 IDENTIFIER_LENGTH (signature)));
72 type = build_utf8_ref (unmangle_classname
73 (IDENTIFIER_POINTER (signature),
74 IDENTIFIER_LENGTH (signature)));
76 + type = null_pointer_node;
79 PUSH_FIELD_VALUE (finit, "type", type);
83 #define ACC_TRANSLATED 0x4000
84 int accflags = get_access_flags_from_decl (mdecl) | ACC_TRANSLATED;
87 if (!flag_indirect_dispatch && DECL_VINDEX (mdecl) != NULL_TREE)
88 index = DECL_VINDEX (mdecl);
89 @@ -1254,6 +1262,12 @@
90 if (DECL_RTL_SET_P (mdecl))
91 code = build1 (ADDR_EXPR, nativecode_ptr_type_node, mdecl);
92 START_RECORD_CONSTRUCTOR (minit, method_type_node);
94 + emitNames = !flag_inhibit_reflection;
95 + if (!METHOD_STATIC(mdecl)) emitNames = 1;
96 + if (DECL_CLINIT_P(mdecl)) emitNames = 1;
97 + if ((METHOD_STATIC(mdecl) && (strcmp(IDENTIFIER_POINTER(DECL_NAME(mdecl)),"main") == 0))) emitNames = 1;
99 PUSH_FIELD_VALUE (minit, "name",
100 build_utf8_ref (DECL_CONSTRUCTOR_P (mdecl) ?
102 @@ -1266,6 +1280,10 @@
103 (IDENTIFIER_POINTER(signature),
104 IDENTIFIER_LENGTH(signature)))));
107 + PUSH_FIELD_VALUE (minit, "name", null_pointer_node);
108 + PUSH_FIELD_VALUE (minit, "signature", null_pointer_node);
110 PUSH_FIELD_VALUE (minit, "accflags", build_int_2 (accflags, 0));
111 PUSH_FIELD_VALUE (minit, "index", index);
112 PUSH_FIELD_VALUE (minit, "ncode", code);
113 @@ -1273,6 +1291,7 @@
115 /* Compute the `throws' information for the method. */
116 tree table = null_pointer_node;
117 + if (!flag_inhibit_reflection)
118 if (DECL_FUNCTION_THROWS (mdecl) != NULL_TREE)
120 int length = 1 + list_length (DECL_FUNCTION_THROWS (mdecl));
121 @@ -1473,6 +1493,7 @@
122 DECL_INITIAL (field) = initial;
125 + if (!flag_inhibit_reflection)
127 instance_field_count++;
128 instance_fields = tree_cons (NULL_TREE, init, instance_fields);
129 @@ -1480,6 +1501,9 @@
132 field_count = static_field_count + instance_field_count;
134 + // we have to leave this here; part of the class initialization is the process
135 + // of replacing utf8const's with String objects
138 static_fields = nreverse (static_fields);
139 @@ -1550,7 +1574,7 @@
140 super = CLASSTYPE_SUPER (type);
141 if (super == NULL_TREE)
142 super = null_pointer_node;
143 - else if (assume_compiled (IDENTIFIER_POINTER (DECL_NAME (type_decl))))
144 + else if (flag_inhibit_reflection || (assume_compiled (IDENTIFIER_POINTER (DECL_NAME (type_decl)))))
145 super = build_class_ref (super);
148 @@ -1576,7 +1600,7 @@
149 tree child = TREE_VEC_ELT (TYPE_BINFO_BASETYPES (type), i);
150 tree iclass = BINFO_TYPE (child);
152 - if (assume_compiled (IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (iclass)))))
153 + if (flag_inhibit_reflection || (assume_compiled (IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (iclass))))))
154 index = build_class_ref (iclass);
157 @@ -2225,6 +2249,7 @@
159 method_list = otable_methods;
161 + if (!flag_inhibit_reflection)
162 while (method_list != NULL_TREE)
164 method = TREE_VALUE (method_list);
165 diff -rBub gcc/java/constants.cgcc/java/constants.c
166 --- gcc/java/constants.c Mon Nov 18 07:46:32 2002
167 +++ gcc/java/constants.c Mon Mar 1 00:20:32 2004
170 for (i = outgoing_cpool->count; --i > 0; )
172 + if (!flag_inhibit_reflection) {
174 = tree_cons (NULL_TREE, get_tag_node (outgoing_cpool->tags[i]),
177 + tags_list = null_pointer_node;
180 = tree_cons (NULL_TREE, build_utf8_ref ((tree)outgoing_cpool->data[i]),
183 index_type = build_index_type (max_index);
185 /* Add dummy 0'th element of constant pool. */
186 + if (!flag_inhibit_reflection) {
187 tags_list = tree_cons (NULL_TREE, get_tag_node (0), tags_list);
189 data_list = tree_cons (NULL_TREE, null_pointer_node, data_list);
191 data_decl = TREE_OPERAND (build_constant_data_ref (), 0);
193 rest_of_decl_compilation (data_decl, (char *) 0, 1, 0);
194 data_value = build_address_of (data_decl);
196 + if (!flag_inhibit_reflection) {
197 tags_type = build_array_type (unsigned_byte_type_node, index_type);
198 tags_decl = build_decl (VAR_DECL, mangled_classname ("_CT_",
201 NULL_TREE, tags_list);
202 rest_of_decl_compilation (tags_decl, (char*) 0, 1, 0);
203 tags_value = build_address_of (tags_decl);
205 + tags_value = null_pointer_node;
210 diff -rBub gcc/java/java-tree.hgcc/java/java-tree.h
211 --- gcc/java/java-tree.h Mon Nov 18 10:13:35 2002
212 +++ gcc/java/java-tree.h Thu Feb 26 15:01:38 2004
214 /* Encoding used for source files. */
215 extern const char *current_encoding;
217 +/** don't emit reflection information */
218 +extern int flag_inhibit_reflection;
220 /* The Java .class file that provides main_class; the main input file. */
221 extern struct JCF *current_jcf;
223 diff -rBub gcc/java/lang.cgcc/java/lang.c
224 --- gcc/java/lang.c Sun Jan 5 07:03:25 2003
225 +++ gcc/java/lang.c Thu Feb 26 15:01:38 2004
227 /* The encoding of the source file. */
228 const char *current_encoding = NULL;
230 +/** don't emit reflection information */
231 +int flag_inhibit_reflection = 0;
233 /* When nonzero, report the now deprecated empty statements. */
234 int flag_extraneous_semicolon;
238 flag_inline_functions = 1;
239 flag_really_inline = 1;
243 +#define ARG "-finhibit-reflection"
244 + if (strncmp (p, ARG, sizeof (ARG) - 1) == 0)
246 + flag_inhibit_reflection = 1;
250 diff -rBub libjava/Makefile.inlibjava/Makefile.in
251 --- libjava/Makefile.in Mon Mar 1 01:45:58 2004
252 +++ libjava/Makefile.in Sun Feb 29 22:09:27 2004
253 @@ -174,10 +174,10 @@
256 AM_CXXFLAGS = -fno-rtti -fnon-call-exceptions \
257 - -fdollars-in-identifiers \
258 + -fdollars-in-identifiers -ffunction-sections -fdata-sections \
260 @LIBGCJ_CXXFLAGS@ @X_CFLAGS@ $(WARNINGS) -D_GNU_SOURCE \
261 - -DPREFIX="\"$(prefix)\""
262 + -DPREFIX="\"$(prefix)\"" -Os
264 @USING_GCC_TRUE@AM_CFLAGS = @USING_GCC_TRUE@@LIBGCJ_CFLAGS@ $(WARNINGS)
265 @USING_GCC_FALSE@AM_CFLAGS = @USING_GCC_FALSE@@LIBGCJ_CFLAGS@
266 diff -rBub libjava/boehm.cclibjava/boehm.cc
267 --- libjava/boehm.cc Thu Jan 2 21:19:53 2003
268 +++ libjava/boehm.cc Mon Mar 1 00:21:04 2004
271 #include <java/lang/Class.h>
272 #include <java/lang/reflect/Modifier.h>
273 +#include <java/lang/VirtualMachineError.h>
274 #include <java-interp.h>
276 // More nastiness: the GC wants to define TRUE and FALSE. We don't
278 for (int i = 0; i < c->method_count; ++i)
280 p = (ptr_t) c->methods[i].name;
281 + if (p == NULL) continue;
282 MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c,
284 p = (ptr_t) c->methods[i].signature;
287 #ifndef COMPACT_FIELDS
288 p = (ptr_t) field->name;
289 + if (p == NULL) continue;
290 MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c8alabel);
292 p = (ptr_t) field->type;
293 + if (p == NULL) continue;
294 MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, c, c8blabel);
296 // For the interpreter, we also need to mark the memory
298 // Note: occasionally `klass' can be null. For instance, this
299 // can happen if a GC occurs between the point where an object
300 // is allocated and where the vtbl slot is set.
301 + throw new java::lang::VirtualMachineError();
302 while (klass && klass != &java::lang::Object::class$)
304 jfieldID field = JvGetFirstInstanceField (klass);
305 diff -rBub libjava/configurelibjava/configure
306 --- libjava/configure Mon Mar 1 01:45:59 2004
307 +++ libjava/configure Sun Feb 29 22:13:11 2004
308 @@ -1180,13 +1180,13 @@
309 CFLAGS="$ac_save_CFLAGS"
310 elif test $ac_cv_prog_cc_g = yes; then
311 if test "$GCC" = yes; then
318 if test "$GCC" = yes; then
324 @@ -1287,9 +1287,9 @@
325 if test "$ac_test_CXXFLAGS" = set; then
326 CXXFLAGS="$ac_save_CXXFLAGS"
327 elif test $ac_cv_prog_cxx_g = yes; then
336 @@ -1683,6 +1683,9 @@
340 +cat >> confdefs.h <<\EOF
345 # Only use libltdl for native builds.
346 @@ -1697,9 +1700,9 @@
350 - cat >> confdefs.h <<\EOF
353 +# cat >> confdefs.h <<\EOF
357 # Sigh. Libtool's macro doesn't do the right thing.
358 INCLTDL="-I\$(top_srcdir)/libltdl $INCLTDL"
359 @@ -5644,7 +5647,7 @@
363 - test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
364 + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -Os"
368 @@ -5798,7 +5801,7 @@
369 echo $ac_n "checking for g++ -ffloat-store bug""... $ac_c" 1>&6
370 echo "configure:5796: checking for g++ -ffloat-store bug" >&5
371 save_CFLAGS="$CFLAGS"
372 -CFLAGS="-x c++ -O2 -ffloat-store"
373 +CFLAGS="-x c++ -Os -ffloat-store"
374 cat > conftest.$ac_ext <<EOF
375 #line 5800 "configure"
376 #include "confdefs.h"
377 diff -rBub libjava/configure.inlibjava/configure.in
378 --- libjava/configure.in Mon Mar 1 01:45:59 2004
379 +++ libjava/configure.in Mon Mar 1 00:28:09 2004
381 dnl Work around a g++ bug. Reported to gcc-bugs@gcc.gnu.org on Jan 22, 2000.
382 AC_MSG_CHECKING([for g++ -ffloat-store bug])
383 save_CFLAGS="$CFLAGS"
384 -CFLAGS="-x c++ -O2 -ffloat-store"
385 +CFLAGS="-x c++ -Os -ffloat-store"
386 AC_TRY_COMPILE([#include <math.h>], ,
388 [AC_DEFINE(__NO_MATH_INLINES)
389 diff -rBub libjava/gnu/gcj/convert/BytesToUnicode.javalibjava/gnu/gcj/convert/BytesToUnicode.java
390 --- libjava/gnu/gcj/convert/BytesToUnicode.java Mon Jul 30 13:24:17 2001
391 +++ libjava/gnu/gcj/convert/BytesToUnicode.java Fri Feb 27 04:17:13 2004
396 - return new Input_8859_1();
397 + throw new UnsatisfiedLinkError();
408 // We pass the original name to iconv and let it handle
414 throw new java.io.UnsupportedEncodingException(encoding
421 diff -rBub libjava/gnu/gcj/convert/IOConverter.javalibjava/gnu/gcj/convert/IOConverter.java
422 --- libjava/gnu/gcj/convert/IOConverter.java Sun Sep 16 19:28:53 2001
423 +++ libjava/gnu/gcj/convert/IOConverter.java Sun Feb 29 01:53:14 2004
426 // True if we have to do byte-order conversions on iconv()
428 - static protected boolean iconv_byte_swap;
429 + static protected boolean iconv_byte_swap = false;
434 hash.put ("cseucpkdfmtjapanese", "EUCJIS");
435 hash.put ("euc-jp", "EUCJIS");
437 - iconv_byte_swap = iconv_init ();
438 + //iconv_byte_swap = iconv_init ();
441 private static native boolean iconv_init ();
442 diff -rBub libjava/gnu/gcj/convert/UnicodeToBytes.javalibjava/gnu/gcj/convert/UnicodeToBytes.java
443 --- libjava/gnu/gcj/convert/UnicodeToBytes.java Fri Aug 17 20:56:01 2001
444 +++ libjava/gnu/gcj/convert/UnicodeToBytes.java Fri Feb 27 04:17:02 2004
449 - return new Output_8859_1();
450 + throw new UnsatisfiedLinkError();
451 + //return new Output_8859_1();
462 // We pass the original name to iconv and let it handle
463 @@ -105,10 +107,11 @@
468 // Put the original exception in the throwable.
469 throw new java.io.UnsupportedEncodingException(encoding + " ("
476 diff -rBub libjava/gnu/gcj/runtime/FirstThread.javalibjava/gnu/gcj/runtime/FirstThread.java
477 --- libjava/gnu/gcj/runtime/FirstThread.java Wed Oct 10 15:25:43 2001
478 +++ libjava/gnu/gcj/runtime/FirstThread.java Fri Feb 27 05:05:29 2004
480 // classes are linked in. Otherwise bootstrapping fails. These
481 // classes are only referred to via Class.forName(), so we add an
482 // explicit mention of them here.
484 static final Class Kcert = java.security.cert.Certificate.class;
485 static final Class Kfile = gnu.gcj.protocol.file.Handler.class;
486 static final Class Khttp = gnu.gcj.protocol.http.Handler.class;
487 static final Class Kjar = gnu.gcj.protocol.jar.Handler.class;
490 diff -rBub libjava/gnu/gcj/runtime/VMClassLoader.javalibjava/gnu/gcj/runtime/VMClassLoader.java
491 --- libjava/gnu/gcj/runtime/VMClassLoader.java Sun Dec 8 16:03:59 2002
492 +++ libjava/gnu/gcj/runtime/VMClassLoader.java Fri Feb 27 04:20:56 2004
494 import java.util.StringTokenizer;
497 -public final class VMClassLoader extends java.net.URLClassLoader
498 +public final class VMClassLoader extends java.lang.ClassLoader //java.net.URLClassLoader
500 private VMClassLoader ()
508 private static URL[] init()
513 catch (java.net.MalformedURLException x)
515 - /* Ignore this path element */
516 + // Ignore this path element
519 // Add core:/ to the end of the java.class.path so any resources
526 /** This is overridden to search the internal hash table, which
527 * will only search existing linked-in classes. This will make
528 * the default implementation of loadClass (in ClassLoader) work right.
529 diff -rBub libjava/gnu/gcj/runtime/natVMClassLoader.cclibjava/gnu/gcj/runtime/natVMClassLoader.cc
530 --- libjava/gnu/gcj/runtime/natVMClassLoader.cc Tue Dec 10 19:15:14 2002
531 +++ libjava/gnu/gcj/runtime/natVMClassLoader.cc Fri Feb 27 04:22:00 2004
535 // Now try loading using the interpreter.
538 klass = java::net::URLClassLoader::findClass (name);
543 diff -rBub libjava/java/lang/Class.javalibjava/java/lang/Class.java
544 --- libjava/java/lang/Class.java Tue Sep 3 14:33:46 2002
545 +++ libjava/java/lang/Class.java Sat Feb 28 22:48:09 2004
548 public ProtectionDomain getProtectionDomain()
551 SecurityManager sm = System.getSecurityManager();
553 sm.checkPermission(ClassLoader.protectionDomainPermission);
555 ProtectionDomain protectionDomain = getProtectionDomain0();
557 if (protectionDomain == null)
559 return ClassLoader.unknownProtectionDomain;
562 return protectionDomain;
566 public String toString ()
567 diff -rBub libjava/java/lang/ClassLoader.javalibjava/java/lang/ClassLoader.java
568 --- libjava/java/lang/ClassLoader.java Fri Jan 24 11:38:24 2003
569 +++ libjava/java/lang/ClassLoader.java Sat Feb 28 21:07:31 2004
571 // FIXME: should there be a special protection domain used for native code?
573 // The permission required to check what a classes protection domain is.
574 - static final Permission protectionDomainPermission
575 - = new RuntimePermission("getProtectionDomain");
576 + //static final Permission protectionDomainPermission;
577 + //= new RuntimePermission("getProtectionDomain");
578 // The protection domain returned if we cannot determine it.
579 static ProtectionDomain unknownProtectionDomain;
580 // Protection domain to use when a class is defined without one specified.
581 @@ -355,12 +355,14 @@
584 Permissions permissions = new Permissions();
585 - permissions.add(new AllPermission());
586 - unknownProtectionDomain = new ProtectionDomain(null, permissions);
587 + //permissions.add(new AllPermission());
588 + //unknownProtectionDomain = new ProtectionDomain(null, permissions);
591 CodeSource cs = new CodeSource(null, null);
592 defaultProtectionDomain =
593 new ProtectionDomain(cs, Policy.getPolicy().getPermissions(cs));
598 diff -rBub libjava/java/lang/SecurityManager.javalibjava/java/lang/SecurityManager.java
599 --- libjava/java/lang/SecurityManager.java Sun Dec 1 08:16:19 2002
600 +++ libjava/java/lang/SecurityManager.java Fri Feb 27 02:08:27 2004
602 public Object getSecurityContext()
604 // XXX Should be: return AccessController.getContext();
605 - return new SecurityContext(getClassContext());
606 + //return new SecurityContext(getClassContext());
611 diff -rBub libjava/java/lang/natClass.cclibjava/java/lang/natClass.cc
612 --- libjava/java/lang/natClass.cc Thu May 1 14:52:35 2003
613 +++ libjava/java/lang/natClass.cc Mon Mar 1 01:00:12 2004
616 _Jv_Utf8Const *name = _Jv_makeUtf8Const (buffer, length);
619 if (! _Jv_VerifyClassName (name))
620 throw new java::lang::ClassNotFoundException (className);
623 jclass klass = (buffer[0] == '['
624 ? _Jv_FindClassFromSignature (name->data, loader)
625 @@ -1518,7 +1520,7 @@
628 klass->otable->state = 1;
632 _Jv_MethodSymbol sym = klass->otable_syms[0];
634 diff -rBub libjava/java/lang/natClassLoader.cclibjava/java/lang/natClassLoader.cc
635 --- libjava/java/lang/natClassLoader.cc Thu Dec 19 11:32:17 2002
636 +++ libjava/java/lang/natClassLoader.cc Sun Feb 29 23:55:48 2004
638 _Jv_Constants *pool = &klass->constants;
639 for (int index = 1; index < pool->size; ++index)
642 if (pool->tags[index] == JV_CONSTANT_Class)
644 _Jv_Utf8Const *name = pool->data[index].utf8;
645 @@ -217,12 +218,13 @@
647 else if (pool->tags[index] == JV_CONSTANT_String)
652 str = _Jv_NewStringUtf8Const (pool->data[index].utf8);
653 pool->data[index].o = str;
654 - pool->tags[index] |= JV_CONSTANT_ResolvedFlag;
656 + //pool->tags[index] |= JV_CONSTANT_ResolvedFlag;
661 @@ -253,10 +255,10 @@
663 if (klass->vtable == NULL)
664 _Jv_MakeVTable(klass);
667 if (klass->otable != NULL && klass->otable->state == 0)
668 _Jv_LinkOffsetTable(klass);
673 _Jv_PushClass (klass);
674 diff -rBub libjava/java/security/Security.javalibjava/java/security/Security.java
675 --- libjava/java/security/Security.java Tue Dec 31 14:49:37 2002
676 +++ libjava/java/security/Security.java Sat Feb 28 21:33:32 2004
682 String base = System.getProperty("gnu.classpath.home.url");
683 loadProviders(base, System.getProperty("gnu.classpath.vm.shortname"));
684 loadProviders(base, "classpath");
688 // This class can't be instantiated.
689 diff -rBub libjava/libgcj.spec.inlibjava/libgcj.spec.in
690 --- libjava/libgcj.spec.in Wed Feb 12 18:09:27 2003
691 +++ libjava/libgcj.spec.in Sun Feb 29 17:15:19 2004
693 # to link with libgcj.
696 -*lib: -lgcj -lm @LIBICONV@ @GCSPEC@ @THREADSPEC@ @ZLIBSPEC@ @SYSTEMSPEC@ %(libgcc) %(liborig)
697 +*lib: -lm @LIBICONV@ @GCSPEC@ @THREADSPEC@ @ZLIBSPEC@ @SYSTEMSPEC@ %(libgcc) %(liborig)
699 +*jc1: @HASH_SYNC_SPEC@ @DIVIDESPEC@ @CHECKREFSPEC@ @JC1GCSPEC@ @EXCEPTIONSPEC@ @BACKTRACESPEC@ @IEEESPEC@ -fkeep-inline-functions -fno-omit-frame-pointer -Os -ffunction-sections -fdata-sections
701 -*jc1: @HASH_SYNC_SPEC@ @DIVIDESPEC@ @CHECKREFSPEC@ @JC1GCSPEC@ @EXCEPTIONSPEC@ @BACKTRACESPEC@ @IEEESPEC@ -fkeep-inline-functions
702 diff -rBub libjava/prims.cclibjava/prims.cc
703 --- libjava/prims.cc Fri Apr 25 09:02:21 2003
704 +++ libjava/prims.cc Sat Feb 28 20:32:25 2004
708 _Jv_ushort *aptr, *bptr;
709 + if (a == NULL || b == NULL) return false;
712 if (a->hash != b->hash)
715 _Jv_equal (Utf8Const* a, jstring str, jint hash)
717 + if (a == NULL) return false;
718 if (a->hash != (_Jv_ushort) hash)
720 jint len = str->length();
723 _Jv_equaln (Utf8Const *a, jstring str, jint n)
725 + if (a == NULL) return false;
726 jint len = str->length();
728 jchar *sptr = _Jv_GetStringChars (str);
731 _Jv_platform_initialize ();
734 + // _Jv_JNI_Init ();
736 _Jv_GCInitializeFinalizers (&::gnu::gcj::runtime::FinalizerThread::finalizerReady);
738 --- gcc/toplev.c Mon May 5 14:55:26 2003
739 +++ gcc/toplev.c Wed Mar 10 05:10:33 2004
741 if `-fSTRING' is seen as an option.
742 (If `-fno-STRING' is seen as an option, the opposite value is stored.) */
744 +static int ignoreme;
745 static const lang_independent_options f_options[] =
747 {"eliminate-dwarf2-dups", &flag_eliminate_dwarf2_dups, 1,
748 @@ -1188,6 +1189,8 @@
749 N_("Trap for signed overflow in addition / subtraction / multiplication") },
750 { "new-ra", &flag_new_regalloc, 1,
751 N_("Use graph coloring register allocation.") },
752 + { "inhibit-reflection", &ignoreme, 1,
756 /* Table of language-specific options. */