Skip to content

Tests fail on armel (little-endian ARM) #3532

Closed
@oerdnj

Description

@oerdnj
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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions