mirror of
https://gitlab.alpinelinux.org/alpine/abuild.git
synced 2025-01-09 08:10:23 +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
|
# lets tell all the .so files this package provides in .provides-so
|
||||||
scanelf --nobanner --soname "$@" | while read etype soname file; do
|
scanelf --nobanner --soname "$@" | while read etype soname file; do
|
||||||
# if soname field is missing, soname will be the filepath
|
# if soname field is missing, soname will be the filepath
|
||||||
# we only want shared libs
|
|
||||||
sover=0
|
sover=0
|
||||||
case $soname in
|
if [ -z "$file" ]; then
|
||||||
*.so|*.so.[0-9]*)
|
file="$soname"
|
||||||
soname=${soname##*/}
|
soname=${soname##*/}
|
||||||
case "$file" in
|
fi
|
||||||
*.so.[0-9]*) sover=${file##*.so.};;
|
|
||||||
|
# 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
|
esac
|
||||||
echo "$soname $sover"
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
echo "$soname $sover"
|
||||||
done > "$controldir"/.provides-so
|
done > "$controldir"/.provides-so
|
||||||
|
|
||||||
# now find the so dependencies
|
# now find the so dependencies
|
||||||
|
Loading…
Reference in New Issue
Block a user