From: brian.inglis@systematicsw.ab.ca
To: newlib@sourceware.org
Subject: Re: Hide non-standard itoa/utoa() in stdlib.h or drop these functions?
Date: Wed, 24 Jan 2024 11:08:14 -0700 [thread overview]
Message-ID: <9bd70eeb-1ab2-4f29-8b2c-28b0704fea46@systematicsw.ab.ca> (raw)
In-Reply-To: <ZbDxmNcj0hF5l-CH@calimero.vinschen.de>
On 2024-01-24 04:16, Corinna Vinschen wrote:
> On Jan 24 10:42, Christian Franke wrote:
>> brian.inglis@systematicsw.ab.ca wrote:
>>> On 2024-01-23 02:03, Corinna Vinschen wrote:
>>>> On Jan 22 19:46, Christian Franke wrote:
>>>>> The functions itoa() and utoa() are non-standard, not exported
>>>>> by Cygwin and
>>>>> also unavailable on FreeBSD and Linux (glibc and musl libc).
>>>>> Busybox for
>>>>> example could not be build OOTB using newlib's stdlib.h because
>>>>> there are
>>>>> conflicts with local functions with same names but different
>>>>> signatures.
>>>>> [...]
>>>> Does anybody actually *need* itoa/utoa as long as we have __itoa/__utoa?
>>>
>>> Unix 1st ed Manual defined itoa as did K&R on p60 (/p64 2ed); at least
>>> IBM and QNX and "some compilers" provide itoa and others:
>>>
>>> https://cplusplus.com/reference/cstdlib/itoa/
>>>
>>> other libraries also provide {,u}{,l}ltoa.
>>
>> This page suggests that at least the K&R version was different (no radix
>> parameter):
>> https://en.wikibooks.org/wiki/C_Programming/stdlib.h/itoa
>
> Also, the fact that it has been mentioned in K&R was apparently no
> incentive to standarize it later on. That's why its existence on
> various systems is a bit erratic.
>
>>> Newlib provided the function and man pages, which should be updated to
>>> reflect the changed situation, as they will have been used, and users
>>> will want to know what happened and what to do e.g. use prefixed
>>> functions, #define, sprintf(3), etc.
>
> Mind, I never said to remove the underscored functins. So the
> functionality still exists, it's just called __foo instead of foo.
>
>>> Downstream systems should note the change in their lists of supported
>>> functions, and in their release notes.
>
> We don't have any influence on downstream, but if downstream wants the
> API, it's easy to provide it by aliasing foo to __foo in a downstream
> header.
We do have some - Cygwin, RTEMS - others should note!
--
Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
La perfection est atteinte Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut
-- Antoine de Saint-Exupéry
next prev parent reply other threads:[~2024-01-24 18:08 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-22 18:46 Christian Franke
2024-01-23 9:03 ` Corinna Vinschen
[not found] ` <BN2P110MB154497B2775D2D45D55C91009A74A@BN2P110MB1544.NAMP110.PROD.OUTLOOK.COM>
2024-01-23 16:05 ` Fw: " C Howland
2024-01-23 21:41 ` brian.inglis
2024-01-24 9:42 ` Christian Franke
2024-01-24 11:16 ` Corinna Vinschen
2024-01-24 18:08 ` brian.inglis [this message]
2024-01-28 12:52 ` Christian Franke
2024-01-29 12:56 ` Corinna Vinschen
2024-01-29 14:17 ` Christian Franke
2024-01-29 15:31 ` Corinna Vinschen
2024-01-31 19:08 ` Corinna Vinschen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9bd70eeb-1ab2-4f29-8b2c-28b0704fea46@systematicsw.ab.ca \
--to=brian.inglis@systematicsw.ab.ca \
--cc=newlib@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).