From: Martin Habets <errandir_news@xxxxxxxxxxxxxxxxx> Date: Thu, 11 May 2006 19:07:32 +0100 > + case R_SPARC_UA32: /* Like R_SPARC_32 but unaligned */ > + uv = (u8 *) v; > + location[0] = uv[0]; > + location[1] = uv[1]; > + location[2] = uv[2]; > + location[3] = uv[3]; > + break; > + This is not correct. The relocation puts "value v" at "location" not "data at address v" at "location", the latter of which is what your patch is trying to do. Simply adding "case R_SPARC_UA32:" right under "case R_SPARC_32:" would work just fine since the R_SPARC_32 code already handles arbitrary alignment of "location" which is the crucial difference between R_SPARC_32 and R_SPARC_UA32. I still wonder where you're getting that relocation from. It must be emitted by some dwarf2 frame unwind stuff. It's a shame that such bloat is aparently being emitted into objects by default. Can you send me a sample object that has such a relocation again? I don't want to add support for this relocation if it really is not needed. I'm hoping we can add a compiler option that will make this cruft not get output by the compiler since it is superfluous and of no use in the kernel build. Thanks. - To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html