diff options
| author | Florian Boor <florian.boor@kernelconcepts.de> | 2008-01-21 21:09:09 +0000 |
|---|---|---|
| committer | Florian Boor <florian.boor@kernelconcepts.de> | 2008-01-21 21:09:09 +0000 |
| commit | afd58cdcce656ced784bfca78d7d96e2edca8cee (patch) | |
| tree | b49291fedc042760b35f74afa9b7e82b591147e5 /packages/cacao | |
| parent | ac6de0f3c0d8d5fe5708d9125c1319fbf5d627a6 (diff) | |
| parent | a7a4c7d6f9bbcda53d3bf07d51142d41e1a4558b (diff) | |
merge of '1cc9d40e03f431fac4150580f6a58521cae55509'
and 'a250ef0b1707ead866fe051ca88c56e538d51bfb'
Diffstat (limited to 'packages/cacao')
| -rw-r--r-- | packages/cacao/cacao.inc | 1 | ||||
| -rw-r--r-- | packages/cacao/cacao_0.98+hg20071001.bb | 10 | ||||
| -rw-r--r-- | packages/cacao/cacaoh-native.inc | 3 | ||||
| -rw-r--r-- | packages/cacao/files/cacao-0.98+hg-arm-cacheflush-fix.patch | 18 | ||||
| -rw-r--r-- | packages/cacao/files/cacao-0.98+hg-attachthread.patch | 89 |
5 files changed, 110 insertions, 11 deletions
diff --git a/packages/cacao/cacao.inc b/packages/cacao/cacao.inc index cc107abf27..0f7fa554ac 100644 --- a/packages/cacao/cacao.inc +++ b/packages/cacao/cacao.inc @@ -19,7 +19,6 @@ EXTRA_OECONF = "\ ${@['','--enable-softfloat'][bb.data.getVar('TARGET_FPU',d,1) == 'soft']} \ --enable-debug \ --with-cacaoh=${STAGING_BINDIR_NATIVE}/cacaoh-${PV} \ - --with-classpath-libdir=${STAGING_LIBDIR}/classpath \ --with-classpath-includedir=${STAGING_INCDIR}/classpath \ --with-classpath-classes=${STAGING_DATADIR}/classpath/glibj.zip \ --with-target-classpath-classes=${datadir}/classpath/glibj.zip \ diff --git a/packages/cacao/cacao_0.98+hg20071001.bb b/packages/cacao/cacao_0.98+hg20071001.bb index 38fcb37b82..94919ad24a 100644 --- a/packages/cacao/cacao_0.98+hg20071001.bb +++ b/packages/cacao/cacao_0.98+hg20071001.bb @@ -1,12 +1,12 @@ require cacao.inc -PR = "r5" +PR = "r7" SRC_URI = "\ http://jalimo.evolvis.org/repository/sources/cacao-${PV}.tar.bz2;md5sum=9ff10c929bd0cbf15909107c1aff7518 \ file://cacao-0.98+svn-libdir.diff;patch=1 \ file://cacao-0.98+svn-classpath_var.patch;patch=1 \ - file://cacao-0.98+hg-arm-cacheflush-workaround.patch;patch=1 \ + file://cacao-0.98+hg-arm-cacheflush-fix.patch;patch=1 \ file://cacao-0.98+hg-attachthread.patch;patch=1 \ " @@ -14,3 +14,9 @@ EXTRA_OECONF += "\ --enable-annotations \ " +# Quirks for Nokia N800: +# - with mfloat-abi=softfp the runtime fails to run anything +# - without --enable-softfloat it cannot find files within Jars +TARGET_CC_ARCH_nokia800 = "-march=armv6j -mtune=arm1136jf-s -mfpu=vfp -mfloat-abi=soft" + +EXTRA_OECONF_append_nokia800 = "--enable-softfloat" diff --git a/packages/cacao/cacaoh-native.inc b/packages/cacao/cacaoh-native.inc index 1f81672e7f..3e7fdd60c6 100644 --- a/packages/cacao/cacaoh-native.inc +++ b/packages/cacao/cacaoh-native.inc @@ -8,8 +8,7 @@ S = "${WORKDIR}/cacao-${PV}" PR = "r1" -inherit autotools -inherit native +inherit autotools native EXTRA_OECONF = " \ --with-classpath-includedir=${STAGING_INCDIR}/classpath \ diff --git a/packages/cacao/files/cacao-0.98+hg-arm-cacheflush-fix.patch b/packages/cacao/files/cacao-0.98+hg-arm-cacheflush-fix.patch new file mode 100644 index 0000000000..4e63f501ff --- /dev/null +++ b/packages/cacao/files/cacao-0.98+hg-arm-cacheflush-fix.patch @@ -0,0 +1,18 @@ +diff -r df1b780317c3 src/vm/jit/arm/asmpart.S +--- a/src/vm/jit/arm/asmpart.S Thu Jan 17 01:01:35 2008 +0100 ++++ b/src/vm/jit/arm/asmpart.S Mon Jan 21 00:14:41 2008 +0100 +@@ -323,10 +323,11 @@ asm_cacheflush: + mov a1, #0xff000000 + #endif + ++#if defined(__ARM_EABI__) ++ swi 0x0 ++ ldmfd sp!, {r7} ++#else + swi sys_cacheflush +- +-#if defined(__ARM_EABI__) +- ldmfd sp!, {r7} + #endif + + mov pc, lr diff --git a/packages/cacao/files/cacao-0.98+hg-attachthread.patch b/packages/cacao/files/cacao-0.98+hg-attachthread.patch index b3dfabc625..cda01bcfb2 100644 --- a/packages/cacao/files/cacao-0.98+hg-attachthread.patch +++ b/packages/cacao/files/cacao-0.98+hg-attachthread.patch @@ -1,12 +1,89 @@ -diff -r d8fe2c3ba284 src/threads/native/threads.c ---- a/src/threads/native/threads.c Sun Dec 30 17:43:35 2007 +0100 -+++ b/src/threads/native/threads.c Wed Jan 02 16:41:57 2008 +0100 -@@ -1432,6 +1432,8 @@ bool threads_attach_current_thread(JavaV +# Makes the JNI function AttachCurrentThread work properly. + +Index: cacao-0.98+hg20071001/src/mm/boehm-gc/include/gc.h +=================================================================== +--- cacao-0.98+hg20071001.orig/src/mm/boehm-gc/include/gc.h 2008-01-15 14:45:41.000000000 +0100 ++++ cacao-0.98+hg20071001/src/mm/boehm-gc/include/gc.h 2008-01-15 14:46:30.000000000 +0100 +@@ -905,6 +905,8 @@ + /* in returned list. */ + extern void GC_thr_init GC_PROTO((void));/* Needed for Solaris/X86 */ - threads_thread_set_object(thread, (java_handle_t *) t); ++extern void GC_thr_init_foreign GC_PROTO((void));/* Needed for Solaris/X86 */ ++ + #endif /* THREADS && !SRC_M3 */ + + #if defined(GC_WIN32_THREADS) && !defined(__CYGWIN32__) && !defined(__CYGWIN__) +Index: cacao-0.98+hg20071001/src/mm/boehm-gc/pthread_support.c +=================================================================== +--- cacao-0.98+hg20071001.orig/src/mm/boehm-gc/pthread_support.c 2008-01-15 14:45:41.000000000 +0100 ++++ cacao-0.98+hg20071001/src/mm/boehm-gc/pthread_support.c 2008-01-15 14:46:30.000000000 +0100 +@@ -864,6 +864,27 @@ + } + #endif /* GC_NETBSD_THREADS */ -+ threads_set_current_threadobject(thread); ++void GC_thr_init_foreign() ++{ ++# ifndef GC_DARWIN_THREADS ++ int dummy; ++# endif ++ GC_thread t; ++ LOCK(); ++ ++ /* Add the initial thread, so we can stop it. */ ++ t = GC_new_thread(pthread_self()); ++# ifdef GC_DARWIN_THREADS ++ t -> stop_info.mach_thread = mach_thread_self(); ++# else ++ t -> stop_info.stack_ptr = (ptr_t)(&dummy); ++# endif ++ t -> flags = DETACHED; ++ ++ UNLOCK(); + ++} ++ + /* We hold the allocation lock. */ + void GC_thr_init() + { +Index: cacao-0.98+hg20071001/src/mm/boehm.c +=================================================================== +--- cacao-0.98+hg20071001.orig/src/mm/boehm.c 2008-01-15 14:45:41.000000000 +0100 ++++ cacao-0.98+hg20071001/src/mm/boehm.c 2008-01-15 14:46:30.000000000 +0100 +@@ -108,6 +108,10 @@ + GC_expand_hp(heapstartsize - heapcurrentsize); + } + ++void gc_init_foreign() ++{ ++ GC_thr_init_foreign(); ++} + + static void gc_ignore_warnings(char *msg, GC_word arg) + { +Index: cacao-0.98+hg20071001/src/mm/gc-common.h +=================================================================== +--- cacao-0.98+hg20071001.orig/src/mm/gc-common.h 2008-01-15 14:45:41.000000000 +0100 ++++ cacao-0.98+hg20071001/src/mm/gc-common.h 2008-01-15 14:46:30.000000000 +0100 +@@ -74,6 +74,7 @@ + void gc_finalize_all(void); + void *gc_out_of_memory(size_t bytes_requested); + ++void gc_init_foreign(); + + /* inlined functions **********************************************************/ + +Index: cacao-0.98+hg20071001/src/threads/native/threads.c +=================================================================== +--- cacao-0.98+hg20071001.orig/src/threads/native/threads.c 2008-01-15 14:45:41.000000000 +0100 ++++ cacao-0.98+hg20071001/src/threads/native/threads.c 2008-01-15 16:01:22.000000000 +0100 +@@ -1392,7 +1392,10 @@ + /* thread is completely initialized */ ++ gc_init_foreign(); ++ threads_thread_state_runnable(thread); ++ threads_set_current_threadobject(thread); + + DEBUGTHREADS("attaching", thread); + |
