<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Please bear with me as I am a Windows developer, and not too adept with Linux.  <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Our library has been using the OpenSSL 1.0.2x branch, and we are moving to 1.1.1c.  I have the Windows build of our libraries working, and now I’ve moved to Linux.<o:p></o:p></p>
<p class="MsoNormal">Our library is built as a shared library as well as static library and both use the static OpenSSL library (we archive the OpenSSL static library with our static library).  <o:p></o:p></p>
<p class="MsoNormal">When I built our shared library I had some linker errors:<br>
e/Debug32/mylib.so: undefined reference to `dlopen'<o:p></o:p></p>
<p class="MsoNormal">../../MyLib/Debug32/libMyLib.so: undefined reference to `pthread_rwlock_rdlock'<o:p></o:p></p>
<p class="MsoNormal">../../MyLib/Debug32/libMyLib.so: undefined reference to `pthread_rwlock_init'<o:p></o:p></p>
<p class="MsoNormal">../../MyLib/Debug32/libMyLib.so: undefined reference to `pthread_getspecific'<o:p></o:p></p>
<p class="MsoNormal">../../MyLib/Debug32/libMyLib.so: undefined reference to `pthread_rwlock_destroy'<o:p></o:p></p>
<p class="MsoNormal">../../MyLib/Debug32/libMyLib.so: undefined reference to `dlclose'<o:p></o:p></p>
<p class="MsoNormal">../../MyLib/Debug32/libMyLib.so: undefined reference to `pthread_key_create'<o:p></o:p></p>
<p class="MsoNormal">../../MyLib/Debug32/libMyLib.so: undefined reference to `pthread_rwlock_wrlock'<o:p></o:p></p>
<p class="MsoNormal">../../MyLib/Debug32/libMyLib.so: undefined reference to `pthread_once'<o:p></o:p></p>
<p class="MsoNormal">../../MyLib/Debug32/libMyLib.so: undefined reference to `pthread_atfork'<o:p></o:p></p>
<p class="MsoNormal">../../MyLib/Debug32/libMyLib.so: undefined reference to `pthread_setspecific'<o:p></o:p></p>
<p class="MsoNormal">../../MyLib/Debug32/libMyLib.so: undefined reference to `dlerror'<o:p></o:p></p>
<p class="MsoNormal">../../MyLib/Debug32/libMyLib.so: undefined reference to `pthread_rwlock_unlock'<o:p></o:p></p>
<p class="MsoNormal">../../MyLib/Debug32/libMyLib.so: undefined reference to `dlsym'<o:p></o:p></p>
<p class="MsoNormal">../../MyLib/Debug32/libMyLib.so: undefined reference to `pthread_key_delete'<o:p></o:p></p>
<p class="MsoNormal">../../MyLib/Debug32/libMyLib.so: undefined reference to `dladdr'<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">And the Configuration line from our build script:<br>
./Configure linux-x86_64 --prefix=$install_path/openssl_64 -DPURIFY -DOPENSSL_NO_COMP no-shared no-dso no-sse2 no-idea no-mdc2 no-rc5 no-ssl3 no-zlib no-comp no-afalgeng no-pinshared<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">As our library does not use multiple threads, I can build the OpenSSL library with the no-threads configuration parameter to remove the pthread references.  Is there anything I should be aware of when doing so? 
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">For the dlopen, dlclose, dlerror,dlsym, and dladdr references, it seems I need to link libld using -ldl.  Isn’t the no-dso configuration option supposed to remove the need for this library?  Is there a way to do so with 1.1.1c?  While I
 can link this in our shared library, our static library will require anyone using our library to link libld.  I’d like to avoid this if possible, and it seems we could with the 1.0.2 branch. 
<o:p></o:p></p>
<p class="MsoNormal">Am I missing something here?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks in advance!<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>