This release contains ~160 commits, and is mostly targeted to resolving
the long-standing technical debts.
- ELF format is now fully utilized. We now use ELF-based symbol tables
and relocations, including dynamic relocations (which we simulate
with --emit-relocs). This completes the ELF relocation work started at
1.3 and 1.4 releases. Unfortunately, this brought in the new toolchain
restrictions:- we no longer support upstream nasm (can only use our own nasm-segelf
fork of the nasm for now) - do no longer support ld.lld (can only use GNU ld for now)
- no longer support GNU strip (can only use llvm-strip for now,
but the fix is already in GNU binutils-2.42)
So the ELF support went in very painfully. We will keep working with
the upstream projects (lld mainly) in a hope to restore their use.
Nasm project have rejected our contributions, so the vanilla nasm
support is not anticipated any soon.
- we no longer support upstream nasm (can only use our own nasm-segelf
- Meson build system support. But not removing the old makefiles yet,
as we need meson-1.3.2, which is not yet widely available. - thunk_gen and farptr compiler updates. thunk_gen is now a separate project.
- Finally fixed remaining AlphaWaves problems. This game tests for the
MS-DOS compatibility in a very rough ways. - Share was changed to resemble MS-DOS-7 more closely.
- Fixed a few regressions of 1.7 (Prehistorik2 again)
- Switched from C++11 to C++20 for templated lambdas.