diff --git a/internal/build/build.go b/internal/build/build.go index c8744e42..2fba905e 100644 --- a/internal/build/build.go +++ b/internal/build/build.go @@ -286,14 +286,19 @@ func linkMainPkg(pkg *packages.Package, pkgs []*aPackage, runtimeFiles []string, if app == "" { app = filepath.Join(conf.BinPath, name+conf.AppExt) } - const N = 5 + const N = 6 args := make([]string, N, len(pkg.Imports)+len(runtimeFiles)+(N+1)) args[0] = "-o" args[1] = app args[2] = "-Wno-override-module" - args[3] = "-Xlinker" - args[4] = "-dead_strip" - //args[5] = "-O2" + args[3] = "-fuse-ld=lld" + args[4] = "-Xlinker" + if runtime.GOOS == "darwin" { // ld64.lld (macOS) + args[5] = "-dead_strip" + } else { // ld.lld (Unix), lld-link (Windows), wasm-ld (WebAssembly) + args[5] = "--gc-sections" + } + //args[6] = "-O2" needRuntime := false needPyInit := false packages.Visit([]*packages.Package{pkg}, nil, func(p *packages.Package) {