Skip to content

cmake: silence useless compiler warnings triggered by the FASTBuild generator#20230

Closed
vszakats wants to merge 1 commit intocurl:masterfrom
vszakats:cmfb
Closed

cmake: silence useless compiler warnings triggered by the FASTBuild generator#20230
vszakats wants to merge 1 commit intocurl:masterfrom
vszakats:cmfb

Conversation

@vszakats
Copy link
Member

@vszakats vszakats commented Jan 9, 2026

Silencing all of these:

11>/tmp/_fbuild.tmp/0x0752c383/core_2/70816E19/krb5_sspi.c:1:5: error: this style of line directive is a GNU extension [-Werror,-Wgnu-line-marker]
    1 | # 1 "<built-in>"
      |     ^
/path/to/curl/lib/vauth/krb5_sspi.c:29:6: error: this style of line directive is a GNU extension [-Werror,-Wgnu-line-marker]
   29 | # 26 "/path/to/curl/lib/vauth/krb5_sspi.c"
      |      ^
[...]

FASTBuild is slightly faster than Ninja in basic (single-machine, build
from scratch) cases (and can be more faster in other build cases). It
doesn't support unity builds. Maybe it can bring slightly better
performance to non-unity cmake CI jobs, in jobs having an 'install
prereq' phase already, and installing the fastbuild package being faster
than this gain. It overall seems marginal if any in curl CI. At least
for now. But it doesn't hurt if it works, and may be useful for some.

Requires CMake 4.2+.

That said this workaround may have a better place within CMake.

Refs:
https://www.kitware.com/cmake-fastbuild-distributed-cached-and-fast/
https://cmake.org/cmake/help/latest/generator/FASTBuild.html
https://github.com/fastbuild/fastbuild
https://fastbuild.org/docs/home.html

To silence many of these warnings:
```
11>/tmp/_fbuild.tmp/0x0752c383/core_2/70816E19/krb5_sspi.c:1:5: error: this style of line directive is a GNU extension [-Werror,-Wgnu-line-marker]
    1 | # 1 "<built-in>"
      |     ^
/path/to/curl/lib/vauth/krb5_sspi.c:29:6: error: this style of line directive is a GNU extension [-Werror,-Wgnu-line-marker]
   29 | # 26 "/path/to/curl/lib/vauth/krb5_sspi.c"
      |      ^
```

FASTBuild is slightly faster than Ninja in basic (single-machine, build
from scratch) cases. It doesn't support unity builds. Maybe it can bring
slightly better performance to non-unity cmake jobs, in jobs having
an 'install prereq' phase, and installing the fastbuild package is
faster than this gain. It overall seems marginal if any in curl CI.
At least for now. But it doesn't hurt if it works, and may be useful for
some.

Requires CMake 4.2+.

Refs:
https://www.kitware.com/cmake-fastbuild-distributed-cached-and-fast/
https://cmake.org/cmake/help/latest/generator/FASTBuild.html
@vszakats vszakats added the cmake label Jan 9, 2026
@github-actions github-actions bot added the build label Jan 9, 2026
@vszakats vszakats changed the title cmake: fix build with the FASTBuild generator cmake: fix building with the FASTBuild generator Jan 9, 2026
@vszakats vszakats changed the title cmake: fix building with the FASTBuild generator cmake: silence useless compiler warnings triggered by the FASTBuild generator Jan 9, 2026
@vszakats vszakats closed this in 91c24d3 Jan 9, 2026
@vszakats vszakats deleted the cmfb branch January 9, 2026 16:06
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