mirror of
https://github.com/curl/curl.git
synced 2026-01-26 15:03:21 +00:00
Drop separate `TrackMemory` (aka `CURLDEBUG`) debug feature. After recent changes (thread-safety, 193cb00ce9b47e75d42157c650cc3de3fd96d35d, and updates leading up to it), `TrackMemory` is unlikely to cause build or runtime issues. To simplify builds and debug options, enable `TrackMemory` unconditionally for debug-enabled (aka `DEBUGBUILD`) builds. Before this patch, this was already the default, with an option to disable it, or enable it in non-debug-enabled builds. Note, in practice these two debug options already went hand in hand. It was not possible to toggle them separately for a long time due to bugs, before 59dc9f7e69c399102e9ebe3670360ef52706ff23 (2024-05-28) fixed it. This patch also removes/deprecates separate knobs and feature flags for `TrackMemory`: - autotools: `--enable-curldebug`/`--disable-curldebug` - cmake: `-DENABLE_CURLDEBUG=ON`/`OFF` - C macro: `CURLDEBUG` - libcurl: `CURL_VERSION_CURLDEBUG` symbol deprecated in favor of `CURL_VERSION_DEBUG`. They always return the same value after this patch. Also: - drop `TrackMemory` from `curl -V` output. - rename internal `CURLDEBUG` macro to `CURL_MEMDEBUG` internally. To avoid confusion with `DEBUGBUILD`, but to keep guarding `TrackMemory`-related internals for readability. - runtests: bind `TrackMemory` to debug feature. Keep it a separate test feature requirement, for clarity. - CI: drop test builds for combinations of the two options. - GHA/linux: no longer disable TrackMemory in the TSAN job. Ref: https://github.com/curl/curl/pull/20328#issuecomment-3754528407 Closes #20331
include
Public include files for libcurl, external users.
They are all placed in the curl subdirectory here for better fit in any kind of environment. You must include files from here using...
#include <curl/curl.h>
... style and point the compiler's include path to the directory holding the curl subdirectory. It makes it more likely to survive future modifications.
The public curl include files can be shared freely between different platforms and different architectures.