News:

Simutrans Wiki Manual
The official on-line manual for Simutrans. Read and contribute.

r5899 nightly fails to start

Started by The Hood, August 31, 2012, 08:19:24 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Václav

prissi: AMD Duron, 1,3 GHz
Ters: common fail message - but DrMinGW says:


sim-winsdl.exe caused an Illegal Instruction at location 0044b89b in module sim-winsdl.exe.

Registers:
eax=00027100 ebx=0025237e ecx=00000000 edx=00000000 esi=00000001 edi=00320031
eip=0044b89b esp=0023edb0 ebp=0023ede8 iopl=0         nv up ei pl nz na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000202

Call stack:
0044B89B  sim-winsdl.exe:0044B89B
00440F4D  sim-winsdl.exe:00440F4D
005A5525  sim-winsdl.exe:005A5525
005B0AA7  sim-winsdl.exe:005B0AA7
0061C2AC  sim-winsdl.exe:0061C2AC
0061D337  sim-winsdl.exe:0061D337
004010BB  sim-winsdl.exe:004010BB
004012C8  sim-winsdl.exe:004012C8
7C816D4F  kernel32.dll:7C816D4F  RegisterWaitForInputIdle


About Windows 98: I used this OS until Christmas of 2009 - but no longer. But it was good OS.

Chybami se člověk učí - ale někteří lidé jsou nepoučitelní

wernieman

shid ... I don't know the Problem ....
I hope you understand my English

Ters

AMD Duron is SSE only, and for the oldest ones not even that. It appears to be contemporary to Pentium III. Looks like we have to extend the processor support further back in time.

prissi

Since the Debug build are anyway slow, maybe again set march to pentium II, or even pentium again?

wernieman

#74
I switch pack to PentiumIII

PentiumII is not testet and today, I have no time ;o)

EDIT:
... did somebody know, how to deaktivate SSE?

I know how to aktivate (-msse), but to deaktivate ....

EDIT2:
O.K. "-mno-sse(2,3) is the solution ...

Next Version will compiled with this Options

Edit3:
for the Devs, this is the config for WinGDI:BACKEND = gdi
COLOUR_DEPTH = 16
OSTYPE = mingw
DEBUG = 3 
OPTIMISE = 1
WITH_REVISION = 1
FLAGS = -DSTEPS16
CCFLAGS = -march=pentium3 -mno-sse -mno-sse2 -mno-sse3
CXXFLAGS = -march=pentium3 -mno-sse -mno-sse2 -mno-sse3
LDFLAGS = -static

CC=mingw32-gcc
CXX=mingw32-c++
LD=mingw32-ld
AR=mingw32-ar
AS=mingw32-as
NM=mingw32-nm
STRIP=mingw32-strip
RANLIB=mingw32-ranlib
DLLTOOL=mingw32-dlltool
OBJDUMP=mingw32-objdump
RESCOMP=mingw32-windres
WINDRES=mingw32-windres
I hope you understand my English

Ters

That will sacrifice a lot of functionality. Once back at Pentium, I'm not sure there is anything new and useful in the instruction set since the 386. I wonder how far back gcc 4.5+ can target.
-mno-sse should disable SSE. -mfpmath appear to only be necessary on x64, but if that was targetted, we'd have other problems.

wernieman

See my last Edit ... I edit it, when you write ...
I hope you understand my English

Ters

I would assume that -march=pentium3 or -mno-sse would disable sse2 and sse3 automatically, but better safe than sorry now that you've added them.

wernieman

This is the Reason, I use it ;o)

better use 2 Flags, than to forget some ...
(Besser zufiel als zuwenig verwenden ... vor allem da Zufiel nicht schadet)

Edit:
I see, that the last wingdi was build with penium3 ....... and he has a Problem with it ...
I hope you understand my English

Ters

Maybe he doesn't have the very latest. I can't get hold of the nightly download page either, so I haven't been able to check which instruction it might be choking on.

And by the way, the STEP16 flag is gone, or so I have been told.

wernieman

It is not "in use" or "it is bad to set it"?

It will be wonderfull, when a Dev could look to the config ...

Last compiletime:
Windows/GDI Version: 111.4-5929
Date: Sep 17 2012  at 04:31  (MEZ)
I hope you understand my English

prissi

Wehn profiling with DEBUG on (which is hopefully on with the nightly) the only difference in speed was between pentium and pentium2 (which were both supported with GCC 4.6.2). There have been few new command with the pentium, like the conditions move.

wernieman

O.K., so at the Moment the config is

BACKEND = gdi
COLOUR_DEPTH = 16
OSTYPE = mingw
DEBUG = 3
OPTIMISE = 1
WITH_REVISION = 1
FLAGS = -DSTEPS16

CCFLAGS = -march=pentium2 -mno-sse -mno-sse2 -mno-sse3
CXXFLAGS = -march=pentium2 -mno-sse -mno-sse2 -mno-sse3
LDFLAGS = -static

