[PATCH/libiberty] fix build of gdb/binutils with clang.

Ian Lance Taylor iant@google.com
Sat May 2 18:58:00 GMT 2015


On Fri, May 1, 2015 at 4:45 PM, Yunlian Jiang <yunlian@google.com> wrote:
> The test case does not have #define _GNU_SOURCE, so it says
> error: ‘asprintf’ undeclared (first use in this function)

OK, then my next question is: why does the test case (I assume you
mean the test case for whether to set HAVE_DECL_ASPRINTF) not have
#define _GNU_SOURCE?

What is the background here?

Ian

> On Fri, May 1, 2015 at 3:45 PM, Ian Lance Taylor <iant@google.com> wrote:
>> On Tue, Apr 28, 2015 at 2:59 PM, Yunlian Jiang <yunlian@google.com> wrote:
>>> I believe this is the same problem as
>>> https://gcc.gnu.org/ml/gcc-patches/2008-07/msg00292.html
>>>
>>> The asprinf declaration is  messed up when using clang to build gdb.
>>>
>>> diff --git a/include/libiberty.h b/include/libiberty.h
>>> index b33dd65..a294903 100644
>>> --- a/include/libiberty.h
>>> +++ b/include/libiberty.h
>>> @@ -625,8 +625,10 @@ extern int pwait (int, int *, int);
>>>  /* Like sprintf but provides a pointer to malloc'd storage, which must
>>>     be freed by the caller.  */
>>>
>>> +#ifndef asprintf
>>>  extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2;
>>>  #endif
>>> +#endif
>>>
>>>  /* Like asprintf but allocates memory without fail. This works like
>>>     xmalloc.  */
>>
>> Why is HAVE_DECL_ASPRINTF not defined?
>>
>> Ian



More information about the Gcc-patches mailing list