Something like attached. I will clean it up next week and submit it then. It should also fix some arm64be related issues too. Thanks, Andrew Pinski On Mon, Feb 3, 2020 at 6:17 PM Ian Lance Taylor wrote: > > On Sun, Feb 2, 2020 at 2:27 AM Andreas Schwab wrote: > > > > I'm getting these errors on aarch64 with -mabi=ilp32: > > > > ../../../../libgo/go/runtime/mpagealloc.go:226:38: error: shift count overflow > > 226 | chunks [1 << pallocChunksL1Bits]*[1 << pallocChunksL2Bits]pallocData > > | ^ > > ../../../../libgo/go/runtime/mgcscavenge.go:487:15: error: shift count overflow > > 487 | l2 := (*[1 << pallocChunksL2Bits]pallocData)(atomic.Loadp(unsafe.Pointer(&s.chunks[i.l1()]))) > > | ^ > > ../../../../libgo/go/runtime/mpagealloc.go:138:22: error: shift count overflow > > 138 | return uint(i) & (1< > | ^ > > ../../../../libgo/go/runtime/mpagealloc.go:129:21: error: integer constant overflow > > 129 | return uint(i) >> pallocChunksL1Shift > > | ^ > > ../../../../libgo/go/runtime/mpagealloc_64bit.go:34:2: error: integer constant overflow > > 34 | summaryL0Bits, > > | ^ > > I'm not sure that gccgo ever fully worked with aarch64 -mabi=ilp32. > In Go I think that will have to be represented with a new GOARCH > value, arm64p32. > > Ian