diff options
author | Joshua Kinard <kumba@gentoo.org> | 2003-09-12 09:41:43 +0000 |
---|---|---|
committer | Joshua Kinard <kumba@gentoo.org> | 2003-09-12 09:41:43 +0000 |
commit | 8c0951676d033eb465f75e54feb0085384be2e48 (patch) | |
tree | 50da5975280b006ab45f2b333b1df87d9f88cf94 /sys-kernel/linux-headers | |
parent | deprecation of bonobo-activation (diff) | |
download | gentoo-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/ChangeLog | 9 | ||||
-rw-r--r-- | sys-kernel/linux-headers/Manifest | 6 | ||||
-rw-r--r-- | sys-kernel/linux-headers/files/bigendian-byteorder-fix.patch | 50 | ||||
-rw-r--r-- | sys-kernel/linux-headers/files/generate-asm-sparc | 80 | ||||
-rw-r--r-- | sys-kernel/linux-headers/linux-headers-2.4.21.ebuild | 193 |
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 } |