mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-21 19:42:24 +01:00
system/prelink: Miscellaneous build fixes.
Added two helper scripts and a warning in the README. Signed-off-by: dsomero <xgizzmo@slackbuilds.org>
This commit is contained in:
parent
bee81b221f
commit
f9e5f10b32
6 changed files with 54 additions and 23 deletions
|
@ -1,13 +1,24 @@
|
|||
Prelink is a program that modifies ELF shared libraries and ELF dynamically
|
||||
linked binaries in such a way that the time needed for the dynamic linker to
|
||||
perform relocations at startup significantly decreases. Due to fewer
|
||||
relocations, the run-time memory consumption decreases as well (especially
|
||||
the number of unshareable pages). The prelinking information is only used
|
||||
at startup time if none of the dependent libraries have changed since
|
||||
prelinking; otherwise, programs are relocated normally.
|
||||
Prelink is a program that modifies ELF shared libraries and ELF
|
||||
dynamically linked binaries in such a way that the time needed for
|
||||
the dynamic linker to perform relocations at start-up significantly
|
||||
decreases. Due to fewer relocations, the run-time memory consumption
|
||||
decreases as well (especially the number of unsharable pages). The
|
||||
prelinking information is only used at start-up time if none of the
|
||||
dependent libraries have changed since prelinking; otherwise programs
|
||||
are relocated normally.
|
||||
|
||||
There is a script in the prelink documentation directory that is suitable
|
||||
for a cron job. Before setting up a cron job, first run prelink on the
|
||||
system and then read the script and modify it as needed.
|
||||
This requires libelf which is available from slackbuilds.org.org
|
||||
|
||||
This requires libelf.
|
||||
There's a script for prelink suitable for a cron job which can be found
|
||||
at /usr/doc/prelink-$VERSION. Before setting up a cron job, First run
|
||||
prelink on the system then read script and modify it if you think it's
|
||||
needed.
|
||||
|
||||
WARNING: Non-prelinked binaries may cause SEGFAULT in prelinked
|
||||
systems using prelinked libraries. If some programs crashes with
|
||||
SEGFAULT while calling system libraries then run prelink on the
|
||||
programs in question. The prelink-all script ,which can be found in
|
||||
/usr/doc/prelink-$VERSION, can be used to prelink all system as a root.
|
||||
In same place as prelink-all script, there is a prelink-undo script to
|
||||
undo prelink system wide. Run it as root and it will undo the prelink
|
||||
system wide.
|
||||
|
|
11
system/prelink/prelink-all
Normal file
11
system/prelink/prelink-all
Normal file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# This small script can be used for prelinking whole system while in root
|
||||
# account. It will do a -amR on the system according to /etc/prelink.conf
|
||||
# Check prelink(8) for details.
|
||||
|
||||
renice +19 -p $$ > /dev/null 2>&1
|
||||
|
||||
PRELINKOPTS=${PRELINKOPTS:-amR}
|
||||
|
||||
/usr/sbin/prelink -$PRELINKOPTS
|
6
system/prelink/prelink-undo
Normal file
6
system/prelink/prelink-undo
Normal file
|
@ -0,0 +1,6 @@
|
|||
#!/bin/sh
|
||||
#Undo the prelink system wide.
|
||||
|
||||
renice +19 -p $$ > /dev/null 2>&1
|
||||
|
||||
prelink -au
|
|
@ -24,7 +24,7 @@
|
|||
|
||||
PRGNAM=prelink
|
||||
VERSION=${VERSION:-20100106}
|
||||
BUILD=${BUILD:-1}
|
||||
BUILD=${BUILD:-2}
|
||||
TAG=${TAG:-_SBo}
|
||||
|
||||
if [ -z "$ARCH" ]; then
|
||||
|
@ -36,7 +36,7 @@ if [ -z "$ARCH" ]; then
|
|||
fi
|
||||
|
||||
CWD=$(pwd)
|
||||
TPM=${TMP:-/tmp/SBo}
|
||||
TMP=${TMP:-/tmp/SBo}
|
||||
PKG=$TMP/package-$PRGNAM
|
||||
OUTPUT=${OUTPUT:-/tmp}
|
||||
|
||||
|
@ -59,9 +59,11 @@ set -e
|
|||
rm -rf $PKG
|
||||
mkdir -p $TMP $PKG $OUTPUT
|
||||
cd $TMP
|
||||
rm -rf $PRGNAM
|
||||
rm -rf $PRGNAM-$VERSION
|
||||
tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
|
||||
cd $PRGNAM
|
||||
mv $PRGNAM $PRGNAM-$VERSION
|
||||
cd $PRGNAM-$VERSION
|
||||
|
||||
chown -R root:root .
|
||||
find . \
|
||||
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
|
||||
|
@ -80,11 +82,8 @@ CXXFLAGS="$SLKFLAGS" \
|
|||
--build=$ARCH-slackware-linux
|
||||
|
||||
make
|
||||
make -C doc
|
||||
make install DESTDIR=$PKG
|
||||
|
||||
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
|
||||
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
|
||||
make -C doc
|
||||
make install-strip DESTDIR=$PKG
|
||||
|
||||
find $PKG/usr/man -type f -exec gzip -9 {} \;
|
||||
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlint $i ).gz $i.gz ; rm $i ; done
|
||||
|
@ -94,10 +93,14 @@ cat $CWD/prelink.conf > $PKG/etc/prelink.conf.new
|
|||
|
||||
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cp -a \
|
||||
AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS TODO doc/*.pdf \
|
||||
AUTHORS COPYING ChangeLog INSTALL NEWS README THANKS TODO \
|
||||
$PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cp doc/prelink.pdf $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
|
||||
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||
cat $CWD/prelink.cron > $PKG/usr/doc/$PRGNAM-$VERSION/prelink.cron
|
||||
cat $CWD/prelink-all > $PKG/usr/doc/$PRGNAM-$VERSION/prelink-all
|
||||
cat $CWD/prelink-undo > $PKG/usr/doc/$PRGNAM-$VERSION/prelink-undo
|
||||
|
||||
mkdir -p $PKG/install
|
||||
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||
|
|
|
@ -5,6 +5,6 @@ renice +19 -p $$ > /dev/null 2>&1
|
|||
#By default, we'll do quick cron runs of prelink
|
||||
PRELINK_OPTS="-amRq"
|
||||
#If you don't want to do this, then use this opts.
|
||||
#PRELINK_OPT="-amR"
|
||||
#PRELINK_OPTS="-amR"
|
||||
|
||||
/usr/sbin/prelink $PRELINK_OPTS
|
||||
|
|
|
@ -7,4 +7,4 @@ DOWNLOAD_x86_64=""
|
|||
MD5SUM_x86_64=""
|
||||
MAINTAINER="Ozan Türkyılmaz"
|
||||
EMAIL="ozan.turkyilmaz@gmail.com"
|
||||
APPROVED="rworkman"
|
||||
APPROVED="dsomero"
|
||||
|
|
Loading…
Reference in a new issue