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