提交 ca5cd877 编写于 作者: A Al Viro 提交者: Linus Torvalds

x86 merge fallout: uml

Don't undef __i386__/__x86_64__ in uml anymore, make sure that (few) places
that required adjusting the ifdefs got those.
Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 2a397e82
...@@ -9,6 +9,7 @@ ELF_ARCH := $(SUBARCH) ...@@ -9,6 +9,7 @@ ELF_ARCH := $(SUBARCH)
ELF_FORMAT := elf32-$(SUBARCH) ELF_FORMAT := elf32-$(SUBARCH)
OBJCOPYFLAGS := -O binary -R .note -R .comment -S OBJCOPYFLAGS := -O binary -R .note -R .comment -S
HEADER_ARCH := x86 HEADER_ARCH := x86
CHECKFLAGS += -D__i386__
ifeq ("$(origin SUBARCH)", "command line") ifeq ("$(origin SUBARCH)", "command line")
ifneq ("$(shell uname -m | sed -e s/i.86/i386/)", "$(SUBARCH)") ifneq ("$(shell uname -m | sed -e s/i.86/i386/)", "$(SUBARCH)")
...@@ -26,8 +27,6 @@ AFLAGS += -DCONFIG_X86_32 ...@@ -26,8 +27,6 @@ AFLAGS += -DCONFIG_X86_32
CONFIG_X86_32 := y CONFIG_X86_32 := y
export CONFIG_X86_32 export CONFIG_X86_32
ARCH_KERNEL_DEFINES += -U__$(SUBARCH)__ -U$(SUBARCH)
# First of all, tune CFLAGS for the specific CPU. This actually sets cflags-y. # First of all, tune CFLAGS for the specific CPU. This actually sets cflags-y.
include $(srctree)/arch/i386/Makefile.cpu include $(srctree)/arch/i386/Makefile.cpu
......
...@@ -6,12 +6,9 @@ START := 0x60000000 ...@@ -6,12 +6,9 @@ START := 0x60000000
_extra_flags_ = -fno-builtin -m64 _extra_flags_ = -fno-builtin -m64
#We #undef __x86_64__ for kernelspace, not for userspace where
#it's needed for headers to work!
ARCH_KERNEL_DEFINES = -U__$(SUBARCH)__
KBUILD_CFLAGS += $(_extra_flags_) KBUILD_CFLAGS += $(_extra_flags_)
CHECKFLAGS += -m64 CHECKFLAGS += -m64 -D__x86_64__
KBUILD_AFLAGS += -m64 KBUILD_AFLAGS += -m64
LDFLAGS += -m elf_x86_64 LDFLAGS += -m elf_x86_64
KBUILD_CPPFLAGS += -m64 KBUILD_CPPFLAGS += -m64
......
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
*/ */
static inline int uncached_access(struct file *file, unsigned long addr) static inline int uncached_access(struct file *file, unsigned long addr)
{ {
#if defined(__i386__) #if defined(__i386__) && !defined(__arch_um__)
/* /*
* On the PPro and successors, the MTRRs are used to set * On the PPro and successors, the MTRRs are used to set
* memory types for physical addresses outside main memory, * memory types for physical addresses outside main memory,
...@@ -57,7 +57,7 @@ static inline int uncached_access(struct file *file, unsigned long addr) ...@@ -57,7 +57,7 @@ static inline int uncached_access(struct file *file, unsigned long addr)
test_bit(X86_FEATURE_CYRIX_ARR, boot_cpu_data.x86_capability) || test_bit(X86_FEATURE_CYRIX_ARR, boot_cpu_data.x86_capability) ||
test_bit(X86_FEATURE_CENTAUR_MCR, boot_cpu_data.x86_capability) ) test_bit(X86_FEATURE_CENTAUR_MCR, boot_cpu_data.x86_capability) )
&& addr >= __pa(high_memory); && addr >= __pa(high_memory);
#elif defined(__x86_64__) #elif defined(__x86_64__) && !defined(__arch_um__)
/* /*
* This is broken because it can generate memory type aliases, * This is broken because it can generate memory type aliases,
* which can cause cache corruptions * which can cause cache corruptions
......
...@@ -52,7 +52,7 @@ const struct raid6_calls * const raid6_algos[] = { ...@@ -52,7 +52,7 @@ const struct raid6_calls * const raid6_algos[] = {
&raid6_intx16, &raid6_intx16,
&raid6_intx32, &raid6_intx32,
#endif #endif
#if defined(__i386__) #if defined(__i386__) && !defined(__arch_um__)
&raid6_mmxx1, &raid6_mmxx1,
&raid6_mmxx2, &raid6_mmxx2,
&raid6_sse1x1, &raid6_sse1x1,
...@@ -60,7 +60,7 @@ const struct raid6_calls * const raid6_algos[] = { ...@@ -60,7 +60,7 @@ const struct raid6_calls * const raid6_algos[] = {
&raid6_sse2x1, &raid6_sse2x1,
&raid6_sse2x2, &raid6_sse2x2,
#endif #endif
#if defined(__x86_64__) #if defined(__x86_64__) && !defined(__arch_um__)
&raid6_sse2x1, &raid6_sse2x1,
&raid6_sse2x2, &raid6_sse2x2,
&raid6_sse2x4, &raid6_sse2x4,
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
* MMX implementation of RAID-6 syndrome functions * MMX implementation of RAID-6 syndrome functions
*/ */
#if defined(__i386__) #if defined(__i386__) && !defined(__arch_um__)
#include "raid6.h" #include "raid6.h"
#include "raid6x86.h" #include "raid6x86.h"
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
* worthwhile as a separate implementation. * worthwhile as a separate implementation.
*/ */
#if defined(__i386__) #if defined(__i386__) && !defined(__arch_um__)
#include "raid6.h" #include "raid6.h"
#include "raid6x86.h" #include "raid6x86.h"
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
* *
*/ */
#if defined(__i386__) || defined(__x86_64__) #if (defined(__i386__) || defined(__x86_64__)) && !defined(__arch_um__)
#include "raid6.h" #include "raid6.h"
#include "raid6x86.h" #include "raid6x86.h"
...@@ -161,7 +161,7 @@ const struct raid6_calls raid6_sse2x2 = { ...@@ -161,7 +161,7 @@ const struct raid6_calls raid6_sse2x2 = {
#endif #endif
#ifdef __x86_64__ #if defined(__x86_64__) && !defined(__arch_um__)
/* /*
* Unrolled-by-4 SSE2 implementation * Unrolled-by-4 SSE2 implementation
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
#ifndef LINUX_RAID_RAID6X86_H #ifndef LINUX_RAID_RAID6X86_H
#define LINUX_RAID_RAID6X86_H #define LINUX_RAID_RAID6X86_H
#if defined(__i386__) || defined(__x86_64__) #if (defined(__i386__) || defined(__x86_64__)) && !defined(__arch_um__)
#ifdef __KERNEL__ /* Real code */ #ifdef __KERNEL__ /* Real code */
......
...@@ -14,7 +14,6 @@ extern int um_execve(const char *file, char *const argv[], char *const env[]); ...@@ -14,7 +14,6 @@ extern int um_execve(const char *file, char *const argv[], char *const env[]);
#ifdef __KERNEL__ #ifdef __KERNEL__
/* We get __ARCH_WANT_OLD_STAT and __ARCH_WANT_STAT64 from the base arch */ /* We get __ARCH_WANT_OLD_STAT and __ARCH_WANT_STAT64 from the base arch */
#define __ARCH_WANT_IPC_PARSE_VERSION
#define __ARCH_WANT_OLD_READDIR #define __ARCH_WANT_OLD_READDIR
#define __ARCH_WANT_SYS_ALARM #define __ARCH_WANT_SYS_ALARM
#define __ARCH_WANT_SYS_GETHOSTNAME #define __ARCH_WANT_SYS_GETHOSTNAME
......
...@@ -32,18 +32,13 @@ ...@@ -32,18 +32,13 @@
* On x86-64 make the 64bit structure have the same alignment as the * On x86-64 make the 64bit structure have the same alignment as the
* 32bit structure. This makes 32bit emulation easier. * 32bit structure. This makes 32bit emulation easier.
* *
* UML/x86_64 needs the same packing as x86_64 - UML + UML_X86 + * UML/x86_64 needs the same packing as x86_64
* 64_BIT adds up to UML/x86_64.
*/ */
#ifdef __x86_64__ #ifdef __x86_64__
#define EPOLL_PACKED __attribute__((packed)) #define EPOLL_PACKED __attribute__((packed))
#else #else
#if defined(CONFIG_UML) && defined(CONFIG_UML_X86) && defined(CONFIG_64BIT)
#define EPOLL_PACKED __attribute__((packed))
#else
#define EPOLL_PACKED #define EPOLL_PACKED
#endif #endif
#endif
struct epoll_event { struct epoll_event {
__u32 events; __u32 events;
......
...@@ -732,7 +732,7 @@ static void print_fatal_signal(struct pt_regs *regs, int signr) ...@@ -732,7 +732,7 @@ static void print_fatal_signal(struct pt_regs *regs, int signr)
printk("%s/%d: potentially unexpected fatal signal %d.\n", printk("%s/%d: potentially unexpected fatal signal %d.\n",
current->comm, task_pid_nr(current), signr); current->comm, task_pid_nr(current), signr);
#ifdef __i386__ #if defined(__i386__) && !defined(__arch_um__)
printk("code at %08lx: ", regs->eip); printk("code at %08lx: ", regs->eip);
{ {
int i; int i;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册