This is the mail archive of the gcc-bugs@gcc.gnu.org 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]
Other format: [Raw text]

[Bug bootstrap/49829] [4.7 Regression] --disable-static --enable-shared regression: cannot find -lstdc++


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49829

--- Comment #16 from Benjamin Kosnik <bkoz at gcc dot gnu.org> 2012-01-23 22:21:53 UTC ---

Well I tried to just use the generated Makefile rules to hack together a
solution for --disable-static using the convenience libraries

My plan was to generate a libstdc++convenience library always, and then if
libstdc++.a is not created as per the usual (ie, --disable-static), then to
create it from libstdc++convenience. 

Like so:


libstdc++-v3/src/Makefile.am:

# Make a non-installed convenience library, so that --disable-static
# may work.
libstdc++convenience.la: $(toolexeclib_LTLIBRARIES)
    $(CXXLINK) $(libstdc___la_LIBADD) $(LIBS); \
    if test ! -f .libs/libstdc++.a; then \
      cp .libs/libstdc++convenience.a .libs/libstdc++.a; \
    fi; \
    echo `date` > stamp-libstdc++convenience; 


results in the build completing and:


/mnt/share/bld/gcc.git-disable-static/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src

has

drwxrwxr-x  3 bkoz bkoz 4.0K Jan 23 11:51 c++11/
drwxrwxr-x  3 bkoz bkoz 4.0K Jan 23 11:51 c++98/
drwxrwxr-x  2 bkoz bkoz 4.0K Jan 23 11:51 .libs/
-rw-rw-r--  1 bkoz bkoz  905 Jan 23 11:51 libstdc++convenience.la
-rw-rw-r--  1 bkoz bkoz  985 Jan 23 11:51 libstdc++.la
-rw-rw-r--  1 bkoz bkoz  47K Jan 23 11:51 libstdc++-symbols.ver
-rw-rw-r--  1 bkoz bkoz  31K Jan 23 11:50 Makefile
-rw-rw-r--  1 bkoz bkoz   29 Jan 23 11:51 stamp-libstdc++convenience

and

/mnt/share/bld/gcc.git-disable-static/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs

has:

drwxrwxr-x 2 bkoz bkoz 4.0K Jan 23 14:17 ./
drwxrwxr-x 5 bkoz bkoz 4.0K Jan 23 14:17 ../
-rw-rw-r-- 1 bkoz bkoz  23M Jan 23 14:17 libstdc++.a
-rw-rw-r-- 1 bkoz bkoz  23M Jan 23 14:17 libstdc++convenience.a
lrwxrwxrwx 1 bkoz bkoz   26 Jan 23 14:17 libstdc++convenience.la ->
../libstdc++convenience.la
lrwxrwxrwx 1 bkoz bkoz   15 Jan 23 14:17 libstdc++.la -> ../libstdc++.la
-rw-rw-r-- 1 bkoz bkoz  986 Jan 23 14:17 libstdc++.lai
lrwxrwxrwx 1 bkoz bkoz   19 Jan 23 14:17 libstdc++.so -> libstdc++.so.6.0.17*
lrwxrwxrwx 1 bkoz bkoz   19 Jan 23 14:17 libstdc++.so.6 -> libstdc++.so.6.0.17*
-rwxrwxr-x 1 bkoz bkoz 8.2M Jan 23 14:17 libstdc++.so.6.0.17*


I'm going to check this with cross compiles, and then if that works check it
in.

The hacky-bits for copying libstdc++ can hopefully be cleaned up at a later
date or by a certified build genius.


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