This is the mail archive of the 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

  The original series of patches are archived at


and the tweaked respin at

  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

  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/ (LTLDFLAGS): Add -no-undefined.
> 	* libsupc++/ (LTLDFLAGS): Likewise.
> 	* src/ Regenerate.
> 	* libsupc++/ 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?


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