[openssl-users] Problem in installing gem puma
Venkataraman Srinivasan
srinivasan.v39 at gmail.com
Thu Aug 20 00:45:41 UTC 2015
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.
>
More information about the openssl-users
mailing list