Page MenuHomePhabricator

[SystemZ][z/OS] Add support for an external unwinder
Needs RevisionPublic

Authored by muiez on Jun 22 2022, 8:28 AM.

Details

Reviewers
ldionne
zibi
fanbo-meng
Group Reviewers
Restricted Project
Restricted Project
Summary

The aim of this patch is to build and link an external unwinder for libc++abi. The approach is generalized as suggested in https://reviews.llvm.org/D99913#3173529.

Diff Detail

Unit TestsFailed

TimeTest
55,450 mslibcxx CI AIX (64-bit) > ibm-libc++-shared-cfg-in.std/thread/thread_mutex/thread_lock/thread_lock_shared/thread_lock_shared_locking::lock.pass.cpp
Script: -- : 'COMPILED WITH'; /opt/clang/clang-15-c745f2ce6c03bc6d1e59cac69cc15923d4400191/bin/clang++ /scratch/powerllvm/cpap8007/llvm-project/libcxx-ci/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/lock.pass.cpp --target=powerpc64-ibm-aix -nostdinc++ -D__LIBC_NO_CPP_MATH_OVERLOADS__ -I /scratch/powerllvm/cpap8007/llvm-project/libcxx-ci/build/aix/include/c++/v1 -I /scratch/powerllvm/cpap8007/llvm-project/libcxx-ci/libcxx/test/support -pthread -std=c++2b -Werror -Wall -Wextra -Wshadow -Wundef -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-c++11-extensions -Wno-noexcept-type -Wno-atomic-alignment -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D_LIBCPP_DISABLE_AVAILABILITY -fcoroutines-ts -Werror=thread-safety -Wuser-defined-warnings -nostdlib++ -L /scratch/powerllvm/cpap8007/llvm-project/libcxx-ci/build/aix/lib -lc++ -lc++abi -latomic -Wl,-bbigtoc -o /scratch/powerllvm/cpap8007/llvm-project/libcxx-ci/build/aix/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/Output/lock.pass.cpp.dir/t.tmp.exe

Event Timeline

muiez created this revision.Jun 22 2022, 8:28 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 22 2022, 8:28 AM
Herald added a subscriber: mgorny. · View Herald Transcript
muiez requested review of this revision.Jun 22 2022, 8:28 AM
Herald added projects: Restricted Project, Restricted Project. · View Herald TranscriptJun 22 2022, 8:28 AM
Herald added 1 blocking reviewer(s): Restricted Project. · View Herald Transcript
Herald added 1 blocking reviewer(s): Restricted Project. · View Herald Transcript
muiez updated this revision to Diff 439054.Jun 22 2022, 9:20 AM

Add diff context (-U999)

muiez updated this revision to Diff 439378.Jun 23 2022, 6:40 AM
muiez set the repository for this revision to rG LLVM Github Monorepo.

kickoff CI

muiez updated this revision to Diff 439745.Jun 24 2022, 7:16 AM

kickoff CI

ldionne requested changes to this revision.Jun 27 2022, 3:04 PM

I think the idea behind this patch is interesting and useful, however I'd like to model what we do for selecting the ABI library from libc++ here. We should have a HandleUnwindLibrary.cmake file that will create interface targets, and we can then link against those from libc++abi directly. Let's avoid introducing even more options like LIBCXXABI_EXTERNAL_UNWIND_SOURCE_DIR and LIBCXXABI_EXTERNAL_UNWIND_LIB_NAME -- instead let's put the logic for how to handle z/OS's unwind library in HandleUnwindLibrary.cmake directly.

This revision now requires changes to proceed.Jun 27 2022, 3:04 PM