-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
add stack protector safety feature for non-libc builds #276
Labels
enhancement
Solving this issue will likely involve adding new logic or components to the codebase.
frontend
Tokenization, parsing, AstGen, Sema, and Liveness.
Milestone
Comments
andrewrk
added
the
enhancement
Solving this issue will likely involve adding new logic or components to the codebase.
label
Mar 23, 2017
andrewrk
added a commit
that referenced
this issue
Mar 27, 2017
* introduce zigrt file. it contains only weak symbols so that multiple instances can be merged. it contains __zig_panic so that multiple .o files can call the same panic function. * remove `@setFnVisible` builtin and add @setGlobalLinkage builtin which is more powerful * add `@panic` builtin function. * fix collision of symbols with extern prototypes and internal function names * add stack protector safety when linking against libc. To add the safety mechanism without libc requires implementing Thread Local Storage. See #276
Turns out this feature depends on Thread Local Storage being implemented in a certain way. I'm not entirely sure how deep the dependency goes, but for now I enabled this feature only when linking against libc. We still have hope of this feature being enabled without libc, but it's not as straightforward as previously assumed. |
andrewrk
changed the title
add stack protector as a debug safety feature
add stack protector safety feature for non-libc builds
Mar 27, 2017
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
enhancement
Solving this issue will likely involve adding new logic or components to the codebase.
frontend
Tokenization, parsing, AstGen, Sema, and Liveness.
We should mark every function with sspstrong when runtime safety checks are on (debug or safe-release mode), unless the function has debug safety explicitly disabled.
The text was updated successfully, but these errors were encountered: