Hide non-standard itoa/utoa() in stdlib.h or drop these functions?

Christian Franke Christian.Franke@t-online.de
Mon Jan 29 14:17:33 GMT 2024


Corinna Vinschen wrote:
> On Jan 28 13:52, Christian Franke wrote:
>> Corinna Vinschen wrote:
>>>>>>> [...]
>>>>>> Does anybody actually *need* itoa/utoa as long as we have __itoa/__utoa?
>>>>> [...]
>>> The problem is that _GNU_SOURCE got synonymous for "everything and the
>>> kitchen sink", and there's no blessed way around that other than
>>> defining another source standard instead.
>> My interpretation was "everything and the kitchen sink - except everything
>> never provided by glibc or Linux" :-)
>>
>>> Do we really want to create our own kind of "this is
>>> non-standard"-standard?
>>>
>>> That would be something like __NEWLIB_VISIBLE / _NEWLIB_SOURCE.
>>>
>>> But, then again, for just two seldom used APIs?
>> The API is seldom used, possibly not or no longer well known and definitely
>> unavailable in widely used other C libs. This increases the risk of a
>> conflict with local functions with the same name. Busybox is a real world
>> example.
> I never doubted that.  My question is NOT how we can keep itoa/utoa
> alive and striving.  I think we have really only two ways of going
> forward:
>
>    #if __CYGWIN__'ize itoa/utoa prototypes in stdlib.h, but DO NOT
>    #if __CYGWIN__'ize __itoa/__utoa, because they are living in
>    reserved namespace anyway

The DO NOT branch would only make real sense if Cygwin would provide the 
__*() functions, As this is not the case, my patch disables also these 
prototypes.
...


> or
>
>    drop the definitions of itoa/utoa from itoa.c and utoa.c, drop the
>    prototypes from stdlib.h, but NEITHER drop __itoa/__utoa from
>    the source files NOR drop their prototypes.
>
> I favor the second approach, but if we can't get this sorted out
> within the next two days, we'll go ahead with the first approach.
>
>
> Corinna
>



More information about the Newlib mailing list