![]() The goal here is to provide an unwind implementation that works. We (probably) don't have a working ldso, so reconfigure libunwind to work without that. To do that, it needs __eh_frame_* variables which it can addressof to find the locations of .eh_frame and .eh_frame_hdr. There is no way I could get gold to add these at all, so switch back to ld and add a custom linkscript. The custom linkscript gives us the opportunity to simplify the savestate memory mapping stuff inside ElfLoader, which should knock a bit of time off of state loads -- those VirtualProtect calls are not cheap. This also removes a potential source of nondeterminism with certain clever out of range pointers. Any waterbox core that I didn't recompile for this commit will assert now until it is recompiled, because .wbxsyscall is in the wrong palace. |
||
---|---|---|
.. | ||
.gitignore | ||
configure-for-waterbox-phase-- | ||
configure-for-waterbox-phase-0 | ||
configure-for-waterbox-phase-1 | ||
configure-for-waterbox-phase-2 | ||
do-everything.sh | ||
readme.txt |
readme.txt
Building and installing libcxx: 1. Clone llvm-project into $BIZHAWKGITROOT/../llvm-project * I used eaae6dfc545000e335e6f89abb9c78818383d7ad, which was the tip of origin/release/10.x at the time 2. Come to this folder 3. Run ./do-everything.sh * This isn't resumable at all, so if it crashes or you're curious about the process, read its source and execute the commands individually.