Orbit - Package Manager - Specification/ideas

Jacob Carlborg doob at me.com
Tue Jul 19 02:01:05 PDT 2011


On 2011-07-19 10:16, Johannes Pfau wrote:
> I'd have to test that, but I doubt it will work. This will help to find
> the library at compile time, but not at runtime. The runtime linker
> will only search in directories listed in /etc/ld.so.conf.d or in the
> LD_LIBRARY_PATH variable. Each .so library has a 'soname' embedded. If
> you link like in your example command the resulting binary only
> contains the sonames of the libraries it needs, not the full path. At
> runtime, the linker then reads that soname and searches in its cache for
> a library with the same soname. It might be possible to make this
> soname mechanism use absolute paths or subdirectories, but this seems
> like a hack. Sonames are usually just "libfoo.so.3" where 3 is a ABI
> revision. I think we'll eventually have to install shared libraries
> exactly the way C does it, i.e all in /usr/lib and using the soname
> versioning. But we can think about that when dmd finally supports
> shared libraries on linux, it's not important right now.
>

Oh, at runtime, didn't think of that :). The above command is only for 
compile time. What about the linker flag "-rpath"? That seems it could 
be used. Linux is not the only OS, it's easy to add support for dynamic 
libraries on Mac OS X. All code is already in druntime, it just needs to 
be enabled. Tango already supports this.

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list