It’s a bug in the library if it uses 64 bit atomic operations without ensuring 64 bit alignment. Putting the alignment-required field at the top of the struct is the traditional method.
//jb On 14 Aug 2018, at 08:45, Stephan Mühlstrasser <stephan.muehlstras...@gmail.com<mailto:stephan.muehlstras...@gmail.com>> wrote: Am Montag, 13. August 2018 23:47:11 UTC+2 schrieb Dave Cheney: I don’t think that will help. The problem is not cross compilation. The problem is when run in a 32bit environment the offset of that field is not guaranteed to be aligned to 8 bytes. You’ve got a 50/50 chance that each allocation will be properly aligned. That sounds like a pretty severe compiler bug then. This makes it more or less impossible to use any third-party libraries with Go on ARM unless you check them and all their dependencies whether they use sync/atomic. Apparently the Google Cloud Go APIs fall into this category and should not be used on ARM 32-bit. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com<mailto:golang-nuts+unsubscr...@googlegroups.com>. For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.