Skip to content

build: add build-level CURL_DISABLE_TYPECHECK options#19637

Closed
vszakats wants to merge 8 commits intocurl:masterfrom
vszakats:distypecheck
Closed

build: add build-level CURL_DISABLE_TYPECHECK options#19637
vszakats wants to merge 8 commits intocurl:masterfrom
vszakats:distypecheck

Conversation

@vszakats
Copy link
Member

@vszakats vszakats commented Nov 21, 2025

Usage:

  • autotools: --disable-typecheck (or --enable-typecheck (default))
  • cmake: -DCURL_DISABLE_TYPECHECK=ON.

To disable curl_easy_setopt()/curl_easy_getinfo() type checking with
supported (new) gcc and clang compilers. It is useful to improve build
performance for the tests/libtest target. In particular the CodeQL
analyzer may take above an hour to compile with type checking enabled,
and disabling it brings it down to seconds. On local machines it may
also cut build times in half when build testdeps, depending on platform
and compiler.

Other than these cases, we recommend leaving type checking enabled.

Ref: fdacf34 #19632

Also:

  • GHA/codeql: use it.
  • test1165: check in include/curl.
  • lib1912: delete stray todo comment.
  • spelling and comment nits.

https://github.com/curl/curl/pull/19637/files?w=1

@vszakats vszakats changed the title cmake: add cmake-level CURL_DISABLE_TYPECHECK option build: add build-level CURL_DISABLE_TYPECHECK options Nov 21, 2025
@vszakats vszakats closed this in 9e6f1c5 Nov 21, 2025
@vszakats vszakats deleted the distypecheck branch November 21, 2025 12:50
ading2210 pushed a commit to ading2210/curl that referenced this pull request Dec 1, 2025
Usage:
- autotools: `--disable-typecheck` (or `--enable-typecheck` (default))
- cmake: `-DCURL_DISABLE_TYPECHECK=ON`.

To disable `curl_easy_setopt()`/`curl_easy_getinfo()` type checking with
supported (new) gcc and clang compilers. It is useful to improve build
performance for the `tests/libtest` target. In particular the CodeQL
analyzer may take above an hour to compile with type checking enabled,
and disabling it brings it down to seconds. On local machines it may
also cut build times in half when build testdeps, depending on platform
and compiler.

Other than these cases, we recommend leaving type checking enabled.

Ref: fdacf34 curl#19632

Also:
- GHA/codeql: use it.
- test1165: check in `include/curl`.
- lib1912: delete stray todo comment.
- spelling and comment nits.

Closes curl#19637
ading2210 pushed a commit to ading2210/curl that referenced this pull request Dec 1, 2025
Usage:
- autotools: `--disable-typecheck` (or `--enable-typecheck` (default))
- cmake: `-DCURL_DISABLE_TYPECHECK=ON`.

To disable `curl_easy_setopt()`/`curl_easy_getinfo()` type checking with
supported (new) gcc and clang compilers. It is useful to improve build
performance for the `tests/libtest` target. In particular the CodeQL
analyzer may take above an hour to compile with type checking enabled,
and disabling it brings it down to seconds. On local machines it may
also cut build times in half when build testdeps, depending on platform
and compiler.

Other than these cases, we recommend leaving type checking enabled.

Ref: fdacf34 curl#19632

Also:
- GHA/codeql: use it.
- test1165: check in `include/curl`.
- lib1912: delete stray todo comment.
- spelling and comment nits.

Closes curl#19637
vszakats added a commit that referenced this pull request Dec 12, 2025
- cmake: automatically disable typecheck when running clang-tidy,
  to avoid possible interference, and to improve performance.

- INSTALL-CMAKE: document both this, and unity=off for clang-tidy.

- GHA/linux: disable for some static analyzers CI jobs to avoid possible
  interference.

- GHA/linux: disable in Fil-C job to improve build performance.

Follow-up to 9e6f1c5 #19637
Follow-up to fd2ca23 #17955

Closes #19941
vszakats added a commit that referenced this pull request Feb 20, 2026
To make it apply to examples. This in turn makes analyzers run quicker
and with fewer false positives.

It's a special disable option, having its effect via `curl/curl.h`.

Bug: #20649 (comment)
Follow-up to 9e6f1c5 #19637

Closes #20650
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

1 participant