utils.bbclass: Added error checking for oe_soinstall

Fixes [YOCTO #10146]

(From OE-Core rev: cd5d532bd2a3f409b9470591c8d6f6b21e5995dd)

Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Henry Bruce 2016-09-07 14:09:54 -07:00 committed by Richard Purdie
parent e9126926d4
commit 4192e4bad5
1 changed files with 9 additions and 6 deletions

View File

@ -62,15 +62,18 @@ def is_machine_specific(d):
oe_soinstall() {
# Purpose: Install shared library file and
# create the necessary links
# Example:
#
# oe_
#
#bbnote installing shared library $1 to $2
#
# Example: oe_soinstall libfoo.so.1.2.3 ${D}${libdir}
libname=`basename $1`
case "$libname" in
*.so)
bbfatal "oe_soinstall: Shared library must haved versioned filename (e.g. libfoo.so.1.2.3)"
;;
esac
install -m 755 $1 $2/$libname
sonamelink=`${HOST_PREFIX}readelf -d $1 |grep 'Library soname:' |sed -e 's/.*\[\(.*\)\].*/\1/'`
if [ -z $sonamelink ]; then
bbfatal "oe_soinstall: $libname is missing ELF tag 'SONAME'."
fi
solink=`echo $libname | sed -e 's/\.so\..*/.so/'`
ln -sf $libname $2/$sonamelink
ln -sf $libname $2/$solink