[kaffe] CVS kaffe (alex): DROPS/L4 specific shared library wrapper is obsolete.

Kaffe CVS cvs-commits at kaffe.org
Sat Mar 25 07:13:54 PST 2006


PatchSet 7172 
Date: 2006/03/25 15:00:21
Author: alex
Branch: HEAD
Tag: (none) 
Log:
DROPS/L4 specific shared library wrapper is obsolete.
Instead usage of new ldso package of DROPS, which is now
detected by configure and used by libltdl.

Members: 
	ChangeLog:1.4690->1.4691 
	FAQ/FAQ.drops:1.1->1.2 
	kaffe/kaffevm/slib.h:1.10->1.11 
	kaffe/kaffevm/systems/drops-l4threads/jthread.h:1.2->1.3 
	kaffe/kaffevm/systems/drops-l4threads/l4_loader.h:1.1->1.2(DEAD) 
	kaffe/kaffevm/systems/drops-l4threads/l4thread.c:1.1->1.2 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4690 kaffe/ChangeLog:1.4691
--- kaffe/ChangeLog:1.4690	Sat Mar 25 13:16:11 2006
+++ kaffe/ChangeLog	Sat Mar 25 15:00:21 2006
@@ -1,3 +1,17 @@
+2006-03-25 Alexander Boettcher  <alex at kaffe.org>
+	
+	DROPS/L4 specific shared library wrapper is obsolete.
+	Instead usage of new ldso package of DROPS, which is now
+	detected by configure and used by libltdl.
+
+	* kaffe/kaffevm/slib.h: remove obsolete DROPS/L4 specific include
+	* kaffe/kaffevm/systems/drops-l4threads/jthread.h,
+	  kaffe/kaffevm/systems/drops-l4threads/l4thread.c:
+	  adapt to data type changes in l4_thread_ex_regs function
+	* kaffe/kaffevm/systems/drops-l4threads/l4_loader.h:
+	  remove obsolete
+	* FAQ/FAQ.drops: Update information because of loader changes
+
 2006-03-25  Dalibor Topic  <robilad at kaffe.org>
 
 	* FAQ/FAQ.awt: Added information on runtime switches to use
Index: kaffe/FAQ/FAQ.drops
diff -u kaffe/FAQ/FAQ.drops:1.1 kaffe/FAQ/FAQ.drops:1.2
--- kaffe/FAQ/FAQ.drops:1.1	Tue Dec 20 21:54:25 2005
+++ kaffe/FAQ/FAQ.drops	Sat Mar 25 15:00:27 2006
@@ -2,7 +2,15 @@
 ==========================
 
 author: Alexander Boettcher <alex at kaffe.org>
-date: 20.12.2005
+date: 25.03.2006
+
+Changes
+-------
+20.12.2005
+ - initial checkin
+25.03.2006
+ - DROPS/L4 specific shared library wrapper removed
+ - usage of ldso packet in order to support shared libraries
 
 Notes about the DROPS port
 --------------------------
@@ -10,7 +18,7 @@
 which requires the L4Env [2] threading packet. Additionally, it uses the
 semaphore implementation of L4Env for the KSem interface of Kaffe. Further,
 the DROPS Kaffe port requires the DietLibC port, which does not provide
-the full LibC functionality (state 2005). Therefore, you will find a lot of
+the full LibC functionality (state 2006). Therefore, you will find a lot of
 unimplemented functions in the syscall interface of Kaffe, because they are
 not enabled or supported in the DROPS port of the DietLibC.
  
@@ -84,34 +92,28 @@
 
 TARGET   = kaffevm
 SYSTEMS  = x86-l4v2
-
-#INSTALL_TARGET =
+MODE     = l4env_base
 
 include $(L4DIR)/mk/prog.mk
 
-L4DIR_ABS        =$(shell cd $(L4DIR);pwd)
-
 #
 # Kaffe configure parameters
 # 