CC=mingw32-gcc
CXX=mingw32-c++
LD=mingw32-ld
AR=mingw32-ar
AS=mingw32-as
NM=mingw32-nm
STRIP=mingw32-strip
RANLIB=mingw32-ranlib
DLLTOOL=mingw32-dlltool
OBJDUMP=mingw32-objdump
RESCOMP=mingw32-windres
WINDRES=mingw32-windres


The last nightly (18.09) was build with pentium3
I hope you understand my English

Ters

I think there is no need to say no-sse when you target pentium2, as SSE is from later generations.

Václav

Test of latest nightly was not succesful.

And here is message from DrMinGW:

sim-wingdi.exe caused an Illegal Instruction at location 00640d14 in module sim-wingdi.exe.

Registers:
eax=00000000 ebx=007e3040 ecx=fffffbcb edx=00000000 esi=0023e70c edi=00000040
eip=00640d14 esp=0023e620 ebp=00000001 iopl=0         nv up ei ng nz na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000282

Call stack:
00640D14  sim-wingdi.exe:00640D14  BZ2_bzerror

Chybami se člověk učí - ale někteří lidé jsou nepoučitelní

wernieman

I hope you understand my English

Václav


Chybami se člověk učí - ale někteří lidé jsou nepoučitelní

prissi

Since bz2 might be also self compiled, maybe there was still the pentium4 setting?

wernieman

no, bz2 is from "the old" mingw32 ...
I hope you understand my English

Ters

#89
Set target to 386. That's as low as Simutrans can possibly go on the PC platform. If that doesn't work, the problem lies elsewhere.

EDIT:
What did you target when building the mingw runtime? Has that been downgraded too?

wernieman

I look at my mingw32 ... but sorry, today I do nothing ... enough Serverproblems (at Work) ;o)
I hope you understand my English

Ters

I think the mingw runtime should be compiled with a very low CPU target. Perhaps not as low as 386, but since it's not project specific, it should target a low common denominater. Hopefully, there isn't much performance critical stuff in it. There's also other compiler specific libraries (like libstdc++ and libgcc). I'm not sure how to tune them.

prissi

pentium should be ok. i386 will not run any existing OS (ok Windows 95 original was the last that could have run on that target). But any after Windows95 and up uses a pentium (while technically it was still possible to run windows 98 on a 486, windows ME was not longer supporting then 486).

wernieman

I whave a (little) Idea, how to solve it .... but I need Time for it
I hope you understand my English

Ters

I did actually have to provide support for a user using Windows 98 this year. It almost made me fall off the chair, but it shows that there is some old stuff out there. The hardware was probably just as old. Fortunately for the user, the program I've become the (sole) support contact for was made for Windows 95 and feels more at home on Windows 98 than Windows 7. A Mac user wasn't so lucky.

The 386 suggestion was perhaps a bit exaggerated, but it would rule out the compilation of Simutrans itself yielding any illegal instructions, unless there was a compiler bug.

wernieman

Sorry, but there are the official simutrans too. I think User with this Hardware did not use the newest nigthly ...
I hope you understand my English

Ters

I just checked and the fisttp instruction is still in sim-wingdi_2012-09-19_v111.4_r5932.zip. (Curiously, fisttp seems to be an SSE3 feature, but is a normal FPU instruction, not an SSE instruction. It should still come and go with -m(no)-sse3, as the debate on whether to add a separate -mno-fisttp to gcc seems to have ended with "no".)

Václav

Test of 5935 was not successful

message given by Dr. MinGW:

sim-winsdl.exe caused an Illegal Instruction at location 00640724 in module sim-winsdl.exe.

Registers:
eax=00000000 ebx=007e3080 ecx=fffffbcb edx=00000000 esi=0023e83c edi=00000040
eip=00640724 esp=0023e750 ebp=00000001 iopl=0         nv up ei ng nz na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00200282

Call stack:
00640724  sim-winsdl.exe:00640724  BZ2_bzerror


... I think that it is the same.

Chybami se člověk učí - ale někteří lidé jsou nepoučitelní

wernieman

yes, it is the same, because I have no time to make the new new mingw32 ........

I hope, that at weekend I could build it. I need some hours ...
I hope you understand my English

Václav

Some hours?

With 5959 it still does not run. Error log keeps the same. It is attached.

Chybami se člověk učí - ale někteří lidé jsou nepoučitelní

wernieman

I don't know, how to solve it ... I make a verry new mingw32-cross-compiler and it did not work ....

I must try to get a Windows-PC, so it is easyer for me to make bug-Hunting ....

(is "easyer" correct english??)
I hope you understand my English

Václav

Quote from: wernieman on October 01, 2012, 06:50:00 PM
(is "easyer" correct english??)
No, it is not correct. Easier is correct. When short word ends with y, then y change into i.
Easy - easier, lazy - lazier ...  :)

And to all other matter of message, thanks for info.  :-[

Chybami se člověk učí - ale někteří lidé jsou nepoučitelní

Ters


Václav

No.

Error log is attached.
There is nothing about BZ2 ... but it is all I can read from it.

Chybami se člověk učí - ale někteří lidé jsou nepoučitelní

kierongreen

Just a suggestion - I compile my test releases in wine (actually in mingw in wine). It's a bit of a roundabout way of doing things but it avoids cross compiling (and also means the executable can be tested).