@@ -470,6 +470,8 @@ void MyFrontendAction::EndSourceFileAction() {
470
470
std::ofstream cstr (opt::cfile ());
471
471
472
472
cstr << " //" << std::endl << " // THIS FILE IS GENERATED BY THE PREFIXER TOOL DO NOT EDIT" << std::endl << " //" << std::endl
473
+ << " #define _GNU_SOURCE" << std::endl
474
+ << " #include <link.h>" << std::endl
473
475
<< " #include <dlfcn.h>" << std::endl
474
476
<< " #include <errno.h>" << std::endl
475
477
<< " #include <assert.h>" << std::endl
@@ -491,8 +493,6 @@ void MyFrontendAction::EndSourceFileAction() {
491
493
<< " const char *s = symbol + " << opt::prefix.size () + 1 << " ;" << std::endl
492
494
<< " if ((result = dlsym(libcrypto, s)) != NULL) return result;" << std::endl
493
495
<< " if((result = dlsym(libssl, s)) != NULL) return result;" << std::endl
494
- << " //fprintf(stderr, \" dlsym(%s) : %s\\ n\" , s, dlerror());" << std::endl
495
- << " //exit(ELIBACC);" << std::endl
496
496
<< " return NULL;" << std::endl
497
497
<< " }" << std::endl
498
498
<< std::endl
@@ -507,6 +507,17 @@ void MyFrontendAction::EndSourceFileAction() {
507
507
<< " exit(ELIBACC);" << std::endl
508
508
<< " }" << std::endl
509
509
<< std::endl
510
+ << " if(getenv(\" BSSL_COMPAT_DEBUG_DLINFO\" )) {" << std::endl
511
+ << " char libcryptoorigin[PATH_MAX];" << std::endl
512
+ << " if (dlinfo(libcrypto, RTLD_DI_ORIGIN, libcryptoorigin) == 0) {" << std::endl
513
+ << " fprintf(stderr, \" bssl-compat: Loaded %s from %s\\ n\" , LIBCRYPTO_SO, libcryptoorigin);" << std::endl
514
+ << " }" << std::endl
515
+ << " char libsslorigin[PATH_MAX];" << std::endl
516
+ << " if (dlinfo(libssl, RTLD_DI_ORIGIN, libsslorigin) == 0) {" << std::endl
517
+ << " fprintf(stderr, \" bssl-compat: Loaded %s from %s\\ n\" , LIBSSL_SO, libsslorigin);" << std::endl
518
+ << " }" << std::endl
519
+ << " }" << std::endl
520
+ << std::endl
510
521
<< " ossl.ossl_OpenSSL_version_num = (ossl_OpenSSL_version_num_t)lookup(\" ossl_OpenSSL_version_num\" );" << std::endl
511
522
<< " if (ossl.ossl_OpenSSL_version_num == NULL) {" << std::endl
512
523
<< " fprintf(stderr, \" Failed to load OpenSSL_version_num()\\ n\" );" << std::endl
0 commit comments