This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] binutils/nm.c: Skip sbrk() under Darwin when _POSIX_C_SOURCE not defined


On 09/16/2014 10:00 AM, Chen Gang wrote:
> On 9/15/14 21:54, Tristan Gingold wrote:
>>
>> On 15 Sep 2014, at 15:31, Chen Gang <gang.chen.5i5j@gmail.com> wrote:
>>> 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.
>>
>> Can you clarify that ?  IIRC, the only use of sbrk within binutils is to
>> compute the amount of memory used.
>>

In honest, for me, my own fixing way is really not quite well (although
still acceptable), but I can not find another better ways or it.

So welcome any additional ideas, suggestions or completions for it.

Thanks.

> 
> Yeah, in "binutils/binutils", what you said is reasonable to me.
> 
> But in "bintuils" (include as, ld, gdb ...), most of sub-systems content
> "HAVE_SBRK", and some of them not enable 'Werror'.
> 
> Originally I tried "binutils/binutils" in "binutils/binutils/configure"
> (but not send patch). But after I thought of again, for me:
> 
>  - 'HAVE_SBRK' express whether have sbrk(), do not care about warnings.
> 
>  - Multiple sub-systems use 'HAVE_SBRK', some can bare the warnings.
> 
>  - If the sub-systems can not bare warnings, it needs additional trying
>    (e.g binutils/binutils), and still keep the standard checking for
>    'HAVE_SBRK' in related configure.
> 
> 
> Thanks.
> 


-- 
Chen Gang

Open share and attitude like air water and life which God blessed


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]