Server : LiteSpeed System : Linux in-mum-web1333.main-hosting.eu 4.18.0-553.37.1.lve.el8.x86_64 #1 SMP Mon Feb 10 22:45:17 UTC 2025 x86_64 User : u141265441 ( 141265441) PHP Version : 8.4.3 Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail Directory : /proc/self/root/opt/golang/1.22.0/src/cmd/go/testdata/script/ |
# Tests that the linker implements the PPC64 ELFv2 ABI
# register save and restore functions as defined in
# section 2.3.3.1 of the PPC64 ELFv2 ABI when linking
# external objects most likely compiled with gcc's
# -Os option.
#
# Verifies golang.org/issue/52366 for linux/ppc64le
[!GOOS:linux] skip
[!compiler:gc] skip
[!cgo] skip
[!GOARCH:ppc64le] skip
go build -ldflags='-linkmode=internal'
exec ./abitest
stdout success
-- go.mod --
module abitest
-- abitest.go --
package main
/*
#cgo CFLAGS: -Os
int foo_fpr() {
asm volatile("":::"fr31","fr30","fr29","fr28");
}
int foo_gpr0() {
asm volatile("":::"r30","r29","r28");
}
int foo_gpr1() {
asm volatile("":::"fr31", "fr30","fr29","fr28","r30","r29","r28");
}
int foo_vr() {
asm volatile("":::"v31","v30","v29","v28");
}
*/
import "C"
import "fmt"
func main() {
C.foo_fpr()
C.foo_gpr0()
C.foo_gpr1()
C.foo_vr()
fmt.Println("success")
}