zlib: Fix build of powerpc boot wrapper
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 13 Jan 2010 05:19:34 +0000 (16:19 +1100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 14 Jan 2010 00:13:39 +0000 (16:13 -0800)
commit6846ee5ca68d81e6baccf0d56221d7a00c1be18b
treef2c1fdbeb24ca3de7ba23a4c0b3d2ce176abcf41
parent8866f9df4a5b91a4e514ccc76472261a644a3848
zlib: Fix build of powerpc boot wrapper

Commit ac4c2a3bbe5db5fc570b1d0ee1e474db7cb22585 broke the build
of all powerpc boot wrappers.

It attempts to add an include of autoconf.h but used the wrong
path for it. It also adds -D__KERNEL__ to our boot wrapper, both
things that we pretty much didn't do on purpose so far.

We want our boot wrapper to remain independent enough of the kernel
for various reasons, one of them being that you can "wrap" an existing
kernel at distro install time which allows to ship one kernel image
and a set of boot wrappers for different platforms, the wrappers
don't have to be built out of the same kernel build tree.

It's also incorrect to do what the patch does in our boot environment
since we may not have a proper alignment exception handler which means
we may not be able to fixup the few cases where an unaligned access will
need SW emulation (depends on the core variant, could be when crossing
page or segment boundaries for example).

This patch fixes it by putting the old code back in and using the
new "fancy" variant only when CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
is set, which happens not to be set on powerpc since we don't include
autoconf.h. It also reverts the changes to our boot wrapper Makefile.

This means that x86 should, afaik, keep the optimisations since its
boot wrapper does include autoconf.h and define __KERNEL__ (though I
doubt they make that much different outside of slow embedded processors).

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/powerpc/boot/Makefile
lib/zlib_inflate/inffast.c