* src/threads/threads-common.c [ENABLE_GC_CACAO]: References to java.lang.Thread
authormichi <none@none>
Sun, 10 Jun 2007 13:44:33 +0000 (13:44 +0000)
committermichi <none@none>
Sun, 10 Jun 2007 13:44:33 +0000 (13:44 +0000)
now get registered uppon threadobject creation.

* src/threads/native/threads.c (threads_init) [ENABLE_GC_CACAO]: Register
mainthreadobject with the GC as well.

--HG--
branch : exact-gc

configure.ac
m4/classpath.m4 [new file with mode: 0644]
src/threads/native/threads.c
src/threads/threads-common.c
src/vm/exceptions.c
src/vm/exceptions.h
src/vm/jit/s390/emit.c
src/vmcore/linker.h
src/vmcore/utf8.c
src/vmcore/utf8.h

index 85e884b3afa565474b80a0e83d27862bcfcfb6eb..432713ac203838c9c18598e0b100b2fd8c6d5104 100644 (file)
@@ -22,7 +22,7 @@ dnl along with this program; if not, write to the Free Software
 dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 dnl 02110-1301, USA.
 dnl 
-dnl $Id: configure.ac 8022 2007-06-06 11:31:28Z twisti $
+dnl $Id: configure.ac 8027 2007-06-07 10:30:33Z michi $
 
 dnl Process this file with autoconf to produce a configure script.
 
