stdcxx-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject Re: informix
Date Thu, 08 Sep 2005 15:36:36 GMT
okki wrote:
>>> just wanted to tell you that stdcxx compiles just fine within 
>>> interix/sfu 3.5.
> 
> 
> just when i thought everythings ok :) ... (well its still ok, but)
> how do i get rid of the "-lsupc++" requirement? does stdcxx still rely 
> on some parts of gcc?

Yes, it certainly does :) libsupc++ is the language support library,
implementing such facilities of core C++ language as exceptions, RTTI,
and dynamic memory allocation (operators new and delete). There's no
way to write even the simplest C++ program without it (actually, there
is, but those usually are too simple to be useful).

The vast majority of compilers provide such a library, some as an
archive, some in the form of a shared library. If you are using the
native C++ standard library that comes with the compiler the support
library is linked in implicitly by the driver (or, in the case of
gcc, it's actually part of libstdc++ itself), so you don't see it
on the command line. When using a third party implementation of the
C++ standard library such as stdcxx, you must avoid linking in the
native implementation (to avoid ODR violations). With GCC you do
it by using the gcc command instead of g++ for linking and by also
specifying -lsupc++.

I suppose you might be able to link libsupc++.a directly into the
stdcxx library and avoid explicitly mentioning it on your program's
link line but I haven't tried it.

> 
> gcc -D_RWSTD_USE_CONFIG -Istdcxx/include/ansi \
> -Istdcxx/include -Iinclude -nostdinc++ \
> src/*.cpp -O3 -o testcase.exe -B,static \
> -Lstdcxx/lib -lstd -lsupc++ -B,dynamic -ldl -s
> 
> thanks in advance
> 
> (ah btw: why incubator? compiled a whole lot of classes without any 
> modifications! out of the box! that's really cool :)

Incubation isn't necessarily a reflection of the state or quality of
the code (in the case of stdcxx, the project has been in development
and active use for over 10 years so it's quite mature by now).

Every project donated to Apache must go through the incubator first
to make sure all legal issues (such as copyright/license transfers)
have been completed and the project itself has been fully migrated
to the ASF infrastructure (source code repository, bug tracking
database, Web site, etc.) before the ASF takes formal ownership of
it. The incubation period is also a good opportunity for maintainers
of the project who are new to Apache to learn the ropes (i.e., get
the "Apache Way" -- how to work within the organization, get to know
people, establish a development community around the project, etc.)

Martin

Mime
View raw message