Hi!

On Mon, 26 May 2014 02:16:35 -0700, Andrew Pinski <pins...@gmail.com> wrote:
> On Mon, May 26, 2014 at 1:59 AM, Dominique Dhumieres <domi...@lps.ens.fr> 
> 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

Attachment: pgppWNINmwIHt.pgp
Description: PGP signature

Reply via email to