-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can't take address of interrupts enabled / disabled function #57
Comments
@rmn30 Any chance you could post a self-contained test for this? |
The easiest way to reproduce is to edit the hello world example in |
The error is produced at https://github.com/CHERIoT-Platform/llvm-project/blob/cheriot/lld/ELF/Writer.cpp#L3257 , so the question is why is |
If you compile the following: void (*f)() = 0;
[[cheri::interrupt_state(disabled)]] void id_function(void) {
}
/// Thread entry point.
void __attribute__((cheri_compartment("hello"))) say_hello()
{
f = &id_function;
} Like follows:
and look at the end of the resulting .S you will see the import table entry for
Apparently the +1 that indicates this is a library import should be in the third last line ( |
I wanted to write some test code along the following lines to get hold of a sealed capability with interrupt disabling sentry type:
This compiles but I get a linker error:
This is obviously a bit unusual but is it something we could / should support?
The text was updated successfully, but these errors were encountered: