public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
From: Richard Earnshaw <Richard.Earnshaw@foss.arm.com>
To: Jonathan Wakely <jwakely@redhat.com>,
	newlib@sourceware.org, Mike Frysinger <vapier@gentoo.org>
Subject: Re: [PATCH 2/2] ctype: use less short names in public header
Date: Tue, 30 Nov 2021 17:52:28 +0000	[thread overview]
Message-ID: <29a9adf9-8251-d32b-6340-ea1d57ff4d9d@foss.arm.com> (raw)
In-Reply-To: <CACb0b4n28=fUE00uJ4zV=APvh24yy=wbwUa9SPBdf4GMXG+OAQ@mail.gmail.com>



On 30/11/2021 17:15, Jonathan Wakely wrote:
> On Tue, 30 Nov 2021 at 17:12, Jonathan Wakely <jwakely@redhat.com> wrote:
>>
>> On Tue, 30 Nov 2021 at 15:14, Corinna Vinschen <vinschen@redhat.com> wrote:
>>>
>>> On Nov 30 12:01, Jonathan Wakely wrote:
>>>> On 23/11/21 23:15 -0500, Mike Frysinger wrote:
>>>>> On 23 Nov 2021 15:09, Richard Earnshaw wrote:
>>>>>> This is wrong and breaks all old versions of C++.
>>>>>
>>>>> this is a bit vague.  it would help if you provided details as to what broke.
>>>>> i doubt this broke all old versions of C++ everywhere.
>>>>>
>>>>> i'm guessing you're referring to the GNU C++ (libstdc++) library specifically
>>>>> and its hardcoding of newlib's internal ctype define names.
>>>>> https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3/config/os/newlib/ctype_base.h;hb=releases/gcc-11.2.0
>>>>
>>>> Yes, you were CC'd on the GCC bug slightly before Richard sent his
>>>> email to this list:
>>>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103305#c16
>>>>
>>>>> if you're talking about something else, please state so clearly.
>>>>>
>>>>>> The GNU sim code should not be using reserved names (those starting _)
>>>>>> in normal source code.  Such names are reserved to the implementation.
>>>>>
>>>>> that's not really a good reason to go pooping all over the namespace.
>>>>>
>>>>> we can maintain backwards compat here for C++ code fairly easily:
>>>>
>>>> Yes, or only do that for GCC < 12, as I suggested in
>>>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103305#c19
>>>>
>>>> #if defined(__GNUC__) && defined(__cplusplus)
>>>> # if __GNUC__ < 12
>>>>
>>>> The libstdc++ code on trunk uses the new _ISupper names.
>>>>
>>>> I have no opinion on how long you should keep such backwards
>>>> compatibility around. Whatever time limit you set, at some point it
>>>> will make a new newlib release unusable with past G++ versions.
>>>
>>> Is there a good reason to revert these patches in newlib?  I see the
>>> problem but I'm unclear on how problematic the change is in real life.
>>
>> You cannot use newlib from Git to build any released version of GCC.
>>
>> Is building newlib from Git only supported when using GCC trunk, or is
> 
> Oops, I mean building *against* newlib from Git, not building newlib
> itself. You can still build newlib itself, because it doesn't use C++.
> But you can't build a GCC 11.2.0 compiler that uses the latest newlib
> from Git as its libc.
> 
>> it supposed to build with e.g. GCC 11.2.0 from July this year? If yes,
>> then newlib needs changes (whether reverting the change entirely, or
>> just making another change to restore the old names in addition to the
>> new ones).
> 

My concern is that the proposed workaround may break other (probably 
buggy) apps that have been relying on the old BSD internal API for 30 
odd years.  The proposed workaround only solves the issue for G++.

R.

  reply	other threads:[~2021-11-30 17:52 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-07  0:21 what's up with _COMPILING_NEWLIB Mike Frysinger
2021-11-08 10:05 ` Corinna Vinschen
2021-11-08 11:46   ` Mike Frysinger
2021-11-08 15:05     ` Corinna Vinschen
2021-11-08 18:14       ` Mike Frysinger
2021-11-09  1:24 ` [PATCH 1/2] define _COMPILING_NEWLIB for all targets when compiling Mike Frysinger
2021-11-09  1:24   ` [PATCH 2/2] ctype: use less short names in public header Mike Frysinger
2021-11-09 11:38     ` Corinna Vinschen
2021-11-10  0:18       ` Mike Frysinger
2021-11-10 10:56         ` Corinna Vinschen
2021-11-30 12:18         ` Jonathan Wakely
2021-11-11  1:37     ` [PATCH v2] " Mike Frysinger
2021-11-11 10:35       ` Corinna Vinschen
2021-11-11 22:28         ` Mike Frysinger
2021-11-12 10:27           ` Corinna Vinschen
2021-11-20 20:08             ` Brian Inglis
2021-11-23 15:09     ` [PATCH 2/2] " Richard Earnshaw
2021-11-24  4:15       ` Mike Frysinger
2021-11-24 10:58         ` Richard Earnshaw
2021-11-24 11:01           ` Richard Earnshaw
2021-11-30 12:01         ` Jonathan Wakely
2021-11-30 15:14           ` Corinna Vinschen
2021-11-30 17:12             ` Jonathan Wakely
2021-11-30 17:15               ` Jonathan Wakely
2021-11-30 17:52                 ` Richard Earnshaw [this message]
2021-12-02 10:27                   ` Corinna Vinschen
2021-12-03  9:56                     ` Corinna Vinschen
2021-12-05  9:42                   ` Mike Frysinger

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=29a9adf9-8251-d32b-6340-ea1d57ff4d9d@foss.arm.com \
    --to=richard.earnshaw@foss.arm.com \
    --cc=jwakely@redhat.com \
    --cc=newlib@sourceware.org \
    --cc=vapier@gentoo.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).