Go to file
Viktor Szakats 7cd400a4d2
cmake: fix original MinGW builds
1. Re-enable `HAVE_GETADDRINFO` detection on Windows

   Commit d08ee3c83d (in 2013) added logic
   that automatically assumed `getaddrinfo()` to be present for builds
   with IPv6 enabled. As it turns out, certain toolchains (e.g. original
   MinGW) by default target older Windows versions, and thus do not
   support `getaddrinfo()` out of the box. The issue was masked for
   a while by CMake builds forcing a newer Windows version, but that
   logic got deleted in commit 8ba22ffb20.
   Since then, some CI builds started failing due to IPv6 enabled,
   `HAVE_GETADDRINFO` set, but `getaddrinfo()` in fact missing.

   It also turns out that IPv6 works without `getaddrinfo()` since commit
   67a08dca27 (from 2019, via #4662). So,
   to resolve all this, we can now revert the initial commit, thus
   restoring `getaddrinfo()` detection and support IPv6 regardless of its
   outcome.

   Reported-by: Daniel Stenberg

2. Omit `bcrypt` with original MinGW

   Original (aka legacy/old) MinGW versions do not support `bcrypt`
   (introduced with Vista). We already have logic to handle that in
   `lib/rand.c` and autotools builds, where we do not call the
   unsupported API and do not link `bcrypt`, respectively, when using
   original MinGW.

   This patch ports that logic to CMake, fixing the link error:
   `c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: cannot find -lbcrypt`

   Ref: https://ci.appveyor.com/project/curlorg/curl/builds/44624888/job/40vle84cn4vle7s0#L508
   Regression since 76172511e7

Fixes #9214
Fixes #9393
Fixes #9395
Closes #9396
2022-08-31 11:57:24 +00:00
.circleci copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
.github gha: move over ngtcp2-gnutls CI job from zuul 2022-08-27 14:43:26 +02:00
.lift copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
.reuse reuse/dep5: adjusted to parse better 2022-06-14 14:07:02 +02:00
CMake cmake: fix original MinGW builds 2022-08-31 11:57:24 +00:00
docs THANKS: add contributors from the 7.85.0 release 2022-08-31 08:09:21 +02:00
include curl.h: include <sys/select.h> on SunOS 2022-08-17 13:25:02 +02:00
lib url: really use the user provided in the url when netrc entry exists 2022-08-29 17:25:29 +02:00
LICENSES examples/curlx.c: remove 2022-08-18 00:00:12 +02:00
m4 configure: introduce CURL_SIZEOF 2022-08-11 09:07:02 +02:00
packages tidy-up: delete unused build configuration macros 2022-07-19 15:12:19 +00:00
plan9 copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
projects projects: fix third-party SSL library build paths for Visual Studio 2022-06-20 08:22:24 +02:00
scripts zuul: remove the clang-tidy job 2022-08-30 15:40:03 +02:00
src getparam: correctly clean args 2022-08-31 01:03:36 +02:00
tests lib530: simplify realloc failure exit path 2022-08-30 15:38:20 +02:00
winbuild copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
zuul.d zuul: remove the clang-tidy job 2022-08-30 15:40:03 +02:00
.azure-pipelines.yml CI/runtests.pl: add param for dedicated curl to talk to APIs 2022-08-28 19:18:22 +02:00
.cirrus.yml cirrus/freebsd-ci: bootstrap the pip installer 2022-08-08 23:25:56 +02:00
.dcignore copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
.dir-locals.el copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
.git-blame-ignore-revs git: ignore large commit making the curl REUSE compliant 2022-06-13 09:14:07 +02:00
.gitattributes copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
.gitignore copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
.lgtm.yml copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
.mailmap connect: add quic connection information 2022-08-10 08:41:50 +02:00
acinclude.m4 configure: fixup bsdsocket detection code for AmigaOS 4.x 2022-08-08 15:49:28 +02:00
appveyor.yml CI/runtests.pl: add param for dedicated curl to talk to APIs 2022-08-28 19:18:22 +02:00
buildconf copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
buildconf.bat buildconf.bat: update copyright year range 2022-06-14 14:06:55 +02:00
CHANGES
CMakeLists.txt cmake: fix original MinGW builds 2022-08-31 11:57:24 +00:00
configure.ac configure: if asked to use TLS, fail if no TLS lib was detected 2022-08-25 17:29:50 +02:00
COPYING
curl-config.in curl-config: quote directories with potential space 2022-08-10 14:35:40 +02:00
GIT-INFO
libcurl.pc.in copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
MacOSX-Framework copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
Makefile.am copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
Makefile.dist copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
maketgz copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
mlc_config.json
README
README.md README.md: use the common "Copyright" style formatting 2022-06-14 14:06:43 +02:00
RELEASE-NOTES RELEASE-NOTES: synced 2022-08-31 08:09:21 +02:00
SECURITY.md copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00

curl logo

CII Best Practices Coverity passed AppVeyor Build Status Azure DevOps Build Status Cirrus Build Status Backers on Open Collective Sponsors on Open Collective Language Grade: C/C++ Fuzzing Status REUSE status

Curl is a command-line tool for transferring data specified with URL syntax. Find out how to use curl by reading the curl.1 man page or the MANUAL document. Find out how to install Curl by reading the INSTALL document.

libcurl is the library curl is using to do its job. It is readily available to be used by your software. Read the libcurl.3 man page to learn how.

You can find answers to the most frequent questions we get in the FAQ document.

Study the COPYING file for distribution terms.

Contact

If you have problems, questions, ideas or suggestions, please contact us by posting to a suitable mailing list.

All contributors to the project are listed in the THANKS document.

Commercial support

For commercial support, maybe private and dedicated help with your problems or applications using (lib)curl visit the support page.

Website

Visit the curl website for the latest news and downloads.

Git

To download the latest source from the Git server do this:

git clone https://github.com/curl/curl.git

(you will get a directory named curl created, filled with the source code)

Security problems

Report suspected security problems via our HackerOne page and not in public!

Notice

Curl contains pieces of source code that is Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan. This notice is included here to comply with the distribution terms.

Backers

Thank you to all our backers! 🙏 [Become a backer]

Open Collective Backers

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

Open Collective Sponsor 0 Open Collective Sponsor 1 Open Collective Sponsor 2 Open Collective Sponsor 3 Open Collective Sponsor 4 Open Collective Sponsor 5 Open Collective Sponsor 6 Open Collective Sponsor 7 Open Collective Sponsor 8 Open Collective Sponsor 9