Fixing LDAP lib compilation on OpenBSD

Julien Dessaux judessaux at
Wed Nov 3 18:42:32 EDT 2010


Thank you very much, I managed to achieve the conditional compilation as you
describe. Now I am investigating which macro named is most common.

In this matter it seems that the OpenLDAP folks have renamed the macro
themselves from version 2.4. The OpenBSD folks are still in 2.3 (after the
4.8 upgrade), so I will go for OpenBSD being the exception.

Anyway thank you again for your help,
Julien Dessaux

On Tue, Nov 2, 2010 at 5:58 PM, Matthias Kilian <kili at>wrote:

> On Sat, Oct 30, 2010 at 07:28:40PM +0200, Julien Dessaux wrote:
> >     I'm using the LDAP lib for one of my projects and I found a problem
> > while building it on an OpenBSD system. It wouldn't compile because there
> is
> > a macro named differently in the ldap.h include file. Under linux, this
> > macro is named LDAP_X_PROXY_AUTHZ_FAILURE but on OpenBSD (and probably
> other
> > BSD flavours), it's named LDAP_PROXY_AUTHZ_FAILURE.
> >
> >     I attached the diff I wrote in order to compile the lib on OpenBSD,
> but
> > it's not a patch I can submit cause it now won't compile on Linux. How
> can I
> > amend this in order to have a code that would compile on both systems?
> How
> > is it possible to specify such conditional system dependent stuff for a C
> > binding?
> You can use different CC-Options in LDAP.cabal depending on the OS.
> For example
>        if os(openbsd)
>                CC-Options:
>        else
>                CC-Options: -DLDAP_DEPRECATED=1
> Or, if LDAP_X_PROXY_AUTHZ_FAILURE is only used on Linux, just do
> it reverse, i.e. patch the sources to use LDAP_PROXY_AUTHZ_FAILURE
> and conditionally define it as LDAP_X_PROXY_AUTHZ_FAILURE on Linux;
> whatever fits better.
> Ciao,
>        Kili
-------------- next part --------------
An HTML attachment was scrubbed...

More information about the Glasgow-haskell-users mailing list