summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfuzzyray <fuzzyray@gentoo.org>2007-03-10 03:41:00 +0000
committerfuzzyray <fuzzyray@gentoo.org>2007-03-10 03:41:00 +0000
commitafdcabf1af64f44e93a0049ec30bb9739a341525 (patch)
treeefc31ddf0f8e891edb0909cacbcf2568924d47f3
parent1933a7bbd782c0c6e65346f351e28cc78a18ab03 (diff)
downloadgentoolkit-afdcabf1af64f44e93a0049ec30bb9739a341525.tar.gz
Add support to detect "no version information available" message from ldd (Bug #169973)
svn path=/; revision=354
-rw-r--r--trunk/ChangeLog4
-rwxr-xr-xtrunk/src/revdep-rebuild/revdep-rebuild9
2 files changed, 12 insertions, 1 deletions
diff --git a/trunk/ChangeLog b/trunk/ChangeLog
index 19eef9d..1dce6d1 100644
--- a/trunk/ChangeLog
+++ b/trunk/ChangeLog
@@ -1,3 +1,7 @@
+2007-03-09 Paul Varner <fuzzyray@gentoo.org>
+ * revdep-rebuild: Add support to detect "no version information
+ available" message from ldd (Bug #169973)
+
2007-03-08 Paul Varner <fuzzyray@gentoo.org>
* equery: Improved handling of KeyError in equery depends command
(Bug #169929)
diff --git a/trunk/src/revdep-rebuild/revdep-rebuild b/trunk/src/revdep-rebuild/revdep-rebuild
index 7293431..f404051 100755
--- a/trunk/src/revdep-rebuild/revdep-rebuild
+++ b/trunk/src/revdep-rebuild/revdep-rebuild
@@ -430,10 +430,11 @@ else
set_trap "$LLIST.3_rebuild"
LD_MASK="\\( $(echo "$LD_LIBRARY_MASK" | sed 's/\./\\./g;s/ / \\| /g') \\)"
echo -n >$LLIST.3_rebuild
+ echo -n >$LLIST.3_ldd_errors
cat $LIST.1_files | egrep -v '*\.la$' | while read FILE ; do
# Note: double checking seems to be faster than single
# with complete path (special add ons are rare).
- if ldd "$FILE" 2>/dev/null | grep -v "$LD_MASK" | $SONAME_GREP -q "$SONAME_SEARCH" ; then
+ if ldd "$FILE" 2>>$LLIST.3_ldd_errors | grep -v "$LD_MASK" | $SONAME_GREP -q "$SONAME_SEARCH" ; then
if $SEARCH_BROKEN && $FULL_LD_PATH ; then
if LD_LIBRARY_PATH="$COMPLETE_LD_LIBRARY_PATH" ldd "$FILE" 2>/dev/null | grep -v "$LD_MASK" | $SONAME_GREP -q "$SONAME_SEARCH" ; then
# FIX: I hate duplicating code
@@ -480,6 +481,12 @@ else
fi
done
if $SEARCH_BROKEN ; then
+ # Look for missing version
+ for FILE in $(grep "no version information available" $LLIST.3_ldd_errors | awk '{print $NF}' | sed 's/[()]//g' | sort -u) ; do
+ echo "obj $FILE" >>$LLIST.3_rebuild
+ echo_v " broken $FILE (no version information available)"
+ done
+ # Look for broken .la files
cat $LIST.1_files | egrep '*\.la$' | while read FILE ; do
for depend in $(grep '^dependency_libs' $FILE | awk -F'=' '{print $2}' | sed "s/'//g") ; do
[ ${depend:0:1} != '/' ] && continue