Hi, I now the unresoled symbol __nw__FUiPv, and I solved it by changing the new -file. Mybe it is a solution for you. <<new>>
Michael > -----Original Message----- > From: Peter Soetens [SMTP:[EMAIL PROTECTED]] > Sent: Tuesday, February 19, 2002 10:29 PM > To: [EMAIL PROTECTED] > Subject: Re: [rtl] Re: RT C++ and why more people don't use it. > > I'd like to comment on that and share my RTL/C++/STL experiences. > > First of all, C++ works quite flawlessly in my project ( > http://www.orocos.org -- sorry, no sources yet). I wrap all malloc/free > calls to kmalloc / kfree in a header file which determines if i'm > compiling > for the kernel or not. I do not use globals yet so don't know whether the > > do_global_ctors_aux() works or not (but i thought it did). Most of my > symbols are resolved in rtl_cpp.c (->module ) and rtl_cpp.h ( -> include > in > your C++ header). I also link multiple files (classes) together with ld > and > the crtbegin/end stuff. > > But even more, I'm almost done porting (gnu/sgi) STL to RTLinux. Only one > > unresolved symbol left ( the name mangled __builtin_new : __nw__FUiPv > anyone > know how to implement that one ?). > Next will be adapting Boost C++ where they are also working on an > embedable > port. > > BTW, the missing symbol __nw__FUiPv is defined in libgcc, but that lib > introduces 5 other undefined symbols, so i'll try to find how this lib is > built with which function calls for implementing this symbol. > > I must admit that incorporating C++ in the kernel demands some not-done > practices (like defining the compiler built-ins, calling the global > constructors etc ) But it is in my opinion very worth the effort. > > Any help from the original C++/RTL porting team would also be appreciated. > > Peter > > On Tuesday 19 February 2002 15:51, you wrote: > > Hi Adam, > > > > I am using both C and C++ in my project. I think that hte reason why > more > > people don't use C++ is that it is a pain in the butt to get working. > Also, > > C++ is a lot more liberal about things like using malloc and free when > > doing object declaration in functions, etc. And malloc and RT don't > really > > mix too well. With RTlinux you basically have to either do kmalloc in > the > > init_module() or write your own memory heap allocator. Basically you use > > static objects for RT. Also, C++ is pretty strict, so when writing > things > > like IO drivers, you have to cast the heck out of your data in order to > > read and write memory and the like. I am only using C++ because of the > pass > > by reference operator, which I use in my API to pass a reference to and > IO > > variable that the function will operate on. I may use objects in future > > api's but they are all functions now. I think the Real time programing > > paradigm makes it more difficult to use higher level tools such as OOP > jsut > > because you need to be more aw! are of what is going on at a hardware > > level. > > > > Hope this helps a bit. > > > > BTW, I am still having problems with my global constructors not being > > initialized. I have pointers in a structure (which in C++ are objects) > > which aren't getting initialized by do_global_ctors_aux() like it used > to. > > I am compiling two different directories and then linking their > resultant > > object files together at the last step. Both intermediat linking steps > are > > doign the $(CRTBEGIN) $(CRTEND) stuff in the C++ example but it still > > doesn't work. Help!! > > > > ~Ken > > > > > > > > -- [rtl] --- > > To unsubscribe: > > echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR > > echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED] > -- [rtl] --- > To unsubscribe: > echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR > echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED] > -- > For more information on Real-Time Linux see: > http://www.rtlinux.org/
new
Description: Binary data