summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile20
-rw-r--r--arch/sh/kernel/process.c1
-rw-r--r--include/asm-arm/elf.h18
-rw-r--r--include/asm-arm/page.h4
-rw-r--r--include/asm-arm26/Kbuild1
-rw-r--r--include/asm-cris/Kbuild4
-rw-r--r--include/asm-cris/arch-v10/Kbuild2
-rw-r--r--include/asm-cris/arch-v32/Kbuild2
-rw-r--r--include/asm-cris/byteorder.h3
-rw-r--r--include/asm-cris/elf.h8
-rw-r--r--include/asm-cris/page.h8
-rw-r--r--include/asm-cris/posix_types.h9
-rw-r--r--include/asm-cris/unistd.h4
-rw-r--r--include/asm-h8300/page.h7
-rw-r--r--include/asm-m32r/page.h3
-rw-r--r--include/asm-m32r/ptrace.h4
-rw-r--r--include/asm-m32r/signal.h1
-rw-r--r--include/asm-m32r/unistd.h4
-rw-r--r--include/asm-m32r/user.h1
-rw-r--r--include/asm-m68knommu/page.h7
-rw-r--r--include/asm-s390/Kbuild2
-rw-r--r--include/asm-sh/page.h3
-rw-r--r--include/asm-sh/ptrace.h2
-rw-r--r--include/asm-sh64/page.h3
-rw-r--r--include/asm-sh64/shmparam.h16
-rw-r--r--include/asm-sh64/signal.h1
-rw-r--r--include/asm-sh64/user.h1
-rw-r--r--include/asm-sparc/Kbuild7
-rw-r--r--include/asm-sparc/page.h8
-rw-r--r--include/asm-sparc64/Kbuild5
-rw-r--r--include/asm-sparc64/page.h9
-rw-r--r--include/asm-sparc64/shmparam.h2
-rw-r--r--include/asm-um/Kbuild1
-rw-r--r--include/asm-v850/page.h7
-rw-r--r--include/asm-v850/param.h4
-rw-r--r--include/linux/Kbuild3
-rw-r--r--include/linux/stddef.h2
-rw-r--r--scripts/Makefile.headersinst124
-rwxr-xr-xscripts/hdrcheck.sh2
39 files changed, 171 insertions, 142 deletions
diff --git a/Makefile b/Makefile
index fce530a66e33..7a06c16602fd 100644
--- a/Makefile
+++ b/Makefile
@@ -921,8 +921,20 @@ depend dep:
INSTALL_HDR_PATH=$(objtree)/usr
export INSTALL_HDR_PATH
+HDRARCHES=$(filter-out generic,$(patsubst $(srctree)/include/asm-%/Kbuild,%,$(wildcard $(srctree)/include/asm-*/Kbuild)))
+
+PHONY += headers_install_all
+headers_install_all: include/linux/version.h scripts_basic FORCE
+ $(Q)$(MAKE) $(build)=scripts scripts/unifdef
+ $(Q)for arch in $(HDRARCHES); do \
+ $(MAKE) ARCH=$$arch -f $(srctree)/scripts/Makefile.headersinst obj=include BIASMDIR=-bi-$$arch ;\
+ done
+
PHONY += headers_install
headers_install: include/linux/version.h scripts_basic FORCE
+ @if [ ! -r include/asm-$(ARCH)/Kbuild ]; then \
+ echo '*** Error: Headers not exportable for this architecture ($(ARCH))'; \
+ exit 1 ; fi
$(Q)$(MAKE) $(build)=scripts scripts/unifdef
$(Q)rm -rf $(INSTALL_HDR_PATH)/include
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.headersinst obj=include
@@ -1107,13 +1119,17 @@ help:
@echo ' cscope - Generate cscope index'
@echo ' kernelrelease - Output the release version string'
@echo ' kernelversion - Output the version stored in Makefile'
- @echo ' headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH'
+ @if [ -r include/asm-$(ARCH)/Kbuild ]; then \
+ echo ' headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH'; \
+ fi
@echo ' (default: $(INSTALL_HDR_PATH))'
@echo ''
@echo 'Static analysers'
@echo ' checkstack - Generate a list of stack hogs'
@echo ' namespacecheck - Name space analysis on compiled kernel'
- @echo ' headers_check - Sanity check on exported headers'
+ @if [ -r include/asm-$(ARCH)/Kbuild ]; then \
+ echo ' headers_check - Sanity check on exported headers'; \
+ fi
@echo ''
@echo 'Kernel packaging:'
@$(MAKE) $(build)=$(package-dir) help
diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c
index 22dc9c21201d..f2031314cb2b 100644
--- a/arch/sh/kernel/process.c
+++ b/arch/sh/kernel/process.c
@@ -26,6 +26,7 @@
#include <asm/uaccess.h>
#include <asm/mmu_context.h>
#include <asm/elf.h>
+#include <asm/ubc.h>
static int hlt_counter=0;
diff --git a/include/asm-arm/elf.h b/include/asm-arm/elf.h
index ae7baa6c73f7..17f0c656d272 100644
--- a/include/asm-arm/elf.h
+++ b/include/asm-arm/elf.h
@@ -8,9 +8,6 @@
#include <asm/ptrace.h>
#include <asm/user.h>
-#ifdef __KERNEL
-#include <asm/procinfo.h>
-#endif
typedef unsigned long elf_greg_t;
typedef unsigned long elf_freg_t[3];
@@ -32,11 +29,6 @@ typedef elf_greg_t elf_gregset_t[ELF_NGREG];
typedef struct user_fp elf_fpregset_t;
/*
- * This is used to ensure we don't load something for the wrong architecture.
- */
-#define elf_check_arch(x) ( ((x)->e_machine == EM_ARM) && (ELF_PROC_OK((x))) )
-
-/*
* These are used to set parameters in the core dumps.
*/
#define ELF_CLASS ELFCLASS32
@@ -47,6 +39,14 @@ typedef struct user_fp elf_fpregset_t;
#endif
#define ELF_ARCH EM_ARM
+#ifdef __KERNEL__
+#include <asm/procinfo.h>
+
+/*
+ * This is used to ensure we don't load something for the wrong architecture.
+ */
+#define elf_check_arch(x) ( ((x)->e_machine == EM_ARM) && (ELF_PROC_OK((x))) )
+
#define USE_ELF_CORE_DUMP
#define ELF_EXEC_PAGESIZE 4096
@@ -83,8 +83,6 @@ typedef struct user_fp elf_fpregset_t;
extern char elf_platform[];
#define ELF_PLATFORM (elf_platform)
-#ifdef __KERNEL__
-
/*
* 32-bit code is always OK. Some cpus can do 26-bit, some can't.
*/
diff --git a/include/asm-arm/page.h b/include/asm-arm/page.h
index b721270b9986..02bd3ee935b0 100644
--- a/include/asm-arm/page.h
+++ b/include/asm-arm/page.h
@@ -11,13 +11,13 @@
#define _ASMARM_PAGE_H
+#ifdef __KERNEL__
+
/* PAGE_SHIFT determines the page size */
#define PAGE_SHIFT 12
#define PAGE_SIZE (1UL << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE-1))
-#ifdef __KERNEL__
-
/* to align the pointer to the (next) page boundary */
#define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK)
diff --git a/include/asm-arm26/Kbuild b/include/asm-arm26/Kbuild
deleted file mode 100644
index c68e1680da01..000000000000
--- a/include/asm-arm26/Kbuild
+++ /dev/null
@@ -1 +0,0 @@
-include include/asm-generic/Kbuild.asm
diff --git a/include/asm-cris/Kbuild b/include/asm-cris/Kbuild
index c68e1680da01..14498d5a2f65 100644
--- a/include/asm-cris/Kbuild
+++ b/include/asm-cris/Kbuild
@@ -1 +1,5 @@
include include/asm-generic/Kbuild.asm
+
+header-y += arch-v10/ arch-v32/
+
+unifdef-y += rs485.h
diff --git a/include/asm-cris/arch-v10/Kbuild b/include/asm-cris/arch-v10/Kbuild
new file mode 100644
index 000000000000..d7f27dc0941a
--- /dev/null
+++ b/include/asm-cris/arch-v10/Kbuild
@@ -0,0 +1,2 @@
+header-y += ptrace.h
+header-y += user.h
diff --git a/include/asm-cris/arch-v32/Kbuild b/include/asm-cris/arch-v32/Kbuild
new file mode 100644
index 000000000000..d7f27dc0941a
--- /dev/null
+++ b/include/asm-cris/arch-v32/Kbuild
@@ -0,0 +1,2 @@
+header-y += ptrace.h
+header-y += user.h
diff --git a/include/asm-cris/byteorder.h b/include/asm-cris/byteorder.h
index a1a222adaa9f..0cd9db1cc888 100644
--- a/include/asm-cris/byteorder.h
+++ b/include/asm-cris/byteorder.h
@@ -3,14 +3,15 @@
#ifdef __GNUC__
+#ifdef __KERNEL__
#include <asm/arch/byteorder.h>
/* defines are necessary because the other files detect the presence
* of a defined __arch_swab32, not an inline
*/
-
#define __arch__swab32(x) ___arch__swab32(x)
#define __arch__swab16(x) ___arch__swab16(x)
+#endif /* __KERNEL__ */
#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
# define __BYTEORDER_HAS_U64__
diff --git a/include/asm-cris/elf.h b/include/asm-cris/elf.h
index 87a60bd8e667..96a40c1de57c 100644
--- a/include/asm-cris/elf.h
+++ b/include/asm-cris/elf.h
@@ -5,7 +5,6 @@
* ELF register definitions..
*/
-#include <asm/arch/elf.h>
#include <asm/user.h>
#define R_CRIS_NONE 0
@@ -46,6 +45,9 @@ typedef unsigned long elf_fpregset_t;
#define ELF_DATA ELFDATA2LSB
#define ELF_ARCH EM_CRIS
+#ifdef __KERNEL__
+#include <asm/arch/elf.h>
+
/* The master for these definitions is {binutils}/include/elf/cris.h: */
/* User symbols in this file have a leading underscore. */
#define EF_CRIS_UNDERSCORE 0x00000001
@@ -87,8 +89,8 @@ typedef unsigned long elf_fpregset_t;
#define ELF_PLATFORM (NULL)
-#ifdef __KERNEL__
#define SET_PERSONALITY(ex, ibcs2) set_personality((ibcs2)?PER_SVR4:PER_LINUX)
-#endif
+
+#endif /* __KERNEL__ */
#endif
diff --git a/include/asm-cris/page.h b/include/asm-cris/page.h
index 81832e9e157f..9f13c32552bf 100644
--- a/include/asm-cris/page.h
+++ b/include/asm-cris/page.h
@@ -1,6 +1,8 @@
#ifndef _CRIS_PAGE_H
#define _CRIS_PAGE_H
+#ifdef __KERNEL__
+
#include <asm/arch/page.h>
/* PAGE_SHIFT determines the page size */
@@ -12,8 +14,6 @@
#endif
#define PAGE_MASK (~(PAGE_SIZE-1))
-#ifdef __KERNEL__
-
#define clear_page(page) memset((void *)(page), 0, PAGE_SIZE)
#define copy_page(to,from) memcpy((void *)(to), (void *)(from), PAGE_SIZE)
@@ -73,10 +73,10 @@ typedef struct { unsigned long pgprot; } pgprot_t;
#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
-#endif /* __KERNEL__ */
-
#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
+#endif /* __KERNEL__ */
+
#endif /* _CRIS_PAGE_H */
diff --git a/include/asm-cris/posix_types.h b/include/asm-cris/posix_types.h
index 6d26fee4a614..7b9ed22ab5dd 100644
--- a/include/asm-cris/posix_types.h
+++ b/include/asm-cris/posix_types.h
@@ -6,8 +6,6 @@
#ifndef __ARCH_CRIS_POSIX_TYPES_H
#define __ARCH_CRIS_POSIX_TYPES_H
-#include <asm/bitops.h>
-
/*
* This file is generally used by user-level software, so you need to
* be a little careful about namespace pollution etc. Also, we cannot
@@ -53,9 +51,8 @@ typedef struct {
#endif /* !defined(__KERNEL__) && !defined(__USE_ALL) */
} __kernel_fsid_t;
-/* should this ifdef be here ? */
-
-#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
+#ifdef __KERNEL__
+#include <asm/bitops.h>
#undef __FD_SET
#define __FD_SET(fd,fdsetp) set_bit(fd, (void *)(fdsetp))
@@ -69,6 +66,6 @@ typedef struct {
#undef __FD_ZERO
#define __FD_ZERO(fdsetp) memset((void *)(fdsetp), 0, __FDSET_LONGS << 2)
-#endif /* defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2) */
+#endif /* __KERNEL__ */
#endif /* __ARCH_CRIS_POSIX_TYPES_H */
diff --git a/include/asm-cris/unistd.h b/include/asm-cris/unistd.h
index c2954e90aa24..7372efae0516 100644
--- a/include/asm-cris/unistd.h
+++ b/include/asm-cris/unistd.h
@@ -1,8 +1,6 @@
#ifndef _ASM_CRIS_UNISTD_H_
#define _ASM_CRIS_UNISTD_H_
-#include <asm/arch/unistd.h>
-
/*
* This file contains the system call numbers, and stub macros for libc.
*/
@@ -299,6 +297,7 @@
#define NR_syscalls 289
+#include <asm/arch/unistd.h>
#define __ARCH_WANT_IPC_PARSE_VERSION
#define __ARCH_WANT_OLD_READDIR
@@ -322,7 +321,6 @@
#define __ARCH_WANT_SYS_SIGPENDING
#define __ARCH_WANT_SYS_SIGPROCMASK
#define __ARCH_WANT_SYS_RT_SIGACTION
-#endif
#ifdef __KERNEL_SYSCALLS__
diff --git a/include/asm-h8300/page.h b/include/asm-h8300/page.h
index d673077d2fd6..3b4f2903f91d 100644
--- a/include/asm-h8300/page.h
+++ b/include/asm-h8300/page.h
@@ -1,6 +1,7 @@
#ifndef _H8300_PAGE_H
#define _H8300_PAGE_H
+#ifdef __KERNEL__
/* PAGE_SHIFT determines the page size */
@@ -8,8 +9,6 @@
#define PAGE_SIZE (1UL << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE-1))
-#ifdef __KERNEL__
-
#include <asm/setup.h>
#ifndef __ASSEMBLY__
@@ -76,9 +75,9 @@ extern unsigned long memory_end;
#endif /* __ASSEMBLY__ */
-#endif /* __KERNEL__ */
-
#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
+#endif /* __KERNEL__ */
+
#endif /* _H8300_PAGE_H */
diff --git a/include/asm-m32r/page.h b/include/asm-m32r/page.h
index 9688be003620..404a4c24007b 100644
--- a/include/asm-m32r/page.h
+++ b/include/asm-m32r/page.h
@@ -87,10 +87,9 @@ typedef struct { unsigned long pgprot; } pgprot_t;
#define devmem_is_allowed(x) 1
-#endif /* __KERNEL__ */
-
#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
+#endif /* __KERNEL__ */
#endif /* _ASM_M32R_PAGE_H */
diff --git a/include/asm-m32r/ptrace.h b/include/asm-m32r/ptrace.h
index a07fa90314d2..2d2a6c97331e 100644
--- a/include/asm-m32r/ptrace.h
+++ b/include/asm-m32r/ptrace.h
@@ -12,8 +12,6 @@
* Copyright (C) 2001-2002, 2004 Hirokazu Takata <takata at linux-m32r.org>
*/
-#include <asm/m32r.h> /* M32R_PSW_BSM, M32R_PSW_BPM */
-
/* 0 - 13 are integer registers (general purpose registers). */
#define PT_R4 0
#define PT_R5 1
@@ -140,6 +138,8 @@ struct pt_regs {
#ifdef __KERNEL__
+#include <asm/m32r.h> /* M32R_PSW_BSM, M32R_PSW_BPM */
+
#define __ARCH_SYS_PTRACE 1
#if defined(CONFIG_ISA_M32R2) || defined(CONFIG_CHIP_VDEC2)
diff --git a/include/asm-m32r/signal.h b/include/asm-m32r/signal.h
index e750045164d4..65423bed32b1 100644
--- a/include/asm-m32r/signal.h
+++ b/include/asm-m32r/signal.h
@@ -6,7 +6,6 @@
/* orig : i386 2.4.18 */
#include <linux/types.h>
-#include <linux/linkage.h>
#include <linux/time.h>
#include <linux/compiler.h>
diff --git a/include/asm-m32r/unistd.h b/include/asm-m32r/unistd.h
index cc31790d8077..89f376e6229f 100644
--- a/include/asm-m32r/unistd.h
+++ b/include/asm-m32r/unistd.h
@@ -3,8 +3,6 @@
/* $Id$ */
-#include <asm/syscall.h> /* SYSCALL_* */
-
/*
* This file contains the system call numbers.
*/
@@ -303,6 +301,8 @@
* <asm-m32r/errno.h>
*/
+#include <asm/syscall.h> /* SYSCALL_* */
+
#define __syscall_return(type, res) \
do { \
if ((unsigned long)(res) >= (unsigned long)(-(124 + 1))) { \
diff --git a/include/asm-m32r/user.h b/include/asm-m32r/user.h
index 2ffd0c65a782..1ad4ded8483b 100644
--- a/include/asm-m32r/user.h
+++ b/include/asm-m32r/user.h
@@ -8,7 +8,6 @@
*/
#include <linux/types.h>
-#include <asm/processor.h>
#include <asm/ptrace.h>
#include <asm/page.h>
diff --git a/include/asm-m68knommu/page.h b/include/asm-m68knommu/page.h
index a22bf5a88160..2a1b8bdcb29c 100644
--- a/include/asm-m68knommu/page.h
+++ b/include/asm-m68knommu/page.h
@@ -1,6 +1,7 @@
#ifndef _M68KNOMMU_PAGE_H
#define _M68KNOMMU_PAGE_H
+#ifdef __KERNEL__
/* PAGE_SHIFT determines the page size */
@@ -8,8 +9,6 @@
#define PAGE_SIZE (1UL << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE-1))
-#ifdef __KERNEL__
-
#include <asm/setup.h>
#ifndef __ASSEMBLY__
@@ -76,8 +75,8 @@ extern unsigned long memory_end;
#endif /* __ASSEMBLY__ */
-#endif /* __KERNEL__ */
-
#include <asm-generic/page.h>
+#endif /* __KERNEL__ */
+
#endif /* _M68KNOMMU_PAGE_H */
diff --git a/include/asm-s390/Kbuild b/include/asm-s390/Kbuild
index 088969d55e72..e92b429d2be1 100644
--- a/include/asm-s390/Kbuild
+++ b/include/asm-s390/Kbuild
@@ -6,7 +6,7 @@ header-y += qeth.h
header-y += tape390.h
header-y += ucontext.h
header-y += vtoc.h
-header-y += z90crypt.h
+header-y += zcrypt.h
unifdef-y += cmb.h
unifdef-y += debug.h
diff --git a/include/asm-sh/page.h b/include/asm-sh/page.h
index 5a057b00f19a..6f7eb8a3aba5 100644
--- a/include/asm-sh/page.h
+++ b/include/asm-sh/page.h
@@ -112,9 +112,8 @@ typedef struct { unsigned long pgprot; } pgprot_t;
#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
-#endif /* __KERNEL__ */
-
#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
+#endif /* __KERNEL__ */
#endif /* __ASM_SH_PAGE_H */
diff --git a/include/asm-sh/ptrace.h b/include/asm-sh/ptrace.h
index 792fc35bd624..ed358a376e6e 100644
--- a/include/asm-sh/ptrace.h
+++ b/include/asm-sh/ptrace.h
@@ -1,8 +1,6 @@
#ifndef __ASM_SH_PTRACE_H
#define __ASM_SH_PTRACE_H
-#include <asm/ubc.h>
-
/*
* Copyright (C) 1999, 2000 Niibe Yutaka
*
diff --git a/include/asm-sh64/page.h b/include/asm-sh64/page.h
index 34fb34754ae6..472089aefc60 100644
--- a/include/asm-sh64/page.h
+++ b/include/asm-sh64/page.h
@@ -112,9 +112,8 @@ typedef struct { unsigned long pgprot; } pgprot_t;
#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
-#endif /* __KERNEL__ */
-
#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
+#endif /* __KERNEL__ */
#endif /* __ASM_SH64_PAGE_H */
diff --git a/include/asm-sh64/shmparam.h b/include/asm-sh64/shmparam.h
index d3a99a4dc0e3..1bb820c833ee 100644
--- a/include/asm-sh64/shmparam.h
+++ b/include/asm-sh64/shmparam.h
@@ -2,19 +2,11 @@
#define __ASM_SH64_SHMPARAM_H
/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * include/asm-sh64/shmparam.h
- *
- * Copyright (C) 2000, 2001 Paolo Alberelli
- *
+ * Set this to a sensible safe default, we'll work out the specifics for the
+ * align mask from the cache descriptor at run-time.
*/
+#define SHMLBA 0x4000
-#include <asm/cache.h>
-
-/* attach addr a multiple of this */
-#define SHMLBA (cpu_data->dcache.sets * L1_CACHE_BYTES)
+#define __ARCH_FORCE_SHMLBA
#endif /* __ASM_SH64_SHMPARAM_H */
diff --git a/include/asm-sh64/signal.h b/include/asm-sh64/signal.h
index a5a28203cb3b..244e134730d9 100644
--- a/include/asm-sh64/signal.h
+++ b/include/asm-sh64/signal.h
@@ -13,7 +13,6 @@
*/
#include <linux/types.h>
-#include <asm/processor.h>
/* Avoid too many header ordering problems. */
struct siginfo;
diff --git a/include/asm-sh64/user.h b/include/asm-sh64/user.h
index 8f32f39a8ca9..eb3b33edd73e 100644
--- a/include/asm-sh64/user.h
+++ b/include/asm-sh64/user.h
@@ -13,7 +13,6 @@
*/
#include <linux/types.h>
-#include <asm/processor.h>
#include <asm/ptrace.h>
#include <asm/page.h>
diff --git a/include/asm-sparc/Kbuild b/include/asm-sparc/Kbuild
index b22b67a64ecc..c6a55cf0d337 100644
--- a/include/asm-sparc/Kbuild
+++ b/include/asm-sparc/Kbuild
@@ -2,20 +2,13 @@ include include/asm-generic/Kbuild.asm
header-y += apc.h
header-y += asi.h
-header-y += auxio.h
header-y += bpp.h
-header-y += head.h
-header-y += ipc.h
header-y += jsflash.h
header-y += openpromio.h
-header-y += pbm.h
header-y += pconf.h
-header-y += pgtsun4.h
header-y += reg.h
header-y += traps.h
-header-y += turbosparc.h
header-y += vfc_ioctls.h
-header-y += winmacro.h
unifdef-y += fbio.h
unifdef-y += perfctr.h
diff --git a/include/asm-sparc/page.h b/include/asm-sparc/page.h
index 5bab8a7c25ce..ff57648eb8f8 100644
--- a/include/asm-sparc/page.h
+++ b/include/asm-sparc/page.h
@@ -8,6 +8,8 @@
#ifndef _SPARC_PAGE_H
#define _SPARC_PAGE_H
+#ifdef __KERNEL__
+
#ifdef CONFIG_SUN4
#define PAGE_SHIFT 13
#else
@@ -21,8 +23,6 @@
#endif
#define PAGE_MASK (~(PAGE_SIZE-1))
-#ifdef __KERNEL__
-
#include <asm/btfixup.h>
#ifndef __ASSEMBLY__
@@ -160,9 +160,9 @@ extern unsigned long pfn_base;
#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
-#endif /* __KERNEL__ */
-
#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
+#endif /* __KERNEL__ */
+
#endif /* _SPARC_PAGE_H */
diff --git a/include/asm-sparc64/Kbuild b/include/asm-sparc64/Kbuild
index 4b59ce46cc2d..a7f44408c93b 100644
--- a/include/asm-sparc64/Kbuild
+++ b/include/asm-sparc64/Kbuild
@@ -8,15 +8,12 @@ header-y += apb.h
header-y += asi.h
header-y += bbc.h
header-y += bpp.h
+header-y += const.h
header-y += display7seg.h
header-y += envctrl.h
-header-y += floppy.h
header-y += ipc.h
-header-y += kdebug.h
-header-y += mostek.h
header-y += openprom.h
header-y += openpromio.h
-header-y += parport.h
header-y += pconf.h
header-y += psrcompat.h
header-y += pstate.h
diff --git a/include/asm-sparc64/page.h b/include/asm-sparc64/page.h
index fdf0ceb76028..ff736eafa64d 100644
--- a/include/asm-sparc64/page.h
+++ b/include/asm-sparc64/page.h
@@ -3,6 +3,8 @@
#ifndef _SPARC64_PAGE_H
#define _SPARC64_PAGE_H
+#ifdef __KERNEL__
+
#include <asm/const.h>
#if defined(CONFIG_SPARC64_PAGE_SIZE_8KB)
@@ -27,8 +29,6 @@
#define DCACHE_ALIASING_POSSIBLE
#endif
-#ifdef __KERNEL__
-
#if defined(CONFIG_HUGETLB_PAGE_SIZE_4MB)
#define HPAGE_SHIFT 22
#elif defined(CONFIG_HUGETLB_PAGE_SIZE_512K)
@@ -141,8 +141,7 @@ typedef unsigned long pgprot_t;
#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
-#endif /* !(__KERNEL__) */
-
#include <asm-generic/page.h>
-#endif /* !(_SPARC64_PAGE_H) */
+#endif /* __KERNEL__ */
+#endif /* _SPARC64_PAGE_H */
diff --git a/include/asm-sparc64/shmparam.h b/include/asm-sparc64/shmparam.h
index 8c66fded8a32..911d0427de6d 100644
--- a/include/asm-sparc64/shmparam.h
+++ b/include/asm-sparc64/shmparam.h
@@ -1,6 +1,7 @@
/* $Id: shmparam.h,v 1.5 2001/09/24 21:17:57 kanoj Exp $ */
#ifndef _ASMSPARC64_SHMPARAM_H
#define _ASMSPARC64_SHMPARAM_H
+#ifdef __KERNEL__
#include <asm/spitfire.h>
@@ -8,4 +9,5 @@
/* attach addr a multiple of this */
#define SHMLBA ((PAGE_SIZE > L1DCACHE_SIZE) ? PAGE_SIZE : L1DCACHE_SIZE)
+#endif /* __KERNEL__ */
#endif /* _ASMSPARC64_SHMPARAM_H */
diff --git a/include/asm-um/Kbuild b/include/asm-um/Kbuild
deleted file mode 100644
index c68e1680da01..000000000000
--- a/include/asm-um/Kbuild
+++ /dev/null
@@ -1 +0,0 @@
-include include/asm-generic/Kbuild.asm
diff --git a/include/asm-v850/page.h b/include/asm-v850/page.h
index ad03c46a1f92..d693ffb1364d 100644
--- a/include/asm-v850/page.h
+++ b/include/asm-v850/page.h
@@ -14,6 +14,8 @@
#ifndef __V850_PAGE_H__
#define __V850_PAGE_H__
+#ifdef __KERNEL__
+
#include <asm/machdep.h>
@@ -32,7 +34,6 @@
#endif
-#ifdef __KERNEL__
#ifndef __ASSEMBLY__
#define STRICT_MM_TYPECHECKS
@@ -122,9 +123,9 @@ typedef unsigned long pgprot_t;
#define __va(x) ((void *)__phys_to_virt ((unsigned long)(x)))
-#endif /* KERNEL */
-
#include <asm-generic/memory_model.h>
#include <asm-generic/page.h>
+#endif /* KERNEL */
+
#endif /* __V850_PAGE_H__ */
diff --git a/include/asm-v850/param.h b/include/asm-v850/param.h
index 8d796e4bff52..3c65bd573782 100644
--- a/include/asm-v850/param.h
+++ b/include/asm-v850/param.h
@@ -14,8 +14,6 @@
#ifndef __V850_PARAM_H__
#define __V850_PARAM_H__
-#include <asm/machdep.h> /* For HZ */
-
#define EXEC_PAGESIZE 4096
#ifndef NOGROUP
@@ -25,6 +23,8 @@
#define MAXHOSTNAMELEN 64 /* max length of hostname */
#ifdef __KERNEL__
+#include <asm/machdep.h> /* For HZ */
+
# define USER_HZ 100
# define CLOCKS_PER_SEC USER_HZ
#endif
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index 67383605f2e5..1df2ac30a4d2 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -141,7 +141,6 @@ header-y += snmp.h
header-y += sockios.h
header-y += som.h
header-y += sound.h
-header-y += stddef.h
header-y += synclink.h
header-y += telephony.h
header-y += termios.h
@@ -267,7 +266,6 @@ unifdef-y += netfilter_decnet.h
unifdef-y += netfilter.h
unifdef-y += netfilter_ipv4.h
unifdef-y += netfilter_ipv6.h
-unifdef-y += netfilter_logging.h
unifdef-y += net.h
unifdef-y += netlink.h
unifdef-y += nfs3.h
@@ -316,6 +314,7 @@ unifdef-y += sonet.h
unifdef-y += sonypi.h
unifdef-y += soundcard.h
unifdef-y += stat.h
+unifdef-y += stddef.h
unifdef-y += sysctl.h
unifdef-y += tcp.h
unifdef-y += time.h
diff --git a/include/linux/stddef.h b/include/linux/stddef.h
index b3a2cadf90f2..ea65dfb60cd8 100644
--- a/include/linux/stddef.h
+++ b/include/linux/stddef.h
@@ -10,11 +10,13 @@
#define NULL ((void *)0)
#endif
+#ifdef __KERNEL__
#undef offsetof
#ifdef __compiler_offsetof
#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)
#else
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
#endif
+#endif /* __KERNEL__ */
#endif
diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst
index 8c02d2df4278..cac8f21a3392 100644
--- a/scripts/Makefile.headersinst
+++ b/scripts/Makefile.headersinst
@@ -23,30 +23,30 @@ HDRSED := sed -e "s/ inline / __inline__ /g" \
_dst := $(if $(dst),$(dst),$(obj))
-.PHONY: __headersinst
-__headersinst:
-
-
ifeq (,$(patsubst include/asm/%,,$(obj)/))
# For producing the generated stuff in include/asm for biarch builds, include
# both sets of Kbuild files; we'll generate anything which is mentioned in
# _either_ arch, and recurse into subdirectories which are mentioned in either
# arch. Since some directories may exist in one but not the other, we must
-# use '-include'.
+# use $(wildcard...).
GENASM := 1
archasm := $(subst include/asm,asm-$(ARCH),$(obj))
altarchasm := $(subst include/asm,asm-$(ALTARCH),$(obj))
--include $(srctree)/include/$(archasm)/Kbuild
--include $(srctree)/include/$(altarchasm)/Kbuild
+KBUILDFILES := $(wildcard $(srctree)/include/$(archasm)/Kbuild $(srctree)/include/$(altarchasm)/Kbuild)
else
-include $(srctree)/$(obj)/Kbuild
+KBUILDFILES := $(srctree)/$(obj)/Kbuild
endif
-include scripts/Kbuild.include
+include $(KBUILDFILES)
+
+include scripts/Kbuild.include
# If this is include/asm-$(ARCH) and there's no $(ALTARCH), then
# override $(_dst) so that we install to include/asm directly.
-ifeq ($(obj)$(ALTARCH),include/asm-$(ARCH))
+# Unless $(BIASMDIR) is set, in which case we're probably doing
+# a 'headers_install_all' build and we should keep the -$(ARCH)
+# in the directory name.
+ifeq ($(obj)$(ALTARCH),include/asm-$(ARCH)$(BIASMDIR))
_dst := include/asm
endif
@@ -56,6 +56,23 @@ subdir-y := $(patsubst %/,%,$(filter %/, $(header-y)))
header-y := $(filter-out %/, $(header-y))
header-y := $(filter-out $(unifdef-y),$(header-y))
+# stamp files for header checks
+check-y := $(patsubst %,.check.%,$(header-y) $(unifdef-y) $(objhdr-y))
+
+# Work out what needs to be removed
+oldheaders := $(patsubst $(INSTALL_HDR_PATH)/$(_dst)/%,%,$(wildcard $(INSTALL_HDR_PATH)/$(_dst)/*.h))
+unwanted := $(filter-out $(header-y) $(unifdef-y) $(objhdr-y),$(oldheaders))
+
+oldcheckstamps := $(patsubst $(INSTALL_HDR_PATH)/$(_dst)/%,%,$(wildcard $(INSTALL_HDR_PATH)/$(_dst)/.check.*.h))
+unwanted += $(filter-out $(check-y),$(oldcheckstamps))
+
+# Prefix them all with full paths to $(INSTALL_HDR_PATH)
+header-y := $(patsubst %,$(INSTALL_HDR_PATH)/$(_dst)/%,$(header-y))
+unifdef-y := $(patsubst %,$(INSTALL_HDR_PATH)/$(_dst)/%,$(unifdef-y))
+objhdr-y := $(patsubst %,$(INSTALL_HDR_PATH)/$(_dst)/%,$(objhdr-y))
+check-y := $(patsubst %,$(INSTALL_HDR_PATH)/$(_dst)/%,$(check-y))
+
+
ifdef ALTARCH
ifeq ($(obj),include/asm-$(ARCH))
altarch-y := altarch-dir
@@ -67,43 +84,47 @@ export ALTARCH
export ARCHDEF
export ALTARCHDEF
-quiet_cmd_o_hdr_install = INSTALL $(_dst)/$@
- cmd_o_hdr_install = cp $(objtree)/$(obj)/$@ $(INSTALL_HDR_PATH)/$(_dst)
+quiet_cmd_o_hdr_install = INSTALL $(patsubst $(INSTALL_HDR_PATH)/%,%,$@)
+ cmd_o_hdr_install = cp $(patsubst $(INSTALL_HDR_PATH)/$(_dst)/%,$(objtree)/$(obj)/%,$@) \
+ $(INSTALL_HDR_PATH)/$(_dst)
-quiet_cmd_headers_install = INSTALL $(_dst)/$@
- cmd_headers_install = $(HDRSED) $(srctree)/$(obj)/$@ \
- > $(INSTALL_HDR_PATH)/$(_dst)/$@
+quiet_cmd_headers_install = INSTALL $(patsubst $(INSTALL_HDR_PATH)/%,%,$@)
+ cmd_headers_install = $(HDRSED) $(patsubst $(INSTALL_HDR_PATH)/$(_dst)/%,$(srctree)/$(obj)/%,$@) \
+ > $@
-quiet_cmd_unifdef = UNIFDEF $(_dst)/$@
- cmd_unifdef = $(UNIFDEF) $(srctree)/$(obj)/$@ | $(HDRSED) \
- > $(INSTALL_HDR_PATH)/$(_dst)/$@ || :
+quiet_cmd_unifdef = UNIFDEF $(patsubst $(INSTALL_HDR_PATH)/%,%,$@)
+ cmd_unifdef = $(UNIFDEF) $(patsubst $(INSTALL_HDR_PATH)/$(_dst)/%,$(srctree)/$(obj)/%,$@) \
+ | $(HDRSED) > $@ || :
-quiet_cmd_check = CHECK $(_dst)/$@
+quiet_cmd_check = CHECK $(patsubst $(INSTALL_HDR_PATH)/$(_dst)/.check.%,$(_dst)/%,$@)
cmd_check = $(srctree)/scripts/hdrcheck.sh \
- $(INSTALL_HDR_PATH)/include \
- $(INSTALL_HDR_PATH)/$(_dst)/$@
+ $(INSTALL_HDR_PATH)/include $(subst /.check.,/,$@) $@
+
+quiet_cmd_remove = REMOVE $(_dst)/$@
+ cmd_remove = rm -f $(INSTALL_HDR_PATH)/$(_dst)/$@
-quiet_cmd_mkdir = MKDIR $@
- cmd_mkdir = mkdir -p $(INSTALL_HDR_PATH)/$@
+quiet_cmd_mkdir = MKDIR $(patsubst $(INSTALL_HDR_PATH)/%,%,$@)
+ cmd_mkdir = mkdir -p $@
-quiet_cmd_gen = GEN $(_dst)/$@
+quiet_cmd_gen = GEN $(patsubst $(INSTALL_HDR_PATH)/%,%,$@)
cmd_gen = \
-STUBDEF=__ASM_STUB_`echo $@ | tr a-z. A-Z_`; \
+FNAME=$(patsubst $(INSTALL_HDR_PATH)/$(_dst)/%,%,$@) \
+STUBDEF=__ASM_STUB_`echo $$FNAME | tr a-z. A-Z_`; \
(echo "/* File autogenerated by 'make headers_install' */" ; \
echo "\#ifndef $$STUBDEF" ; \
echo "\#define $$STUBDEF" ; \
echo "\# if $(ARCHDEF)" ; \
-if [ -r $(INSTALL_HDR_PATH)/include/$(archasm)/$@ ]; then \
- echo "\# include <$(archasm)/$@>" ; \
+if [ -r $(subst /$(_dst)/,/include/$(archasm)/,$@) ]; then \
+ echo "\# include <$(archasm)/$$FNAME>" ; \
else \
- echo "\# error $(archasm)/$@ does not exist in" \
+ echo "\# error $(archasm)/$$FNAME does not exist in" \
"the $(ARCH) architecture" ; \
fi ; \
echo "\# elif $(ALTARCHDEF)" ; \
-if [ -r $(INSTALL_HDR_PATH)/include/$(altarchasm)/$@ ]; then \
- echo "\# include <$(altarchasm)/$@>" ; \
+if [ -r $(subst /$(_dst)/,/include/$(altarchasm)/,$@) ]; then \
+ echo "\# include <$(altarchasm)/$$FNAME>" ; \
else \
- echo "\# error $(altarchasm)/$@ does not exist in" \
+ echo "\# error $(altarchasm)/$$FNAME does not exist in" \
"the $(ALTARCH) architecture" ; \
fi ; \
echo "\# else" ; \
@@ -111,37 +132,49 @@ echo "\# warning This machine appears to be" \
"neither $(ARCH) nor $(ALTARCH)." ; \
echo "\# endif" ; \
echo "\#endif /* $$STUBDEF */" ; \
-) > $(INSTALL_HDR_PATH)/$(_dst)/$@
+) > $@
-__headersinst: $(subdir-y) $(header-y) $(unifdef-y) $(altarch-y) $(objhdr-y)
-
-.PHONY: $(header-y) $(unifdef-y) $(subdir-y)
+.PHONY: __headersinst __headerscheck
ifdef HDRCHECK
-# Rules for checking headers
-$(objhdr-y) $(header-y) $(unifdef-y):
+__headerscheck: $(subdir-y) $(check-y)
+ @true
+
+$(check-y) : $(INSTALL_HDR_PATH)/$(_dst)/.check.%.h : $(INSTALL_HDR_PATH)/$(_dst)/%.h
$(call cmd,check)
+
+# Other dependencies for $(check-y)
+-include /dev/null $(check-y)
+
+# ... but leave $(check-y) as .PHONY for now until those deps are actually correct.
+.PHONY: $(check-y)
+
else
# Rules for installing headers
+__headersinst: $(subdir-y) $(header-y) $(unifdef-y) $(altarch-y) $(objhdr-y)
+ @true
-$(objhdr-y) $(subdir-y) $(header-y) $(unifdef-y): $(_dst)
+$(objhdr-y) $(subdir-y) $(header-y) $(unifdef-y): | $(INSTALL_HDR_PATH)/$(_dst) $(unwanted)
-.PHONY: $(_dst)
-$(_dst):
+$(INSTALL_HDR_PATH)/$(_dst):
$(call cmd,mkdir)
+.PHONY: $(unwanted)
+$(unwanted):
+ $(call cmd,remove)
+
ifdef GENASM
-$(objhdr-y) $(header-y) $(unifdef-y):
+$(objhdr-y) $(header-y) $(unifdef-y): $(KBUILDFILES)
$(call cmd,gen)
else
-$(objhdr-y):
+$(objhdr-y) : $(INSTALL_HDR_PATH)/$(_dst)/%.h: $(srctree)/$(obj)/%.h $(KBUILDFILES)
$(call cmd,o_hdr_install)
-$(header-y):
+$(header-y) : $(INSTALL_HDR_PATH)/$(_dst)/%.h: $(srctree)/$(obj)/%.h $(KBUILDFILES)
$(call cmd,headers_install)
-$(unifdef-y):
+$(unifdef-y) : $(INSTALL_HDR_PATH)/$(_dst)/%.h: $(srctree)/$(obj)/%.h $(KBUILDFILES)
$(call cmd,unifdef)
endif
endif
@@ -153,8 +186,9 @@ hdrinst := -rR -f $(srctree)/scripts/Makefile.headersinst obj
# for their existence.
altarch-dir: $(subdir-y) $(header-y) $(unifdef-y) $(objhdr-y)
$(Q)$(MAKE) $(hdrinst)=include/asm-$(ALTARCH) dst=include/asm-$(ALTARCH)
- $(Q)$(MAKE) $(hdrinst)=include/asm dst=include/asm
+ $(Q)$(MAKE) $(hdrinst)=include/asm dst=include/asm$(BIASMDIR)
# Recursion
+.PHONY: $(subdir-y)
$(subdir-y):
$(Q)$(MAKE) $(hdrinst)=$(obj)/$@ dst=$(_dst)/$@ rel=../$(rel)
diff --git a/scripts/hdrcheck.sh b/scripts/hdrcheck.sh
index b5ca35aa1741..31598584f871 100755
--- a/scripts/hdrcheck.sh
+++ b/scripts/hdrcheck.sh
@@ -6,3 +6,5 @@ for FILE in `grep '^[ \t]*#[ \t]*include[ \t]*<' $2 | cut -f2 -d\< | cut -f1 -d\
exit 1
fi
done
+# FIXME: List dependencies into $3
+touch $3