News:

Simutrans.com Portal
Our Simutrans site. You can find everything about Simutrans from here.

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.

Ters

#105
I have a Windows machine and it runs there, so Wine doesn't help much with testing. The main problems seem to be to convince gcc to target an old enough CPU. I would need a virtual machine and a copy of Windows XP for that. Or I need to find a way to grep an executable for specific instructions.

It is possible that the pre-compiled mingw for Windows is configured to target old enough architectures, but mine is also set up to link dynamically (or worse, half dynamically and half statically), so one also needs a bunch of DLLs. It also gives a big load of ugly warnings during linking.

EDIT:
I found a way to grep an executable (though in the end, I didn't use grep). The fisttp instructions seemed to originate from the mingw-runtime, which for some reasons get compiled using host settings rather than target settings (if I got my cross compilation nomenclature right). After googling a way to override host settings for that particular package (I can't downgrade my entire system to pentium2), I got an executable with no signs of fisttp. I've updated http://simutrans-germany.com/files/upload/simgdi_r5961.zip with this fix. If it works, wernieman can try to do the same to his setup.

wernieman

When you can give me a "white Paper", I could try it .... and I test with my PC, because it is quicker than the Server
I hope you understand my English

Václav

Quote from: Ters on October 02, 2012, 04:41:07 AM
EDIT:
I found a way to grep an executable (though in the end, I didn't use grep). The fisttp instructions seemed to originate from the mingw-runtime, which for some reasons get compiled using host settings rather than target settings (if I got my cross compilation nomenclature right). After googling a way to override host settings for that particular package (I can't downgrade my entire system to pentium2), I got an executable with no signs of fisttp. I've updated http://simutrans-germany.com/files/upload/simgdi_r5961.zip with this fix. If it works, wernieman can try to do the same to his setup.
This version of 5961 runs - at first glance. Game started right. I shall see what I shall see later - if there is something wrong.

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

Ters

In case anyone is wondering, I sent wernieman my recipe for apparent success a few days ago. It's not exactly trivial, so I don't know how long it will take to put into effect (or even if it has been already).

wernieman

Thanks to Ters for the Info ... but the last Day I was not at Home (Holliday :o) )

Today I make the mingw32 with the Info from Ters ... so we could loog for the next Version. But only GDI! The SDL is at the moment an old Version auf the mingw32 Cross-Compiler
I hope you understand my English

Václav

Some days passed ... and still no new nightly works. So I have to use nightly by Ters.

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

Ters

That's not really a nightly, just a random snapshot. And one that by now is older than the latest stable release.

Václav

I downloaded latest available nightly - 6006 and there game crashes with the same log as in the beginning - bz_.... but I did not know about stable release. So I am going to test it ... and I shall see what I shall see.

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

wernieman

WinSDL or WinGDI?

At the moment it i a different compilation!
I hope you understand my English

Václav


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

wernieman

shid .... I don´t know to solve it :o(
I hope you understand my English

Václav

And how Ters solved it? That at least GDI was running (aside of minor problems of type that my monitor resize screen in wrong way* - but it is not something that is on side of game).

With SDL is no problem - but with GDI monitor resizes screen. And in own screen of monitor (Philips, 192E) is not visible all what should be visible. Mostly it is clear on status line - because coords or icon for time axis are not fully visible ... mostly after shutting down of game screen (with windows key or so). But as I wrote, it is not on side of game.

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

prissi

GDI switches the monitor to 16 bit only when using full screen. If the graphics card then changes its timing, then this is a bug in the driver of the graphics card. (Since 16 bit modes are not used much any more, those are often not really tested.)

Either use SDL or not the fullscreen mode and just maximize the window.

wernieman

So ... at the moment ... did it work?

I could not test :o(
I hope you understand my English

Václav

It still does not run - 6029. I try (almost) all versions (as they appear on nightlies pages) - and as I tested number 6000 from nightlies pages, it does not run - while number 6000 published in stable ...

It is strange.

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

wernieman

Is there a different between GDI and SDL?
I hope you understand my English

Václav


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

wernieman

... but they are different Compiler :o(
I hope you understand my English

Václav

May it be ... it is all that is clear to me. I don't comprehend it.

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

Ters

Can VaclavMacurek report the address it crashes on this time, for both GDI and SDL? And can wernieman provide unstripped executables? I've disassembled both the SDL and the GDI executable, and the SDL version has fewer fisttp instructions than the GDI version, though both still have a few. I don't think I actually checked the entire files before. The ones both have are all localized in a small section of code, so it's probably just one source left.

wernieman

You only need the unstriped exe?

Then I make a spezial Compiler run on next Weekend.
I hope you understand my English

Ters

Quote from: wernieman on November 08, 2012, 08:15:00 PM
You only need the unstriped exe?

I think that should do. (No -s when linking.)

Václav

Debug logs in attachment.

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

wernieman

I make a spezial run
http://www.wernieman.de/6041.zip

But ... it is the Version r6041 .. and in th zip-File are the both unstriped exe
I hope you understand my English

Václav

Tested ... and result is in attachment.

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

Ters

It's exactly the same code in both, in the function __gdtoa. __gdtoa is part of the mingw-runtime, so unless there is another implementation of it coming in from some other source, mingw-runtime still isn't built with the correct target.

Václav

correct target? what target do you speak about? this is something where I am lost.

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

Dwachs

target = processor family / type. The post is directed at wernieman ;)
Parsley, sage, rosemary, and maggikraut.

wernieman

Mhhh ..... In the last year Gentoo change the crossdev-skript ... :o(

At the Moment the make show:

CHOST=i686-pc-mingw32
CBUILD=x86_64-pc-linux-gnu
ARCH=x86

HOSTCC=x86_64-pc-linux-gnu-gcc
E_MACHINE=EM_386

ROOT=/usr/${CHOST}/

#ACCEPT_KEYWORDS="x86 ~x86"
ACCEPT_KEYWORDS="x86"

USE="${ARCH} zlib bindist make-symlinks minimal"

#MARCH_TUNE="-march=armv4t -mtune=arm9tdmi"     #arm-softfloat-linux-uclibc
#MARCH_TUNE="-march=armv5t -mtune=xscale"       #armv5teb-softfloat-linux-gnueabi

#CFLAGS="-Os -pipe ${MARCH_TUNE} -fomit-frame-pointer"
CFLAGS="-march=pentium3"
CXXFLAGS="${CFLAGS}"

I hope you understand my English

Ters

As I told you before in a private message, mingw-runtime is for some reason not compiled with the crossdev settings, but with your host settings. It's a bug in my opinion, and the workaround is to the set package specific settings in package.env.

wernieman

I hope you understand my English

Ters

#136
Quote from: wernieman on November 12, 2012, 03:07:23 PM
Soo ...... I make a new try ... please check: http://www.wernieman.de/6043.zip
I still find the same fisstpl instructions.

EDIT:
It would perhaps be less time consuming if you ran i686-pc-mingw32-objdump -d sim.exe | grep fisttp yourself. If you get more or less than 8 hits, something has changed, for better or worse.

wernieman

I make at know different Versions ... but I get the same Problem :o (

Thanks for the Tip with
i686-pc-mingw32-objdump -d sim.exe | grep fisttp

Edit:
Tommorow a make a new try with some Information I get from some friends ..
I hope you understand my English

wernieman

I hope you understand my English

Václav

And you hope right. This runs right.

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