Christian Helmuth wrote:
AFAIK L4Env with OSKit's FreeBSD libc does not work with L4VFS and libc_backends. If you want to stay with the current FLIPS client library you have to use dielibc.
Once again thank you for your prompt answers. I'm having a "little" problem again. Like i said before i'm porting a C++ aplication. In these program, i use STL (vectors and maps mostly). So that i can use the l4env_base and c++, i've built a costum mode, WOO_mode:
############################################################################## # # x86_WOO_mode - custom mode # ISTO É MEU #
BID_SUPPORTED_x86_WOO_mode = y LIBCINCDIR_x86_WOO_mode = -nostdinc -I$(L4DIR)/include/dietlibc \ -I$(DROPS_STDDIR)/include/dietlibc \ -I$(L4DIR)/include/c++/$(GCCVERSION) \ -I$(L4DIR)/include/c++/$(GCCVERSION)/drops \
-I$(DROPS_STDDIR)/include/c++/$(GCCVERSION) \ -I$(DROPS_STDDIR)/include/c++/$(GCCVERSION)/drops \ -I$(GCCINCDIR) \
LIBCLIBDIR_x86_WOO_mode = -L$(L4DIR)/lib/c++/$(GCCVERSION) \ -L$(DROPS_STDDIR)/lib/c++/$(GCCVERSION)
LIBCLIBS_x86_WOO_mode = -nostdlib $(GCCLDNOSTDLIB) \ -u printf -ldiet_be_io.o -l$(DIETLIBC_MALLOC_BACKEND) \ -ldiet_be_time -lrtc \ -ll4rm -ldm_mem -ldm_generic -lthread -lsemaphore \ -ll4env -ll4env_err -lslab -llogserver_capsule -ll4rm \ -lthread -ldm_generic -lnames -ll4util -lrmgr \ -ldiet_c $(GCCLIB) -ldiet_c \ -ldiet_be_time -ldiet_be_mmap -ldiet_be_mmap_util.o \ -ldiet_be_l4env_start_stop -lgeneric_ts -ldiet_be_syslog \ -ldiet_be_file-table -ldiet_be_simple_sleep \ -ll4vfs_common_io -ll4vfs_basic_io -ll4vfs_connection \ -ll4vfs_basic_name_server -ll4vfs_name_server \ -ll4vfs_name_space_provider -ll4vfs_extendable
L4LIBS_x86_WOO_mode = -static -ll4rm -ldm_mem -ldm_generic -lthread \ -lsemaphore -ll4env -ll4env_err -lslab \ -llogserver_capsule -ll4rm \ -lthread -ldm_generic -lnames \ -ll4util -lrmgr CRT0_x86_WOO_mode = $(call findfile,crt0.o,$(L4LIBDIR)) CRTN_x86_WOO_mode = LDSCRIPT_x86_WOO_mode = $(call findfile,main_stat.ld,$(L4LIBDIR))
####################################################################################
and i have included in the Makefile the libstdc++. But the error that gives me its tipical of the STL need of exceptions i think. An excerpt follows:
[...]
/home/tiago/l4/pkg/libstdc++/lib/src-v3/dist/drops/libstdc++-v3/src/ios.cc:335: undefined reference to `_Unwind_Resume' ../../../../../lib/c++/3.3/libstdc++.a(istream-inst.o)(.gnu.linkonce.t._ZNSiC2EPSt15basic_streambufIcSt11char_traitsIcEE+0x45):/home/tiago/l4/pkg/libstdc++/lib/src-v3/dist/drops/libstdc++-v3/include/bits/basic_ios.h:107: more undefined references to `_Unwind_Resume' follow ../../../../../lib/c++/3.3/libstdc++.a(pure.o)(.text+0x2): In function `__cxa_pure_virtual': /home/tiago/l4/pkg/libstdc++/lib/src-v3/dist/drops/libstdc++-v3/libsupc++/pure.cc:49: undefined reference to `__sF' ../../../../../lib/c++/3.3/libstdc++.a(ctype.o)(.text+0x33c): In function `std::ctype<char>::~ctype [not-in-charge]()': /home/tiago/l4/pkg/libstdc++/lib/src-v3/dist/drops/libstdc++-v3/include/bits/locale_facets.h:127: undefined reference to `_Unwind_Resume' ../../../../../lib/c++/3.3/libstdc++.a(ctype.o)(.text+0x3ac): In function `std::ctype<char>::~ctype [in-charge]()': /home/tiago/l4/pkg/libstdc++/lib/src-v3/dist/drops/libstdc++-v3/include/bits/locale_facets.h:127: undefined reference to `_Unwind_Resume' ../../../../../lib/c++/3.3/libstdc++.a(ctype.o)(.text+0x424): In function `std::ctype<char>::~ctype [in-charge deleting]()': /home/tiago/l4/pkg/libstdc++/lib/src-v3/dist/drops/libstdc++-v3/include/bits/locale_facets.h:127: undefined reference to `_Unwind_Resume'
[...]
After a search in the best work tool ever (aka Google) the method _Unwind_Resume has to do with exception propagation. But as we know, only the l4env_freebsd and oskit10_sigma0 mode have full support for C++ exceptions. But the FLIPS server has to be used with dielibc.
My question is... is there any way to link with dielibc and still use C++ and exceptions?
thanks in advance and thank you for your patience...
Tiago Jorge