ROOTPLOIT
Server: LiteSpeed
System: Linux in-mum-web1878.main-hosting.eu 5.14.0-570.21.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jun 11 07:22:35 EDT 2025 x86_64
User: u435929562 (435929562)
PHP: 7.4.33
Disabled: system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //opt/golang/1.22.0/src/cmd/go/testdata/script/link_syso_issue33139.txt
# Test that we can use the external linker with a host syso file that is
# embedded in a package, that is referenced by a Go assembly function.
# See issue 33139.

[!compiler:gc] skip
[!cgo] skip
[short] skip 'invokes system C compiler'

# External linking is not supported on linux/ppc64.
# See: https://github.com/golang/go/issues/8912
[GOOS:linux] [GOARCH:ppc64] skip

cc -c -o syso/objTestImpl.syso syso/src/objTestImpl.c
go build -ldflags='-linkmode=external' ./cmd/main.go

-- go.mod --
module m

go 1.16
-- syso/objTest.s --
#include "textflag.h"

TEXT ·ObjTest(SB), NOSPLIT, $0
	// We do not actually execute this function in the test above, thus
	// there is no stack frame setup here.
	// We only care about Go build and/or link errors when referencing
	// the objTestImpl symbol in the syso file.
	JMP objTestImpl(SB)

-- syso/pkg.go --
package syso

func ObjTest()

-- syso/src/objTestImpl.c --
void objTestImpl() { /* Empty */ }

-- cmd/main.go --
package main

import "m/syso"

func main() {
	syso.ObjTest()
}