|
From: | Han-Wen Nienhuys |
Subject: | Re: GUILE 1.6 CVS doesn't compile |
Date: | Mon, 11 Jul 2005 12:51:50 +0200 |
User-agent: | Mozilla Thunderbird 1.0.2-6 (X11/20050513) |
Kevin Ryde wrote:
Han-Wen Nienhuys <address@hidden> writes:make check isn't complaining.I think it works only because that preload array is empty. There's a terminating zero entry, so the fetch from there gives NULL, and lt_dlpreload_default can tolerate NULL (it looks like NULL is what's there if you never call lt_dlpreload_default at all). If the array wasn't empty the fetch would be the address of the first symbol name string, and interpreting that as structs would bomb.
I'm loosing you here, AFAIK, the C compiler treats extern struct bla foo[] ; extern struct bla *foo ; exactly the same in a function call of the form preload (foo) the only potential problem I see is with nitpicking compilers/linkers. Anyway, it seems to work. Will you commit?
I suppose the fix is to define the struct, perhaps per below. Or perhaps the lt_dlpreload_default call isn't needed at all if there's no -dlopen or -dlpreopen in the link.
-- Han-Wen Nienhuys - address@hidden - http://www.xs4all.nl/~hanwen
[Prev in Thread] | Current Thread | [Next in Thread] |