diff --git a/m4/classpath.m4 b/m4/classpath.m4
new file mode 100644 (file)
index 0000000..94e0707
--- /dev/null
@@ -0,0 +1,116 @@
+dnl m4/classpath.m4
+dnl
+dnl Copyright (C) 2007 R. Grafl, A. Krall, C. Kruegel,
+dnl C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
+dnl E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
+dnl J. Wenninger, Institut f. Computersprachen - TU Wien
+dnl 
+dnl This file is part of CACAO.
+dnl 
+dnl This program is free software; you can redistribute it and/or
+dnl modify it under the terms of the GNU General Public License as
+dnl published by the Free Software Foundation; either version 2, or (at
+dnl your option) any later version.
+dnl 
+dnl This program is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl General Public License for more details.
+dnl 
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+dnl 02110-1301, USA.
+dnl 
+dnl $Id: configure.ac 7228 2007-01-19 01:13:48Z edwin $
+
+
+dnl which Java core library should we use
+
+AC_DEFUN([AC_CHECK_WITH_CLASSPATH],[
+AC_MSG_CHECKING(which Java core library to use)
+AC_ARG_WITH([classpath],
+            [AS_HELP_STRING(--with-classpath=<type>,specifies which type of classpath to use as Java core library (cldc1.1,gnu) [[default=gnu]])],
+            [case "${withval}" in
+                cldc1.1)
+                    WITH_CLASSPATH=cldc1.1
+                    AC_DEFINE([WITH_CLASSPATH_CLDC1_1], 1, [use Sun's CLDC1.1 classes])
+                    AC_SUBST(WITH_CLASSPATH_CLDC1_1)
+                    ;;
+                gnu)
+                    WITH_CLASSPATH=gnu
+                    AC_DEFINE([WITH_CLASSPATH_GNU], 1, [use GNU Classpath])
+                    AC_SUBST(WITH_CLASSPATH_GNU)
+                    ;;
+                *)
+                    AC_MSG_ERROR(unknown classpath ${withval})
+                    ;;
+             esac],
+            [WITH_CLASSPATH=gnu
+             AC_DEFINE([WITH_CLASSPATH_GNU], 1, [use GNU Classpath])
+             AC_SUBST(WITH_CLASSPATH_GNU)])
+AC_MSG_RESULT(${WITH_CLASSPATH})
+AM_CONDITIONAL([WITH_CLASSPATH_CLDC1_1], test x"${WITH_CLASSPATH}" = "xcldc1.1")
+AM_CONDITIONAL([WITH_CLASSPATH_GNU], test x"${WITH_CLASSPATH}" = "xgnu")
+])
+
+
+dnl where is Java core library installed
+
+AC_DEFUN([AC_CHECK_WITH_CLASSPATH_PREFIX],[
+AC_MSG_CHECKING(where Java core library is installed)
+AC_ARG_WITH([classpath-prefix],
+            [AS_HELP_STRING(--with-classpath-prefix=<dir>,installation directory of Java core library [[default=/usr/local/classpath]])],
+            [CLASSPATH_PREFIX=${withval}],
+            [CLASSPATH_PREFIX=/usr/local/classpath])
+AC_MSG_RESULT(${CLASSPATH_PREFIX})
+AC_DEFINE_UNQUOTED([CLASSPATH_PREFIX], "${CLASSPATH_PREFIX}", [Java core library installation directory])
+AC_SUBST(CLASSPATH_PREFIX)
+])
+
+
+dnl where are Java core library classes installed
+
+AC_DEFUN([AC_CHECK_WITH_CLASSPATH_CLASSES],[
+AC_MSG_CHECKING(where Java core library classes are installed)
+AC_ARG_WITH([classpath-classes],
+            [AS_HELP_STRING(--with-classpath-classes=<path>,path to Java core library classes (includes the name of the file and may be flat) [[default=/usr/local/classpath/share/classpath/glibj.zip]])],
+            [CLASSPATH_CLASSES=${withval}],
+            [CLASSPATH_CLASSES=${CLASSPATH_PREFIX}/share/classpath/glibj.zip])
+AC_MSG_RESULT(${CLASSPATH_CLASSES})
+AC_DEFINE_UNQUOTED([CLASSPATH_CLASSES], "${CLASSPATH_CLASSES}", [Java core library classes])
+AC_SUBST(CLASSPATH_CLASSES)
+])
+
+
+dnl where are Java core library native libraries installed
+
+AC_DEFUN([AC_CHECK_WITH_CLASSPATH_LIBDIR],[
+AC_MSG_CHECKING(where Java core library native libraries are installed)
+AC_ARG_WITH([classpath-libdir],
+            [AS_HELP_STRING(--with-classpath-libdir=<dir>,installation directory of Java core library native libraries [[default=/usr/local/classpath/lib]])],
+            [CLASSPATH_LIBDIR=${withval}],
+            [CLASSPATH_LIBDIR=${CLASSPATH_PREFIX}/lib])
+AC_MSG_RESULT(${CLASSPATH_LIBDIR})
+
+dnl expand CLASSPATH_LIBDIR to something that is usable in C code
+AS_AC_EXPAND([CLASSPATH_LIBDIR], ${CLASSPATH_LIBDIR})
+AC_DEFINE_UNQUOTED([CLASSPATH_LIBDIR], "${CLASSPATH_LIBDIR}", [Java core library native libraries installation directory])
+AC_SUBST(CLASSPATH_LIBDIR)
+])
+
+
+dnl where are Java core library headers installed
+
+AC_DEFUN([AC_CHECK_WITH_CLASSPATH_INCLUDEDIR],[
+AC_MSG_CHECKING(where Java core library headers are installed)
+AC_ARG_WITH([classpath-includedir],
+            [AS_HELP_STRING(--with-classpath-includedir=<dir>,installation directory of Java core library headers [[default=/usr/local/classpath/include]])],
+            [CLASSPATH_INCLUDEDIR=${withval}],
+            [CLASSPATH_INCLUDEDIR=${CLASSPATH_PREFIX}/include])
+AC_MSG_RESULT(${CLASSPATH_INCLUDEDIR})
+
+AC_CHECK_HEADER([${CLASSPATH_INCLUDEDIR}/jni.h],
+                [AC_DEFINE_UNQUOTED([CLASSPATH_JNI_H], "${CLASSPATH_INCLUDEDIR}/jni.h", [Java core library jni.h header])],
+                [AC_MSG_ERROR(cannot find jni.h)])
+])
index 220adf226bfa4549817946d17383ceafde0f83ff..adbb7779e7e964ba47c47db1981ae2a528173c25 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: threads.c 8027 2007-06-07 10:30:33Z michi $
+   $Id: threads.c 8052 2007-06-10 13:44:33Z michi $
 
 */
 
