From e2b6cebcd697345495bafddba000ff82fc96c0db Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 28 Apr 2015 17:58:17 -0700 Subject: [PATCH] misc/cgo/test/issue9400: fix to build with gccgo This doesn't test much with gccgo, but at least it builds now, and the test does, unsurprisingly, pass. A proper test would require adding assembly files in GCC syntax for all platforms that gccgo supports, which would be infeasible. Also added copyright headers to the asm files. Change-Id: Icea5af29d7d521a0681506ddb617a79705b76d33 Reviewed-on: https://go-review.googlesource.com/9417 Reviewed-by: Minux Ma --- misc/cgo/test/issue9400/asm_386.s | 6 ++++++ misc/cgo/test/issue9400/asm_amd64x.s | 5 +++++ misc/cgo/test/issue9400/asm_arm.s | 6 ++++++ misc/cgo/test/issue9400/asm_arm64.s | 6 ++++++ misc/cgo/test/issue9400/asm_ppc64x.s | 5 +++++ misc/cgo/test/issue9400/gccgo.go | 24 ++++++++++++++++++++++++ 6 files changed, 52 insertions(+) create mode 100644 misc/cgo/test/issue9400/gccgo.go diff --git a/misc/cgo/test/issue9400/asm_386.s b/misc/cgo/test/issue9400/asm_386.s index b277fa1c1b..e37a54f2af 100644 --- a/misc/cgo/test/issue9400/asm_386.s +++ b/misc/cgo/test/issue9400/asm_386.s @@ -1,3 +1,9 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !gccgo + #include "textflag.h" TEXT ·RewindAndSetgid(SB),NOSPLIT,$0-0 diff --git a/misc/cgo/test/issue9400/asm_amd64x.s b/misc/cgo/test/issue9400/asm_amd64x.s index 2c97e1375d..f09e95d4cf 100644 --- a/misc/cgo/test/issue9400/asm_amd64x.s +++ b/misc/cgo/test/issue9400/asm_amd64x.s @@ -1,4 +1,9 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + // +build amd64 amd64p32 +// +build !gccgo #include "textflag.h" diff --git a/misc/cgo/test/issue9400/asm_arm.s b/misc/cgo/test/issue9400/asm_arm.s index d9d2abc2d4..5c5983d4c2 100644 --- a/misc/cgo/test/issue9400/asm_arm.s +++ b/misc/cgo/test/issue9400/asm_arm.s @@ -1,3 +1,9 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !gccgo + #include "textflag.h" TEXT cas<>(SB),NOSPLIT,$0 diff --git a/misc/cgo/test/issue9400/asm_arm64.s b/misc/cgo/test/issue9400/asm_arm64.s index 0c024e8333..cba525f4c0 100644 --- a/misc/cgo/test/issue9400/asm_arm64.s +++ b/misc/cgo/test/issue9400/asm_arm64.s @@ -1,3 +1,9 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !gccgo + #include "textflag.h" TEXT ·RewindAndSetgid(SB),NOSPLIT,$-8-0 diff --git a/misc/cgo/test/issue9400/asm_ppc64x.s b/misc/cgo/test/issue9400/asm_ppc64x.s index 0aaa10cdd0..7dfe37e7c6 100644 --- a/misc/cgo/test/issue9400/asm_ppc64x.s +++ b/misc/cgo/test/issue9400/asm_ppc64x.s @@ -1,4 +1,9 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + // +build ppc64 ppc64le +// +build !gccgo #include "textflag.h" diff --git a/misc/cgo/test/issue9400/gccgo.go b/misc/cgo/test/issue9400/gccgo.go new file mode 100644 index 0000000000..6b9d5fa3a7 --- /dev/null +++ b/misc/cgo/test/issue9400/gccgo.go @@ -0,0 +1,24 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build gccgo + +package issue9400 + +import ( + "runtime" + "sync/atomic" +) + +// The test for the gc compiler resets the stack pointer so that the +// stack gets modified. We don't have a way to do that for gccgo +// without writing more assembly code, which we haven't bothered to +// do. So this is not much of a test. + +func RewindAndSetgid() { + atomic.StoreInt32(&Baton, 1) + for atomic.LoadInt32(&Baton) != 0 { + runtime.Gosched() + } +} -- 2.48.1