From 1151b9dac4a98d49ef7f80f07ddd826ff51e0b36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Chigot?= Date: Wed, 13 May 2020 10:39:30 +0200 Subject: [PATCH] cpu: add support for gccgo on aix Change-Id: Icb963d94baf7a1876ce89d0c5fe8cee04bb50629 Reviewed-on: https://go-review.googlesource.com/c/sys/+/233717 Run-TryBot: Tobias Klauser TryBot-Result: Gobot Gobot Reviewed-by: Tobias Klauser --- cpu/{cpu_aix_ppc64.go => cpu_aix.go} | 2 +- cpu/syscall_aix_gccgo.go | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) rename cpu/{cpu_aix_ppc64.go => cpu_aix.go} (96%) create mode 100644 cpu/syscall_aix_gccgo.go diff --git a/cpu/cpu_aix_ppc64.go b/cpu/cpu_aix.go similarity index 96% rename from cpu/cpu_aix_ppc64.go rename to cpu/cpu_aix.go index be602722..da298966 100644 --- a/cpu/cpu_aix_ppc64.go +++ b/cpu/cpu_aix.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// +build aix,ppc64 +// +build aix package cpu diff --git a/cpu/syscall_aix_gccgo.go b/cpu/syscall_aix_gccgo.go new file mode 100644 index 00000000..76fbe40b --- /dev/null +++ b/cpu/syscall_aix_gccgo.go @@ -0,0 +1,27 @@ +// Copyright 2020 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. + +// Recreate a getsystemcfg syscall handler instead of +// using the one provided by x/sys/unix to avoid having +// the dependency between them. (See golang.org/issue/32102) +// Morever, this file will be used during the building of +// gccgo's libgo and thus must not used a CGo method. + +// +build aix +// +build gccgo + +package cpu + +import ( + "syscall" +) + +//extern getsystemcfg +func gccgoGetsystemcfg(label uint32) (r uint64) + +func callgetsystemcfg(label int) (r1 uintptr, e1 syscall.Errno) { + r1 = uintptr(gccgoGetsystemcfg(uint32(label))) + e1 = syscall.GetErrno() + return +}