[PATCH] binutils/nm.c: Skip sbrk() under Darwin when _POSIX_C_SOURCE not defined
Chen Gang
gang.chen.5i5j@gmail.com
Mon Sep 15 13:25:00 GMT 2014
On 9/15/14 21:21, Tristan Gingold wrote:
> Hello,
>
> On 15 Sep 2014, at 15:20, Chen Gang <gang.chen.5i5j@gmail.com> wrote:
> [...]
>> --- a/binutils/nm.c
>> +++ b/binutils/nm.c
>> @@ -1698,6 +1698,7 @@ main (int argc, char **argv)
>> END_PROGRESS (program_name);
>>
>> #ifdef HAVE_SBRK
>> +#if !defined (__DARWIN_C_LEVEL) || defined (_POSIX_C_SOURCE)
>> if (show_stats)
>> {
>> char *lim = (char *) sbrk (0);
>> @@ -1705,6 +1706,7 @@ main (int argc, char **argv)
>> non_fatal (_("data size %ld"), (long) (lim - (char *) &environ));
>> }
>> #endif
>> +#endif
>
> Enable code on machine specific macro is not recommended by the GNU standard.
> Also note that sbrk is also used by gas.
>
> Maybe the test of sbrk in configure should be done using warnings flags.
>
> (the work-around is to configure using --disable-werror).
>
Originally, I really tried to do that, but I found that HAVE_SBRK really
need be true under Darwin, but may report warning.
So, if the places which don't mind the related warning, can still use it,
but the places which mind it, need disable it.
Thanks.
--
Chen Gang
Open, share, and attitude like air, water, and life which God blessed
More information about the Binutils
mailing list