Downloaded latest GiGi (compiled OK) and FreeOrion sources from CVS today (7h of October 05).
make drops with this after several minutes of compiling:
/usr/bin/ld: `.gnu.linkonce.t._ZNK8ValueRef9OperationIdE4EvalEPK14UniverseObjectS4_' referenced in section `.rodata' of universe/server-Effect.o: defined in discarded section `.gnu.linkonce.t._ZNK8ValueRef9OperationIdE4EvalEPK14UniverseObjectS4_' of universe/server-Effect.o
/usr/bin/ld: `.gnu.linkonce.t._ZNK8ValueRef9OperationIdE4EvalEPK14UniverseObjectS4_' referenced in section `.rodata' of universe/server-Effect.o: defined in discarded section `.gnu.linkonce.t._ZNK8ValueRef9OperationIdE4EvalEPK14UniverseObjectS4_' of universe/server-Effect.o
universe/server-ResourceCenter.o(.text+0x3d8d): In function `ResourceCenter::SetPrimaryFocus(FocusType)':
: undefined reference to `MeterToFocus(MeterType)'
universe/server-ResourceCenter.o(.text+0x3f4a): In function `ResourceCenter::SetPrimaryFocus(FocusType)':
: undefined reference to `MeterToFocus(MeterType)'
universe/server-ResourceCenter.o(.text+0x418b): In function `ResourceCenter::SetSecondaryFocus(FocusType)':
: undefined reference to `MeterToFocus(MeterType)'
universe/server-ResourceCenter.o(.text+0x4348): In function `ResourceCenter::SetSecondaryFocus(FocusType)':
: undefined reference to `MeterToFocus(MeterType)'
collect2: ld returned 1 exit status
make[1]: *** [freeoriond] Error 1
make[1]: Leaving directory `/usr/src/FreeOrion'
make: *** [all] Error; 2
It seems that bug was fixed. But in recent CVS sources (10.10.05), I got newer bug:
if g++ -DHAVE_CONFIG_H -I. -I. -I. -I/usr/include/SDL -D_REENTRANT -I/usr/include/freetype2 -I/usr/include/GG -I/usr/include/GG/dialogs -I/usr/include/GG/SDL -I/usr/include/GG -I/usr/include/GG/dialogs -I/usr/include/GG/net -I/usr/include/GG/net -I/usr/include/GG -I/usr/include/GG/dialogs -DFREEORION_BUILD_HUMAN -I/usr/local/include/graphviz -DFREEORION_LINUX -Wall -O3 -funroll-loops -MT client/human/client-HumanClientApp.o -MD -MP -MF "client/human/.deps/client-HumanClientApp.Tpo" -c -o client/human/client-HumanClientApp.o `test -f 'client/human/HumanClientApp.cpp' || echo './'`client/human/HumanClientApp.cpp; \
then mv -f "client/human/.deps/client-HumanClientApp.Tpo" "client/human/.deps/client-HumanClientApp.Po"; else rm -f "client/human/.deps/client-HumanClientApp.Tpo"; exit 1; fi
client/human/HumanClientApp.cpp:86: error: `FSOUND_OUTPUT_NOSOUND' was not
declared in this scope
client/human/HumanClientApp.cpp:86: error: enumerator value for `
SOUND_DRIVER_NOSOUND' not integer constant
client/human/HumanClientApp.cpp:87: error: `FSOUND_OUTPUT_DSOUND' was not
declared in this scope
client/human/HumanClientApp.cpp:87: error: enumerator value for `
SOUND_DRIVER_DIRECT_SOUND' not integer constant
client/human/HumanClientApp.cpp:88: error: `FSOUND_OUTPUT_WINMM' was not
declared in this scope
client/human/HumanClientApp.cpp:88: error: enumerator value for `
SOUND_DRIVER_WINDOWS_MULTIMEDIA_WAVEOUT' not integer constant
client/human/HumanClientApp.cpp:89: error: `FSOUND_OUTPUT_ASIO' was not
declared in this scope
client/human/HumanClientApp.cpp:89: error: enumerator value for `
SOUND_DRIVER_ASIO' not integer constant
client/human/HumanClientApp.cpp:90: error: `FSOUND_OUTPUT_OSS' was not declared
in this scope
client/human/HumanClientApp.cpp:90: error: enumerator value for `
SOUND_DRIVER_OSS' not integer constant
client/human/HumanClientApp.cpp:91: error: `FSOUND_OUTPUT_ESD' was not declared
in this scope
client/human/HumanClientApp.cpp:91: error: enumerator value for `
SOUND_DRIVER_ESD' not integer constant
client/human/HumanClientApp.cpp:93: error: `FSOUND_OUTPUT_ALSA' was not
declared in this scope
client/human/HumanClientApp.cpp:93: error: enumerator value for `
SOUND_DRIVER_ALSA' not integer constant
client/human/HumanClientApp.cpp: In function `
std::vector<<unnamed>::SoundDriver, std::allocator<<unnamed>::SoundDriver> >
<unnamed>::GetSoundDrivers()':
client/human/HumanClientApp.cpp:108: error: `FSOUND_OUTPUT_ALSA' undeclared
(first use this function)
client/human/HumanClientApp.cpp:108: error: (Each undeclared identifier is
reported only once for each function it appears in.)
client/human/HumanClientApp.cpp:108: error: `FSOUND_SetOutput' undeclared
(first use this function)
client/human/HumanClientApp.cpp:108: error: `FSOUND_GetNumDrivers' undeclared
(first use this function)
client/human/HumanClientApp.cpp:110: error: `FSOUND_OUTPUT_OSS' undeclared
(first use this function)
client/human/HumanClientApp.cpp:112: error: `FSOUND_OUTPUT_ESD' undeclared
(first use this function)
client/human/HumanClientApp.cpp:116: error: `FSOUND_OUTPUT_NOSOUND' undeclared
(first use this function)
client/human/HumanClientApp.cpp: In function `void <unnamed>::InitFMOD(unsigned
int, unsigned int)':
client/human/HumanClientApp.cpp:130: error: `FSOUND_GetVersion' undeclared
(first use this function)
client/human/HumanClientApp.cpp:134: error: `FSOUND_SetMemorySystem' undeclared
(first use this function)
client/human/HumanClientApp.cpp:135: error: `FSOUND_GetError' undeclared (first
use this function)
client/human/HumanClientApp.cpp:138: error: `FSOUND_SetOutput' undeclared
(first use this function)
client/human/HumanClientApp.cpp:139: error: `FSOUND_SetDriver' undeclared
(first use this function)
client/human/HumanClientApp.cpp:140: error: `FSOUND_GetOutput' undeclared
(first use this function)
client/human/HumanClientApp.cpp:142: error: `FSOUND_INIT_USEDEFAULTMIDISYNTH'
undeclared (first use this function)
client/human/HumanClientApp.cpp:142: error: `FSOUND_Init' undeclared (first use
this function)
client/human/HumanClientApp.cpp: In member function `void
HumanClientApp::PlayMusic(const std::string&, int)':
client/human/HumanClientApp.cpp:303: error: `FSOUND_2D' undeclared (first use
this function)
client/human/HumanClientApp.cpp:303: error: `FSOUND_Stream_Open' undeclared
(first use this function)
client/human/HumanClientApp.cpp:304: error: `FSOUND_FREE' undeclared (first use
this function)
client/human/HumanClientApp.cpp:304: error: `FSOUND_Stream_Play' undeclared
(first use this function)
client/human/HumanClientApp.cpp:305: error: `FSOUND_SetVolumeAbsolute'
undeclared (first use this function)
client/human/HumanClientApp.cpp:307: error: `FSOUND_Stream_GetLengthMs'
undeclared (first use this function)
client/human/HumanClientApp.cpp: In member function `void
HumanClientApp::StopMusic()':
client/human/HumanClientApp.cpp:314: error: `FSOUND_Stream_Close' undeclared
(first use this function)
client/human/HumanClientApp.cpp: In member function `void
HumanClientApp::PlaySound(const std::string&)':
client/human/HumanClientApp.cpp:326: error: `FSOUND_SAMPLE' undeclared (first
use this function)
client/human/HumanClientApp.cpp:326: error: `sample' undeclared (first use this
function)
client/human/HumanClientApp.cpp:326: error: `FSOUND_Sample_Get' undeclared
(first use this function)
client/human/HumanClientApp.cpp:327: error: `FSOUND_PlaySound' undeclared
(first use this function)
client/human/HumanClientApp.cpp:335: error: `FSOUND_Sample_Load' undeclared
(first use this function)
client/human/HumanClientApp.cpp: In member function `void
HumanClientApp::FreeSound(const std::string&)':
client/human/HumanClientApp.cpp:347: error: `FSOUND_Sample_Get' undeclared
(first use this function)
client/human/HumanClientApp.cpp:347: error: `FSOUND_Sample_Free' undeclared
(first use this function)
client/human/HumanClientApp.cpp: In member function `void
HumanClientApp::FreeAllSounds()':
client/human/HumanClientApp.cpp:356: error: `FSOUND_Sample_Get' undeclared
(first use this function)
client/human/HumanClientApp.cpp:356: error: `FSOUND_Sample_Free' undeclared
(first use this function)
client/human/HumanClientApp.cpp: In member function `void
HumanClientApp::SetMusicVolume(int)':
client/human/HumanClientApp.cpp:366: error: `FSOUND_SetVolumeAbsolute'
undeclared (first use this function)
client/human/HumanClientApp.cpp: In member function `void
HumanClientApp::SetUISoundsVolume(int)':
client/human/HumanClientApp.cpp:373: error: `FSOUND_SetSFXMasterVolume'
undeclared (first use this function)
client/human/HumanClientApp.cpp: In member function `virtual void
HumanClientApp::SDLQuit()':
client/human/HumanClientApp.cpp:701: error: `FSOUND_Close' undeclared (first
use this function)
make[1]: *** [client/human/client-HumanClientApp.o] Error 1
make[1]: Leaving directory `/usr/src/FreeOrion'
make: *** [all] Error 2
Starting program: /FreeOrion/freeorion
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 23658)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 23658)]
0x40777d5e in std::ostream::flush () from /usr/lib/gcc/i386-pc-linux-gnu/3.4.4/libstdc++.so.6
(gdb) bt
#0 0x40777d5e in std::ostream::flush ()
from /usr/lib/gcc/i386-pc-linux-gnu/3.4.4/libstdc++.so.6
#1 0x40777e79 in std::ostream::sentry::sentry ()
from /usr/lib/gcc/i386-pc-linux-gnu/3.4.4/libstdc++.so.6
#2 0x40778a8e in std::ostream::operator<< ()
from /usr/lib/gcc/i386-pc-linux-gnu/3.4.4/libstdc++.so.6
#3 0x08098c74 in boost::lexical_cast<std::string, double> ()
#4 0x0828f923 in OptionsDB::Add<double> ()
#5 0x08312c16 in (anonymous namespace)::AddOptions ()
#6 0x0818a196 in GetOptionsDB ()
#7 0x081e0e54 in main ()
As you can see I am using GCC 3.4.4. (Gentoo). I recompiled all the dependancies with GCC 3.4.4 as 3.3.x wasn't working for me. Everything compiled seemingly ok this time, but I just keep seg faulting.
Are you compiling with the latest versions of GiGi and FO from SVN?
Also, see this page, which is currently the most up-to-date set of instructions for linux compilation. It's actually for Debian, but might be of some use to you.
If this was completely unhelpful, then sorry... I'm not a linux programmer. Someone should be along to help you better in a while...
Geoff the Medio wrote:Are you compiling with the latest versions of GiGi and FO from SVN?
Also, see this page, which is currently the most up-to-date set of instructions for linux compilation. It's actually for Debian, but might be of some use to you.
If this was completely unhelpful, then sorry... I'm not a linux programmer. Someone should be along to help you better in a while...
Yeah those were both compiled from SVN... I also read both stories about Debian and Gentoo, which helped me get everything working as it is now! It's just these darn seg faults that are killing me.
I did an ldd on freeorion as well and got the following output, but am having trouble deciphering it.
Could these be conflicting with each other? If so, is there a way to find out what programs were compiled with what gcc? I went through the dependancies and recompiled everything I could based on gcc-3.4.4. Would python also need to be recompiled?
I tried using gcc-3.3.5 and gcc-3.3.6 but no matter how much I tried gigi wouldn't compile.
I found a comment on the gentoo portage site though about libsdl, which read as follows:
"1.2.8-r1 seems to break some games (xu4 for example) with a segmentation fault."
As the gigi build documentation specifies only libsdl 1.2.7 I unmerged 1.2.8 and put on 1.2.7 and everything works now, with gcc-3.4.4! No matter what I could never get gcc-3.3.x to work.
I don't know if this should be noted anywheres or not, but in my case that was the problem.
toxodont wrote:I don't know if this should be noted anywheres or not, but in my case that was the problem.
It'd be great if you could write up a summary of your efforts, the problems you had and how you resolved them (and even what didn't work that you tried) as a user story on the wiki.