lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Sat, 27 Feb 2016 15:10:33 -0800
From:	"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>
To:	Linus Torvalds <torvalds@...ux-foundation.org>
Cc:	linux-arch@...r.kernel.org, Jade Alglave <j.alglave@....ac.uk>,
	p796231 <Peter.Sewell@...cam.ac.uk>, gcc@....gnu.org,
	llvm-dev@...ts.llvm.org, Luc Maranget <luc.maranget@...ia.fr>,
	mingo@...nel.org, akpm@...ux-foundation.org, dhowells@...hat.com,
	linux-kernel@...r.kernel.org, parallel@...ts.isocpp.org,
	will.deacon@....com, peterz@...radead.org,
	Ramana.Radhakrishnan@....com
Subject: Re: [isocpp-parallel] Proposal for new memory_order_consume
 definition

On Sat, Feb 27, 2016 at 11:16:51AM -0800, Linus Torvalds wrote:
> On Feb 27, 2016 09:06, "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>
> wrote:
> >
> >
> > But we do already have something very similar with signed integer
> > overflow.  If the compiler can see a way to generate faster code that
> > does not handle the overflow case, then the semantics suddenly change
> > from twos-complement arithmetic to something very strange.  The standard
> > does not specify all the ways that the implementation might deduce that
> > faster code can be generated by ignoring the overflow case, it instead
> > simply says that signed integer overflow invoked undefined behavior.
> >
> > And if that is a problem, you use unsigned integers instead of signed
> > integers.
> 
> Actually, in the case of there Linux kernel we just tell the compiler to
> not be an ass. We use
> 
>   -fno-strict-overflow

That is the one!

> or something. I forget the exact compiler flag needed for "the standard is
> as broken piece of shit and made things undefined for very bad reasons".
> 
> See also there idiotic standard C alias rules. Same deal.

For which we use -fno-strict-aliasing.

> So no, standards aren't that important. When the standards screw up, the
> right answer is not to turn the other cheek.

Agreed, hence my current (perhaps quixotic and insane) attempt to get
the standard to do something useful for dependency ordering.  But if
that doesn't work, yes, a fallback position is to get the relevant
compilers to provide flags to avoid problematic behavior, similar to
-fno-strict-overflow.

							Thanx, Paul

> And undefined behavior is pretty much *always* a sign of "the standard is
> wrong".
> 
>      Linus

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