public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
From: Jordi Sanfeliu <jordi@fibranet.cat>
To: newlib@sourceware.org
Subject: Re: [PATCH v2] newlib: fix build with <gcc-5 versions
Date: Sun, 20 Mar 2022 14:57:58 +0100	[thread overview]
Message-ID: <66881efa-9121-0178-f804-cad530c5caa5@fibranet.cat> (raw)
In-Reply-To: <YjaBhh3R3PZhvAR2@vapier>

For what it’s worth, I'm using GCC 4.x in my humble hobby OS (fiwix.org) 
focused on old i386 machines. So for me, will be fine to continue be 
able to build Newlib with GCC 4.x.

Also, I noticed that GCC 4.x needs less memory footprint than GCC 5.x, 
so it makes it more appreciated in old machines.

Thanks.



On 3/20/22 02:21, Mike Frysinger wrote:
> On 17 Mar 2022 10:49, Corinna Vinschen wrote:
>> On Mar 16 22:41, Mike Frysinger wrote:
>>> On 16 Mar 2022 10:17, R. Diez wrote:
>>>>>> Therefore, compiling your code with GCC < 5 will silently break your application.
>>>>>> After all, the only reason to use __builtin_mul_overflow() is
>>>>>> that you need to check for overflow, is it?
>>>>>
>>>>> practically speaking, i don't think this is a big deal.  newlib gained these
>>>>> checks only "recently" (<2 years ago).  newlib has been around for much much
>>>>> longer, and the world didn't notice.
>>>>
>>>> Such general justifications wouldn't pass quality assurance (if we had one).
>>>
>>> in your opinion.  software is not perfect, it's trade-offs.
>>>
>>>>> yes, if an app starts trying to allocate
>>>>> huge amounts of memory such that it triggers 32-bit overflows when calculating,
>>>>> the new size, it will probably internally allocate fewer bytes than requested,
>>>>> and things will get corrupted.  but like, don't do that :p.  such applications
>>>>> probably will have other problems already.
>>>>
>>>> You are suggesting that this only affects memory allocation, but the patch is for libc/include/sys/cdefs.h , so those mine traps will be available for everybody.
>>>>
>>>> People will tend to assume that anything in Newlib is correct, and code has a way to get copied around and re-used.
>>>>
>>>> There are many ways to mitigate the risk:
>>>>
>>>> - Require GCC 5.
>>>> - Provide a proper implementation of __builtin_mul_overflow().
>>>> - Patch all users of __builtin_mul_overflow() within Newlib, so that they do not use it if the compiler does not provide it.
>>>> - Issue a compilation warning for GCC < 5 that the "stub" __builtin_mul_overflow() is broken.
>>>>     Note that this is not actually a "stub" implementation in the common sense.
>>>> - Add an "assert( false ) // fix me" inside the implementation.
>>>> - Add a comment stating that the "stub" implementation is not actually correct.
>>>
>>> any option that prevents correct execution with gcc-4 is not an improvement.
>>> if you care this much, feel free to contribute a patch.  or use gcc-5+ and
>>> not worry about it.
>>> -mike
>>
>> Does anybody actually care for building with gcc < 5?  If not, we
>> should just make gcc 5 a prerequisite.
> 
> i'm using gcc 4.9 for one of my targets which is why i noticed :).
> -mike

-- 
Jordi Sanfeliu
FIBRANET Network Services Provider
https://www.fibranet.cat

  reply	other threads:[~2022-03-20 13:58 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-14  3:25 [PATCH] " Mike Frysinger
2022-03-14  7:36 ` Sebastian Huber
2022-03-14 16:58   ` Mike Frysinger
2022-03-15  3:25 ` [PATCH v2] " Mike Frysinger
2022-03-15 12:41   ` Richard Earnshaw
2022-03-15 23:54     ` Mike Frysinger
2022-03-16  7:12       ` R. Diez
2022-03-16  8:30         ` Mike Frysinger
2022-03-16  9:17           ` R. Diez
2022-03-17  2:41             ` Mike Frysinger
2022-03-17  9:49               ` Corinna Vinschen
2022-03-17 11:26                 ` Richard Earnshaw
2022-03-18  7:24                   ` Corinna Vinschen
2022-03-18  8:30                     ` R. Diez
2022-03-18  9:26                       ` Corinna Vinschen
2022-03-18  9:45                         ` R. Diez
2022-03-20  1:22                           ` Mike Frysinger
2022-03-20  1:21                 ` Mike Frysinger
2022-03-20 13:57                   ` Jordi Sanfeliu [this message]
2022-03-20 12:52       ` Eric Bresie
2022-03-20 14:16         ` Mike Frysinger
2022-03-15 23:53 ` [PATCH v3] " Mike Frysinger
     [not found] <1647792834.2524.0.ref@smtp.mail.att.net>
2022-03-20 16:13 ` [PATCH v2] " Steven J Abner
     [not found] <1647807849.2524.1.ref@smtp.mail.att.net>
2022-03-20 20:24 ` Steven J Abner

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=66881efa-9121-0178-f804-cad530c5caa5@fibranet.cat \
    --to=jordi@fibranet.cat \
    --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).