This is the mail archive of the cygwin-apps mailing list for the Cygwin 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]

RE: PING Jan Nieuwenhuizen re libguile17


Jan Nieuwenhuizen wrote on 22 March 2008 13:03:

> Brian Dessent:
> 
> > Note that the Cygwin gcc is not using
> --enable-fully-dynamic-string, it
> > is using the patch in PR24196 which is a compromise between the
> > pessimization of assuming fully dynamic strings and the optimization of
> > assuming one global instance of _S_empty_rep_storage.
> 
> Hmm, so I should try a forward-patch of that for 4.1?  Can someone give
> me some pointers about this?

  Well, here is an untested port of it to 4.1 for you to play with.  We're
removing the _S_empty_rep optimisation by 1) removing conditionals so it
gets treated the same as all other strings and 2) useing _M_refcopy instead
of _M_refdata so it gets the same reference counting behaviour as other
strings.

> > Also, I'm confused on another issue: if libguile exposes a C++ ABI then
> > mixing 4.1 and 3.4 should be incompatible anyway
> 
> AFAIK, 3.4 broke its abi with earlier 3.x exactly because of providing a
> 3.x version that was abi-compatible with the (much stricter and
> sometimes problematic) 4.x series.

  In general, you can't even expect compatibility even between X.y and X.z,
although most of those abi breaks are smaller.

> > , regardless of PR24196,
> > by the fact that there are so many g++ changes between those major
> > versions.  However looking at the exports of the DLL I see no C++
> > symbols.  But if libguile does not expose a C++ ABI then why does the
> > PR24196-patched gcc cause it to work again?  Or is it that it uses C++
> > internally and that is where the std::string-across-DLL-boundaries
> > problem occurs?
> 
> libguile does not use C++.  As far as I understand, it is a problem that
> is introduced while linking the dlls.

  Hmm, if it's not that then I don't know what, nor why autogen started
working for me when I recompiled libguile, but the crashes definitely seemed
to unwind through it.


    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....

Attachment: br1.diff
Description: Binary data


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