On Sun, Feb 2, 2020 at 2:27 AM Andreas Schwab <sch...@linux-m68k.org> 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<<pallocChunksL2Bits - 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