@Commander_X
It's been sometime since I haven't been around here, so perhaps this is already resolved.
However, I am posting some feedback that might gain you some time, when trying to build from source for Linux targets.
Let's start by noting the following definitions:
objdump
is dumping what the object itself lists as libraries while
ldd
is listing which libraries
ld.so
would actually load, following the graph backward, showing what would be loaded by those libraries. With
ldd
you see all your dependencies but your are loosing the info of who is actually using each library needed.
Quote:
FYI I've "advanced" a bit doing a sort of "hacking surgery":
- presented gnustep-base from deps/Linux-deps/x86/lib_linker as libgnustep-base.so ("ln -s" in lib_linker) -- this allowed the library to be picked by the linker, but there is a warning during linking saying that "libobjc.so.2 may conflict with libobjc.so.4".
- tried the same trick as above for nspr4 & co. (even replacing the `nspr-config --libs` in GNUmakefile with a hand crafted set of -L and -l options) -- but these libraries seem to elude my attempts; after linking, still the system ones are taken as opposed to those provided by the deps.
It seems that bringing gnustep-base into the mix like above, really messes up things -- with this setup no logs are created by the oolite when trying to launch.
This is an absolute
"DON'T". You should have a full blown (relevant headers etc.) Oolite for Linux Development Environment (aka OOLDE), compatible with these libraries, in order to use them. The libraries in deps/Linux-deps/x86[_64]/lib are part of the OOLDE. They are gathered there for maintainer's easiness when bundled in the Oolite for Linux Setup Package (aka OOLSP).
I understand that this is a bit confusing and I had received some whining in the past, from the
Slackware forum hosted in LinuxQuestions.org, on that matter.
So, here follows the list of Oolite for Linux dependencies:
Code:
terrastorage@Hermes:~$ cd /opt/Oolite-trunk/oolite.app/; \
> echo; echo oolite:; \
> objdump -p oolite | grep NEEDED; \
> echo; \
> echo
NEEDED libGLU.so.1
NEEDED libGL.so.1
NEEDED libX11.so.6
NEEDED libSDL-1.2.so.0
NEEDED libgnustep-base.so.1.20
NEEDED libplds4.so.0d
NEEDED libplc4.so.0d
NEEDED libnspr4.so.0d
NEEDED libpthread.so.0
NEEDED libdl.so.2
NEEDED libstdc++.so.6
NEEDED libopenal.so.1
NEEDED libz.so.1
NEEDED libvorbisfile.so.3
NEEDED libpng14.so.14
NEEDED libespeak.so.1
NEEDED libobjc.so.2
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
terrastorage@Hermes:/opt/Oolite-trunk/oolite.app$
Given this set, we managed to came up with a subset of libraries that, when bundled with OOLSP, make it portable across a big variety of Linux distros. You understand that in an environment like Slackware, where you build everything on your own, you need to build the dependencies of the dependencies of the dependencies etc. until you reach dependencies that already exist in your system.
Therefore to further help, here follows the first level dependencies of the libraries bundled with OOLSP.
Code:
terrastorage@Hermes:/opt/Oolite-trunk/oolite.app$ cd ../oolite-deps/lib/ ; echo; \
> for i in `ls -1`; \
> do echo $i:; \
> objdump -p $i | grep NEEDED; \
> echo; echo; done
libespeak.so.1:
NEEDED libstdc++.so.6
NEEDED libportaudio.so.2
NEEDED libpthread.so.0
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
libespeak.so.1.pulseaudio:
NEEDED libstdc++.so.6
NEEDED libpulse.so.0
NEEDED libpthread.so.0
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
libffi.so.4:
NEEDED libc.so.6
libgcrypt.so.20:
NEEDED libgpg-error.so.0
NEEDED libc.so.6
libgmp.so.10:
NEEDED libc.so.6
libgnustep-base.so.1.20:
NEEDED libpthread.so.0
NEEDED libobjc.so.2
NEEDED libgmp.so.10
NEEDED libgnutls.so.30
NEEDED libgcrypt.so.20
NEEDED libxml2.so.2
NEEDED libffi.so.4
NEEDED libnsl.so.1
NEEDED librt.so.1
NEEDED libdl.so.2
NEEDED libz.so.1
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
libgnutls.so.30:
NEEDED libz.so.1
NEEDED librt.so.1
NEEDED libnettle.so.6
NEEDED libhogweed.so.4
NEEDED libgmp.so.10
NEEDED libc.so.6
libgpg-error.so.0:
NEEDED libc.so.6
libhogweed.so.4:
NEEDED libnettle.so.6
NEEDED libgmp.so.10
NEEDED libc.so.6
libnettle.so.6:
NEEDED libc.so.6
libnspr4.so.0d:
NEEDED libpthread.so.0
NEEDED libdl.so.2
NEEDED libc.so.6
libobjc.so.2:
NEEDED libgcc_s.so.1
NEEDED libc.so.6
libogg.so.0:
NEEDED libc.so.6
libopenal.so.1:
NEEDED librt.so.1
NEEDED libpthread.so.0
NEEDED libdl.so.2
NEEDED libm.so.6
NEEDED libc.so.6
libplc4.so.0d:
NEEDED libnspr4.so.0d
NEEDED libc.so.6
libplds4.so.0d:
NEEDED libnspr4.so.0d
NEEDED libc.so.6
libpng14.so.14:
NEEDED libz.so.1
NEEDED libm.so.6
NEEDED libc.so.6
libportaudio.so.2:
NEEDED librt.so.1
NEEDED libasound.so.2
NEEDED libm.so.6
NEEDED libpthread.so.0
NEEDED libc.so.6
libSDL-1.2.so.0:
NEEDED libm.so.6
NEEDED libdl.so.2
NEEDED libpthread.so.0
NEEDED libc.so.6
libvorbisfile.so.3:
NEEDED libvorbis.so.0
NEEDED libogg.so.0
NEEDED libc.so.6
libvorbis.so.0:
NEEDED libm.so.6
NEEDED libogg.so.0
NEEDED libc.so.6
libz.so.1:
NEEDED libc.so.6
terrastorage@Hermes:/opt/Oolite-trunk/oolite-deps/lib$
(I will keep a note to add this in the Oolite for Linux documentation.)
Hasta la babe vista!
