diff options
author | Joshua Kinard <kumba@gentoo.org> | 2017-03-18 14:13:25 -0400 |
---|---|---|
committer | Joshua Kinard <kumba@gentoo.org> | 2017-03-18 14:18:17 -0400 |
commit | 9b62c3f713bdb9ce280e520279818d3298b1717e (patch) | |
tree | 2e80eb2251aa812093a7e0b5775d4a811742f7d6 /sys-kernel | |
parent | dev-python/PyQt5: remove old (diff) | |
download | gentoo-9b62c3f713bdb9ce280e520279818d3298b1717e.tar.gz gentoo-9b62c3f713bdb9ce280e520279818d3298b1717e.tar.bz2 gentoo-9b62c3f713bdb9ce280e520279818d3298b1717e.zip |
sys-kernel/mips-sources: Resolve Bug #586420
Merge eblit source into each ebuild to resolve Bug #586420.
Package-Manager: Portage-2.3.5, Repoman-2.3.2
Diffstat (limited to 'sys-kernel')
12 files changed, 508 insertions, 495 deletions
diff --git a/sys-kernel/mips-sources/files/eblits/err_disabled_mach-v1.eblit b/sys-kernel/mips-sources/files/eblits/err_disabled_mach-v1.eblit deleted file mode 100644 index e9804bbec4e7..000000000000 --- a/sys-kernel/mips-sources/files/eblits/err_disabled_mach-v1.eblit +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# Eblit to check if a given machine is disabled or marked for testing. - -err_disabled_mach() { - # Get args - local m_name="${1}" - local m_abbr="${2}" - local m_use="${3}" - local is_test="${4}" - - # Get stable version, if exists - local stable_ver="SV_${m_abbr}" - stable_ver="${!stable_ver}" - - # See if this machine needs a USE passed or skip dying - local has_use - [ ! -z "${m_use}" -a "${m_use}" != "skip" ] && has_use="USE=\"${m_use}\" " - - # Print error && (maybe) die - echo -e "" - if [ "${is_test}" != "test" ]; then - eerror "${m_name} Support has been disabled in this ebuild" - eerror "revision. If you wish to merge ${m_name} sources, then" - eerror "run ${has_use}emerge =mips-sources-${stable_ver}" - [ "${m_use}" != "skip" ] && die "${m_name} Support disabled." - else - ewarn "${m_name} Support has been marked as needing testing in this" - ewarn "ebuild revision. This usually means that any patches to support" - ewarn "${m_name} have been forward ported and maybe even compile-tested," - ewarn "but not yet booted on real hardware, possibly due to a lack of access" - ewarn "to such hardware. If you happen to boot this kernel and have no" - ewarn "problems at all, then please inform the maintainer. Otherwise, if" - ewarn "experience a bug, an oops/panic, or some other oddity, then please" - ewarn "file a bug at bugs.gentoo.org, and assign it to the mips team." - fi - - return 0 -} diff --git a/sys-kernel/mips-sources/files/eblits/err_only_one_mach_allowed-v1.eblit b/sys-kernel/mips-sources/files/eblits/err_only_one_mach_allowed-v1.eblit deleted file mode 100644 index 0db218725994..000000000000 --- a/sys-kernel/mips-sources/files/eblits/err_only_one_mach_allowed-v1.eblit +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# Eblit informing a user when they try to apply two machine patches to the -# same tree. Most machine patches are exclusive to avoid conflicts. - -err_only_one_mach_allowed() { - echo -e "" - eerror "A patchset for a specific machine-type has already been selected." - eerror "No other patches for machines-types are permitted. You will need a" - eerror "separate copy of the kernel sources for each different machine-type" - eerror "you want to build a kernel for." - die "Only one machine-type patchset allowed" -} diff --git a/sys-kernel/mips-sources/files/eblits/pkg_postinst-v2.eblit b/sys-kernel/mips-sources/files/eblits/pkg_postinst-v2.eblit deleted file mode 100644 index 83d2214c4fcd..000000000000 --- a/sys-kernel/mips-sources/files/eblits/pkg_postinst-v2.eblit +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# Eblit that handles binpkg postinst tasks. -# In this case, it sets up the /usr/src/linux symlink. - -eblit-mips-sources-pkg_postinst() { - # Symlink /usr/src/linux as appropriate - local my_ksrc="${S##*/}" - for x in {ip27,ip28,ip30}; do - use ${x} && my_ksrc="${my_ksrc}.${x}" - done - - if [ ! -e "${ROOT}usr/src/linux" ]; then - rm -f "${ROOT}usr/src/linux" - ln -sf "${my_ksrc}" "${ROOT}/usr/src/linux" - fi -} diff --git a/sys-kernel/mips-sources/files/eblits/pkg_setup-v2.eblit b/sys-kernel/mips-sources/files/eblits/pkg_setup-v2.eblit deleted file mode 100644 index 4a23036aba20..000000000000 --- a/sys-kernel/mips-sources/files/eblits/pkg_setup-v2.eblit +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# Eblit to check our USE flags for machine-specific flags and give appropriate -# information, warnings, or errors to the user. - -# Some machine patches are mutually-exclusive to avoid conflicts: -# Affected: ip27 ip28 ip30 -# Not Affected: ip22 ip32 - -eblit-mips-sources-pkg_setup() { - local arch_is_selected="no" - local m_ip m_enable m_name - - # Exclusive machine patchsets - # These are not allowed to be mixed together, thus only one of them may be applied - # to a tree per merge. - for x in \ - "ip27 SGI Origin 200/2000" \ - "ip28 SGI Indigo2 Impact R10000" \ - "ip30 SGI Octane" - do - set -- ${x} # Set positional params - m_ip="${1}" # Grab the first param (HW IP for SGI) - shift # Shift the positions - m_name="${*}" # Get the rest (Name) - - if use ${m_ip}; then - # Fetch the value indiciating if the machine is enabled or not - m_enable="DO_${m_ip/ip/IP}" - m_enable="${!m_enable}" - - # Make sure only one of these exclusive machine patches is selected - [ "${arch_is_selected}" = "no" ] \ - && arch_is_selected="yes" \ - || err_only_one_mach_allowed - - # Is the machine support disabled or marked as needing testing? - [ "${m_enable}" = "test" ] \ - && err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}" "test" - [ "${m_enable}" = "no" ] \ - && err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}" - - # Show relevant information about the machine - show_${m_ip}_info - fi - done - - # All other systems that don't have a USE flag go here - # These systems have base-line support included in linux-mips git, so - # instead of failing, if disabled, we simply warn the user - if [ "${arch_is_selected}" = "no" ]; then - [ "${DO_IP22}" = "no" ] \ - && err_disabled_mach "SGI Indy/Indigo2 R4x00" "IP22" "skip" \ - || show_ip22_info - [ "${DO_IP32}" = "no" ] \ - && err_disabled_mach "SGI O2" "IP32" "skip" \ - || show_ip32_info - - fi -} diff --git a/sys-kernel/mips-sources/files/eblits/show_ip22_info-v3.eblit b/sys-kernel/mips-sources/files/eblits/show_ip22_info-v3.eblit deleted file mode 100644 index 48656b069fe4..000000000000 --- a/sys-kernel/mips-sources/files/eblits/show_ip22_info-v3.eblit +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# Eblit with information/warnings for IP22 (Indy/Indigo2 R4x00) users. -# -# If you need to add whitespace for formatting in 'einfo', 'ewarn', or 'eerror', use -# \040 for a space instead of the standard space. These functions will strip -# redundant white space. - -show_ip22_info() { - echo -e "" - einfo "IP22 systems with an R5000 processor should work with this release." - einfo "The R4x00 series of processors tend to be rather flaky, especially the" - einfo "R4600. If you have to run an R4x00 processor, then try to use an R4400." - einfo "" - einfo "Some Notes:" - einfo "\t- Supported graphics card right now is Newport (XL)." - einfo "\t- A driver for Extreme (XZ) does not exist at present." - echo -e "" -} diff --git a/sys-kernel/mips-sources/files/eblits/show_ip27_info-v4.eblit b/sys-kernel/mips-sources/files/eblits/show_ip27_info-v4.eblit deleted file mode 100644 index 07bb20e9e063..000000000000 --- a/sys-kernel/mips-sources/files/eblits/show_ip27_info-v4.eblit +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# Eblit with information/warnings for IP27 (Origin 200/2000/Onyx2) users. -# -# If you need to add whitespace for formatting in 'einfo', 'ewarn', or 'eerror', use -# \040 for a space instead of the standard space. These functions will strip -# redundant white space. - -show_ip27_info() { - echo -e "" - ewarn "Heavy disk I/O on recent kernels may randomly trigger a VM_BUG_ON_PAGE()" - ewarn "in move_freepages() in mm/page_alloc.c. The exact trigger cause is" - ewarn "unknown at this time. Please report any oops messages from this" - ewarn "bug to bugs.gentoo.org (assign to mips@gentoo.org)" - echo -e "" -} diff --git a/sys-kernel/mips-sources/files/eblits/show_ip28_info-v1.eblit b/sys-kernel/mips-sources/files/eblits/show_ip28_info-v1.eblit deleted file mode 100644 index 90648ee5340e..000000000000 --- a/sys-kernel/mips-sources/files/eblits/show_ip28_info-v1.eblit +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# Eblit with information/warnings for IP28 (Indigo2 Impact R10000) users. -# -# If you need to add whitespace for formatting in 'einfo', 'ewarn', or 'eerror', use -# \040 for a space instead of the standard space. These functions will strip -# redundant white space. - -show_ip28_info() { - echo -e "" - einfo "Support for the Indigo2 Impact R10000 is now in the mainline kernel. However," - einfo "due to the R10000 Speculative Execution issue that exists with this machine," - einfo "nothing is guaranteed to work correctly. Consider enabling ${HILITE}CONFIG_KALLSYMS${NORMAL}" - einfo "in your kernel so that if the machine Oopes, you'll be able to provide valuable" - einfo "feedback that can be used to trace down the crash." - echo -e "" -} diff --git a/sys-kernel/mips-sources/files/eblits/show_ip30_info-v5.eblit b/sys-kernel/mips-sources/files/eblits/show_ip30_info-v5.eblit deleted file mode 100644 index 960f45781d8a..000000000000 --- a/sys-kernel/mips-sources/files/eblits/show_ip30_info-v5.eblit +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# Eblit with information/warnings for IP30 (Octane) users. -# -# If you need to add whitespace for formatting in 'einfo', 'ewarn', or 'eerror', use -# \040 for a space instead of the standard space. These functions will strip -# redundant white space. - -show_ip30_info() { - echo -e "" - eerror "Things that DON'T work:" - eerror "\t- Do not use CONFIG_SLUB, otherwise, you'll get errors when booting" - eerror "\t\040\040regarding duplicate /sys/kernel/slab/* entries in sysfs." - eerror "\t- Impact (MGRAS) Xorg driver no longer functions due to severe bitrot." - eerror "\t- Octane is limited to a maximum of 2GB of memory right now due to a" - eerror "\t\040\040hardware quirk in the BRIDGE PCI chip that limits BRIDGE DMA" - eerror "\t\040\040addresses to 31-bits when converted into physical addresses." - eerror "\t\040\040Patches that attempt to fix the issue are highly welcome." - echo -e "" - ewarn "Things that might work, but have problems, or are unknown:" - ewarn "\t- CONFIG_TRANSPARENT_HUGEPAGE should work now, but there may still be" - ewarn "\t\040\040intermittent issues. Additionally, CONFIG_HUGETLBFS must also be" - ewarn "\t\040\040selected for hugepages to work. If use of this feature continues" - ewarn "\t\040\040to trigger random Instruction Bus Errors (IBEs), then it is best to" - ewarn "\t\040\040disable the functionality and perform a cold reset of the machine" - ewarn "\t\040\040after powering it down for at least 30 seconds." - ewarn "\t- Serial support on the Octane uses a very basic UART driver that drives" - ewarn "\t\040\040the 16550A chip on the IOC3 directly. It does not use interrupts," - ewarn "\t\040\040only a polling routine on a timer, which makes it slow and CPU-" - ewarn "\t\040\040intensive. The baud rate is limited to no more than 38.4kbps on" - ewarn "\t\040\040this driver. Patches for getting the Altix IOC3 serial driver to" - ewarn "\t\040\040work (which uses DMA and supports faster baud rates) are welcome." - ewarn "\t- UHCI Cards are known to have issues, but should still function." - ewarn "\t\040\040This issue primarily manifests itself when using pl2303 USB->Serial" - ewarn "\t\040\040adapters." - ewarn "\t- MENET boards appear to have the four ethernet ports detected, however" - ewarn "\t\040\040the six serial ports don't appear to get picked up by the IOC3" - ewarn "\t\040\040UART driver. The NIC part number is also not read correctly" - ewarn "\t\040\040from the four Number-In-a-Cans. Additional testing would be" - ewarn "\t\040\040appreciated and patches welcome." - ewarn "\t- Other XIO-based devices, like various Impact addons, remain untested" - ewarn "\t\040\040and are not guaranteed to work. This applies to various digital" - ewarn "\t\040\040video conversion boards as well." - echo -e "" - einfo "Things that DO work:" - einfo "\t- SMP works again, celebrate!" - einfo "\t- Impact (MGRAS) console only." - einfo "\t- VPro (Odyssey) console only (no X driver exists yet)." - einfo "\t- PCI Card Cages should work for many devices, except certain types like" - einfo "\t\040\040PCI-to-PCI bridges (USB hubs, USB flash card readers for example)." - einfo "\t- SCSI, RTC, basic PCI, IOC3 Ethernet, keyboard, and mouse. Please" - einfo "\t\040\040report any problems with these devices." - echo -e "" -} diff --git a/sys-kernel/mips-sources/files/eblits/show_ip32_info-v5.eblit b/sys-kernel/mips-sources/files/eblits/show_ip32_info-v5.eblit deleted file mode 100644 index dcc504297c0d..000000000000 --- a/sys-kernel/mips-sources/files/eblits/show_ip32_info-v5.eblit +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# Eblit with information/warnings for IP32 (O2) users. -# -# If you need to add whitespace for formatting in 'einfo', 'ewarn', or 'eerror', use -# \040 for a space instead of the standard space. These functions will strip -# redundant white space. - -show_ip32_info() { - echo -e "" - einfo "IP32 systems function well, however there are some notes:" - einfo "\t- A sound driver now exists for IP32. Celebrate!" - einfo "\t- Framebuffer console is limited to 4MB. Anything greater" - einfo "\t\040\040specified when building the kernel will likely oops" - einfo "\t\040\040or panic the kernel." - einfo "\t- X support is limited to the generic fbdev driver. No X" - einfo "\t\040\040gbefb driver exists for O2 yet. Feel free to submit" - einfo "\t\040\040patches!" - echo -e "" - - einfo "To Build 64bit kernels for SGI O2 (IP32) or SGI Indy/Indigo2 R4x00 (IP22)" - einfo "systems, you need to use the ${GOOD}vmlinux.32${NORMAL} make target." - einfo "Once done, boot the ${GOOD}vmlinux.32${NORMAL} file (NOT vmlinux)." -} diff --git a/sys-kernel/mips-sources/files/eblits/src_unpack-v7.eblit b/sys-kernel/mips-sources/files/eblits/src_unpack-v7.eblit deleted file mode 100644 index b22df4de4c22..000000000000 --- a/sys-kernel/mips-sources/files/eblits/src_unpack-v7.eblit +++ /dev/null @@ -1,67 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -# Eblit to handle src_unpack. - -eblit-mips-sources-src_unpack() { - # Unpack the kernel sources, update to the latest rev (if needed), - # and apply the latest patch from linux-mips git. - kernel-2_src_unpack - - # Unpack the mips-sources patchset to ${WORKDIR}/mips-patches-${BASE_KV}. - echo -e "" - cd "${WORKDIR}" - unpack "${PN}-${BASE_KV}-patches-v${GENPATCHREV}.tar.xz" - - # Create a new folder called 'patch-symlinks' and create symlinks to - # all mips-patches in there. If we want to exclude a patch, we'll - # just delete the symlink instead of the actual patch. - local psym="patch-symlinks" - mkdir "${psym}" - cd "${psym}" - for x in ../mips-patches-${BASE_KV}/*.patch; do - ln -s "${x}" "${x##../mips-patches-*/}" - done - - # With symlinks created, setup the variables referencing external - # machine patches and if a machine USE flag is enabled, then unset - # its corresponding variable. - # See 0000_README for the patch numbers and their meanings. - local p_generic="51*" - local p_ip27="52*" p_ip28="53*" p_ip30="54*" - local p_xp="80*" - use ip27 && unset p_generic p_ip27 - use ip28 && unset p_ip28 - use ip30 && unset p_generic p_ip30 - use experimental && unset p_xp - - # Remove symlinks for any patches that we don't want applied. We - # do this by looping through all the above variables, and deleting - # matching symlinks that point to the corresponding patches. - # The remaining symlinks will be applied to the kernel source. - # - # $P_EXCLUDE is a new var that can be set in an ebuild to exclude - # specific patches by wildcarding the patch number. - local patchlist="${p_generic} ${p_ip27} ${p_ip28} ${p_ip30} ${p_xp} ${P_EXCLUDE}" - for x in $patchlist; - do rm -f "./${x}" - done - - # Rename the source tree to match the linux-mips git checkout date and - # machine type. - local fkv="${F_KV%-*}" - local v="${fkv}-${GITDATE}" - for x in {ip27,ip28,ip30}; do - use ${x} && v="${v}.${x}" && break - done - mv "${WORKDIR}/linux-${fkv/_/-}" "${WORKDIR}/linux-${v}" || die - S="${WORKDIR}/linux-${v}" - - # Now go into the kernel source and patch it. - cd "${S}" - epatch "${WORKDIR}/${psym}"/*.patch - - # Set the EXTRAVERSION to linux-VERSION-mipsgit-GITDATE - EXTRAVERSION="${EXTRAVERSION}-mipsgit-${GITDATE}" - unpack_set_extraversion -} diff --git a/sys-kernel/mips-sources/mips-sources-4.4.43.ebuild b/sys-kernel/mips-sources/mips-sources-4.4.43.ebuild index 34cb43cbf2f0..381b9ade9b0c 100644 --- a/sys-kernel/mips-sources/mips-sources-4.4.43.ebuild +++ b/sys-kernel/mips-sources/mips-sources-4.4.43.ebuild @@ -73,102 +73,276 @@ UNIPATCH_LIST="${DISTDIR}/mipsgit-${BASE_KV}${KVE}-${GITDATE}.diff.xz" #//------------------------------------------------------------------------------ -# Eblit Handling Functions -# -# They'll likely be superseded someday by better ideas, possibly elibs. - -# eblit-core -# Usage: <function> [version] -# Main eblit engine -eblit-core() { - local e v func=$1 ver=$2 - for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do - e="${FILESDIR}/eblits/${func}${v}.eblit" - if [[ -e ${e} ]] ; then - . "${e}" - [[ ${func} == pkg_* ]] && eval "${func}() { eblit-run ${func} ${ver} ; }" - return 0 +err_disabled_mach() { + # Get args + local m_name="${1}" + local m_abbr="${2}" + local m_use="${3}" + local is_test="${4}" + + # Get stable version, if exists + local stable_ver="SV_${m_abbr}" + stable_ver="${!stable_ver}" + + # See if this machine needs a USE passed or skip dying + local has_use + [ ! -z "${m_use}" -a "${m_use}" != "skip" ] && has_use="USE=\"${m_use}\" " + + # Print error && (maybe) die + echo -e "" + if [ "${is_test}" != "test" ]; then + eerror "${m_name} Support has been disabled in this ebuild" + eerror "revision. If you wish to merge ${m_name} sources, then" + eerror "run ${has_use}emerge =mips-sources-${stable_ver}" + [ "${m_use}" != "skip" ] && die "${m_name} Support disabled." + else + ewarn "${m_name} Support has been marked as needing testing in this" + ewarn "ebuild revision. This usually means that any patches to support" + ewarn "${m_name} have been forward ported and maybe even compile-tested," + ewarn "but not yet booted on real hardware, possibly due to a lack of access" + ewarn "to such hardware. If you happen to boot this kernel and have no" + ewarn "problems at all, then please inform the maintainer. Otherwise, if" + ewarn "experience a bug, an oops/panic, or some other oddity, then please" + ewarn "file a bug at bugs.gentoo.org, and assign it to the mips team." + fi + + return 0 +} + +err_only_one_mach_allowed() { + echo -e "" + eerror "A patchset for a specific machine-type has already been selected." + eerror "No other patches for machines-types are permitted. You will need a" + eerror "separate copy of the kernel sources for each different machine-type" + eerror "you want to build a kernel for." + die "Only one machine-type patchset allowed" +} + +pkg_postinst() { + # Symlink /usr/src/linux as appropriate + local my_ksrc="${S##*/}" + for x in {ip27,ip28,ip30}; do + use ${x} && my_ksrc="${my_ksrc}.${x}" + done + + if [ ! -e "${ROOT}usr/src/linux" ]; then + rm -f "${ROOT}usr/src/linux" + ln -sf "${my_ksrc}" "${ROOT}/usr/src/linux" + fi +} + +pkg_setup() { + local arch_is_selected="no" + local m_ip m_enable m_name + + # Exclusive machine patchsets + # These are not allowed to be mixed together, thus only one of them may be applied + # to a tree per merge. + for x in \ + "ip27 SGI Origin 200/2000" \ + "ip28 SGI Indigo2 Impact R10000" \ + "ip30 SGI Octane" + do + set -- ${x} # Set positional params + m_ip="${1}" # Grab the first param (HW IP for SGI) + shift # Shift the positions + m_name="${*}" # Get the rest (Name) + + if use ${m_ip}; then + # Fetch the value indiciating if the machine is enabled or not + m_enable="DO_${m_ip/ip/IP}" + m_enable="${!m_enable}" + + # Make sure only one of these exclusive machine patches is selected + [ "${arch_is_selected}" = "no" ] \ + && arch_is_selected="yes" \ + || err_only_one_mach_allowed + + # Is the machine support disabled or marked as needing testing? + [ "${m_enable}" = "test" ] \ + && err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}" "test" + [ "${m_enable}" = "no" ] \ + && err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}" + + # Show relevant information about the machine + show_${m_ip}_info fi done - return 1 + + # All other systems that don't have a USE flag go here + # These systems have base-line support included in linux-mips git, so + # instead of failing, if disabled, we simply warn the user + if [ "${arch_is_selected}" = "no" ]; then + [ "${DO_IP22}" = "no" ] \ + && err_disabled_mach "SGI Indy/Indigo2 R4x00" "IP22" "skip" \ + || show_ip22_info + [ "${DO_IP32}" = "no" ] \ + && err_disabled_mach "SGI O2" "IP32" "skip" \ + || show_ip32_info + + fi } -# eblit-include -# Usage: [--skip] <function> [version] -# Includes an "eblit" -- a chunk of common code among ebuilds in a given -# package so that its functions can be sourced and utilized within the -# ebuild. -eblit-include() { - local skipable=false r=0 - [[ $1 == "--skip" ]] && skipable=true && shift - [[ $1 == pkg_* ]] && skipable=true - - [[ -z $1 ]] && die "Usage: eblit-include <function> [version]" - eblit-core $1 $2 - r="$?" - ${skipable} && return 0 - [[ "$r" -gt "0" ]] && die "Could not locate requested eblit '$1' in ${FILESDIR}/eblits/" +show_ip22_info() { + echo -e "" + einfo "IP22 systems with an R5000 processor should work with this release." + einfo "The R4x00 series of processors tend to be rather flaky, especially the" + einfo "R4600. If you have to run an R4x00 processor, then try to use an R4400." + einfo "" + einfo "Some Notes:" + einfo "\t- Supported graphics card right now is Newport (XL)." + einfo "\t- A driver for Extreme (XZ) does not exist at present." + echo -e "" } -# eblit-run-maybe -# Usage: <function> -# Runs a function if it is defined in an eblit -eblit-run-maybe() { - [[ $(type -t "$@") == "function" ]] && "$@" +show_ip27_info() { + echo -e "" + ewarn "Heavy disk I/O on recent kernels may randomly trigger a VM_BUG_ON_PAGE()" + ewarn "in move_freepages() in mm/page_alloc.c. The exact trigger cause is" + ewarn "unknown at this time. Please report any oops messages from this" + ewarn "bug to bugs.gentoo.org (assign to mips@gentoo.org)" + echo -e "" } -# eblit-run -# Usage: <function> [version] -# Runs a function defined in an eblit -eblit-run() { - eblit-include --skip common "${*:2}" - eblit-include "$@" - eblit-run-maybe eblit-$1-pre - eblit-${PN}-$1 - eblit-run-maybe eblit-$1-post +show_ip28_info() { + echo -e "" + einfo "Support for the Indigo2 Impact R10000 is now in the mainline kernel. However," + einfo "due to the R10000 Speculative Execution issue that exists with this machine," + einfo "nothing is guaranteed to work correctly. Consider enabling ${HILITE}CONFIG_KALLSYMS${NORMAL}" + einfo "in your kernel so that if the machine Oopes, you'll be able to provide valuable" + einfo "feedback that can be used to trace down the crash." + echo -e "" } -# eblit-pkg -# Usage: <phase> [version] -# Runs the pkg_* functions AND evals them so they're included in the binpkgs -eblit-pkg() { - [[ -z $1 ]] && die "Usage: eblit-pkg <phase> [version]" - eblit-core pkg_$1 $2 +show_ip30_info() { + echo -e "" + eerror "Things that DON'T work:" + eerror "\t- Do not use CONFIG_SLUB, otherwise, you'll get errors when booting" + eerror "\t\040\040regarding duplicate /sys/kernel/slab/* entries in sysfs." + eerror "\t- Impact (MGRAS) Xorg driver no longer functions due to severe bitrot." + eerror "\t- Octane is limited to a maximum of 2GB of memory right now due to a" + eerror "\t\040\040hardware quirk in the BRIDGE PCI chip that limits BRIDGE DMA" + eerror "\t\040\040addresses to 31-bits when converted into physical addresses." + eerror "\t\040\040Patches that attempt to fix the issue are highly welcome." + echo -e "" + ewarn "Things that might work, but have problems, or are unknown:" + ewarn "\t- CONFIG_TRANSPARENT_HUGEPAGE should work now, but there may still be" + ewarn "\t\040\040intermittent issues. Additionally, CONFIG_HUGETLBFS must also be" + ewarn "\t\040\040selected for hugepages to work. If use of this feature continues" + ewarn "\t\040\040to trigger random Instruction Bus Errors (IBEs), then it is best to" + ewarn "\t\040\040disable the functionality and perform a cold reset of the machine" + ewarn "\t\040\040after powering it down for at least 30 seconds." + ewarn "\t- Serial support on the Octane uses a very basic UART driver that drives" + ewarn "\t\040\040the 16550A chip on the IOC3 directly. It does not use interrupts," + ewarn "\t\040\040only a polling routine on a timer, which makes it slow and CPU-" + ewarn "\t\040\040intensive. The baud rate is limited to no more than 38.4kbps on" + ewarn "\t\040\040this driver. Patches for getting the Altix IOC3 serial driver to" + ewarn "\t\040\040work (which uses DMA and supports faster baud rates) are welcome." + ewarn "\t- UHCI Cards are known to have issues, but should still function." + ewarn "\t\040\040This issue primarily manifests itself when using pl2303 USB->Serial" + ewarn "\t\040\040adapters." + ewarn "\t- MENET boards appear to have the four ethernet ports detected, however" + ewarn "\t\040\040the six serial ports don't appear to get picked up by the IOC3" + ewarn "\t\040\040UART driver. The NIC part number is also not read correctly" + ewarn "\t\040\040from the four Number-In-a-Cans. Additional testing would be" + ewarn "\t\040\040appreciated and patches welcome." + ewarn "\t- Other XIO-based devices, like various Impact addons, remain untested" + ewarn "\t\040\040and are not guaranteed to work. This applies to various digital" + ewarn "\t\040\040video conversion boards as well." + echo -e "" + einfo "Things that DO work:" + einfo "\t- SMP works again, celebrate!" + einfo "\t- Impact (MGRAS) console only." + einfo "\t- VPro (Odyssey) console only (no X driver exists yet)." + einfo "\t- PCI Card Cages should work for many devices, except certain types like" + einfo "\t\040\040PCI-to-PCI bridges (USB hubs, USB flash card readers for example)." + einfo "\t- SCSI, RTC, basic PCI, IOC3 Ethernet, keyboard, and mouse. Please" + einfo "\t\040\040report any problems with these devices." + echo -e "" } -#//------------------------------------------------------------------------------ +show_ip32_info() { + echo -e "" + einfo "IP32 systems function well, however there are some notes:" + einfo "\t- A sound driver now exists for IP32. Celebrate!" + einfo "\t- Framebuffer console is limited to 4MB. Anything greater" + einfo "\t\040\040specified when building the kernel will likely oops" + einfo "\t\040\040or panic the kernel." + einfo "\t- X support is limited to the generic fbdev driver. No X" + einfo "\t\040\040gbefb driver exists for O2 yet. Feel free to submit" + einfo "\t\040\040patches!" + echo -e "" -load_eblit_funcs() { - # This is a sanity check to avoid QA issues. It prevents - # eblits from being referenced during metadata operations. - [ -n "${MIPS_SOURCES_EBLITS_LOADED}" ] && return - - # All are in ${FILESDIR}/eblits - # If a message for a given machine needs to change, - # then we create a new eblit and increment the - # version and reference it here. - eblit-include err_disabled_mach v1 - eblit-include err_only_one_mach_allowed v1 - eblit-include show_ip22_info v3 - eblit-include show_ip27_info v4 - eblit-include show_ip28_info v1 - eblit-include show_ip30_info v5 - eblit-include show_ip32_info v5 - - # This makes sure pkg_setup & pkg_postinst gets into any binpkg. - # Neccessary because we can't guarantee FILESDIR is around for binpkgs. - eblit-pkg setup v2 - eblit-pkg postinst v2 - - # Eblit load complete - MIPS_SOURCES_EBLITS_LOADED=1 + einfo "To Build 64bit kernels for SGI O2 (IP32) or SGI Indy/Indigo2 R4x00 (IP22)" + einfo "systems, you need to use the ${GOOD}vmlinux.32${NORMAL} make target." + einfo "Once done, boot the ${GOOD}vmlinux.32${NORMAL} file (NOT vmlinux)." } -pkg_setup() { - load_eblit_funcs - pkg_setup +src_unpack() { + # Unpack the kernel sources, update to the latest rev (if needed), + # and apply the latest patch from linux-mips git. + kernel-2_src_unpack + + # Unpack the mips-sources patchset to ${WORKDIR}/mips-patches-${BASE_KV}. + echo -e "" + cd "${WORKDIR}" + unpack "${PN}-${BASE_KV}-patches-v${GENPATCHREV}.tar.xz" + + # Create a new folder called 'patch-symlinks' and create symlinks to + # all mips-patches in there. If we want to exclude a patch, we'll + # just delete the symlink instead of the actual patch. + local psym="patch-symlinks" + mkdir "${psym}" + cd "${psym}" + for x in ../mips-patches-${BASE_KV}/*.patch; do + ln -s "${x}" "${x##../mips-patches-*/}" + done + + # With symlinks created, setup the variables referencing external + # machine patches and if a machine USE flag is enabled, then unset + # its corresponding variable. + # See 0000_README for the patch numbers and their meanings. + local p_generic="51*" + local p_ip27="52*" p_ip28="53*" p_ip30="54*" + local p_xp="80*" + use ip27 && unset p_generic p_ip27 + use ip28 && unset p_ip28 + use ip30 && unset p_generic p_ip30 + use experimental && unset p_xp + + # Remove symlinks for any patches that we don't want applied. We + # do this by looping through all the above variables, and deleting + # matching symlinks that point to the corresponding patches. + # The remaining symlinks will be applied to the kernel source. + # + # $P_EXCLUDE is a new var that can be set in an ebuild to exclude + # specific patches by wildcarding the patch number. + local patchlist="${p_generic} ${p_ip27} ${p_ip28} ${p_ip30} ${p_xp} ${P_EXCLUDE}" + for x in $patchlist; + do rm -f "./${x}" + done + + # Rename the source tree to match the linux-mips git checkout date and + # machine type. + local fkv="${F_KV%-*}" + local v="${fkv}-${GITDATE}" + for x in {ip27,ip28,ip30}; do + use ${x} && v="${v}.${x}" && break + done + mv "${WORKDIR}/linux-${fkv/_/-}" "${WORKDIR}/linux-${v}" || die + S="${WORKDIR}/linux-${v}" + + # Set the EXTRAVERSION to linux-VERSION-mipsgit-GITDATE + EXTRAVERSION="${EXTRAVERSION}-mipsgit-${GITDATE}" + unpack_set_extraversion } -src_unpack() { eblit-run src_unpack v7 ; } +src_prepare() { + local psym="patch-symlinks" + + # Now go into the kernel source and patch it. + cd "${S}" + epatch "${WORKDIR}/${psym}"/*.patch +} #//------------------------------------------------------------------------------ diff --git a/sys-kernel/mips-sources/mips-sources-4.8.17.ebuild b/sys-kernel/mips-sources/mips-sources-4.8.17.ebuild index da4958e1e6fb..9772b3e4f8f4 100644 --- a/sys-kernel/mips-sources/mips-sources-4.8.17.ebuild +++ b/sys-kernel/mips-sources/mips-sources-4.8.17.ebuild @@ -73,102 +73,276 @@ UNIPATCH_LIST="${DISTDIR}/mipsgit-${BASE_KV}${KVE}-${GITDATE}.diff.xz" #//------------------------------------------------------------------------------ -# Eblit Handling Functions -# -# They'll likely be superseded someday by better ideas, possibly elibs. - -# eblit-core -# Usage: <function> [version] -# Main eblit engine -eblit-core() { - local e v func=$1 ver=$2 - for v in ${ver:+-}${ver} -${PVR} -${PV} "" ; do - e="${FILESDIR}/eblits/${func}${v}.eblit" - if [[ -e ${e} ]] ; then - . "${e}" - [[ ${func} == pkg_* ]] && eval "${func}() { eblit-run ${func} ${ver} ; }" - return 0 +err_disabled_mach() { + # Get args + local m_name="${1}" + local m_abbr="${2}" + local m_use="${3}" + local is_test="${4}" + + # Get stable version, if exists + local stable_ver="SV_${m_abbr}" + stable_ver="${!stable_ver}" + + # See if this machine needs a USE passed or skip dying + local has_use + [ ! -z "${m_use}" -a "${m_use}" != "skip" ] && has_use="USE=\"${m_use}\" " + + # Print error && (maybe) die + echo -e "" + if [ "${is_test}" != "test" ]; then + eerror "${m_name} Support has been disabled in this ebuild" + eerror "revision. If you wish to merge ${m_name} sources, then" + eerror "run ${has_use}emerge =mips-sources-${stable_ver}" + [ "${m_use}" != "skip" ] && die "${m_name} Support disabled." + else + ewarn "${m_name} Support has been marked as needing testing in this" + ewarn "ebuild revision. This usually means that any patches to support" + ewarn "${m_name} have been forward ported and maybe even compile-tested," + ewarn "but not yet booted on real hardware, possibly due to a lack of access" + ewarn "to such hardware. If you happen to boot this kernel and have no" + ewarn "problems at all, then please inform the maintainer. Otherwise, if" + ewarn "experience a bug, an oops/panic, or some other oddity, then please" + ewarn "file a bug at bugs.gentoo.org, and assign it to the mips team." + fi + + return 0 +} + +err_only_one_mach_allowed() { + echo -e "" + eerror "A patchset for a specific machine-type has already been selected." + eerror "No other patches for machines-types are permitted. You will need a" + eerror "separate copy of the kernel sources for each different machine-type" + eerror "you want to build a kernel for." + die "Only one machine-type patchset allowed" +} + +pkg_postinst() { + # Symlink /usr/src/linux as appropriate + local my_ksrc="${S##*/}" + for x in {ip27,ip28,ip30}; do + use ${x} && my_ksrc="${my_ksrc}.${x}" + done + + if [ ! -e "${ROOT}usr/src/linux" ]; then + rm -f "${ROOT}usr/src/linux" + ln -sf "${my_ksrc}" "${ROOT}/usr/src/linux" + fi +} + +pkg_setup() { + local arch_is_selected="no" + local m_ip m_enable m_name + + # Exclusive machine patchsets + # These are not allowed to be mixed together, thus only one of them may be applied + # to a tree per merge. + for x in \ + "ip27 SGI Origin 200/2000" \ + "ip28 SGI Indigo2 Impact R10000" \ + "ip30 SGI Octane" + do + set -- ${x} # Set positional params + m_ip="${1}" # Grab the first param (HW IP for SGI) + shift # Shift the positions + m_name="${*}" # Get the rest (Name) + + if use ${m_ip}; then + # Fetch the value indiciating if the machine is enabled or not + m_enable="DO_${m_ip/ip/IP}" + m_enable="${!m_enable}" + + # Make sure only one of these exclusive machine patches is selected + [ "${arch_is_selected}" = "no" ] \ + && arch_is_selected="yes" \ + || err_only_one_mach_allowed + + # Is the machine support disabled or marked as needing testing? + [ "${m_enable}" = "test" ] \ + && err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}" "test" + [ "${m_enable}" = "no" ] \ + && err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}" + + # Show relevant information about the machine + show_${m_ip}_info fi done - return 1 + + # All other systems that don't have a USE flag go here + # These systems have base-line support included in linux-mips git, so + # instead of failing, if disabled, we simply warn the user + if [ "${arch_is_selected}" = "no" ]; then + [ "${DO_IP22}" = "no" ] \ + && err_disabled_mach "SGI Indy/Indigo2 R4x00" "IP22" "skip" \ + || show_ip22_info + [ "${DO_IP32}" = "no" ] \ + && err_disabled_mach "SGI O2" "IP32" "skip" \ + || show_ip32_info + + fi } -# eblit-include -# Usage: [--skip] <function> [version] -# Includes an "eblit" -- a chunk of common code among ebuilds in a given -# package so that its functions can be sourced and utilized within the -# ebuild. -eblit-include() { - local skipable=false r=0 - [[ $1 == "--skip" ]] && skipable=true && shift - [[ $1 == pkg_* ]] && skipable=true - - [[ -z $1 ]] && die "Usage: eblit-include <function> [version]" - eblit-core $1 $2 - r="$?" - ${skipable} && return 0 - [[ "$r" -gt "0" ]] && die "Could not locate requested eblit '$1' in ${FILESDIR}/eblits/" +show_ip22_info() { + echo -e "" + einfo "IP22 systems with an R5000 processor should work with this release." + einfo "The R4x00 series of processors tend to be rather flaky, especially the" + einfo "R4600. If you have to run an R4x00 processor, then try to use an R4400." + einfo "" + einfo "Some Notes:" + einfo "\t- Supported graphics card right now is Newport (XL)." + einfo "\t- A driver for Extreme (XZ) does not exist at present." + echo -e "" } -# eblit-run-maybe -# Usage: <function> -# Runs a function if it is defined in an eblit -eblit-run-maybe() { - [[ $(type -t "$@") == "function" ]] && "$@" +show_ip27_info() { + echo -e "" + ewarn "Heavy disk I/O on recent kernels may randomly trigger a VM_BUG_ON_PAGE()" + ewarn "in move_freepages() in mm/page_alloc.c. The exact trigger cause is" + ewarn "unknown at this time. Please report any oops messages from this" + ewarn "bug to bugs.gentoo.org (assign to mips@gentoo.org)" + echo -e "" } -# eblit-run -# Usage: <function> [version] -# Runs a function defined in an eblit -eblit-run() { - eblit-include --skip common "${*:2}" - eblit-include "$@" - eblit-run-maybe eblit-$1-pre - eblit-${PN}-$1 - eblit-run-maybe eblit-$1-post +show_ip28_info() { + echo -e "" + einfo "Support for the Indigo2 Impact R10000 is now in the mainline kernel. However," + einfo "due to the R10000 Speculative Execution issue that exists with this machine," + einfo "nothing is guaranteed to work correctly. Consider enabling ${HILITE}CONFIG_KALLSYMS${NORMAL}" + einfo "in your kernel so that if the machine Oopes, you'll be able to provide valuable" + einfo "feedback that can be used to trace down the crash." + echo -e "" } -# eblit-pkg -# Usage: <phase> [version] -# Runs the pkg_* functions AND evals them so they're included in the binpkgs -eblit-pkg() { - [[ -z $1 ]] && die "Usage: eblit-pkg <phase> [version]" - eblit-core pkg_$1 $2 +show_ip30_info() { + echo -e "" + eerror "Things that DON'T work:" + eerror "\t- Do not use CONFIG_SLUB, otherwise, you'll get errors when booting" + eerror "\t\040\040regarding duplicate /sys/kernel/slab/* entries in sysfs." + eerror "\t- Impact (MGRAS) Xorg driver no longer functions due to severe bitrot." + eerror "\t- Octane is limited to a maximum of 2GB of memory right now due to a" + eerror "\t\040\040hardware quirk in the BRIDGE PCI chip that limits BRIDGE DMA" + eerror "\t\040\040addresses to 31-bits when converted into physical addresses." + eerror "\t\040\040Patches that attempt to fix the issue are highly welcome." + echo -e "" + ewarn "Things that might work, but have problems, or are unknown:" + ewarn "\t- CONFIG_TRANSPARENT_HUGEPAGE should work now, but there may still be" + ewarn "\t\040\040intermittent issues. Additionally, CONFIG_HUGETLBFS must also be" + ewarn "\t\040\040selected for hugepages to work. If use of this feature continues" + ewarn "\t\040\040to trigger random Instruction Bus Errors (IBEs), then it is best to" + ewarn "\t\040\040disable the functionality and perform a cold reset of the machine" + ewarn "\t\040\040after powering it down for at least 30 seconds." + ewarn "\t- Serial support on the Octane uses a very basic UART driver that drives" + ewarn "\t\040\040the 16550A chip on the IOC3 directly. It does not use interrupts," + ewarn "\t\040\040only a polling routine on a timer, which makes it slow and CPU-" + ewarn "\t\040\040intensive. The baud rate is limited to no more than 38.4kbps on" + ewarn "\t\040\040this driver. Patches for getting the Altix IOC3 serial driver to" + ewarn "\t\040\040work (which uses DMA and supports faster baud rates) are welcome." + ewarn "\t- UHCI Cards are known to have issues, but should still function." + ewarn "\t\040\040This issue primarily manifests itself when using pl2303 USB->Serial" + ewarn "\t\040\040adapters." + ewarn "\t- MENET boards appear to have the four ethernet ports detected, however" + ewarn "\t\040\040the six serial ports don't appear to get picked up by the IOC3" + ewarn "\t\040\040UART driver. The NIC part number is also not read correctly" + ewarn "\t\040\040from the four Number-In-a-Cans. Additional testing would be" + ewarn "\t\040\040appreciated and patches welcome." + ewarn "\t- Other XIO-based devices, like various Impact addons, remain untested" + ewarn "\t\040\040and are not guaranteed to work. This applies to various digital" + ewarn "\t\040\040video conversion boards as well." + echo -e "" + einfo "Things that DO work:" + einfo "\t- SMP works again, celebrate!" + einfo "\t- Impact (MGRAS) console only." + einfo "\t- VPro (Odyssey) console only (no X driver exists yet)." + einfo "\t- PCI Card Cages should work for many devices, except certain types like" + einfo "\t\040\040PCI-to-PCI bridges (USB hubs, USB flash card readers for example)." + einfo "\t- SCSI, RTC, basic PCI, IOC3 Ethernet, keyboard, and mouse. Please" + einfo "\t\040\040report any problems with these devices." + echo -e "" } -#//------------------------------------------------------------------------------ +show_ip32_info() { + echo -e "" + einfo "IP32 systems function well, however there are some notes:" + einfo "\t- A sound driver now exists for IP32. Celebrate!" + einfo "\t- Framebuffer console is limited to 4MB. Anything greater" + einfo "\t\040\040specified when building the kernel will likely oops" + einfo "\t\040\040or panic the kernel." + einfo "\t- X support is limited to the generic fbdev driver. No X" + einfo "\t\040\040gbefb driver exists for O2 yet. Feel free to submit" + einfo "\t\040\040patches!" + echo -e "" -load_eblit_funcs() { - # This is a sanity check to avoid QA issues. It prevents - # eblits from being referenced during metadata operations. - [ -n "${MIPS_SOURCES_EBLITS_LOADED}" ] && return - - # All are in ${FILESDIR}/eblits - # If a message for a given machine needs to change, - # then we create a new eblit and increment the - # version and reference it here. - eblit-include err_disabled_mach v1 - eblit-include err_only_one_mach_allowed v1 - eblit-include show_ip22_info v3 - eblit-include show_ip27_info v4 - eblit-include show_ip28_info v1 - eblit-include show_ip30_info v5 - eblit-include show_ip32_info v5 - - # This makes sure pkg_setup & pkg_postinst gets into any binpkg. - # Neccessary because we can't guarantee FILESDIR is around for binpkgs. - eblit-pkg setup v2 - eblit-pkg postinst v2 - - # Eblit load complete - MIPS_SOURCES_EBLITS_LOADED=1 + einfo "To Build 64bit kernels for SGI O2 (IP32) or SGI Indy/Indigo2 R4x00 (IP22)" + einfo "systems, you need to use the ${GOOD}vmlinux.32${NORMAL} make target." + einfo "Once done, boot the ${GOOD}vmlinux.32${NORMAL} file (NOT vmlinux)." } -pkg_setup() { - load_eblit_funcs - pkg_setup +src_unpack() { + # Unpack the kernel sources, update to the latest rev (if needed), + # and apply the latest patch from linux-mips git. + kernel-2_src_unpack + + # Unpack the mips-sources patchset to ${WORKDIR}/mips-patches-${BASE_KV}. + echo -e "" + cd "${WORKDIR}" + unpack "${PN}-${BASE_KV}-patches-v${GENPATCHREV}.tar.xz" + + # Create a new folder called 'patch-symlinks' and create symlinks to + # all mips-patches in there. If we want to exclude a patch, we'll + # just delete the symlink instead of the actual patch. + local psym="patch-symlinks" + mkdir "${psym}" + cd "${psym}" + for x in ../mips-patches-${BASE_KV}/*.patch; do + ln -s "${x}" "${x##../mips-patches-*/}" + done + + # With symlinks created, setup the variables referencing external + # machine patches and if a machine USE flag is enabled, then unset + # its corresponding variable. + # See 0000_README for the patch numbers and their meanings. + local p_generic="51*" + local p_ip27="52*" p_ip28="53*" p_ip30="54*" + local p_xp="80*" + use ip27 && unset p_generic p_ip27 + use ip28 && unset p_ip28 + use ip30 && unset p_generic p_ip30 + use experimental && unset p_xp + + # Remove symlinks for any patches that we don't want applied. We + # do this by looping through all the above variables, and deleting + # matching symlinks that point to the corresponding patches. + # The remaining symlinks will be applied to the kernel source. + # + # $P_EXCLUDE is a new var that can be set in an ebuild to exclude + # specific patches by wildcarding the patch number. + local patchlist="${p_generic} ${p_ip27} ${p_ip28} ${p_ip30} ${p_xp} ${P_EXCLUDE}" + for x in $patchlist; + do rm -f "./${x}" + done + + # Rename the source tree to match the linux-mips git checkout date and + # machine type. + local fkv="${F_KV%-*}" + local v="${fkv}-${GITDATE}" + for x in {ip27,ip28,ip30}; do + use ${x} && v="${v}.${x}" && break + done + mv "${WORKDIR}/linux-${fkv/_/-}" "${WORKDIR}/linux-${v}" || die + S="${WORKDIR}/linux-${v}" + + # Set the EXTRAVERSION to linux-VERSION-mipsgit-GITDATE + EXTRAVERSION="${EXTRAVERSION}-mipsgit-${GITDATE}" + unpack_set_extraversion } -src_unpack() { eblit-run src_unpack v7 ; } +src_prepare() { + local psym="patch-symlinks" + + # Now go into the kernel source and patch it. + cd "${S}" + epatch "${WORKDIR}/${psym}"/*.patch +} #//------------------------------------------------------------------------------ |