From: Danny S. <dan...@cl...> - 2005-12-18 19:42:41
|
From: "Greg Chicares" Sent: Monday, 19 December 2005 06:14 > On 2005-12-18 5:27 UTC, Danny Smith wrote: > > ----- Original Message ----- > > From: "Greg Chicares" > > Sent: Friday, 16 December 2005 22:20 > [...] > Well... > > > (1) Extend the global shared_ptr stucture to handle the __cxa_eh_globals > > (2) Build and use libstdc++ > > At first, I thought that (1) might render (2) unnecessary, but > it appears that they're actually orthogonal. Using the testcase > in cvs, change > > void throw_from_app() > { > - throw std::runtime_error("Exception from app."); > + throw "Exception from app."; > } > > void EXPORT_IMPORT throw_from_dll() > { > - throw std::runtime_error("Exception from dll."); > + throw "Exception from dll."; > } > > and the problem originally reported occurs (tested with 3.4.4 only), > even though the exception now has nothing to do with libstdc++. It still involves the libsupc++ components of libstdc++ -- specifically, a function called __cxa_get_globals which is used to get C++ specific info on unwind objects. Linking libstdc++ as shared lib will let your revised testcase work also. > > So I'd say (1) is valuable, but (2) is obviously valuable, too, > and so is gcc-4.x; and it's not for me to prioritize your efforts. > I will probably contiunue to use 3.4.x series as my stable compiler for a while, and the bug you reported reveals a significant defect in that series, so regardless of what happens to libstdc++.dll or gcc-4.x I will be incorporating (1) in "my" compiler. Do mingw users also want that as part of the 3.4.5 that gets uploaded to mingw releases? Danny |