summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author markus reichelt <slackbuilds@mareichelt.de>2010-05-14 01:06:11 -0500
committer Robby Workman <rworkman@slackbuilds.org>2010-05-16 22:24:35 -0500
commitd22501b876eeb6e154be3330316604801f6f3e07 (patch)
treec9020e80b6108bd52c945bd2185a2a7d3c1d6e2b
parent729a6e3b63bd3b6b47c673b057d5e4ef7d8530e4 (diff)
downloadslackbuilds-d22501b876eeb6e154be3330316604801f6f3e07.tar.gz
slackbuilds-d22501b876eeb6e154be3330316604801f6f3e07.tar.xz
libraries/dietlibc: Added (small libc implementation).
-rw-r--r--libraries/dietlibc/README2
-rw-r--r--libraries/dietlibc/README.SLACKWARE17
-rw-r--r--libraries/dietlibc/dietlibc.SlackBuild89
-rw-r--r--libraries/dietlibc/dietlibc.info10
-rw-r--r--libraries/dietlibc/profile.d/dietlibc.csh3
-rw-r--r--libraries/dietlibc/profile.d/dietlibc.sh3
-rw-r--r--libraries/dietlibc/slack-desc19
7 files changed, 143 insertions, 0 deletions
diff --git a/libraries/dietlibc/README b/libraries/dietlibc/README
new file mode 100644
index 0000000000..392773a4cd
--- /dev/null
+++ b/libraries/dietlibc/README
@@ -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.
diff --git a/libraries/dietlibc/README.SLACKWARE b/libraries/dietlibc/README.SLACKWARE
new file mode 100644
index 0000000000..83f4c6a72a
--- /dev/null
+++ b/libraries/dietlibc/README.SLACKWARE
@@ -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.
diff --git a/libraries/dietlibc/dietlibc.SlackBuild b/libraries/dietlibc/dietlibc.SlackBuild
new file mode 100644
index 0000000000..e9de8dbc1d
--- /dev/null
+++ b/libraries/dietlibc/dietlibc.SlackBuild
@@ -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}
diff --git a/libraries/dietlibc/dietlibc.info b/libraries/dietlibc/dietlibc.info
new file mode 100644
index 0000000000..98160c717e
--- /dev/null
+++ b/libraries/dietlibc/dietlibc.info
@@ -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"
diff --git a/libraries/dietlibc/profile.d/dietlibc.csh b/libraries/dietlibc/profile.d/dietlibc.csh
new file mode 100644
index 0000000000..d675e09eff
--- /dev/null
+++ b/libraries/dietlibc/profile.d/dietlibc.csh
@@ -0,0 +1,3 @@
+#!/bin/csh
+setenv PATH ${PATH}:/opt/diet/bin
+setenv MANPATH ${MANPATH}:/opt/diet/man
diff --git a/libraries/dietlibc/profile.d/dietlibc.sh b/libraries/dietlibc/profile.d/dietlibc.sh
new file mode 100644
index 0000000000..a32ca597b8
--- /dev/null
+++ b/libraries/dietlibc/profile.d/dietlibc.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+export PATH="${PATH}:/opt/diet/bin"
+export MANPATH="${MANPATH}:/opt/diet/man"
diff --git a/libraries/dietlibc/slack-desc b/libraries/dietlibc/slack-desc
new file mode 100644
index 0000000000..06b58caea8
--- /dev/null
+++ b/libraries/dietlibc/slack-desc
@@ -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: