diff options
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/utils.bbclass | 15 |
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): | |||
62 | oe_soinstall() { | 62 | oe_soinstall() { |
63 | # Purpose: Install shared library file and | 63 | # Purpose: Install shared library file and |
64 | # create the necessary links | 64 | # create the necessary links |
65 | # Example: | 65 | # Example: oe_soinstall libfoo.so.1.2.3 ${D}${libdir} |
66 | # | ||
67 | # oe_ | ||
68 | # | ||
69 | #bbnote installing shared library $1 to $2 | ||
70 | # | ||
71 | libname=`basename $1` | 66 | libname=`basename $1` |
67 | case "$libname" in | ||
68 | *.so) | ||
69 | bbfatal "oe_soinstall: Shared library must haved versioned filename (e.g. libfoo.so.1.2.3)" | ||
70 | ;; | ||
71 | esac | ||
72 | install -m 755 $1 $2/$libname | 72 | install -m 755 $1 $2/$libname |
73 | sonamelink=`${HOST_PREFIX}readelf -d $1 |grep 'Library soname:' |sed -e 's/.*\[\(.*\)\].*/\1/'` | 73 | sonamelink=`${HOST_PREFIX}readelf -d $1 |grep 'Library soname:' |sed -e 's/.*\[\(.*\)\].*/\1/'` |
74 | if [ -z $sonamelink ]; then | ||
75 | bbfatal "oe_soinstall: $libname is missing ELF tag 'SONAME'." | ||
76 | fi | ||
74 | solink=`echo $libname | sed -e 's/\.so\..*/.so/'` | 77 | solink=`echo $libname | sed -e 's/\.so\..*/.so/'` |
75 | ln -sf $libname $2/$sonamelink | 78 | ln -sf $libname $2/$sonamelink |
76 | ln -sf $libname $2/$solink | 79 | ln -sf $libname $2/$solink |