-# adapt KAFFE_KAFFEH, KAFFE_SRC to your environment !
+# adapt KAFFE_KAFFEH, KAFFE_SRC to your enviornment !
 #
 KAFFE_KAFFEH	 = $(shell cd $(PKGDIR);pwd)/native/kaffe/kaffeh/kaffeh
 KAFFE_SRC        = $(PKGDIR)/contrib
-#
-#
-#
 
-KAFFE_L4_OPTION  = -DARCH_$(ARCH) \
-                   -DDROPS_SHARED_LIBRARIES
+L4DIR_ABS        =$(shell cd $(L4DIR);pwd)
+KAFFE_L4_OPTION  = -DARCH_$(ARCH) 
 
-KAFFE_CC        = $(CC_x86) -nostdinc -nostdlib -DL4API_l4v2 $(KAFFE_L4_OPTION) -I$(L4DIR_ABS)/include/$(ARCH)/$(L4API) -I$(L4DIR_ABS)/include/$(ARCH) -I$(L4DIR_ABS)/include -I$(L4DIR_ABS)/include/l4/gmp -I$(L4DIR_ABS)/include/dietlibc -I$(GCCDIR_x86)/include -I$(DROPS_STDDIR)/include/$(ARCH)/$(L4API) -I$(DROPS_STDDIR)/include/$(ARCH) -I$(DROPS_STDDIR)/include -I$(L4DIR_ABS)/include/dietlibc -DSIZE_MAX=4294967295U
+KAFFE_CC        = $(CC_x86) -nostdinc -nostdlib -DL4API_l4v2 $(KAFFE_L4_OPTION) -I$(L4DIR_ABS)/include/$(ARCH)/$(L4API) -I$(L4DIR_ABS)/include/$(ARCH) -I$(L4DIR_ABS)/include -I$(L4DIR_ABS)/include/l4/gmp -I$(L4DIR_ABS)/include/dietlibc -I$(GCCDIR_x86)/include -I$(DROPS_STDDIR)/include/$(ARCH)/$(L4API) -I$(DROPS_STDDIR)/include/$(ARCH) -I$(DROPS_STDDIR)/include -I$(L4DIR_ABS)/include/dietlibc -DSIZE_MAX=4294967295U -I/$(L4DIR_ABS)/include/l4/zlib
 
 KAFFE_CXX       = $(KAFFE_CC)
 
-KAFFE_LDFLAGS   = -nostdlib -L$(L4DIR_ABS)/lib/$(ARCH)_$(CPU)/$(L4API) -L$(L4DIR_ABS)/lib/$(ARCH)_$(CPU) -Ttext=0x0154f000 -Wl,-gc-sections
+KAFFE_LDFLAGS   = -nostdlib -L$(L4DIR_ABS)/lib/$(ARCH)_$(CPU)/$(L4API) -L$(L4DIR_ABS)/lib/$(ARCH)_$(CPU) -Wl,--export-dynamic,--dynamic-linker=libld-l4.s.so -Wl,--rpath-link,$(L4DIR_ABS)/lib/$(ARCH)_$(CPU)/$(L4API)
 
-KAFFE_LIBS    = -T$(L4DIR_ABS)/lib/$(ARCH)_$(CPU)/main_stat.ld -lcrt0.o -lloader.s -ldiet_be_l4_start_stop -lc_be_io.o -lc_be_mmap -lc_be_mmap_util -lc_be_socket_io -lc_be_select -ldiet_c -lc_be_simple_mem -lc_be_mmap -lc_be_time -ll4util -lrtc -ll4env -lgcc -ldiet_be_simple_sleep -ll4vfs_select -ll4vfs_select_listener-server -ll4vfs_basic_name_server -ll4vfs_basic_io -ll4vfs_connection -ll4vfs_net_io -ll4vfs_name_server -ldiet_be_l4_start_stop -ll4vfs_common_io -lc_be_file-table
+KAFFE_LIBS = -nostdlib -Wl,-nostdlib -T$(L4DIR_ABS)/lib/$(ARCH)_$(CPU)/main_dyn.ld -Bdynamic -lloader.s -ldl.s -Bstatic -lcrt0.o -lc_be_io.o -lc_be_socket_io -lc_be_select -ldiet_c -u mmap_anon -lslab -lc_be_time -lrtc -lgcc -ldiet_be_simple_sleep -ll4vfs_select -ll4vfs_select_listener-server -ll4vfs_basic_name_server -ll4vfs_basic_io -ll4vfs_connection -ll4vfs_net_io -ll4vfs_name_server -ldiet_be_l4_start_stop -ll4vfs_common_io -lc_be_file-table
 
 kaffe_configure:
 	if [ ! -e ../build/config.ready ]; then \
