mirror of
https://gitlab.alpinelinux.org/alpine/abuild.git
synced 2024-12-22 23:12:45 +00:00
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:
parent
d15a37b230
commit
c57a9070f2
24
abuild.in
24
abuild.in
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user