Thank you Michael Wojcik
On 19-Aug-15 7:25 PM, Michael Wojcik wrote:
This is not an OpenSSL issue; it's an autoconf one.
From your installation log:
-----
"gcc -o conftest.exe -IC:/Ruby21/include/ruby-2.1.0/i386-mingw32
-IC:/Ruby21/include/ruby-2.1.0/ruby/backward -IC:/Ruby21/include/ruby-2.1.0 -I.
-DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0501 -D__MINGW_USE_VC2005_COMPAT
-D_FILE_OFFSET_BITS=64 -O3 -fno-omit-frame-pointer -fno-fast-math -g -Wall -Wextra
-Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers
-Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement
-Wimplicit-function-declaration conftest.c -L. -LC:/Ruby21/lib -L. -lmsvcrt-ruby210
-lcrypto -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi"
conftest.c: In function 't':
conftest.c:16:57: error: 'BIO_read' undeclared (first use in this function)
conftest.c:16:57: note: each undeclared identifier is reported only once for
each function it appears in
conftest.c:16:32: warning: variable 'p' set but not used
[-Wunused-but-set-variable]
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <winsock2.h>
4: #include <windows.h>
5:
6: /*top*/
7: extern int t(void);
8: int main(int argc, char **argv)
9: {
10: if (argc > 1000000) {
11: printf("%p", &t);
12: }
13:
14: return 0;
15: }
16: int t(void) { void ((*volatile p)()); p = (void ((*)()))BIO_read; return 0;
}
/* end */
-----
Note:
- The conftest.c generated by autoconf does not include any OpenSSL headers
- gcc correctly complains that BIO_read has not been declared
It's not a linker failure - it's a compiler diagnostic. autoconf isn't
successfully checking whether the symbol can be resolved by the library because
the test program it's generating is rubbish.
Autoconf should be generating an extern declaration for BIO_read in conftest.c;
apparently whoever wrote that bit of autoconf doesn't know C. (No surprise
there.) I suspect it normally works because gcc is configured with different
default settings and treats the lack of a declaration as non-fatal. I don't
know why it's different in your case, and I have no idea how to fix it, as I've
never had to poke into the implementation of autoconf and don't know what's
making your gcc behave differently.
_______________________________________________
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users