@@ -125,20 +127,28 @@
 	        CC="$(KAFFE_CC)" \
         	CXX="$(KAFFE_CXX)" \
 	        $(KAFFE_SRC)/configure --build=i386-linux --host=i386-drops \
-                               --enable-pure-java-math --disable-sound --without-alsa --without-esd \
-                               --with-threads=drops-l4threads --with-engine=intrp \
-                               --disable-boehm-gc-configuration \
-                               --disable-nls --disable-gjdoc --disable-largefile \
-                               --disable-gtk-peer \
+                               --enable-pure-java-math \
+				--disable-sound \
+				--without-alsa \
+				--without-esd \
+				--with-threads=drops-l4threads \
+				--disable-boehm-gc-configuration \
+				--disable-nls \
+				--disable-gjdoc --disable-largefile \
+				--disable-gtk-peer \
+				--with-engine=intrp \
+				--disable-fastjar \
 		&& echo "ready" >config.ready; \
 	fi
 
 kaffevm: kaffe_configure
-	ln ../build/kaffe/kaffe/kaffe-bin kaffevm -sf
 	cd ../build \
-	&& make 
-	if [ ! -L ../build/libraries/javalib/rt.jar ]; then \
-		ln -s external/classpath/lib/glibj.zip ../build/libraries/javalib/rt.jar; \
+	&& make;
+	#ld -s ../build/kaffe/kaffe/kaffe-bin -o kaffevm
+	cp ../build/kaffe/kaffe/kaffe-bin kaffevm
+	if [ ! -e ../build/libraries/javalib/rt.jar ]; then \
+	  ln -s -f external/classpath/lib/glibj.zip \
+		../build/libraries/javalib/rt.jar; \
 	fi
 
 clean::
@@ -147,4 +157,4 @@
 cleanall::
 	rm build -rf
 
-.PHONY: kaffe_configure kaffevm
+.PHONY: clean cleanall kaffe_configure kaffevm
Index: kaffe/kaffe/kaffevm/slib.h
diff -u kaffe/kaffe/kaffevm/slib.h:1.10 kaffe/kaffe/kaffevm/slib.h:1.11
--- kaffe/kaffe/kaffevm/slib.h:1.10	Thu Dec  1 23:51:05 2005
+++ kaffe/kaffe/kaffevm/slib.h	Sat Mar 25 15:00:27 2006
@@ -14,13 +14,6 @@
 /* ------------------------------------------------------------------------ */
 
 /*
- * DROPS/L4Env loader shared library interface.
- */
-#if defined(DROPS_SHARED_LIBRARIES)
-   #include <l4_loader.h>
-#endif
-
-/*
  * MACH style shared library interface.
  */
 #if defined(HAVE_MACH_O_RLD_H)
Index: kaffe/kaffe/kaffevm/systems/drops-l4threads/jthread.h
diff -u kaffe/kaffe/kaffevm/systems/drops-l4threads/jthread.h:1.2 kaffe/kaffe/kaffevm/systems/drops-l4threads/jthread.h:1.3
--- kaffe/kaffe/kaffevm/systems/drops-l4threads/jthread.h:1.2	Wed Dec 28 23:42:12 2005
+++ kaffe/kaffe/kaffevm/systems/drops-l4threads/jthread.h	Sat Mar 25 15:00:28 2006
@@ -40,8 +40,8 @@
         struct _jthread * next; /* next live thread */
         struct _jthread * prev; /* prev live thread */
 	void   (*func)(void *); /* Start function */
