I've been hacking away on the CVS trunk version of Cyrus IMAPd today and I've encountered a linker error because of an undefined OpenSSL function: gcc -L/usr/lib -R/usr/lib -L/usr/pkg/lib -R/usr/pkg/lib -L/usr/pkg/lib -o imapd \ ../master/service.o pushstats.o imapd.o proxy.o imap_proxy.o index.o version.o mutex_fake.o \ libimap.a ../lib/libcyrus.a ../lib/libcyrus_min.a -L/usr/pkg/lib -R/usr/pkg/lib -lsasl2 -lresolv -lfl -L/usr/pkg/lib -R/usr/pkg/lib -ldb4 -lssl -lcrypto ../com_err/et/libcom_err.a libimap.a(tls.o): In function `tls_init_serverengine': /work/woods/m-cyrus-imapd/imap/tls.c:237: undefined reference to `get_rfc2409_prime_1024' Turns out there's some code in imap/tls.c which calls this undefined function and which is wrapped in the following: #if (OPENSSL_VERSION_NUMBER >= 0x0090800fL) On my netbsd-4 server my OS-supplied OpenSSL headers include the line: #define OPENSSL_VERSION_NUMBER 0x0090805fL However neither /usr/lib/libssl.a nor /usr/lib/libcrypto.a contain anything even related to the undefined function: 15:38 [17] $ nm /usr/lib/libssl.a /usr/lib/libcrypto.a | fgrep 2409 15:38 [18] $ What's up here? Is the OpenSSL included in netbsd-4 not really the full release its headers claim to be? A quick search on google gives no results suggesting anyone else has had this problem on any other platform (this code has been in the Cyrus repository since the end of September last year). -- Greg A. Woods H:+1 416 218-0098 W:+1 416 489-5852 x122 VE3TCP RoboHack <woods%robohack.ca@localhost> Planix, Inc. <woods%planix.com@localhost> Secrets of the Weird <woods%weird.com@localhost>
Attachment:
pgprxeuy32w4T.pgp
Description: PGP signature