summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Kinard <kumba@gentoo.org>2003-09-12 09:41:43 +0000
committerJoshua Kinard <kumba@gentoo.org>2003-09-12 09:41:43 +0000
commit8c0951676d033eb465f75e54feb0085384be2e48 (patch)
tree50da5975280b006ab45f2b333b1df87d9f88cf94 /sys-kernel/linux-headers
parentdeprecation of bonobo-activation (diff)
downloadgentoo-2-8c0951676d033eb465f75e54feb0085384be2e48.tar.gz
gentoo-2-8c0951676d033eb465f75e54feb0085384be2e48.tar.bz2
gentoo-2-8c0951676d033eb465f75e54feb0085384be2e48.zip
Re-written; uses kernel.eclass && includes needed fixes for sparc; Shouldn't affect amd64; if it does, Yell.
Diffstat (limited to 'sys-kernel/linux-headers')
-rw-r--r--sys-kernel/linux-headers/ChangeLog9
-rw-r--r--sys-kernel/linux-headers/Manifest6
-rw-r--r--sys-kernel/linux-headers/files/bigendian-byteorder-fix.patch50
-rw-r--r--sys-kernel/linux-headers/files/generate-asm-sparc80
-rw-r--r--sys-kernel/linux-headers/linux-headers-2.4.21.ebuild193
5 files changed, 219 insertions, 119 deletions
diff --git a/sys-kernel/linux-headers/ChangeLog b/sys-kernel/linux-headers/ChangeLog
index d35d5b8a2e34..102bc7b7ff3d 100644
--- a/sys-kernel/linux-headers/ChangeLog
+++ b/sys-kernel/linux-headers/ChangeLog
@@ -1,9 +1,16 @@
# ChangeLog for sys-kernel/linux-headers
# Copyright 2002-2003 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-kernel/linux-headers/ChangeLog,v 1.18 2003/06/21 18:14:12 drobbins Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/linux-headers/ChangeLog,v 1.19 2003/09/12 09:41:40 kumba Exp $
+
*linux-headers-2.4.21 (21 Jun 2003)
+ 12 Sep 2003; Joshua Kinard <kumba@gentoo.org> linux-headers-2.4.21.ebuild,
+ files/bigendian-byteorder-fix.patch, files/generate-asm-sparc:
+ Re-written linux-headers-2.4.21 ebuild; Utilizes kernel.eclass, and includes a
+ needed fix for sparc systems. Only usable with the gcc33-sparc64-1.4 testing
+ profile right now. Should not affect amd64; if it does, Yell.
+
21 Jun 2003; Daniel Robbins <drobbins@gentoo.org> new linux-headers-2.4.21 (stock)
to be used for amd64.
diff --git a/sys-kernel/linux-headers/Manifest b/sys-kernel/linux-headers/Manifest
index f1592112afbc..ba71083dc623 100644
--- a/sys-kernel/linux-headers/Manifest
+++ b/sys-kernel/linux-headers/Manifest
@@ -1,4 +1,4 @@
-MD5 ee4b696f4ba3872dbbc13f316be25782 ChangeLog 2533
+MD5 0d06de5b310fd324370053e3f2baee82 ChangeLog 2899
MD5 fecf80f99d53794fe22c299f8024ec76 linux-headers-2.2.20.ebuild 3937
MD5 6c4d3a60bee13d7fa01d92ee94fe4a9e linux-headers-2.2.21_pre3.ebuild 4118
MD5 dafe74dd740f440ecf4e9801cc88b74e linux-headers-2.4.16-r1.ebuild 5102
@@ -12,7 +12,7 @@ MD5 5d21e2e8e69747864329a465bc7c5be5 linux-headers-2.4.18-r2.ebuild 4568
MD5 cb5101ea2408061e456453df9c06dedf linux-headers-2.4.18.ebuild 3189
MD5 a62efd86abf6a59a746b2ab948c2ee25 linux-headers-2.4.19-r1.ebuild 4802
MD5 45657102a76c0f97cc81fc91138d4fae linux-headers-2.4.19.ebuild 4638
-MD5 2319a46b5f00f445c15fc542b0b35ff2 linux-headers-2.4.21.ebuild 4850
+MD5 32c61398964f275796250f65cfe0fc73 linux-headers-2.4.21.ebuild 3093
MD5 07aeae7e5036a3ec3e06d29fd68e9cce files/digest-linux-headers-2.2.20 216
MD5 167e790d7861e0ed3a31577b31a92968 files/digest-linux-headers-2.2.21_pre3 281
MD5 ac116e74551067f3bd3a2a3c85ba0b0b files/digest-linux-headers-2.4.16 281
@@ -27,3 +27,5 @@ MD5 b1f0fb91c6c3d60ac2f1f1d6893e145a files/digest-linux-headers-2.4.18-r2 67
MD5 0d7bb77bc61a34b15bef6328c9279cb2 files/digest-linux-headers-2.4.19 67
MD5 0d7bb77bc61a34b15bef6328c9279cb2 files/digest-linux-headers-2.4.19-r1 67
MD5 9854e47afccae85e887bcb970fc68890 files/digest-linux-headers-2.4.21 67
+MD5 e300a3e148a7dcc38a0e099494fb6cb3 files/bigendian-byteorder-fix.patch 1557
+MD5 c3e19cc983ab9e751bc4f5c391e66b0c files/generate-asm-sparc 1656
diff --git a/sys-kernel/linux-headers/files/bigendian-byteorder-fix.patch b/sys-kernel/linux-headers/files/bigendian-byteorder-fix.patch
new file mode 100644
index 000000000000..bec279abce81
--- /dev/null
+++ b/sys-kernel/linux-headers/files/bigendian-byteorder-fix.patch
@@ -0,0 +1,50 @@
+--- linux/include/linux/byteorder/generic.h.orig 2003-08-10 18:15:07.000000000 -0700
++++ linux/include/linux/byteorder/generic.h 2003-08-10 18:16:36.000000000 -0700
+@@ -122,7 +122,7 @@
+ #define be16_to_cpus __be16_to_cpus
+ #endif
+
+-
++#if defined(__KERNEL__)
+ /*
+ * Handle ntohl and suches. These have various compatibility
+ * issues - like we want to give the prototype even though we
+@@ -146,35 +146,26 @@
+ * Do the prototypes. Somebody might want to take the
+ * address or some such sick thing..
+ */
+-#if defined(__KERNEL__) || (defined (__GLIBC__) && __GLIBC__ >= 2)
+ extern __u32 ntohl(__u32);
+ extern __u32 htonl(__u32);
+-#else
+-extern unsigned long int ntohl(unsigned long int);
+-extern unsigned long int htonl(unsigned long int);
+-#endif
+ extern unsigned short int ntohs(unsigned short int);
+ extern unsigned short int htons(unsigned short int);
+
+-
+-#if defined(__GNUC__) && (__GNUC__ >= 2) && defined(__OPTIMIZE__) && !defined(__STRICT_ANSI__)
++#if defined(__GNUC__) && defined(__OPTIMIZE__)
+
+ #define ___htonl(x) __cpu_to_be32(x)
+ #define ___htons(x) __cpu_to_be16(x)
+ #define ___ntohl(x) __be32_to_cpu(x)
+ #define ___ntohs(x) __be16_to_cpu(x)
+
+-#if defined(__KERNEL__) || (defined (__GLIBC__) && __GLIBC__ >= 2)
+ #define htonl(x) ___htonl(x)
+ #define ntohl(x) ___ntohl(x)
+-#else
+-#define htonl(x) ((unsigned long)___htonl(x))
+-#define ntohl(x) ((unsigned long)___ntohl(x))
+-#endif
+ #define htons(x) ___htons(x)
+ #define ntohs(x) ___ntohs(x)
+
+ #endif /* OPTIMIZE */
+
++#endif /* KERNEL */
++
+
+ #endif /* _LINUX_BYTEORDER_GENERIC_H */
diff --git a/sys-kernel/linux-headers/files/generate-asm-sparc b/sys-kernel/linux-headers/files/generate-asm-sparc
new file mode 100644
index 000000000000..2a120f4ecf85
--- /dev/null
+++ b/sys-kernel/linux-headers/files/generate-asm-sparc
@@ -0,0 +1,80 @@
+#!/bin/sh -e
+#
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/linux-headers/files/generate-asm-sparc,v 1.1 2003/09/12 09:41:40 kumba Exp $
+#
+# This script generates the files in /usr/include/asm for sparc systems
+# during installation of sys-kernel/linux-headers.
+# Will no longer be needed when full 64 bit support is used on sparc64
+# systems.
+#
+# Shamefully ripped from Debian
+# ----------------------------------------------------------------------
+
+# Idea borrowed from RedHat's kernel package
+
+if [ -n "$1" ]; then
+ if [ ! -d "$1" ]; then
+ echo "$1" does not exist, or is not a directory
+ exit 1
+ fi
+ cd $1
+else
+ cd /usr/include
+fi
+
+if [ ! -d asm-sparc -o ! -d asm-sparc64 ] ; then
+ echo E: asm-sparc and asm-sparc64 must exist, or you will have problems
+ exit 1
+fi
+
+rm -rf asm
+mkdir asm
+
+for h in `( ls asm-sparc; ls asm-sparc64 ) | grep '\.h$' | sort -u`; do
+ name=`echo $h | tr a-z. A-Z_`
+ # common header
+ cat > asm/$h << EOF
+/* All asm/ files are generated and point to the corresponding
+ * file in asm-sparc or asm-sparc64. To regenerate, run "generate-asm"
+ */
+
+#ifndef __SPARCSTUB__${name}__
+#define __SPARCSTUB__${name}__
+
+EOF
+
+ # common for sparc and sparc64
+ if [ -f asm-sparc/$h -a -f asm-sparc64/$h ]; then
+ cat >> asm/$h <<EOF
+#ifdef __arch64__
+#include <asm-sparc64/$h>
+#else
+#include <asm-sparc/$h>
+#endif
+EOF
+
+ # sparc only
+ elif [ -f asm-sparc/$h ]; then
+ cat >> asm/$h <<EOF
+#ifndef __arch64__
+#include <asm-sparc/$h>
+#endif
+EOF
+ # sparc64 only
+ else
+ cat >> asm/$h <<EOF
+#ifdef __arch64__
+#include <asm-sparc64/$h>
+#endif
+EOF
+ fi
+
+ # common footer
+ cat >> asm/$h <<EOF
+
+#endif /* !__SPARCSTUB__${name}__ */
+EOF
+
+done
+
+exit 0
diff --git a/sys-kernel/linux-headers/linux-headers-2.4.21.ebuild b/sys-kernel/linux-headers/linux-headers-2.4.21.ebuild
index 7e9e49e8a32b..acbbbcd7c4a6 100644
--- a/sys-kernel/linux-headers/linux-headers-2.4.21.ebuild
+++ b/sys-kernel/linux-headers/linux-headers-2.4.21.ebuild
@@ -1,153 +1,114 @@
# Copyright 1999-2003 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.4.21.ebuild,v 1.3 2003/09/09 08:55:19 msterret Exp $
-#OKV=original kernel version, KV=patched kernel version. They can be the same.
+# $Header: /var/cvsroot/gentoo-x86/sys-kernel/linux-headers/linux-headers-2.4.21.ebuild,v 1.4 2003/09/12 09:41:40 kumba Exp $
-#we use this next variable to avoid duplicating stuff on cvs
-GFILESDIR=${PORTDIR}/sys-kernel/linux-sources/files
-SPARCFILEDIR=${PORTDIR}/sys-kernel/sparc-sources/files
-OKV=2.4.21
-KV=2.4.21
-S=${WORKDIR}/linux-${KV}
-#These are *stock* 2.4.21 headers, for niceness.
+ETYPE="headers"
+inherit kernel
+OKV=${PV/_/-}
+S=${WORKDIR}/linux-${OKV}
-DESCRIPTION="Full sources for the Gentoo Linux kernel"
+# What's in this kernel?
+
+# INCLUDED:
+# 1) linux sources from kernel.org
+# 2) patch for big-endian machines to fix header issue (currently sparc only)
+
+DESCRIPTION="Linux ${OKV} headers from kernel.org"
SRC_URI="http://www.kernel.org/pub/linux/kernel/v2.4/linux-${OKV}.tar.bz2"
-PROVIDE="virtual/kernel virtual/os-headers"
HOMEPAGE="http://www.kernel.org/ http://www.gentoo.org/"
LICENSE="GPL-2"
-SLOT="${KV}"
-KEYWORDS="-* amd64"
-
-if [ "$ARCH" = "amd64" ]
-then
- KERNEL_ARCH="x86_64"
-else
- KERNEL_ARCH=`echo $ARCH |\
- sed -e s/[i]*.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/`
- if [ -z "$KERNEL_ARCH" ]
- then
- KERNEL_ARCH=`uname -m |\
- sed -e s/[i]*.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/`
- fi
- [ $KERNEL_ARCH="sparc" -a "$PROFILE_ARCH" = "sparc64" ] && KERNEL_ARCH="sparc64"
-fi
+SLOT="${OKV}"
+KEYWORDS="-* amd64 ~sparc"
-if [ $PN = "linux-sources" ] && [ -z "`use build`" ]
-then
- #console-tools is needed to solve the loadkeys fiasco; binutils version needed to avoid Athlon/PIII/SSE assembler bugs.
- DEPEND=">=sys-devel/binutils-2.11.90.0.31"
- RDEPEND =">=sys-libs/ncurses-5.2 dev-lang/perl virtual/modutils sys-devel/make ? sys-devel/egcs64-sparc"
-fi
-[ -z "$LINUX_HOSTCFLAGS" ] && LINUX_HOSTCFLAGS="-Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -I${S}/include"
+# Figure out what architecture we are, and set KERNEL_ARCH appropriately
+ARCH="${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/`
+[ "$ARCH" == "sparc" -a "$PROFILE_ARCH" == "sparc64" ] && ARCH=sparc64
-src_unpack() {
- cd ${WORKDIR}
- unpack linux-${OKV}.tar.bz2
- #the main source dir for linux-2.4.19 (and higher?) has the version attached
- if [ $OKV != $KV ]; then
- mv linux-${OKV} linux-${KV} || die "moving kernel"
- fi
- cd ${S}
- #sometimes we have icky kernel symbols; this seems to get rid of them
- make mrproper || die "making proper"
+# 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
- #this file is required for other things to build properly, so we autogenerate it
- make include/linux/version.h || die "making headers"
- #fix silly permissions in tarball
- cd ${WORKDIR}
- chown -R 0.0 *
- chmod -R a+r-w+X,u+w *
- # Gentoo Linux uses /boot, so fix 'make install' to work properly
+src_unpack() {
+ unpack ${A}
cd ${S}
- mv Makefile Makefile.orig
- sed -e 's:#export\tINSTALL_PATH:export\tINSTALL_PATH:' \
- Makefile.orig >Makefile || die "sed makefile" # test, remove me if Makefile ok
- rm Makefile.orig
+
+ # Big Endian architectures need this patch in order to build certain programs properly
+ # Right now, this fix only affects sparc. hppa and ppc will need to edit this later.
+ # Closes Bug #26062
+ if [ -n "`use sparc`" ]; then
+ epatch ${FILESDIR}/bigendian-byteorder-fix.patch
+ fi
+
+ # Do Stuff
+ kernel_universal_unpack
}
src_compile() {
- if [ "$PN" = "linux-headers" ]
- then
- yes "" | make oldconfig
- echo "Ignore any errors from the yes command above."
+
+ # Do normal src_compile stuff
+ kernel_src_compile
+
+ # If this is sparc, then geneate asm_offsets.h
+ if [ -n "`use sparc`" ]; then
+ make dep ARCH=sparc || die "Failed to run 'make dep'"
fi
}
src_install() {
- if [ "$PN" = "linux-sources" ]
- then
- dodir /usr/src
- echo ">>> Copying sources..."
- mv ${WORKDIR}/* ${D}/usr/src
- else
- #linux-headers
- dodir /usr/include/linux
- cp -ax ${S}/include/linux/* ${D}/usr/include/linux
- rm -rf ${D}/usr/include/linux/modules
+
+ # 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
- if [ `expr $KERNEL_ARCH ":" "sparc"` -eq 5 ]
- then
- dodir /usr/include/asm-{sparc,sparc64}
- if [ "$KERNEL_ARCH" = "sparc64" ]
- then
- cp -ax ${S}/include/asm-sparc64/* ${D}/usr/include/asm-sparc64
- if [ ! -r ${D}/usr/include/asm-sparc64/asm_offsets.h ]
- then
- cp ${SPARCFILEDIR}/${OKV}/sparc64-asm_offsets.h \
- ${D}/usr/include/asm-sparc64/asm_offsets.h
- fi
- fi
+ dodir /usr/include/asm-sparc
- cp -ax ${S}/include/asm-sparc/* ${D}/usr/include/asm-sparc
- if [ ! -r ${D}/usr/include/asm-sparc/asm_offsets.h ]
- then
- cp ${SPARCFILEDIR}/${OKV}/sparc-asm_offsets.h \
- ${D}/usr/include/asm-sparc/asm_offsets.h
+ # 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
- ${SPARCFILEDIR}/generate-asm-sparc ${D}/usr/include
+ # Generate /usr/include/asm for sparc systems
+ ${FILESDIR}/generate-asm-sparc ${D}/usr/include
else
- cp -ax ${S}/include/asm-${KERNEL_ARCH}/* ${D}/usr/include/asm
+ eerror "${FILESDIR}/generate-asm-sparc doesn't exist!"
+ die
fi
fi
}
pkg_preinst() {
- if [ "$PN" = "linux-headers" ]
- then
- [ -L ${ROOT}usr/include/linux ] && rm ${ROOT}usr/include/linux
- [ -L ${ROOT}usr/include/asm ] && rm ${ROOT}usr/include/asm
- [ -L ${ROOT}usr/include/asm-sparc ] && rm ${ROOT}usr/include/asm-sparc
- [ -L ${ROOT}usr/include/asm- ] && rm ${ROOT}usr/include/asm-
- [ -L ${ROOT}usr/include/asm-${KERNEL_ARCH} ] && rm ${ROOT}usr/include/asm-${KERNEL_ARCH}
- true
- fi
+ kernel_pkg_preinst
}
pkg_postinst() {
- [ "$PN" = "linux-headers" ] && return
- cd ${ROOT}usr/src/linux-${KV}
- make mrproper
- if [ -e "${ROOT}usr/src/linux/.config" ]
- then
- cp "${ROOT}usr/src/linux/.config" .config
- #we only make dep when upgrading to a new kernel (with existing config)
- #The default setting will be selected.
- yes "" | make oldconfig
- echo "Ignore any errors from the yes command above."
- make dep
- else
- cp "${ROOT}usr/src/linux-${KV}/arch/${KERNEL_ARCH}/defconfig" .config \
- || cp "${ROOT}usr/src/linux-${KV}/arch/i386/defconfig" .config
- fi
- #remove /usr/src/linux symlink
- rm -f ${ROOT}/usr/src/linux
- #set up a new one
- ln -sf linux-${KV} ${ROOT}/usr/src/linux
+ kernel_pkg_postinst
}