Jump to content


Photo

DarkRadiant Crashes Immediately Under Slackware


  • Please log in to reply
13 replies to this topic

#1 NightStalker

NightStalker

    Linux hero

  • Development Role
  • PipPip
  • 156 posts

Posted 02 January 2017 - 08:32 PM

With the patch supplied in another thread, I was able to successfully compile DarkRadiant (both 2.1.0 and the latest code from SourceForge github) under Linux (specifically, 32-bit Slackware 14.2).

Unfortunately, when run, it immediately crashes. Compiler is GCC 5.3.0.

Running under the debugger yields this:

Spoiler
Can anyone shed some light on this, maybe even recommending a possible fix? Thanks!


Edited by NightStalker, 07 January 2017 - 04:13 PM.


#2 greebo

greebo

    Heroic Coder

  • Root
  • 15975 posts

Posted 02 January 2017 - 11:40 PM

No need to create a separate thread just for the patch, just post it in here.

 

The crash occurs in a std::string constructor which is as basic at is can get in terms of C++. I haven't seen this one before, but maybe the runtime library version mismatches with that of your compiler? (I checked compilation in Fedora 25, openSUSE, Ubuntu 16.04, Kubuntu 16.04, Ubuntu 16.10 and Arch Linux, and none of them crashed this early during execution.)

 

I assume you clone your sources from github, not from sourceforge?



#3 NightStalker

NightStalker

    Linux hero

  • Development Role
  • PipPip
  • 156 posts

Posted 03 January 2017 - 10:42 AM

No need to create a separate thread just for the patch, just post it in here.

In my defense, the patch and the crash really are 2 distinct issues, which could potentially generate independent discussions, which is why I separated them. But I suppose it will seem silly if the patch thread generates no further discussion.

The crash occurs in a std::string constructor which is as basic at is can get in terms of C++. I haven't seen this one before, but maybe the runtime library version mismatches with that of your compiler? (I checked compilation in Fedora 25, openSUSE, Ubuntu 16.04, Kubuntu 16.04, Ubuntu 16.10 and Arch Linux, and none of them crashed this early during execution.)

A logical assumption, but not applicable in this case, unfortunately. I should have mentioned it, but the Slackware installation is essentially "virgin" (full install, straight from the official DVD media), with only OpenAL-Soft library/headers added to support TDM compilation, EDIT: and WxWidgets and FTGL added (both compiled from source) to support DarkRadiant.

 

Any other ideas? (I'm not a "C++ person" by any stretch, unfortunately.)

Thanks for the info on the other platforms. I will try to get something besides Slackware installed on a test partition and re-attempt the DR compilation/run. But I'd still appreciate hearing any more suggestions (from anyone) about the reason for the crash.

 

I just noticed that someone changed the title of my thread from "Linux" to "Slackware".  I'm not sure I agree with that.  It seems needlessly defensive and premature at best. Maybe there are other Linux distributions that are similarly affected.

I assume you clone your sources from github, not from sourceforge?

Now why would I do that when the TDM "Mission Authors" page points me to SourceForge? ;) Getting serious, though, I never knew that DR was hosted on Github, so thanks for the reminder. Someone should update that TDM page to point folks to Github. And maybe the SourceForge page, which has a "Source Code" link on the left side to the SF site, should also be adjusted.

Having said that, I don't think any of this (compilation or running problem) is an issue of SF vs Github because the 2.1.0 code didn't compile or run without crashing either. Nevertheless, I will grab the latest source code from Github for all future tests.

Thanks for the comments, greebo! Much appreciated!


Edited by NightStalker, 07 January 2017 - 03:47 PM.


#4 greebo

greebo

    Heroic Coder

  • Root
  • 15975 posts

Posted 03 January 2017 - 11:51 AM

Now why would I do that when the TDM "Mission Authors" page points me to SourceForge? ;) Getting serious, though, I never knew that DR was hosted on Github, so thanks for the reminder. Someone should update that TDM page to point folks to Github. And maybe the SourceForge page, which has a "Source Code" link on the left side to the SF site, should also be adjusted.

Yes, the thedarkmod.com page points to darkradiant.sourceforge.net, which is the project's home page. And yes, that page has a "Source Code" link on the left side. Did you click on the link? Cause it points right to github.com.

