From: Jeff Dike <jdike@addtoit.com>
To: Balbir Singh <balbir@linux.vnet.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [x86 patch] Fix UML signal.h build errors
Date: Thu, 25 Oct 2007 11:05:41 -0400 [thread overview]
Message-ID: <20071025150541.GB5968@c2.user-mode-linux.org> (raw)
In-Reply-To: <20071025130022.8720.77346.sendpatchset@balbir-laptop>
On Thu, Oct 25, 2007 at 06:30:22PM +0530, Balbir Singh wrote:
> Fix build errors seen in UML.
Al fixed these already.
FWIW, below is a rolled-up combo patch which make 2.6.24-rc1 UML build.
It includes Al's build fixes, Wang Cong's driver fix, and a declaration
mismatch in sched.c.
Jeff
--
Work email - jdike at linux dot intel dot com
Index: linux-2.6.17/arch/um/Makefile
===================================================================
--- linux-2.6.17.orig/arch/um/Makefile 2007-10-24 10:04:50.000000000 -0400
+++ linux-2.6.17/arch/um/Makefile 2007-10-24 10:19:58.000000000 -0400
@@ -70,9 +70,12 @@ include $(srctree)/$(ARCH_DIR)/Makefile-
# in KBUILD_CFLAGS. Otherwise, it would cause ld to complain about the two different
# errnos.
# These apply to kernelspace only.
+#
+# strip leading and trailing whitespace to make the USER_CFLAGS removal of these
+# defines more robust
-KERNEL_DEFINES = -Derrno=kernel_errno -Dsigprocmask=kernel_sigprocmask \
- -Dmktime=kernel_mktime $(ARCH_KERNEL_DEFINES)
+KERNEL_DEFINES = $(strip -Derrno=kernel_errno -Dsigprocmask=kernel_sigprocmask \
+ -Dmktime=kernel_mktime $(ARCH_KERNEL_DEFINES))
KBUILD_CFLAGS += $(KERNEL_DEFINES)
KBUILD_CFLAGS += $(call cc-option,-fno-unit-at-a-time,)
Index: linux-2.6.17/arch/um/Makefile-i386
===================================================================
--- linux-2.6.17.orig/arch/um/Makefile-i386 2007-10-24 10:04:50.000000000 -0400
+++ linux-2.6.17/arch/um/Makefile-i386 2007-10-24 10:16:51.000000000 -0400
@@ -9,6 +9,7 @@ ELF_ARCH := $(SUBARCH)
ELF_FORMAT := elf32-$(SUBARCH)
OBJCOPYFLAGS := -O binary -R .note -R .comment -S
HEADER_ARCH := x86
+CHECKFLAGS += -D__i386__
ifeq ("$(origin SUBARCH)", "command line")
ifneq ("$(shell uname -m | sed -e s/i.86/i386/)", "$(SUBARCH)")
@@ -26,8 +27,6 @@ AFLAGS += -DCONFIG_X86_32
CONFIG_X86_32 := y
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.
include $(srctree)/arch/i386/Makefile.cpu
Index: linux-2.6.17/arch/um/Makefile-x86_64
===================================================================
--- linux-2.6.17.orig/arch/um/Makefile-x86_64 2007-10-24 10:04:50.000000000 -0400
+++ linux-2.6.17/arch/um/Makefile-x86_64 2007-10-24 10:16:51.000000000 -0400
@@ -6,12 +6,9 @@ START := 0x60000000
_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_)
-CHECKFLAGS += -m64
+CHECKFLAGS += -m64 -D__x86_64__
KBUILD_AFLAGS += -m64
LDFLAGS += -m elf_x86_64
KBUILD_CPPFLAGS += -m64
Index: linux-2.6.17/arch/um/kernel/sysrq.c
===================================================================
--- linux-2.6.17.orig/arch/um/kernel/sysrq.c 2007-07-09 08:53:09.000000000 -0400
+++ linux-2.6.17/arch/um/kernel/sysrq.c 2007-10-24 10:16:51.000000000 -0400
@@ -8,6 +8,7 @@
#include "linux/module.h"
#include "linux/kallsyms.h"
#include "asm/page.h"
+#include "registers.h"
#include "asm/processor.h"
#include "sysrq.h"
Index: linux-2.6.17/drivers/char/mem.c
===================================================================
--- linux-2.6.17.orig/drivers/char/mem.c 2007-10-24 10:04:50.000000000 -0400
+++ linux-2.6.17/drivers/char/mem.c 2007-10-24 10:16:51.000000000 -0400
@@ -41,7 +41,7 @@
*/
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
* memory types for physical addresses outside main memory,
@@ -57,7 +57,7 @@ static inline int uncached_access(struct
test_bit(X86_FEATURE_CYRIX_ARR, boot_cpu_data.x86_capability) ||
test_bit(X86_FEATURE_CENTAUR_MCR, boot_cpu_data.x86_capability) )
&& 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,
* which can cause cache corruptions
Index: linux-2.6.17/drivers/md/raid6algos.c
===================================================================
--- linux-2.6.17.orig/drivers/md/raid6algos.c 2006-10-20 13:41:41.000000000 -0400
+++ linux-2.6.17/drivers/md/raid6algos.c 2007-10-24 10:16:51.000000000 -0400
@@ -52,7 +52,7 @@ const struct raid6_calls * const raid6_a
&raid6_intx16,
&raid6_intx32,
#endif
-#if defined(__i386__)
+#if defined(__i386__) && !defined(__arch_um__)
&raid6_mmxx1,
&raid6_mmxx2,
&raid6_sse1x1,
@@ -60,7 +60,7 @@ const struct raid6_calls * const raid6_a
&raid6_sse2x1,
&raid6_sse2x2,
#endif
-#if defined(__x86_64__)
+#if defined(__x86_64__) && !defined(__arch_um__)
&raid6_sse2x1,
&raid6_sse2x2,
&raid6_sse2x4,
Index: linux-2.6.17/drivers/md/raid6mmx.c
===================================================================
--- linux-2.6.17.orig/drivers/md/raid6mmx.c 2007-04-26 17:03:01.000000000 -0400
+++ linux-2.6.17/drivers/md/raid6mmx.c 2007-10-24 10:16:51.000000000 -0400
@@ -16,7 +16,7 @@
* MMX implementation of RAID-6 syndrome functions
*/
-#if defined(__i386__)
+#if defined(__i386__) && !defined(__arch_um__)
#include "raid6.h"
#include "raid6x86.h"
Index: linux-2.6.17/drivers/md/raid6sse1.c
===================================================================
--- linux-2.6.17.orig/drivers/md/raid6sse1.c 2007-04-26 17:03:01.000000000 -0400
+++ linux-2.6.17/drivers/md/raid6sse1.c 2007-10-24 10:16:51.000000000 -0400
@@ -21,7 +21,7 @@
* worthwhile as a separate implementation.
*/
-#if defined(__i386__)
+#if defined(__i386__) && !defined(__arch_um__)
#include "raid6.h"
#include "raid6x86.h"
Index: linux-2.6.17/drivers/md/raid6sse2.c
===================================================================
--- linux-2.6.17.orig/drivers/md/raid6sse2.c 2007-04-26 17:03:01.000000000 -0400
+++ linux-2.6.17/drivers/md/raid6sse2.c 2007-10-24 10:16:51.000000000 -0400
@@ -17,7 +17,7 @@
*
*/
-#if defined(__i386__) || defined(__x86_64__)
+#if (defined(__i386__) || defined(__x86_64__)) && !defined(__arch_um__)
#include "raid6.h"
#include "raid6x86.h"
@@ -161,7 +161,7 @@ const struct raid6_calls raid6_sse2x2 =
#endif
-#ifdef __x86_64__
+#if defined(__x86_64__) && !defined(__arch_um__)
/*
* Unrolled-by-4 SSE2 implementation
Index: linux-2.6.17/drivers/md/raid6x86.h
===================================================================
--- linux-2.6.17.orig/drivers/md/raid6x86.h 2007-04-26 17:03:01.000000000 -0400
+++ linux-2.6.17/drivers/md/raid6x86.h 2007-10-24 10:16:51.000000000 -0400
@@ -19,7 +19,7 @@
#ifndef 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 */
Index: linux-2.6.17/include/asm-um/unistd.h
===================================================================
--- linux-2.6.17.orig/include/asm-um/unistd.h 2006-12-02 09:56:59.000000000 -0500
+++ linux-2.6.17/include/asm-um/unistd.h 2007-10-24 10:16:51.000000000 -0400
@@ -14,7 +14,6 @@ extern int um_execve(const char *file, c
#ifdef __KERNEL__
/* 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_SYS_ALARM
#define __ARCH_WANT_SYS_GETHOSTNAME
Index: linux-2.6.17/include/linux/eventpoll.h
===================================================================
--- linux-2.6.17.orig/include/linux/eventpoll.h 2007-04-26 17:03:16.000000000 -0400
+++ linux-2.6.17/include/linux/eventpoll.h 2007-10-24 10:16:51.000000000 -0400
@@ -32,18 +32,13 @@
* On x86-64 make the 64bit structure have the same alignment as the
* 32bit structure. This makes 32bit emulation easier.
*
- * UML/x86_64 needs the same packing as x86_64 - UML + UML_X86 +
- * 64_BIT adds up to UML/x86_64.
+ * UML/x86_64 needs the same packing as x86_64
*/
#ifdef __x86_64__
#define EPOLL_PACKED __attribute__((packed))
#else
-#if defined(CONFIG_UML) && defined(CONFIG_UML_X86) && defined(CONFIG_64BIT)
-#define EPOLL_PACKED __attribute__((packed))
-#else
#define EPOLL_PACKED
#endif
-#endif
struct epoll_event {
__u32 events;
Index: linux-2.6.17/kernel/signal.c
===================================================================
--- linux-2.6.17.orig/kernel/signal.c 2007-10-24 10:05:11.000000000 -0400
+++ linux-2.6.17/kernel/signal.c 2007-10-24 10:16:51.000000000 -0400
@@ -732,7 +732,7 @@ static void print_fatal_signal(struct pt
printk("%s/%d: potentially unexpected fatal signal %d.\n",
current->comm, task_pid_nr(current), signr);
-#ifdef __i386__
+#if defined(__i386__) && !defined(__arch_um__)
printk("code at %08lx: ", regs->eip);
{
int i;
Index: linux-2.6.17/kernel/sched.c
===================================================================
--- linux-2.6.17.orig/kernel/sched.c 2007-10-24 10:05:11.000000000 -0400
+++ linux-2.6.17/kernel/sched.c 2007-10-24 10:22:43.000000000 -0400
@@ -3897,7 +3897,7 @@ wait_for_completion_timeout(struct compl
}
EXPORT_SYMBOL(wait_for_completion_timeout);
-int __sched wait_for_completion_interruptible(struct completion *x)
+int fastcall __sched wait_for_completion_interruptible(struct completion *x)
{
long t = wait_for_common(x, MAX_SCHEDULE_TIMEOUT, TASK_INTERRUPTIBLE);
if (t == -ERESTARTSYS)
Index: linux-2.6.17/arch/um/drivers/ubd_kern.c
===================================================================
--- linux-2.6.17.orig/arch/um/drivers/ubd_kern.c 2007-10-24 10:04:50.000000000 -0400
+++ linux-2.6.17/arch/um/drivers/ubd_kern.c 2007-10-24 10:24:33.000000000 -0400
@@ -35,6 +35,7 @@
#include "linux/genhd.h"
#include "linux/spinlock.h"
#include "linux/platform_device.h"
+#include "linux/scatterlist.h"
#include "asm/segment.h"
#include "asm/uaccess.h"
#include "asm/irq.h"
next prev parent reply other threads:[~2007-10-25 15:06 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-25 13:00 [x86 patch] Fix UML signal.h build errors Balbir Singh
2007-10-25 15:05 ` Jeff Dike [this message]
2007-10-25 15:31 ` Balbir Singh
2007-10-27 3:13 ` Al Viro
2007-10-27 6:05 ` Balbir Singh
2007-10-27 6:38 ` Al Viro
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20071025150541.GB5968@c2.user-mode-linux.org \
--to=jdike@addtoit.com \
--cc=balbir@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.