-
-
Notifications
You must be signed in to change notification settings - Fork 6.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
macos: disable gcc availability
workaround as needed
#15508
Conversation
Tested with 14.2.0_1 here: Tested with auto-detection: |
You are probably referring to ways to check using the preprocessor, but, just to be sure, there is a way to do this if you're willing to do it at
will allow you to check if you're dealing with |
Well, our CI steps around the affected combination by chance, hence the green results. |
Thanks for jumping in @carlocab! This could be a solution, but it seems (AFAIR this command also touched the network by default, which It's probably fine to accept this small snag. curl doesn't seem to |
I'm thinking to add macro(s) to force-disable (enable?) this hack. This adds an escape hatch for 14.2.0 and for other cases we didn't enticipate. |
availability
workaround for gcc 14.2.0+availability
workaround for gcc 14.2.0+
Updated with auto-detection following the suggestion of @Bo98. Thanks! It checks out locally with 14.2.0 and with 14.2.0_1 in CI here: Now I'm thinking to delete the manual overrides added earlier today. |
availability
workaround for gcc 14.2.0+availability
workaround as needed
Homebrew gcc 14.2.0_1 fixed the issue, and the workaround is no longer needed. Not only not needed, but the workaround breaks the fixed version. There is no way to detect if gcc is 14.2.0 or 14.2.0_1, so this patch drops the local workaround for both 14.2.0 releases. It means the issue will happen with 14.2.0, in which case the solution is to update to 14.2.0_1. Sadly it doesn't seem possible to fix both 14.2.0 and 14.2.0_1. (Perhaps unless doing an elaborate env detection, but that seems overkill for this single transition.) This issue did not yet hit CI, because the macos image is still coming with 14.2.0, but will hit once it's bumped to 14.2.0_1. Follow-up to e91fcba curl#14155
Thanks to Bo Anderson @Bo98 for the solution.
Linux gcc: ``` curl_setup.h:66:18: error: missing binary operator before token "(" 66 | !__has_feature(attribute_availability)) | ^ ``` https://github.com/curl/curl/actions/runs/11729267034/job/32674506717?pr=15508#step:35:36 msvc: ``` lib\curl_setup.h(66,18): error C1012: unmatched parenthesis: missing ')' ``` https://github.com/curl/curl/actions/runs/11729267029/job/32674516200?pr=15508#step:9:20 clang compilers seem to be fine without this in all tested CI envs.
d7e9864
to
3debd14
Compare
availability
workaround as neededavailability
workaround as needed
…ci skip] Enable ECH with AWS-LC in test and dev builds. - ECH: enable support for the AWS-LC backend curl/curl@1cd745a curl/curl#15499 - macos: disable gcc availability workaround as needed curl/curl@354f3f9 curl/curl#15508
Homebrew gcc 14.2.0_1 fixed the issue, and the workaround is no longer
needed. Not only not needed, but the workaround is breaking builds with
the fixed gcc.
Auto-detect the upstream fix and stop applying the local workaround if
detected.
Assisted-by: Bo Anderson
Ref: Homebrew/homebrew-core#194778 (comment)
Follow-up to e91fcba #14155