lkml.org 
[lkml]   [2004]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH 2.6.10-rc3] Add missing __KERNEL__ (or other) protections
Hello.  As of 2.6.10-rc3, the following is needed to allow various
userland packages (sysvinit, dhcp, ppp, libcap, libpcap, lilo) to
compile as parts that userland needs (e.g. for ioctls) is in files with
stuff userland isn't allowed to see.

This adds __KERNEL__ around <linux/ata.h> and some defines
(<linux/ata.h> isn't needed by userland, and is unhappy right now).
sysvinit and some other packages need <linux/hdreg.h> for HDIO_DRIVE_CMD
and other IOCTL things. In <linux/types.h> we were unsafely typedef'ing
__le64/__be64 as __u64 only exists when __GNUC__ && !__STRICT_ANSI__
(causing libcap to fail, for example). Finally, <asm/atomic.h> provides
routines userland simply cannot use on all arches, but <linux/filter.h>
is needed by iputils for example. While not all arches put __KERNEL__
around their header, on MIPS including this header currently blows up
the build.

Signed-off-by: Tom Rini <trini@kernel.crashing.org>

Index: linux/include/linux/hdreg.h
===================================================================
--- linux.orig/include/linux/hdreg.h
+++ linux/include/linux/hdreg.h
@@ -1,6 +1,7 @@
#ifndef _LINUX_HDREG_H
#define _LINUX_HDREG_H

+#ifdef __KERNEL__
#include <linux/ata.h>

/*
@@ -57,7 +58,7 @@
#define IO 0x02
#define REL 0x04
#define TAG_MASK 0xf8
-
+#endif /* __KERNEL__ */

/*
* Command Header sizes for IOCTL commands
Index: linux/include/linux/types.h
===================================================================
--- linux.orig/include/linux/types.h
+++ linux/include/linux/types.h
@@ -157,8 +157,10 @@ typedef __u16 __bitwise __le16;
typedef __u16 __bitwise __be16;
typedef __u32 __bitwise __le32;
typedef __u32 __bitwise __be32;
+#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
typedef __u64 __bitwise __le64;
typedef __u64 __bitwise __be64;
+#endif

struct ustat {
__kernel_daddr_t f_tfree;
Index: linux/include/linux/filter.h
===================================================================
--- linux.orig/include/linux/filter.h
+++ linux/include/linux/filter.h
@@ -8,7 +8,9 @@
#include <linux/compiler.h>
#include <linux/types.h>

+#ifdef __KERNEL__
#include <asm/atomic.h>
+#endif

/*
* Current version of the filter code architecture.
--
Tom Rini
http://gate.crashing.org/~trini/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:08    [W:0.031 / U:0.508 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site