Skip to content

Conversation

@jwnrt
Copy link

@jwnrt jwnrt commented Mar 23, 2025

The EF_RISCV_RVE flag in ELF headers must match for all objects when linking. CHERIoT targets use XLEN=16 16 integer registers (E), so I think this should be set.

Tested by linking to objects that did have the RVE flag set. Before this patch the linker complained about the mismatch:

cannot link object files with different EF_RISCV_RVE

@resistor
Copy link
Collaborator

Change seems fine to me. Can we add a test for it?

@resistor
Copy link
Collaborator

Also, this is a binary compatibility break, so we'll need to notify folks to rebuild their stuff

This must match other objects that have `EF_RISCV_RVE` set in their ELF
header. CHERIoT targets use XLEN=16 (E).
@jwnrt jwnrt force-pushed the cheriot-elf-rve branch from 18ee43f to 23c5531 Compare March 23, 2025 22:04
@jwnrt
Copy link
Author

jwnrt commented Mar 23, 2025

I've added a test that checks the flags for specifically the cheriot CPU and ABI

@davidchisnall
Copy link

I’d probably hold off merging this until after we’ve fixed #9. We need to be reporting Xcheriotv1 as an extension and putting this in the ELF as well.

@resistor
Copy link
Collaborator

This will be subsumed by #140

@jwnrt
Copy link
Author

jwnrt commented Apr 30, 2025

Perfect, thanks for your help

@jwnrt jwnrt closed this Apr 30, 2025
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.

3 participants