This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
RE: RE: libsupc++.a
- From: "Woller, Thomas" <tom dot woller at cirrus dot com>
- To: "'Koeller, T.'" <Thomas dot Koeller at baslerweb dot com>, "'Martin Buck'" <martin dot buck at ascom dot ch>
- Cc: ecos-patches at sources dot redhat dot com, "'ecos-discuss at sources dot redhat dot com'" <ecos-discuss at sources dot redhat dot com>
- Date: Wed, 19 Jun 2002 10:47:29 -0500
- Subject: RE: [ECOS] RE: libsupc++.a
I am looking at this subject right now, and have the same
questions. Basically, I am attempting to port ACE (minus TAO)
over to eCos but am having problems resolving include file
dependencies (include_next in std_cstddef for one). I am
thinking that i should/can use the newlib provided include files
but do not want to link with the newlib libraries. looking for
information also... thanks
Tom Woller
Cirrus Logic Corp
tom.woller@cirrus.com
-----Original Message-----
From: Koeller, T. [mailto:Thomas.Koeller@baslerweb.com]
Sent: Wednesday, June 19, 2002 9:53 AM
To: 'Martin Buck'
Cc: ecos-patches@sources.redhat.com;
'ecos-discuss@sources.redhat.com'
Subject: [ECOS] RE: libsupc++.a
Martin,
I never quite understood how this (using newlib) is supposed to
work,
and that's why I never tried it. If I use newlib to generate the
compiler
support libraries like libsupc++, doesn't this mean I will have
to link
all my applications with newlib? And if I do, won't there be
clashes between
newlib and the ecos-provided ISO C library functions? Am I wrong
to assume
that I cannot use just the newlib headers without using the
actual library?
I am cc'ing this to the ecos-discuss mailing list, as this is a
question of
general interest. Hope that you, or anyone else, can shed some
more light on
this topic that has puzzled me for long.
tk
> -----Original Message-----
> From: Martin Buck [mailto:martin.buck@ascom.ch]
> Sent: Monday, June 17, 2002 4:49 PM
> To: ecos-patches@sources.redhat.com; Koeller, T.
> Subject: Re: libsupc++.a
>
>
> "Koeller, T." wrote:
> > You can only build a cross gcc for ecos by doing a 'make
> all-gcc'. This
> > does not build libsupc++.a, a 'make all' would be required
> to achieve
> > this, which is impossible to do as there is no target C
> library at this
> > point.
>
> You don't need "make all", "make all-gcc
all-target-libstdc++-v3" is
> sufficient. For this to work, you have to compile with newlib
(and you
> have to #define _GLIBCPP_HAVE_UNISTD_H when compiling
> libstdc++-v3/libsupc++/pure.cc - the configure script seems
> to get this
> one wrong in recent gccs). BTW, compiling with newlib is what
RedHat
> suggests[1] and is what is done in toolchains they ship to
their
> customers.
>
> [1]
http://sources.redhat.com/ml/ecos-discuss/2001-10/msg00274.html
>
> > And then, functions in libsupc++.a should use the mechanisms
> > provided by the target system directly for efficiency. Take
> as an example
> > the one function I implemented, __cxa_pure_virtual(). Its
> purpose is to
> > abort a program if it happens to call a pure virtual
> function. The version
> > that comes with gcc (or, more precisely, with libstdc++)
> does this by
> > calling
> > std::terminate(), so it requires the standard C++ library.
>
> std::terminate is part of libsupc++ as well. AFAIK, there are
no
> dependencies on libstdc++ in libsupc++. If there were any, I
> would call
> this a bug.
>
> > For an embedded
> > system it is clearly preferable to map this simple
> funtionality directly to
> > the ecos-provided mechanisms, CYG_FAIL() in this case.
> >
> > Providing ecos-specific implementations for these functions
> also has the
> > additional benefit of being able to add ecos-style
> asertions, tracing and
> > so on.
>
> That's right, but it has the huge drawback of messing around
with an
> internal compiler-API that can change without warning. Plus,
> you'll have
> to implement a lot of stuff from libsupc++ to be more-or-less
ISO C++
> compliant.
>
> Martin
>
--
Before posting, please read the FAQ:
http://sources.redhat.com/fom/ecos
and search the list archive:
http://sources.redhat.com/ml/ecos-discuss
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss