From: Ian Lance Taylor <iant@google.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Frans Pop <elendil@planet.nl>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
linux-kbuild@vger.kernel.org, barryn@pobox.com,
bugme-daemon@bugzilla.kernel.org
Subject: Re: [Bug 13012] 2.6.28.9 causes init to segfault on Debian etch; 2.6.28.8 OK
Date: Sun, 12 Jul 2009 22:29:50 -0700 [thread overview]
Message-ID: <m3k52d1775.fsf@google.com> (raw)
In-Reply-To: <alpine.LFD.2.01.0907121058040.3552@localhost.localdomain> (Linus Torvalds's message of "Sun\, 12 Jul 2009 10\:58\:21 -0700 \(PDT\)")
Linus Torvalds <torvalds@linux-foundation.org> writes:
> Ian: we generally do try to be careful and use explicit unsigned types for
> code that cares about overflow, but we use -fwrapv because there have been
> some cases where we didn't (and used pointer comparisons or signed
> integers).
>
> The problem is that apparently gcc-4.1.x was literally generating buggy
> code with -fwrapv. So now the choice for us is between switching to an
> explicit version test:
>
> -KBUILD_CFLAGS += $(call cc-option,-fwrapv)
> +KBUILD_CFLAGS += $(shell if [ $(call cc-version) -ge 0402 ]; then \
> + echo $(call cc-option,-fwrapv); fi ;)
>
> or just switching to -fno-strict-overflow instead:
>
> -KBUILD_CFLAGS += $(call cc-option,-fwrapv)
> +KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow)
>
> which avoids the buggy gcc versions because it's simply not even supported
> by gcc-4.1.x (and even if that wasn't the case, possibly because only
> 'wrapv' is the problematic case - apparently the difference _does_
> matter to gcc).
My instinctive advice is that y'all should track down and fix the cases
where the program relies on signed overflow being defined. However, if
that is difficult--and it is--then I agree that -fno-strict-overflow is
preferable when using a compiler which supports it (gcc 4.2.0 and
later).
(The gcc 4.2 and later option -Wstrict-overflow=N can help find the
cases where a program relies on defined signed overflow, but only if
somebody is patient enough to wade through all the false positives.)
Ian
next prev parent reply other threads:[~2009-07-13 5:30 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-10 7:28 [Bug 13012] 2.6.28.9 causes init to segfault on Debian etch; 2.6.28.8 OK Frans Pop
2009-07-10 14:59 ` Frans Pop
2009-07-12 17:58 ` Linus Torvalds
2009-07-12 18:24 ` Linus Torvalds
2009-07-13 5:29 ` Ian Lance Taylor [this message]
2009-07-25 3:23 ` Dave Jones
2009-07-25 16:49 ` Linus Torvalds
2009-07-10 20:05 ` [PATCH,v2] Only add '-fwrapv' to gcc CFLAGS for gcc 4.2 and later Frans Pop
2009-07-17 22:18 ` Sam Ravnborg
2009-07-17 22:43 ` Frans Pop
2009-07-18 6:59 ` Sam Ravnborg
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=m3k52d1775.fsf@google.com \
--to=iant@google.com \
--cc=akpm@linux-foundation.org \
--cc=barryn@pobox.com \
--cc=bugme-daemon@bugzilla.kernel.org \
--cc=elendil@planet.nl \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.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