On Tue, May 29, 2007 at 11:20:45AM +0900, Koji Yokota wrote: > Enrico Forestieri wrote: > > I don't understand. Seems that you are still using wchar_t ... > > This crash is very similar to the one I was getting on cygwin after the > > switch to unicode. I remember that someway I was able to fix it by > > using the STLport library, before the real fix by Georg. Have a look > > at this thread (may be you will get some ideas on how to proceed): > > http://thread.gmane.org/gmane.editors.lyx.devel/68855 > > Enrico, I'm now checking this but before that I send a quick result of > the patches. I applied the attached patches but unfortunately there was > no improvement. I stated that the initialization succeeded in the > previous mail, but it was due to the fact that I already had a user > setting directory $HOME/.lyx-svn . Removing it draws back to the same > result as before.
That is because of autoloading of the splash.lyx document. I am running out of ideas here. I think that you will need advice from a real expert such as Georg. > # Does RC1 go with the following modification suggested before? > > --- src/support/lstrings.cpp (revision 18398) > +++ src/support/lstrings.cpp (working copy) > @@ -21,6 +21,7 @@ > #include <boost/tokenizer.hpp> > #include <boost/assert.hpp> > > +#undef USE_BOOST_FORMAT > #ifndef I_AM_NOT_AFRAID_OF_HEADER_LIBRARIES > #if USE_BOOST_FORMAT > #include <boost/format.hpp> > --- src/support/docstring.h.orig Sun May 27 17:26:19 2007 > +++ src/support/docstring.h Sun May 27 17:27:27 2007 > @@ -98,7 +98,7 @@ > } // namespace lyx > > > -#if SIZEOF_WCHAR_T != 4 && defined(__GNUC__) && defined(__GNUC_MINOR__) && > __GNUC__ == 3 && __GNUC_MINOR__ < 4 > +#if 1 > // Missing char_traits methods in gcc 3.3 and older. Taken from gcc 4.2svn. > namespace std { > > --- src/support/docstream.cpp.orig Sun May 27 17:40:11 2007 > +++ src/support/docstream.cpp Sun May 27 17:40:11 2007 > @@ -322,7 +322,7 @@ > > } > > -#if (!defined(HAVE_WCHAR_T) || SIZEOF_WCHAR_T != 4) && defined(__GNUC__) > +#if 1 > // We get undefined references to these virtual methods. This looks like > // a bug in gcc. The implementation here does not do anything useful, since > // it is overriden in iconv_codecvt_facet. > --- src/support/docstring.cpp.orig Sun May 27 17:40:35 2007 > +++ src/support/docstring.cpp Sun May 27 17:40:35 2007 > @@ -217,7 +217,7 @@ > > } // namespace lyx > > -#if (!defined(HAVE_WCHAR_T) || SIZEOF_WCHAR_T != 4) && defined(__GNUC__) > +#if 1 > > // gcc does not have proper locale facets for lyx::char_type if > // sizeof(wchar_t) == 2, so we have to implement them on our own. > --- src/support/types.h.orig Sun May 27 17:40:58 2007 > +++ src/support/types.h Sun May 27 17:40:58 2007 > @@ -23,7 +23,7 @@ > namespace lyx { > > /// The type used to hold characters in paragraphs > -#if defined(HAVE_WCHAR_T) && SIZEOF_WCHAR_T == 4 > +#if 0 > // Prefer this if possible because GNU libstdc++ has usable > // std::ctype<wchar_t> locale facets but not > // std::ctype<boost::uint32_t>. gcc older than 3.4 is also missing > --- configure.ac.orig 2007-05-28 17:10:24.952949000 +0200 > +++ configure.ac 2007-05-28 17:11:04.599949500 +0200 > @@ -356,11 +356,7 @@ > #endif > #endif > > -#if defined(HAVE_OSTREAM) && defined(HAVE_LOCALE) && defined(HAVE_SSTREAM) > -# define USE_BOOST_FORMAT 1 > -#else > # define USE_BOOST_FORMAT 0 > -#endif > > #define BOOST_USER_CONFIG <config.h> -- Enrico