curl/.github/workflows
Viktor Szakats 16c6ea36cc
GHA/linux: add minimal Fil-C build with tests
Requirements for Fil-C:
- not to accidentally pick up system headers. E.g. from `/usr/include`
  on Linux. It can happen when any dependency is auto-detected on this
  header path. This makes Fil-C find the wrong system headers, which
  in turn breaks the configuration step in subtle ways (with CMake) and
  less subtle ways (autotools). Then CMake ends up running into an error
  while compiling.
- build all dependencies with Fil-C too.
  (this patch doesn't build any dependencies yet.)
- "unity" mode disabled. It should work, but needs a lot of memory and
  slower than a standard compiler, or a Fil-C non-unity build.
- x86_64 Linux host platform when using the pre-built toolchain.

Observations on a minimal, static build made with no dependencies and
Fil-C 0.674 (based on clang 20.1.8).
- curl tool sizes:
  - cmake, default, w/o -O: 30 MB (gcc 14.2.0: 1.7 MB)
  - cmake, default, w/o -O, stripped: 29.6 MB (gcc: 1.4 MB)
  - cmake, Release, -O3: 7.2 MB (gcc: 1 MB)
  - cmake, Release, -O3, stripped: 6.8 MB (gcc: 0.93 MB)
  - autotools, default, -O2: 7 MB
- libcurl.a size is 32 MB (cmake, default, w/o -O) (gcc: 2.7 MB)
- build times 3-3.5x longer (compared to system gcc 14.2.0):
- all runtests available pass OK.
- all pytests skipped due to missing features/dependencies.
- shared libcurl builds also work (cmake, default: 25 MB libcurl.so and
  5.75 MB (5.6 stripped) curl tool)
- autotools works fine too, with dependencies disabled or set to avoid
  `/usr/include`.

Closes #19391
2025-11-08 13:42:03 +01:00
..
appveyor-status.yml scripts: pass -- before passing xargs 2025-10-16 20:45:28 +02:00
checkdocs.yml scripts: pass -- before passing xargs 2025-10-16 20:45:28 +02:00
checksrc.yml GHA/checksrc: add actionlint, fix or silence issues found 2025-11-05 15:59:43 +01:00
codeql.yml GHA: set concurrency: where missing 2025-10-24 13:38:11 +02:00
configure-vs-cmake.yml GHA: set concurrency: where missing 2025-10-24 13:38:11 +02:00
curl-for-win.yml GHA/curl-for-win: drop libssh 2025-10-20 14:22:14 +02:00
distcheck.yml GHA: bump GitHub artifact Actions 2025-10-25 00:19:00 +02:00
fuzz.yml GHA/fuzz: try fixing concurrency group deadlock 2025-10-24 13:46:14 +02:00
http3-linux.yml GHA/checksrc: add actionlint, fix or silence issues found 2025-11-05 15:59:43 +01:00
label.yml GHA: set concurrency: where missing 2025-10-24 13:38:11 +02:00
linux-old.yml CI: two display name tweaks 2025-11-01 02:24:17 +01:00
linux.yml GHA/linux: add minimal Fil-C build with tests 2025-11-08 13:42:03 +01:00
macos.yml GHA/macos: replace deleted gcc-12 with gcc-13/gcc-14 2025-11-06 22:18:27 +01:00
non-native.yml GHA/non-native: revert to OpenBSD 7.7 due to test hangs with 7.8 2025-11-05 11:50:13 +01:00
windows.yml GHA/checksrc: add actionlint, fix or silence issues found 2025-11-05 15:59:43 +01:00