aboutsummaryrefslogtreecommitdiff
path: root/system/statifier/README
blob: d4c8a64be2342e83bdec9b22775b4aac4ef4a9b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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. Converting 32-bit executables on a 64-bit system requires multilib
   and probably 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.