mirror of
https://github.com/curl/curl.git
synced 2026-04-14 21:31:42 +03:00
build: merge TrackMemory (CURLDEBUG) into debug-enabled option
Drop separate `TrackMemory` (aka `CURLDEBUG`) debug feature. After recent changes (thread-safety,193cb00ce9, 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, before59dc9f7e69(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
This commit is contained in:
parent
0002184015
commit
2d5a063121
35 changed files with 58 additions and 146 deletions
|
|
@ -246,7 +246,6 @@ target_link_libraries(my_target PRIVATE CURL::libcurl)
|
|||
- `CURL_STATIC_CRT`: Build libcurl with static CRT with MSVC (`/MT`) (requires UCRT, static libcurl or no curl executable). Default: `OFF`
|
||||
- `CURL_TARGET_WINDOWS_VERSION`: Minimum target Windows version as hex string.
|
||||
- `CURL_WERROR`: Turn compiler warnings into errors. Default: `OFF`
|
||||
- `ENABLE_CURLDEBUG`: Enable TrackMemory debug feature. Default: =`ENABLE_DEBUG`
|
||||
- `ENABLE_CURL_MANUAL`: Build the man page for curl and enable its `-M`/`--manual` option. Default: `ON`
|
||||
- `ENABLE_DEBUG`: Enable curl debug features (for developing curl itself). Default: `OFF`
|
||||
- `IMPORT_LIB_SUFFIX`: Import library suffix. Default: `_imp` for MSVC-like toolchains, otherwise empty.
|
||||
|
|
@ -358,7 +357,7 @@ Details via CMake
|
|||
- `CURL_USE_GNUTLS`: Enable GnuTLS for SSL/TLS. Default: `OFF`
|
||||
- `CURL_USE_GSASL`: Use libgsasl. Default: `OFF`
|
||||
- `CURL_USE_GSSAPI`: Use GSSAPI implementation. Default: `OFF`
|
||||
- `CURL_USE_LIBBACKTRACE`: Use [libbacktrace](https://github.com/ianlancetaylor/libbacktrace). Requires build with TrackMemory and DWARF debug information. Default: `OFF`
|
||||
- `CURL_USE_LIBBACKTRACE`: Use [libbacktrace](https://github.com/ianlancetaylor/libbacktrace). Requires debug-enabled build and DWARF debug information. Default: `OFF`
|
||||
- `CURL_USE_LIBPSL`: Use libpsl. Default: `ON`
|
||||
- `CURL_USE_LIBSSH2`: Use libssh2. Default: `ON`
|
||||
- `CURL_USE_LIBSSH`: Use libssh. Default: `OFF`
|
||||
|
|
|
|||
|
|
@ -124,9 +124,6 @@ SSPI is supported.
|
|||
## `TLS-SRP`
|
||||
SRP (Secure Remote Password) authentication is supported for TLS.
|
||||
|
||||
## `TrackMemory`
|
||||
Debug memory tracking is supported.
|
||||
|
||||
## `Unicode`
|
||||
Unicode support on Windows.
|
||||
|
||||
|
|
|
|||
|
|
@ -356,13 +356,6 @@ curl initialization. (Added in 7.84.0) See libcurl-thread(3)
|
|||
libcurl was built with support for TLS-SRP (in one or more of the built-in TLS
|
||||
backends).
|
||||
|
||||
## `TrackMemory`
|
||||
|
||||
*features* mask bit: CURL_VERSION_CURLDEBUG
|
||||
|
||||
libcurl was built with memory tracking debug capabilities. This is mainly of
|
||||
interest for libcurl hackers.
|
||||
|
||||
## `Unicode`
|
||||
|
||||
*features* mask bit: CURL_VERSION_UNICODE
|
||||
|
|
@ -391,6 +384,14 @@ callbacks. Always 0 since 7.82.0. Deprecated.
|
|||
|
||||
## no name
|
||||
|
||||
*features* mask bit: CURL_VERSION_CURLDEBUG
|
||||
|
||||
libcurl was built with memory tracking debug capabilities. This is mainly of
|
||||
interest for libcurl hackers. Always the same as CURL_VERSION_DEBUG since
|
||||
8.19.0. Deprecated.
|
||||
|
||||
## no name
|
||||
|
||||
*features* mask bit: CURL_VERSION_GSSNEGOTIATE
|
||||
|
||||
supports HTTP GSS-Negotiate. Deprecated.
|
||||
|
|
|
|||
|
|
@ -161,7 +161,7 @@ CURL_VERSION_ASYNCHDNS 7.10.7
|
|||
CURL_VERSION_BITS 7.43.0
|
||||
CURL_VERSION_BROTLI 7.57.0
|
||||
CURL_VERSION_CONV 7.15.4
|
||||
CURL_VERSION_CURLDEBUG 7.19.6
|
||||
CURL_VERSION_CURLDEBUG 7.19.6 8.19.0
|
||||
CURL_VERSION_DEBUG 7.10.6
|
||||
CURL_VERSION_GSASL 7.76.0
|
||||
CURL_VERSION_GSSAPI 7.38.0
|
||||
|
|
|
|||
|
|
@ -175,7 +175,7 @@ SPDX-License-Identifier: curl
|
|||
### Memory test
|
||||
|
||||
The test script checks that all allocated memory is freed properly IF curl
|
||||
has been built with the `CURLDEBUG` define set. The script automatically
|
||||
has been built with the `DEBUGBUILD` define set. The script automatically
|
||||
detects if that is the case, and it uses the `memanalyze.pl` script to
|
||||
analyze the memory debugging output.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue