On Thu, Jul 17, 2014 at 01:38:39PM +1000, James Brown wrote: > make command is now: > > make -f Makefile.init makefiles \ > CCARGS='-arch x86_64 -DUSE_TLS -DUSE_SASL_AUTH \ > -DDEF_SERVER_SASL_TYPE=\"dovecot\" \ > -DDEF_COMMAND_DIR=\"/usr/local/sbin\" \ > -DDEF_CONFIG_DIR=\"/usr/local/etc/postfix\" \ > -DDEF_DAEMON_DIR=\"/usr/local/libexec/postfix\" \ > -DHAS_PCRE -I/usr/local/include \ > -DHAS_MYSQL -I/usr/local/mysql/include' \ > AUXLIBS='-L/usr/local/lib -L/usr/lib -L/usr/local/mysql/lib \ > -llber -lresolv -lpcre -lssl -lcrypto -lmysqlclient -lz -lm? >
Better, provided you have SSL libraries in /usr/local/lib. > Undefined symbols for architecture x86_64: > "_FIPS_md_ctx_create", referenced from: > _tls_serverid_digest in libtls.a(tls_fprint.o) > _tls_data_fprint in libtls.a(tls_fprint.o) > "_FIPS_digestinit", referenced from: > _tls_serverid_digest in libtls.a(tls_fprint.o) > _tls_data_fprint in libtls.a(tls_fprint.o) > etc. And yet you're linking with libraries that don't match the headers. > Yes Wietse, OpenSSL is in two places: > > locate bin/openssl > /usr/bin/openssl > /usr/local/ssl/bin/openssl The openssl(1) command is not relevant, we're talking about OpenSSL *libraries*, that should be rather clear. Show what openssl libraries are in /usr/lib and in /usr/local/lib: In /usr/lib I have: /usr/lib/libssl.0.9.7.dylib /usr/lib/libssl.0.9.8.dylib /usr/lib/libssl.dylib /usr/lib/libcrypto.0.9.7.dylib /usr/lib/libcrypto.0.9.8.dylib /usr/lib/libcrypto.dylib > I usually install things in /usr/local/ as this stops any updates from > Apple overwriting my installs and configurations. You might have better luck with "homebrew". When I "brew install openssl", it helpfully prints the following warnings: ==> Caveats A CA file has been bootstrapped using certificates from the system keychain. To add additional certificates, place .pem files in /usr/local/etc/openssl/certs and run /usr/local/opt/openssl/bin/c_rehash This formula is keg-only, so it was not symlinked into /usr/local. Mac OS X already provides this software and installing another version in parallel can cause all kinds of trouble. The OpenSSL provided by OS X is too old for some software. Generally there are no consequences of this for you. If you build your own software and it requires this formula, you'll need to add to your build variables: LDFLAGS: -L/usr/local/opt/openssl/lib CPPFLAGS: -I/usr/local/opt/openssl/include And I end up with: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/opt/openssl/lib/libssl.a /usr/local/opt/openssl/lib/libssl.dylib /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/opt/openssl/lib/libcrypto.a /usr/local/opt/openssl/lib/libcrypto.dylib You might only have the static (.a) libraries in /usr/local, or a build for the wrong machine architecture, or some other problem you need to remedy. -- Viktor.