[Starkit] System Library mismatches
Jean-Claude Wippler
jcw at equi4.com
Mon Nov 28 10:07:47 CET 2005
Clif,
> When I use the 8.5 tclkit to build the starpack, it works on my
> system, but is failing on other systems with an error:
>
> ./gutenbrowse: error while loading shared libraries: libstdc++.so.5:
> cannot open shared object file: No such file or directory
>
> The user reports that he doesn't have libstdc++.so.5;
Ouch, now C++ compatibility is starting to bite itself in the tail: I
have been building against so.5 on an older setup to avoid linkage
problems, even though I have so.6 on my machine. So now we're seeing
that the so.5 libs are no longer installed everywhere to support
older binaries.
Have uploaded some tclkits based on cvs HEAD to http://www.equi4.com/
pub/tk/newer/ for now. These were built on a libstdc++.so.6 system,
so all of them should work for you.
If you don't write to MK datafiles in your app, you could also try
the new Tclkit Lite builds, which drop C++ altogether by replacing
Mk4tcl with a pure-C Thrive extension and a vfs::mkcl driver which
should be sufficient for r/o use (starkits & starpacks). Note that
you'll need a recent (end-Nov) SDX to create starkits with Tclkit
Lite (nothing changes if you use a std Tclkit).
Genkit is already able to build tclkit lite, see:
http://www.equi4.com/tclkitlite.html
I plan to start releasing and supporting builds as of 8.4.12, btw.
> In other work I've been running into problems with stdlibc++
> and such being either version 2.3.4 or 3.0 on different systems,
> and software that relies on the libraries getting hosed. It seems
> like some distros are not using the naming conventions the way
> I thought they were designed to be used.
... which explains why I'm moving towards a total replacement of
Mk4tcl. C++ deployment is a joke.
> Is there a way to force a starpack to a fully static build, rather
> than relying on system shared libraries?
That used to be a solution, but nowadays static linkage with gcc is
causing its own problems as libc is loading things dynamically at
runtime more and more - X11 stuff, locales, even name resolution
(Windows is well ahead here: deployment continues to work out of the
box for C, C++, and static builds).
Your best bet is Tclkit Lite, else you'll need to build your own
tclkit with genkit on a system which has all the planets, moon, and
stars properly aligned.
-jcw
More information about the Starkit
mailing list