On Mon, Jul 14, 2014 at 10:25:31PM -0700, Michael Carter wrote:
> I've been trying to build SASL into postfix for a couple days, and I've been
> seeing this error:
>
> Undefined symbols for architecture x86_64:
> "_sasl_set_path", referenced from:
> _xsasl_cyrus_server_init in libxsasl.a(xsasl_cyrus_server.o)
> ld: symbol(s) not found for architecture x86_64
> clang: error: linker command failed with exit code 1 (use -v to see
> invocation)
> make: *** [smtpd] Error 1
> make: *** [update] Error 1
Your header files don't match the libraries. The sasl_set_path() function
is only called when headers define "SASL_PATH_TYPE_CONFIG", which should only
be the case with library versions that support sasl_set_path().
> Does anyone know where this is defined?
In the right libsasl. Perhaps you have more than one installed.
> make -f Makefile.init makefiles 'CCARGS=-DUSE_TLS -DUSE_CYRUS_SASL
> -DUSE_SASL_AUTH -D__APPLE_OS_X_SERVER_ -DHAS_LDAP -I/usr/local/include
> -I/usr/local/mysql/include -I/opt/local/include/sasl
> -F/System/Library/Frameworks -F/System/Library/PrivateFrameworks
> -Wno-comment' 'AUXLIBS=-L/usr/local/mysql/lib -L/usr/local/lib -lmysqlclient
> -lldap -lssl -L/usr/lib -lsasl2.2 -lgssapi_krb5
You're getting headers from /usr/local/include ahead of /usr/include. The
headers MUST
match the library.
--
Viktor.