Skip to content

[cpullvm] Add xqci variants with exceptions, rtti enabled - #660

Draft
Jonathon Penix (jonathonpenix) wants to merge 3 commits into
qualcomm:qualcomm-softwarefrom
jonathonpenix:pr/xqci_exn_rtti
Draft

Jonathon Penix (jonathonpenix) wants to merge 3 commits into
qualcomm:qualcomm-softwarefrom
jonathonpenix:pr/xqci_exn_rtti

Conversation

@jonathonpenix

@jonathonpenix Jonathon Penix (jonathonpenix) commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Two new variants were added, both built with exception and rtti support

  • riscv32ima_xqci_ilp32_exn_rtti_nopic
  • riscv32ima_zinx_xqci_ilp32_exn_rtti_nopic

Note that these will now be matched rather than the old riscv32ima_xqci_ilp32_nopic or riscv32ima_zinx_xqci_ilp32_nopic variants unless users explicitly pass -fno-exceptions AND -fno-rtti, even when building ex: C code. If they pass both, they should get the old variants.

Note also that riscv32ima_xqci_ilp32_exn_rtti_nopic is being added for libc++ testing--I think it is worth having at least one extension + rtti variant enabled since this is new for us.

Two new variants were added, both built with exception and rtti support
- riscv32ima_xqci_ilp32_exn_rtti_nopic
- riscv32ima_zinx_xqci_ilp32_exn_rtti_nopic

Note that these will now be matched rather than the old
riscv32ima_xqci_ilp32_nopic or riscv32ima_zinx_xqci_ilp32_nopic unless users
explicitly pass -fno-exceptions AND -fno-rtti, even when building ex: C code.
If they pass both, they should get the old variants.

Signed-off-by: Jonathon Penix <jpenix@qti.qualcomm.com>
@jonathonpenix

Copy link
Copy Markdown
Contributor Author

Sorry, marking this as a draft since I have to go back and add a bunch of xfails.

Signed-off-by: Jonathon Penix <jpenix@qti.qualcomm.com>
@jonathonpenix

Jonathon Penix (jonathonpenix) commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

Right now there are ~4 libc++ failures that need to be sorted out with these variants:

  • libcxx/utilities/exception_guard.odr.sh.cpp
    • Link flags in the test just need to be re-arranged, this is a change to go to upstream LLVM
  • std/re/re.alg/re.alg.match/exponential.pass.cpp and std/re/re.alg/re.alg.search/exponential.pass.cpp
    • Not sure what the issue is. Haven't looked into it
  • std/strings/basic.string/string.modifiers/string_replace/size_size_string_size_size.pass.cpp
    • Fails to link with memory region overflows. Not sure if there's something going wrong here or if it really just does end up being too large. Need to look more into it.

Otherwise, other tests (picolibc, compiler-rt, libunwind, libcxxabi, multilib) are passing locally

Signed-off-by: Jonathon Penix <jpenix@qti.qualcomm.com>
@pgodeq

Copy link
Copy Markdown
Contributor

Thanks Jonathon for putting this together. I had missed adding -fno-exceptions and -fno-rtti for the earlier variants.
These changes make sense.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants