Pixel <pixel@xxxxxxxxxxxx> writes:
> solution below: do not rely in HAVE_DECL_ASPRINTF when __GNU_LIBRARY__ is set
>
> (another solution would be to ensure HAVE_DECL_ASPRINTF is detected with _GNU_SOURCE set)
I think a slightly more reliable solution would be
#ifndef asprintf
extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2;
#endif
with an appropriate comment.
Ian
--- include/libiberty.h.old 2008-07-24 06:15:25.000000000 +0200
+++ include/libiberty.h 2008-07-24 06:16:34.000000000 +0200
@@ -553,16 +553,19 @@
#if !HAVE_DECL_ASPRINTF
/* Like sprintf but provides a pointer to malloc'd storage, which must
be freed by the caller. */
-
+#ifndef asprintf
+/* Added ifndef to fix that code break on "previous declaration of 'asprintf_chk' was here"
+ when using glibc 2.8 see http://gcc.gnu.org/ml/gcc-patches/2008-07/msg00292.html */
+
extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2;
#endif
+#endif
#if !HAVE_DECL_VASPRINTF
We have test that code on two system and gcc binutils gdb compiles fine.
/zorry