Hi Angus,

did you see my email? AFAICS, the problems of LyX/MinGW are not caused by gcc but are home-made.

BTW: The MinGW people have published a couple of new versions of their tools recently. I use all the latested candidate versions and I did not encounter any problem (beside the LyX problems).

If you link against a static qt library, the link times are fairly good even for LyX 1.4 (just a few minutes). I have updated my compile instructions just in case you want to create your own binary. If you want to use MinGW's gdb, you should set CXXFLAGS and CFLAGS to "-gstabs".

Kind regards, Michael


Hi Angus,

I think I managed to create some reasonable backtraces for LyX 1.4 on Windows.

AFAICS, there are at least three problerms with LyX 1.4 on Windows at the moment. However, I have no idea what causes them... :-(

Michael

***** BUG 1 *****

Program received signal SIGSEGV, Segmentation fault.
0x77c178c0 in _libwsock32_a_iname ()
(gdb) where
#0  0x77c178c0 in _libwsock32_a_iname ()
#1  0x00ca120e in std::string::operator=(char const*) ()
#2  0x00c37252 in Messages::Pimpl::Pimpl(std::string const&) ()
#3  0x0047bba0 in Messages::Messages() (this=0xec5f60) at messages.C:180
#4 0x004430ab in (anonymous namespace)::getLyXMessages() () at gettext.C:30
#5  0x004430e9 in _(std::string const&) (str=0x22fa10) at gettext.C:40
#6  0x00418a2e in Menu::read(LyXLex&) (this=0xec569c, lex=0x22fbf0)
   at MenuBackend.C:338
#7 0x0041b91b in MenuBackend::read(LyXLex&) (this=0xec5690, lex=0x22fbf0)
   at MenuBackend.C:864
#8 0x004535b3 in LyX::readUIFile(std::string const&) (this=0x3497560, name=0x22fcd0) at lyx_main.C:753 #9 0x0045358a in LyX::readUIFile(std::string const&) (this=0x3497560, name=0xec6354) at lyx_main.C:749
#10 0x00450fbe in LyX::init(bool) (this=0x3497560, gui=587059201)
   at lyx_main.C:473
#11 0x00450238 in LyX::priv_exec(int&, char**) (this=0x3497560, argc=0x22ff80, argv=0x3f2728) at lyx_main.C:227
#12 0x0044fd95 in LyX::exec(int&, char**) (argc=0x22ff80, argv=0x3f2728)
   at lyx_main.C:143
#13 0x00401457 in main (argc=1, argv=0x3f2728) at main.C:47


(gdb) frame 3
#3  0x0047bba0 in Messages::Messages() (this=0xec5f60) at messages.C:180
180     {}
(gdb) print *this
$1 = {pimpl_ = {ptr = 0x0}}

(gdb) frame 4
#4 0x004430ab in (anonymous namespace)::getLyXMessages() () at gettext.C:30
30              static Messages lyx_messages;

(gdb) print lyx_messages
$2 = {pimpl_ = {ptr = 0x0}}



***** BUG 2; after disabling translation at gettext.C:40  *****

checking for a LaTeX -> LyX converter...
+checking for "/c/Dokumente"... no <<<====== should be /c/Dokumente und Einstellungen/...



***** BUG 3; along bug 2  *****

Program received signal SIGSEGV, Segmentation fault.
0x0067b877 in QString::lower() const ()
(gdb) where
#0  0x0067b877 in QString::lower() const ()
#1 0x0085091b in loadEngine(QFont::Script, QFontPrivate const*, QFontDef const&, QtFontFamily*, QtFontFoundry*, QtFontStyle*) () #2 0x00854f7c in QFontDatabase::findFont(QFont::Script, QFontPrivate const*, QFontDef const&, int) ()
#3  0x006cdc95 in QFontPrivate::load(QFont::Script) ()
#4  0x006ceaf1 in QFont::rawName() const ()
#5 0x0054b0c1 in (anonymous namespace)::isChosenFont(QFont&, std::string const&) (font=0x22fa00, family=0x22fa70) at qfont_loader.C:165 #6 0x0054b65e in (anonymous namespace)::getSymbolFont(std::string const&) (
   family=0x22fa70) at qfont_loader.C:217
#7 0x0054c604 in FontLoader::available(LyXFont const&) (this=0xec8220, f=0x22fb20) at qfont_loader.C:361
#8  0x0053b895 in lyx_gui::font_available(LyXFont const&) (font=0x22fb20)
   at lyx_gui.C:329
#9 0x004bad77 in augmentFont(LyXFont&, std::string const&) (font=0x22fb80, name=0x22fdd4) at math_support.C:665 #10 0x004c2453 in (anonymous namespace)::math_font_available(std::string&) (
   name=0x22fdd4) at math_factory.C:88
#11 0x004c2c55 in (anonymous namespace)::initSymbols() () at math_factory.C:179
#12 0x004c316f in initMath() () at math_factory.C:229
#13 0x00450274 in LyX::priv_exec(int&, char**) (this=0x3497560, argc=0x22ff80, argv=0x3f2728) at lyx_main.C:233
#14 0x0044fd85 in LyX::exec(int&, char**) (argc=0x22ff80, argv=0x3f2728)
   at lyx_main.C:143
#15 0x00401457 in main (argc=1, argv=0x3f2728) at main.C:47

(gdb) frame 8
#8  0x0053b895 in lyx_gui::font_available(LyXFont const&) (font=0x22fb20)
   at lyx_gui.C:329
