compat-wireless: fix for gcc 4.5.4 from Wuodan

This commit is contained in:
Zero_Chaos 2012-09-03 15:37:07 +00:00
parent a0789202c3
commit c5aa8fec33
3 changed files with 205 additions and 0 deletions

View file

@ -16,6 +16,7 @@ AUX channel-negative-one-maxim.patch 1021 SHA256 19f7fc0753636c32026e444e23bd101
AUX compat-chaos.patch 6187 SHA256 5e8c11b46bc8acf10a2ce8b934fec32662b57c003c99e5e0ca4717a8c6b19474 SHA512 40f8c15935d3f942dc08a223405e4cb46d0e48ad94d568da582f4b45c1fee41142b3b98d9079d0dfc621fbdfc0d9a8887247fd0e477e04bef571415b7f961409 WHIRLPOOL b749dd4f7f9802335ed610f0d51e0de35a9d88209a67530527428025c494f64759b052549e57afe10928bac5e2747f60ab47f0c8e1f5a5f442fa9db099ccad21
AUX compat-sched.patch 286 SHA256 675e1f877f076f7941dc89248a99b01508cf8a05255bd5a2e2a46c71b148f73e SHA512 20530c0ed571da7cffd33cdf7bab7b4d77cd8c43e2fce9541efca4413a557de8ec676909648fd16c2f142fde3067c37bbc09b14331d8af3dd816d89723f475dd WHIRLPOOL fce079084ea5314880be3f82aa2cbd869309d79b391d6b54d8041abff02514dbd44ff74f6ac000325628b7005903e9cc3535f97686311f5019c312e8a7eb749f
AUX compat-wireless-3.5-grsec.patch 14300 SHA256 ad7cdbf8fca6d3dbe9c125b2b9be1f88cbe3e99bc7dee83d6b2797873b7f9922 SHA512 0cc019cbcfc74135545fdf706b5db222c50c95a3b3e9c16b5e2db219365a328ba1f25a50512734fc0b4f8866db7c99ccc721d04f35df0e7ca376bb08369358c0 WHIRLPOOL 7c4595fe92afd4635e355773bb20ace6810a51880f3495a979c6e360e64cc3850c46acdf28cde7831f725c77ce15b7071b1be0382577fd43dbea5388de4b37ee
AUX compat-wireless-3.5-grsec2.patch 819 SHA256 03add201c40734549319f927975e8bf65fc0d051072af1d2347525bc02da0cd1 SHA512 0471890ee528a15f14b3e6778b2eafca0e6f3b1ed3e7a98309986c57fd1de1718c60ddf716d80d74721b453a48c80ba9f0c1cef17578d1b92f56d4946e6edee1 WHIRLPOOL 1575683f1e368b262ab84d54e96d486b7de8c7dc455ff2a31e186fb3229590225a773e6935b120aa23f4650b145f5949077eb3672f0f0dab0541c1fc894fd843
AUX driver-debug.patch 2801 SHA256 06a37359ac7129a6f7db2f4e7f72d67c1f7014fd0adf439a89d119415a4316c2 SHA512 38947057ad7dd553f608216eb6858368a97d25a9711463ffb4c1ef477898300d401a8e7e881189ae85063f3e03ef1f432778db1a720b3f9fa04f14a14d2c1d8b WHIRLPOOL fb3ebc2e83a817454b0ec8e3a41ffba1c53fd32813f3cbd3aeda3452f9fc74267ffd6bec19a4a29160b86f4fed993bd0c665325b4e82edc091d3723dba05d510
AUX failed_ath5k-frequency-chaos-2.6.28.patch 5787 SHA256 8e9e0888e890a2970274a7ba9d40d75e01ebaedb0e16700d8994b9ecfe921185 SHA512 160bea5dbc42b420690a6373666bd0e59eafb98937127d7ea0b02f380b6a49a78d732a773e63461a2ae6b1e882ba37201a6e00cc161b78ec9042aa8d377004cd WHIRLPOOL 2ee067b660c9c70faf28e3b6a4c94d93a4df7735683e97566e6726bbf22a9af9cdafc8e88b9dc7b73cddfda2cc392796195a4679d67c380807242a34c3270982
AUX failed_ieee80211_inject-2.6.22.patch 772 SHA256 7403780cd3df720439f54b6cad88a803aacc0260af8fbbab0cfa25e523ae2ae9 SHA512 ed3279754e2bb97d79c61373903714d53790fa10201784c39931829ba9cc634bb7c9e3e4a17de7fe671545ba1c367ac5ae59d849c66325ad90f9b5f71134d26f WHIRLPOOL f61cc0e7e5a4505504aa5028a25871c0f8fafc3b30c9de93ff1d74cb0c42ca6758f005329b886183157c858ca09a6c48534c7e1c2486cd4fb9eb2ea78204e30a
@ -83,6 +84,7 @@ EBUILD compat-wireless-3.3.ebuild 6274 SHA256 71cecd0c190a6e7e769e09ad3d567837ab
EBUILD compat-wireless-3.4_rc1-r1.ebuild 6104 SHA256 62aa12b407887d185ecf615156055c95996683226afb335becfb8c0f4b2a65f7 SHA512 8a96e2469664c164ef5a3c3a8a3693f4b7f9b522b71e99902a548ea320b7dd5598a0c444f75356978e8468138bede484673b4c6adfd4a99b76d5c7a478ec1784 WHIRLPOOL 69312db58e2afe774187dce18b2dd30f05e962ed56da93a54f362be9859a411d4ec804c9fd4494a059d8067286e4f6aa10c6ed0e434581ac68bb84b37b8117dc
EBUILD compat-wireless-3.4_rc1.ebuild 6136 SHA256 c251d84ecafe0562548cc922bf412a5d3b311c1aebf8449b6d73a11d4cdfd649 SHA512 9f367dd14a3fad1bbed9af569b34dd88cc64e28de8173ab863e3f7999f91fd1be49444fe8213ff4ec7e7d379c30648452ddfb8b81fca60aa022749c442eeb1c7 WHIRLPOOL 004d8366fcd5a9fbfa68b4daf1a869f60d9c25e608deddd9d264b505294c50996f05eee51d53f91dc9ca798c37f6e17383dd9a41fe24ea65c1b3227da13a6db6
EBUILD compat-wireless-3.4_rc3.ebuild 5871 SHA256 609960ce2388900472d079cba2947ed6fa73275dd9b0adbb1cc94e5a8b500ef7 SHA512 22b48e5e84cf7145a111a92737b1c6bcd50331a59c8453ee2687ae45c6ef68cc56ec6d5ab8827a272ed56e3353f6387b51420b930ef272aa7cf3462300447ac9 WHIRLPOOL 76f5087b23a6ee70a92529b5fa91838c67115f2e9f737c6f64481f1f008860965b6426a6586fd9a7c2629e11f28ac266413d4260b24211759f703662484d5961
EBUILD compat-wireless-3.5-r1.ebuild 6795 SHA256 762f90d7fcb0771555a212e3d0c45b3f2641a688e32c03ecc2aeab1161fa1771 SHA512 bbe14b427338dbf6d5f3ae9d9ab2f066920216e6b39fb50bf7cc41cf40c005d43746a84cd6001f69bcf309692c14780983045ba55031650e93fefdd4cb8b9206 WHIRLPOOL b1b7dd73404a9447c50eaf4281621e5ac9d19223a1b5b5f5bfec96f4a7820ae32470881287191d79a298f97038e7a7bb522fe940b689bb25d60f23fa02a53cf9
EBUILD compat-wireless-3.5.ebuild 6737 SHA256 e960ae34c7e9457d0b144324515c61a5244af52cec0c6ad39a1e1c89a37c6d42 SHA512 f892159db95404a9dfc43645dd1f83d9033f135255ef840e07c44f7e1dcf6f2a7ffde549389e1da535a60db133a5859d5dd905f86ab9a7e8c7860848ab858376 WHIRLPOOL 077fd3a76598e23a475a7023c730f58bd14fff71d0fb8fd4e91e27b09d69fa97e4212db683bcceae7a0f804287307b404789e9a4078a68a2299a56b3d87ebb26
EBUILD compat-wireless-3.5_rc3.ebuild 5812 SHA256 b2987b81c8a24e15373bd95143e2bf54d693d6c49a76d35b0eb7994f4c43f509 SHA512 4613134287641f1b4a3338b6956eaa279a1ca71152093f49d887e47044be14b03a91b5cb3df6fd7b6a9081cf65553ce758a1003bbbd0b821f47ac83a6946868a WHIRLPOOL ab32986b6153a70f5212cf157492357879166661933186897e4105234252cfa867440ede23494347d827998c13bd11a05956df2c9e2b5509067e64a3d7abcef0
MISC metadata.xml 228 SHA256 8715828d1bff71d5d96b991ba600bae9376c1c80c96f0f102260fc335ca22487 SHA512 006b031017fe79d0da68ed1c2684d2b87f75976111d8abdb18d126ffe142df8ded67805f14fe4adfe17e93287080126b7f4af64dac0ebaa1d9fe4c97e5f9573a WHIRLPOOL e711ede3bf7bcf0dc9d3ecd2706e4120270d4942718ee901f8d42c1c86055c8b153bdb24d6682a56d14f5b14d4ff220c115f14714b3f039bdc3deeece3d1fd02

