removed ugly gcj hack
authoradam <adam@megacz.com>
Wed, 25 Feb 2004 09:20:51 +0000 (09:20 +0000)
committeradam <adam@megacz.com>
Wed, 25 Feb 2004 09:20:51 +0000 (09:20 +0000)
darcs-hash:20040225092051-5007d-b17acf6cbd3cea36222e56d5710cdbda2e2edfba.gz

Makefile
src/org/ibex/plat/GCJ.java
src/org/ibex/util/BytecodePruner.java

index f84ab61..7f3c4dc 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -296,7 +296,9 @@ build/$(platform)/$(target_bin): upstream/jpeg-6b/build-$(target)/libjpeg.a
                -Lupstream/install/$(target)/lib                                     \
                -Lupstream/install/lib                                               \
                -Os -w                                                               \
+               -Wl,--whole-archive \
                build/$(platform)/ibex.a                                             \
+               -Wl,--no-whole-archive \
                upstream/jpeg-6b/build-$(target)/libjpeg.a                           \
                $(link_flags)                                                        \
                upstream/gcc-3.3/build-$(target)/$(target)/boehm-gc/.libs/libgcjgc.a \
index 63fe878..e68dc29 100644 (file)
@@ -11,6 +11,7 @@ import java.security.cert.*;
 public abstract class GCJ extends Platform {
 
     // static references to these classes ensure that the linker will include them
+    /*
     public static Object c1 = new gnu.java.locale.Calendar();
     public static Object c2 = new java.util.GregorianCalendar();
     public static Object c3n = new gnu.gcj.convert.Input_ASCII();
@@ -27,6 +28,7 @@ public abstract class GCJ extends Platform {
             public String toString() { return "foocert"; }
             public PublicKey getPublicKey() { return null; }
         };
+    */
 
     protected native InputStream _getBuiltinInputStream();
 
index c579723..519fa13 100644 (file)
@@ -87,6 +87,17 @@ public class BytecodePruner {
         bcp.loadMethod("java.lang.ref.Reference.enqueue");     // the GC calls this directly
         bcp.loadAllMethods("gnu.gcj.runtime.StringBuffer");    // the compiler emits calls directly to this class
 
+        bcp.loadAllMethods("gnu.gcj.protocol.http.Handler");
+        bcp.loadAllMethods("gnu.gcj.protocol.file.Handler");
+        bcp.loadAllMethods("gnu.gcj.protocol.core.Handler");
+        bcp.loadAllMethods("gnu.gcj.protocol.jar.Handler");
+        bcp.loadAllMethods("gnu.gcj.convert.Input_UTF8");      // retrieved via reflection
+        bcp.loadAllMethods("gnu.gcj.convert.Output_UTF8");     // retrieved via reflection
+        bcp.loadAllMethods("gnu.gcj.convert.Input_8859_1");    // retrieved via reflection
+        bcp.loadAllMethods("gnu.gcj.convert.Output_8859_1");   // retrieved via reflection
+        bcp.loadAllMethods("gnu.gcj.convert.Input_ASCII");    // retrieved via reflection
+        bcp.loadAllMethods("gnu.gcj.convert.Output_ASCII");   // retrieved via reflection
+        
         bcp.loadAllMethods("java.util.Date");
         bcp.loadAllMethods("java.text.DateFormat");
         bcp.loadAllMethods("java.text.NumberFormat");