diff options
author | fuzzyray <fuzzyray@gentoo.org> | 2009-04-30 14:22:10 +0000 |
---|---|---|
committer | fuzzyray <fuzzyray@gentoo.org> | 2009-04-30 14:22:10 +0000 |
commit | 1e675d026260a459a983cfa6299336cefeef39c7 (patch) | |
tree | ebab0981079637482f392b54eff55d6f68be5a84 | |
parent | Fixed indent, migrated to tabs and fixed vim modeline. Cleanup. (diff) | |
download | gentoolkit-1e675d026260a459a983cfa6299336cefeef39c7.tar.gz gentoolkit-1e675d026260a459a983cfa6299336cefeef39c7.tar.bz2 gentoolkit-1e675d026260a459a983cfa6299336cefeef39c7.zip |
Add patch from loki_val to check -l dependencies in .la files (Bug #267898)
svn path=/; revision=555
-rw-r--r-- | trunk/ChangeLog | 4 | ||||
-rwxr-xr-x | 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 <fuzzyray@gentoo.org> + * revdep-rebuild: Add patch from loki_val to check -l dependencies in + .la files (Bug #267898) + 2009-04-24: Paul Varner <fuzzyray@gentoo.org> * 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 || |