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=");
}