I just don't understand why iptables needs that file at all, I can't find anything in it that uses it. I'm going to search again, and I will post my results once I figure it out.
iptables doesn't need it. It's one of those funky #include chains. include A includes B which includes C which includes Q and so on until it tries including a file it can't find. This is because there are a series of mach-* machine subdirs in include/asm-mips that each contain headers specific to a particular machine type (like spaces.h, among other things). I haven't delved into the specifics (someone else here can explain it more), but when the kernel builds, based upon the configuration of the kernel, it knows which include/asm-mips/mach-* directory to look in to snag the headers it needs. Userland doesn't know this, so for headers used in userland, you need to patch things abit. Otherwise, they break.
http://tinyurl.com/5grah <-- appCompat patch used in Gentoo's linux-headers 2.6.10 ebuild. It lacks mips-specific bits, but you can look at how x86 handles some of its include/asm-i386/mach-* sections for how we're working around these issues. It's all a hack really, until someone either fixes userland to never use kernel headers, or the kernel-side finds a way to create userland-friendly headers (but I don't see any of this happening anytime soon).
--Kumba
--
"Such is oft the course of deeds that move the wheels of the world: small hands do them because they must, while the eyes of the great are elsewhere." --Elrond