On 09/10/12 16:48, Bruce Korb wrote: >> $ guile --version >> guile (GNU Guile) 2.0.5 >> Copyright (C) 2011 Free Software Foundation, Inc. > > I added a couple of debug printf's after several hours chasing down > why my program was crashing: > >> in main() LD_LIBRARY_PATH='EMPTY' >> in inner_main() LD_LIBRARY_PATH='/usr/lib64:/usr/lib64/guile/2.0/extensions' > > It was crashing because it was linking against a library in /usr/lib64 > instead of /usr/local/lib64. Now I know why. > > 1. Why was this done? > 2. Why no notice? This is *BROKEN*. > > libguile needs to be linked with -Wl,-rpath > -Wl,/usr/lib64/guile/2.0/extensions > instead of messing up your client's link/load. ("/usr/lib64" should not be > needed.) > > Distribution: openSuSE 12.2 (Just in case they are not following your > build procedures and I need to harass them.)
P.S. the fix seems to be this, though, naturally, I hate it. static void inner_main(void * closure, int argc, char ** argv) { atexit(done_check); initialize(argc, argv); { char const * p = getenv("LD_LIBRARY_PATH"); if (p != NULL) putenv("LD_LIBRARY_PATH="); }