https://reviews.llvm.org/D80690 This introduced build failure when LIBUNWIND_ENABLE_CROSS_UNWINDING enabled.
This patch fixes that.
Details
- Reviewers
compnerd MaskRay luismarques bkramer - Group Reviewers
Restricted Project - Commits
- rG5c3fc5093aaf: [libunwind] [risc-v] This patch is for fixing
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Ah right, the !RISCV -> RISCV case. This makes sense to commit to fix the immediate issue.
Thinking about this more, ILP32 is not permitted on RISC-V 64 and ILP-64 is not permitted on RISC-V 32 (which for some reason I had backwards). I think that it would make sense to avoid using RISC-V macros entirely and use __SIZEOF_POINTER__ to select the register width (__SIZEOF_POINTER__ == 8 would mean that we should use uint64_t and a value of 4 would indicate uint32_t). Furthermore, we could then replace the use of __riscv_flen with __SIZEOF_DOUBLE__ to select between float and double for the fpret_t rather than the __riscv_flen. That would completely alleviate having to have 4 different configurations to worry about - {native, x-unwind} * {defined, undefined}.