[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