Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 25453 Details for
Bug 32737
Compiling external kernel modules with 2.6 kernels
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
"Cake and eat it too 2" - 2nd version of the "Cake and Eat it Too" style kernel-mod.eclass patch
kernel-mod-KV_OUTPUT-v5.diff (text/plain), 4.36 KB, created by
Peter Johanson (RETIRED)
on 2004-02-11 21:33:14 UTC
(
hide
)
Description:
"Cake and eat it too 2" - 2nd version of the "Cake and Eat it Too" style kernel-mod.eclass patch
Filename:
MIME Type:
Creator:
Peter Johanson (RETIRED)
Created:
2004-02-11 21:33:14 UTC
Size:
4.36 KB
patch
obsolete
>--- kernel-mod.eclass.bak 2004-01-15 10:13:46.000000000 -0500 >+++ kernel-mod.eclass 2004-02-12 00:09:19.632576384 -0500 >@@ -8,17 +8,32 @@ > # This eclass differs from kmod.eclass because it doesn't require modules > # to be added to the kernel source tree first. > >+# Variables you can use to change behavior >+# >+# KERNEL_MOD_SOURCES - space seperated list of source to unpack in >+# kernel-mod_src_unpack() if you don't want ${A} unpacked. >+# >+# KERNEL_MOD_KOUTPUT_PATCH - Patch to apply in src_unpack() if a seperate output >+# directory is detected. >+# >+# KERNEL_MOD_SYMLINK_PATCH - Patch to fix 2.6 compilation if KV_OUTPUT is >+# /usr/src/linux on a 2.5 kernel and the build >+# directory with symlink method is being used. >+ >+inherit eutils >+ > ECLASS=kernel-mod >-INHERITED="$INHERITED $ECLASS" >+ > S=${WORKDIR}/${P} > DESCRIPTION="Based on the $ECLASS eclass" > > SRC_URI="${SRC_URI:-unknown - please fix me!!}" > KERNEL_DIR="${KERNEL_DIR:-/usr/src/linux}" > >+ > kernel-mod_getmakefilevar () > { >- grep $1 $2 | head -n 1 | cut -d = -f 2- | awk '{ print $1 }' >+ grep $1 $2 | head -n 1 | grep -v ":=" | cut -d = -f 2- | awk '{ print $1 }' > } > > kernel-mod_getversion () >@@ -61,6 +76,8 @@ > > KV_MK_VERSION_FULL="$KV_MK_MAJOR.$KV_MK_MINOR.$KV_MK_PATCH$KV_MK_TYPE" > >+ KV_MK_OUTPUT="`kernel-mod_getmakefilevar ^KBUILD_OUTPUT $KV_MK_FILE`" >+ > if [ "$KV_MK_VERSION_FULL" != "$KV_DIR_VERSION_FULL" ]; then > ewarn > ewarn "The kernel Makefile says that this is a $KV_MK_VERSION_FULL kernel" >@@ -82,7 +99,41 @@ > KV_PATCH="$KV_MK_PATCH" > KV_TYPE="$KV_MK_TYPE" > >+ # if we found an output location, use that. otherwise use KERNEL_DIR. >+ if [ ! -z "${KV_MK_OUTPUT}" ] >+ then >+ KV_OUTPUT="$KV_MK_OUTPUT" >+ else >+ KV_OUTPUT="$KERNEL_DIR" >+ fi >+ >+ if [ "${KV_MINOR}" -gt "4" ] >+ then >+ KV_OBJ="ko" >+ else >+ KV_OBJ="o" >+ fi >+ >+ if [ "${KV_MINOR}" -gt 4 ] && [ "${KV_OUTPUT}" = "/usr/src/linux" ] >+ then >+ KV_BUILD="${T}/kernel-build" >+ else >+ KV_BUILD="/usr/src/linux" >+ fi >+ > einfo "Building for Linux ${KV_VERSION_FULL} found in ${KERNEL_DIR}" >+ >+ if [ "${KV_MINOR}" -gt "4" ] >+ then >+ einfo "which outputs to ${KV_OUTPUT}" >+ >+ # Warn them if they aren't using a different output directory >+ if [ "${KV_OUTPUT}" = "/usr/src/linux" ]; then >+ ewarn "By not using the kernel's ability to output to an alternative" >+ ewarn "directory, some external module builds may fail." >+ ewarn "See <insert link to user doc here>" >+ fi >+ fi > } > > kernel-mod_checkzlibinflate_configured () >@@ -151,11 +202,81 @@ > die "Kernel doesn't include zlib support" > } > >+kernel-mod_prepare_builddir() >+{ >+ einfo "Creating temporary build directory:" >+ einfo "\t${KV_BUILD}" >+ einfo "using files in:" >+ einfo "\t${KV_OUTPUT}" >+ >+ mkdir -p ${KV_BUILD} >+ cd ${KV_BUILD} >+ for link in ${KV_OUTPUT}/.config \ >+ ${KV_OUTPUT}/.version \ >+ ${KV_OUTPUT}/.tmp_versions \ >+ ${KV_OUTPUT}/*; >+ do >+ ln -s "${link}" . >+ done >+} >+ >+kernel-mod_do_buildpatches() >+{ >+ cd ${S} >+ if [ "${KV_OUTPUT}" = "/usr/src/linux" ]; then >+ # Patch as needed >+ if [ -n "${KERNEL_MOD_SYMLINK_PATCH}" ]; then >+ EPATCH_SINGLE_MESSAGE="Patching to fix 2.6 module compilation" \ >+ epatch "${KERNEL_MOD_SYMLINK_PATCH}" >+ fi >+ elif [ -n "${KERNEL_MOD_KOUTPUT_PATCH}" ]; then >+ EPATCH_SINGLE_MESSAGE="Patching to enable koutput compatibility" \ >+ epatch ${KERNEL_MOD_KOUTPUT_PATCH} >+ fi >+} >+ >+kernel-mod_src_unpack () >+{ >+ check_KV >+ kernel-mod_getversion >+ >+ # KERNEL_MOD_SOURCES is used if you don't want to unpack just ${A} >+ # It can be set to "none" if you need to unpack things by hand >+ # (like the nvidia-kernel ebuild). If set to "none", you'll have >+ # to do any patching by hand as ${S} won't be around yet! >+ # You can just call kernel-mod_do_buildpatches after unpacking ${S} >+ # if need be. >+ if [ -z "${KERNEL_MOD_SOURCES}" ] >+ then >+ unpack ${A} >+ elif [ "${KERNEL_MOD_SOURCES}" != "none" ] >+ then >+ unpack ${KERNEL_MOD_SOURCES} >+ fi >+ >+ if [ "${KV_MINOR}" -gt 4 ] >+ then >+ if [ "${KV_OUTPUT}" = "/usr/src/linux" ] >+ then >+ kernel-mod_prepare_builddir >+ fi >+ >+ if [ "${KERNEL_MOD_SOURCES}" != "none" ]; then >+ kernel-mod_do_buildpatches >+ fi >+ fi >+} >+ > kernel-mod_src_compile () > { > emake KERNEL_DIR=${KERNEL_DIR} || die > } > >+kernel-mod_pkg_postinst() >+{ >+ depmod -a >+} >+ > kernel-mod_is_2_4_kernel() { > kernel-mod_getversion > >@@ -189,4 +310,4 @@ > fi > } > >-EXPORT_FUNCTIONS src_compile >+EXPORT_FUNCTIONS src_unpack src_compile pkg_postinst
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 32737
:
23927
|
24094
|
24095
|
24096
|
24131
|
24646
|
24647
|
24649
|
24650
|
24651
|
25235
|
25237
|
25238
|
25239
|
25279
|
25280
|
25281
|
25282
|
25283
|
25363
|
25453
|
25454
|
25497
|
26588
|
26635
|
26643
|
27538
|
30030
|
31314
|
31315
|
31317
|
31345
|
31346
|
31347
|
32935
|
33123
|
33124
|
33125
|
33356
|
36615