On 2007-May-18 17:50:58 +1000, Peter Jeremy <[EMAIL PROTECTED]> wrote:
>Ideally, you also need some way to identify (and remove) old .so files
>that are no longer referenced by anything.  This is not as easy
>because there's no record of what ports use what .so's (and no way to
>track apps outside the ports system).

OK, my offering to assist with this scans a specified set of file
trees and reports any executables that reference shared libraries in
compat or that can't be found:

#!/bin/sh
#
# Find executables using compat libraries

find -x "$@" -type f -perm +0100 -print0 |\
    ( xargs -0 ldd 2>&1 >&3 | \
        egrep -v "not a dynamic executable|can't read program header|Exec 
format error" >&2 ) 3>&1 |\
    awk '/^[^   ]/ { exe = $0; next }
         NF != 4 || $3 ~ /\/compat\// || $4 !~ /^\(0x[0-9a-f]*[1-9a-f]/ { print 
exe, $0}'

-- 
Peter Jeremy

Attachment: pgp8QbzsfeBfz.pgp
Description: PGP signature

Reply via email to