summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/prelink
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:14:24 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:29:45 +0100
commit29d6678fd546377459ef75cf54abeef5b969b5cf (patch)
tree8edd65790e37a00d01c3f203f773fe4b5012db18 /meta/recipes-devtools/prelink
parentda49de6885ee1bc424e70bc02f21f6ab920efb55 (diff)
downloadpoky-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.gz
Major layout change to the packages directory
Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/recipes-devtools/prelink')
-rw-r--r--meta/recipes-devtools/prelink/prelink/prelink.conf18
-rw-r--r--meta/recipes-devtools/prelink/prelink/prelink.cron.daily40
-rw-r--r--meta/recipes-devtools/prelink/prelink/prelink.default22
-rw-r--r--meta/recipes-devtools/prelink/prelink_git.bb50
4 files changed, 130 insertions, 0 deletions
diff --git a/meta/recipes-devtools/prelink/prelink/prelink.conf b/meta/recipes-devtools/prelink/prelink/prelink.conf
new file mode 100644
index 0000000000..c5a4f4adc3
--- /dev/null
+++ b/meta/recipes-devtools/prelink/prelink/prelink.conf
@@ -0,0 +1,18 @@
1# This config file contains a list of directories both with binaries
2# and libraries prelink should consider by default.
3# If a directory name is prefixed with `-l ', the directory hierarchy
4# will be walked as long as filesystem boundaries are not crossed.
5# If a directory name is prefixed with `-h ', symbolic links in a
6# directory hierarchy are followed.
7-l /usr/local/sbin
8-l /sbin
9-l /usr/sbin
10-l /usr/local/bin
11-l /bin
12-l /usr/bin
13-l /usr/X11R6/bin
14-l /usr/games
15-l /usr/local/lib
16-l /lib
17-l /usr/lib
18-l /usr/X11R6/lib
diff --git a/meta/recipes-devtools/prelink/prelink/prelink.cron.daily b/meta/recipes-devtools/prelink/prelink/prelink.cron.daily
new file mode 100644
index 0000000000..0b3c07322c
--- /dev/null
+++ b/meta/recipes-devtools/prelink/prelink/prelink.cron.daily
@@ -0,0 +1,40 @@
1#!/bin/sh
2
3. /etc/default/prelink
4
5renice +19 -p $$ >/dev/null 2>&1
6
7if [ "$PRELINKING" != yes ]; then
8 if [ -f /etc/prelink.cache ]; then
9 echo /usr/sbin/prelink -uav > /var/log/prelink.log
10 /usr/sbin/prelink -uav >> /var/log/prelink.log 2>&1
11 rm -f /etc/prelink.cache
12 # Restart init if needed
13 [ -n "$(find `ldd /sbin/init | awk '{ print $3 }'` /sbin/init -ctime -1 2>/dev/null )" ] && /sbin/telinit u
14 fi
15 exit 0
16fi
17
18if [ ! -f /etc/prelink.cache -o -f /var/lib/misc/prelink.force ] \
19 || grep -q '^prelink-ELF0.[0-2]' /etc/prelink.cache; then
20 # If cache does not exist or is from older prelink versions or
21 # if we were asked to explicitely, force full prelinking
22 rm -f /etc/prelink.cache /var/lib/misc/prelink.force
23 PRELINK_OPTS="$PRELINK_OPTS -f"
24 date > /var/lib/misc/prelink.full
25elif [ -n "$PRELINK_FULL_TIME_INTERVAL" \
26 -a "`find /var/lib/misc/prelink.full -mtime -${PRELINK_FULL_TIME_INTERVAL} 2>/dev/null`" \
27 = /var/lib/misc/prelink.full ]; then
28 # If prelink without -q has been run in the last
29 # PRELINK_FULL_TIME_INTERVAL days, just use quick mode
30 PRELINK_OPTS="$PRELINK_OPTS -q"
31else
32 date > /var/lib/misc/prelink.full
33fi
34
35echo /usr/sbin/prelink -av $PRELINK_OPTS > /var/log/prelink.log
36/usr/sbin/prelink -av $PRELINK_OPTS >> /var/log/prelink.log 2>&1
37# Restart init if needed
38[ -n "$(find `ldd /sbin/init | awk '{ print $3 }'` /sbin/init -ctime -1 2>/dev/null )" ] && /sbin/telinit u
39
40exit 0
diff --git a/meta/recipes-devtools/prelink/prelink/prelink.default b/meta/recipes-devtools/prelink/prelink/prelink.default
new file mode 100644
index 0000000000..901258ed2a
--- /dev/null
+++ b/meta/recipes-devtools/prelink/prelink/prelink.default
@@ -0,0 +1,22 @@
1# Set this to no to disable prelinking altogether
2# or to yes to enable it.
3# (if you change this from yes to no prelink -ua
4# will be run next night to undo prelinking)
5PRELINKING=unknown
6
7# Options to pass to prelink
8# -m Try to conserve virtual memory by allowing overlapping
9# assigned virtual memory slots for libraries which
10# never appear together in one binary
11# -R Randomize virtual memory slot assignments for libraries.
12# This makes it slightly harder for various buffer overflow
13# attacks, since library addresses will be different on each
14# host using -R.
15PRELINK_OPTS=-mR
16
17# How often should full prelink be run (in days)
18# Normally, prelink will be run in quick mode, every
19# $PRELINK_FULL_TIME_INTERVAL days it will be run
20# in normal mode. Comment this line out if prelink
21# should be run in normal mode always.
22PRELINK_FULL_TIME_INTERVAL=14
diff --git a/meta/recipes-devtools/prelink/prelink_git.bb b/meta/recipes-devtools/prelink/prelink_git.bb
new file mode 100644
index 0000000000..06078ed68b
--- /dev/null
+++ b/meta/recipes-devtools/prelink/prelink_git.bb
@@ -0,0 +1,50 @@
1SECTION = "devel"
2# Need binutils for libiberty.a
3DEPENDS = "elfutils binutils"
4DESCRIPTION = " The prelink package contains a utility which modifies ELF shared libraries \
5and executables, so that far fewer relocations need to be resolved at \
6runtime and thus programs come up faster."
7LICENSE = "GPLv2"
8PV = "1.0+git${SRCPV}"
9PR = "r0"
10
11SRC_URI = "git://git.pokylinux.org/prelink-cross.git;protocol=git \
12 file://prelink.conf \
13 file://prelink.cron.daily \
14 file://prelink.default"
15
16TARGET_OS_ORIG := "${TARGET_OS}"
17OVERRIDES_append = ":${TARGET_OS_ORIG}"
18
19S = "${WORKDIR}/git/trunk"
20
21inherit autotools
22
23BBCLASSEXTEND = "native"
24
25EXTRA_OECONF = "--disable-selinux --with-pkgversion=${PV}-${PR} \
26 --with-bugurl=http://bugzilla.pokylinux.org/"
27
28do_install_append () {
29 install -d ${D}${sysconfdir}/cron.daily ${D}${sysconfdir}/default
30 install -m 0644 ${WORKDIR}/prelink.conf ${D}${sysconfdir}/prelink.conf
31 install -m 0644 ${WORKDIR}/prelink.cron.daily ${D}${sysconfdir}/cron.daily/prelink
32 install -m 0644 ${WORKDIR}/prelink.default ${D}${sysconfdir}/default/prelink
33}
34
35pkg_postinst_prelink() {
36#!/bin/sh
37
38if [ "x$D" != "x" ]; then
39 exit 1
40fi
41
42prelink -a
43}
44
45pkg_postrm_prelink() {
46#!/bin/sh
47
48prelink -au
49}
50