summaryrefslogtreecommitdiffstats
path: root/system/statifier/README
blob: d3c33156b11bdc0552d2b9cdaa5d9e0bea8ec037 (plain)
statifier (convert dynamic executables to statically linked)

Statifier combines a dynamically linked executable with its libraries
into one large file. The result can be easier to distribute and may
allow a 32-bit binary to run on a 64-bit-only system.

Notes:

1. To get statifier to work properly, VDSO support must be disabled in
   the kernel. This must be done on the system statifier is being
   run on, before it's run. The converted binaries themselves don't
   require this, only statifier itself. If you forget to do this,
   statifier will appear to run OK, but the converted binaries will
   segfault when run.

   For 32-bit systems only, this can be done without a reboot.
   Execute this as root:

   echo "0" > /proc/sys/vm/vdso_enabled

   ...and to re-enable VDSO, replace the "0" with "1".

   For 64-bit systems, you must use kernel parameters, meaning a
   reboot is required. At the lilo (elilo, grub, etc) prompt, enter:

   linux vdso=0 vdso32=0

   ...or add 'append="vdso=0 vdso32=0"' to the kernel image section in
   /etc/lilo.conf to make it permanent (not recommended).

   If you run statifier with VDSO enabled, it will remind you to
   disable it.

2. Executables converted with statifier will show up as dynamic, in
   'file' output, but ldd will say 'not a dynamic executable'.

3. A 64-bit statifier can only convert 64-bit binaries. Converting
   32-bit executables on a 64-bit system requires multilib and a
   32-bit statifier package. The SlackBuild maintainer hasn't tested
   multilib, and would be interested to know what kind of results you
   get with it.