From dab837939270290890f02c4c3e0501e9126e23a8 Mon Sep 17 00:00:00 2001 From: visualfc Date: Tue, 5 Aug 2025 11:20:05 +0800 Subject: [PATCH] internal/build: set CheckLinkArgs disable on default --- internal/build/build.go | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/internal/build/build.go b/internal/build/build.go index 9cea6b4b..e044b8fc 100644 --- a/internal/build/build.go +++ b/internal/build/build.go @@ -269,12 +269,13 @@ func Do(args []string, conf *Config) ([]Package, error) { output := conf.OutFile != "" ctx := &context{env: env, conf: cfg, progSSA: progSSA, prog: prog, dedup: dedup, patches: patches, built: make(map[string]none), initial: initial, mode: mode, - output: output, - needRt: make(map[*packages.Package]bool), - needPyInit: make(map[*packages.Package]bool), - buildConf: conf, - crossCompile: export, - isCheckEnable: IsCheckEnable(), + output: output, + needRt: make(map[*packages.Package]bool), + needPyInit: make(map[*packages.Package]bool), + buildConf: conf, + crossCompile: export, + isCheckEnabled: IsCheckEnabled(), + isCheckLinkArgsEnabled: IsCheckLinkArgsEnabled(), } pkgs, err := buildAllPkgs(ctx, initial, verbose) check(err) @@ -364,7 +365,8 @@ type context struct { nLibdir int output bool - isCheckEnable bool + isCheckEnabled bool + isCheckLinkArgsEnabled bool needRt map[*packages.Package]bool needPyInit map[*packages.Package]bool @@ -463,8 +465,10 @@ func buildAllPkgs(ctx *context, initial []*packages.Package, verbose bool) (pkgs ctx.nLibdir++ } } - if err := ctx.compiler().CheckLinkArgs(pkgLinkArgs, isWasmTarget(ctx.buildConf.Goos)); err != nil { - panic(fmt.Sprintf("test link args '%s' failed\n\texpanded to: %v\n\tresolved to: %v\n\terror: %v", param, expdArgs, pkgLinkArgs, err)) + if ctx.isCheckLinkArgsEnabled { + if err := ctx.compiler().CheckLinkArgs(pkgLinkArgs, isWasmTarget(ctx.buildConf.Goos)); err != nil { + panic(fmt.Sprintf("test link args '%s' failed\n\texpanded to: %v\n\tresolved to: %v\n\terror: %v", param, expdArgs, pkgLinkArgs, err)) + } } aPkg.LinkArgs = append(aPkg.LinkArgs, pkgLinkArgs...) } @@ -839,7 +843,7 @@ func exportObject(ctx *context, pkgPath string, exportFile string, data []byte) if err != nil { return exportFile, err } - if ctx.isCheckEnable { + if ctx.isCheckEnabled { if msg, err := llcCheck(ctx.env, f.Name()); err != nil { fmt.Fprintf(os.Stderr, "==> lcc %v: %v\n%v\n", pkgPath, f.Name(), msg) } @@ -985,6 +989,7 @@ const llgoCheck = "LLGO_CHECK" const llgoWasmRuntime = "LLGO_WASM_RUNTIME" const llgoWasiThreads = "LLGO_WASI_THREADS" const llgoStdioNobuf = "LLGO_STDIO_NOBUF" +const llgoCheckLinkArgs = "LLGO_CHECK_LINKARGS" const defaultWasmRuntime = "wasmtime" @@ -1024,7 +1029,7 @@ func IsOptimizeEnabled() bool { return isEnvOn(llgoOptimize, true) } -func IsCheckEnable() bool { +func IsCheckEnabled() bool { return isEnvOn(llgoCheck, false) } @@ -1032,6 +1037,10 @@ func IsWasiThreadsEnabled() bool { return isEnvOn(llgoWasiThreads, true) } +func IsCheckLinkArgsEnabled() bool { + return isEnvOn(llgoCheckLinkArgs, false) +} + func WasmRuntime() string { return defaultEnv(llgoWasmRuntime, defaultWasmRuntime) }