Commit 75da736f authored by David Woodhouse's avatar David Woodhouse Committed by Linus Torvalds
Browse files

[PATCH] Fix 'make headers_check' on x86_64



On Tue, 2006-09-12 at 17:44 +0100, David Woodhouse wrote:
> asm-x86_64/elf.h requires asm/processor.h, which does not exist
> asm-x86_64/signal.h requires linux/linkage.h, which does not exist
> asm-x86_64/unistd.h requires linux/linkage.h, which does not exist
> asm-x86_64/vsyscall.h requires linux/seqlock.h, which does not exist

Again, move stuff which shouldn't be visible inside (mostly already existing)
#ifdef __KERNEL__.

This fixes a bunch of mislabelled and unlabelled #endifs in unistd.h and also
cleans that up to conform with what's visible on other architectures, since
the minimal fix for the error reported about would have involved a more
intrusive patch, renesting other ifdefs.

Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent e5fa6d70
Loading
Loading
Loading
Loading
+11 −9
Original line number Original line Diff line number Diff line
@@ -7,8 +7,6 @@


#include <asm/ptrace.h>
#include <asm/ptrace.h>
#include <asm/user.h>
#include <asm/user.h>
#include <asm/processor.h>
#include <asm/compat.h>


/* x86-64 relocation types */
/* x86-64 relocation types */
#define R_X86_64_NONE		0	/* No reloc */
#define R_X86_64_NONE		0	/* No reloc */
@@ -38,12 +36,6 @@ typedef elf_greg_t elf_gregset_t[ELF_NGREG];


typedef struct user_i387_struct elf_fpregset_t;
typedef struct user_i387_struct 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_X86_64)

/*
/*
 * These are used to set parameters in the core dumps.
 * These are used to set parameters in the core dumps.
 */
 */
@@ -51,6 +43,17 @@ typedef struct user_i387_struct elf_fpregset_t;
#define ELF_DATA	ELFDATA2LSB
#define ELF_DATA	ELFDATA2LSB
#define ELF_ARCH	EM_X86_64
#define ELF_ARCH	EM_X86_64


#ifdef __KERNEL__
#include <asm/processor.h>
#include <asm/compat.h>

/*
 * This is used to ensure we don't load something for the wrong architecture.
 */
#define elf_check_arch(x) \
	((x)->e_machine == EM_X86_64)


/* SVR4/i386 ABI (pages 3-31, 3-32) says that when the program starts %edx
/* SVR4/i386 ABI (pages 3-31, 3-32) says that when the program starts %edx
   contains a pointer to a function which might be registered using `atexit'.
   contains a pointer to a function which might be registered using `atexit'.
   This provides a mean for the dynamic linker to call DT_FINI functions for
   This provides a mean for the dynamic linker to call DT_FINI functions for
@@ -141,7 +144,6 @@ typedef struct user_i387_struct elf_fpregset_t;
/* I'm not sure if we can use '-' here */
/* I'm not sure if we can use '-' here */
#define ELF_PLATFORM  ("x86_64")
#define ELF_PLATFORM  ("x86_64")


#ifdef __KERNEL__
extern void set_personality_64bit(void);
extern void set_personality_64bit(void);
#define SET_PERSONALITY(ex, ibcs2) set_personality_64bit()
#define SET_PERSONALITY(ex, ibcs2) set_personality_64bit()
/*
/*
+1 −1
Original line number Original line Diff line number Diff line
@@ -3,13 +3,13 @@


#ifndef __ASSEMBLY__
#ifndef __ASSEMBLY__
#include <linux/types.h>
#include <linux/types.h>
#include <linux/linkage.h>
#include <linux/time.h>
#include <linux/time.h>


/* Avoid too many header ordering problems.  */
/* Avoid too many header ordering problems.  */
struct siginfo;
struct siginfo;


#ifdef __KERNEL__
#ifdef __KERNEL__
#include <linux/linkage.h>
/* Most things should be clean enough to redefine this at will, if care
/* Most things should be clean enough to redefine this at will, if care
   is taken to make libc match.  */
   is taken to make libc match.  */


+8 −8
Original line number Original line Diff line number Diff line
@@ -620,6 +620,8 @@ __SYSCALL(__NR_vmsplice, sys_vmsplice)
#define __NR_move_pages		279
#define __NR_move_pages		279
__SYSCALL(__NR_move_pages, sys_move_pages)
__SYSCALL(__NR_move_pages, sys_move_pages)


#ifdef __KERNEL__

#define __NR_syscall_max __NR_move_pages
#define __NR_syscall_max __NR_move_pages


#ifndef __NO_STUBS
#ifndef __NO_STUBS
@@ -744,8 +746,6 @@ __syscall_return(type,__res); \


#else /* __KERNEL_SYSCALLS__ */
#else /* __KERNEL_SYSCALLS__ */


#ifdef __KERNEL__

#include <linux/syscalls.h>
#include <linux/syscalls.h>
#include <asm/ptrace.h>
#include <asm/ptrace.h>


@@ -821,8 +821,6 @@ asmlinkage long sys_fork(struct pt_regs regs);
asmlinkage long sys_vfork(struct pt_regs regs);
asmlinkage long sys_vfork(struct pt_regs regs);
asmlinkage long sys_pipe(int *fildes);
asmlinkage long sys_pipe(int *fildes);


#endif /* __KERNEL_SYSCALLS__ */

#ifndef __ASSEMBLY__
#ifndef __ASSEMBLY__


#include <linux/linkage.h>
#include <linux/linkage.h>
@@ -838,9 +836,9 @@ asmlinkage long sys_rt_sigaction(int sig,
				struct sigaction __user *oact,
				struct sigaction __user *oact,
				size_t sigsetsize);
				size_t sigsetsize);


#endif
#endif  /* __ASSEMBLY__ */


#endif
#endif /* __KERNEL_SYSCALLS__ */


/*
/*
 * "Conditional" syscalls
 * "Conditional" syscalls
@@ -850,6 +848,8 @@ asmlinkage long sys_rt_sigaction(int sig,
 */
 */
#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall")
#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall")


#endif
#endif /* __NO_STUBS */


#endif
#endif /* __KERNEL__ */

#endif /* _ASM_X86_64_UNISTD_H_ */
+1 −2
Original line number Original line Diff line number Diff line
#ifndef _ASM_X86_64_VSYSCALL_H_
#ifndef _ASM_X86_64_VSYSCALL_H_
#define _ASM_X86_64_VSYSCALL_H_
#define _ASM_X86_64_VSYSCALL_H_


#include <linux/seqlock.h>

enum vsyscall_num {
enum vsyscall_num {
	__NR_vgettimeofday,
	__NR_vgettimeofday,
	__NR_vtime,
	__NR_vtime,
@@ -14,6 +12,7 @@ enum vsyscall_num {
#define VSYSCALL_ADDR(vsyscall_nr) (VSYSCALL_START+VSYSCALL_SIZE*(vsyscall_nr))
#define VSYSCALL_ADDR(vsyscall_nr) (VSYSCALL_START+VSYSCALL_SIZE*(vsyscall_nr))


#ifdef __KERNEL__
#ifdef __KERNEL__
#include <linux/seqlock.h>


#define __section_vxtime __attribute__ ((unused, __section__ (".vxtime"), aligned(16)))
#define __section_vxtime __attribute__ ((unused, __section__ (".vxtime"), aligned(16)))
#define __section_wall_jiffies __attribute__ ((unused, __section__ (".wall_jiffies"), aligned(16)))
#define __section_wall_jiffies __attribute__ ((unused, __section__ (".wall_jiffies"), aligned(16)))