abuild: dont add .so files with mismatching soname version

Skip .so files without version number in filename when soname has
version number.

This solves issue with libgcj/gcc-java who ships both libgcj_bc.so and
libgcj_bc.so.1.0.0 which both has soname libgcj_bc.so.1
This commit is contained in:
Natanael Copa 2012-09-08 13:45:34 +00:00
parent d15a37b230
commit c57a9070f2

View File

@ -952,17 +952,29 @@ scan_shared_objects() {
# lets tell all the .so files this package provides in .provides-so
scanelf --nobanner --soname "$@" | while read etype soname file; do
# if soname field is missing, soname will be the filepath
# we only want shared libs
sover=0
case $soname in
*.so|*.so.[0-9]*)
if [ -z "$file" ]; then
file="$soname"
soname=${soname##*/}
case "$file" in
*.so.[0-9]*) sover=${file##*.so.};;
fi
# we only want shared libs
case $soname in
*.so|*.so.[0-9]*);;
*) continue;;
esac
case "$file" in
*.so.[0-9]*) sover=${file##*.so.};;
*.so)
# filter out sonames with version when file does not
# have version
case "$soname" in
*.so.[0-9]*) continue;;
esac
echo "$soname $sover"
;;
esac
echo "$soname $sover"
done > "$controldir"/.provides-so
# now find the so dependencies