This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ 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]

[PING^2] Re: [PING/tiny respin] Re: [PATCH, 0...4/4] Enable libstdc++ as a DLL on windows platforms.


Dave Korn wrote:
> Dave Korn wrote:
> 
>>   The series of patches (contained in the four follow-ups to this post) allow
>> Windows platforms to compile libstdc++ as a shared DLL, which is desirable on
>> Windows for all the same reasons as on other platforms.  It is derived from
>> work by Aaron, Danny and myself that has been previously developed in the
>> Cygwin and MinGW distro compiler versions.
> 
>   Here is the final version of the patch, respun, retested (with no change in
> the results, i.e. still no regressions), and merged into one big patch.

  Ping; part of this patch is still awaiting review by a v3 maintainer, and the
clock is starting to tick on stage 1, so I've remembered to Cc the v3 list this
time.

  The original series of patches are archived at

[0/4]    http://gcc.gnu.org/ml/gcc-patches/2009-07/msg01042.html
[1/4]    http://gcc.gnu.org/ml/gcc-patches/2009-07/msg01044.html
[2/4]    http://gcc.gnu.org/ml/gcc-patches/2009-07/msg01046.html
[3/4]    http://gcc.gnu.org/ml/gcc-patches/2009-07/msg01047.html
[4/4]    http://gcc.gnu.org/ml/gcc-patches/2009-07/msg01048.html

and the tweaked respin at

    http://gcc.gnu.org/ml/gcc-patches/2009-07/msg01631.html

  The attached patch is functionally identical to that, just merged up-to-date
with HEAD.  It still bootstraps and I'm re-running the tests right now; I don't
anticipate any change to the no-regressions status (and if there was it would
probably mean a bug has been introduced on HEAD rather than that the patch is
wrong...)

  The v3-related changes were in parts 3 and 4 of the original; in the full
patch, it's this part:

> libstdc++-v3/ChangeLog:
> 
> 	* src/Makefile.am (LTLDFLAGS): Add -no-undefined.
> 	* libsupc++/Makefile.am (LTLDFLAGS): Likewise.
> 	* src/Makefile.in: Regenerate.
> 	* libsupc++/Makefile.in: Regenerate.
> 	* config/os/newlib/os_defines.h (_GLIBCXX_IMPORT): Define to
> 	dllimport when indicated by _GLIBCXX_DLL.
> 	* config/os/mingw32/os_defines.h (_GLIBCXX_IMPORT): Likewise.
> 	* testsuite/lib/libstdc++.exp (proc libstdc++_init): Adjust
> 	DEFAULT_CXXFLAGS and ld_library_path_tmp for Cygwin.
> 
> 	* include/bits/c++config (_GLIBCXX_IMPORT): Add empty definition
> 	for non-dllimport targets.
> 	* include/std/iostream (cin): Annotate with _GLIBCXX_IMPORT.
> 	(cout, cerr, clog): Likewise.
> 	* include/std/stdexcept (class logic_error, domain_error,
> 	invalid_argument, length_error, out_of_range, runtime_error,
> 	range_error, underflow_error): Likewise.
> 	* include/ext/concurrence.h (class __concurrence_lock_error,
> 	__concurrence_unlock_error): Likewise.
> 	* include/bits/locale_classes.tcc (template class collate<char>,
> 	collate_byname<char>, collate<wchar_t>,
> 	collate_byname<wchar_t>): Likewise.
> 	* include/bits/locale_facets.tcc (template class numpunct<char>,
> 	numpunct_byname<char>, num_get<char>, num_put<char>,
> 	ctype_byname<char>, numpunct<wchar_t>, numpunct_byname<wchar_t>,
> 	num_get<wchar_t>, num_put<wchar_t>, ctype_byname<wchar_t>): Likewise.
> 	* include/bits/locale_classes.h (class locale, facet, id, _Impl,
> 	locale::facet, locale::id, locale::_Impl): Likewise.
> 	* include/bits/locale_facets.h (template class ctype<char>,
> 	ctype<wchar_t>): Likewise.
> 	* include/bits/basic_ios.tcc (template class basic_ios<char>,
> 	basic_ios<wchar_t>): Likewise.
> 	* include/bits/ios_base.h (class ios_base, failure, Init): Likewise.
> 	* include/bits/istream.tcc (template class basic_istream<char>,
> 	basic_iostream<char>, basic_istream<wchar_t>,
> 	basic_iostream<wchar_t>): Likewise.
> 	* include/bits/codecvt.h (template class codecvt_byname<char, char,
> 	mbstate_t>, codecvt_byname<wchar_t, char, mbstate_t>): Likewise.
> 	* include/bits/ostream.tcc (template class basic_ostream<char>,
> 	basic_ostream<wchar_t>): Likewise.
> 	* include/bits/sstream.tcc (template class basic_stringbuf<char>,
> 	basic_istringstream<char>, basic_ostringstream<char>,
> 	basic_stringstream<char>, basic_stringbuf<wchar_t>,
> 	basic_istringstream<wchar_t>, basic_ostringstream<wchar_t>,
> 	basic_stringstream<wchar_t>): Likewise.
> 	* include/bits/basic_string.tcc (template class basic_string<char>,
> 	basic_string<wchar_t>, related overloaded operator<<, operator>>,
> 	getline): Likewise.
> 	* include/bits/locale_facets_nonio.tcc (template class
> 	moneypunct<char, false>, moneypunct<char, true>,
> 	moneypunct_byname<char, false>, moneypunct_byname<char, true>,
> 	money_get<char>, money_put<char>, __timepunct<char>, time_put<char>,
> 	time_put_byname<char>, time_get<char>, time_get_byname<char>,
> 	messages<char>, messages_byname<char>, moneypunct<wchar_t, false>,
> 	moneypunct<wchar_t, true>, moneypunct_byname<wchar_t, false>,
> 	moneypunct_byname<wchar_t, true>, money_get<wchar_t>,
> 	money_put<wchar_t>, __timepunct<wchar_t>, time_put<wchar_t>,
> 	time_put_byname<wchar_t>, time_get<wchar_t>, time_get_byname<wchar_t>,
> 	messages<wchar_t>, messages_byname<wchar_t>): Likewise.
> 	* include/bits/streambuf.tcc (template class basic_streambuf<char>,
> 	basic_streambuf<wchar_t>): Likewise.
> 	* include/bits/fstream.tcc (template class basic_filebuf<char>,
> 	basic_ifstream<char>, basic_ofstream<char>, basic_fstream<char>,
> 	basic_filebuf<wchar_t>, basic_ifstream<wchar_t>,
> 	basic_ofstream<wchar_t>, basic_fstream<wchar_t>): Likewise.
> 	* include/backward/strstream (class strstreambuf, istrstream,
> 	ostrstream, strstream): Likewise.
> 	* libsupc++/typeinfo (class type_info, bad_cast, bad_typeid): Likewise.
> 	* libsupc++/exception (class exception, bad_exception): Likewise.
> 	* libsupc++/new (class bad_alloc): Likewise.

  Ok for HEAD?

    cheers,
      DaveK


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