> From: openssl-users [mailto:openssl-users-bounces@xxxxxxxxxxx] On Behalf Of > Mark Richter > Sent: Thursday, July 18, 2019 12:57 > > Is Linux considered to be the same as (or similar enough to) Unix w.r.t. the > building instructions? I'm reading the INSTALL file and it doesn't mention > Linux (nor are there templates for, etc.). Yes. Note there are a couple of references to Linux in NOTES.UNIX (and in NOTES.PERL). There are Linux-relevant stanzas in config, and so on. We build on a number of Linux platforms and distributions, including some obscure ones, generally without issues. > Also, once I figure out the build issues, how can I statically link the ssl > libraries into my app? You can Configure it for static linkage before building it, but per NOTES.UNIX you should get a set of static (archive) libraries as well as the dynamic ones even if you don't. I recommend building OpenSSL as loadable - e.g. as PIC (position-independent code) on ELF platforms such as Linux - even if you intend to link it statically. Then you have the option of statically linking it into a shared object. That's what we do: build OpenSSL as loadable, and link it statically into our own wrapper library, which is a shared object (or DLL on Windows). > Are there any gotchas to > doing this? E.g., our app also uses the curl library, which I believe uses > the default openssl on the host. As Viktor explained in some recent messages to the list, you may need to build OpenSSL with munged symbol names, to ensure each OpenSSL library resolves symbols to itself. However, if you're linking it statically that probably won't be an issue. Aside from that it shouldn't be a problem, as long as you don't try to share OpenSSL objects between the OpenSSL binaries. -- Michael Wojcik Distinguished Engineer, Micro Focus