Hi, I figured out the reason why the change in ssl.h was needed.
During the build a file called ssleay.def is created which has a list of all the functions that are to be exported in the dll which is getting created. The list of functions are obtained by parsing the header files and finding the list of prototyped functions, in our case even when the no-tlsext flag was given, since in ssl.h the 3 functions under suspicion were getting declared and as a result they were showing up in the def file even though they were not getting built, after the declaration of these functions was put under the OPENSSL_NO_TLSEXT macro check block, when the no-tlsext flag was defined, these functions ceased to exist and did not turn up in the .def file and as a result the linker did not throw an error. Can someone verify my findings. Thanks & Regards Ashish -----Original Message----- From: Kaila, Ashish Sent: Thursday, April 08, 2010 10:39 AM To: '[email protected]' Subject: FW: Problem building OpenSSL version 1.0.0 using no-tlsext flag in Win32 Hi, I had initially posted this in the openssl users list and was adviced to move it to the dev list. Hopefully someone might have some insights. Thanks & Regards Ashish -----Original Message----- From: Kaila, Ashish Sent: Wednesday, April 07, 2010 5:00 PM To: '[email protected]' Subject: RE: Problem building OpenSSL version 1.0.0 using no-tlsext flag Hi, I made the following changes in ssl.h (have indicated the changes with a comment //added this) #ifndef OPENSSL_NO_TLSEXT //added this /* TLS extensions functions */ int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len); int SSL_set_session_ticket_ext_cb(SSL *s, tls_session_ticket_ext_cb_fn cb, void *arg); /* Pre-shared secret session resumption functions */ int SSL_set_session_secret_cb(SSL *s, tls_session_secret_cb_fn tls_session_secret_cb, void *arg); #endif //added this The build is now going through successfully. Thanks & Regards Ashish -----Original Message----- From: Kaila, Ashish Sent: Wednesday, April 07, 2010 4:12 PM To: '[email protected]' Subject: Problem building OpenSSL version 1.0.0 using no-tlsext flag Hi, I took the source of Openssl 1.0.0 and tried building it after running perl Configure no-idea no-rc5 no-mdc2 no-md2 no-krb5 no-tlsext VC-WIN32 The build fails with the following link errors. SSLEAY32.def : error LNK2001: unresolved external symbol SSL_set_session_secret_cb SSLEAY32.def : error LNK2001: unresolved external symbol SSL_set_session_ticket_ext SSLEAY32.def : error LNK2001: unresolved external symbol SSL_set_session_ticket_ext_cb out32dll\ssleay32.lib : fatal error LNK1120: 3 unresolved externals NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 8\VC\BIN\link.EXE"' : return code '0x460' I am wondering as to why this is happening as we were earlier using Openssl 0.9.8m and the build would always go through successfully with the no-tlsext flag. If I remove the no-tlsext flag from the above command and then try building, the build goes through successfully, is this an expected behaviour for Openssl 1.0.0 This is quite urgent, and any help would be appreciated. Thanks & Regards Ashish______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [email protected] Automated List Manager [email protected]
