Jay, Thank you very much. Your email helped me solve my issue. Thanks again, Phil
From: owner-openssl-us...@openssl.org [mailto:owner-openssl-us...@openssl.org] On Behalf Of Jay Foster Sent: Thursday, October 30, 2014 4:21 PM To: openssl-users@openssl.org Subject: Re: Make depend issue in Openssl-1.0.1j/ssl I ran into this as well, but fixed it. The issue for me was my build environment was for a cross compilation. It had some extra compiler/linker options that caused the compiler to search the sysroot path header files before the ones specified by -I<path> statements. The result was the compiler was using the OpenSSL header files from my tool chain instead of the ones in the (latest) source. The tool chain had the previous version installed, so was missing the TLS_MAX_VERSION definition. Normally, -I<path> include directives will get searched first, before any normal system search paths. This will get the correct header files from the source tree. If you do something like '-nostdinc -I${SYSROOT}/usr/include -I<path>', then the reverse will happen. Ref https://gcc.gnu.org/onlinedocs/cpp/Search-Path.html. Jay On 10/30/2014 12:40 PM, Philip Bellino wrote: Hello, I am running in the following issue when I do a "make depend (after the "./config shared no-ssl3"): making depend in ssl... make[3]: Entering directory '......./openssl-1.0.1j/ssl' s3_lib.c:3370:4: #error Code needs update for SSLv23_method() support beyond TLS1_2_VERSION. d1_lib.c:274:4: #error Code needs update for DTLS_method() support beyond DTLS1_VERSION. make[3]: *** [depend] Error 1 In ssl/s3_lib.c, there is a new case statement in openssl-1.0.1j: case SSL_CTRL_CHECK_PROTO_VERSION: /* For library-internal use; checks that the current protocol * is the highest enabled version (according to s->ctx->method, * as version negotiation may have changed s->method). */ if (s->version == s->ctx->method->version) return 1; /* Apparently we're using a version-flexible SSL_METHOD * (not at its highest protocol version). */ if (s->ctx->method->version == SSLv23_method()->version) { #if TLS_MAX_VERSION != TLS1_2_VERSION # error Code needs update for SSLv23_method() support beyond TLS1_2_VERSION. #endif if (!(s->options & SSL_OP_NO_TLSv1_2)) return s->version == TLS1_2_VERSION; if (!(s->options & SSL_OP_NO_TLSv1_1)) return s->version == TLS1_1_VERSION; if (!(s->options & SSL_OP_NO_TLSv1)) return s->version == TLS1_VERSION; if (!(s->options & SSL_OP_NO_SSLv3)) return s->version == SSL3_VERSION; if (!(s->options & SSL_OP_NO_SSLv2)) return s->version == SSL2_VERSION; } return 0; /* Unexpected state; fail closed ------------------------------------------------------------------------------------------------------ A grep -ri TLS_MAX_VERSION * include/openssl/tls1.h:#define TLS_MAX_VERSION TLS1_2_VERSION ssl/s23_clnt.c: /* ensure that TLS_MAX_VERSION is up-to-date */ ssl/s23_clnt.c: OPENSSL_assert(s->version <= TLS_MAX_VERSION); ssl/s3_lib.c:#if TLS_MAX_VERSION != TLS1_2_VERSION ssl/tls1.h:#define TLS_MAX_VERSION TLS1_2_VERSION and a grep -ri DTLS_MAX_VERSION * include/openssl/dtls1.h:#define DTLS_MAX_VERSION DTLS1_VERSION ssl/dtls1.h:#define DTLS_MAX_VERSION DTLS1_VERSION ssl/d1_lib.c:#if DTLS_MAX_VERSION != DTLS1_VERSION ssl/d1_lib.c: return s->version == DTLS_MAX_VERSION; This leads me to believe that the code should never have the above error conditions occur, but in fact it is. Any help would be most appreciated and I apologize if I am missing something in my analysis. Thanks, Phil Phil Bellino Principal Software Engineer| MRV Communications Inc. 300 Apollo Drive | Chelmsford, MA 01824 Phone: 978-674-6870 | Fax: 978-674-6799 www.mrv.com [MRV-email] [Image removed by sender. E-Banner]<http://www.mrv.com/landing/mrvs-software-defined-networking-sdn-and-network-function-virtualization-nfv-products-and-architecture> The contents of this message, together with any attachments, are intended only for the use of the person(s) to whom they are addressed and may contain confidential and/or privileged information. If you are not the intended recipient, immediately advise the sender, delete this message and any attachments and note that any distribution, or copying of this message, or any attachment, is prohibited. [E-Banner]<http://www.mrv.com/landing/mrvs-software-defined-networking-sdn-and-network-function-virtualization-nfv-products-and-architecture> The contents of this message, together with any attachments, are intended only for the use of the person(s) to whom they are addressed and may contain confidential and/or privileged information. If you are not the intended recipient, immediately advise the sender, delete this message and any attachments and note that any distribution, or copying of this message, or any attachment, is prohibited.