RE: ia64 allmodconfig bustage in 2.6.30-rc2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> `make allmodconfig'
> `make vmlinux'
>
>  CC      arch/ia64/kernel/asm-offsets.s
> In file included from include/linux/bitops.h:17,
>                 from include/linux/kernel.h:15,
>                 from include/linux/sched.h:52,
>                 from arch/ia64/kernel/asm-offsets.c:9:
> /usr/src/devel/arch/ia64/include/asm/bitops.h: In function `set_bit':
> /usr/src/devel/arch/ia64/include/asm/bitops.h:47: error: implicit declaration of function `BUILD_BUG_ON'

Line 47 of bitops.h is a CMPXCHG_BUGCHECK() and allmodconfig
has CONFIG_IA64_DEBUG_CMPXCHG=y, so we pick the debug version
that uses ia64_getreg(_IA64_REG_IP) to printk a message about
where we are stuck.

Now allmodconfig picks CONFIG_PARAVIRT=y ... so this ends up
taking us to __paravirt_getreg(), which is where the BUILD_BUG_ON()
gets introduced.  So we need to include <linux/kernel.h> somewhere
(or somewhere earlier than we currently do) to make this alright.

But our probem is that kernel.h goes off and includes bitops.h
long before it defines BUILD_BUG_ON.  Just moving the definition
of BUILD_BUG_ON up before we #include anything else (ugly) fixes
this immediate problem ... but then there are lots of other errors from
asm/bitops.h :-(

Deleting the two BUILD_BUG_ON instances from paravirt_privop.h does
get the build up on its feet and running.  But that loses us some
compile time checking for a coding/usage error.

Yamahata-san: How important do you think the BUILD_BUG_ON()
checks are here?  What would the failure look like if we dropped
them, and at some later time someone coded a call to ia64_getreg
with a non-constant register number as argument?

-Tony

--
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Sparc Linux]     [DCCP]     [Linux ARM]     [Yosemite News]     [Linux SCSI]     [Linux x86_64]     [Linux for Ham Radio]

  Powered by Linux