1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #!/bin/bash
- LANG=C
- filelist=`sed "s/['\"]/\\\&/g"`
- solist=$(echo $filelist | grep "\\.so" | grep -v "^/lib/ld.so" | \
- xargs file -L 2>/dev/null | grep "ELF.*shared object" | cut -d: -f1)
- pythonlist=
- tcllist=
- case `uname -m` in
- alpha*) mark64="" ;;
- *) mark64="()(64bit)" ;;
- esac
- for f in $solist; do
- soname=$(objdump -p $f | awk '/SONAME/ {print $2}')
- lib64=`if file -L $f 2>/dev/null | \
- grep "ELF 64-bit" >/dev/null; then echo "$mark64"; fi`
- if [ "$soname" != "" ]; then
- if [ ! -L $f ]; then
- echo $soname$lib64
- objdump -p $f | awk '
- BEGIN { START=0 ; }
- /Version definitions:/ { START=1; }
- /^[0-9]/ && (START==1) { print $4; }
- /^$/ { START=0; }
- ' | \
- grep -v $soname | \
- while read symbol ; do
- echo "$soname($symbol)`echo $lib64 | sed 's/()//'`"
- done
- fi
- else
- echo ${f##*/}$lib64
- fi
- done | sort -u
- exit 0
|