-        unsigned int eip; 
-        unsigned int esp;
+        l4_umword_t eip; 
+        l4_umword_t esp;
         l4thread_t l4thread;    /* native thread id */
 	int interrupting;       /* FLAG, if thread is in interrupting state */
 #ifdef REALTIME_EXTENSION
===================================================================
Checking out kaffe/kaffe/kaffevm/systems/drops-l4threads/l4_loader.h
RCS:  /home/cvs/kaffe/kaffe/kaffe/kaffevm/systems/drops-l4threads/Attic/l4_loader.h,v
VERS: 1.1
***************
--- kaffe/kaffe/kaffevm/systems/drops-l4threads/l4_loader.h	Sat Mar 25 15:13:53 2006
+++ /dev/null	Sun Aug  4 19:57:58 2002
@@ -1,147 +0,0 @@
-/*
- * l4_loader.h
- * Support for shared libraries
- * 
- * Copyright (c) 2004, 2005
- *	TU Dresden, Operating System Group.  All rights reserved.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file.
- *
- * written by Alexander Boettcher <ab764283 at os.inf.tu-dresden.de>
- */
-
-#ifndef __l4_loader_h
-#define __l4_loader_h
-
-#if defined(DROPS_SHARED_LIBRARIES)
-  #include <l4/l4vfs/basic_name_server.h>
-  #include <l4/log/l4log.h> /* LOG */
-  #include <l4/util/util.h> /* for l4_sleep*/
-  #include <l4/sys/types.h>
-  #include <l4/l4vfs/name_server.h>
-
-  #include <stdio.h>
-  #include <l4/names/libnames.h>
-  #include <l4/loader/loader-client.h>
-  #include <l4/env/env.h>
-  #include <l4/loader/loader.h>
-
-
-  #define LIBRARYHANDLE                   void *
-
-  extern const struct {
- 		const char *name;
-		void * address;
-  }
-  lt_preloaded_symbols[];
-
-  envpage_t envpage;
-
-  static inline void *
-  KaffeLib_Load(const char *LIB){
-    LIBRARYHANDLE HAND = 0;
-    unsigned int error,len;							
-    CORBA_Environment _env = dice_default_environment;			
-    l4env_infopage_t *env;						
-    l4_threadid_t loader_id,fprov_id;				
-    char * lpath = getenv(LIBRARYPATH);                                 
-									
-    if (lpath != 0){
-      len = strlen(lpath);
-      if (memcmp(LIB,lpath,len)==0){
-        if (memcmp(LIB+len,"/libnative",10)==0)
-          HAND = (LIBRARYHANDLE) 1;
-        else if (memcmp(LIB+len,"/libjavaio.so",13)==0)
-          HAND = (LIBRARYHANDLE) 1;
-        else if (memcmp(LIB+len,"/libjavanio.so",14)==0)
-          HAND = (LIBRARYHANDLE) 1;
-        else if (memcmp(LIB+len,"/libnet",7)==0)
-          HAND = (LIBRARYHANDLE) 1;
-        else if (memcmp(LIB+len,"/libqtawt",9)==0)
-          HAND = (LIBRARYHANDLE) 1;
-        else if (memcmp(LIB+len,"/libjavalang",12)==0)
-          HAND = (LIBRARYHANDLE) 1;
-      }
-    }
-
-    if (HAND == NULL){
-     if (names_query_name("fprov_proxy_fs",&fprov_id)){
-      if (!names_waitfor_name("LOADER", &loader_id, 5000))
-       LOG_Error("Dynamic loader LOADER not found\n");
-      else
-       if ((error = l4loader_app_lib_open_call(&loader_id, LIB,	
-                                 &fprov_id, 0, &envpage, &_env))	
-                 || _env.major != CORBA_NO_EXCEPTION){			
-        LOG_Error("Loading lib failed (error %d, exc=%d.%d)\n",		
-                                error, _env.major, _env.repos_id);	
-       }else{								
-        env = (l4env_infopage_t*)envpage;					
-									
-        l4loader_attach_relocateable(env);				
- 									
-        if ((error = l4loader_app_lib_link_call(&loader_id, &envpage, &_env))	
-	      || _env.major != CORBA_NO_EXCEPTION){				
-          LOG_Error("Linking lib failed (error %d, exc=%d.%d)\n",		
-                          error, _env.major, _env.repos_id);		
-        }else HAND = (LIBRARYHANDLE) 1;
-       }
-     }
-    }
-    return HAND;
-  }
-
-  static inline void
-  KaffeLib_Unload(LIBRARYHANDLE handle UNUSED)
-  {
-  }
-
-  static inline void *
-  KaffeLib_GetSymbol(LIBRARYHANDLE handle UNUSED, const char *STUB)
-  {
-    void * FUNC = 0;
-    int z;                                                  
-    int error;					
-    l4_addr_t addr = 0;					
-    CORBA_Environment _env = dice_default_environment;			
-    l4_threadid_t loader_id;				
-
-    for (z = 0; lt_preloaded_symbols[z].name != 0; z++) {		
-      if (strcmp(lt_preloaded_symbols[z].name, STUB) == 0) {	
-        FUNC = (void *)lt_preloaded_symbols[z].address;	
-        break;                                  
-      } 
-    }  
-    if (FUNC==0){							
-      if (!names_waitfor_name("LOADER", &loader_id, 5000)){	
-        LOG_Error("Dynamic loader LOADER not found\n");	
-      }else{					
-        if ((error = l4loader_app_lib_dsym_call(&loader_id, STUB,
-                                    &envpage, &addr, &_env))	
-		      || _env.major != CORBA_NO_EXCEPTION){
-	//		LOG("%s not found",STUB);
-        }else
-        {
-          FUNC = (void *)addr;
-        }
-      }
-    }
-
-    return FUNC;
-  }  
-
-  static inline const char *
-  KaffeLib_GetError(void)
-  {
-    return "No specific error support";
-  }
-
-  static inline void
-  KaffeLib_Init(void)
-  {
-  }
-
-#endif
-
-#endif /* __l4_loader_h */
-
Index: kaffe/kaffe/kaffevm/systems/drops-l4threads/l4thread.c
diff -u kaffe/kaffe/kaffevm/systems/drops-l4threads/l4thread.c:1.1 kaffe/kaffe/kaffevm/systems/drops-l4threads/l4thread.c:1.2
--- kaffe/kaffe/kaffevm/systems/drops-l4threads/l4thread.c:1.1	Fri Nov 25 13:41:28 2005
+++ kaffe/kaffe/kaffevm/systems/drops-l4threads/l4thread.c	Sat Mar 25 15:00:28 2006
@@ -98,7 +98,7 @@
 void 
 jthread_suspendall(void)
 {
- unsigned int  old_eflags;
+ l4_umword_t   old_eflags;
  l4_umword_t   dummy;
  l4_msgdope_t  result;
  l4_threadid_t src;
@@ -154,7 +154,7 @@
 jthread_unsuspendall(void)
 {
  volatile unsigned long int * ret_addr;
- unsigned int old_eflags,dummy;
+ l4_umword_t   old_eflags,dummy;
  l4_threadid_t preempter = L4_INVALID_ID;
  l4_threadid_t pager     = L4_INVALID_ID;
  l4thread_t    myself    = l4thread_myself();
@@ -200,7 +200,7 @@
 
 int jthread_extract_stack(jthread_t jtid, void **from, unsigned *len)
 {
-  unsigned int esp,eip,eflags;
+  l4_umword_t esp,eip,eflags;
   l4_addr_t low,high;
   l4_threadid_t pager     = L4_INVALID_ID;
   l4_threadid_t preempter = L4_INVALID_ID;




More information about the kaffe mailing list