[M3devel] runpath/unshipped vs. shipped binaries

Olaf Wagner wagner at elegosoft.com
Wed Apr 8 14:51:15 CEST 2009


Quoting Jay <jay.krell at cornell.edu>:

>
> Relinking upon install I still think provides desired results and
> is not a terrible idea, but it is more work to implement.
> I think the perf is probably acceptable.
>
> I don't like to expose too many options to uninformed users, but
> making this an option might be good. It will have an acceptable default,
> which makes it being an option much less bad.

I'm still not convinced that this is the correct behaviour. I find
the whole concept of fixed location paths questionable.
I'll have to relink my libraries for every location change.
Seems simply wrong to me :-/

> It's not just one option.
> There is:
>  1) using the local machine's install point -- /usr/local/cm3/lib,
>  2) vs. using $ORIGIN/../lib.
>    Not available on all systems.
>  3) vs. using package store paths

This should be the default IMHO. And no relinking by default.
Better still remove the paths completely from the libraries.
Others will probably disagree ;-)

Olaf

>  4) vs. using source tree paths
>
>
>
>
> and they can be combined, in various orders.
>
>
>
>
> Plus Darwin is different, though maybe Darwin 10.5 is the same.
> (certainly not pre-10.5 though).
>
>
>
>
>
> I also still think this is related to "buildlocal" vs. " buildship".
> In fact that is already partly accounted for.
>
>
>
>
> I think I didn't understand the full state of things.
>
>
>
>
> [I think] You were always getting big runpaths.
> [I think] They were either to installed libraries or uninstalled libraries.
>
>   If they were to uinstalled binaries, you could not ship -- buildlocal.
> [I think] Now we are moving toward always small runpaths, always   
> pointing to installed libraries. This is dubious for buildlocal.
>
>
>
>
> [I think] Buildlocal should probably retain its old behavior -- big   
> runpaths, into
> the source tree. Or maybe a list of paths, source tree followed by   
> install tree.
> So user might build some of his own shared libraries, but not   
> necessarily all.
>
>
>
>
> I should set that -Wl,-R thing based on local vs. global.
> I didn't look into how to detect that.
>
>
>
>
> More later.
>
>
>
>
>
> Yes, this is a more general question of how to find dependant shared  
>  libraries.
>
> I don't think anyone has solved it all that well, nor do I believe   
> we will, but there are still some better and worse options.
>
>
>
>
>  - Jay
>



-- 
Olaf Wagner -- elego Software Solutions GmbH
                Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany
phone: +49 30 23 45 86 96  mobile: +49 177 2345 869  fax: +49 30 23 45 86 95
    http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz: Berlin
Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194




More information about the M3devel mailing list