View file

@ -0,0 +1,170 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="4"
inherit linux-mod linux-info versionator eutils
##Stable
MY_P=${P/_rc/-rc}
MY_PV=v$(get_version_component_range 1-2)
DESCRIPTION="Stable kernel pre-release wifi subsystem backport"
HOMEPAGE="http://wireless.kernel.org/en/users/Download/stable"
CRAZY_VERSIONING="1-snpc"
SRC_URI="http://www.orbit-lab.org/kernel/${PN}-3.0-stable/${MY_PV}/${MY_P}-${CRAZY_VERSIONING}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~arm ~x86"
IUSE="atheros_obey_crda bluetooth b43 b44 debugfs debug-driver full-debug injection livecd loadmodules noleds pax_kernel"
DEPEND="!net-wireless/compat-wireless-builder"
RDEPEND="${DEPEND}
>=sys-kernel/linux-firmware-20110219
sys-fs/udev"
S="${WORKDIR}"/"${MY_P}"-${CRAZY_VERSIONING}
RESTRICT="strip"
CONFIG_CHECK="!DYNAMIC_FTRACE"
pkg_setup() {
CONFIG_CHECK="~NET_SCHED"
CONFIG_CHECK="~IPW2200_PROMISCUOUS"
linux-mod_pkg_setup
kernel_is -lt 2 6 27 && die "kernel 2.6.27 or higher is required for compat wireless to be installed"
kernel_is -gt $(get_version_component_range 1) $(get_version_component_range 2) $(get_version_component_range 3) && die "The version of compat-wireless you are trying to install contains older modules than your kernel. Failing before downgrading your system."
#these things are not optional
linux_chkconfig_module MAC80211 || die "CONFIG_MAC80211 must be built as a _module_ !"
linux_chkconfig_module CFG80211 || die "CONFIG_CFG80211 must be built as a _module_ !"
linux_chkconfig_module LIBIPW || ewarn "CONFIG_LIBIPW really should be set or there will be no WEXT compat"
if use b43; then
linux_chkconfig_module SSB || die "You need to enable CONFIG_SSB or USE=-b43"
fi
if use b44; then
linux_chkconfig_module SSB || die "You need to enable CONFIG_SSB or USE=-b44"
fi
}
src_prepare() {
use pax_kernel && epatch "${FILESDIR}"/${P}-grsec.patch
use pax_kernel && epatch "${FILESDIR}"/${P}-grsec2.patch
#mcgrof said prep for inclusion in compat-wireless.git but this causes issues
#find "${S}" -name Makefile | xargs sed -i -e 's/export CONFIG_/export CONFIG_COMPAT_/' -e 's/COMPAT_COMPAT_/COMPAT_/' -e 's/CONFIG_COMPAT_CHECK/CONFIG_CHECK/'
#sed -i -e 's/export CONFIG_/export CONFIG_COMPAT_/' -e 's/COMPAT_COMPAT_/COMPAT_/' "${S}"/config.mk
# CONFIG_CFG80211_REG_DEBUG=y
sed -i '/CFG80211_REG_DEBUG/s/^# *//' "${S}"/config.mk
#this patch ignores the regulatory settings of an atheros card and uses what CRDA thinks is right
if use atheros_obey_crda; then
ewarn "You have enabled atheros_obey_crda which doesn't do what you think."
ewarn "This use flag will cause the eeprom of the card to be ignored and force"
ewarn "world roaming on the device until crda provides a valid regdomain."
ewarn "Short version, this is not a way to break the law, this will automatically"
ewarn "make your card less functional unless you set a proper regdomain with iw/crda."
epatch "${FILESDIR}"/ath_regd_optional.patch
fi
if use injection; then
epatch "${FILESDIR}"/4002_mac80211-2.6.29-fix-tx-ctl-no-ack-retry-count.patch
epatch "${FILESDIR}"/4004_zd1211rw-2.6.28.patch
# epatch "${FILESDIR}"/mac80211.compat08082009.wl_frag+ack_v1.patch
# epatch "${FILESDIR}"/4013-runtime-enable-disable-of-mac80211-packet-injection.patch
epatch "${FILESDIR}"/ipw2200-inject.3.4.6.patch
fi
use noleds && epatch "${FILESDIR}"/leds-disable-strict.patch
use debug-driver && sed -i '/DEBUG=y/s/^# *//' "${S}"/config.mk
use debugfs && sed -i '/DEBUGFS/s/^# *//' "${S}"/config.mk
if use full-debug; then
if use debug-driver ; then
sed -i '/CONFIG=/s/^# *//' "${S}"/config.mk
else
ewarn "Enabling full-debug includes debug-driver."
sed -i '/DEBUG=/s/^# *//' "${S}"/config.mk
fi
fi
# Disable B44 ethernet driver
if ! use b44; then
sed -i '/B44=/s/ */#/' "${S}"/config.mk || die "unable to disable B44 driver"
sed -i '/B44_PCI=/s/ */#/' "${S}"/config.mk || die "unable to disable B44 driver"
fi
# Disable B43 driver
if ! use b43; then
sed -i '/B43=/s/ */#/' "${S}"/config.mk || die "unable to disable B43 driver"
sed -i '/B43_PCI_AUTOSELECT=/s/ */#/' "${S}"/config.mk || die "unable to disable B43 driver"
#CONFIG_B43LEGACY=
fi
# fixme: there are more bluethooth settings in the config.mk
if ! use bluetooth; then
sed -i '/COMPAT_BLUETOOTH=/s/ */#/' "${S}"/config.mk || die "unable to disable bluetooth driver"
sed -i '/COMPAT_BLUETOOTH_MODULES=/s/ */#/' "${S}"/config.mk || die "unable to bluetooth B44 driver"
fi
#enable alx atheros ethernet driver
sed -i 's/ALX=n/ALX=m/' "${S}"/config.mk || die "Failed to enable Atheros ALX driver"
#avoid annoying ACCESS DENIED sandbox errors
sed -i "s/\${MAKE} -C \${KLIB_BUILD} kernelversion/echo ${KV_FULL}/g" compat/scripts/gen-compat-config.sh || die "sed failed"
sed -i "s/shell \$(MAKE) -C \$(KLIB_BUILD) kernelversion/echo ${KV_FULL}/g" config.mk || die "sed failed"
sed -i "s/make -C \$KLIB_BUILD kernelversion/echo ${KV_FULL}/g" scripts/gen-compat-autoconf.sh || die "sed failed"
}
src_compile() {
addpredict "${KERNEL_DIR}"
set_arch_to_kernel
emake KLIB_BUILD="${DESTDIR}"/lib/modules/"${KV_FULL}"/build || die "emake failed"
}
src_install() {
for file in $(find -name \*.ko); do
insinto "/lib/modules/${KV_FULL}/updates/$(dirname ${file})"
doins "${file}"
done
dosbin scripts/athenable scripts/b43load scripts/iwl-enable \
scripts/madwifi-unload scripts/athload scripts/iwl-load \
scripts/b43enable scripts/unload.sh
dodir /usr/lib/compat-wireless
exeinto /usr/lib/compat-wireless
doexe scripts/modlib.sh
dodoc README
dodir /$(get_libdir)/udev/rules.d/
insinto /$(get_libdir)/udev/rules.d/
doins udev/50-compat_firmware.rules
exeinto /$(get_libdir)/udev/
doexe udev/compat_firmware.sh
}
pkg_postinst() {
update_depmod
update_moduledb
if use !livecd; then
if use loadmodules; then
einfo "Attempting to unload modules..."
/usr/sbin/unload.sh 2>&1 | grep -E FATAL && ewarn "Unable to remove running modules, system may be unhappy, reboot HIGHLY recommended!"
einfo "Triggering automatic reload of needed modules..."
/sbin/udevadm trigger
einfo "We have attempted to load your new modules for you, this may fail horribly, or may just cause a network hiccup."
einfo "If you experience any issues reboot is the simplest course of action."
fi
fi
if use !loadmodules; then
einfo "You didn't USE=loadmodules but you can still attempt to switch to the new drivers without reboot."
einfo "Run 'unload.sh' then 'udevadm trigger' to cause udev to load the needed drivers."
einfo "If unload.sh fails for some reason you should be able to simply reboot to fix everything and load the new modules."
fi
}
pkg_postrm() {
remove_moduledb
}

View file

@ -0,0 +1,33 @@
--- drivers/net/wireless/ti/wl12xx/main.c
+++ drivers/net/wireless/ti/wl12xx/main.c
Thanks to ryao for explaining the fix on ZFS!
@@ -612,6 +612,10 @@
}
}
+static struct wlcore_ops wl127x_ops = {
+ .prepare_read = wl127x_prepare_read
+};
+
static int wl12xx_identify_chip(struct wl1271 *wl)
{
int ret = 0;
@@ -631,7 +635,8 @@
sizeof(wl->conf.mem));
/* read data preparation is only needed by wl127x */
- wl->ops->prepare_read = wl127x_prepare_read;
+ /* wl->ops->prepare_read = wl127x_prepare_read; */
+ wl->ops = &wl127x_ops;
break;
@@ -650,7 +655,8 @@
sizeof(wl->conf.mem));
/* read data preparation is only needed by wl127x */
- wl->ops->prepare_read = wl127x_prepare_read;
+ /* wl->ops->prepare_read = wl127x_prepare_read; */
+ wl->ops = &wl127x_ops;
break;