From 1e675d026260a459a983cfa6299336cefeef39c7 Mon Sep 17 00:00:00 2001 From: fuzzyray Date: Thu, 30 Apr 2009 14:22:10 +0000 Subject: Add patch from loki_val to check -l dependencies in .la files (Bug #267898) svn path=/; revision=555 --- trunk/ChangeLog | 4 ++++ trunk/src/revdep-rebuild/revdep-rebuild | 25 +++++++++++++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/trunk/ChangeLog b/trunk/ChangeLog index 3007bc5..6597880 100644 --- a/trunk/ChangeLog +++ b/trunk/ChangeLog @@ -1,3 +1,7 @@ +2009-04-30: Paul Varner + * revdep-rebuild: Add patch from loki_val to check -l dependencies in + .la files (Bug #267898) + 2009-04-24: Paul Varner * ekeyword: Fix to handle multiline KEYWORDS (Bug #267250) diff --git a/trunk/src/revdep-rebuild/revdep-rebuild b/trunk/src/revdep-rebuild/revdep-rebuild index 4e1df16..5177a52 100755 --- a/trunk/src/revdep-rebuild/revdep-rebuild +++ b/trunk/src/revdep-rebuild/revdep-rebuild @@ -737,18 +737,39 @@ main_checks() { fi elif [[ $SEARCH_BROKEN ]]; then # Look for broken .la files + la_SEARCH_DIRS="$SEARCH_DIRS" + la_search_dir="" + la_broken="" + la_lib="" for depend in $( gawk -F"[=']" '/^dependency_libs/{ - gsub("^-[^[:space:]]*", "", $3); - gsub("[[:space:]]-[^[:space:]]*", "", $3); print $3 }' "$target_file" ); do if [[ $depend = /* && ! -e $depend ]]; then echo "obj $target_file" >> "$BROKEN_FILE" echo_v " broken $target_file (requires $depend)" + elif [[ $depend = "-L/"* || $depend = "-R/"* ]]; then + if ! [[ $'\n'${la_SEARCH_DIRS}$'\n' == *$'\n'${depend#-?}$'\n'* ]]; then + la_SEARCH_DIRS+=$'\n'"${depend#-?}" + fi + elif [[ $depend = "-l"* ]]; then + la_lib="lib${depend#-l}" + la_broken="yes" + IFS=$'\n' + for la_search_dir in $la_SEARCH_DIRS; do + if [[ -e ${la_search_dir}/${la_lib}.so || -e ${la_search_dir}/${la_lib}.a ]]; then + la_broken="no" + fi + done + IFS="$OIFS" + if [[ $la_broken = yes ]]; then + echo "obj $target_file" >> "$BROKEN_FILE" + echo_v " broken $target_file (requires $depend)" + fi fi done + unset la_SEARCH_DIRS la_search_dir la_broken la_lib fi [[ $VERBOSE ]] && progress $((++i)) $numFiles $target_file || -- cgit v1.2.3