https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291695

--- Comment #1 from Michael Osipov <[email protected]> ---
A simple script to dump symbols without address offsets:
#!/bin/sh
# Dump dynamic symbol names only for .so symlinks from the krb5 package listing

BASE="/usr/local"   # change to /usr on FreeBSD base system
OUTDIR="./krb5-symbols"
mkdir -p "$OUTDIR"

# Only the .so symlinks from the krb5 package manifest
SO_LINKS="
lib/libcom_err.so
lib/libgssapi_krb5.so
lib/libgssrpc.so
lib/libk5crypto.so
lib/libkadm5clnt.so
lib/libkadm5clnt_mit.so
lib/libkadm5srv.so
lib/libkadm5srv_mit.so
lib/libkdb5.so
lib/libkrad.so
lib/libkrb5.so
lib/libkrb5support.so
lib/libverto.so
lib/krb5/plugins/kdb/db2.so
lib/krb5/plugins/preauth/otp.so
lib/krb5/plugins/preauth/pkinit.so
lib/krb5/plugins/preauth/spake.so
lib/krb5/plugins/preauth/test.so
lib/krb5/plugins/tls/k5tls.so
"

for relpath in $SO_LINKS; do
    link="$BASE/$relpath"
    if [ -L "$link" ]; then
        target=$(readlink -f "$link")
        fname=$(basename "$link")
        outfile="$OUTDIR/${fname}.symbols.txt"

        echo "Listing symbols for $link -> $target"
        if command -v nm >/dev/null 2>&1; then
            # nm: print only symbol names (-D for dynamic, --format=posix for
easy parsing)
            nm -D --format=posix "$target" | awk '{print $1}' | sort -u >
"$outfile"
        else
            # objdump: print only symbol names (field 7 usually holds the name)
            objdump -T "$target" | awk '{print $7}' | grep -v '^$' | sort -u >
"$outfile"
        fi
    fi
done

echo "Done. Symbol name listings in $OUTDIR"

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to