329     in lyx_gui.C
(gdb) print *font
$20 = {bits = {family = EUFRAK_FAMILY, series = MEDIUM_SERIES, shape = UP_SHAPE, size = SIZE_NORMAL, color = 28, emph = OFF, underbar = OFF, noun = OFF, number = OFF}, lang = 0x3493efc, sane = <optimized out or zero length>, inherit = <optimized out or zero length>, ignore = <optimized out or zero length>}




1 MinGW & MSYS

1.1 Download the following packages from http://www.mingw.org/download.shtml

      ...

1.2 Install ... in C:\MinGW

1.3 Install ... in C:\msys

1.5 Extract ... in C:\MinGW (i.e., overwrite the existing binutils)


2. Gettext & Libiconv

2.1 Download the following packages from 
http://www.gnu.org/software/gettext/gettext.html

      gettext-tools-0.13.1.bin.woe32.zip
      gettext-runtime-0.13.1.bin.woe32.zip
      libiconv-1.9.1.bin.woe32.zip

2.2 Extract the three packages in C:\MinGW


3 QT3/Windows Free Edition

3.1 Get the latest CVS version

    Open the MSYS window/bash. In your home directory, enter

      cvs -d :pserver:[EMAIL PROTECTED]:/cvsroot/kde-cygwin login
      <return> (no password)
      cvs -z3 -d :pserver:[EMAIL PROTECTED]:/cvsroot/kde-cygwin co \
         -r QT_WIN32_3_3_BRANCH qt-3      
          
3.2 Compile a static (!) QT library (dynamic linking with MinGW causes 
nightmares!)

    Run "cmd.exe" (i.e., open Window command line). Enter the qt-3 directory 
    and enter

      set QMAKESPEC=win32-g++
      setenv.bat

      configure.bat -release -static
    

4. Aspell 

4.1 Download the following packages from http://aspell.net/
    (note: version 0.60.2 does not compile)

      aspell-0.50.5.tar.gz
      aspell5-en-6.0-0.tar.bz2
      aspell-de-0.50-2.tar.bz2

4.2 Extract all files in your MSYS home directory 

4.3 Enter directory aspell-0.50.5

4.4 Enter

      ./configure --enable-static --disable-shared 
--prefix=c:/Programme/Aspell-0.50.5

4.5 Edit file ./examples/Makefile: Change line 84 to
         
        CC = g++

      Change line 175 to 

        INCLUDES = -I${top_srcdir}/interfaces/cc   (i.e., strip trailing slash)

4.6 Edit file ./prog/Makefile: Change lines 190-192 (strip trailing slashes) 

      INCLUDES = -I${top_srcdir}/common\
           -I${top_srcdir}/interfaces/cc \
           -I${top_srcdir}/modules/speller/default \

4.7 Enter

        make
        make install

4.8 Enter directory aspell-de-0.50-2

4.9 Enter

      export PATH=/c/Programme/Aspell-0.50.5/bin:$PATH
      ./configure
      make
      make install

4.11 Repeat 4.9 and 4.10 for the English dictionary


5. LyX

5.1 Get the latest CVS version

    Open the MSYS window/bash. In your home directory, enter

      export CVSROOT=:pserver:[EMAIL PROTECTED]:/cvs/lyx
      cvs login
      lyx
      cvs checkout -r BRANCH_1_3_X -d lyx-devel-1.3.X lyx-devel

5.2 Get the latest CVS docs

      cd lyx-devel-1.3.X/lib
      cvs checkout -r BRANCH_1_3_X lyxdoc
      mv doc/*.in lyxdoc
      rm -f -r doc
      mv lyxdoc doc

5.3 Enter directory "lyx-devel-1.3.X"

5.4 Enter

      export LDFLAGS="-L/home/user/qt-3/lib -lqtmain -lqt-mt -lopengl32 -lglu32 
-lkernel32 -luser32 -lgdi32 -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 
-luuid -limm32 -lwinmm -lwsock32 -lwinspool"

5.5 Edit file ./config/qt.m4: Remove line 239 (i.e., remove MinGW support - 
don't laugh)

5.6 Enter

        ./autogen.sh

5.7 Edit file ./configure: Change line 12XXX (move conftest.$ac_ext in front of 
FLAGS)

      ac_link='$CXX -o conftest$ac_exeext conftest.$ac_ext $CXXFLAGS $CPPFLAGS 
$LDFLAGS $LIBS >&5'

5.8 Enter

      ./configure --without-x --with-pspell 
--with-extra-prefix=/c/Programme/Aspell-0.50.5 \
      --with-frontend=qt --disable-maintainer-mode --disable-debug 
--enable-optimization   \
      --with-version-suffix --with-qt-dir=/home/user/qt-3 
--prefix=/c/Programme/LyX-1.3

    For LyX-1.4:

      export PATH=/c/Programme/Python24:$PATH     (you need Python!)

      ./configure --without-x --with-aspell 
--with-extra-prefix=/c/Programme/Aspell-0.50.5 \
      --with-frontend=qt --disable-maintainer-mode --disable-debug 
--enable-optimization   \
      --with-version-suffix --with-qt-dir=/home/user/qt-3 
--prefix=/c/Programme/LyX-1.4    \
      --disable-pch --disable-stdlib-debug --disable-concept-checks

5.9 Enter

      make
      make install

Reply via email to