On 12.10.2012, at 10.02, dovecot@freakout.de wrote:
According to Timo Sirainen:
Simply specifying -I or -L paths doesn't link with libmysql. What exactly did you use for CPPFLAGS/LDFLAGS/configure?
ok - i specified: CFLAGS="-I/opt/zlib/include -I/opt/ssl/include -I/opt/mysql/include" LDFLAGS="-L/opt/zlib/lib -L/opt/ssl/lib -L/opt/mysql/lib -lmysqlclient"
-lmysqlclient shouldn't be in LDFLAGS.
if i omit "-lmysqlclient" (seems to be the reason for the hassle) i get:
libtool: link: gcc4 -std=gnu99 -g -I/opt/zlib/include -I/opt/ssl/include -I/opt/mysql/include -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -fno-builtin-strftime -Wstrict-aliasing=2 -I/opt/ssl/include -o .libs/auth auth.o auth-cache.o auth-client-connection.o auth-master-connection.o auth-postfix-connection.o mech-otp-skey-common.o mech-plain-common.o auth-penalty.o auth-request.o auth-request-handler.o auth-settings.o auth-stream.o auth-worker-client.o auth-worker-server.o db-checkpassword.o db-dict.o db-sql.o db-passwd-file.o main.o mech.o mech-anonymous.o mech-plain.o mech-login.o mech-cram-md5.o mech-digest-md5.o mech-external.o mech-gssapi.o mech-ntlm.o mech-otp.o mech-scram-sha1.o mech-skey.o mech-rpa.o mech-apop.o mech-winbind.o passdb.o passdb-blocking.o passdb-bsdauth.o passdb-cache.o passdb-checkpassword.o passdb-dict.o passdb-passwd.o passdb-passwd-file.o passdb-pam.o passdb-shadow.o passdb-sia.o passdb-vpopmail.o passdb-sql.o passdb-static.o passdb-template.o userdb.o userdb-blocking.o userdb-checkpassword.o userdb-dict.o userdb-nss.o userdb-passwd.o userdb-passwd-file.o userdb-prefetch.o userdb-static.o userdb-vpopmail.o userdb-sql.o userdb-template.o db-ldap.o passdb-ldap.o userdb-ldap.o -Wl,--export-dynamic -L/opt /zlib/lib -L/opt/ssl/lib -L/opt/mysql/lib libpassword.a ../lib-ntlm/libntlm.a ../lib-otp/libotp.a ../../src/lib-sql/.libs/libsql.a ../../src/lib-dovecot/.libs/libdovecot.so -lcrypt -ldl -Wl,-rpath -Wl,/opt/dovecot/lib ../../src/lib-sql/.libs/libsql.a(driver-mysql.o): In function
driver_mysql_connect': /usr/src/rpm/BUILD/dovecot-2.1.10/src/lib-sql/driver-mysql.c:83: undefined reference to
mysql_options'... tons of other undefined reference to mysqlclient /usr/src/rpm/BUILD/dovecot-2.1.10/src/lib-sql/driver-mysql.c:470: undefined reference to `mysql_error'
collect2: error: ld returned 1 exit status
I'm not sure why it's doing that. It really shouldn't. You could try SQL_LIBS=-lmysqlclient or AUTH_LIBS=-lmysqlclient or MYSQL_LIBS=-lmysqlclient if one of them helps.