.so -> .a

Rob Landley rob at landley.net
Wed Nov 12 01:43:29 UTC 2008


On Tuesday 11 November 2008 12:23:02 Vladimir Dronnikov wrote:
> Hello, list!
>
> Teach me, please, how to convert a shared library to the static one?

There aren't actually good tools to do it, although you could probably script 
something with objcopy.  In general, shared libraries are built as Position 
Independent Executable (PIE) code, meaning accesses to their global symbols 
bounce off a lookup table so that the dynamic linker dirties fewer 
copy-on-write pages patching in symbols and you get more shared pages between 
instances of programs using the shared library.  Static libraries generally 
aren't built that way (which produces smaller-per-instance but less easily 
shared between instances code).

That's why they generally don't bother to make conversion tools fromone format 
to the other, anyway.  Rebuilding from source with the right flags produces 
more efficient output.

If this is about libstdc++.a not existing in the current FWL, it's just 
becuase I forgot to add a libstdc++.a->libuClibc++.a symlink in /tools/lib.

Rob



More information about the busybox mailing list