[ECOS] _impure_ptr ??

Bob Koninckx bob.koninckx@mech.kuleuven.ac.be
Sun Mar 23 16:12:00 GMT 2003


This redefinition of __xca_pure_virtual seems to solve the problem. No
more link errors, application runs fins. Apparently, the compiler pulls
this function in as soon as you have at least one pure virtual function
in your application.

Problem is hereby signalled :-)

Bob

 
On Sat, 2003-03-22 at 14:49, Bob Koninckx wrote:
> Gary,
> 
> Just a small update on the situation.
> 
> If i provide my own definition 
> 
> extern "C" void
> __cxa_pure_virtual(void) {}
> 
> and make sure the linker finds this one _before_ the stuff in libsupc++,
> everything links ok. I am now going to debug the application and see if
> everything still works as it should.
> 
> If this is all that needs to be done, that's fine with me. I suppose
> more advanced recovery than the default message to stderr (apparently
> that's what they do in newlib) could be necessary anyway.
> 
> Some further investigation showed that this __impure_ptr comes from
> newlib for sure. Apparently, a 'write' function from newlib instead of
> ecos libc gets called by __cxa_pure_virtual, which makes me cautious
> about the compiler I build. Any idea how I can verify that my tools got
> indeed build correctly ?
> 
> Bob
> 
> __
> 
> On Sat, 2003-03-22 at 14:01, Bob Koninckx wrote:
> > On Sat, 2003-03-22 at 13:48, Gary D. Thomas wrote:
> > > On Sat, 2003-03-22 at 05:33, Bob Koninckx wrote:
> > > > Upgraded to the 2.0 Beta. Got everything to compile, the eCos library
> > > > builds just fine. When linking my application however (powerpc-eabi
> > > > target, linux host), I get the following errors
> > > > 
> > > > powerpc-eabi-gcc
> > > > -L/home/bob/software/build/eCos/ec555/vbcom/library/ecos/install/lib
> > > > -Wl,-static -Wl,--gc-sections -nostartfiles -nostdlib -Xlinker -Map
> > > > -Xlinker vbcom.map -o bin/vbcom.elf .obj/vbcom.o library/vbcom.a
> > > > library/vbcom_extras.o
> > > > /home/bob/software/build/eCos/ec555/vbcom/library/sigc++/install/lib/libsigc++.a -lsupc++ -Ttarget.ld
> > > > /usr/local/crossgcc/powerpc-eabi/lib/gcc-lib/powerpc-eabi/3.2.1/../../../../powerpc-eabi/lib/libsupc++.a(pure.o): In function `__cxa_pure_virtual':
> > > > /home/bob/tmp/src/build_gcc/powerpc-eabi/libstdc++-v3/libsupc++/../../../../gcc-3.2.1/libstdc++-v3/libsupc++/pure.cc:49: undefined reference to `_impure_ptr'
> > > > /home/bob/tmp/src/build_gcc/powerpc-eabi/libstdc++-v3/libsupc++/../../../../gcc-3.2.1/libstdc++-v3/libsupc++/pure.cc:49: undefined reference to `_impure_ptr'
> > > > collect2: ld returned 1 exit status
> > > > make: *** [bin/vbcom.elf] Error 1
> > > > 
> > > > Anybody any idea ?
> > > > Could it be that something went wrong building the tools ?
> > > 
> > > Does this happen for all programs, or just some?
> > > Can you build the standard eCos tests?
> > 
> > Hi Gary,
> > 
> > Nope, linking tests fails, but here the error is that it does not find
> > operators new and delete. Has also to do with libsupc++, for sure. I am
> > trying to find out where the makefiles must be modified in order to get
> > libsupc++ added to the list of libraries
> > 
> > > Were you able to build this program before?
> > 
> > Yep, but that was with 2.95.2 ...
> > 
> > > 
> > > My guess is that you have a program that is using something
> > > from libsupc++ that hasn't been tested/implemented.
> > 
> > Looking further into it
> > 
> > > 
> > > -- 
> > > .--------------------------------------------------------.
> > > |       Mind: Embedded Linux and eCos Development        |
> > > |--------------------------------------------------------|
> > > | Gary Thomas              email:  gary.thomas@mind.be   |
> > > | Mind ( http://mind.be )  tel:    +1 (970) 229-1963     |
> > > | gpg: http://www.chez-thomas.org/gary/gpg_key.asc       |
> > > '--------------------------------------------------------'
> > -- 
> > ----------------------------------------------------------------------
> > ir. Bob Koninckx
> > Katholieke Universiteit Leuven
> > Division Production Engineering,                   tel.  +32 16 322535
> > Machine Design and Automation                      fax.  +32 16 322987
> > Celestijnenlaan 300B                  bob.koninckx@mech.kuleuven.ac.be
> > B-3001 Leuven Belgium               http://www.mech.kuleuven.ac.be/pma
> > ----------------------------------------------------------------------
> -- 
> ----------------------------------------------------------------------
> ir. Bob Koninckx
> Katholieke Universiteit Leuven
> Division Production Engineering,                   tel.  +32 16 322535
> Machine Design and Automation                      fax.  +32 16 322987
> Celestijnenlaan 300B                  bob.koninckx@mech.kuleuven.ac.be
> B-3001 Leuven Belgium               http://www.mech.kuleuven.ac.be/pma
> ----------------------------------------------------------------------
-- 
----------------------------------------------------------------------
ir. Bob Koninckx
Katholieke Universiteit Leuven
Division Production Engineering,                   tel.  +32 16 322535
Machine Design and Automation                      fax.  +32 16 322987
Celestijnenlaan 300B                  bob.koninckx@mech.kuleuven.ac.be
B-3001 Leuven Belgium               http://www.mech.kuleuven.ac.be/pma
----------------------------------------------------------------------


-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss



More information about the Ecos-discuss mailing list