summaryrefslogtreecommitdiff
path: root/system/statifier/README
blob: ec168b1c5a9bfb81661281d5a08ff510d450a26a (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. 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.