lkml.org 
[lkml]   [2011]   [Jul]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: page->_count build failure [was: mmotm 2011-07-08-12-50 uploaded]
On Mon, 11 Jul 2011 22:27:22 +0200
Jiri Slaby <jirislaby@gmail.com> wrote:

> On 07/08/2011 09:50 PM, akpm@linux-foundation.org wrote:
> > The mm-of-the-moment snapshot 2011-07-08-12-50 has been uploaded to
>
> Hi, am I the only one encountering a build failure due to double
> definition of _count in page struct introduced by:
> commit fc9bb8c768abe7ae10861c3510e01a95f98d5933
> Author: Christoph Lameter <cl@linux.com>
> Date: Wed Jun 1 12:25:48 2011 -0500
>
> mm: Rearrange struct page
>
> in the -next tree?
>
> $ make
> ...
> CC arch/x86/kernel/asm-offsets.s
> In file included from include/linux/sched.h:64:0,
> from arch/x86/kernel/asm-offsets.c:9:
> include/linux/mm_types.h:74:15: error: duplicate member ____count___
> make[1]: *** [arch/x86/kernel/asm-offsets.s] Error 1
> make: *** [prepare0] Error 2
> $ gcc --version
> gcc (SUSE Linux) 4.6.0 20110607 [gcc-4_6-branch revision 174741]
>

Oh dear. Yes, I would call that an error. Afacit the two `_count's
end up at the same offset in the page struct. Perhaps that makes it
legal and your compiler got it wrong. Or perhaps it is illegal and all
other compilers got it wrong.

Still, we should fix it. It's daft to have two distinct page->_count's.

To fix it, we could rename one of them. Which means that we're going
to need to work out which references to page->_count are referring to
which field. Which demonstrates the problem!


hmm, let's jiggle the offset:

--- a/include/linux/mm_types.h~a
+++ a/include/linux/mm_types.h
@@ -71,6 +71,7 @@ struct page {
* Kernel may make use of this field even when slub
* uses the rest of the double word!
*/
+ int foo;
atomic_t _count;
};
};
_
nope, it still compiles OK. It has to be gcc bustification I think.
Fixed in gcc-4.6.0.



\
 
 \ /
  Last update: 2011-07-11 22:45    [W:0.696 / U:0.476 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site