[OE-core] [PATCH] utils.bbclass: Avoid recursive symlink in oe_soinstall

André Draszik git at andred.net
Thu Feb 27 14:24:25 UTC 2020


On Tue, 2020-02-25 at 16:17 +0200, Yevhenii Shchehlov wrote:
> This patch fixes an issue when oe_soinstall function creates
> non-functional recursive symlinks in case library soname is equal
> to library real (file) name.
> 
> Signed-off-by: Yevhenii Shchehlov <eugenyshcheglov at gmail.com>
> ---
>  meta/classes/utils.bbclass | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/classes/utils.bbclass b/meta/classes/utils.bbclass
> index cd3d05709e..dea824f54f 100644
> --- a/meta/classes/utils.bbclass
> +++ b/meta/classes/utils.bbclass
> @@ -25,7 +25,7 @@ oe_soinstall() {
>  	libname=`basename $1`
>  	case "$libname" in
>  	    *.so)
> -	        bbfatal "oe_soinstall: Shared library must haved versioned filename (e.g. libfoo.so.1.2.3)"
> +	        bbfatal "oe_soinstall: Shared library must haved versioned filename (e.g. libfoo.so.1.2.3 instead of
> libfoo.so)"
>  	        ;;
>  	esac
>  	install -m 755 $1 $2/$libname
> @@ -33,8 +33,12 @@ oe_soinstall() {
>  	if [ -z $sonamelink ]; then
>  		bbfatal "oe_soinstall: $libname is missing ELF tag 'SONAME'."
>  	fi
> +	if [ "$sonamelink" == "$libname" ]; then

                           ^^
== is a bashism, please use only one (1) =


Cheers,
Andre'
  
> +		bbwarn "oe_soinstall: $libname soname is equal to real (file) name. Minor version should be added to a
> real name (e.g. libfoo.so.1.2 instead of libfoo.so.1)"
> +	else
> +		ln -sf $libname $2/$sonamelink
> +	fi
>  	solink=`echo $libname | sed -e 's/\.so\..*/.so/'`
> -	ln -sf $libname $2/$sonamelink
>  	ln -sf $libname $2/$solink
>  }
>  
> -- 
> 2.25.1
> 



More information about the Openembedded-core mailing list