statifier — Dynamic to Static

Homepage of statifier.

Statifier create from dynamically linked executables and all it\’s libraries one file.
This file can be copied and run on another machine without need to drag all it\’s libraries.

Dynamically linked executables are smaller then statically linked.
From the other side dynamically linked executables use shared libraries compiled in PIC (position independend code) which is slower than \”normal\” one.

Files, created by statifier (\”pseudo-static\”) combine disadvantages of both of them:

  • Huge – much bigger than statically linked
  • Still use PIC code

So, why one will use it ?
Ok, \”pseudo-static\” files have some advantages too:

  • Everything in one file – so distributing is simple
  • Same file can be used for computers with different libraries\’ versions
  • Faster startup

But all these one can got with usual static files.
So, why use statifier and huge \”pseudo-static\” executables instead of static ?

  • there is no source code available
  • there is no compiler (or build-chain) available
  • static link does not work or it\’s not obvious how do it
  • to preserve memory layout – static link will change it and may \”wake-up\” hidden bugs
  • for \”permanent link\” LD_PRELOAD library into executable

Supported platforms

  • linux x86
  • linux x86_64
  • linux alpha