summaryrefslogtreecommitdiff
path: root/trunk
diff options
context:
space:
mode:
authorfuzzyray <fuzzyray@gentoo.org>2007-09-14 17:52:12 +0000
committerfuzzyray <fuzzyray@gentoo.org>2007-09-14 17:52:12 +0000
commit3df65bfb794805d311125660c74adfdce0ea9101 (patch)
tree6ee7992d6cd9c981442049f3fec3fa956b0d6f92 /trunk
parentd13add21797eb23824063cdf986890fb2dd76b68 (diff)
downloadgentoolkit-3df65bfb794805d311125660c74adfdce0ea9101.tar.gz
Fix revdep-rebuild to ignore libraries in LD_LIBRARY_MASK, when checking for "no version information available" errors (Bug #182882)
svn path=/; revision=439
Diffstat (limited to 'trunk')
-rwxr-xr-xtrunk/src/revdep-rebuild/revdep-rebuild-rewrite17
1 files changed, 11 insertions, 6 deletions
diff --git a/trunk/src/revdep-rebuild/revdep-rebuild-rewrite b/trunk/src/revdep-rebuild/revdep-rebuild-rewrite
index 6d622e2..947234c 100755
--- a/trunk/src/revdep-rebuild/revdep-rebuild-rewrite
+++ b/trunk/src/revdep-rebuild/revdep-rebuild-rewrite
@@ -208,6 +208,7 @@ get_args() {
;;
-P|--no-progress)
progress() { :; }
+ ;;
-q|--quiet)
echo_v() { :; }
progress() { :; }
@@ -583,15 +584,19 @@ main_checks() {
done
if [[ $SEARCH_BROKEN ]]; then
# Look for missing version
- for target_file in $(
- awk '/no version information available/{
+ while read target_file; do
+ echo "obj $target_file" >> "$LIST.3_rebuild"
+ echo_v " broken $target_file (no version information available)"
+ done < <(
+ awk -v ldmask="($LD_LIBRARY_MASK)" '
+ BEGIN{ gsub(/\n/, "|", ldmask) }
+ /no version information available/{
gsub("[()]", "", $NF);
+ if (seen[$NF]++) next;
+ if ($NF ~ ldmask) next;
print $NF
- }' "$LIST.3_ldd_errors" | sort -u
+ }' "$LIST.3_ldd_errors"
); do
- echo "obj $target_file" >> "$LIST.3_rebuild"
- echo_v " broken $target_file (no version information available)"
- done
fi
[[ -r $LIST.3_rebuild && -s $LIST.3_rebuild ]] || clean_exit
einfo "Generated new $LIST.3_rebuild"