Hi! On Mon, 26 May 2014 02:16:35 -0700, Andrew Pinski <[email protected]> wrote: > On Mon, May 26, 2014 at 1:59 AM, Dominique Dhumieres <[email protected]> > wrote: > > r210901 breaks bootstrap on targets not supporting strnlen, e.g., darwin10. > > > > ../../_clean/gcc/lto-cgraph.c:976:68: error: 'strnlen' was not declared in > > this scope
I'm seeing the same on MinGW, which also doesn't have strnlen (which is a
GNU extension).
> strnlen should be declared in include/libiberty.h if there is no
> declaration as libiberty support is already there. That should be a
> simple fix.
Like this?
--- gcc/config.in
+++ gcc/config.in
[Regenerate.]
--- gcc/configure
+++ gcc/configure
[Regenerate.]
--- gcc/configure.ac
+++ gcc/configure.ac
@@ -1136,7 +1136,7 @@ CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include
$GMPINC"
saved_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS -I${srcdir} -I${srcdir}/../include $GMPINC"
gcc_AC_CHECK_DECLS(getenv atol asprintf sbrk abort atof getcwd getwd \
- strsignal strstr stpcpy strverscmp \
+ stpcpy strnlen strsignal strstr strverscmp \
errno snprintf vsnprintf vasprintf malloc realloc calloc \
free basename getopt clock getpagesize ffs gcc_UNLOCKED_FUNCS, , ,[
#include "ansidecl.h"
diff --git include/libiberty.h include/libiberty.h
index 7fd0703..56b8b43 100644
--- include/libiberty.h
+++ include/libiberty.h
@@ -636,6 +636,10 @@ extern int snprintf (char *, size_t, const char *, ...)
ATTRIBUTE_PRINTF_3;
extern int vsnprintf (char *, size_t, const char *, va_list)
ATTRIBUTE_PRINTF(3,0);
#endif
+#if defined (HAVE_DECL_STRNLEN) && !HAVE_DECL_STRNLEN
+extern size_t strnlen (const char *, size_t);
+#endif
+
#if defined(HAVE_DECL_STRVERSCMP) && !HAVE_DECL_STRVERSCMP
/* Compare version strings. */
extern int strverscmp (const char *, const char *);
Grüße,
Thomas
pgppWNINmwIHt.pgp
Description: PGP signature
