helpGNU Libtool - Support: sr #108637, libtool adds -rpath to staging...


sr #108637: libtool adds -rpath to staging directory

Submitter:  None
Submitted:  Tue 19 Aug 2014 11:30:33 PM UTC
Category:  None Priority:  5 - Normal
Severity:  3 - Normal Status:  None
Privacy:  Public Assigned to:  None
Originator Email:  -email is unavailable- Open/Closed:  Open
Operating System:  GNU/Linux
* Mandatory Fields

Add a New Comment (Rich Markup)

Comment Type & Canned Response:


Wed 03 Dec 2014 04:24:36 PM UTC, comment #2: 

As pointed out by Roumen Petrov, overriding the sys_lib_dlsearch_path_spec variable gets the behavior I want. In specific, passing lt_cv_sys_lib_dlsearch_path_spec=... with a list of paths to ./configure gets them excluded from the default -rpath.

More follow up on this issue here:

I think this one can be closed now.

Tue 26 Aug 2014 04:20:20 AM UTC, comment #1: 

Small correction, step #4 should read "Build dbus".

If someone could confirm this is indeed a bug and whether there's a good workaround for it that would be great.

Thinking about it, my impression is that bintest should actually be a wrapper shell script with the actual binary under .libs/bintest and make install should possibly relink it without the rpath to the staging directory...

I'd be happy to contribute code, but I'd need some pointers on where the issue is and what would be an acceptable way to fix this.


Tue 19 Aug 2014 11:30:33 PM UTC, original submission:  


I'm trying to link binaries to libraries that are not installed on the system, but just unpacked to a "staging" directory.

Consider this (real) example:

1) Build expat with "--libdir=/usr/lib/${platform}"
2) Install expat with "make install DESTDIR=${stagedir}"
3) Configure dbus with "-L${stagedir}/usr/lib/${platform}" where it will find expat now, and "-rpath /usr/lib/${platform}" where it will find expat at real runtime when both are installed.
4) Build expat

The problem is that ${stagedir} is leaking and the resulting dbus-daemon gets both /usr/lib/${platform} and ${stagedir}/usr/lib/${platform} added to it...

I tried working around it by passing --with-sysroot=${stagedir} to the dbus configure, but unfortunately that didn't work...

I wrote a small reproducer that seems to illustrate the issue, I tried it with latest libtool from git (commit ac180507c123469d0fe9b25437d459af24b3f789) and I still have the same problem.

$ libtool_rpath/
===> RPATH of bintest:
 0x000000000000000f (RPATH)              Library rpath: [/path/to/libtool_rpath/destdir/usr/lib/platform:/usr/lib/platform]

Do you have a suggestion of something I could do to accomplish what I'm trying to accomplish?

Is this a libtool bug?

Any suggestions of workarounds?




(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:

Attached Files
file #31921:  libtool_rpath.tgz added by None (912B - application/x-compressed-tar - Script to reproduce this bug.)


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by None (Submitted the item)

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.





    Follows 1 latest change.

    Date Changed by Updated Field Previous Value => Replaced by
    2014-08-19 None Attached File- Added libtool_rpath.tgz, #31921

    Back to the top

    Powered by Savane 3.9