Skip to content

Commit

Permalink
[libc][setjmp] disable -ftrivial-auto-var-init=pattern for now (#92796)
Browse files Browse the repository at this point in the history
This would consistently fail for me locally, to the point where I could not run
ninja libc-unit-tests without ninja libc_setjmp_unittests failing.

Turns out that since I enabled -ftrivial-auto-var-init=pattern in
commit 1d5c16d ("[libc] default enable -ftrivial-auto-var-init=pattern (#78776)")
this has been a problem. Our x86_64 setjmp definition disabled -Wuninitialized,
so we wound up clobbering these registers and instead backing up
0xAAAAAAAAAAAAAAAA rather than the actual register value.

The implemenation should be rewritten entirely. I've proposed three different
ways to do so (linked below). Until we decide which way to go, at least disable
this hardening feature for this function for now so that the unit tests go back
to green.

Link: #87837
Link: #88054
Link: #88157
Fixes: #91164
  • Loading branch information
nickdesaulniers authored May 20, 2024
1 parent 753f7e8 commit 51ba7a8
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions libc/src/setjmp/x86_64/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ add_entrypoint_object(
COMPILE_OPTIONS
-O3
-fno-omit-frame-pointer
# TODO: Remove once one of these lands:
# https://github.com/llvm/llvm-project/pull/87837
# https://github.com/llvm/llvm-project/pull/88054
# https://github.com/llvm/llvm-project/pull/88157
-ftrivial-auto-var-init=uninitialized
)

add_entrypoint_object(
Expand Down

0 comments on commit 51ba7a8

Please sign in to comment.