From 15801ed8984e7463b3fbe517e13d86cd08db9b15 Mon Sep 17 00:00:00 2001 From: adam Date: Thu, 26 Feb 2004 03:29:24 +0000 Subject: [PATCH] way better darcs-hash:20040226032924-5007d-d1ee7be63453817af9dc2f3198943650e5171080.gz --- Makefile | 28 ++++++++++----- src/org/ibex/Scheduler.java | 4 +++ src/org/ibex/util/BytecodePruner.java | 63 ++++++++++++++------------------- 3 files changed, 50 insertions(+), 45 deletions(-) diff --git a/Makefile b/Makefile index 3b54455..b376eba 100644 --- a/Makefile +++ b/Makefile @@ -253,23 +253,35 @@ build/$(platform)/$(target_bin): upstream/jpeg-6b/build-$(target)/libjpeg.a rm -f build/pruned/java/lang/System*.* cp upstream/gcc-3.3/src/libjava/java/lang/System.java build/pruned/java/lang/ -# -fnew-ra \ -# -ffunction-sections \ -# -fdata-sections \ -# -fomit-frame-pointer \ -# -fno-force-mem \ -# -fno-force-addr \ -# -fmerge-all-constants \ + cd build/pruned; \ + for A in `find gnu/gcj java/lang java/net -name \*.class -or -name \*.java`; do \ + echo compiling $$A....; \ + ../../upstream/install/bin/$(target)-gcj \ + -w -c -Os \ + -fCLASSPATH=../../build/$(platform)/ibex.jar \ + -fassume-compiled \ + $$A && \ + (mkdir -p ../../build/$(platform)/`dirname $$A`; mv *.o ../../build/$(platform)/`dirname $$A`); \ + done + cd build/pruned; rm -rf gnu/gcj java/lang java/net cd build/pruned; \ for A in `find . -name \*.class -or -name \*.java`; do \ echo compiling $$A....; \ ../../upstream/install/bin/$(target)-gcj \ -w -c -Os \ + -fassume-compiled \ + -ffunction-sections \ + -fdata-sections \ + -fomit-frame-pointer \ + -fno-force-mem \ + -fno-force-addr \ + -fmerge-all-constants \ -fCLASSPATH=../../build/$(platform)/ibex.jar \ $$A && \ (mkdir -p ../../build/$(platform)/`dirname $$A`; mv *.o ../../build/$(platform)/`dirname $$A`); \ done +# -fnew-ra \ rm -f build/$(platform)/ibex.a @@ -292,7 +304,7 @@ build/$(platform)/$(target_bin): upstream/jpeg-6b/build-$(target)/libjpeg.a -Os -w \ -Wl,--whole-archive \ build/$(platform)/ibex.a \ - -Wl,--no-whole-archive \ + -Wl,--no-whole-archive,--gc-sections \ build/$(platform)/natibex.a \ upstream/jpeg-6b/build-$(target)/libjpeg.a \ $(link_flags) \ diff --git a/src/org/ibex/Scheduler.java b/src/org/ibex/Scheduler.java index ec8253c..46b076a 100644 --- a/src/org/ibex/Scheduler.java +++ b/src/org/ibex/Scheduler.java @@ -60,6 +60,7 @@ public class Scheduler { protected static Queue runnable = new Queue(50); public void defaultRun() { while(true) { + System.out.println("enter"); current = (Task)runnable.remove(true); try { // FIXME hideous @@ -84,8 +85,11 @@ public class Scheduler { } catch (Exception e) { Log.info(Scheduler.class, "a Task threw an exception which was caught by the scheduler:"); Log.info(Scheduler.class, e); + } catch (Throwable t) { + t.printStackTrace(); } // if an Error is thrown it will cause the engine to quit + System.out.println("leave"); } } } diff --git a/src/org/ibex/util/BytecodePruner.java b/src/org/ibex/util/BytecodePruner.java index 6243ffa..d8aff54 100644 --- a/src/org/ibex/util/BytecodePruner.java +++ b/src/org/ibex/util/BytecodePruner.java @@ -7,8 +7,6 @@ import org.apache.bcel.generic.*; import org.apache.bcel.classfile.*; import org.apache.bcel.util.*; -// can we drop nio? in natibex.a? - public class BytecodePruner { public static final boolean deleteMethods = false; @@ -91,17 +89,15 @@ public class BytecodePruner { bcp.loadAllMethods("gnu.gcj.protocol.core.Handler"); bcp.loadAllMethods("gnu.gcj.protocol.jar.Handler"); - /* - bcp.loadAllMethods("java.util.Date"); - bcp.loadAllMethods("java.text.DateFormat"); - bcp.loadAllMethods("java.text.NumberFormat"); - */ + // to ensure we get all the stuff that might be called from CNI + bcp.loadAllMethods("org.ibex.plat.Linux"); + bcp.loadAllMethods("org.ibex.plat.X11"); + bcp.loadAllMethods("org.ibex.Surface"); + bcp.loadAllMethods("org.ibex.Picture"); + bcp.loadAllMethods("org.ibex.PixelBuffer"); - Method[] meths = getMethods(repo.loadClass("org.ibex.plat.Linux")); - for(int i=0; i