Re: 2.6.25-rc5-mm1: NO_HZ=Y && PREEMPT_RCU=Y fails to build

Andrew Morton
2008-03-12T07:44:26Z

On Wed, 12 Mar 2008 08:21:41 +0100 Laurent Riffard <laurent.riffard@free.fr> wrote:

> Le 11.03.2008 09:14, Andrew Morton a __crit :
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.25-rc5/2.6.25-rc5-mm1/
> >
>
> The kernel won't build if CONFIG_NO_HZ=y and CONFIG_PREEMPT_RCU=y:
>
> $ grep -e PREEMPT -e HZ .config
> CONFIG_NO_HZ=y
> # CONFIG_PREEMPT_NONE is not set
> # CONFIG_PREEMPT_VOLUNTARY is not set
> CONFIG_PREEMPT=y
> CONFIG_PREEMPT_RCU=y
> # CONFIG_HZ_100 is not set
> CONFIG_HZ_250=y
> # CONFIG_HZ_300 is not set
> # CONFIG_HZ_1000 is not set
> CONFIG_HZ=250
> CONFIG_DEBUG_PREEMPT=y
> $
> $ make
> ...
> CC init/main.o
> In file included from include/linux/rcupdate.h:60,
> from include/linux/rculist.h:11,
> from include/linux/dcache.h:9,
> from include/linux/fs.h:279,
> from include/linux/proc_fs.h:6,
> from init/main.c:15:
> include/linux/rcupreempt.h: In function 'rcu_enter_nohz':
> include/linux/rcupreempt.h:91: error: 'HZ' undeclared (first use in this function)
> include/linux/rcupreempt.h:91: error: (Each undeclared identifier is reported only once
> include/linux/rcupreempt.h:91: error: for each function it appears in.)
> include/linux/rcupreempt.h: In function 'rcu_exit_nohz':
> include/linux/rcupreempt.h:99: error: 'HZ' undeclared (first use in this function)

hm, it works OK for me, but I don't have your full config.

This, I guess:

--- a/include/asm-generic/bug.h~add-warn_on_secs-macro-fix-fix
+++ a/include/asm-generic/bug.h
@@ -2,7 +2,7 @@
#define _ASM_GENERIC_BUG_H

#include <linux/compiler.h>
-
+#include <linux/param.h>

#ifdef CONFIG_BUG

_