Line
Link Here
|
0 |
-- gentoolkit/src/revdep-rebuild/revdep-rebuild |
0 |
++ gentoolkit/src/revdep-rebuild/revdep-rebuild |
Lines 641-647
Link Here
|
641 |
if [[ $target_file != *.la ]]; then |
641 |
if [[ $target_file != *.la ]]; then |
642 |
# Note: double checking seems to be faster than single with complete path |
642 |
# Note: double checking seems to be faster than single with complete path |
643 |
# (special add ons are rare). |
643 |
# (special add ons are rare). |
644 |
ldd_output=$(ldd "$target_file" 2>> "$LIST.3_ldd_errors" | sort -u) |
644 |
case $target_file in |
|
|
645 |
*.so|*.so.*) |
646 |
ldd_output=$(ldd "$target_file" 2>> "$LIST.3_ldd_errors" | sort -u);; |
647 |
*) |
648 |
ldd_output=$(ldd -d -r "$target_file" 2>> "$LIST.3_ldd_errors" | sort -u);; |
649 |
esac |
645 |
ldd_status=$? # TODO: Check this for problems with sort |
650 |
ldd_status=$? # TODO: Check this for problems with sort |
646 |
# HACK: if LD_LIBRARY_MASK is null or undefined grep -vF doesn't work |
651 |
# HACK: if LD_LIBRARY_MASK is null or undefined grep -vF doesn't work |
647 |
if grep -vF "${LD_LIBRARY_MASK:=$'\a'}" <<< "$ldd_output" | |
652 |
if grep -vF "${LD_LIBRARY_MASK:=$'\a'}" <<< "$ldd_output" | |
Lines 708-724
Link Here
|
708 |
done |
713 |
done |
709 |
if [[ $SEARCH_BROKEN ]]; then |
714 |
if [[ $SEARCH_BROKEN ]]; then |
710 |
# Look for missing version |
715 |
# Look for missing version |
711 |
while read target_file; do |
716 |
while read target_file && read message; do |
712 |
echo "obj $target_file" >> "$LIST.3_rebuild" |
717 |
echo "obj $target_file" >> "$LIST.3_rebuild" |
713 |
echo_v " broken $target_file (no version information available)" |
718 |
echo_v " broken $target_file ($message)" |
714 |
done < <( |
719 |
done < <( |
715 |
# Regexify LD_LIBRARY_MASK. Exclude it from the search. |
720 |
# Regexify LD_LIBRARY_MASK. Exclude it from the search. |
716 |
LD_LIBRARY_MASK="${LD_LIBRARY_MASK//$'\n'/|}" |
721 |
LD_LIBRARY_MASK="${LD_LIBRARY_MASK//$'\n'/|}" |
717 |
awk -v ldmask="(${LD_LIBRARY_MASK//./\\\.})" ' |
722 |
awk -v ldmask="(${LD_LIBRARY_MASK//./\\\.})" ' |
718 |
/no version information available/ && $0 !~ ldmask { |
723 |
/no version information available|undefined symbol/ && $0 !~ ldmask { |
719 |
gsub(/[()]/, "", $NF) |
724 |
gsub(/[()]/, "", $NF) |
720 |
if (seen[$NF]++) next |
725 |
if (seen[$NF]++) next |
721 |
print $NF |
726 |
print $NF |
|
|
727 |
NF-- |
728 |
print $0 |
722 |
}' "$LIST.3_ldd_errors" |
729 |
}' "$LIST.3_ldd_errors" |
723 |
) |
730 |
) |
724 |
fi |
731 |
fi |