diff options
Diffstat (limited to 'meta/recipes-devtools/prelink')
-rw-r--r-- | meta/recipes-devtools/prelink/prelink/prelink.conf | 18 | ||||
-rw-r--r-- | meta/recipes-devtools/prelink/prelink/prelink.cron.daily | 40 | ||||
-rw-r--r-- | meta/recipes-devtools/prelink/prelink/prelink.default | 22 | ||||
-rw-r--r-- | meta/recipes-devtools/prelink/prelink_git.bb | 50 |
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 | |||
5 | renice +19 -p $$ >/dev/null 2>&1 | ||
6 | |||
7 | if [ "$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 | ||
16 | fi | ||
17 | |||
18 | if [ ! -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 | ||
25 | elif [ -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" | ||
31 | else | ||
32 | date > /var/lib/misc/prelink.full | ||
33 | fi | ||
34 | |||
35 | echo /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 | |||
40 | exit 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) | ||
5 | PRELINKING=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. | ||
15 | PRELINK_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. | ||
22 | PRELINK_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 @@ | |||
1 | SECTION = "devel" | ||
2 | # Need binutils for libiberty.a | ||
3 | DEPENDS = "elfutils binutils" | ||
4 | DESCRIPTION = " The prelink package contains a utility which modifies ELF shared libraries \ | ||
5 | and executables, so that far fewer relocations need to be resolved at \ | ||
6 | runtime and thus programs come up faster." | ||
7 | LICENSE = "GPLv2" | ||
8 | PV = "1.0+git${SRCPV}" | ||
9 | PR = "r0" | ||
10 | |||
11 | SRC_URI = "git://git.pokylinux.org/prelink-cross.git;protocol=git \ | ||
12 | file://prelink.conf \ | ||
13 | file://prelink.cron.daily \ | ||
14 | file://prelink.default" | ||
15 | |||
16 | TARGET_OS_ORIG := "${TARGET_OS}" | ||
17 | OVERRIDES_append = ":${TARGET_OS_ORIG}" | ||
18 | |||
19 | S = "${WORKDIR}/git/trunk" | ||
20 | |||
21 | inherit autotools | ||
22 | |||
23 | BBCLASSEXTEND = "native" | ||
24 | |||
25 | EXTRA_OECONF = "--disable-selinux --with-pkgversion=${PV}-${PR} \ | ||
26 | --with-bugurl=http://bugzilla.pokylinux.org/" | ||
27 | |||
28 | do_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 | |||
35 | pkg_postinst_prelink() { | ||
36 | #!/bin/sh | ||
37 | |||
38 | if [ "x$D" != "x" ]; then | ||
39 | exit 1 | ||
40 | fi | ||
41 | |||
42 | prelink -a | ||
43 | } | ||
44 | |||
45 | pkg_postrm_prelink() { | ||
46 | #!/bin/sh | ||
47 | |||
48 | prelink -au | ||
49 | } | ||
50 | |||