diff options
Diffstat (limited to 'app-shells/bash/files/bash-3.0-strnlen.patch')
-rw-r--r-- | app-shells/bash/files/bash-3.0-strnlen.patch | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/app-shells/bash/files/bash-3.0-strnlen.patch b/app-shells/bash/files/bash-3.0-strnlen.patch new file mode 100644 index 0000000..afe9728 --- /dev/null +++ b/app-shells/bash/files/bash-3.0-strnlen.patch @@ -0,0 +1,179 @@ +Index: bash-3.0/configure.in +=================================================================== +--- bash-3.0.orig/configure.in ++++ bash-3.0/configure.in +@@ -613,6 +613,9 @@ if test "$ac_cv_func_vprintf" = no && te + AC_LIBOBJ(vprint) + fi + ++AC_CHECK_FUNCS([strnlen]) ++AC_LIBOBJ(strnlen) ++ + dnl signal stuff + AC_TYPE_SIGNAL + +Index: bash-3.0/lib/sh/strnlen.c +=================================================================== +--- /dev/null ++++ bash-3.0/lib/sh/strnlen.c +@@ -0,0 +1,27 @@ ++/* ++ Copyright (C) 2005 Gentoo Foundation ++ ++ This program is free software; you can redistribute it and/or ++ modify it under the terms of the GNU General Public License ++ as published by the Free Software Foundation; either version 2 ++ of the License, or (at your option) any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, write to the Free Software ++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, US ++*/ ++ ++#include <stdlib.h> ++ ++size_t strnlen(const char *s, size_t n) ++{ ++ int i; ++ for (i=0; s[i] && i<n; i++) ++ /* noop */ ; ++ return i; ++} +Index: bash-3.0/configure +=================================================================== +--- bash-3.0.orig/configure ++++ bash-3.0/configure +@@ -10696,9 +10696,127 @@ _ACEOF + fi + + if test "$ac_cv_func_vprintf" = no && test "$ac_cv_func__doprnt" = "yes"; then +- LIBOBJS="$LIBOBJS vprint.$ac_objext" ++ case $LIBOBJS in ++ "vprint.$ac_objext" | \ ++ *" vprint.$ac_objext" | \ ++ "vprint.$ac_objext "* | \ ++ *" vprint.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS vprint.$ac_objext" ;; ++esac ++ + fi + ++ ++for ac_func in strnlen ++do ++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` ++echo "$as_me:$LINENO: checking for $ac_func" >&5 ++echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_var+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func. ++ For example, HP-UX 11i <limits.h> declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func (); below. ++ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since ++ <limits.h> exists even on freestanding compilers. */ ++ ++#ifdef __STDC__ ++# include <limits.h> ++#else ++# include <assert.h> ++#endif ++ ++#undef $ac_func ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++{ ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func (); ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++char (*f) () = $ac_func; ++#endif ++#ifdef __cplusplus ++} ++#endif ++ ++int ++main () ++{ ++return f != $ac_func; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ eval "$as_ac_var=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++eval "$as_ac_var=no" ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 ++if test `eval echo '${'$as_ac_var'}'` = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++done ++ ++case $LIBOBJS in ++ "strnlen.$ac_objext" | \ ++ *" strnlen.$ac_objext" | \ ++ "strnlen.$ac_objext "* | \ ++ *" strnlen.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS strnlen.$ac_objext" ;; ++esac ++ ++ + echo "$as_me:$LINENO: checking return type of signal handlers" >&5 + echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 + if test "${ac_cv_type_signal+set}" = set; then |