Commit Graph

10 Commits

Author SHA1 Message Date
nattthebear 3a18f6356d Rebuild all of waterbox as sysvabi, not msabi
This helps linux at the expense of windows, except it seems like windows gets a nice little speed up as well
2020-07-03 18:21:48 -04:00
nattthebear 842a7df215 waterbox: minor makefile tweak
allows fiddling with linkscript to be easier
2020-06-03 17:57:31 -04:00
nattthebear 69ade58d2a waterbox: enable -fcf-protection=none, recompile pce fast 2020-06-03 12:16:18 -04:00
nattthebear 885b86e1b2 waterbox: add the ability to compile but not assemble individual files for debugging purposes 2020-06-03 12:02:56 -04:00
nattthebear 0295f7472b PCE enhancements
Moderate savestate size reduction.  Build system changes.
2020-05-27 15:23:40 -04:00
nattthebear 0891e448d7 mednapce - lag flag, some more memory domains, some ppu view work 2020-05-26 21:23:52 -04:00
nattthebear 24286be735 Linking and unwinds
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.
2020-05-25 12:49:32 -04:00
nattthebear 9f358bc8cc pcfx compiles 2020-05-25 12:49:31 -04:00
nattthebear e892dcef82 milestone: vb and ngp compile 2020-05-25 12:49:30 -04:00
nattthebear 21cdf5120b
Revamp waterbox build environment and runtime. (#2027)
Create an all new waterbox build environment:
WSL2 + Ubuntu 20.04 LTS (Other linuxes may work)
Musl libc with waterbox customizations
LLVM's libclang-rt, libunwind, libcxxabi, libcxx
Static linking to elf files

Compared with the old system, this is easier to set up a dev env for and easier to update in the future. The executables are larger but produce smaller savestates due to static linking. The modern toolchain means advanced library features and language features that sometimes appear in some upstream cores will be reusable.
2020-05-20 15:34:24 -04:00