#
46bd595b |
| 02-Nov-2024 |
renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> |
ci: update dependency wolfSSL/wolfssh to v1.4.19 Closes #15476
|
#
770702fa |
| 28-Oct-2024 |
Daniel Stenberg |
CI: bump wolfSSH and wolfSSL - wolfSSH 1.4.18 - wolfSSL 5.7.4 Closes #15427
|
#
fe0ee116 |
| 02-Oct-2024 |
Viktor Szakats |
GHA/linux: fix wolfSSL version in cache key This needs the version in the GHA context, so move those back from external file `VERSIONS`. Also move back `VERSIONS` content in it
GHA/linux: fix wolfSSL version in cache key This needs the version in the GHA context, so move those back from external file `VERSIONS`. Also move back `VERSIONS` content in it previous place to `.circleci/config.yml`. Update renovate config. Renovate bot should keep updating the wolfSSL version, but from now on not in one, but two files. Follow-up to 820afa2b7cb33a0daaca5b61e8755546b46136d5 #15030 Follow-up to 73a36021207284ad2b4340ffde34a51b0ba4d47a Closes #15130
show more ...
|
#
954bd908 |
| 22-Sep-2024 |
Viktor Szakats |
CI: improve readability of Circle CI config - move curl configure commands next to each other. - re-order configure options to improve readability. - fold long configure commands.
CI: improve readability of Circle CI config - move curl configure commands next to each other. - re-order configure options to improve readability. - fold long configure commands. Closes #15011
show more ...
|
#
8e7ccfd1 |
| 22-Sep-2024 |
Viktor Szakats |
CI: add missed updates to the `configure-libssh` job Disable dependency tracking and enable unity + test bundles for the `configure-libssh` job that was missed in earlier commits.
CI: add missed updates to the `configure-libssh` job Disable dependency tracking and enable unity + test bundles for the `configure-libssh` job that was missed in earlier commits. Follow-up to 71cf0d1fca9e1f53524e1545ef0c08d174458d80 #14772 Follow-up to dff66196d0bc52b53a91f59d3972769412f9639b #14975 Closes #15010
show more ...
|
#
71cf0d1f |
| 02-Sep-2024 |
Viktor Szakats |
tests: speed up builds with single-binary test bundles Add support for single-block binaries that contain all libtests and unit tests respectively. Enable with: - autotools:
tests: speed up builds with single-binary test bundles Add support for single-block binaries that contain all libtests and unit tests respectively. Enable with: - autotools: `--enable-test-bundles` - cmake: `-DCURL_TEST_BUNDLES=ON` (They are compatible with `--enable-unity` and `-DCMAKE_UNITY_BUILD=ON` options, for further speed-up.) Makes libtests and unit tests build _fast_, needing little disk space even in static mode. Similar to CMake unity mode, but with a custom script, also supporting autotools builds. The price is having to deal with symbols/macros colliding between `lib*.c` and `unit*.c` sources. Maybe with naming conventions or other solutions this can be improved gradually and reduce the need for manual intervention by `mk-bundle.mk`. I've included a script that does the bulk of detecting name collisions. Also: - CI: enable test bundles. - CI: build tests in more jobs. - lib2305: fix FILE handle leak. - unit1661: fix memleak found by torture test by releasing the `bufref` structure in `unit_stop()` that was allocated in `unit_setup()`. ``` test 1661...[bufref unit tests] Leak detected: memory still allocated: 13 bytes allocated by /home/runner/work/curl/curl/tests/unit/unit1661.c:70 1661: torture FAILED: function number 1 in test. ``` Ref: https://github.com/curl/curl/actions/runs/10967279334/job/30456745290?pr=14772#step:8:41 Similar test suite builds with autotools default and cmake+bundle+unity: - GHA/Linux: 33s vs 7s https://github.com/curl/curl/actions/runs/10705668823/job/29681617374 - GHA/macOS 34s vs 2s https://github.com/curl/curl/actions/runs/10705668813/job/29681632885 - GHA/FreeBSD: 15m25 vs 6m21 (full workflow time, ~qemu) https://github.com/curl/curl/actions/runs/10705668811/job/29681607915 - GHA/Cygwin: 9m52 vs 32s https://github.com/curl/curl/actions/runs/10705668809/job/29681609965 - GHA/MSYS2: 3m52 vs 14s https://github.com/curl/curl/actions/runs/10705668808/job/29681624295 - GHA/mingw-w64: 5m45 vs 30s https://github.com/curl/curl/actions/runs/10705668808/job/29681628787 Autotools test suite builds compared between master -> `--enable-test-bundles`: - GHA/Linux: 33s -> 9s (run tests: 22m23 -> 20m44) https://github.com/curl/curl/actions/runs/10710030193/job/29695932185 https://github.com/curl/curl/actions/runs/10967831456/job/30458220344 - GHA/macOS: 25s -> 4s (run tests: 2m58 -> 2m24) https://github.com/curl/curl/actions/runs/10710030195/job/29695938444 https://github.com/curl/curl/actions/runs/10967831452/job/30458225762 - GHA/non-native (FreeBSD): 4m8 -> 3m12 (full workflow time, ~qemu) https://github.com/curl/curl/actions/runs/10710030198/job/29695928401 https://github.com/curl/curl/actions/runs/10967831458/job/30458212692 - GHA/Cygwin: 9m25 -> 1m9 (run tests: 9m19 -> 3m28) https://github.com/curl/curl/actions/runs/10710030212/job/29695928213 https://github.com/curl/curl/actions/runs/10967831453/job/30458213268 - GHA/MSYS2: 3m54 -> 32s (run tests: 6m3 -> 3m59) https://github.com/curl/curl/actions/runs/10710030190/job/29704850591 https://github.com/curl/curl/actions/runs/10967831449/job/30459280005 - GHA/mingw-w64: 5m42 -> 1m5 (run tests: 7m41 -> 5m36) https://github.com/curl/curl/actions/runs/10710030190/job/29704852058 https://github.com/curl/curl/actions/runs/10967831449/job/30459280862 - Azure MSYS2 mingw64 openssl: 38m55 -> 11m58 https://dev.azure.com/daniel0244/curl/_build/results?buildId=25546&view=logs&j=b58b8c59-0f61-52e9-0f9e-fad562a1e77f&t=0f9230a7-3b10-53ca-9938-700ece377c5e https://dev.azure.com/daniel0244/curl/_build/results?buildId=25547&view=logs&jobId=39473db1-3945-55d5-deb5-c218fad88dce&j=b58b8c59-0f61-52e9-0f9e-fad562a1e77f&t=0f9230a7-3b10-53ca-9938-700ece377c5e - Azure Ubuntu default: 2m15 -> 55s (all build) https://dev.azure.com/daniel0244/curl/_build/results?buildId=25546&view=logs&j=9d58b9ac-e1e6-53b6-f83a-1f9f1d912522&t=a6b38d83-e7cf-5a9b-c762-a178412717b7 https://dev.azure.com/daniel0244/curl/_build/results?buildId=25547&view=logs&jobId=39473db1-3945-55d5-deb5-c218fad88dce&j=9d58b9ac-e1e6-53b6-f83a-1f9f1d912522&t=a6b38d83-e7cf-5a9b-c762-a178412717b7 Cmake test suite builds compared between master -> `-DCURL_TEST_BUNDLES=ON` + unity: - GHA/Linux: 29s -> 7s (run tests: 4m50 -> 4m57, 20m43 -> 20m45) https://github.com/curl/curl/actions/runs/10710030193/job/29695941814 https://github.com/curl/curl/actions/runs/10705668823/job/29681622201 - GHA/Linux old: 44s -> 13s (bundle+no unity) (run tests: 5m5 -> 5m6) https://github.com/curl/curl/actions/runs/10718264094/job/29719794727 https://github.com/curl/curl/actions/runs/10718653175/job/29721009613 - GHA/macOS: 32s -> 2s (run tests: 2m43 -> 2m40) https://github.com/curl/curl/actions/runs/10710030195/job/29695931956 https://github.com/curl/curl/actions/runs/10705668813/job/29681638937 - GHA/non-native (*BSD): inconclusive (full workflow time, ~qemu) https://github.com/curl/curl/actions/runs/10710030198 https://github.com/curl/curl/actions/runs/10705668811 - GHA/Cygwin: 3m9 -> 32s https://github.com/curl/curl/actions/runs/10710030212/job/29695929075 https://github.com/curl/curl/actions/runs/10705668809/job/29681609965 - GHA/MSYS2: 2m24 -> 14s https://github.com/curl/curl/actions/runs/10710030190/job/29704850996 https://github.com/curl/curl/actions/runs/10705668808/job/29681624295 - GHA/mingw-w64: 3m56 -> 30s (run tests: 4m2 -> 3m52) https://github.com/curl/curl/actions/runs/10710030190/job/29704852219 https://github.com/curl/curl/actions/runs/10705668808/job/29681631393 - GHA/mingw-w64-old: 7m19 -> 1m44 (run tests: 3m30 -> 2m53) https://github.com/curl/curl/actions/runs/10710030190/job/29704849763 https://github.com/curl/curl/actions/runs/10705668808/job/29681622329 - GHA/MSVC: 3m22 -> 13s (run tests: 9m43 -> 4m22) https://github.com/curl/curl/actions/runs/10710030190/job/29704850411 https://github.com/curl/curl/actions/runs/10705668808/job/29681623313 - AppVeyor CI MSVC 2008: 4m3 -> 45s (full build) - AppVeyor CI MSVC 2010: 2m56 -> 1m8 (full build) - AppVeyor CI MSVC 2022: 10m19 -> 2m23 (full build) https://ci.appveyor.com/project/curlorg/curl/builds/50538455 https://ci.appveyor.com/project/curlorg/curl/builds/50536558 - AppVeyor CI total build time: 10m30 (master) -> 6m48 (unity) -> 4m5 (bundle) -> 3m24 (bundle+unity) -> 5m7 (bundle+unity+all jobs building tests) Closes #14772
show more ...
|
#
60c3d044 |
| 06-Sep-2024 |
Viktor Szakats |
autotools: add support for 'unity' builds, enable in CI Implement the "unity" builds as known from CMake, but for autotools. It's limited to `lib` and `src` (CMake also supports it in `t
autotools: add support for 'unity' builds, enable in CI Implement the "unity" builds as known from CMake, but for autotools. It's limited to `lib` and `src` (CMake also supports it in `tests`). Enable with: `--enable-unity` (disabled by default) Unity builds speed up builds significantly. Cygwin and Windows builds in particular, but the effect is noticeable on most systems. It also allows discovering unity issues with autotools, benefitting also CMake when building the same combination. In CI it makes turnaround times quicker. This closes build performance with CMake. autotools still lags behind because it builds shared and static libcurl in two, separate passes. CMake does it in one. Manpage compilation isn't batched, it is in CMake. After unity and test bundle support the slowest parts of the build are the configuration phase (which is effectively a tedious, non-parallel, compilation and/or linking of 300+ tiny programs. The next bottleneck is compiling individual examples and finally test servers (only slow with autotools). The autotools implementation is slightly less efficient than CMake, because 3 sources are permanently excluded while in CMake this isn't necessary and solved more efficiently while building libtests. There is also no 'unity' support for tests, making them a less efficient also. Enable it in CI for most `configure` jobs. Except in GHA/dist (though it works fine there too), to use the default config there. Also skip for the Linux AWC-LC job where it made builds time a few seconds longer (reason undiscovered.) Autotools test suite builds compared between master -> `--enable-unity`: - GHA/Linux: 32s -> 12s https://github.com/curl/curl/actions/runs/10705668823/job/29681617374 https://github.com/curl/curl/actions/runs/10742978889/job/29796766297 - GHA/macOS: 37s -> 10s https://github.com/curl/curl/actions/runs/10705668813/job/29681632885 https://github.com/curl/curl/actions/runs/10742978699/job/29796768875 - GHA/FreeBSD: 15m25 -> 10m58 (full workflow time, ~qemu) https://github.com/curl/curl/actions/runs/10705668811/job/29681607915 https://github.com/curl/curl/actions/runs/10742978937/job/29796766115 - GHA/Cygwin: 3m32 -> 1m21 https://github.com/curl/curl/actions/runs/10705668809/job/29681609965 https://github.com/curl/curl/actions/runs/10742978645/job/29796756933 - GHA/MSYS2: 2m42 -> 50s https://github.com/curl/curl/actions/runs/10705668808/job/29681621166 https://github.com/curl/curl/actions/runs/10742978662/job/29799739289 - GHA/mingw-w64: 5m32 -> 1m23 https://github.com/curl/curl/actions/runs/10705668808/job/29681628787 https://github.com/curl/curl/actions/runs/10742978662/job/29799741568 Closes #14815
show more ...
|
#
dff66196 |
| 20-Sep-2024 |
Viktor Szakats |
CI: disable dependency tracking in Circle CI jobs Follow-up to 4521eac45aedf7a1d50f70eca5fbdbefdcb09942 #13794 Closes #14975
|
#
c349bd66 |
| 17-Jul-2024 |
Viktor Szakats |
GHA/macos: improve, fix gcc/llvm, add new test matrix This PR began as an attempt to drop GCC support, after repeated reports on fallouts when trying to use it on macOS. Then it
GHA/macos: improve, fix gcc/llvm, add new test matrix This PR began as an attempt to drop GCC support, after repeated reports on fallouts when trying to use it on macOS. Then it transformed into a 3-week project turning up the issues causing the fallouts, ending up including llvm and all available Xcode / macOS SDK, macOS runner image, build tools and compiler vendors and versions. Accumulating 400 sub-commits. I developed and tested all fixes under this PR, then merged them as separate patches. This PR retained CI jobs updates, extensively reworking and extending them: [1] At first it seemed GCC and the Apple SDK is "naturally" growing more incompatible, as Apple added further non-standard features to their headers. This is partly true, but reality is more complicated. Besides some issues local to curl, there were bugs in Apple SDK headers, Homebrew GCC builds, feature missing in the old llvm version pre-installed on GitHub CI runner images, and subtle incompatibilities between GCC and llvm/clang when handling language extensions. Resulting compiler errors seldom pointed to a useful direction, and internet search was silent about these issues too. Thus, I had to peel them off layer by layer, using trial and error, and by recognizing patterns of failures accross 150-200 builds combinations. Exposing configure logs, and curl_config.h in the CI logs helped too. 1. GCC header compatibility layer ("hack" as GCC calls it) The toughest issue is GCC's built-in compatibility layer: https://github.com/gcc-mirror/gcc/tree/master/fixincludes This patch layer is further patched by a "Darwin compatibility" project applied on top by Homebrew GCC via: https://github.com/iains/gcc-12-branch https://github.com/iains/gcc-13-branch https://github.com/iains/gcc-14-branch The hack layer is designed in a way that breaks more builds than it fixes, esp. in context of GHA runners. The idea is to build GCC specifically for the SDK for the target macOS version. The problem with this approach is that the Xcode + SDK installed on the local/CI machine often does not match with the SDK used on while building GCC on Homebrew's build machines. In these cases the GCC compatibility layer turns into an "uncompatibility" layer and consistently breaks builds. curl cannot offer a fix for this, because the solution (I found) is to patch the toolchain on the local machine. I implemented this for our CI builds and curl-for-win. In other case the user must do this patching manually, or choose a compatible GCC + Xcode/SDK combination. An upstream fix doesn't seem trivial either, because the issue is ingrained in the compatibility layer's design. Offering an `-fapplesdk` (or recognizing `-target`) option and/or fixing them within the compiler would seem like a more robust option, and also how mainline llvm solves this. Here's a table summarizing the GCC + SDK combinations and curl build failures: [2] More info: https://github.com/curl/curl/issues/10356#issuecomment-2222734103 db135f8d7207b20d531e7e2100a49f3e16bdcfab #14119 macos: add workaround for gcc, non-c-ares, IPv6, compile error Ref: https://github.com/curl/curl-for-win/commit/e2db3c475f5981352e6e6a79854a255805b28deb Ref: https://github.com/curl/curl-for-win/commit/f5c58d7fef78e972be33ca2355dcb42ba56622a6 2. Homebrew GCC's `availability` extension A recent minor Homebrew GCC upgrade caused major breakage. The "Darwin compatibility" patch applied to GCC implemented the `availability` compiler attribute in GCC. Apple SDK detected this and enabled using them, but as it turns out GCC accepts compiler attributes with slightly different rules than llvm/clang, and how the Apple SDK uses them, breaking builds. Affected Homebrew GCC versions are: 12.4.0, 13.3.0 and 14.1.0. Possibly tracked here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108796 More info: https://github.com/llvm/llvm-project/issues/81767 Commit implementing the `availability` macro: gcc-12: https://github.com/iains/gcc-12-branch/commit/fd5530b7cb0012bf4faeddd45e13054a1dfa6783 gcc-13: https://github.com/iains/gcc-13-branch/commit/cb7e4eca68cfc4763474e2eb0935a844458842a8 gcc-14: https://github.com/iains/gcc-14-branch/commit/ff62a108865a6403f5017380d7018250c1d3306f That applied to Homebrew GCC (12.4.0): https://github.com/Homebrew/homebrew-core/commit/b904223d9893f62bec2a8f7483bf5992747fc6c7#diff-89dd0b4176eca7fcc24b591943509bf8a8d6ea904d71e5dfcd6b78fed62fc574R44-R48 Ref: #13700 More info: https://github.com/curl/curl/pull/14091#issuecomment-2222703468 e91fcbac7d86292858718a0bfebad57978761af4 #14155 macos: undo `availability` macro enabled by Homebrew gcc 3. Proprietary Apple SDK macros Apple SDK expects certain macros predefined by the compiler. Missing them may causes odd issues. Mainline llvm is keeping up with Apple clang, but it needs a fresh version, while the one installed on GitHub runners is old (v15). I patched these in `lib/curl_setup.h`. baa3270846b2a7307cbd0dd5c02c4e5f00e388dd #14134 build: fix llvm 16 or older + Xcode 15 or newer, and gcc 4. Apple SDK header bug Without certain predefined macros, SDK headers can take a codepath where it mis-defines its own `TARGET_OS_OSX` macro, which make it break its own headers later. I patched it in `lib/curl_setup.h`. ff784af461175584c73e7e2b65af00b1a5a6f67f #14159 build: fix llvm 17 and older + macOS SDK 14.4 and newer 5. `TargetConditionals.h` requires `sys/types.h` Fixed in curl. It caused feature-detection failurs with autotools, and could break builds in certain configurations. e1f6192939c9c5ab2310b60bedf4c07d635193f6 #14130 configure: fix `SystemConfiguration` detection 6. Differences between autotools and CMake compiler options Fixed it by syncing compiler warning options. 59cadacfcc1d39472245979cdbd614c7a9af6f0d #14128 build: sync warning options between autotools, cmake & compilers 7. Differences between autotools and CMake dependency detection Fixed it by improving detection of libidn2, with some more fixes pending for the next feature window. f43adc2c4978f7f82a359e89186e58a31d17b0ad #14137 cmake: detect `libidn2` also via `pkg-config` Ref: #14136 cmake: detect `nghttp2` via `pkg-config`, enable by default 8. libidn2 detection bug with CMake Fixed the root cause and also the trigger in the CI config. 764fbabf6ed4c1d36c0ab2033ac8df52d9923cd7 #14175 cmake: fix builds with detected libidn2 lib but undetected header 9. Suppressed compiler warnings inside Apple-specific curl code Fixed these warnings, which allowed to stop silencing them. b05dc7eb3592305de9fa85640767f3dd2a8d4c93 #14122 sectransp: fix `HAVE_BUILTIN_AVAILABLE` checks to not emit warnings 5fa534b0dacdc120aaab0766047e0ecac37be4b3 #14162 sectransp: fix clang compiler warnings, stop silencing them 10. CMake mis-detecting a CA bundle path on macOS d2ef6255f4a040397d2f40ab7cbf65a203201cd9 #14182 cmake: sync CA bundle/path detection with autotools 11. Failure to build tests with LibreSSL or wolfSSL with CMake Fixed by dropping unnecessary includes, makign test builds dependent on dependency headers. 3765d75ce47b66289f946382b649d0e99389dc77 #14172 cmake: fix building `unit1600` due to missing `ssl/openssl.h` 12. curl tests with CMake curl's CMake was missing bits for running the C preprocessor accurately. It made tests 1119 and 1167 fail. I implemented the missing bits. efc2c5184d008fe2e5910fd03263e1ab0331d4e6 #14124 tests: include current directory when running test Perl commands c09db8b51b88ee6ad55bd637dcb4b47678e30906 #14129 cmake: create `configurehelp.pm` like autotools does 67cc1e3400b77536a3ca529c986247e1ef985e6e #14125 test1119: adapt for `.md` input 13. GCC missing `__builtin_available()` support curl source code assumes this is available to enable certain codepaths. It's also intermixed with monotonic timer support. 14. Monotonic timer support with GCC Detected by GCC, while it probably shouldn't be. llvm/clang detects it depending on target OS version. I've been playing with this, but so far without a conclusion or fix. 15. Runtime/test failures with GCC I couldn't find the reason for most of this. A bunch of RTSP tests fail with GCC. SecureTransport + HTTP/2 is failing a bunch of tests. With OpenSSL it fails two of those. SecureTransport builds also fail one DoH test. 16. Runtime/test failure in llvm/clang AppleIDN support received a fix with two more remaining. fd0250869f7837e4a48d7e6f54cc0801ad3820e8 #14179 #14176 IDN: fix ß with AppleIDN 17. Other issues found and fixed while working on this: 2c15aa5765900d4351e733671a1c8c3785beee1a GHA/macos: delete misplaced `CFLAGS`, drop redundant CMake option 80fb7c0bef209735ab352bf4afa31193a7bc65f1 #14126 configure: limit `SystemConfiguration` test to non-c-ares, IPv6 builds cfd6f43d6ca7e57670b422bab7bbf10221a2cf3e #14127 build: tidy up `__builtin_available` feature checks (Apple) bae555359979016999a9425a2d489f219a78abdd #14174 runtests: show name and keywords for failed tests in summary 09cdf7e5315711dea4ce7dcf5d99a4d41e7f658b #14178 cmake: delete unused `HAVE_LIBSSH2`, `HAVE_LIBSOCKET` macros d3595c74fab829f07ef44da1b7fc2f5668767020 #14186 configure: CA bundle/path detection fixes 58772b0e082eda333e0a5fc8fb0bc7f17a3cd99c #14187 runtests: set `SOURCE_DATE_EPOCH` to fix failing around midnight 18f1cd7a77c4beecfd977d43f55634eb593ac99e #14183 tests: sync feature names with `curl -V` 4c22d97be786ed801e050da6872dd3143d6d0a59 #14181 build: use `#error` instead of invalid syntax Pending merges: - #14185 runtests: fold test details for GitHub CI runs - #14197 cmake: grab-bag of tidy-ups - #14196 configure: limit `__builtin_available` test to Darwin Summary: In general GCC doesn't seem to be a good fit with curl and macOS for now. These "lucky" combinations (GitHub Actions runner) will build out of the box now: macos-14 + Xcode 15.0.1 + gcc-11, gcc-12, gcc-14. The rest builds with the ugly workaround in place, but all this still leaves some runtime issues. More info and links in the commit messages and source code. [1]: This PR: - add info about target OS version requirements per feature, with OS names and release years. - stop using `-Wno-deprecated-declarations` to suppress warnings. - use `LDFLAGS=-w` to suppress 'object file was built for newer macOS version than being linked' warnings. (there were tens of thousands of them in some jobs) - allow overriding Xcode version in all jobs. - improve job names. - abbreviate CMake as CM, autotools as AM for more compact job names. - shorten job names by using `!` instead of `no-` and `non-`. - bump parellel tests to 10 (from 5). - drop using `--enable-maintainer-mode` `./configure` option. - add gcc-12 no-ssl, autotools job with tests, ignore failing test results. (It's not yet clear why gcc-12 builds have different runtime results than clang/llvm ones.) - add comments with OS names and release years next to version numbers, e.g. 10.15 # Catalina (2019) - fix broken gcc-12 SecureTransport build. - show compiler, Xcode, SDK, gcc hack SDK versions, Homebrew preinstalled packages and C compiler predefined macros for each job. Useful for debugging all the strange problems these builds might have. - merge brew bundle and install steps. - move step names to the top. - dump configure log for both cmake and autotools also for successful builds. Useful for debugging. - dump curl_config.h in short (sorted #defines) and full form. - add support for the mainline llvm compiler. - set sysroot for gcc and llvm. - add timeout for cmake jobs. - add new job matrix: combinations It supports building all possible compiler, runner image, Xcode/SDK combinations, with cmake and autotools, target OS versions and with or without SecureTransport. It's quick. GHA limits the maximum number of matrix jobs at 256. I used this as a test-rig to fix the macOS build fallouts with gcc and llvm. I settled with 16 jobs, trying to maximize fallout coverage. - implement hack to make Homebrew gcc work with all available SDKs. - add handy mini-table about Xcode / SDK versions, OS names, years for each GHA images, with the defaults. - add tests for cmake jobs. - make cmake config hack to link GnuTLS less intrusive. - stop ignoring test 1452, seems fine now. - fix to enable libpsl in autotools builds. - enable libpsl in cmake builds. - add an llvm job with tests (both autotools and cmake). - delete similar macOS jobs from Circle CI. GHA is now arm64 too. [2]: Homebrew GCC vs GHA runner images vs curl builds: ``` macOS Xcode gcc gcc SDK hacks Xcode SDK SDK major Build Compile (*def) (Homebrew) (CommandLineTools) versions error -------- -------- ---------- ------------------ ---------- --------- ----- --------------------- macos-12 13.1 GCC 11.4.0 MacOSX12 MacOSX12.0 macos-12 13.2.1 GCC 11.4.0 MacOSX12 MacOSX12.1 macos-12 13.3.1 GCC 11.4.0 MacOSX12 MacOSX12.3 macos-12 13.4.1 GCC 11.4.0 MacOSX12 MacOSX12.3 macos-12 14.0.1 GCC 11.4.0 MacOSX12 MacOSX12.3 macos-12 14.1 GCC 11.4.0 MacOSX12 MacOSX13.0 MISMATCH FAIL /Applications/Xcode_14.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os/object.h:275:1: error: expected ';' before 'extern' macos-12 *14.2 GCC 11.4.0 MacOSX12 MacOSX13.1 MISMATCH FAIL /Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os/object.h:275:1: error: expected ';' before 'extern' macos-13 14.1 GCC 11.4.0 MacOSX13 MacOSX13.0 macos-13 14.2 GCC 11.4.0 MacOSX13 MacOSX13.1 macos-13 14.3.1 GCC 11.4.0 MacOSX13 MacOSX13.3 macos-13 *15.0.1 GCC 11.4.0 MacOSX13 MacOSX14.0 MISMATCH FAIL /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dispatch/queue.h:103:1: error: unknown type name 'dispatch_queue_t' macos-13 15.1 GCC 11.4.0 MacOSX13 MacOSX14.2 MISMATCH FAIL /Applications/Xcode_15.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dispatch/queue.h:103:1: error: unknown type name 'dispatch_queue_t' macos-13 15.2 GCC 11.4.0 MacOSX13 MacOSX14.2 MISMATCH FAIL /Applications/Xcode_15.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dispatch/queue.h:103:1: error: unknown type name 'dispatch_queue_t' macos-14 14.3.1 GCC 11.4.0 MacOSX14 MacOSX13.3 MISMATCH FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers macos-14 *15.0.1 GCC 11.4.0 MacOSX14 MacOSX14.0 macos-14 15.1 GCC 11.4.0 MacOSX14 MacOSX14.2 macos-14 15.2 GCC 11.4.0 MacOSX14 MacOSX14.2 macos-14 15.3 GCC 11.4.0 MacOSX14 MacOSX14.4 macos-14 15.4 GCC 11.4.0 MacOSX14 MacOSX14.5 macos-14 16.0 GCC 11.4.0 MacOSX14 MacOSX15.0 MISMATCH FAIL /opt/homebrew/Cellar/gcc@11/11.4.0/lib/gcc/11/gcc/aarch64-apple-darwin23/11/include-fixed/stdio.h:83:8: error: unknown type name 'FILE' macos-12 13.1 GCC 12.4.0 MacOSX12 MacOSX12.0 macos-12 13.2.1 GCC 12.4.0 MacOSX12 MacOSX12.1 macos-12 13.3.1 GCC 12.4.0 MacOSX12 MacOSX12.3 macos-12 13.4.1 GCC 12.4.0 MacOSX12 MacOSX12.3 macos-12 14.0.1 GCC 12.4.0 MacOSX12 MacOSX12.3 macos-12 14.1 GCC 12.4.0 MacOSX12 MacOSX13.0 MISMATCH FAIL /Applications/Xcode_14.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os/object.h:275:1: error: expected ';' before 'extern' macos-12 *14.2 GCC 12.4.0 MacOSX12 MacOSX13.1 MISMATCH FAIL /Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os/object.h:275:1: error: expected ';' before 'extern' macos-13 14.1 GCC 12.4.0 MacOSX13 MacOSX13.0 macos-13 14.2 GCC 12.4.0 MacOSX13 MacOSX13.1 macos-13 14.3.1 GCC 12.4.0 MacOSX13 MacOSX13.3 macos-13 *15.0.1 GCC 12.4.0 MacOSX13 MacOSX14.0 MISMATCH FAIL /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dispatch/queue.h:103:1: error: unknown type name 'dispatch_queue_t' macos-13 15.1 GCC 12.4.0 MacOSX13 MacOSX14.2 MISMATCH FAIL /Applications/Xcode_15.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dispatch/queue.h:103:1: error: unknown type name 'dispatch_queue_t' macos-13 15.2 GCC 12.4.0 MacOSX13 MacOSX14.2 MISMATCH FAIL /Applications/Xcode_15.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dispatch/queue.h:103:1: error: unknown type name 'dispatch_queue_t' macos-14 14.3.1 GCC 12.4.0 MacOSX14 MacOSX13.3 MISMATCH macos-14 *15.0.1 GCC 12.4.0 MacOSX14 MacOSX14.0 macos-14 15.1 GCC 12.4.0 MacOSX14 MacOSX14.2 macos-14 15.2 GCC 12.4.0 MacOSX14 MacOSX14.2 macos-14 15.3 GCC 12.4.0 MacOSX14 MacOSX14.4 macos-14 15.4 GCC 12.4.0 MacOSX14 MacOSX14.5 macos-14 16.0 GCC 12.4.0 MacOSX14 MacOSX15.0 MISMATCH FAIL /opt/homebrew/Cellar/gcc@12/12.4.0/lib/gcc/12/gcc/aarch64-apple-darwin23/12/include-fixed/stdio.h:83:8: error: unknown type name 'FILE' macos-12 13.1 GCC 13.3.0 MacOSX12 MacOSX12.0 macos-12 13.2.1 GCC 13.3.0 MacOSX12 MacOSX12.1 macos-12 13.3.1 GCC 13.3.0 MacOSX12 MacOSX12.3 macos-12 13.4.1 GCC 13.3.0 MacOSX12 MacOSX12.3 macos-12 14.0.1 GCC 13.3.0 MacOSX12 MacOSX12.3 macos-12 14.1 GCC 13.3.0 MacOSX12 MacOSX13.0 MISMATCH FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers macos-12 *14.2 GCC 13.3.0 MacOSX12 MacOSX13.1 MISMATCH FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers macos-13 14.1 GCC 13.3.0 MacOSX13 MacOSX13.0 macos-13 14.2 GCC 13.3.0 MacOSX13 MacOSX13.1 macos-13 14.3.1 GCC 13.3.0 MacOSX13 MacOSX13.3 macos-13 *15.0.1 GCC 13.3.0 MacOSX13 MacOSX14.0 MISMATCH FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers macos-13 15.1 GCC 13.3.0 MacOSX13 MacOSX14.2 MISMATCH FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers macos-13 15.2 GCC 13.3.0 MacOSX13 MacOSX14.2 MISMATCH FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers macos-14 14.3.1 GCC 13.3.0 MacOSX14 MacOSX13.3 MISMATCH FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers macos-14 *15.0.1 GCC 13.3.0 MacOSX14 MacOSX14.0 FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers macos-14 15.1 GCC 13.3.0 MacOSX14 MacOSX14.2 FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers macos-14 15.2 GCC 13.3.0 MacOSX14 MacOSX14.2 FAIL /Users/runner/work/curl/curl/bld/lib/curl_config.h:792:19: error: two or more data types in declaration specifiers macos-14 15.3 GCC 13.3.0 MacOSX14 MacOSX14.4 macos-14 15.4 GCC 13.3.0 MacOSX14 MacOSX14.5 macos-14 16.0 GCC 13.3.0 MacOSX14 MacOSX15.0 MISMATCH FAIL /opt/homebrew/Cellar/gcc@13/13.3.0/lib/gcc/13/gcc/aarch64-apple-darwin23/13/include-fixed/stdio.h:83:8: error: unknown type name 'FILE' macos-12 13.1 GCC 14.1.0 MacOSX12 MacOSX12.0 macos-12 13.2.1 GCC 14.1.0 MacOSX12 MacOSX12.1 macos-12 13.3.1 GCC 14.1.0 MacOSX12 MacOSX12.3 macos-12 13.4.1 GCC 14.1.0 MacOSX12 MacOSX12.3 macos-12 14.0.1 GCC 14.1.0 MacOSX12 MacOSX12.3 macos-12 14.1 GCC 14.1.0 MacOSX12 MacOSX13.0 MISMATCH FAIL /Applications/Xcode_14.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os/object.h:275:1: error: expected ';' before 'extern' macos-12 *14.2 GCC 14.1.0 MacOSX12 MacOSX13.1 MISMATCH FAIL /Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os/object.h:275:1: error: expected ';' before 'extern' macos-13 14.1 GCC 14.1.0 MacOSX13 MacOSX13.0 macos-13 14.2 GCC 14.1.0 MacOSX13 MacOSX13.1 macos-13 14.3.1 GCC 14.1.0 MacOSX13 MacOSX13.3 macos-13 *15.0.1 GCC 14.1.0 MacOSX13 MacOSX14.0 MISMATCH FAIL /Applications/Xcode_15.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dispatch/queue.h:70:1: error: type defaults to 'int' in declaration of 'DISPATCH_DECL_FACTORY_CLASS_SWIFT' [-Wimplicit-int] macos-13 15.1 GCC 14.1.0 MacOSX13 MacOSX14.2 MISMATCH FAIL /Applications/Xcode_15.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dispatch/queue.h:70:1: error: type defaults to 'int' in declaration of 'DISPATCH_DECL_FACTORY_CLASS_SWIFT' [-Wimplicit-int] macos-13 15.2 GCC 14.1.0 MacOSX13 MacOSX14.2 MISMATCH FAIL /Applications/Xcode_15.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/dispatch/queue.h:70:1: error: type defaults to 'int' in declaration of 'DISPATCH_DECL_FACTORY_CLASS_SWIFT' [-Wimplicit-int] macos-14 14.3.1 GCC 14.1.0 MacOSX14 MacOSX13.3 MISMATCH macos-14 *15.0.1 GCC 14.1.0 MacOSX14 MacOSX14.0 macos-14 15.1 GCC 14.1.0 MacOSX14 MacOSX14.2 macos-14 15.2 GCC 14.1.0 MacOSX14 MacOSX14.2 macos-14 15.3 GCC 14.1.0 MacOSX14 MacOSX14.4 macos-14 15.4 GCC 14.1.0 MacOSX14 MacOSX14.5 macos-14 16.0 GCC 14.1.0 MacOSX14 MacOSX15.0 MISMATCH FAIL /opt/homebrew/Cellar/gcc/14.1.0_1/lib/gcc/current/gcc/aarch64-apple-darwin23/14/include-fixed/stdio.h:83:8: error: unknown type name 'FILE' ``` Source: https://github.com/curl/curl/actions/runs/9883956647/job/27299564218 This commit fixes earlier commit 1e75edd372868048c9f805ac4ca6d2cb5a88ff5a, reverted in 41a7e0dcc9681afd91e066411bcee4f369c23366, where I cut the commit message in half by accident. The patch itself is identical. Closes #14097
show more ...
|
#
061278d2 |
| 19-Jul-2024 |
Viktor Szakats |
Revert "GHA/macos: improve, fix gcc/llvm, add new test matrix" This reverts commit 1e75edd372868048c9f805ac4ca6d2cb5a88ff5a. Due to some parts of the commit message missing (my bad.)
|
#
1e75edd3 |
| 17-Jul-2024 |
Viktor Szakats |
GHA/macos: improve, fix gcc/llvm, add new test matrix This PR began as an attempt to drop GCC support, after repeated reports on fallouts when trying to use it on macOS. Then it
GHA/macos: improve, fix gcc/llvm, add new test matrix This PR began as an attempt to drop GCC support, after repeated reports on fallouts when trying to use it on macOS. Then it transformed into a 3-week project turning up the issues causing the fallouts, ending up including llvm and all available Xcode / macOS SDK, macOS runner image, build tools and compiler vendors and versions. Accumulating 400 sub-commits. I developed and tested all fixes under this PR, then merged them as separate patches. This PR retained CI jobs updates, extensively reworking and extending them: [1] At first it seemed GCC and the Apple SDK is "naturally" growing more incompatible, as Apple added further non-standard features to their headers. This is partly true, but reality is more complicated. Besides some issues local to curl, there were bugs in Apple SDK headers, Homebrew GCC builds, feature missing in the old llvm version pre-installed on GitHub CI runner images, and subtle incompatibilities between GCC and llvm/clang when handling language extensions. Resulting compiler errors seldom pointed to a useful direction, and internet search was silent about these issues too. Thus, I had to peel them off layer by layer, using trial and error, and by recognizing patterns of failures accross 150-200 builds combinations. Exposing configure logs, and curl_config.h in the CI logs helped too. 1. GCC header compatibility layer ("hack" as GCC calls it) The toughest issue is GCC's built-in compatibility layer: https://github.com/gcc-mirror/gcc/tree/master/fixincludes This patch layer is further patched by a "Darwin compatibility" project applied on top by Homebrew GCC via: https://github.com/iains/gcc-12-branch https://github.com/iains/gcc-13-branch https://github.com/iains/gcc-14-branch The hack layer is designed in a way that breaks more builds than it fixes, esp. in context of GHA runners. The idea is to build GCC specifically for the SDK for the target macOS version. The problem with this approach is that the Xcode + SDK installed on the local/CI machine often does not match with the SDK used on while building GCC on Homebrew's build machines. In these cases the GCC compatibility layer turns into an "uncompatibility" layer and consistently breaks builds. curl cannot offer a fix for this, because the solution (I found) is to patch the toolchain on the local machine. I implemented this for our CI builds and curl-for-win. In other case the user must do this patching manually, or choose a compatible GCC + Xcode/SDK combination. An upstream fix doesn't seem trivial either, because the issue is ingrained in the compatibility layer's design. Offering an `-fapplesdk` (or recognizing `-target`) option and/or fixing them within the compiler would seem like a more robust option, and also how mainline llvm solves this. Here's a table summarizing the GCC + SDK combinations and curl build failures: [2] More info: https://github.com/curl/curl/issues/10356#issuecomment-2222734103 db135f8d7207b20d531e7e2100a49f3e16bdcfab #14119 macos: add workaround for gcc, non-c-ares, IPv6, compile error Ref: https://github.com/curl/curl-for-win/commit/e2db3c475f5981352e6e6a79854a255805b28deb Ref: https://github.com/curl/curl-for-win/commit/f5c58d7fef78e972be33ca2355dcb42ba56622a6 2. Homebrew GCC's `availability` extension A recent minor Homebrew GCC upgrade caused major breakage. The "Darwin compatibility" patch applied to GCC implemented the `availability` compiler attribute in GCC. Apple SDK detected this and enabled using them, but as it turns out GCC accepts compiler attributes with slightly different rules than llvm/clang, and how the Apple SDK uses them, breaking builds. Affected Homebrew GCC versions are: 12.4.0, 13.3.0 and 14.1.0. Possibly tracked here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108796 More info: https://github.com/llvm/llvm-project/issues/81767 Commit implementing the `availability` macro: gcc-12: https://github.com/iains/gcc-12-branch/commit/fd5530b7cb0012bf4faeddd45e13054a1dfa6783 gcc-13: https://github.com/iains/gcc-13-branch/commit/cb7e4eca68cfc4763474e2eb0935a844458842a8 gcc-14: https://github.com/iains/gcc-14-branch/commit/ff62a108865a6403f5017380d7018250c1d3306f That applied to Homebrew GCC (12.4.0): https://github.com/Homebrew/homebrew-core/commit/b904223d9893f62bec2a8f7483bf5992747fc6c7#diff-89dd0b4176eca7fcc24b591943509bf8a8d6ea904d71e5dfcd6b78fed62fc574R44-R48 Ref: #13700 More info: https://github.com/curl/curl/pull/14091#issuecomment-2222703468 e91fcbac7d86292858718a0bfebad57978761af4 #14155 macos: undo `availability` macro enabled by Homebrew gcc 3. Proprietary Apple SDK macros Apple SDK expects certain macros predefined by the compiler. Missing them may causes odd issues. Mainline llvm is keeping up with Apple clang, but it needs a fresh version, while the one installed on GitHub runners is old (v15). I patched these in `lib/curl_setup.h`. baa3270846b2a7307cbd0dd5c02c4e5f00e388dd #14134 build: fix llvm 16 or older + Xcode 15 or newer, and gcc 4. Apple SDK header bug Without certain predefined macros, SDK headers can take a codepath where it mis-defines its own `TARGET_OS_OSX` macro, which make it break its own headers later. I patched it in `lib/curl_setup.h`. ff784af461175584c73e7e2b65af00b1a5a6f67f #14159 build: fix llvm 17 and older + macOS SDK 14.4 and newer 5. `TargetConditionals.h` requires `sys/types.h` Fixed in curl. It caused feature-detection failurs with autotools, and could break builds in certain configurations. e1f6192939c9c5ab2310b60bedf4c07d635193f6 #14130 configure: fix `SystemConfiguration` detection 6. Differences between autotools and CMake compiler options Fixed it by syncing compiler warning options. 59cadacfcc1d39472245979cdbd614c7a9af6f0d #14128 build: sync warning options between autotools, cmake & compilers 7. Differences between autotools and CMake dependency detection Fixed it by improving detection of libidn2, with some more fixes pending for the next feature window. f43adc2c4978f7f82a359e89186e58a31d17b0ad #14137 cmake: detect `libidn2` also via `pkg-config` Ref: #14136 cmake: detect `nghttp2` via `pkg-config`, enable by default 8. libidn2 detection bug with CMake Fixed the root cause and also the trigger in the CI config. 764fbabf6ed4c1d36c0ab2033ac8df52d9923cd7 #14175 cmake: fix builds with detected libidn2 lib but undetected header 9. Suppressed compiler warnings inside Apple-specific curl code Fixed these warnings, which allowed to stop silencing them. b05dc7eb3592305de9fa85640767f3dd2a8d4c93 #14122 sectransp: fix `HAVE_BUILTIN_AVAILABLE` checks to not emit warnings 5fa534b0dacdc120aaab0766047e0ecac37be4b3 #14162 sectransp: fix clang compiler warnings, stop silencing them 10. CMake mis-detecting a CA bundle path on macOS d2ef6255f4a040397d2f40ab7cbf65a203201cd9 #14182 cmake: sync CA bundle/path detection with autotools 11. Failure to build tests with LibreSSL or wolfSSL with CMake Fixed by dropping unnecessary includes, makign test builds dependent on dependency headers. 3765d75ce47b66289f946382b649d0e99389dc77 #14172 cmake: fix building `unit1600` due to missing `ssl/openssl.h` 12. curl tests with CMake curl's CMake was missing bits for running the C preprocessor accurately. It made tests 1119 and 1167 fail. I implemented the missing bits. efc2c5184d008fe2e5910fd03263e1ab0331d4e6 #14124 tests: include current directory when running test Perl commands c09db8b51b88ee6ad55bd637dcb4b47678e30906 #14129 cmake: create `configurehelp.pm` like autotools does 67cc1e3400b77536a3ca529c986247e1ef985e6e #14125 test1119: adapt for `.md` input 13. GCC missing `__builtin_available()` support curl source code assumes this is available to enable certain codepaths. It's also intermixed with monotonic timer support. 14. Monotonic timer support with GCC Detected by GCC, while it probably shouldn't be. llvm/clang detects it depending on target OS version. I've been playing with this, but so far without a conclusion or fix. 15. Runtime/test failures with GCC I couldn't find the reason for most of this. A bunch of RTSP tests fail with GCC. SecureTransport + HTTP/2 is failing a bunch of tests. With OpenSSL it fails two of those. SecureTransport builds also fail one DoH test. 16. Runtime/test failure in llvm/clang AppleIDN support received a fix with two more remaining. fd0250869f7837e4a48d7e6f54cc0801ad3820e8 #14179 #14176 IDN: fix ß with AppleIDN 17. Other issues found and fixed while working on this: 2c15aa5765900d4351e733671a1c8c3785beee1a GHA/macos: delete misplaced `CFLAGS`, drop redundant CMake option 80fb7c0bef209735ab352bf4afa31193a7bc65f1 #14126 configure: limit `SystemConfiguration` test to non-c-ares, IPv6 builds cfd6f43d6ca7e57670b422bab7bbf10221a2cf3e #14127 build: tidy up `__builtin_available` feature checks (Apple) bae555359979016999a9425a2d489f219a78abdd #14174 runtests: show name and keywords for failed tests in summary 09cdf7e5315711dea4ce7dcf5d99a4d41e7f658b #14178 cmake: delete unused `HAVE_LIBSSH2`, `HAVE_LIBSOCKET` macros d3595c74fab829f07ef44da1b7fc2f5668767020 #14186 configure: CA bundle/path detection fixes 58772b0e082eda333e0a5fc8fb0bc7f17a3cd99c #14187 runtests: set `SOURCE_DATE_EPOCH` to fix failing around midnight 18f1cd7a77c4beecfd977d43f55634eb593ac99e #14183 tests: sync feature names with `curl -V` 4c22d97be786ed801e050da6872dd3143d6d0a59 #14181 build: use `#error` instead of invalid syntax Pending merge:
show more ...
|
#
2a7c8b27 |
| 12-Jul-2024 |
Viktor Szakats |
CI/circleci: config tidy-ups, bump up test parallelism - bump parallel test for Linux jobs. Credit-to: Dan Fandrich Cherry-picked from #11510 - bump parallel test for macOS j
CI/circleci: config tidy-ups, bump up test parallelism - bump parallel test for Linux jobs. Credit-to: Dan Fandrich Cherry-picked from #11510 - bump parallel test for macOS jobs. - drop no longer necessary `-Wno-vla` option. - fold long lines. - drop `--enable-maintainer-mode` `./configure` option. - replace a hard-coded prefix with `brew --prefix`. - update documentation link. - move `--enable-debug` in front. - tidy up quotes. Closes #14171
show more ...
|
#
6343034d |
| 12-Jul-2024 |
Viktor Szakats |
tidy-up: adjust casing of project names Mostly TLS/SSH project name. Closes #14160
|
#
73a36021 |
| 13-May-2024 |
Max Dymond |
Add some basic versioning for some workflows to check whether this is detected properly
|
#
1972588d |
| 24-Apr-2024 |
Viktor Szakats |
CI: retain failure code after `./configure` with Circle CI Suggested-by: Dan Fandrich Follow-up to 43299e93c06b96fea8a8dc9b1c2e49c82bc21801 #13462 Follow-up to d7332e3e46c3ef401b34e6
CI: retain failure code after `./configure` with Circle CI Suggested-by: Dan Fandrich Follow-up to 43299e93c06b96fea8a8dc9b1c2e49c82bc21801 #13462 Follow-up to d7332e3e46c3ef401b34e6a1a129eb4dd846c452 #12635 Closes #13468
show more ...
|
#
43299e93 |
| 24-Apr-2024 |
Viktor Szakats |
CI: show more failed `config.log` on Circle CI Show last 1000 lines of `config.log` if `./configure` fails. This was already done for one job, this patch extends it to all. Ref:
CI: show more failed `config.log` on Circle CI Show last 1000 lines of `config.log` if `./configure` fails. This was already done for one job, this patch extends it to all. Ref: #13438 Closes #13462
show more ...
|
#
30f1cb25 |
| 16-Feb-2024 |
Dan Fandrich |
CI: Bump the Circle CI base Ubuntu image to the latest 20.04 The previous ones are going to be removed soon, plus the new ones include all the fixes since then.
|
#
d7332e3e |
| 04-Jan-2024 |
Dan Fandrich |
Revert "CI: run Circle macOS builds on x86 for now" This reverts commit 2683de3078eadc86d9b182e7417f4ee75a247e2c. ARM resources are now available in Circle CI, so run these builds on ARM
Revert "CI: run Circle macOS builds on x86 for now" This reverts commit 2683de3078eadc86d9b182e7417f4ee75a247e2c. ARM resources are now available in Circle CI, so run these builds on ARM again. This platform needs explicit paths set to libpsl and its dependency icu4c. Follow-up to 2683de30 Closes #12635
show more ...
|
#
d18811b5 |
| 08-Jan-2024 |
Daniel Stenberg |
CI: install libpsl or configure --without-libpsl in builds As a follow-up to the stricted libpsl check in configure
|
#
b7258e49 |
| 18-Dec-2023 |
Daniel Stenberg |
CI/circleci: disable MQTT in the HTTP-only build And remove the use of configure options that don't actually exist Closes #12546
|
#
bda21291 |
| 06-Dec-2023 |
Viktor Szakats |
tidy-up: fix yamllint whitespace issues Closes #12466
|
#
2683de30 |
| 06-Sep-2023 |
Dan Fandrich |
CI: run Circle macOS builds on x86 for now The ARM machines aren't ready for us and requesting them now causes warnings e-mails to be sent to some PR pushers. Ref: #11771
|
#
3262ce6f |
| 31-Aug-2023 |
Dan Fandrich |
CI: switch macOS ARM build from Cirrus to Circle CI Cirrus is drastically reducing their free tier on Sept. 1, so they will no longer perform all these builds for us. All but one build h
CI: switch macOS ARM build from Cirrus to Circle CI Cirrus is drastically reducing their free tier on Sept. 1, so they will no longer perform all these builds for us. All but one build has been moved, with the LibreSSL one being dropped because of linking problems on Circle. One important note about this change is that Circle CI is currently directing all these builds to x86_64 hardware, despite them requesting ARM. This is because ARM nodes are scheduled to be available on the free tier only in December. This reduces our architectural diversity until then but it should automatically come back once those machines are enabled.
show more ...
|
#
fb802b52 |
| 23-Jun-2023 |
Dan Fandrich |
CI: enable parallel make in more builds Most CI services provide at least two cores, so enable parallel make jobs to take advantage of that for builds. Some dependencies aren't safe
CI: enable parallel make in more builds Most CI services provide at least two cores, so enable parallel make jobs to take advantage of that for builds. Some dependencies aren't safe to build in parallel so leave those as-is. Also, rename a few workflows to eliminate duplicate names and provide a better idea what they're about.
show more ...
|
#
9496d328 |
| 16-Apr-2023 |
Philip Heiduck |
circleci: install impacket & wolfssl 5.6.0 Closes #11221
|