aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenry Bruce <henry.bruce@intel.com>2016-09-07 14:09:54 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-09-09 11:52:10 +0100
commitcd5d532bd2a3f409b9470591c8d6f6b21e5995dd (patch)
tree0629ce4a63d48bbefaf17247baf3a33320156e2d
parent1868db95819b45961cd7e8499ecace403e6bc91d (diff)
downloadopenembedded-core-contrib-cd5d532bd2a3f409b9470591c8d6f6b21e5995dd.tar.gz
utils.bbclass: Added error checking for oe_soinstall
Fixes [YOCTO #10146] Signed-off-by: Henry Bruce <henry.bruce@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/utils.bbclass15
1 files changed, 9 insertions, 6 deletions
diff --git a/meta/classes/utils.bbclass b/meta/classes/utils.bbclass
index d56f51e320..3c2a14fa42 100644
--- a/meta/classes/utils.bbclass
+++ b/meta/classes/utils.bbclass
@@ -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