mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 19:00:25 +00:00
![Kirill A. Shutemov](/assets/img/avatar_default.png)
<linux/spinlock.h> has heavy dependencies on other header files. It triggers circular dependencies in generated headers on IA64, at least: CC kernel/bounds.s In file included from /home/space/kas/git/public/linux/arch/ia64/include/asm/thread_info.h:9:0, from include/linux/thread_info.h:54, from include/asm-generic/preempt.h:4, from arch/ia64/include/generated/asm/preempt.h:1, from include/linux/preempt.h:18, from include/linux/spinlock.h:50, from kernel/bounds.c:14: /home/space/kas/git/public/linux/arch/ia64/include/asm/asm-offsets.h:1:35: fatal error: generated/asm-offsets.h: No such file or directory compilation terminated. Let's replace <linux/spinlock.h> with <linux/spinlock_types.h>, it's enough to find out size of spinlock_t. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Reported-and-Tested-by: Tony Luck <tony.luck@intel.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
27 lines
791 B
C
27 lines
791 B
C
/*
|
|
* Generate definitions needed by the preprocessor.
|
|
* This code generates raw asm output which is post-processed
|
|
* to extract and format the required data.
|
|
*/
|
|
|
|
#define __GENERATING_BOUNDS_H
|
|
/* Include headers that define the enum constants of interest */
|
|
#include <linux/page-flags.h>
|
|
#include <linux/mmzone.h>
|
|
#include <linux/kbuild.h>
|
|
#include <linux/page_cgroup.h>
|
|
#include <linux/log2.h>
|
|
#include <linux/spinlock_types.h>
|
|
|
|
void foo(void)
|
|
{
|
|
/* The enum constants to put into include/generated/bounds.h */
|
|
DEFINE(NR_PAGEFLAGS, __NR_PAGEFLAGS);
|
|
DEFINE(MAX_NR_ZONES, __MAX_NR_ZONES);
|
|
DEFINE(NR_PCG_FLAGS, __NR_PCG_FLAGS);
|
|
#ifdef CONFIG_SMP
|
|
DEFINE(NR_CPUS_BITS, ilog2(CONFIG_NR_CPUS));
|
|
#endif
|
|
DEFINE(BLOATED_SPINLOCKS, sizeof(spinlock_t) > sizeof(int));
|
|
/* End of constants */
|
|
}
|