[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