Having said that, I don't think any of this (compilation or running problem) is an issue of SF vs Github because the 2.1.0 code didn't compile or run without crashing either. Nevertheless, I will grab the latest source code from Github for all future tests.

The code in the old sourceforge repo is more than 4 years out of date, it's even called "darkradiant_legacy", so it might be a huge problem if you pulled the sources from there, that's why I asked. You have compiled the 2.1.0 sources? Then you must have pulled them from github, I assume.

I just noticed that someone changed the title of my thread from "Linux" to "Slackware". I'm not sure I agree with that. It seems needlessly defensive and premature at best. Maybe there are other Linux distributions that are similarly affected.

What is this Linux thing I keep hearing about? ;)

Any other ideas? (I'm not a "C++ person" by any stretch, unfortunately.)

No, but I haven't googled the error yet. I might have a go at installing Slackware in yet another virtual machine.

#5 NightStalker

NightStalker

    Linux hero

  • Development Role
  • PipPip
  • 156 posts

Posted 03 January 2017 - 12:53 PM

Yes, the thedarkmod.com page points to darkradiant.sourceforge.net, which is the project's home page. And yes, that page has a "Source Code" link on the left side. Did you click on the link? Cause it points right to github.com.

Clearly not. I merely hovered over it and saw the "darkradiant.sourceforge.net/source.php" URL and jumped to the wrong conclusion. :blush:
 
In fact, I was completely mistaken about the source of my source code.  I erroneously thought that my "DarkRadiant-master.zip" file came from SourceForge, but looking at it again now, it seems that I downloaded it (and the 2.1.0 source code) from Github!  My apologies for the confusion.  The 2.1.0 source was downloaded almost a month ago, but I should have remembered the source of my (re-)downloading of the "master" zip file from 2 days ago.  The old grey matter just ain't what it used to be. ;)

The code in the old sourceforge repo is more than 4 years out of date, it's even called "darkradiant_legacy", so it might be a huge problem if you pulled the sources from there, that's why I asked. You have compiled the 2.1.0 sources? Then you must have pulled them from github, I assume.

But there are definitely some non-"legacy" DR pages still out there on SF.  For example: this page with 2.1.0. Although, to be clear, given that my 2.1.0 source code has a '.tar.gz' extension, it seems to have come from Github. In fact:

==> md5sum 2.1.0.tar.gz
3985ddf475c6045463e5cc7a2128445b  2.1.0.tar.gz

==> md5sum DarkRadiant-2.1.0.tar.gz
3985ddf475c6045463e5cc7a2128445b  DarkRadiant-2.1.0.tar.gz

That first file was downloaded (presumably from Github) on 05 Dec 2016. Second file was downloaded (also, presumably definitely, from Github) 2 days minutes ago. Not sure why the name would be different now (I didn't rename either one), but clearly they have the same content.

And, just to be clear, I compiled from 2.1.0 sources first (with my patch).  When that failed to run very far, I (re-)grabbed the latest source code and compiled it fine (again, with patch) but failed again to run very far. :(

That would be great if you could try it on Slackware.  My bandwidth is quite limited, but I will report more once I get a chance to try at least one other Linux distro.
 
Thanks again, greebo!

 

EDIT: Confusion correction!


Edited by NightStalker, 03 January 2017 - 12:55 PM.


#6 NightStalker

NightStalker

    Linux hero

  • Development Role
  • PipPip
  • 156 posts

Posted 03 January 2017 - 01:53 PM

Update to my post above... Drilling around the SF site some more, it seems that there are plenty of modern binaries, but the only source code there is all legacy stuff.  Although I find it confusing (because when I'm on a site of an open-source project with modern binaries, I will assume that the source code is just on some other page that I haven't yet found), at least I know now not to bother with the SF site at all and just go directly to Github!



#7 nbohr1more

nbohr1more

    Darkmod PR, Wordsmith

  • Development Role
  • PipPipPipPipPip
  • 7785 posts

Posted 03 January 2017 - 02:05 PM

???

Go here:

http://www.thedarkmod.com/main/

then go to Downloads:

http://www.thedarkmod.com/downloads/

then go to Mission Authors:

http://www.thedarkmo...ission-authors/

then click the link:

http://darkradiant.sourceforge.net/

Click the "Source Code" button on the right:

http://darkradiant.s....net/source.php

Click the "Github Repository" link:

https://github.com/c...der/DarkRadiant


I'm not sure how you got to that other part\page at SourceForge but "http://darkradiant.sourceforge.net/"
should be where everyone goes to get DarkRadiant.
Please visit TDM's IndieDB site and help promote the mod:

http://www.indiedb.c...ds/the-dark-mod

(Yeah, shameless promotion... but traffic is traffic folks...)

#8 NightStalker

NightStalker

    Linux hero

  • Development Role
  • PipPip
  • 156 posts

Posted 03 January 2017 - 02:17 PM

I'm not sure how you got to that other part\page at SourceForge [...]

It's quite simple, really...

Go here: [...]
http://darkradiant.sourceforge.net/

Now click the "SF.net Project Page" button (or the large, bold, stylized "SourceForge" button) on the left. ;)

#9 greebo

greebo

    Heroic Coder

  • Root
  • 15975 posts

Posted 07 January 2017 - 07:36 AM

The problem should be gone now (http://bugs.thedarkm...iew.php?id=4461)

 

Also adjusted the compilation guide on the wiki: http://wiki.thedarkm...#Slackware_14.2



#10 NightStalker

NightStalker

    Linux hero

  • Development Role
  • PipPip
  • 156 posts

Posted 07 January 2017 - 03:40 PM

Many thanks for looking into this, greebo!
 
Unfortunately, after grabbing the latest source code from 'git' and successfully building (even without my patch from that other thread of mine), DarkRadiant still crashes, although after getting further along than before.
 
Here is the debugger backtrace:
Spoiler
And here is the log file content:
Spoiler

BTW, with respect to your BugTracker mention, I'm NightStalker, not Nightcrawler. ;)
 
Looking forward to any updates and/or suggestions you might offer. Thanks!

#11 greebo

greebo

    Heroic Coder

  • Root
  • 15975 posts

Posted 07 January 2017 - 11:11 PM

Why is your darkradiant binary called "lt-darkradiant" and located in a hidden .libs folder, while the modules are all located in /usr/local/lib? My binary is just called "darkradiant" and is in the <prefix>/bin/ directory. Also, the libraries built by the code checked out from git are versioned 2.1.1 (e.g. libdds-2.1.1.so), and not 2.0.2 like in your module list. And the libraries are in the <prefix>/lib/ folder, of course.

 

My wxwidgets libraries are versioned 3.0 (libwx_baseu-3.0.so) and are located in /usr/lib, not /usr/local/lib. How did you install the dependency packages and which ones, from where?

 

The paths and versions are all weird on your system, what have you done beforehand to reach that state?



#12 NightStalker

NightStalker

    Linux hero

  • Development Role
  • PipPip
  • 156 posts

Posted 08 January 2017 - 01:41 AM

Nevermind. :blush: :blush: :blush:

I'd forgotten that I'd actually installed DarkRadiant 2.1.0 rather than just running it initially from the build directory (as I normally do with any app I'm building from source code, prior to installation).  It was interfering.

Once I installed the latest-git version, DarkRadiant runs like a champ! :awesome:

My apologies for the confusion.  In my defense, it was 6 days ago and, as I said, the old grey matter just ain't what it used to be.  But still, it's embarrassing.

As for the binary being "lt-darkradiant", that's the only way to run it in the debugger before installing the app.

As for the difference in paths, I compile from source code (WxWidgets, FTGL, etc).  I don't neeeed no steeenkin' packages. ;)

Thanks again for your code updates and guidance!  Much appreciated!

 



#13 Bikerdude

Bikerdude

    Mod hero

  • Member
  • PipPipPipPipPip
  • 18642 posts

Posted 08 January 2017 - 06:45 AM

@Nightstalker, does that mean that the the latest version 2.1.1 now runs under your current flavour of linux..?



#14 NightStalker

NightStalker

    Linux hero

  • Development Role
  • PipPip
  • 156 posts

Posted 08 January 2017 - 10:05 AM

Yes, indeed!  "Help", "About" says "DarkRadiant 2.1.1 x86", built from latest Github code as of yesterday.  OS is 32-bit Slackware 14.2.  I have not tried to compile DR on 64-bit Slackware (either with or without 32-bit 'multilib' extensions).

I'm a mapping noob, so I don't know how to properly exercise the app, but I just now loaded the extracted "Closemouthed Shadows" mission map and it looks fine and seems to work fine in DR.

If there's anything you'd like me to try (compile-wise or run-wise), just let me know.






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users