theseus-os / Theseus

Theseus is a modern OS written from scratch in Rust that explores 𝐢𝐧𝐭𝐫𝐚𝐥𝐢𝐧𝐠𝐮𝐚𝐥 𝐝𝐞𝐬𝐢𝐠𝐧: closing the semantic gap between compiler and hardware by maximally leveraging the power of language safety and affine types. Theseus aims to shift OS responsibilities like resource management into the compiler.
https://www.theseus-os.com/
MIT License
2.91k stars 172 forks source link

Upgrade to latest Rust nightly v1.75 #1065

Closed kevinaboos closed 1 year ago

kevinaboos commented 1 year ago
tsoutsman commented 1 year ago

From Discord:

One new issue that I observed is that there are now GROUP sections (classified as COMDAT groups) for the rust_eh_personality sections (which are related to unwinding), but they only show up in aarch64 builds AFAICT. I'm not sure if this is something that we need to be aware of; in the past I did not pay any attention to personality sections because we don't use that in our unwinder. In any case, I just added a quick workaround to allow crate loading to work by ignoring the section.

kevinaboos commented 1 year ago

Is there a reason we don't use THESEUS_MERGED_SEC_SHNDX any more?

the existence of a GROUP section type may come before it, so I took a less fragile approach of looking for the .theseus_merged section anywhere before the .text* sections, since that is definitely under the control of our linker script.