From 5f6c4518c8d7ff6f500066fe3a2e69636db8250b Mon Sep 17 00:00:00 2001 From: Bryan Drewery Date: Tue, 21 Apr 2015 05:10:18 +0000 Subject: [PATCH] Support libraries linked by path. Sponsored by: EMC / Isilon Storage Division --- tools/build/check-links.sh | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tools/build/check-links.sh b/tools/build/check-links.sh index 9bf7e4591c56..70691d2171db 100755 --- a/tools/build/check-links.sh +++ b/tools/build/check-links.sh @@ -3,7 +3,7 @@ libkey() { libkey="lib_symbols_$1" - patterns=[.+,-] + patterns=[.+,/-] replacement=_ while :; do case " ${libkey} " in @@ -44,11 +44,15 @@ list_libs= resolved_symbols= for lib in $(readelf -d $1 | awk '$2 ~ /\(?NEEDED\)?/ { sub(/\[/,"",$NF); sub(/\]/,"",$NF); print $NF }'); do echo -n "checking if $lib is needed: " - for libpair in ${ldd_libs}; do - case "${libpair}" in - ${lib}:*) libpath="${libpair#*:}" && break ;; - esac - done + if [ -n "${lib##/*}" ]; then + for libpair in ${ldd_libs}; do + case "${libpair}" in + ${lib}:*) libpath="${libpair#*:}" && break ;; + esac + done + else + libpath="${lib}" + fi list_libs="$list_libs $lib" foundone= lib_symbols="$(nm -D --defined-only --format=posix "${libpath}" | awk '$2 ~ /C|R|D|T|W|B|V/ {print $1}' | tr '\n' ' ')"