This patch to libgo aligns the variable work in mgc0.c on an 8-byte
boundary.  The code expects that to be the case, and complains if it is
not aligned.  It would already be the case on a 64-bit system, but not
necessarily on a 32-bit system.  I haven't been able to recreate PR
59866, but I think this will fix it.  Bootstrapped and ran Go testsuite
on x86_64-unknown-linux-gnu.  Committed to 4.8 branch and mainline.

Ian

diff -r f1ef2f3189a2 libgo/runtime/mgc0.c
--- a/libgo/runtime/mgc0.c	Thu Jan 16 20:32:18 2014 -0800
+++ b/libgo/runtime/mgc0.c	Fri Jan 17 14:36:08 2014 -0800
@@ -180,7 +180,7 @@
 	Obj	*roots;
 	uint32	nroot;
 	uint32	rootcap;
-} work;
+} work __attribute__((aligned(8)));
 
 enum {
 	GC_DEFAULT_PTR = GC_NUM_INSTR,

Reply via email to