public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
From: Sebastian Huber <sebastian.huber@embedded-brains.de>
To: newlib@sourceware.org
Subject: Re: Fw: [PATCH 03/14] Add _REENT_ERRNO(ptr)
Date: Tue, 12 Jul 2022 18:38:31 +0200	[thread overview]
Message-ID: <29672b0c-34bf-6015-ea8d-9fb8c3c09f2e@embedded-brains.de> (raw)
In-Reply-To: <Ys2dPOH35j0Po1yq@calimero.vinschen.de>

On 12/07/2022 18:11, Corinna Vinschen wrote:
> On Jun 23 12:55, Sebastian Huber wrote:
>> On 21/06/2022 16:41, C Howland wrote:
>>>> ------------------------------
>>>> *From:* Newlib<newlib-bounces+craig.howland=caci.com@sourceware.org>   on
>>>> behalf of Sebastian Huber<sebastian.huber@embedded-brains.de>
>>>> *Sent:* Tuesday, June 21, 2022 8:49 AM
>>>> *To:*newlib@sourceware.org<newlib@sourceware.org>
>>>> *Subject:* [PATCH 03/14] Add _REENT_ERRNO(ptr)
>>>>
>>>>
>>>>
>>>> From: Matt Joyce<matthew.joyce@embedded-brains.de>
>>>>
>>>> Add a _REENT_ERRNO() macro to encapsulate the access to the
>>>> _errno member of struct reent. This will help to replace the
>>>> structure member with a thread-local storage object in a follow
>>>> up patch.
>>>> ---
>>>>
>>> There already exists an __errno_r() macro that does the very same function
>>> (defined in sys/errno.h).  (Its use, however, is limited, only being used
>>> in files under iconv/lib.)  Having the same thing done both ways probably
>>> doesn't make sense.  The new name is more consistent with the rest of the
>>> things being done, while the old name is established and errno is a more
>>> specialized case.  It probably would be a good idea to either
>>> 1)  use __errno_r() instead of creating _REENT_ERRNO() or
>>> 2)  replace __errno_r() with _REENT_ERRNO() as part of adding the latter.
>> I would not remove an existing macro, so option 1) would be preferred by me.
> Really?  Your followup patches introduce a lot of new _REENT_foo macros,
> so defining one of them with a different name doesn't make a lot of sense,
> does it?

There are lots of *_r() functions (for example _strdup_r()) so I assumed 
that this __errno_r() might be used outside of Newlib.

> 
> Either all these macros should be called __foo_r(), or __errno_r() should
> actually be removed or at least be defined in terms of _REENT_errno(),
> if you really think we should keep it.  

The original patch defined __errno_r() like this:

#define __errno_r(ptr) _REENT_ERRNO(ptr)

I think naming of the new _REENT_*() macros is quite consistent with the 
stuff we already have in <sys/reent.h>.

> Given that it's used only in
> iconv/lib kind of shows that it was never meant for consumption outside
> newlib anyway, isn't it?

What about renaming the existing __errno_r() uses in Newlib to 
_REENT_ERRNO() with a definition of __errno_r() in <sys/errno.h> for 
potential users outside of Newlib?

-- 
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/

  reply	other threads:[~2022-07-12 16:38 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-21 12:49 [PATCH 00/14] Add --enable-newlib-reent-thread-local option Sebastian Huber
2022-06-21 12:49 ` [PATCH 01/14] Move content in <sys/reent.h> Sebastian Huber
2022-06-21 12:49 ` [PATCH 02/14] Define _REENT_EMERGENCY(ptr) only once Sebastian Huber
2022-06-21 12:49 ` [PATCH 03/14] Add _REENT_ERRNO(ptr) Sebastian Huber
     [not found]   ` <BN2P110MB15447CD8C6DD815779AA7E4C9AB39@BN2P110MB1544.NAMP110.PROD.OUTLOOK.COM>
2022-06-21 14:41     ` Fw: " C Howland
2022-06-23 10:55       ` Sebastian Huber
2022-07-11  7:41         ` Sebastian Huber
2022-07-12 16:11         ` Corinna Vinschen
2022-07-12 16:38           ` Sebastian Huber [this message]
2022-07-12 18:25             ` Corinna Vinschen
2022-07-13  7:17               ` Sebastian Huber
2022-07-13  7:50                 ` Corinna Vinschen
2022-07-13  8:19                   ` Sebastian Huber
2022-07-13 11:13                     ` Corinna Vinschen
2022-06-21 12:49 ` [PATCH 04/14] Add _REENT_STDIN(ptr) Sebastian Huber
2022-06-21 12:49 ` [PATCH 05/14] Add _REENT_STDOUT(ptr) Sebastian Huber
2022-06-21 12:49 ` [PATCH 06/14] Add _REENT_STDERR(ptr) Sebastian Huber
2022-06-21 12:49 ` [PATCH 07/14] Add _REENT_INC(ptr) Sebastian Huber
2022-06-21 12:49 ` [PATCH 08/14] Add _REENT_LOCALE(ptr) Sebastian Huber
2022-06-21 12:49 ` [PATCH 09/14] Add _REENT_CLEANUP(ptr) Sebastian Huber
2022-06-21 12:49 ` [PATCH 10/14] Add _REENT_CVTLEN(ptr) Sebastian Huber
2022-06-21 12:49 ` [PATCH 11/14] Add _REENT_CVTBUF(ptr) Sebastian Huber
2022-06-21 12:49 ` [PATCH 12/14] Add _REENT_SIG_FUNC(ptr) Sebastian Huber
2022-06-21 12:49 ` [PATCH 13/14] Add _REENT_IS_NULL() Sebastian Huber
2022-06-21 12:49 ` [PATCH 14/14] Add --enable-newlib-reent-thread-local option Sebastian Huber
2022-06-21 13:59   ` Torbjorn SVENSSON
2022-06-21 15:10     ` Sebastian Huber
2022-07-12 11:18 ` [PATCH 00/14] " Sebastian Huber
2022-07-12 14:45   ` Corinna Vinschen
2022-07-12 15:53     ` Sebastian Huber

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=29672b0c-34bf-6015-ea8d-9fb8c3c09f2e@embedded-brains.de \
    --to=sebastian.huber@embedded-brains.de \
    --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).