This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH/libiberty] fix build of gdb/binutils with clang.
- From: Ian Lance Taylor <iant at google dot com>
- To: Yunlian Jiang <yunlian at google dot com>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 19 May 2015 11:15:57 -0700
- Subject: Re: [PATCH/libiberty] fix build of gdb/binutils with clang.
- Authentication-results: sourceware.org; auth=none
- References: <CAMsPy2vps4WX9ax-JfPCGdWbRw=deyu+OuqpgojSJFSe6e+HHg at mail dot gmail dot com> <CAKOQZ8wXKGAxKgcetJxPPWXgxaeNrbLf-E_o6Tz2zbjYF6VfQg at mail dot gmail dot com> <CAMsPy2v+MduooHaBA8hhiTcrq_1NeQm1X-LnOrMEoouUQii4kg at mail dot gmail dot com> <CAKOQZ8z7ME_yEbW3YgMWCLyRVz+w3wjYz7LNayBBBmC1atFYHA at mail dot gmail dot com> <CAMsPy2s2A8U-vTE8u9y+P+xmESKMSuHD=6RV798KNEQKbZdXUg at mail dot gmail dot com> <CAKOQZ8ybeY+6bC0XXVy4Ge3QPEcg6XcvhwBuXQjHhLRTMabm8g at mail dot gmail dot com> <CAMsPy2s9vwa+Y3fR4Xc8k5jnJG__jwWAbF2y0bbSfmz0bEYfYQ at mail dot gmail dot com> <CAKOQZ8zw5TUQ5uP60CuSrAokqohR1_Aq=F5-cGPYqSnL--jPzQ at mail dot gmail dot com> <CAMsPy2s5_mE6QCvXj5DEQxGGK6XhpPUMbzxQqqzEOd+f3gaEjg at mail dot gmail dot com>
On Tue, May 19, 2015 at 11:08 AM, Yunlian Jiang <yunlian@google.com> wrote:
>
> I could do that and it make the compilation of libiberty passes.
> However, I have some other problem when using clang to build gdb
> because of libiberty.
>
> Some c file from other component may include 'libiberty.h' which contains
> the following
>
> #if !HAVE_DECL_ASPRINTF
> /* Like sprintf but provides a pointer to malloc'd storage, which must
> be freed by the caller. */
>
> extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2;
> #endif
>
> The HAVE_DECL_ASPRINTF is defined in config.h under libiberty directory.
> If the other c file only includes libiberty.h and does not include the
> libiberty/config.h and
> at the same time, _GNU_SOURCE is defind, the same error happens.
Probably if HAVE_DECL_ASPRINTF is not defined at all, we should not
declare asprintf in libiberty.h.
Ian