From: Andi Kleen <andi@firstfloor.org>
To: Christoph Lameter <cl@linux-foundation.org>
Cc: Andi Kleen <andi@firstfloor.org>,
Rusty Russell <rusty@rustcorp.com.au>,
Stephen Rothwell <sfr@canb.auug.org.au>,
linux-next@vger.kernel.org, Mike Travis <travis@sgi.com>,
Ingo Molnar <mingo@elte.hu>, Richard Henderson <rth@twiddle.net>,
akpm@osdl.org
Subject: Re: linux-next: manual merge of the rr tree
Date: Thu, 8 Jan 2009 21:48:35 +0100 [thread overview]
Message-ID: <20090108204835.GI496@one.firstfloor.org> (raw)
In-Reply-To: <Pine.LNX.4.64.0901071300430.8329@quilx.com>
On Wed, Jan 07, 2009 at 01:01:06PM -0600, Christoph Lameter wrote:
> On Wed, 7 Jan 2009, Andi Kleen wrote:
>
> > The C standard says that arithmetic on pointers in defined objects outside
> > the boundaries of these objects (except for the special case of one beyond
> > the end for arrays) is undefined. The gcc optimizers take advantage
> > of this by assuming that such arithmetic doesn't wrap (and might have other
> > assumptions)
>
> Ok then we need to say so in a comment around RELOC_HIDE.
Here's a patch to do that. Andrew, please add it.
-Andi
---
Add more comments to RELOC_HIDE
Requested by C. Lameter
Signed-off-by: Andi Kleen <ak@linux.intel.com>
---
include/linux/compiler-gcc.h | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
Index: linux-2.6.28-test/include/linux/compiler-gcc.h
===================================================================
--- linux-2.6.28-test.orig/include/linux/compiler-gcc.h 2008-05-08 12:56:10.000000000 +0200
+++ linux-2.6.28-test/include/linux/compiler-gcc.h 2009-01-08 21:31:55.000000000 +0100
@@ -11,9 +11,19 @@
/* The "volatile" is due to gcc bugs */
#define barrier() __asm__ __volatile__("": : :"memory")
-/* This macro obfuscates arithmetic on a variable address so that gcc
- shouldn't recognize the original var, and make assumptions about it */
-/*
+/*
+ * This macro obfuscates arithmetic on a variable address so that gcc
+ * shouldn't recognize the original var, and make assumptions about it.
+ *
+ * This is needed because the C standard makes it undefined to do
+ * pointer arithmetic on "objects" outside their boundaries and the
+ * gcc optimizers assume this is the case. In particular they
+ * assume such arithmetic does not wrap.
+ *
+ * A miscompilation has been observed because of this on PPC.
+ * To work around it we hide the relationship of the pointer and the object
+ * using this macro.
+ *
* Versions of the ppc64 compiler before 4.1 had a bug where use of
* RELOC_HIDE could trash r30. The bug can be worked around by changing
* the inline assembly constraint from =g to =r, in this particular
--
ak@linux.intel.com
next prev parent reply other threads:[~2009-01-08 20:34 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-05 3:32 linux-next: manual merge of the rr tree Stephen Rothwell
2009-01-05 6:57 ` Rusty Russell
2009-01-05 12:47 ` Ingo Molnar
2009-01-06 8:51 ` Rusty Russell
2009-01-06 9:20 ` Ingo Molnar
2009-01-06 13:13 ` Mike Travis
2009-01-06 13:19 ` Ingo Molnar
2009-01-06 14:21 ` Mike Travis
2009-01-06 14:59 ` Ingo Molnar
2009-01-07 2:46 ` Rusty Russell
2009-01-05 15:29 ` Christoph Lameter
2009-01-06 1:04 ` Rusty Russell
2009-01-06 15:05 ` Christoph Lameter
2009-01-07 2:47 ` Rusty Russell
2009-01-07 16:11 ` Christoph Lameter
2009-01-07 17:20 ` Andi Kleen
2009-01-07 19:01 ` Christoph Lameter
2009-01-08 20:48 ` Andi Kleen [this message]
2009-01-08 20:50 ` Andrew Morton
2009-01-08 21:15 ` Christoph Lameter
2009-01-08 21:49 ` Andi Kleen
2009-01-08 22:21 ` Christoph Lameter
2009-01-08 22:25 ` David Miller
2009-01-09 14:42 ` Christoph Lameter
2009-01-09 22:54 ` David Miller
2009-01-05 19:46 ` Mike Travis
2009-01-05 8:41 ` Rusty Russell
2009-01-06 3:46 ` Stephen Rothwell
2009-01-06 13:26 ` Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2009-01-09 1:53 Stephen Rothwell
2009-01-09 1:53 ` Stephen Rothwell
2009-01-06 3:11 Stephen Rothwell
2008-12-29 7:51 Stephen Rothwell
2008-12-29 7:47 Stephen Rothwell
2008-12-29 8:02 ` Stephen Rothwell
2008-12-22 6:32 Stephen Rothwell
2008-12-22 7:58 ` Rusty Russell
2008-12-22 8:45 ` Mark McLoughlin
2009-01-04 23:30 ` Stephen Rothwell
2009-01-05 4:36 ` Greg KH
2009-01-05 5:56 ` Stephen Rothwell
2008-12-16 5:29 Stephen Rothwell
2008-12-15 6:15 Stephen Rothwell
2008-11-24 3:20 Stephen Rothwell
2008-11-20 3:24 Stephen Rothwell
2008-11-20 4:28 ` Rusty Russell
2008-11-14 4:13 Stephen Rothwell
2008-11-14 4:20 ` Stephen Rothwell
2008-11-14 4:30 ` David Miller
2008-11-14 4:36 ` Stephen Rothwell
2008-11-14 4:41 ` David Miller
2008-11-14 5:06 ` Stephen Rothwell
2008-11-14 6:42 ` David Miller
2008-11-15 22:32 ` Rusty Russell
2008-11-17 2:57 ` David Miller
2008-11-07 5:01 Stephen Rothwell
2008-10-29 4:28 Stephen Rothwell
2008-10-29 4:33 ` Stephen Rothwell
2008-10-29 22:42 ` Rusty Russell
2008-10-28 2:55 Stephen Rothwell
2008-10-28 7:19 ` Heiko Carstens
2008-10-28 7:24 ` Stephen Rothwell
2008-10-27 3:32 Stephen Rothwell
2008-10-24 2:21 Stephen Rothwell
2008-10-23 4:12 Stephen Rothwell
2008-10-23 5:16 ` Rusty Russell
2008-10-23 12:26 ` Rusty Russell
2008-10-23 12:50 ` Mike Travis
2008-10-23 4:01 Stephen Rothwell
2008-10-23 7:17 ` Peter Zijlstra
2008-10-23 13:32 ` Rusty Russell
2008-10-23 3:56 Stephen Rothwell
2008-10-23 12:25 ` Rusty Russell
2008-09-12 21:53 Stephen Rothwell
2008-07-28 3:16 Stephen Rothwell
2008-07-28 3:13 Stephen Rothwell
2008-07-28 3:09 Stephen Rothwell
2008-07-22 4:58 Stephen Rothwell
2008-07-22 14:21 ` Mike Travis
2008-07-16 8:15 Stephen Rothwell
2008-07-17 5:46 ` Max Krasnyansky
2008-07-18 4:31 ` Rusty Russell
2008-07-14 6:52 Stephen Rothwell
2008-07-03 5:03 Stephen Rothwell
2008-07-03 5:56 ` Ingo Molnar
2008-07-03 8:07 ` Stephen Rothwell
2008-07-03 8:19 ` Ingo Molnar
2008-07-04 0:45 ` Rusty Russell
2008-07-04 0:29 ` Rusty Russell
2008-06-25 6:27 Stephen Rothwell
2008-06-25 6:38 ` Christian Borntraeger
2008-06-25 15:23 ` Stephen Rothwell
2008-06-25 6:27 Stephen Rothwell
2008-06-25 7:47 ` Ingo Molnar
2008-06-25 8:33 ` Rusty Russell
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=20090108204835.GI496@one.firstfloor.org \
--to=andi@firstfloor.org \
--cc=akpm@osdl.org \
--cc=cl@linux-foundation.org \
--cc=linux-next@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rth@twiddle.net \
--cc=rusty@rustcorp.com.au \
--cc=sfr@canb.auug.org.au \
--cc=travis@sgi.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.