On Wednesday, 17 September 2014 at 05:52:29 UTC, Chad Joan wrote:
--- The Problem ---

I was using Derelict to play around with SDL/OpenGL in D for a bit, and I was initially unable to do so because DerelictSDL2's search paths for .so files could not find libSDL2_ttf.so on my Linux distribution (Gentoo).

If you're not using the slotted ebuild from:
https://bugs.gentoo.org/show_bug.cgi?id=481788
...you won't have that so file; only the version that links with SDL 1.2. And if we look:

wyatt@Yue ~ $ ls -F -w66 /usr/lib/libSDL* |grep ttf
/usr/lib/libSDL_ttf-2.0.so.0@
/usr/lib/libSDL_ttf-2.0.so.0.10.1*
/usr/lib/libSDL_ttf.so@

Sure enough! I'd suggest pinging that bug because SDL2 isn't going away any time soon.

intelligent lookup of a system's .so files (or lack thereof) could have a profound impact on user experience for anyone on Linux using programs written in D. Mike (aldacron) responded with a request to gather input from the D community at large, so here it is ;)

While I certainly couldn't blame you for harshing on the dynamic linker most days, this (surprisingly) isn't one of them. It's innocent. Shocking, I know.

As an initial proposal, how about this:
1. Look in ./
2. Look in $LD_LIBRARY_PATH
3. Look in all directories listed in /etc/ld.so.conf
4. Look in a baked-in list of last-ditch fallback options. Although I'm sure better could be done, my current suggestion would look like this:
4a. ~/lib
4b. /usr/local/lib
4c. /usr/lib

As it happens, this is almost exactly what actually happens:
http://unix.stackexchange.com/a/22999

This logic should probably end up in Phobos or somewhere suitably common, and revised as needed, so that all D programs can benefit from the community's research and experience on the subject.

On Linux (and OSX?), at least, E_NOTOURPROBLEM. I possibly recall there was some amount of hilarity related to this on Windows, but that's an area where I Just Don't Careā„¢.

-Wyatt

Reply via email to