https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107992
--- Comment #1 from Ian Lance Taylor <ian at airs dot com> --- Thanks. This is happening because the data structures that Go's garbage collector uses require that all pointers be aligned on their natural boundaries. Unfortunately m68k only provides 2-byte alignment for 4-byte pointers, not 4-byte alignment. I don't know if there will be a simple fix. We could probably adjust the alignment for data structures defined in Go, which would fix this case, but that wouldn't help with C interoperability.