The International Simutrans Forum

 

Author Topic: Linux 64-bit and Linux Makeobj  (Read 1670 times)

0 Members and 1 Guest are viewing this topic.

Offline jamespetts gb

  • Simutrans-Extended project coordinator
  • Moderator
  • *
  • Posts: 18745
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Linux 64-bit and Linux Makeobj
« on: June 07, 2009, 01:01:38 PM »
Thanks to the kind work of Ansgar, Simutrans-Experimental is now available in a 64-bit build for Linux. There is now also a Makeobj version available for Linux, in both 32-and 64-bit. See here for information on how to get the latest versions, or click here to browse the Linux downloadable files, including an archive of older versions.

Offline Cyrus Hall

  • *
  • Posts: 20
Re: Linux 64-bit and Linux Makeobj
« Reply #1 on: June 07, 2009, 03:45:47 PM »
Sorry to keep posting crashes, but the posted amd-x64 binary crashes immediately upon start.  My own build with -03 has the identical behavior and crashes in what appears to be the same place, while my -O2 appears to be safe, at least on my system.

Offline jamespetts gb

  • Simutrans-Extended project coordinator
  • Moderator
  • *
  • Posts: 18745
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Linux 64-bit and Linux Makeobj
« Reply #2 on: June 08, 2009, 10:03:29 PM »
Pugget,

thank you for the report. The version currently available on Github does not have the freelist fixes, which may be what causes the problem. Can you elaborate on the difference between your 03 and O2?

Offline Cyrus Hall

  • *
  • Posts: 20
Re: Linux 64-bit and Linux Makeobj
« Reply #3 on: June 08, 2009, 10:46:02 PM »
James-

I'm not a compiler expert I'm afraid, so I can't tell you anything more than the g++ man page can.  The problem is unrelated to the memory issues.

I should have posted a stack trace in the original message, but was doing ten things at once.  I'll post it here instead:

(gdb) r                                                                     
Starting program: /home/hallcp/junk/simutrans-exp/simutrans-exp-latest
[Thread debugging using libthread_db enabled]
Reading low level config data ...
parse_simuconf() at config/simuconf.tabReading simuconf.tab successful!
[New Thread 0x7f745a013700 (LWP 12502)]
Preparing display ...
Screen Flags: requested=10, actual=10
Loading font 'font/prop.fnt'
font/prop.fnt sucessfully loaded as old format prop font!
Init done.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f745a013700 (LWP 12502)]
0x00000000005c7f73 in display_ddd_box_clip ()
Current language:  auto; currently asm
(gdb) bt
#0  0x00000000005c7f73 in display_ddd_box_clip ()
#1  0x000000000047ebd1 in button_t::zeichnen ()
#2  0x00000000004bf547 in gui_container_t::zeichnen ()
#3  0x0000000000491143 in gui_scrollpane_t::zeichnen ()
#4  0x00000000004bf547 in gui_container_t::zeichnen ()
#5  0x00000000004e8aa4 in pakselector_t::zeichnen ()
#6  0x0000000000568f35 in simu_main ()
#7  0x00000000005ca3f4 in main ()

Like I said, this disappears when one compiles with only second level optimizations (-02).  Maybe code movement is screwing with an incorrectly uninitialized variable?  I don't really have time to look into it right now, sorry.

Cheers,
Pugget