This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

PATCH: Switch to V3


This patch turns on V3 by default.  You can still get V2 by
configuring with --disable-libstdcxx+-v3.

I plan to remove this fallback option in a couple of weeks.  Port
maintainers, V3 people, please work together to get things whipped
into shape on your favorite platforms.  The threat of V2 removal is
intended to incentivize you. :-)

At this point, IRIX 6.5 and x86 GNU/Linux behave identially on `make
check-g++' with and without V3.  On Solaris, there are a few new
failures, due to a syntax error in the V3 headers that causes a
compiler crash.  (I'll work on that next.)

I think that porting V3 to new platforms is not unduly difficult.  You
will have to modify a few configuration files, and write a few
headers.  See config/os/irix/bits, for example.

Here are a few things I learned the hard way:

  - Define _G_USING_THUNKS in os_defines.h if you are on a system that
    doesn't use thunks in C++.  That means most systems that aren't 

  - When you define _Atomic_word in atomicity.h make sure that it is
    a signed type.  If it is unsigned, string-processing will break

  - If C++ I/O doesn't work, look at how your libstdc++ is being
    linked.  If you're not using `gcc -shared', you probably aren't
    going to get your static initializers run.  The magic bits are in  What you want to do is change things to test 
    `$with_gcc' and use `gcc -shared' in that case.  Look at the 
    Solaris/IRIX cases for working examples.

    Changes to this file should be copied to;
    Alexandre Oliva has proved willing (thanks Alexandre!) to review
    these changes.

I have asked Gabriel Dos Reis <> to help out with
V3 porting issues.  Feel free to ask Gaby for help and/or to review
patches.  Gaby will also be working on some important integration
issues, such as converting the V3 testsuite to use DejaGNU.

Port maintainers w/o global write access, you should feel free to
touch the following configury bits, as they are part of your port.

  - V3 configuration bits that tweak which which config/os directory
    you get.  (These are in acinclude.m4, but Phil Edwards has a patch
    to make a; see the archives.  Now that the tree
    is melted, Phil will probably check in this patch.)

  - Libtool changes to use `gcc -shared'.

Changes to the main V3 code itself need approval from someone with
global write access, preferably a V3 maintainer.  Please copy all
patches to V3, including configury bits to
`' (which will soon be renamed to use a address).

Since we've made the cutover, the tree has melted.  Feel free to check
in patches that you've held up over the last couple of days.  Please
do try to focus on making changes that will help GCC 3.0.  I plan to
announce a GCC 3.0 schedule shortly; the SC is currently debating one
more requirements issue.  The tree will likely get slushy again when
we get close to changing over to the new ABI, hopefully in the next
couple of weeks.

Congratulations to the V3 team, especially (in alphabetical order)
Gabriel Dos Reis, Phil Edwards, and Benjamin Kosnik who have done a
ton of work on V3 over many years, and a lot of work recently in
getting things ready for the switch.  (Lots of other people have
contributed a lot of work over the years; see the web site for all the
details.)  Your implementation is now the default GNU C++ standard

Gerald, it would be nice if you would make a news item out of the
pertinent bits of this rambling mail...

Thanks to everyone for being patient this weekend while I fiddled
around with all of this stuff.  I apologize for any inconvenience
associated with slushing (and briefly freezing) the tree.

Your rather sleepy RM, 

Mark Mitchell         
CodeSourcery, LLC     

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]