You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
176 lines
4.9 KiB
176 lines
4.9 KiB
Add strnlen function for non-glibc systems, as one of Fedora's patches requires it.
|
|
|
|
--- bash-3.0/configure.in
|
|
+++ bash-3.0/configure.in
|
|
@@ -613,6 +613,9 @@
|
|
AC_LIBOBJ(vprint)
|
|
fi
|
|
|
|
+AC_CHECK_FUNCS([strnlen])
|
|
+AC_LIBOBJ(strnlen)
|
|
+
|
|
dnl signal stuff
|
|
AC_TYPE_SIGNAL
|
|
|
|
--- /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;
|
|
+}
|
|
--- bash-3.0/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
|