@@ -269,12 +269,13 @@ func Do(args []string, conf *Config) ([]Package, error) {
269269 output := conf .OutFile != ""
270270 ctx := & context {env : env , conf : cfg , progSSA : progSSA , prog : prog , dedup : dedup ,
271271 patches : patches , built : make (map [string ]none ), initial : initial , mode : mode ,
272- output : output ,
273- needRt : make (map [* packages.Package ]bool ),
274- needPyInit : make (map [* packages.Package ]bool ),
275- buildConf : conf ,
276- crossCompile : export ,
277- isCheckEnable : IsCheckEnable (),
272+ output : output ,
273+ needRt : make (map [* packages.Package ]bool ),
274+ needPyInit : make (map [* packages.Package ]bool ),
275+ buildConf : conf ,
276+ crossCompile : export ,
277+ isCheckEnabled : IsCheckEnabled (),
278+ isCheckLinkArgsEnabled : IsCheckLinkArgsEnabled (),
278279 }
279280 pkgs , err := buildAllPkgs (ctx , initial , verbose )
280281 check (err )
@@ -364,7 +365,8 @@ type context struct {
364365 nLibdir int
365366 output bool
366367
367- isCheckEnable bool
368+ isCheckEnabled bool
369+ isCheckLinkArgsEnabled bool
368370
369371 needRt map [* packages.Package ]bool
370372 needPyInit map [* packages.Package ]bool
@@ -463,8 +465,10 @@ func buildAllPkgs(ctx *context, initial []*packages.Package, verbose bool) (pkgs
463465 ctx .nLibdir ++
464466 }
465467 }
466- if err := ctx .compiler ().CheckLinkArgs (pkgLinkArgs , isWasmTarget (ctx .buildConf .Goos )); err != nil {
467- panic (fmt .Sprintf ("test link args '%s' failed\n \t expanded to: %v\n \t resolved to: %v\n \t error: %v" , param , expdArgs , pkgLinkArgs , err ))
468+ if ctx .isCheckLinkArgsEnabled {
469+ if err := ctx .compiler ().CheckLinkArgs (pkgLinkArgs , isWasmTarget (ctx .buildConf .Goos )); err != nil {
470+ panic (fmt .Sprintf ("test link args '%s' failed\n \t expanded to: %v\n \t resolved to: %v\n \t error: %v" , param , expdArgs , pkgLinkArgs , err ))
471+ }
468472 }
469473 aPkg .LinkArgs = append (aPkg .LinkArgs , pkgLinkArgs ... )
470474 }
@@ -839,7 +843,7 @@ func exportObject(ctx *context, pkgPath string, exportFile string, data []byte)
839843 if err != nil {
840844 return exportFile , err
841845 }
842- if ctx .isCheckEnable {
846+ if ctx .isCheckEnabled {
843847 if msg , err := llcCheck (ctx .env , f .Name ()); err != nil {
844848 fmt .Fprintf (os .Stderr , "==> lcc %v: %v\n %v\n " , pkgPath , f .Name (), msg )
845849 }
@@ -985,6 +989,7 @@ const llgoCheck = "LLGO_CHECK"
985989const llgoWasmRuntime = "LLGO_WASM_RUNTIME"
986990const llgoWasiThreads = "LLGO_WASI_THREADS"
987991const llgoStdioNobuf = "LLGO_STDIO_NOBUF"
992+ const llgoCheckLinkArgs = "LLGO_CHECK_LINKARGS"
988993
989994const defaultWasmRuntime = "wasmtime"
990995
@@ -1024,14 +1029,18 @@ func IsOptimizeEnabled() bool {
10241029 return isEnvOn (llgoOptimize , true )
10251030}
10261031
1027- func IsCheckEnable () bool {
1032+ func IsCheckEnabled () bool {
10281033 return isEnvOn (llgoCheck , false )
10291034}
10301035
10311036func IsWasiThreadsEnabled () bool {
10321037 return isEnvOn (llgoWasiThreads , true )
10331038}
10341039
1040+ func IsCheckLinkArgsEnabled () bool {
1041+ return isEnvOn (llgoCheckLinkArgs , false )
1042+ }
1043+
10351044func WasmRuntime () string {
10361045 return defaultEnv (llgoWasmRuntime , defaultWasmRuntime )
10371046}
0 commit comments