From 5a026fc9a26fa613b67cffe87f8cf3b91bb186b4 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 14 Mar 2014 11:21:00 +0000 Subject: [PATCH] Fix build time problem with MingGW hosts, which do not have a strnlen() function. 2014-03-13 Meador Inge * configure.in: Add strnlen to AC_CHECK_DECLS. * config.in: Regenerate. * configure: Regenerate. * sysdep.h (strnlen): Add prototype. * dwarf.c (strnlen): Move prototype ... * sysdep.h (strnlen): ... to here. --- bfd/ChangeLog | 7 +++++++ bfd/config.in | 4 ++++ bfd/configure | 11 +++++++++++ bfd/configure.in | 1 + bfd/sysdep.h | 4 ++++ binutils/ChangeLog | 5 +++++ binutils/dwarf.c | 4 ---- binutils/sysdep.h | 4 ++++ 8 files changed, 36 insertions(+), 4 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index bde7262b01..6416fb546b 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2014-03-14 Meador Inge + + * configure.in: Add strnlen to AC_CHECK_DECLS. + * config.in: Regenerate. + * configure: Regenerate. + * sysdep.h (strnlen): Add prototype. + 2014-03-14 Alan Modra * elf32-ppc.c (ppc_elf_relocate_section): Correct overflow diff --git a/bfd/config.in b/bfd/config.in index 3106c283a4..05829e27f8 100644 --- a/bfd/config.in +++ b/bfd/config.in @@ -64,6 +64,10 @@ */ #undef HAVE_DECL_STPCPY +/* Define to 1 if you have the declaration of `strnlen', and to 0 if you + don't. */ +#undef HAVE_DECL_STRNLEN + /* Define to 1 if you have the declaration of `strstr', and to 0 if you don't. */ #undef HAVE_DECL_STRSTR diff --git a/bfd/configure b/bfd/configure index fbf5f44f52..c5cb2a1e3f 100755 --- a/bfd/configure +++ b/bfd/configure @@ -13766,6 +13766,17 @@ cat >>confdefs.h <<_ACEOF #define HAVE_DECL_VSNPRINTF $ac_have_decl _ACEOF +ac_fn_c_check_decl "$LINENO" "strnlen" "ac_cv_have_decl_strnlen" "$ac_includes_default" +if test "x$ac_cv_have_decl_strnlen" = x""yes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_STRNLEN $ac_have_decl +_ACEOF + # Link in zlib if we can. This allows us to read compressed debug sections. # This is used only by compress.c. diff --git a/bfd/configure.in b/bfd/configure.in index f1ec9656fa..af98f6276d 100644 --- a/bfd/configure.in +++ b/bfd/configure.in @@ -239,6 +239,7 @@ AC_CHECK_DECLS(stpcpy) AC_CHECK_DECLS(strstr) AC_CHECK_DECLS(snprintf) AC_CHECK_DECLS(vsnprintf) +AC_CHECK_DECLS(strnlen) # Link in zlib if we can. This allows us to read compressed debug sections. # This is used only by compress.c. diff --git a/bfd/sysdep.h b/bfd/sysdep.h index a30da90b98..7e441eb653 100644 --- a/bfd/sysdep.h +++ b/bfd/sysdep.h @@ -170,6 +170,10 @@ extern int fseeko64 (FILE *stream, off64_t offset, int whence); #endif #endif +#if !HAVE_DECL_STRNLEN +size_t strnlen (const char *, size_t); +#endif + /* Define offsetof for those systems which lack it */ #ifndef offsetof diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 1197640ea7..e4280bb323 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,8 @@ +2014-03-14 Meador Inge + + * dwarf.c (strnlen): Move prototype ... + * sysdep.h (strnlen): ... to here. + 2014-03-12 Nick Clifton PR binutils/16652 diff --git a/binutils/dwarf.c b/binutils/dwarf.c index aa8a1df56b..c8360b5d24 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -29,10 +29,6 @@ #include "dwarf.h" #include "gdb/gdb-index.h" -#if !HAVE_DECL_STRNLEN -size_t strnlen (const char *, size_t); -#endif - static const char *regname (unsigned int regno, int row); static int have_frame_base; diff --git a/binutils/sysdep.h b/binutils/sysdep.h index 33129252ea..689e8c92eb 100644 --- a/binutils/sysdep.h +++ b/binutils/sysdep.h @@ -112,6 +112,10 @@ extern int snprintf(char *, size_t, const char *, ...); extern int vsnprintf(char *, size_t, const char *, va_list); #endif +#if !HAVE_DECL_STRNLEN +size_t strnlen (const char *, size_t); +#endif + #ifndef O_RDONLY #define O_RDONLY 0 #endif