summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfuzzyray <fuzzyray@gentoo.org>2009-04-30 14:22:10 +0000
committerfuzzyray <fuzzyray@gentoo.org>2009-04-30 14:22:10 +0000
commit1e675d026260a459a983cfa6299336cefeef39c7 (patch)
treeebab0981079637482f392b54eff55d6f68be5a84
parentFixed indent, migrated to tabs and fixed vim modeline. Cleanup. (diff)
downloadgentoolkit-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/ChangeLog4
-rwxr-xr-xtrunk/src/revdep-rebuild/revdep-rebuild25
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 ||