[OE-core] [PATCH 2/2] libtool: normalize link paths before considering for RPATH

Richard Purdie richard.purdie at linuxfoundation.org
Sun Aug 19 10:06:51 UTC 2012


On Fri, 2012-08-17 at 08:53 -0700, Andy Ross wrote:
> Libtool may be passed link paths of the form "/usr/lib/../lib", which fool
> its detection code into thinking it should be included as an RPATH in
> the generated binary.  Normalize before comparision.
> 
> Signed-off-by: Andy Ross <andy.ross at windriver.com>
> ---
>  meta/recipes-devtools/libtool/libtool-2.4.2.inc    |  1 +
>  .../libtool/libtool/norm-rpath.patch               | 42 ++++++++++++++++++++++
>  2 files changed, 43 insertions(+)
>  create mode 100644 meta/recipes-devtools/libtool/libtool/norm-rpath.patch
> 
> diff --git a/meta/recipes-devtools/libtool/libtool-2.4.2.inc b/meta/recipes-devtools/libtool/libtool-2.4.2.inc
> index 5b9557e..691427e 100644
> --- a/meta/recipes-devtools/libtool/libtool-2.4.2.inc
> +++ b/meta/recipes-devtools/libtool/libtool-2.4.2.inc
> @@ -19,6 +19,7 @@ SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \
>             file://avoid_absolute_paths_for_general_utils.patch \
>             file://fix-rpath.patch \
>  	   file://respect-fstack-protector.patch \
> +           file://norm-rpath.patch \
>            "
>  
>  SRC_URI[md5sum] = "d2f3b7d4627e69e13514a40e72a24d50"
> diff --git a/meta/recipes-devtools/libtool/libtool/norm-rpath.patch b/meta/recipes-devtools/libtool/libtool/norm-rpath.patch
> new file mode 100644
> index 0000000..03a7667
> --- /dev/null
> +++ b/meta/recipes-devtools/libtool/libtool/norm-rpath.patch
> @@ -0,0 +1,42 @@
> +libtool: normalize link paths before considering for RPATH
> +
> +Libtool may be passed link paths of the form "/usr/lib/../lib", which
> +fool its detection code into thinking it should be included as an
> +RPATH in the generated binary.  Normalize before comparision.
> +
> +Signed-off-by: Andy Ross <andy.ross at windriver.com>
> +Upstream-Status: Pending
> +
> +diff -ru a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh
> +--- a/libltdl/config/ltmain.m4sh	2012-08-16 13:58:55.058900363 -0700
> ++++ b/libltdl/config/ltmain.m4sh	2012-08-16 16:34:54.616627821 -0700
> +@@ -7288,8 +7288,13 @@
> + 	      else
> +                 # We only want to hardcode in an rpath if it isn't in the
> +                 # default dlsearch path.
> ++                libdir_norm=`echo $libdir \
> ++                  | sed 's/\/\+\.\(\/\+\|$\)/\//g' \
> ++                  | sed 's/[^\/]\+\/\+\.\.\(\/\+\|$\)//g' \
> ++                  | sed 's/\/\+/\//g' \
> ++                  | sed 's/\(.\)\/$/\1/g'`
> + 	        case " $sys_lib_dlsearch_path " in
> +-	        *" $libdir "*) ;;
> ++	        *" $libdir_norm "*) ;;
> + 	        *) eval flag=\"$hardcode_libdir_flag_spec\"
> +                    func_append dep_rpath " $flag"
> +                    ;;

Can't we use func_norm_abspath here?

Cheers,

Richard






More information about the Openembedded-core mailing list