Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support OpenSSL 1.1.0 lib names in Windows non-configure builds #984

Closed
jay opened this issue Aug 26, 2016 · 3 comments
Closed

Support OpenSSL 1.1.0 lib names in Windows non-configure builds #984

jay opened this issue Aug 26, 2016 · 3 comments

Comments

@jay
Copy link
Member

@jay jay commented Aug 26, 2016

I did this

winbuild, projects and probably others link to ssleay32.lib and libeay32.lib for OpenSSL. Since the release of OpenSSL 1.1.0 they have changed the library names to libssl.lib and libcrypto.lib.

I expected the following

Even though these build systems aren't dynamically generated I think we will need a way to determine what libs to link to, since any lib that is not found causes an error. I started a thread in openssl-dev about this, but I expect I'll be told to just use the new names.

Related https://curl.haxx.se/mail/lib-2016-08/0104.html cc @rodwiddowson

@gvanem
Copy link
Contributor

@gvanem gvanem commented Dec 17, 2016

BTW if using BoringSSL (as a drop-in replacement for OpenSSL), some of it's functions have been moved to decrepit.lib. AFAICS they are BIO_set_ssl() and BIO_f_ssl(). Which complicates building on Windows even more.

@Mellnik
Copy link

@Mellnik Mellnik commented Jan 4, 2017

Please add support for OpenSSL 1.1.0 Series

@stale
Copy link

@stale stale bot commented Jul 3, 2017

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot closed this Jul 18, 2017
@lock lock bot locked as resolved and limited conversation to collaborators May 6, 2018
jay added a commit to jay/curl that referenced this issue Mar 1, 2021
Use OpenSSL 1.1.x lib names which are different from 1.0.2 which is
now past end-of-life (and is now in paid extended support phase).

libeay32.lib => libcrypto.lib
ssleay32.lib => libssl.lib

This means the project files will now build only with OpenSSL 1.1.x
when an OpenSSL configuration is chosen.

Prior to this change the project files built only with OpenSSL 1.0.x
when an OpenSSL configuration was chosen.

The template changes in this commit were made by script.

Ref: https://gist.github.com/jay/125191c35bbeb894444eff827651f755
Ref: https://curl.se/mail/lib-2018-10/0049.html

Fixes curl#984
Closes #xxxx
jay added a commit to jay/curl that referenced this issue Mar 2, 2021
Use OpenSSL 1.1.x lib names which are different from 1.0.2 which is
now past end-of-life (and is now in paid extended support phase).

libeay32.lib => libcrypto.lib
ssleay32.lib => libssl.lib

This means the project files will now build only with OpenSSL 1.1.x
when an OpenSSL configuration is chosen.

Prior to this change the project files built only with OpenSSL 1.0.x
when an OpenSSL configuration was chosen.

The template changes in this commit were made by script.

Ref: https://gist.github.com/jay/125191c35bbeb894444eff827651f755
Ref: https://curl.se/mail/lib-2018-10/0049.html

Fixes curl#984
Closes #xxxx
jay added a commit that referenced this issue Mar 3, 2021
- Update VS project templates to use the OpenSSL lib names and include
  directories for OpenSSL 1.1.x.

This change means the VS project files will now build only with OpenSSL
1.1.x when an OpenSSL configuration is chosen. Prior to this change the
project files built only with OpenSSL 1.0.x (end-of-life) when an
OpenSSL configuration was chosen.

The template changes in this commit were made by script:

libeay32.lib => libcrypto.lib
ssleay32.lib => libssl.lib
..\..\..\..\..\openssl\inc32 => ..\..\..\..\..\openssl\include

And since the output directory now contains the includes it's prepended:
..\..\..\..\..\openssl\build\Win{32,64}\VC{6..15}\{DLL,LIB}
{Debug,Release}\include

- Change build-openssl.bat to copy the build's include directory to the
  output directory (as seen above).

Each build has its own opensslconf.h which is different so we can't just
include the source include directory any longer.

Note the include directory in the output directory is a full copy from
the build so technically we don't need to include the OpenSSL source
include directory in the template. However, I left it last in case the
user made a custom OpenSSL build using the old method which would put
opensslconf in the OpenSSL source include directory.

- Change build-openssl.bat to use a temporary install directory that is
  different from the temporary build directory.

For OpenSSL 1.1.x the temporary paths must be separate not a descendant
of the other, otherwise pdb files will be lost between builds.

Ref: https://curl.se/mail/lib-2018-10/0049.html
Ref: https://gist.github.com/jay/125191c35bbeb894444eff827651f755
Ref; openssl/openssl#10005

Fixes #984
Closes #6675
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

3 participants