[all-commits] [llvm/llvm-project] 55abde: [libunwind] Increase the external value of _LIBUNW...
Martin Storsjö via All-commits
all-commits at lists.llvm.org
Mon Apr 10 14:03:48 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 55abdef3dac681866503ab286c3be6b4e8be3a9a
https://github.com/llvm/llvm-project/commit/55abdef3dac681866503ab286c3be6b4e8be3a9a
Author: Martin Storsjö <martin at martin.st>
Date: 2023-04-11 (Tue, 11 Apr 2023)
Changed paths:
M libunwind/include/__libunwind_config.h
Log Message:
-----------
[libunwind] Increase the external value of _LIBUNWIND_CURSOR_SIZE for SEH/x86_64
For x86_64 Windows targets (that use SEH), _LIBUNWIND_CURSOR_SIZE
is 204; this fixes corruption in test cases that include libunwind.h
without manually defining _LIBUNWIND_IS_NATIVE_ONLY.
If the libunwind.h header is included without defining
_LIBUNWIND_IS_NATIVE_ONLY (like in the libunwind test cases), the
sizes are set to accommodate the maximum possible cursors and
contexts.
(Alternatively, __libunwind_config.h should be changed to default
to native unwinding unless cross unwinding has been requested.
Cross unwinding isn't implemented as far as I know anyway.)
Differential Revision: https://reviews.llvm.org/D147634
Commit: 87ca04033c1bf79f4de964505dd8818cbbc2bdf4
https://github.com/llvm/llvm-project/commit/87ca04033c1bf79f4de964505dd8818cbbc2bdf4
Author: Martin Storsjö <martin at martin.st>
Date: 2023-04-11 (Tue, 11 Apr 2023)
Changed paths:
M libunwind/src/UnwindCursor.hpp
Log Message:
-----------
[libunwind] [SEH] Sync LSDA and handler between unw_proc_info_t and DISPATCHER_CONTEXT
For normal C++ unwinding, we get _dispContext initialized by the
prepopulated DISPATCHER_CONTEXT in _GCC_specific_handler, which
we set with __unw_seh_set_disp_ctx.
When doing force unwinding, we step and populate the unw_proc_info_t
struct _info with getInfoFromSEH, but when we execute the handler
via the __libunwind_seh_personality wrapper function, we execute
the handler set in DISPATCHER_CONTEXT.
Whenever updating these fields in either _info or _dispContext,
sync them to the other one too.
This fixes one aspect of the libcxxabi force_unwind*.pass.cpp tests on
x86_64.
Differential Revision: https://reviews.llvm.org/D147637
Commit: 66632e8798148b351ba2971a0a380a47352afc8d
https://github.com/llvm/llvm-project/commit/66632e8798148b351ba2971a0a380a47352afc8d
Author: Martin Storsjö <martin at martin.st>
Date: 2023-04-11 (Tue, 11 Apr 2023)
Changed paths:
M libunwind/src/Unwind-seh.cpp
Log Message:
-----------
[libunwind] [SEH] Handle ExceptionContinueExecution in forced unwinding
This fixes the libcxxabi test force_unwind3.pass.cpp when run on native
Windows.
When unwinding past the main thread function into the system functions
that brought up the thread, we can hit functions whose personality
functions return ExceptionContinueExecution (instead of the regular
ExceptionContinueSearch). Interpret this as a signal to stop the
unwind.
Curiously, in this case, it does return ExceptionContinueSearch if
running within a debugger.
Differential Revision: https://reviews.llvm.org/D147739
Commit: 11ed806e7fdb1df74bba727165e68d675bbaa5e1
https://github.com/llvm/llvm-project/commit/11ed806e7fdb1df74bba727165e68d675bbaa5e1
Author: Martin Storsjö <martin at martin.st>
Date: 2023-04-11 (Tue, 11 Apr 2023)
Changed paths:
M libunwind/test/signal_frame.pass.cpp
Log Message:
-----------
[libunwind] [test] Mark the signal_frame test as unsupported on Windows
Mark it as unsupported on x86_64, arm and aarch64. On i686, DWARF
is used as the default unwinding format, and there, the CFI
directives are supported.
Differential Revision: https://reviews.llvm.org/D147858
Commit: 7f00b2aa75f0f090c37bf9d5ccb55fca15c35538
https://github.com/llvm/llvm-project/commit/7f00b2aa75f0f090c37bf9d5ccb55fca15c35538
Author: Martin Storsjö <martin at martin.st>
Date: 2023-04-11 (Tue, 11 Apr 2023)
Changed paths:
M libcxxabi/test/thread_local_destruction_order.pass.cpp
Log Message:
-----------
[libcxxabi] [test] Mark thread_local_destruction_order.pass.cpp unsupported for mingw targets
With current versions of mingw-w64, TLS destructors that are registered
while executing TLS destructors are lost and leaked.
The root cause does get fixed further upstream in mingw-w64 in
https://github.com/mingw-w64/mingw-w64/commit/71eddccd746c56d9cde28bb5620d027d49259de9
though, but mark the test as unsupported for now. The marking can be
removed later when the version used in the CI runner has been updated
to include the fix.
Differential Revision: https://reviews.llvm.org/D147859
Commit: dd75c50934c29afc861cfef2471592cd342a16a5
https://github.com/llvm/llvm-project/commit/dd75c50934c29afc861cfef2471592cd342a16a5
Author: Martin Storsjö <martin at martin.st>
Date: 2023-04-11 (Tue, 11 Apr 2023)
Changed paths:
M compiler-rt/lib/builtins/CMakeLists.txt
Log Message:
-----------
[compiler-rt] [builtins] Don't use assembly floatundi*f on x86_64 mingw
The x86 assembly is entirely skipped for MSVC build configurations,
since the assembly uses GAS syntax (which MSVC proper can't
assemble, but clang-cl can). But for mingw configurations, the
assembly is used.
On x86_64 Windows, the general calling convention is entirely different
than on other platforms (passing arguments in different registers),
so we can't use this assembly for mingw targets (unless adapted to
handle that calling convention). Thus skip these few assembly routines
for Windows targets. (For i386, we can keep using the assembly
functions.)
This fixes the builtins tests that test these routines. They aren't
used in practice though, as LLVM expands code inline for doing such
conversions anyway.
Differential Revision: https://reviews.llvm.org/D147685
Commit: 2ce71b2c18301ce14e113f42af00982ac7002ed5
https://github.com/llvm/llvm-project/commit/2ce71b2c18301ce14e113f42af00982ac7002ed5
Author: Martin Storsjö <martin at martin.st>
Date: 2023-04-11 (Tue, 11 Apr 2023)
Changed paths:
M compiler-rt/test/ubsan/TestCases/ImplicitConversion/integer-arithmetic-value-change.c
M compiler-rt/test/ubsan/TestCases/ImplicitConversion/integer-conversion-incdec.c
M compiler-rt/test/ubsan/TestCases/ImplicitConversion/integer-conversion.c
M compiler-rt/test/ubsan/TestCases/ImplicitConversion/integer-sign-change-incdec.c
M compiler-rt/test/ubsan/TestCases/ImplicitConversion/integer-sign-change.c
M compiler-rt/test/ubsan/TestCases/ImplicitConversion/integer-truncation.c
M compiler-rt/test/ubsan/TestCases/ImplicitConversion/signed-integer-truncation-incdec.c
M compiler-rt/test/ubsan/TestCases/ImplicitConversion/signed-integer-truncation.c
M compiler-rt/test/ubsan/TestCases/ImplicitConversion/unsigned-integer-truncation.c
M compiler-rt/test/ubsan/TestCases/Pointer/align-assume-attribute-align_value-on-lvalue.cpp
M compiler-rt/test/ubsan/TestCases/Pointer/align-assume-attribute-align_value-on-paramvar.cpp
M compiler-rt/test/ubsan/TestCases/Pointer/align-assume-attribute-alloc_align-on-function-variable.cpp
M compiler-rt/test/ubsan/TestCases/Pointer/align-assume-attribute-alloc_align-on-function.cpp
M compiler-rt/test/ubsan/TestCases/Pointer/align-assume-attribute-assume_aligned-on-function-two-params.cpp
M compiler-rt/test/ubsan/TestCases/Pointer/align-assume-attribute-assume_aligned-on-function.cpp
M compiler-rt/test/ubsan/TestCases/Pointer/align-assume-builtin_assume_aligned-three-params-variable.cpp
M compiler-rt/test/ubsan/TestCases/Pointer/align-assume-builtin_assume_aligned-three-params.cpp
M compiler-rt/test/ubsan/TestCases/Pointer/align-assume-builtin_assume_aligned-two-params.cpp
M compiler-rt/test/ubsan/TestCases/Pointer/align-assume-openmp.cpp
M compiler-rt/test/ubsan/TestCases/Pointer/nullptr-and-nonzero-offset-variable.cpp
Log Message:
-----------
[compiler-rt] [test] Use %clangxx for tests that use -x c++
When instrumenting C++ code, ubsan ends up referencing
the ubsan_type_hash_* object files, which require linking against
the C++ ABI library. When building with "clang -x c++", the code
is handled as C++, but the compiler still only links as if it was
C.
Change all cases of "%clang -x c++" into "%clangxx -x c++".
This fixes a lot of ubsan tests in mingw mode.
Differential Revision: https://reviews.llvm.org/D147687
Commit: 758318bee351282b3bb244cc4067eb876e86b156
https://github.com/llvm/llvm-project/commit/758318bee351282b3bb244cc4067eb876e86b156
Author: Martin Storsjö <martin at martin.st>
Date: 2023-04-11 (Tue, 11 Apr 2023)
Changed paths:
M compiler-rt/test/ubsan/TestCases/Pointer/align-assume-ignorelist.cpp
Log Message:
-----------
[compiler-rt] [test] [ubsan] Build .cpp files with %clangxx
This fixes linker errors in mingw configurations, where the ubsan
runtime needs the C++ standard library when instrumenting C++ code.
Differential Revision: https://reviews.llvm.org/D147861
Commit: 25350a7362502b5ce84e9eab00501780b77f2eb9
https://github.com/llvm/llvm-project/commit/25350a7362502b5ce84e9eab00501780b77f2eb9
Author: Martin Storsjö <martin at martin.st>
Date: 2023-04-11 (Tue, 11 Apr 2023)
Changed paths:
M compiler-rt/test/builtins/Unit/divmodti4_test.c
M compiler-rt/test/builtins/Unit/fixunstfdi_test.c
M compiler-rt/test/builtins/Unit/multc3_test.c
Log Message:
-----------
[compiler-rt] [test] Generalize the triple regex for windows XFAILs
Don't hardcode the vendor field in the triples to "pc"; for mingw
environments the triple is often "<arch>-w64-windows-gnu".
Differential Revision: https://reviews.llvm.org/D147862
Compare: https://github.com/llvm/llvm-project/compare/469bdbd62ce2...25350a736250
More information about the All-commits
mailing list