> 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?
This looks good to me (thoguh strnlen is posix). I can not approve the patch but I would preffer it over just hand implementing strnlen there (that is easy, too) Honza > > --- 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