From d9fc4acc572c6647a4f27b838d35d27d805d190e Mon Sep 17 00:00:00 2001 From: Jason Stubbs Date: Sun, 28 Aug 2005 08:37:44 +0000 Subject: Migration (without history) of the current stable line to subversion. svn path=/main/branches/2.0/; revision=1941 --- src/sandbox-1.1/create-localdecls | 115 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100755 src/sandbox-1.1/create-localdecls (limited to 'src/sandbox-1.1/create-localdecls') diff --git a/src/sandbox-1.1/create-localdecls b/src/sandbox-1.1/create-localdecls new file mode 100755 index 000000000..816723d59 --- /dev/null +++ b/src/sandbox-1.1/create-localdecls @@ -0,0 +1,115 @@ +#!/bin/sh + +# This is a quick'n'dirty hack to make the program behave correctly +# under different systems. +# Example: +# when using libc5, (f)trucate's offset argument type is size_t with +# libc5, but it's off_t with libc6 (glibc2). +# +# Uhm... time to learn GNU autoconf :-) +# +# $Header: /var/cvsroot/gentoo-src/portage/src/sandbox-1.1/Attic/create-localdecls,v 1.11.2.1 2004/10/22 16:53:30 carpaski Exp $ + +OUTFILE='localdecls.h' + +# if your arch needs to dlopen() glibc, add it here separated by space :] +BROKEN_RTLD_ARCHLIST="mips" + +echo '/* This file is automatically generated *' > $OUTFILE +echo ' * Modify create-localdecls instead of this */' >> $OUTFILE +echo >> $OUTFILE +echo '#ifndef __LOCALDECLS_H_' >> $OUTFILE +echo '#define __LOCALDECLS_H_' >> $OUTFILE +echo >> $OUTFILE + +### +### +### + +echo -n 'Checking truncate argument type... ' +if grep -q 'truncate.*size_t' /usr/include/unistd.h ; then + echo 'size_t' + echo '#define TRUNCATE_T size_t' >> $OUTFILE +else + echo 'off_t' # At least, I HOPE it's off_t :-) + echo '#define TRUNCATE_T off_t' >> $OUTFILE +fi + +### +### +### + +echo -n 'Checking libc version... ' +gcc -Wall -o libctest libctest.c +VERSION=`ldd libctest | grep libc\\.so | grep -v 'ld-uClibc' | awk '{print $1}'` + +echo $VERSION +echo "#define LIBC_VERSION \"$VERSION\"" >> $OUTFILE +if test "$VERSION" = 'libc.so.5' ; then + echo '#define BROKEN_RTLD_NEXT' >> $OUTFILE + echo '#define LIBC 5' >> $OUTFILE +else + # for the arch's that need to dlopen() libc to fetch real funcs! + # 16.12.02 -Torgeir Hansen + MYARCH=`/bin/uname -m` + for x in $BROKEN_RTLD_ARCHLIST; do + if [ $x = $MYARCH ]; then + echo '#define BROKEN_RTLD_NEXT' >> $OUTFILE + fi + done + +fi + +if test "$VERSION" = 'libc.so.6' ; then + echo -n 'Checking glibc subversion...' + tmp="$(ldd libctest 2>/dev/null | grep libc.so 2>/dev/null | head -n 1)" + LibcPath=`expr "$tmp" : '[^/]*\(/[^ ]*\)'` + tmp="`strings $LibcPath | grep -i 'c library'`" + OsLibcMajor=`expr "$tmp" : '.* \([0-9][0-9]*\)'` + OsLibcMinor=`expr "$tmp" : '.* [0-9][0-9]*\.\([0-9][0-9]*\)'` + echo " ${OsLibcMajor}.${OsLibcMinor}" + case "$OsLibcMajor" in + 2) + # 2 is the glibc version + case "$OsLibcMinor" in + 0) + echo '#define GLIBC_MINOR 0' >> $OUTFILE + SUBVERSION='glibc-2.0' ;; + 1) + echo '#define GLIBC_MINOR 1' >> $OUTFILE + SUBVERSION='glibc-2.1' ;; + 2) + echo '#define GLIBC_MINOR 2' >> $OUTFILE + SUBVERSION='glibc-2.2' ;; + 3) + echo '#define GLIBC_MINOR 3' >> $OUTFILE + SUBVERSION='glibc-2.3' ;; + *) + echo 'Treated as glibc >= 2.1 (finger crossed)' + echo '#define GLIBC_MINOR 1' >> $OUTFILE + SUBVERSION='glibc-2.1' ;; + esac + ;; + esac +fi + +rm libctest + +echo ' +#ifdef PATH_MAX +# define SB_PATH_MAX PATH_MAX * 2 +# if (SB_PATH_MAX >= INT_MAX) || (SB_PATH_MAX < PATH_MAX) +# undef SB_PATH_MAX +# define SB_PATH_MAX PATH_MAX + 25 +# if (SB_PATH_MAX >= INT_MAX) || (SB_PATH_MAX < PATH_MAX) +# error SB_PATH_MAX too big! +# endif +# endif +#else +# error PATH_MAX not defined! +#endif' >> $OUTFILE + +echo >> $OUTFILE +echo '#endif' >> $OUTFILE +echo + -- cgit v1.2.3-1-g7c22