Closed
Description
What steps will reproduce the problem? If possible, include a link to a program on play.golang.org. 1. Build on armel and run test What is the expected output? ok sync/atomic What do you see instead? SIGILL: illegal instruction PC=0xc233c sync/atomic.armAddUint64(0x106001a8, 0x1, 0x0, 0x10600198, 0x54c34, ...) /build/buildd-golang_1-3-armel-OqW0w_/golang-1/src/pkg/sync/atomic/asm_arm.s:66 +0x8 sync/atomic_test._func_008(0x0, 0x0) /usr/lib/go/src/pkg/sync/atomic/atomic_test.go:37 +0x84 sync/atomic_test.init() /usr/lib/go/src/pkg/sync/atomic/atomic_test.go:39 +0x78 main.init() /tmp/go-build096360980/sync/atomic/_test/_testmain.go:102 +0x70 goroutine 2 [runnable]: created by runtime.main /build/buildd-golang_1-3-armel-OqW0w_/golang-1/src/pkg/runtime/proc.c:221 trap 0x6 error 0x0 oldmask 0x0 r0 0x0 r1 0xa r2 0x106001a8 r3 0x594ba8 r4 0x4da30 r5 0x40040f70 r6 0xa r7 0x10622640 r8 0xefc0a940 r9 0x186c64 r10 0x10625000 fp 0xfffffff8 ip 0xcafebabe sp 0x40040f6c lr 0xc2384 pc 0xc233c cpsr 0x60000010 fault 0x0 FAIL sync/atomic 0.150s Which compiler are you using (5g, 6g, 8g, gccgo)? 5g Which operating system are you using? armel (Little-endian ARM, e.g. GOARM=5) Which version are you using? (run 'go version') go1 Please provide any additional information below. The build variables are set using this logic: ifeq ($(DEB_HOST_ARCH_CPU), i386) GOARCH := 386 GOPREFIX := 8 else ifeq ($(DEB_HOST_ARCH_CPU), amd64) GOARCH := amd64 GOPREFIX := 6 else ifeq ($(DEB_HOST_ARCH_CPU), arm) GOARCH := arm GOPREFIX := 5 ifeq ($(DEB_HOST_ARCH), armel) GOARM := 5 else ifeq ($(DEB_HOST_ARCH), armhf) GOARM := 6 else $(error unrecognized arm architecture $(DEB_HOST_ARCH)!) endif else $(error unrecognized instruction set $(DEB_HOST_ARCH_CPU)!) endif It looks like some GOARM=6 code has creeped into GOARM=5 branch, but I could be mistaken. Full build log is here: https://buildd.debian.org/status/fetch.php?pkg=golang&;arch=armel&ver=2%3A1-3&stamp=1334187589