From f86eeb7b2b63b09019cd11f82e327a261c388e96 Mon Sep 17 00:00:00 2001 From: Tim Yamin Date: Sat, 13 Mar 2004 13:34:40 +0000 Subject: Version bump; also fixes bugs #40419 and #44265. --- sys-kernel/linux-headers/ChangeLog | 8 +- .../linux-headers/files/digest-linux-headers-2.6.4 | 1 + .../files/linux-headers-2.6.4-appCompat.patch | 606 +++++++++++++++++++++ .../linux-headers/linux-headers-2.6.4.ebuild | 138 +++++ 4 files changed, 752 insertions(+), 1 deletion(-) create mode 100644 sys-kernel/linux-headers/files/digest-linux-headers-2.6.4 create mode 100644 sys-kernel/linux-headers/files/linux-headers-2.6.4-appCompat.patch create mode 100644 sys-kernel/linux-headers/linux-headers-2.6.4.ebuild (limited to 'sys-kernel') diff --git a/sys-kernel/linux-headers/ChangeLog b/sys-kernel/linux-headers/ChangeLog index b2bb6e6cc61b..d048109782f3 100644 --- a/sys-kernel/linux-headers/ChangeLog +++ b/sys-kernel/linux-headers/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for sys-kernel/linux-headers # Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/linux-headers/ChangeLog,v 1.53 2004/03/09 00:10:11 weeve Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/linux-headers/ChangeLog,v 1.54 2004/03/13 13:34:40 plasmaroo Exp $ + +*linux-headers-2.6.4 (13 Mar 2004) + + 13 Mar 2004; linux-headers-2.6.4.ebuild, + files/linux-headers-2.6.4-appCompat.patch: + Version bump; also fixes bugs #40419 and #44265. 08 Mar 2004; Jason Wever linux-headers-2.4.23.ebuild: Added ~sparc keyword to help resolve bug #43233. diff --git a/sys-kernel/linux-headers/files/digest-linux-headers-2.6.4 b/sys-kernel/linux-headers/files/digest-linux-headers-2.6.4 new file mode 100644 index 000000000000..36ca57690dd1 --- /dev/null +++ b/sys-kernel/linux-headers/files/digest-linux-headers-2.6.4 @@ -0,0 +1 @@ +MD5 335f06eba1e5372ba38a0d2b253629bd linux-2.6.4.tar.bz2 34386912 diff --git a/sys-kernel/linux-headers/files/linux-headers-2.6.4-appCompat.patch b/sys-kernel/linux-headers/files/linux-headers-2.6.4-appCompat.patch new file mode 100644 index 000000000000..303618a5e5a0 --- /dev/null +++ b/sys-kernel/linux-headers/files/linux-headers-2.6.4-appCompat.patch @@ -0,0 +1,606 @@ +Authors: Tim Yamin + Mike Frysinger + Martin Schlemmer + +This patch neatens up the 2.6.0 headers for user-space usage and allows backward +compatibility on a variety of applications which are designed for 2.4 headers. + +diff -ur linux-2.6.0/include/linux/bitmap.h linux-2.6.0/include/linux.gentoo/bitmap.h +--- linux-2.6.0/include/linux/bitmap.h 2003-12-27 19:22:38.000000000 +0000 ++++ linux-2.6.0/include/linux.gentoo/bitmap.h 2003-12-27 19:19:31.000000000 +0000 +@@ -1,6 +1,7 @@ + #ifndef __LINUX_BITMAP_H + #define __LINUX_BITMAP_H + ++#ifdef __KERNEL__ + #ifndef __ASSEMBLY__ + + #include +@@ -155,5 +156,5 @@ + #endif + + #endif /* __ASSEMBLY__ */ +- ++#endif /* __KERNEL__ */ + #endif /* __LINUX_BITMAP_H */ +diff -ur linux-2.6.0/include/linux/buffer_head.h linux-2.6.0/include/linux.gentoo/buffer_head.h +--- linux-2.6.0/include/linux/buffer_head.h 2003-12-27 19:22:38.000000000 +0000 ++++ linux-2.6.0/include/linux.gentoo/buffer_head.h 2003-12-27 19:19:31.000000000 +0000 +@@ -34,6 +34,8 @@ + + #define MAX_BUF_PER_PAGE (PAGE_CACHE_SIZE / 512) + ++#ifdef __KERNEL__ ++ + struct page; + struct buffer_head; + struct address_space; +@@ -283,6 +285,8 @@ + __wait_on_buffer(bh); + } + ++#endif /* __KERNEL__ */ ++ + static inline void lock_buffer(struct buffer_head *bh) + { + while (test_set_buffer_locked(bh)) +diff -ur linux-2.6.0/include/linux/compiler-gcc2.h linux-2.6.0/include/linux.gentoo/compiler-gcc2.h +--- linux-2.6.0/include/linux/compiler-gcc2.h 2003-12-27 19:22:38.000000000 +0000 ++++ linux-2.6.0/include/linux.gentoo/compiler-gcc2.h 2003-12-27 19:19:31.000000000 +0000 +@@ -12,7 +12,9 @@ + # define __builtin_expect(x, expected_value) (x) + #endif + ++#ifndef __attribute_used__ + #define __attribute_used__ __attribute__((__unused__)) ++#endif + + /* + * The attribute `pure' is not implemented in GCC versions earlier +diff -ur linux-2.6.1/include/linux/cpumask.h linux-2.6.1/include/linux.gentoo/cpumask.h +--- linux-2.6.1/include/linux/cpumask.h 2003-12-27 19:22:38.000000000 +0000 ++++ linux-2.6.1/include/linux.gentoo/cpumask.h 2003-12-27 19:19:31.000000000 +0000 +@@ -1,6 +1,8 @@ + #ifndef __LINUX_CPUMASK_H + #define __LINUX_CPUMASK_H + ++#ifdef __KERNEL__ ++ + #include + #include + #include +@@ -68,4 +70,5 @@ + cpu < NR_CPUS; \ + cpu = next_online_cpu(cpu,map)) + ++#endif /* __KERNEL__ */ + #endif /* __LINUX_CPUMASK_H */ +diff -ur linux-2.6.0/include/linux/ext2_fs_sb.h linux-2.6.0/include/linux.gentoo/ext2_fs_sb.h +--- linux-2.6.0/include/linux/ext2_fs_sb.h 2003-12-27 19:22:38.000000000 +0000 ++++ linux-2.6.0/include/linux.gentoo/ext2_fs_sb.h 2003-12-27 19:19:31.000000000 +0000 +@@ -46,9 +46,9 @@ + int s_inode_size; + int s_first_ino; + spinlock_t s_next_gen_lock; +- u32 s_next_generation; ++ __u32 s_next_generation; + unsigned long s_dir_count; +- u8 *s_debts; ++ __u8 *s_debts; + struct percpu_counter s_freeblocks_counter; + struct percpu_counter s_freeinodes_counter; + struct percpu_counter s_dirs_counter; +diff -ur linux-2.6.0/include/linux/list.h linux-2.6.0/include/linux.gentoo/list.h +--- linux-2.6.0/include/linux/list.h 2003-12-27 19:22:38.000000000 +0000 ++++ linux-2.6.0/include/linux.gentoo/list.h 2003-12-27 19:19:31.000000000 +0000 +@@ -584,7 +584,6 @@ + pos && ({ n = pos->next; 1; }) && \ + ({ tpos = hlist_entry(pos, typeof(*tpos), member); 1;}); \ + pos = n) +-#else +-#warning "don't include kernel headers in userspace" ++ + #endif /* __KERNEL__ */ + #endif +diff -ur linux-2.6.0/include/linux/mod_devicetable.h linux-2.6.0/include/linux.gentoo/mod_devicetable.h +--- linux-2.6.0/include/linux/mod_devicetable.h 2003-12-27 19:22:38.000000000 +0000 ++++ linux-2.6.0/include/linux.gentoo/mod_devicetable.h 2003-12-27 19:19:31.000000000 +0000 +@@ -10,7 +10,6 @@ + #ifdef __KERNEL__ + #include + typedef unsigned long kernel_ulong_t; +-#endif + + #define PCI_ANY_ID (~0) + +@@ -147,5 +146,5 @@ + #define CCW_DEVICE_ID_MATCH_DEVICE_TYPE 0x04 + #define CCW_DEVICE_ID_MATCH_DEVICE_MODEL 0x08 + +- ++#endif /* __KERNEL__ */ + #endif /* LINUX_MOD_DEVICETABLE_H */ +diff -ur linux-2.6.0/include/linux/radix-tree.h linux-2.6.0/include/linux.gentoo/radix-tree.h +--- linux-2.6.0/include/linux/radix-tree.h 2003-12-27 19:22:38.000000000 +0000 ++++ linux-2.6.0/include/linux.gentoo/radix-tree.h 2003-12-27 19:19:31.000000000 +0000 +@@ -41,6 +41,8 @@ + (root)->rnode = NULL; \ + } while (0) + ++#ifdef __KERNEL__ ++ + extern int radix_tree_insert(struct radix_tree_root *, unsigned long, void *); + extern void *radix_tree_lookup(struct radix_tree_root *, unsigned long); + extern void *radix_tree_delete(struct radix_tree_root *, unsigned long); +@@ -54,4 +56,5 @@ + preempt_enable(); + } + ++#endif /* __KERNEL__ */ + #endif /* _LINUX_RADIX_TREE_H */ +diff -ur linux-2.6.0/include/linux/smp.h linux-2.6.0/include/linux.gentoo/smp.h +--- linux-2.6.0/include/linux/smp.h 2003-12-27 19:22:38.000000000 +0000 ++++ linux-2.6.0/include/linux.gentoo/smp.h 2003-12-27 19:19:31.000000000 +0000 +@@ -6,6 +6,8 @@ + * Alan Cox. + */ + ++ ++#ifdef __KERNEL__ + #include + + #ifdef CONFIG_SMP +@@ -112,4 +114,5 @@ + #define put_cpu() preempt_enable() + #define put_cpu_no_resched() preempt_enable_no_resched() + ++#endif /* __KERNEL__ */ + #endif /* __LINUX_SMP_H */ +diff -ur linux-2.6.0/include/linux/spinlock.h linux-2.6.0/include/linux.gentoo/spinlock.h +--- linux-2.6.0/include/linux/spinlock.h 2003-12-27 19:22:38.000000000 +0000 ++++ linux-2.6.0/include/linux.gentoo/spinlock.h 2003-12-27 19:19:31.000000000 +0000 +@@ -183,6 +183,7 @@ + #define _raw_write_trylock(lock) ({ (void)(lock); (1); }) + + #endif /* !SMP */ ++#ifdef __KERNEL__ + + /* + * Define the various spin_lock and rw_lock methods. Note we define these +@@ -465,4 +466,5 @@ + #endif + } + ++#endif /* __KERNEL__ */ + #endif /* __LINUX_SPINLOCK_H */ +diff -ur linux-2.6.0/include/linux/time.h linux-2.6.0/include/linux.gentoo/time.h +--- linux-2.6.0/include/linux/time.h 2003-12-27 19:22:38.000000000 +0000 ++++ linux-2.6.0/include/linux.gentoo/time.h 2003-12-27 19:19:31.000000000 +0000 +@@ -4,24 +4,31 @@ + #include + #include + ++#ifndef _SYS_TIME_H + #ifndef _STRUCT_TIMESPEC ++#ifndef __timespec_defined + #define _STRUCT_TIMESPEC + struct timespec { + time_t tv_sec; /* seconds */ + long tv_nsec; /* nanoseconds */ + }; ++#endif /* __timespec_defined */ + #endif /* _STRUCT_TIMESPEC */ + ++#ifndef _STRUCT_TIMEVAL + struct timeval { + time_t tv_sec; /* seconds */ + suseconds_t tv_usec; /* microseconds */ + }; ++#endif /* _STRUCT_TIMEVAL */ + + struct timezone { + int tz_minuteswest; /* minutes west of Greenwich */ + int tz_dsttime; /* type of dst correction */ + }; + ++#endif /* _SYS_TIME_H */ ++ + #ifdef __KERNEL__ + + #include +@@ -281,6 +281,8 @@ + * machines were long is 32-bit! (However, as time_t is signed, we + * will already get problems at other places on 2038-01-19 03:14:08) + */ ++ ++#ifndef _TIME_H + static inline unsigned long + mktime (unsigned int year, unsigned int mon, + unsigned int day, unsigned int hour, +@@ -298,6 +300,7 @@ + )*60 + min /* now have minutes */ + )*60 + sec; /* finally seconds */ + } ++#endif + + extern struct timespec xtime; + extern struct timespec wall_to_monotonic; +@@ -351,15 +358,19 @@ + #define ITIMER_VIRTUAL 1 + #define ITIMER_PROF 2 + ++#ifndef _TIME_H + struct itimerspec { + struct timespec it_interval; /* timer period */ + struct timespec it_value; /* timer expiration */ + }; ++#endif /* _TIME_H */ + ++#ifndef _SYS_TIME_H + struct itimerval { + struct timeval it_interval; /* timer interval */ + struct timeval it_value; /* current value */ + }; ++#endif /* _SYS_TIME_H */ + + + /* +diff -ur linux-2.6.0/include/linux/workqueue.h linux-2.6.0/include/linux.gentoo/workqueue.h +--- linux-2.6.0/include/linux/workqueue.h 2003-12-27 19:22:38.000000000 +0000 ++++ linux-2.6.0/include/linux.gentoo/workqueue.h 2003-12-27 19:19:31.000000000 +0000 +@@ -5,6 +5,8 @@ + #ifndef _LINUX_WORKQUEUE_H + #define _LINUX_WORKQUEUE_H + ++#ifdef __KERNEL__ ++ + #include + #include + +@@ -73,5 +75,7 @@ + return del_timer_sync(&work->timer); + } + ++#endif /* __KERNEL__ */ ++ + #endif + +diff -ur linux-2.6.0/include/asm-i386/mpspec.h linux-2.6.0/include/asm-i386/mpspec.h +--- linux-2.6.0/include/asm-i386/mpspec.h 2004-01-19 20:18:36.000000000 +0000 ++++ linux-2.6.0/include/asm-i386/mpspec.h 2004-01-19 20:01:11.000000000 +0000 +@@ -3,7 +3,7 @@ + + #include + #include +-#include ++#include + + extern int mp_bus_id_to_type [MAX_MP_BUSSES]; + extern int mp_bus_id_to_node [MAX_MP_BUSSES]; +diff -ur linux-2.6.0/include/asm-i386/processor.h linux-2.6.0/include/asm-i386/processor.h +--- linux-2.6.0/include/asm-i386/processor.h 2004-01-19 20:18:36.000000000 +0000 ++++ linux-2.6.0/include/asm-i386/processor.h 2004-01-19 20:01:11.000000000 +0000 +@@ -8,7 +8,9 @@ + #define __ASM_I386_PROCESSOR_H + + #include ++#ifdef __KERNEL__ + #include ++#endif + #include + #include + #include +diff -ur linux-2.6.0/include/asm-i386/semaphore.h linux-2.6.0/include/asm-i386/semaphore.h +--- linux-2.6.0/include/asm-i386/semaphore.h 2004-01-19 20:18:36.000000000 +0000 ++++ linux-2.6.0/include/asm-i386/semaphore.h 2004-01-19 20:01:11.000000000 +0000 +@@ -3,8 +3,6 @@ + + #include + +-#ifdef __KERNEL__ +- + /* + * SMP- and interrupt-safe semaphores.. + * +@@ -214,4 +212,3 @@ + } + + #endif +-#endif +diff -ur linux-2.6.0/include/asm-i386/signal.h linux-2.6.0/include/asm-i386/signal.h +--- linux-2.6.0/include/asm-i386/signal.h 2004-01-19 20:18:36.000000000 +0000 ++++ linux-2.6.0/include/asm-i386/signal.h 2004-01-19 20:01:11.000000000 +0000 +@@ -26,7 +26,9 @@ + /* Here we must cater to libcs that poke about in kernel headers. */ + + #define NSIG 32 ++#ifndef __sigset_t_defined + typedef unsigned long sigset_t; ++#endif + + #endif /* __KERNEL__ */ + +@@ -155,6 +157,7 @@ + #else + /* Here we must cater to libcs that poke about in kernel headers. */ + ++#ifndef _SIGNAL_H + struct sigaction { + union { + __sighandler_t _sa_handler; +@@ -164,17 +167,20 @@ + unsigned long sa_flags; + void (*sa_restorer)(void); + }; ++#endif + + #define sa_handler _u._sa_handler + #define sa_sigaction _u._sa_sigaction + + #endif /* __KERNEL__ */ + ++#ifndef _SIGNAL_H + typedef struct sigaltstack { + void *ss_sp; + int ss_flags; + size_t ss_size; + } stack_t; ++#endif + + #ifdef __KERNEL__ + #include +diff -ur linux-2.6.0/include/asm-i386/smp.h linux-2.6.0/include/asm-i386/smp.h +--- linux-2.6.0/include/asm-i386/smp.h 2004-01-19 20:18:36.000000000 +0000 ++++ linux-2.6.0/include/asm-i386/smp.h 2004-01-19 20:01:11.000000000 +0000 +@@ -70,7 +70,7 @@ + #ifdef APIC_DEFINITION + extern int hard_smp_processor_id(void); + #else +-#include ++#include + static inline int hard_smp_processor_id(void) + { + /* we don't want to mark this access volatile - bad code generation */ +diff -ur linux-2.6.0/include/linux/types.h linux-2.6.0/include/linux.gentoo/types.h +--- linux-2.6.0/include/linux/types.h 2004-01-19 20:18:36.000000000 +0000 ++++ linux-2.6.0/include/linux.gentoo/types.h 2004-01-19 20:01:11.000000000 +0000 +@@ -19,12 +19,24 @@ + + typedef __u32 __kernel_dev_t; + ++#ifndef _SYS_SELECT_H + typedef __kernel_fd_set fd_set; ++#endif ++#ifndef __dev_t_defined + typedef __kernel_dev_t dev_t; ++#endif ++#ifndef __ino_t_defined + typedef __kernel_ino_t ino_t; ++#endif ++#ifndef __mode_t_defined + typedef __kernel_mode_t mode_t; ++#endif ++#ifndef __nlink_t_defined + typedef __kernel_nlink_t nlink_t; ++#endif ++#ifndef __off_t_defined + typedef __kernel_off_t off_t; ++#endif + typedef __kernel_pid_t pid_t; + typedef __kernel_daddr_t daddr_t; + typedef __kernel_key_t key_t; +@@ -34,7 +46,9 @@ + + #ifdef __KERNEL__ + typedef __kernel_uid32_t uid_t; ++#define __uid_t_defined + typedef __kernel_gid32_t gid_t; ++#define __gid_t_defined + typedef __kernel_uid16_t uid16_t; + typedef __kernel_gid16_t gid16_t; + +@@ -49,7 +63,9 @@ + */ + #else + typedef __kernel_uid_t uid_t; ++#define __uid_t_defined + typedef __kernel_gid_t gid_t; ++#define __gid_t_defined + #endif /* __KERNEL__ */ + + #if defined(__GNUC__) && !defined(__STRICT_ANSI__) +diff -ur linux-2.6.0/include/asm-generic/siginfo.h linux-2.6.0/include/asm-generic/siginfo.h +--- linux-2.6.0/include/asm-generic/siginfo.h 2004-01-19 20:18:36.000000000 +0000 ++++ linux-2.6.0/include/asm-generic/siginfo.h 2004-01-19 20:01:11.000000000 +0000 +@@ -4,10 +4,12 @@ + #include + #include + ++#ifndef _SIGNAL_H + typedef union sigval { + int sival_int; + void *sival_ptr; + } sigval_t; ++#endif + + /* + * This is the size (including padding) of the part of the +@@ -31,7 +33,7 @@ + #endif + + #ifndef HAVE_ARCH_SIGINFO_T +- ++#ifndef _SIGNAL_H + typedef struct siginfo { + int si_signo; + int si_errno; +@@ -86,7 +88,7 @@ + } _sigpoll; + } _sifields; + } siginfo_t; +- ++#endif + #endif + + /* +@@ -238,7 +240,7 @@ + #endif + + #ifndef HAVE_ARCH_SIGEVENT_T +- ++#ifndef _SIGNAL_H + typedef struct sigevent { + sigval_t sigev_value; + int sigev_signo; +@@ -253,7 +255,7 @@ + } _sigev_thread; + } _sigev_un; + } sigevent_t; +- ++#endif + #endif + + #define sigev_notify_function _sigev_un._sigev_thread._function +diff -ur linux-2.6.0/include/linux/jiffies.h linux-2.6.0/include/linux.gentoo/jiffies.h +--- linux-2.6.0/include/linux/jiffies.h 2004-01-19 20:18:36.000000000 +0000 ++++ linux-2.6.0/include/linux.gentoo/jiffies.h 2004-01-19 20:01:11.000000000 +0000 +@@ -13,15 +13,15 @@ + * without holding read_lock_irq(&xtime_lock). + * get_jiffies_64() will do this for you as appropriate. + */ +-extern u64 jiffies_64; ++extern __u64 jiffies_64; + extern unsigned long volatile jiffies; + + #if (BITS_PER_LONG < 64) +-u64 get_jiffies_64(void); ++__u64 get_jiffies_64(void); + #else +-static inline u64 get_jiffies_64(void) ++static inline __u64 get_jiffies_64(void) + { +- return (u64)jiffies; ++ return (__u64)jiffies; + } + #endif + +diff -ur linux-2.6.0/include/linux/i2c.h linux-2.6.0/include/linux.gentoo/i2c.h +--- linux-2.6.0/include/linux/i2c.h 2004-02-07 13:29:15.099504640 -0500 ++++ linux-2.6.0/include/linux.gentoo/i2c.h 2004-02-07 13:35:53.956869104 -0500 +@@ -28,10 +28,18 @@ + #ifndef _LINUX_I2C_H + #define _LINUX_I2C_H + +-#include +-#include ++#ifdef __KERNEL__ ++# include ++# include ++#else ++# define __KERNEL__ ++# include ++# undef __KERNEL__ ++#endif + #include ++#ifdef __KERNEL__ + #include /* for struct device */ + #include ++#endif + + /* --- General options ------------------------------------------------ */ +@@ -109,6 +117,7 @@ + * events. + */ + ++#ifdef __KERNEL__ + struct i2c_driver { + struct module *owner; + char name[32]; +@@ -268,6 +277,7 @@ + { + dev_set_drvdata (&dev->dev, data); + } ++#endif + + /*flags for the driver struct: */ + #define I2C_DF_NOTIFY 0x01 /* notify on bus (de/a)ttaches */ +@@ -599,11 +609,13 @@ + #define i2c_is_isa_adapter(adapptr) \ + ((adapptr)->algo->id == I2C_ALGO_ISA) + ++#ifdef __KERNEL__ + /* Tiny delay function used by the i2c bus drivers */ + static inline void i2c_delay(signed long timeout) + { + set_current_state(TASK_INTERRUPTIBLE); + schedule_timeout(timeout); + } ++#endif + + #endif /* _LINUX_I2C_H */ +--- linux-2.6.3/include/linux/usbdevice_fs.h 2004-02-22 16:52:07.000000000 +0000 ++++ linux-2.6.3/include/linux/usbdevice_fs.h 2004-02-22 22:10:45.000000000 +0000 +@@ -31,6 +31,7 @@ + #ifndef _LINUX_USBDEVICE_FS_H + #define _LINUX_USBDEVICE_FS_H + ++#include + #include + + /* --------------------------------------------------------------------- */ + +diff -ur linux-2.6.4/include/asm-i386/ipc.h linux-2.6.4-gentoo/include/asm-i386/ipc.h +--- linux-2.6.4/include/asm-i386/ipc.h 2004-03-13 13:05:04.000026816 +0000 ++++ linux-2.6.4-gentoo/include/asm-i386/ipc.h 2004-03-13 13:11:56.486319368 +0000 +@@ -6,6 +6,8 @@ + * + * See arch/i386/kernel/sys_i386.c for ugly details.. + */ ++ ++#include + struct ipc_kludge { + struct msgbuf __user *msgp; + long msgtyp; +diff -ur linux-2.6.4/include/linux/compiler-gcc3.h linux-2.6.4-gentoo/include/linux/compiler-gcc3.h +--- linux-2.6.4/include/linux/compiler-gcc3.h 2004-03-13 13:04:57.718981680 +0000 ++++ linux-2.6.4-gentoo/include/linux/compiler-gcc3.h 2004-03-13 13:15:55.937917192 +0000 +@@ -3,6 +3,8 @@ + /* These definitions are for GCC v3.x. */ + #include + ++#ifdef __KERNEL__ ++ + #if __GNUC_MINOR__ >= 1 + # define inline __inline__ __attribute__((always_inline)) + # define __inline__ __inline__ __attribute__((always_inline)) +@@ -25,3 +27,5 @@ + #if __GNUC_MINOR__ >= 1 + #define noinline __attribute__((noinline)) + #endif ++ ++#endif /* __KERNEL__ */ +diff -ur linux-2.6.4/include/linux/fb.h linux-2.6.4-gentoo/include/linux/fb.h +--- linux-2.6.4/include/linux/fb.h 2004-03-13 13:04:57.989940488 +0000 ++++ linux-2.6.4-gentoo/include/linux/fb.h 2004-03-13 13:17:54.987818856 +0000 +@@ -380,8 +380,8 @@ + u32 access_align; /* alignment per read/write */ + u32 flags; /* see FB_PIXMAP_* */ + /* access methods */ +- void (*outbuf)(struct fb_info *info, u8 *addr, u8 *src, unsigned int size); +- u8 (*inbuf) (struct fb_info *info, u8 *addr); ++ void (*outbuf)(struct fb_info *info, __u8 *addr, __u8 *src, unsigned int size); ++ u8 (*inbuf) (struct fb_info *info, __u8 *addr); + }; + + /* +diff -ur linux-2.6.4/include/linux/mroute.h linux-2.6.4-gentoo/include/linux/mroute.h +--- linux-2.6.4/include/linux/mroute.h 2004-03-13 13:04:54.084534200 +0000 ++++ linux-2.6.4-gentoo/include/linux/mroute.h 2004-03-13 13:14:04.356880088 +0000 +@@ -1,6 +1,7 @@ + #ifndef __LINUX_MROUTE_H + #define __LINUX_MROUTE_H + ++#include + #include + #include + diff --git a/sys-kernel/linux-headers/linux-headers-2.6.4.ebuild b/sys-kernel/linux-headers/linux-headers-2.6.4.ebuild new file mode 100644 index 000000000000..65fcf54076ec --- /dev/null +++ b/sys-kernel/linux-headers/linux-headers-2.6.4.ebuild @@ -0,0 +1,138 @@ +# Copyright 1999-2004 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/linux-headers/linux-headers-2.6.4.ebuild,v 1.1 2004/03/13 13:34:40 plasmaroo Exp $ + +ETYPE="headers" +inherit kernel + +OKV="${PV/_/-}" +KV="${OKV}" +S=${WORKDIR}/linux-${OKV} +EXTRAVERSION="" + +# What's in this kernel? + +# INCLUDED: +# 1) linux sources from kernel.org + +DESCRIPTION="Linux ${OKV} headers from kernel.org" +SRC_URI="mirror://kernel/linux/kernel/v2.6/linux-${OKV}.tar.bz2" +HOMEPAGE="http://www.kernel.org/ http://www.gentoo.org/" +LICENSE="GPL-2" +SLOT="0" +PROVIDE="virtual/kernel virtual/os-headers" +KEYWORDS="-*" + +# Figure out what architecture we are, and set ARCH appropriately +ARCH="$(uname -m)" +ARCH=`echo $ARCH | sed -e s/[i].86/i386/ -e s/x86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/ -e s/amd64/x86_64/ -e s/i386_64/x86_64/` +[ "$ARCH" == "sparc" -a "$PROFILE_ARCH" == "sparc64" ] && ARCH=sparc64 + +# Archs which have their own separate header packages, add a check here +# and redirect the user to them +if [ "${ARCH}" = "mips" ] || [ "${ARCH}" = "mips64" ]; then + eerror "These headers are not appropriate for your architecture." + eerror "Please use sys-kernel/${ARCH/64/}-headers instead." + die +fi + +src_unpack() { + + unpack ${A} + cd ${S} + + # Do Stuff + kernel_universal_unpack + + # User-space patches for various things + epatch ${FILESDIR}/${P}-appCompat.patch + epatch ${FILESDIR}/linux-headers-2.6.3-strict-ansi-fix.patch + epatch ${FILESDIR}/linux-headers-2.6.0-sysctl_h-compat.patch + epatch ${FILESDIR}/linux-headers-2.6.0-fb.patch + +} + +src_compile() { + + # Compile the default configuration + MY_ARCH=${ARCH} + unset ${ARCH} + make defconfig + ARCH=${MY_ARCH} + + # If this is sparc, then generate asm_offsets.h + if [ -n "`use sparc`" ]; then + make ARCH=${ARCH} dep || die "Failed to run 'make dep'" + fi + +} + +src_install() { + + # XXX Bug in Kernel.eclass requires this fix for now. + # XXX Remove when kernel.eclass is fixed. + # XXX 2.4 kernels symlink 'asm' to 'asm-${ARCH}' in include/ + # XXX 2.6 kernels don't, however. So we fix this here so kernel.eclass can find the include/asm folder + if [ "`KV_to_int ${OKV}`" -ge "`KV_to_int 2.6.0`" ]; then + ln -sf ${S}/include/asm-${ARCH} ${S}/include/asm + fi + + + # Do normal src_install stuff + kernel_src_install + + # If this is sparc, then we need to place asm_offsets.h in the proper location(s) + if [ -n "`use sparc`" ]; then + + # We don't need /usr/include/asm, generate-asm-sparc will take care of this + rm -Rf ${D}/usr/include/asm + + # We do need empty directories, though... + dodir /usr/include/asm + dodir /usr/include/asm-sparc + + # Copy asm-sparc + cp -ax ${S}/include/asm-sparc/* ${D}/usr/include/asm-sparc + + # If this is sparc64, then we need asm-sparc64 stuff too + if [ "${PROFILE_ARCH}" = "sparc64" ]; then + dodir /usr/include/asm-sparc64 + cp -ax ${S}/include/asm-sparc64/* ${D}/usr/include/asm-sparc64 + fi + + # Check if generate-asm-sparc exists + if [ -a "${FILESDIR}/generate-asm-sparc" ]; then + + # Just incase generate-asm-sparc isn't executable, make it so + if [ ! -x "${FILESDIR}/generate-asm-sparc" ]; then + chmod +x ${FILESDIR}/generate-asm-sparc + fi + + # Generate /usr/include/asm for sparc systems + ${FILESDIR}/generate-asm-sparc ${D}/usr/include + else + eerror "${FILESDIR}/generate-asm-sparc doesn't exist!" + die + fi + fi + + # If this is 2.5 or 2.6 headers, then we need asm-generic too + if [ "`KV_to_int ${OKV}`" -ge "`KV_to_int 2.6.0`" ]; then + dodir /usr/include/asm-generic + cp -ax ${S}/include/asm-generic/* ${D}/usr/include/asm-generic + fi +} + +pkg_preinst() { + kernel_pkg_preinst +} + +pkg_postinst() { + kernel_pkg_postinst + + einfo "Kernel headers are usually only used when recompiling glibc, as such, following the installation" + einfo "of newer headers, it is advised that you re-merge glibc as follows:" + einfo "emerge glibc" + einfo "Failure to do so will cause glibc to not make use of newer features present in the updated kernel" + einfo "headers." +} -- cgit v1.2.3-65-gdbad