[M3devel] ROOT, $ORIGIN, runpath, LD_LIBRARY_PATH, symlinks, hardlinks, etc.

Jay jay.krell at cornell.edu
Thu Jul 2 22:23:35 CEST 2009


  (I just didn't like the link stuff and I still don't understand what ROOT is there for).

 

The point was to add Unix.link where it belongs, m3core, and use it from where can't depend on new m3core.

  And maybe go overboard in sharing the source, to a trivial one line function (less trivial on Win32, in order to support pre-Win2000 OS).

The point was to put the files in lib and also leave them in pkg, without wasting space.

The decision now, which I still have to try, is to stop putting the files in pkg, so then no hardlink needed.

 

 

$origin vs. full paths is still debatable and I still convinced $origin is the way to go.

 

I'm also inclined to put $origin and $origin/../lib in rpath, so backups can flatten the structure to just one directory:

 /backup/cm3

 /backup/libm3core.so

 /backup/libm3.so

 

in some /hypothetical future/ where cm3 is dynamically linked.

As long there are no "duplicates" -- files in both bin and lib, the runpath remains fairly clear/unambiguous.

And even then, the order is pretty clearly left to right..

 

 - Jay





 


CC: wagner at elegosoft.com; m3devel at elegosoft.com
From: hosking at cs.purdue.edu
To: jay.krell at cornell.edu
Subject: Re: [M3devel] ROOT, $ORIGIN, runpath, LD_LIBRARY_PATH, symlinks, hardlinks, etc.
Date: Thu, 2 Jul 2009 16:17:54 -0400





On 2 Jul 2009, at 16:03, Jay wrote:


Ok, so I think a very important question is:
 
  >>> Should users have a choice of where to install? 



Yes!


  >>> What are the reasonable ramifications of someone who makes a non-default choice? 
 
/Personally/ I want the choice, esp. if I don't have root access!, and I don't want to set LD_LIBRARY_PATH.
I want my choice and no negative consequences, and $origin basically gives me that.
Except NetBSD prior to 5.0. 5.0 already released.
And I guess Solaris prior to 2.7 or such.
 
 
We do agree on a change vs. previous releases, at least.
And it overlaps with what I did already.



I think so.  (I just didn't like the link stuff and I still don't understand what ROOT is there for).




 
 
 - Jay

 


CC: wagner at elegosoft.com; m3devel at elegosoft.com
From: hosking at cs.purdue.edu
To: jay.krell at cornell.edu
Subject: Re: [M3devel] ROOT, $ORIGIN, runpath, LD_LIBRARY_PATH, symlinks, hardlinks, etc.
Date: Thu, 2 Jul 2009 15:59:25 -0400




I agree, LD_LIBRARY_PATH should only be used by power-users in a pinch during development.



On 2 Jul 2009, at 14:56, Jay wrote:


Here are some good links, other people trying to explain this stuff:

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20090702/2857e09c/attachment-0002.html>


More information about the M3devel mailing list