From eacb5bc6f803a94589a3d46783e44d893607e033 Mon Sep 17 00:00:00 2001 From: Li Jie Date: Thu, 13 Mar 2025 19:55:48 +0800 Subject: [PATCH] link: don't run install_name_tool -change by default --- compiler/internal/build/build.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/compiler/internal/build/build.go b/compiler/internal/build/build.go index 3e2ad6ac..a338dfd3 100644 --- a/compiler/internal/build/build.go +++ b/compiler/internal/build/build.go @@ -483,7 +483,7 @@ func linkMainPkg(ctx *context, pkg *packages.Package, pkgs []*aPackage, linkArgs err = ctx.env.Clang().Exec(args...) check(err) - if runtime.GOOS == "darwin" { + if IsRpathChangeEnabled() && runtime.GOOS == "darwin" { dylibDeps := make([]string, 0, len(libs)) for _, lib := range libs { dylibDep := findDylibDep(app, lib) @@ -746,6 +746,7 @@ const llgoDebug = "LLGO_DEBUG" const llgoTrace = "LLGO_TRACE" const llgoOptimize = "LLGO_OPTIMIZE" const llgoCheck = "LLGO_CHECK" +const llgoRpathChange = "LLGO_RPATH_CHANGE" func isEnvOn(env string, defVal bool) bool { envVal := strings.ToLower(os.Getenv(env)) @@ -771,6 +772,10 @@ func IsCheckEnable() bool { return isEnvOn(llgoCheck, false) } +func IsRpathChangeEnabled() bool { + return isEnvOn(llgoRpathChange, false) +} + func ParseArgs(args []string, swflags map[string]bool) (flags, patterns []string, verbose bool) { n := len(args) for i := 0; i < n; i++ {