Go Back   Champions of Regnum > English > Technical Support > Linux

Linux Technical issues under Linux platform

Reply
 
Thread Tools Display Modes
Old 05-30-2013, 05:35 AM   #1
Chrysalis
Pledge
 
Join Date: Mar 2010
Posts: 44
Chrysalis is on a distinguished road
Default Game (launcher) won't start after update

I ran the launcher (rolauncher), logged in, it updated itself, and then crashed trying to run the updated version with:

rolauncher: /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./rolauncher)

As a result, I can't run the launcher to update my system, or enter the game. I happened to have a backup just before the update, so I've tried this several times, after restoring the backup.

It seems the build system was updated to use a very new version of gcc (>=4.6) and needs linkage to a shared library newer than my system has. Can't we build the launcher with the previous, more compatible gcc? or perhaps statically link this library to prevent the dynamic linkage issue?
Chrysalis no ha iniciado sesión   Reply With Quote
Old 05-30-2013, 08:39 AM   #2
Linuxmage
Initiate
 
Linuxmage's Avatar
 
Join Date: Nov 2009
Location: Leicester, UK
Posts: 174
Linuxmage is on a distinguished road
Default

Which distro are you using?
__________________
Haven - Ariana Hailsinger
Ra - Mitra Godsmacker
Regnum Wiki Admin
Linuxmage no ha iniciado sesión   Reply With Quote
Old 05-30-2013, 02:19 PM   #3
Jardik123
Pledge
 
Join Date: Oct 2012
Posts: 46
Jardik123 is on a distinguished road
Default

Quote:
Originally Posted by Linuxmage View Post
Which distro are you using?
GCC 4.5.3 ... seems something like 2+ years old (released April 28, 2011). Not that it is that old, but it really looks like you will need newer GCC (look here, you just need to compile gcc libs and copy them where the linker will find them, you don't have to install whole GCC).
Jardik123 no ha iniciado sesión   Reply With Quote
Old 06-01-2013, 02:20 PM   #4
Chrysalis
Pledge
 
Join Date: Mar 2010
Posts: 44
Chrysalis is on a distinguished road
Default

Quote:
Originally Posted by Jardik123 View Post
GCC 4.5.3 ... seems something like 2+ years old (released April 28, 2011). Not that it is that old, but it really looks like you will need newer GCC (look here, you just need to compile gcc libs and copy them where the linker will find them, you don't have to install whole GCC).
Distributions do not immediately start using the latest compiler immediately upon release - they wait for them to become stable before producing an entire distribution based on (a possibily buggy) new compiler.

Quote:
Originally Posted by Linuxmage View Post
Which distro are you using?
The error shown is from a Gentoo Linux system built in late June 2012. GCC 4.5.3 was the newest stable compiler at the time. Even as of 1 December 2012, the newest stable compiler was GCC 4.5.4, which also does not have the symbol. The GCC 4.6 series did not become stable in Gentoo until sometime after that. Based on my experience with GCC 4.6 and glibc multilib changes, Gentoo is prudent in late adoption of the GCC 4.6 series, as it was producing garbage instructions for some CPUs, amongst other possible problems.

However, all of this completely misses the point. On Linux, if you want to distribute a portable game binary, you either statically compile the binary, or include your library versions with your distributions. NGD indeed *does* do this - if you look at rolauncher, it is statically compiled. The question is, how does a statically compiled binary end up producing a dynamic linkage error? And even if you are going to ship a dynamically linked binary, why use a compiler that requires distributions less than six months old?

When rolauncher starts, it apparently does some checks and downloads and executes a binary at runtime that runs on your system. It is this runtime binary that has the linkage problems. This binary either needs to also be statically compiled, or built with a more compatible compiler. It is also possible that a different binary gets downloaded based on the system found, and perhaps rolauncher is "guessing" wrong for my system and downloading too new a binary.

I've tried two systems now, one built late June 2012 and one December 2012 and rolauncher runs on neither. I'd appreciate a fix for this please. I've already posted a support ticket but, of course, no response.
Chrysalis no ha iniciado sesión   Reply With Quote
Old 06-01-2013, 04:14 PM   #5
LordZos
Pledge
 
Join Date: May 2013
Posts: 1
LordZos is on a distinguished road
Default Game (launcher) won't start after update

I also have the same problem now,
yesterday my rolauncher updated itself and now i can't play,
as i didn't have a backup of any kind..

I use linux Debian, and i suck with all the technical mumbo jumbo.
Do i now have to reinstall regnum online,
or is there another way for me to fix this?
( => a way that i understand :P )
LordZos no ha iniciado sesión   Reply With Quote
Old 06-01-2013, 05:02 PM   #6
surak
Legend
 
surak's Avatar
 
Join Date: Mar 2006
Location: Oslo
Posts: 2,176
surak has a spectacular aura aboutsurak has a spectacular aura about
Default

I'm rebuilding the game statically linking with libstdc++

Hang on.
__________________
Surak Remember... this is just a game! - Xephandor existe y Miriya es su profeta!
surak no ha iniciado sesión   Reply With Quote
Old 06-01-2013, 04:39 PM   #7
Jardik123
Pledge
 
Join Date: Oct 2012
Posts: 46
Jardik123 is on a distinguished road
Default

Quote:
Originally Posted by Chrysalis View Post
NGD indeed *does* do this - if you look at rolauncher, it is statically compiled. The question is, how does a statically compiled binary end up producing a dynamic linkage error? And even if you are going to ship a dynamically linked binary, why use a compiler that requires distributions less than six months old?
rolauncher is NOT staticaly linked (well depends how you look at it). The executable is just packed by UPX, thats why it looks staticaly linked. When launched, it gets decompressed and run. Check for yourself, extract with upx -d rolauncher and check imported libs using ldd rolauncher.

I see your point about new GCC and stuff, but some distros out there keep their software up to day while having no releases (Arch Linux, Mint Debian Edition, ..), and even those which don't (Debian stable, ubuntu, ...) all have new GCC. Problem here is that if the developers do have newer (or up to date) distribution installed, they can't link it against old libraries easily and then they end up with that symbol required, while maybe it doesn't even depend on feature present only in that version (but stdc++ might actually have trouble, there could have been ABI breakage because of added C++11 features from 4.6 on). And if they actually use features from C++11 (2 years old standard), they can't really support old GCC.

And ofcourse I would like to see old distros supported, so everyone can play without trouble (Haven doesn't need less people, its almost empty as is now), but if that is not possible, there is always a way for you to get newer gcc libs without touching your system, you can download either compiled or compile newer library yourself and just put it somewhere and put that dir to LD_LIBRARY_PATH, it should be used instead of system one.
Jardik123 no ha iniciado sesión   Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 01:25 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
NGD Studios 2002-2024 © All rights reserved