Commit d1b1eee2 authored by David Crawshaw's avatar David Crawshaw

runtime: add isarchive, set by the linker

According to Go execution modes, a Go program compiled with
-buildmode=c-archive has a main function, but it is ignored on run.
This gives the runtime the information it needs not to run the main.

I have this working with pending linker changes on darwin/amd64.

Change-Id: I49bd7d65aa619ec847c464a872afa5deea7d4d30
Reviewed-on: https://go-review.googlesource.com/8701Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
Run-TryBot: David Crawshaw <crawshaw@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent d340b103
......@@ -99,6 +99,11 @@ func main() {
needUnlock = false
unlockOSThread()
if isarchive {
// A program compiled with -buildmode=c-archive has a main,
// but it is not executed.
return
}
main_main()
if raceenabled {
racefini()
......
......@@ -621,9 +621,12 @@ var (
cpuid_ecx uint32
cpuid_edx uint32
lfenceBeforeRdtsc bool
)
// Set by the linker when linking with -shared.
islibrary bool
// Set by the linker so the runtime can determine the buildmode.
var (
islibrary bool // -buildmode=c-shared
isarchive bool // -buildmode=c-archive
)
/*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment