This patch by John Paul Adrian Glaubitz fixes m68k libgo on the GCC 6 branch, by adding alignment required by the kernel but not otherwise imposed by the m68k backend. I bootstrapped and ran Go tests on x86_64-pc-linux-gnu, Adrian tested on m68k. Committed to GCC 6 branch.
Ian
@@ -, +, @@ --- libgo/runtime/runtime.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/libgo/runtime/runtime.h +++ a/libgo/runtime/runtime.h @@ -154,14 +154,14 @@ struct Lock // Futex-based impl treats it as uint32 key, // while sema-based impl as M* waitm. // Used to be a union, but unions break precise GC. - uintptr key; + uintptr key __attribute__((aligned(4))); }; struct Note { // Futex-based impl treats it as uint32 key, // while sema-based impl as M* waitm. // Used to be a union, but unions break precise GC. - uintptr key; + uintptr key __attribute__((aligned(4))); }; struct String { --