diff mbox

[v5,16/19] infra-libtool: inform libtool that STAGING_DIR is reachable at runtime

Message ID 1482241596-31688-17-git-send-email-jezz@sysmic.org
State Changes Requested
Headers show

Commit Message

Jérôme Pouiller Dec. 20, 2016, 1:46 p.m. UTC
When installing binaries to $TARGET_DIR, libtool add `$STAGING_DIR{,/usr}/lib'
to RPATH. This is annoying to create reproducible binaries. This patch just
inform libtool that these paths are reachable on runtime and it is necessary to
add then to RPATH.

Notice `$lt_cv_sys_lib_dlsearch_path_spec' was introduced in libtool v2.0.
Packages with libtool v1.5 continue to include `$STAGING_DIR{,/usr}/lib' in
their RPATH. The few packages that use libtool v1.5 have to be patched
individually in order to make them reproducible (adding AUTORECONF=YES should
be sufficient in most cases).

Note, instead of providing $lt_cv_sys_lib_dlsearch_path_spec, Yocto patch
libtool:
   http://git.yoctoproject.org/cgit.cgi/poky/tree/meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch

Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>
---
 package/Makefile.in | 1 +
 1 file changed, 1 insertion(+)

Comments

Samuel Martin Feb. 7, 2017, 3:26 p.m. UTC | #1
Hi Jérôme,

On Tue, Dec 20, 2016 at 2:46 PM, Jérôme Pouiller <jezz@sysmic.org> wrote:
> When installing binaries to $TARGET_DIR, libtool add `$STAGING_DIR{,/usr}/lib'
> to RPATH. This is annoying to create reproducible binaries. This patch just
> inform libtool that these paths are reachable on runtime and it is necessary to

s/it is necessary/it is not necessary/

> add then to RPATH.
>
> Notice `$lt_cv_sys_lib_dlsearch_path_spec' was introduced in libtool v2.0.
> Packages with libtool v1.5 continue to include `$STAGING_DIR{,/usr}/lib' in
> their RPATH. The few packages that use libtool v1.5 have to be patched
> individually in order to make them reproducible (adding AUTORECONF=YES should
> be sufficient in most cases).
>
> Note, instead of providing $lt_cv_sys_lib_dlsearch_path_spec, Yocto patch
> libtool:
>    http://git.yoctoproject.org/cgit.cgi/poky/tree/meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch
>
> Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>
> ---
>  package/Makefile.in | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/package/Makefile.in b/package/Makefile.in
> index 688d5b1..6a341f2 100644
> --- a/package/Makefile.in
> +++ b/package/Makefile.in
> @@ -355,6 +355,7 @@ TARGET_CONFIGURE_ARGS = \
>         ac_cv_func_calloc_0_nonnull=yes \
>         ac_cv_func_realloc_0_nonnull=yes \
>         lt_cv_sys_lib_search_path_spec="" \
> +       lt_cv_sys_lib_dlsearch_path_spec="/lib /usr/lib $(STAGING_DIR)/lib $(STAGING_DIR)/usr/lib" \
>         $(BR2_AC_CV_C_BIGENDIAN) \
>         $(BR2_GT_CV_FUNC_GNUGETTEXT_LIBC)
>
> --
> 1.9.1
>
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

Regards,
Arnout Vandecappelle March 18, 2017, 5:39 p.m. UTC | #2
On 20-12-16 14:46, Jérôme Pouiller wrote:
> When installing binaries to $TARGET_DIR, libtool add `$STAGING_DIR{,/usr}/lib'
                                                      ^s
> to RPATH. This is annoying to create reproducible binaries. This patch just
> inform libtool that these paths are reachable on runtime and it is necessary to
        ^s                                      at                  ^not
> add then to RPATH.
      them
> 
> Notice `$lt_cv_sys_lib_dlsearch_path_spec' was introduced in libtool v2.0.
> Packages with libtool v1.5 continue to include `$STAGING_DIR{,/usr}/lib' in
> their RPATH. The few packages that use libtool v1.5 have to be patched
> individually in order to make them reproducible (adding AUTORECONF=YES should
> be sufficient in most cases).

 Again, this is also solved by Wolfgang's rpath series.

> 
> Note, instead of providing $lt_cv_sys_lib_dlsearch_path_spec, Yocto patch
> libtool:
>    http://git.yoctoproject.org/cgit.cgi/poky/tree/meta/recipes-devtools/libtool/libtool/fix-final-rpath.patch
> 
> Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>


Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
(tested on a static arm musl build with about 20 packages)

 Since this is already handled by Wolgang's rpath series, this patch could be
dropped. However, it is not invasive and it solves the problem earlier, so I vot
to keep it.

 Regards,
 Arnout

> ---
>  package/Makefile.in | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/package/Makefile.in b/package/Makefile.in
> index 688d5b1..6a341f2 100644
> --- a/package/Makefile.in
> +++ b/package/Makefile.in
> @@ -355,6 +355,7 @@ TARGET_CONFIGURE_ARGS = \
>  	ac_cv_func_calloc_0_nonnull=yes \
>  	ac_cv_func_realloc_0_nonnull=yes \
>  	lt_cv_sys_lib_search_path_spec="" \
> +	lt_cv_sys_lib_dlsearch_path_spec="/lib /usr/lib $(STAGING_DIR)/lib $(STAGING_DIR)/usr/lib" \
>  	$(BR2_AC_CV_C_BIGENDIAN) \
>  	$(BR2_GT_CV_FUNC_GNUGETTEXT_LIBC)
>  
>
diff mbox

Patch

diff --git a/package/Makefile.in b/package/Makefile.in
index 688d5b1..6a341f2 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -355,6 +355,7 @@  TARGET_CONFIGURE_ARGS = \
 	ac_cv_func_calloc_0_nonnull=yes \
 	ac_cv_func_realloc_0_nonnull=yes \
 	lt_cv_sys_lib_search_path_spec="" \
+	lt_cv_sys_lib_dlsearch_path_spec="/lib /usr/lib $(STAGING_DIR)/lib $(STAGING_DIR)/usr/lib" \
 	$(BR2_AC_CV_C_BIGENDIAN) \
 	$(BR2_GT_CV_FUNC_GNUGETTEXT_LIBC)