Re: [PATCH maint-1.6.5] block-sha1: avoid unaligned accesses on some big-endian systems

2012-07-14 Thread Linus Torvalds
On Sat, Jul 14, 2012 at 12:59 AM, Jonathan Nieder jrnie...@gmail.com wrote: Unfortunately, on big-endian architectures, if p is a pointer to unsigned int then current gcc assumes it is properly aligned and converts this construct to a 32-bit load. This patch seems to entirely depend on the

Re: [PATCH maint-1.6.5] block-sha1: avoid unaligned accesses on some big-endian systems

2012-07-14 Thread Jonathan Nieder
Linus Torvalds wrote: On Sat, Jul 14, 2012 at 12:59 AM, Jonathan Nieder jrnie...@gmail.com wrote: Unfortunately, on big-endian architectures, if p is a pointer to unsigned int then current gcc assumes it is properly aligned and converts this construct to a 32-bit load. This patch seems to

Re: [PATCH maint-1.6.5] block-sha1: avoid unaligned accesses on some big-endian systems

2012-07-14 Thread Linus Torvalds
On Sat, Jul 14, 2012 at 12:50 PM, Jonathan Nieder jrnie...@gmail.com wrote: After the patch, what reason does gcc have to expect that 'block' is 32-bit aligned except when it is? The code (including the code I didn't touch) never casts from char * to int * except in get/put_be32 on arches