@@ -899,6 +899,12 @@ bool threads_init(void)
 
        mainthread = threads_list_first();
 
+#if defined(ENABLE_GC_CACAO)
+       /* register reference to java.lang.Thread with the GC */
+
+       gc_reference_register((java_objectheader **) &(mainthread->object));
+#endif
+
        /* create a java.lang.Thread for the main thread */
 
        t = (java_lang_Thread *) builtin_new(class_java_lang_Thread);
index b1534d2a4a7fe5d11efd48984ece52594868c67e..f47ac39d6ed1dc816c1c52b743f7cd48b51933d0 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: threads-common.c 8027 2007-06-07 10:30:33Z michi $
+   $Id: threads-common.c 8052 2007-06-10 13:44:33Z michi $
 
 */
 
@@ -273,6 +273,12 @@ threadobject *threads_thread_new(void)
                /* set the threads-index */
 
                t->index = list_threads->size + 1;
+
+#if defined(ENABLE_GC_CACAO)
+               /* register reference to java.lang.Thread with the GC */
+
+               gc_reference_register((java_objectheader **) &(t->object));
+#endif
        }
 
        /* pre-compute the thinlock-word */
@@ -407,12 +413,6 @@ bool threads_thread_start_internal(utf *name, functionptr f)
        object->vm_thread = (java_lang_Object *) t;
 #endif
 
-#if defined(ENABLE_GC_CACAO)
-       /* register reference to java.lang.Thread with the GC */
-
-       gc_reference_register(&(t->object));
-#endif
-
        t->object = object;
 
        /* set java.lang.Thread fields */
@@ -481,12 +481,6 @@ void threads_thread_start(java_lang_Thread *object)
 
        threads_mutex_join_unlock();
 
-#if defined(ENABLE_GC_CACAO)
-       /* register reference to java.lang.Thread with the GC */
-
-       gc_reference_register(&(thread->object));
-#endif
-
        /* link the two objects together */
 
        thread->object = object;
index 96798bc0c2ebdda7ddee807fe34c92176e369404..0e6cfc166ad13d28436f18912eaa1f4f8c66f649 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: exceptions.c 8005 2007-06-04 13:12:56Z twisti $
+   $Id: exceptions.c 8027 2007-06-07 10:30:33Z michi $
 
 */
 
index 0a23a1eb594b1c4722b500fea85e90826643a4f6..118821ee092d70821f7362e19d1e98fd9a8d47b3 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: exceptions.h 8004 2007-06-04 12:59:04Z twisti $
+   $Id: exceptions.h 8027 2007-06-07 10:30:33Z michi $
 
 */
 
index 4ea81f56c3a85e88a02b75480093563d627664fd..adc1c2d6b791d2b881343d45846fcdc910ff6da1 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: emit.c 7966 2007-05-25 12:41:03Z pm $
+   $Id: emit.c 8027 2007-06-07 10:30:33Z michi $
 
 */
 
index f2b5b7e808f8cecb9c5e5f0d78c31b4f742cd0b8..2eff2a98dab71b0bdc111990ecbcddb8fba40afe 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: linker.h 7675 2007-04-05 14:23:04Z michi $
+   $Id: linker.h 7688 2007-04-12 09:05:12Z michi $
 */
 
 
index 11cffc103434935059d8b7c73f7fa66e6ffe52cb..9d92b9157b448731ad3373aaddd795148b7728c7 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: utf8.c 7942 2007-05-23 12:40:31Z twisti $
+   $Id: utf8.c 8027 2007-06-07 10:30:33Z michi $
 
 */
 
index 5f606487415ea6228b52917c677b4648ddced955..415b8142e0f1c48230d67606d87f24d2c2aa8b4d 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: utf8.h 7942 2007-05-23 12:40:31Z twisti $
+   $Id: utf8.h 8027 2007-06-07 10:30:33Z michi $
 
 */