Fixing LDAP lib compilation on OpenBSD

Matthias Kilian kili at outback.escape.de
Tue Nov 2 12:58:49 EDT 2010


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: -DLDAP_X_PROXY_AUTHZ_FAILURE=LDAP_PROXY_AUTHZ_FAILURE
	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


More information about the Glasgow-haskell-users mailing list