There's an unaligned word access in ninja's murmurhash implementation:
https://github.com/martine/ninja/blob/master/src/hash_map.h

We need to change

    unsigned int k = *(unsigned int *)data;

to

    unsigned int k;
    memcpy(&k, data, sizeof k);

and it should fix the unaligned accesses on strict arches like sparc64 and mips.

Sorry, I'm not able to fix this myself right now, but I can help
upstream the fix tomorrow.  (I'm of course ok with any ports fix for
this.)


On Mon, Jul 1, 2013 at 10:24 AM, James Turner <jtur...@openbsd.org> wrote:
> Mathew,
>
> I just wanted to let you know we have discovered some build failures on
> sgi and mips64el during the "Build ninja using itself" phase. It looks
> like something is segfaulting. Below is the build output although it
> isn't very helpful.
>
> I can test diffs on mips64el and plan on trying to compile with debug
> symbols to see if I can get more info out of the core file that is left.
>
> Building ninja using itself...
> *** Error 246 in devel/ninja (Makefile:32 'do-build': @cd
> /usr/obj/ports/ninja-1.3.4/ninja-1.3.4 && /usr/bin/env -i CXX="c++"CC=cc 
> PYTHONUS...)
> *** Error 1 in devel/ninja
> (/usr/ports/infrastructure/mk/bsd.port.mk:2634'/usr/obj/ports/ninja-1.3.4/.build_done')
> *** Error 1 in devel/ninja
> (/usr/ports/infrastructure/mk/bsd.port.mk:2367 'build')
> ===> Exiting devel/ninja with an error
> /bin/sh: exit 1: not found
> *** Error 127 in /usr/ports (infrastructure/mk/bsd.port.subdir.mk:147'build')
> Error: /usr/ports/packages/mips64el/all/ninja-1.3.4.tgz does not exist
>
> --
> James Turner

Reply via email to