git: Fix static archive libstdc++.a for gcc 5.0

John Marino marino at crater.dragonflybsd.org
Tue Feb 10 11:36:24 PST 2015


commit a4ea91a4db69a4eb6e98252ee481b866c15f1b3f
Author: John Marino <draco at marino.st>
Date:   Tue Feb 10 20:28:22 2015 +0100

    Fix static archive libstdc++.a for gcc 5.0
    
    The libstdc++ libaries for gcc 5.0 are built differently than they have
    been in the past, and closely mirror what the vendor build system does.
    Three "convenience" librarys are built first: c++98, c++11, and supc++.
    Both static and PIC versions are built.  The final library combines the
    three components along with about 10 unique objects.
    
    It worked fine for the shared version (libstd.so.9) but the static
    version was unreadable.  I fixed it by creating a dedicated "ar" script
    to dictate what gets assembled in the new static archive.  It would
    have been a sweet solution has "ar" not had an incredible limitation:
    The script can not have consecutive "+" characters on any line.  To
    work around this, I had to:
      1) rename the 3 component libraries (all had ++ in the name)
      2) rename the output library (libstdc++.a => libstdcxx.a)
      3) copy all the cc files with "++" in their names to a new filename.
         This affected about 3-4 files.
      4) move the output library back to the proper name of libstdc++.a
    
    What a pain those hacks were, but it works and gcc-5.0 can now build
    itself.  It still can't complete world due to Werror trigging on new
    warnings, but it's a good fix.

Summary of changes:
 .../libstdcxx/components/libconv_1998/Makefile     |  2 +-
 .../libstdcxx/components/libconv_2011/Makefile     |  2 +-
 .../libstdcxx/components/libconv_supc/Makefile     | 21 +++++++----
 gnu/lib/gcc50/libstdcxx/headers/Makefile           |  8 +---
 gnu/lib/gcc50/libstdcxx/product/Makefile           | 43 +++++++++++++++++-----
 5 files changed, 51 insertions(+), 25 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/a4ea91a4db69a4eb6e98252ee481b866c15f1b3f


-- 
DragonFly BSD source repository



More information about the Commits mailing list