libraries/dietlibc: Added (small libc implementation).

This commit is contained in:
markus reichelt 2010-05-14 01:06:11 -05:00 committed by Robby Workman
parent 729a6e3b63
commit d22501b876
7 changed files with 143 additions and 0 deletions

View File

@ -0,0 +1,2 @@
dietlibc is a libc that is optimized for small size. It can be used to
create small statically linked binaries for Linux on various platforms.

View File

@ -0,0 +1,17 @@
You can verify that dietlibc was successfully installed on your system
by entering the following on a bash prompt, f.e.:
printf '#include <unistd.h>\nint main(){write(1,"hello\\n",6);}\n' >_tmp.c
diet gcc -O2 -s _tmp.c
./a.out
you should see "hello" printed on screen
"size a.out" entered on prompt should print something like like this:
text data bss dec hex filename
679 8 40 727 2d7 a.out
Please note: You may get strange results on Slackware 13-64 multilib systems,
(like $ARCH being ignored by dietlibc's make itself).
Therefore it is recommended to build only on clean (64/32bit) installs.

View File

@ -0,0 +1,89 @@
#!/bin/sh
# Slackware build script for dietlibc
# Copyright (c) 2010 Markus Reichelt, Aachen, DE
# All rights reserved.
#
# Permission to use, copy, modify, and distribute this software for
# any purpose with or without fee is hereby granted, provided that
# the above copyright notice and this permission notice appear in all
# copies.
#
# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
PRGNAM=dietlibc
VERSION=${VERSION:-0.32}
ARCH=${ARCH:-i486}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
cd $PRGNAM-$VERSION
chown -R root:root .
chmod -R u+w,go+r-w,a-s .
make
make install DESTDIR=$PKG
mkdir -p $PKG/etc/profile.d
cat $CWD/profile.d/dietlibc.sh > $PKG/etc/profile.d/dietlibc.sh
cat $CWD/profile.d/dietlibc.csh > $PKG/etc/profile.d/dietlibc.csh
chmod 0755 $PKG/etc/profile.d/*
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
( cd $PKG/opt/diet/man
find . -type f -exec gzip -9 {} \;
for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done
)
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
AUTHOR* BUGS* CAVEAT* CHANGES* COPYING* FAQ* PORTING* README* SECURITY* THANKS* TODO* \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
cat $CWD/README.SLACKWARE > $PKG/usr/doc/$PRGNAM-$VERSION/README.SLACKWARE
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View File

@ -0,0 +1,10 @@
PRGNAM="dietlibc"
VERSION="0.32"
HOMEPAGE="http://www.fefe.de/dietlibc/"
DOWNLOAD="http://www.kernel.org/pub/linux/libs/dietlibc/dietlibc-0.32.tar.bz2"
MD5SUM="0098761c17924c15e21d25acdda4a8b5"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
MAINTAINER="markus reichelt"
EMAIL="slackbuilds@mareichelt.de"
APPROVED="rworkman"

View File

@ -0,0 +1,3 @@
#!/bin/csh
setenv PATH ${PATH}:/opt/diet/bin
setenv MANPATH ${MANPATH}:/opt/diet/man

View File

@ -0,0 +1,3 @@
#!/bin/sh
export PATH="${PATH}:/opt/diet/bin"
export MANPATH="${MANPATH}:/opt/diet/man"

View File

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|----------handy-ruler------------------------------------------------|
dietlibc: diet libc (a libc optimized for small size)
dietlibc:
dietlibc: The diet libc is a libc that is optimized for small size.
dietlibc: It can be used to create small statically linked binaries for Linux
dietlibc: on various platforms (alpha, arm, hppa, ia64, i386, mips, s390,
dietlibc: sparc, sparc64, ppc and x86_64). Originally written by Felix von
dietlibc: Leitner, the latest version is available via anonymous CVS:
dietlibc: $ cvs -d :pserver:cvs@cvs.fefe.de:/cvs -z9 co dietlibc
dietlibc:
dietlibc: Homepage: http://www.fefe.de/dietlibc/
dietlibc: