summaryrefslogtreecommitdiff
path: root/packages/prelink/files
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@openmoko.org>2008-10-13 14:08:49 +0200
committerHolger Freyther <ich@tamarin.(none)>2008-10-15 18:53:40 +0200
commit9b6657686a2a69ef23b5ce6bcca7d4a06726cb4e (patch)
treecfd1decfb03cf9352e8d26f163df22b09211b44d /packages/prelink/files
parent83a3c665dbaa7107aa9f5387078ab239af86282b (diff)
[prelink] Add recent version of prelink
Diffstat (limited to 'packages/prelink/files')
-rw-r--r--packages/prelink/files/prelink.conf18
-rw-r--r--packages/prelink/files/prelink.cron.daily40
-rw-r--r--packages/prelink/files/prelink.default22
3 files changed, 80 insertions, 0 deletions
diff --git a/packages/prelink/files/prelink.conf b/packages/prelink/files/prelink.conf
new file mode 100644
index 0000000000..c5a4f4adc3
--- /dev/null
+++ b/packages/prelink/files/prelink.conf
@@ -0,0 +1,18 @@
+# This config file contains a list of directories both with binaries
+# and libraries prelink should consider by default.
+# If a directory name is prefixed with `-l ', the directory hierarchy
+# will be walked as long as filesystem boundaries are not crossed.
+# If a directory name is prefixed with `-h ', symbolic links in a
+# directory hierarchy are followed.
+-l /usr/local/sbin
+-l /sbin
+-l /usr/sbin
+-l /usr/local/bin
+-l /bin
+-l /usr/bin
+-l /usr/X11R6/bin
+-l /usr/games
+-l /usr/local/lib
+-l /lib
+-l /usr/lib
+-l /usr/X11R6/lib
diff --git a/packages/prelink/files/prelink.cron.daily b/packages/prelink/files/prelink.cron.daily
new file mode 100644
index 0000000000..0b3c07322c
--- /dev/null
+++ b/packages/prelink/files/prelink.cron.daily
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+. /etc/default/prelink
+
+renice +19 -p $$ >/dev/null 2>&1
+
+if [ "$PRELINKING" != yes ]; then
+ if [ -f /etc/prelink.cache ]; then
+ echo /usr/sbin/prelink -uav > /var/log/prelink.log
+ /usr/sbin/prelink -uav >> /var/log/prelink.log 2>&1
+ rm -f /etc/prelink.cache
+ # Restart init if needed
+ [ -n "$(find `ldd /sbin/init | awk '{ print $3 }'` /sbin/init -ctime -1 2>/dev/null )" ] && /sbin/telinit u
+ fi
+ exit 0
+fi
+
+if [ ! -f /etc/prelink.cache -o -f /var/lib/misc/prelink.force ] \
+ || grep -q '^prelink-ELF0.[0-2]' /etc/prelink.cache; then
+ # If cache does not exist or is from older prelink versions or
+ # if we were asked to explicitely, force full prelinking
+ rm -f /etc/prelink.cache /var/lib/misc/prelink.force
+ PRELINK_OPTS="$PRELINK_OPTS -f"
+ date > /var/lib/misc/prelink.full
+elif [ -n "$PRELINK_FULL_TIME_INTERVAL" \
+ -a "`find /var/lib/misc/prelink.full -mtime -${PRELINK_FULL_TIME_INTERVAL} 2>/dev/null`" \
+ = /var/lib/misc/prelink.full ]; then
+ # If prelink without -q has been run in the last
+ # PRELINK_FULL_TIME_INTERVAL days, just use quick mode
+ PRELINK_OPTS="$PRELINK_OPTS -q"
+else
+ date > /var/lib/misc/prelink.full
+fi
+
+echo /usr/sbin/prelink -av $PRELINK_OPTS > /var/log/prelink.log
+/usr/sbin/prelink -av $PRELINK_OPTS >> /var/log/prelink.log 2>&1
+# Restart init if needed
+[ -n "$(find `ldd /sbin/init | awk '{ print $3 }'` /sbin/init -ctime -1 2>/dev/null )" ] && /sbin/telinit u
+
+exit 0
diff --git a/packages/prelink/files/prelink.default b/packages/prelink/files/prelink.default
new file mode 100644
index 0000000000..901258ed2a
--- /dev/null
+++ b/packages/prelink/files/prelink.default
@@ -0,0 +1,22 @@
+# Set this to no to disable prelinking altogether
+# or to yes to enable it.
+# (if you change this from yes to no prelink -ua
+# will be run next night to undo prelinking)
+PRELINKING=unknown
+
+# Options to pass to prelink
+# -m Try to conserve virtual memory by allowing overlapping
+# assigned virtual memory slots for libraries which
+# never appear together in one binary
+# -R Randomize virtual memory slot assignments for libraries.
+# This makes it slightly harder for various buffer overflow
+# attacks, since library addresses will be different on each
+# host using -R.
+PRELINK_OPTS=-mR
+
+# How often should full prelink be run (in days)
+# Normally, prelink will be run in quick mode, every
+# $PRELINK_FULL_TIME_INTERVAL days it will be run
+# in normal mode. Comment this line out if prelink
+# should be run in normal mode always.
+PRELINK_FULL_TIME_INTERVAL=14