Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: dl.h/dlfnc.h clash in module.c RE: 3.1.6-dev-15



"Andrej Borsenkow" wrote:
> O.K., looks, like my mail was lost.
> 
> I complained about inability to load complete.so (that depends on zle.so) in
> dev-14. It turned out to be patch from 9200, that changed
> 
> #ifdef HAVE_DLFNC_H
> #include <dlfnc.h>
> 
> into
> 
> #ifdef HAVE_DLFNC_H
> #ifdef HAVE_DL_H
> #include <dl.h>
> #else
> #include <dlfnc.h>
> #endif
> 
> Our system has dl.h that has nothing to do with dynamic locading (it is most
> probably from Double Linked lists). It results in RTLD_GLOBAL being undefined
> (defined to dummy value in module.c) - with obvious consequencies ...
> 
> The wording in 9200 was "HPUX 11.0 does not have dlfnc.h ..." - I fail to see
> how above patch fixes that.

The patch came from Gene Cohler <gene@xxxxxxxx> in 9211, and he'll have to
answer this, since most of us don't have access to HPUX 11.  I think the
point is it needs to prefer dl.h to dlfcn.h in that case, if both exist.
(Although I agree that if the problem *really* is that dlfnc.h *doesn't*
exist, HAVE_DLFNC_H oughtn't to be defined in the first place and something
screwy is happening.)  The solution may be to test something HP-specific.
Would changing the second line to

#if defined(HAVE_DL_H) && defined(__hpux)

suit everybody?

-- 
Peter Stephenson <pws@xxxxxxxxxxxxxxxxxxxxxxxx>



Messages sorted by: Reverse Date, Date, Thread, Author