Thu Jun 7 04:58:46 2018 UTC ()
check-shlibs-macho.awk: fix support for checking modules

Allow the dylib install_name to be just the library basename


(dbj)
diff -r1.5 -r1.6 pkgsrc/mk/check/check-shlibs-macho.awk

cvs diff -r1.5 -r1.6 pkgsrc/mk/check/check-shlibs-macho.awk (expand / switch to context diff)
--- pkgsrc/mk/check/check-shlibs-macho.awk 2018/05/25 10:57:28 1.5
+++ pkgsrc/mk/check/check-shlibs-macho.awk 2018/06/07 04:58:46 1.6
@@ -1,4 +1,4 @@
-# $NetBSD: check-shlibs-macho.awk,v 1.5 2018/05/25 10:57:28 jperkin Exp $
+# $NetBSD: check-shlibs-macho.awk,v 1.6 2018/06/07 04:58:46 dbj Exp $
 
 #
 # Read a list of potential Mach-O binaries from stdin.
@@ -70,9 +70,18 @@
 
 function checkshlib(DSO,	needed, found) {
 	cmd = "otool -XL " shquote(DSO) " 2>/dev/null"
+	libno = 0
 	while ((cmd | getline) > 0) {
 		if ($0 !~ /^\t/)
 			continue
+		#
+		# The first lib is the "install_name".  Allow it to
+		# be just the library basename name to support modules.
+		#
+		if (libno++ == 0 &&
+		    $1 == parts[split(DSO, parts, "/")]) {
+			continue
+		}
 		needed[$1] = ""
 	}
 	close(cmd)