-
Notifications
You must be signed in to change notification settings - Fork 11.8k
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
clang: __HAVE_FUNCTION_MULTIVERSIONING is mis-reported in previously-shipped compilers #79659
Comments
@llvm/issue-subscribers-backend-aarch64 Author: Jon Roelofs (jroelofs)
Clang's FMV support implicitly depends on support for ifuncs, which until recently [1, 2] weren't supported on Darwin platforms. This means that previously-shipped compilers report that they support it via the pre-defined macro, even when the feature does not work.
1: #73686 |
@ilinpv what do you think about changing the definition of this pre-define to this:
I know the ACLE says this macro should be |
or:
|
Here's an example demoing this being mis-reported in 17.0.1 and 16.0.0, but working on trunk, for a Darwin target: |
From the spec point of view maybe we could change the #if __HAVE_FUNCTION_MULTI_VERSIONING >= __ARM_ACLE_VERSION(2024, 1, 0 )
|
I like that idea. |
Clang's FMV support implicitly depends on support for ifuncs, which until recently [1, 2] weren't supported on Darwin platforms. This means that previously-shipped compilers report that they support it via the pre-defined macro, even when the feature does not work.
1: #73686
2: https://github.com/llvm/llvm-project/pull/73688/files#diff-7930fda388572c1b90c30151343a92d058fd44508c32406a6a955bec9e83ce82R1426
The text was updated successfully, but these errors were encountered: