-
Notifications
You must be signed in to change notification settings - Fork 199
Enable PACBTI on OpenBSD/arm64. #1792
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
Conversation
@artemcm, mind reviewing this small pull? |
@swift-ci please test |
@swift-ci please test |
Please merge on my behalf. Thanks! |
@swift-ci please test windows |
We can't merge till it passes CI. |
Apparently it did, but for whatever reason github has problems getting the results of Windows CI runs. |
You will need to rebase this on top of latest Sorry about that. |
BTI enforcement is mandatory, which means if PAC and BTI instructions are not emitted, then the compiled binary gets killed with SIGILL. The platform default compiler achieves enabling PAC and BTI by embedding the relevant enabled Clang compilation option flags into the local platform toolchain, which affects C/C++ code generation. For bootstrapping purposes, we need to make this change in the legacy C++ driver in swiftlang/swift#78394; this is the equivalent change for the new driver. It's not quite clear whether the flags need to be introduced in BackendJob.swift as well as FrontendJobHelpers.swift; just in case, add them in both locations.
Rebased. |
@swift-ci please test |
@shahmishal, this just passed Windows CI, but for whatever reason it doesn't show up on github. I've seen this happen for a while on other official Swift component repos like this one, where the github integration doesn't get the status of Windows CI builds and we just have to keep re-running the Windows CI till github sees a successful run. Is this a known github CI integration issue that someone is looking into fixing? |
@swift-ci please test Windows platform |
BTI enforcement is mandatory, which means if PAC and BTI instructions are not emitted, then the compiled binary gets killed with SIGILL. The platform default compiler achieves enabling PAC and BTI by embedding the relevant enabled Clang compilation option flags into the local platform toolchain, which affects C/C++ code generation.
For bootstrapping purposes, we need to make this change in the legacy C++ driver in swiftlang/swift#78394; this is the equivalent change for the new driver.
It's not quite clear whether the flags need to be introduced in BackendJob.swift as well as FrontendJobHelpers.swift; just in case, add them in both locations.