(resending as the list seems to have eaten it, apologies if it gets
duplicated)

Angelo Graziosi wrote:

> It seems that applying the patch only, without rebuilding GCC works (the
> ROOt, a CERN application, problems seem solved).

The template is explicitly instantiated in libstdc++, so that shouldn't
work afaik.  The compiler won't be compiling the modified code, as it
trusts it will find it already compiled during link.  Does rOOt disable
explicit instantiation via tweaking _GLIBCXX_EXTERN_TEMPLATE?

At first, I tried writing m4 to apply the patch and disable the explicit
instantiation as a transparent fix[1], but it only worked in some cases.
 From my understanding of that part of the toolchain, it gets in a
non-deterministic linking state.  There will be an implementation of the
template compiled in libstdc++ and your code (if explicit instantiation
is disabled).  When it goes to link (remember, libstdc++ is linked
statically in Cygwin), the linker is going to remove the duplicate,
which might be the new one or the old one.


[1]
https://svn.variadic.org/public/trunk/ax_dll_string_fix/ax_dll_string_fix.m4


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Reply via email to