This is the mail archive of the
java-patches@sources.redhat.com
mailing list for the Java project.
Patch: fix for -static
- To: Java Patch List <java-patches at sourceware dot cygnus dot com>
- Subject: Patch: fix for -static
- From: Tom Tromey <tromey at redhat dot com>
- Date: 11 Dec 2000 17:44:40 -0700
- Reply-To: tromey at redhat dot com
This patch allows statically linked executables to work.
Without it, certain required classes are not linked in statically and
libgcj bootstrapping will fail.
I'm checking this in.
Thanks to Jeff Sturm for the class list.
2000-12-11 Tom Tromey <tromey@redhat.com>
* gnu/gcj/runtime/FirstThread.java (Kcert, Kfile, Khttp, Kjar):
New static final fields.
Tom
Index: gnu/gcj/runtime/FirstThread.java
===================================================================
RCS file: /cvs/gcc/egcs/libjava/gnu/gcj/runtime/FirstThread.java,v
retrieving revision 1.5
diff -u -r1.5 FirstThread.java
--- FirstThread.java 2000/08/26 19:25:13 1.5
+++ FirstThread.java 2000/12/12 00:28:40
@@ -1,6 +1,6 @@
// FirstThread.java - Implementation of very first thread.
-/* Copyright (C) 1998, 1999 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000 Free Software Foundation
This file is part of libgcj.
@@ -74,4 +74,13 @@
private Class klass;
private String klass_name;
private Object args;
+
+ // If the user links statically then we need to ensure that these
+ // classes are linked in. Otherwise bootstrapping fails. These
+ // classes are only referred to via Class.forName(), so we add an
+ // explicit mention of them here.
+ static final Class Kcert = java.security.cert.Certificate.class;
+ static final Class Kfile = gnu.gcj.protocol.file.Handler.class;
+ static final Class Khttp = gnu.gcj.protocol.http.Handler.class;
+ static final Class Kjar = gnu.gcj.protocol.jar.Handler.class;
}