[llvm] 3518707 - [AIX][llvm-go] AIX linker does not recognize `-rpath`

Steven Wan via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 15 10:13:24 PST 2021


Author: Steven Wan
Date: 2021-11-15T13:13:08-05:00
New Revision: 351870720fcb67f260df031f9425acfd641f5f2d

URL: https://github.com/llvm/llvm-project/commit/351870720fcb67f260df031f9425acfd641f5f2d
DIFF: https://github.com/llvm/llvm-project/commit/351870720fcb67f260df031f9425acfd641f5f2d.diff

LOG: [AIX][llvm-go] AIX linker does not recognize `-rpath`

The existing logic adds `-rpath` to CGO_LDFLAGS, which is not a valid linker option on AIX. This patch substitutes it with `-blibpath` on AIX.

Reviewed By: daltenty

Differential Revision: https://reviews.llvm.org/D113704

Added: 
    

Modified: 
    llvm/tools/llvm-go/llvm-go.go

Removed: 
    


################################################################################
diff  --git a/llvm/tools/llvm-go/llvm-go.go b/llvm/tools/llvm-go/llvm-go.go
index a0561dd5fd8d9..dc928b89bb43a 100644
--- a/llvm/tools/llvm-go/llvm-go.go
+++ b/llvm/tools/llvm-go/llvm-go.go
@@ -96,7 +96,11 @@ func llvmFlags() compilerFlags {
 		// needed to resolve dependent symbols
 		stdLibOption = "-stdlib=libc++"
 	}
-	if runtime.GOOS != "darwin" {
+	if runtime.GOOS == "aix" {
+		// AIX linker does not honour `-rpath`, the closest substitution
+		// is `-blibpath`
+		ldflags = "-Wl,-blibpath:" + llvmConfig("--libdir") + " " + ldflags
+	} else if runtime.GOOS != "darwin" {
 		// OS X doesn't like -rpath with cgo. See:
 		// https://github.com/golang/go/issues/7293
 		ldflags = "-Wl,-rpath," + llvmConfig("--libdir") + " " + ldflags


        


More information about the llvm-commits mailing list