From: Stephen Waits Date: 2006-03-23T04:15:51+09:00 Subject: Re: Two build issues with 1.8.4.. --------------000309040206090502030203 Content-Type: text/plain; name="warning1.txt" Content-Disposition: inline; filename="warning1.txt" Content-Transfer-Encoding: 7bit MIME-Version: 1.0 X-Mailer: MIME-tools 5.415 (Entity 5.415) WARNING: This e-mail has been altered by MIMEDefang. Following this paragraph are indications of the actual changes made. For more information about your site's MIMEDefang policy, contact SCEA PD Postmaster . For more information about MIMEDefang, see: http://www.roaringpenguin.com/mimedefang/enduser.php3 An attachment named go.sh was removed from this document as it constituted a security hazard. If you require this document, please contact the sender and arrange an alternate means of receiving it. --------------000309040206090502030203 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline nobu@ruby-lang.org wrote: >Can you show the mkmf.log. It is important for build issues. > > Sure.. See attached files. (This is for scenario two I mentioned, where static openssl conflicts with static digest). Also find my script I use to build an all-static ruby. Maybe it will be useful. --Steve --------------000309040206090502030203 Content-Type: text/plain; name="linkerror.txt" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="linkerror.txt" gcc -g -O2 -DRUBY_EXPORT -L/home/swaits/rbundler/work/lib -rdynamic -Wl,-export-dynamic -L. -L"/home/swaits/rbundler/work/lib" main.o ext/extinit.o ext/bigdecimal/bigdecimal.a ext/curses/curses.a ext/dbm/dbm.a ext/digest/digest.a ext/digest/md5/md5.a ext/digest/rmd160/rmd160.a ext/digest/sha1/sha1.a ext/digest/sha2/sha2.a ext/dl/dl.a ext/enumerator/enumerator.a ext/etc/etc.a ext/fcntl/fcntl.a ext/gdbm/gdbm.a ext/iconv/iconv.a ext/io/wait/wait.a ext/nkf/nkf.a ext/openssl/openssl.a ext/pty/pty.a ext/racc/cparse/cparse.a ext/readline/readline.a ext/sdbm/sdbm.a ext/socket/socket.a ext/stringio/stringio.a ext/strscan/strscan.a ext/syck/syck.a ext/syslog/syslog.a ext/zlib/zlib.a -lruby-static -ldl -lcrypt -lm -lreadline -lncurses -lgdbm_compat -lgdbm -lssl -lcrypto -ldl -liconv -lutil -lz -o ruby /home/swaits/rbundler/work/lib/libcrypto.a(sha256.o): In function `SHA256_Transform': sha256.c:(.text+0x2460): multiple definition of `SHA256_Transform' ext/digest/sha2/sha2.a(sha2.o):/home/swaits/rbundler/build/ruby-1.8.4/ext/digest/sha2/sha2.c:390: first defined here /usr/bin/ld: Warning: size of symbol `SHA256_Transform' changed from 641 in ext/digest/sha2/sha2.a(sha2.o) to 26 in /home/swaits/rbundler/work/lib/libcrypto.a(sha256.o) /home/swaits/rbundler/work/lib/libcrypto.a(sha512.o): In function `SHA512_Transform': sha512.c:(.text+0x6870): multiple definition of `SHA512_Transform' ext/digest/sha2/sha2.a(sha2.o):/home/swaits/rbundler/build/ruby-1.8.4/ext/digest/sha2/sha2.c:688: first defined here /usr/bin/ld: Warning: size of symbol `SHA512_Transform' changed from 2534 in ext/digest/sha2/sha2.a(sha2.o) to 18 in /home/swaits/rbundler/work/lib/libcrypto.a(sha512.o) collect2: ld returned 1 exit status make[1]: *** [ruby] Error 1 --------------000309040206090502030203 Content-Type: text/x-log; name="mkmf.log" Content-Transfer-Encoding: 8bit Content-Disposition: inline; filename="mkmf.log" have_library: checking for t_open() in -lnsl... -------------------- no "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lruby-static -lnsl -ldl -lcrypt -lm -lc" /tmp/cc0bd2eZ.o: In function `t': /home/swaits/rbundler/build/ruby-1.8.4/ext/openssl/conftest.c:4: undefined reference to `t_open' collect2: ld returned 1 exit status checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { t_open(); return 0; } /* end */ "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lruby-static -lnsl -ldl -lcrypt -lm -lc" conftest.c: In function ‘t’: conftest.c:5: error: ‘t_open’ undeclared (first use in this function) conftest.c:5: error: (Each undeclared identifier is reported only once conftest.c:5: error: for each function it appears in.) checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { void ((*volatile p)()); p = (void ((*)()))t_open; return 0; } /* end */ -------------------- have_library: checking for socket() in -lsocket... -------------------- no "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lruby-static -lsocket -ldl -lcrypt -lm -lc" /usr/bin/ld: cannot find -lsocket collect2: ld returned 1 exit status checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { socket(); return 0; } /* end */ "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lruby-static -lsocket -ldl -lcrypt -lm -lc" conftest.c: In function ‘t’: conftest.c:5: error: ‘socket’ undeclared (first use in this function) conftest.c:5: error: (Each undeclared identifier is reported only once conftest.c:5: error: for each function it appears in.) checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { void ((*volatile p)()); p = (void ((*)()))socket; return 0; } /* end */ -------------------- have_header: checking for unistd.h... -------------------- yes "gcc -E -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -o conftest.i" checked program was: /* begin */ #include /* end */ -------------------- have_header: checking for sys/time.h... -------------------- yes "gcc -E -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -o conftest.i" checked program was: /* begin */ #include /* end */ -------------------- have_header: checking for assert.h... -------------------- yes "gcc -E -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -o conftest.i" checked program was: /* begin */ #include /* end */ -------------------- have_header: checking for openssl/ssl.h... -------------------- yes "gcc -E -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -o conftest.i" checked program was: /* begin */ #include /* end */ -------------------- have_library: checking for OpenSSL_add_all_digests() in -lcrypto... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lruby-static -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { OpenSSL_add_all_digests(); return 0; } /* end */ -------------------- have_library: checking for SSL_library_init() in -lssl... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { SSL_library_init(); return 0; } /* end */ -------------------- have_header: checking for openssl/conf_api.h... -------------------- yes "gcc -E -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -o conftest.i" checked program was: /* begin */ #include /* end */ -------------------- have_func: checking for ERR_peek_last_error()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { ERR_peek_last_error(); return 0; } /* end */ -------------------- have_func: checking for BN_mod_add()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { BN_mod_add(); return 0; } /* end */ -------------------- have_func: checking for BN_mod_sqr()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { BN_mod_sqr(); return 0; } /* end */ -------------------- have_func: checking for BN_mod_sub()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { BN_mod_sub(); return 0; } /* end */ -------------------- have_func: checking for BN_pseudo_rand_range()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { BN_pseudo_rand_range(); return 0; } /* end */ -------------------- have_func: checking for BN_rand_range()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { BN_rand_range(); return 0; } /* end */ -------------------- have_func: checking for CONF_get1_default_config_file()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { CONF_get1_default_config_file(); return 0; } /* end */ -------------------- have_func: checking for EVP_CIPHER_CTX_copy()... -------------------- no "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" /tmp/ccUPGIFB.o: In function `t': /home/swaits/rbundler/build/ruby-1.8.4/ext/openssl/conftest.c:4: undefined reference to `EVP_CIPHER_CTX_copy' collect2: ld returned 1 exit status checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { EVP_CIPHER_CTX_copy(); return 0; } /* end */ "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" conftest.c: In function ‘t’: conftest.c:5: error: ‘EVP_CIPHER_CTX_copy’ undeclared (first use in this function) conftest.c:5: error: (Each undeclared identifier is reported only once conftest.c:5: error: for each function it appears in.) checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { void ((*volatile p)()); p = (void ((*)()))EVP_CIPHER_CTX_copy; return 0; } /* end */ -------------------- have_func: checking for EVP_CIPHER_CTX_set_padding()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { EVP_CIPHER_CTX_set_padding(); return 0; } /* end */ -------------------- have_func: checking for EVP_CipherFinal_ex()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { EVP_CipherFinal_ex(); return 0; } /* end */ -------------------- have_func: checking for EVP_CipherInit_ex()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { EVP_CipherInit_ex(); return 0; } /* end */ -------------------- have_func: checking for EVP_DigestFinal_ex()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { EVP_DigestFinal_ex(); return 0; } /* end */ -------------------- have_func: checking for EVP_DigestInit_ex()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { EVP_DigestInit_ex(); return 0; } /* end */ -------------------- have_func: checking for EVP_MD_CTX_cleanup()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { EVP_MD_CTX_cleanup(); return 0; } /* end */ -------------------- have_func: checking for EVP_MD_CTX_create()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { EVP_MD_CTX_create(); return 0; } /* end */ -------------------- have_func: checking for EVP_MD_CTX_destroy()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { EVP_MD_CTX_destroy(); return 0; } /* end */ -------------------- have_func: checking for EVP_MD_CTX_init()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { EVP_MD_CTX_init(); return 0; } /* end */ -------------------- have_func: checking for HMAC_CTX_cleanup()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { HMAC_CTX_cleanup(); return 0; } /* end */ -------------------- have_func: checking for HMAC_CTX_copy()... -------------------- no "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" /tmp/ccOKuLR3.o: In function `t': /home/swaits/rbundler/build/ruby-1.8.4/ext/openssl/conftest.c:4: undefined reference to `HMAC_CTX_copy' collect2: ld returned 1 exit status checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { HMAC_CTX_copy(); return 0; } /* end */ "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" conftest.c: In function ‘t’: conftest.c:5: error: ‘HMAC_CTX_copy’ undeclared (first use in this function) conftest.c:5: error: (Each undeclared identifier is reported only once conftest.c:5: error: for each function it appears in.) checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { void ((*volatile p)()); p = (void ((*)()))HMAC_CTX_copy; return 0; } /* end */ -------------------- have_func: checking for HMAC_CTX_init()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { HMAC_CTX_init(); return 0; } /* end */ -------------------- have_func: checking for PEM_def_callback()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { PEM_def_callback(); return 0; } /* end */ -------------------- have_func: checking for X509V3_set_nconf()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { X509V3_set_nconf(); return 0; } /* end */ -------------------- have_func: checking for X509V3_EXT_nconf_nid()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { X509V3_EXT_nconf_nid(); return 0; } /* end */ -------------------- have_func: checking for X509_CRL_add0_revoked()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { X509_CRL_add0_revoked(); return 0; } /* end */ -------------------- have_func: checking for X509_CRL_set_issuer_name()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { X509_CRL_set_issuer_name(); return 0; } /* end */ -------------------- have_func: checking for X509_CRL_set_version()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { X509_CRL_set_version(); return 0; } /* end */ -------------------- have_func: checking for X509_CRL_sort()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { X509_CRL_sort(); return 0; } /* end */ -------------------- have_func: checking for X509_STORE_get_ex_data()... -------------------- no "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" /tmp/ccQRarnd.o: In function `t': /home/swaits/rbundler/build/ruby-1.8.4/ext/openssl/conftest.c:4: undefined reference to `X509_STORE_get_ex_data' collect2: ld returned 1 exit status checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { X509_STORE_get_ex_data(); return 0; } /* end */ "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" conftest.c: In function ‘t’: conftest.c:5: error: ‘X509_STORE_get_ex_data’ undeclared (first use in this function) conftest.c:5: error: (Each undeclared identifier is reported only once conftest.c:5: error: for each function it appears in.) checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { void ((*volatile p)()); p = (void ((*)()))X509_STORE_get_ex_data; return 0; } /* end */ -------------------- have_func: checking for X509_STORE_set_ex_data()... -------------------- no "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" /tmp/ccaxHnaZ.o: In function `t': /home/swaits/rbundler/build/ruby-1.8.4/ext/openssl/conftest.c:4: undefined reference to `X509_STORE_set_ex_data' collect2: ld returned 1 exit status checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { X509_STORE_set_ex_data(); return 0; } /* end */ "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" conftest.c: In function ‘t’: conftest.c:5: error: ‘X509_STORE_set_ex_data’ undeclared (first use in this function) conftest.c:5: error: (Each undeclared identifier is reported only once conftest.c:5: error: for each function it appears in.) checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { void ((*volatile p)()); p = (void ((*)()))X509_STORE_set_ex_data; return 0; } /* end */ -------------------- have_func: checking for OPENSSL_cleanse()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { OPENSSL_cleanse(); return 0; } /* end */ -------------------- "gcc -c -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c" checked program was: /* begin */ #define FOO(a, ...) foo(a, ##__VA_ARGS__) int x(){FOO(1);FOO(1,2);FOO(1,2,3);} /* end */ have_header: checking for openssl/engine.h... -------------------- yes "gcc -E -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -o conftest.i" checked program was: /* begin */ #include /* end */ -------------------- have_func: checking for ENGINE_add()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { ENGINE_add(); return 0; } /* end */ -------------------- have_func: checking for ENGINE_load_builtin_engines()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { ENGINE_load_builtin_engines(); return 0; } /* end */ -------------------- have_func: checking for ENGINE_load_openbsd_dev_crypto()... -------------------- no "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" /tmp/ccEcSAx3.o: In function `t': /home/swaits/rbundler/build/ruby-1.8.4/ext/openssl/conftest.c:4: undefined reference to `ENGINE_load_openbsd_dev_crypto' collect2: ld returned 1 exit status checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { ENGINE_load_openbsd_dev_crypto(); return 0; } /* end */ "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" conftest.c: In function ‘t’: conftest.c:5: error: ‘ENGINE_load_openbsd_dev_crypto’ undeclared (first use in this function) conftest.c:5: error: (Each undeclared identifier is reported only once conftest.c:5: error: for each function it appears in.) checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { void ((*volatile p)()); p = (void ((*)()))ENGINE_load_openbsd_dev_crypto; return 0; } /* end */ -------------------- have_func: checking for ENGINE_get_digest()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { ENGINE_get_digest(); return 0; } /* end */ -------------------- have_func: checking for ENGINE_get_cipher()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { ENGINE_get_cipher(); return 0; } /* end */ -------------------- have_func: checking for ENGINE_cleanup()... -------------------- yes "gcc -o conftest -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -L"/home/swaits/rbundler/work/lib" -L"../.." -lssl -lcrypto -lruby-static -lssl -lcrypto -ldl -lcrypt -lm -lc" checked program was: /* begin */ /*top*/ int main() { return 0; } int t() { ENGINE_cleanup(); return 0; } /* end */ -------------------- "gcc -c -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c" checked program was: /* begin */ #include #if OPENSSL_VERSION_NUMBER < 0x00907000L # error "OpenSSL version is less than 0.9.7." #endif /* end */ have_header: checking for openssl/ocsp.h... -------------------- yes "gcc -E -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c -o conftest.i" checked program was: /* begin */ #include /* end */ -------------------- have_struct_member: checking for EVP_CIPHER_CTX.flags... -------------------- yes "gcc -c -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c" checked program was: /* begin */ #include /*top*/ int main() { return 0; } int s = (char *)&((EVP_CIPHER_CTX*)0)->flags - (char *)0; /* end */ -------------------- have_struct_member: checking for EVP_CIPHER_CTX.engine... -------------------- yes "gcc -c -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c" checked program was: /* begin */ #include /*top*/ int main() { return 0; } int s = (char *)&((EVP_CIPHER_CTX*)0)->engine - (char *)0; /* end */ -------------------- have_struct_member: checking for X509_ATTRIBUTE.single... -------------------- yes "gcc -c -I../.. -I../../. -I/home/swaits/rbundler/work/include -g -O2 conftest.c" checked program was: /* begin */ #include /*top*/ int main() { return 0; } int s = (char *)&((X509_ATTRIBUTE*)0)->single - (char *)0; /* end */ -------------------- --------------000309040206090502030203--