Hi John,
Today's linux-next build (powerpc allyesconfig) failed like this:
drivers/net/wireless/ath9k/hw.c: In function 'ath9k_hw_9280_spur_mitigate':
drivers/net/wireless/ath9k/hw.c:4660: internal compiler error: in expand_ex=
pr_real_1, at expr.c:9199Clearly not our fault! :-) I have informed our toolchain person. This
was using the Debian gcc-4.3. It also fails using the Debian 4.2
compiler but not the 4.1 one.For now, I will apply the following patch to just stop it building on
PowerPC.--=20
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
Alexandros Couloumbis already opened a bug for this issue on mips, which
also seems to be affected:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37014It is a gcc bug, but we'll have to work around it in the ath9k driver.
cu
Adrian--
"Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
"Only a promise," Lao Er said.
Pearl S. Buck - Dragon Seed--
I imagine that we would be happy to do that. Anyone have a clue as to how?
John
--
John W. Linville
linville@tuxdriver.com
--
Patch below, verified to fix the issue with the following compilers:
- powerpc 4.2.4
- powerpc latest 4.3 SVN
- powerpc latest 4.4 SVN
- mips 4.2.4
- mips 4.3.1The patch has to be applied twice for fixing both copies of the
cu
Adrian<-- snip -->
This patch works around an internal compiler error (gcc bug #37014) in
all gcc 4.2 compilers and the gcc 4.3 series up to at least 4.3.1
on at least powerpc and mips.Many thanks to Andrew Pinski for analyzing the gcc bug.
Signed-off-by: Adrian Bunk <bunk@kernel.org>
---
d1ec5b9fba6c50c7e98a85776a3b95d3a3a3179b
diff --git a/drivers/net/wireless/ath9k/hw.c b/drivers/net/wireless/ath9k/hw.c
index 1f6f393..5edc56d 100644
--- a/drivers/net/wireless/ath9k/hw.c
+++ b/drivers/net/wireless/ath9k/hw.c
@@ -4801,7 +4801,11 @@for (i = 0; i < 123; i++) {
if ((cur_vit_mask > lower) && (cur_vit_mask < upper)) {
- if ((abs(cur_vit_mask - bin)) < 75)
+
+ /* workaround for gcc bug #37014 */
+ volatile int tmp = abs(cur_vit_mask - bin);
+
+ if (tmp < 75)
mask_amt = 1;
else
mask_amt = 0;
--
Hi John,
On Tue, 5 Aug 2008 12:00:26 -0400 "John W. Linville" <linville@tuxdriver.co=
w?I think that "not yet" is the answer :-(
If we don't get a useful answer soon, we may just have to merge the
driver with appropriately commented negative "depends on" in Kconfig for
the arches it breaks.--=20
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
Hi Adrian,
Thanks for fishing that out Adrian.
--=20
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
| Greg KH | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Heiko Carstens | Re: -mm merge plans for 2.6.23 -- sys_fallocate |
| Tony Lindgren | [PATCH 37/90] ARM: OMAP: MPUIO wake updates |
| Greg Kroah-Hartman | [PATCH 001/196] Chinese: Add the known_regression URI to the HOWTO |
git: | |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| David Miller | [GIT]: Networking |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Benjamin Herrenschmidt | Re: powerpc allmodconfig |
