Tags: john-peterson/fdpp
Tags
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. - 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.
separate out the loader [dosemu2#146] This splits the build system even more.
elf: allow non-zero load offset [dosemu2#172] Incompatible API change again. :(
arrange for pie linking [dosemu2#172] But don't do the actual pie linking just yet, as lld doesn't support text relocations... Required an incompatible API change, so increment API version.
A very important release, containing ~200 patches. - Portability work: ported to aarch64, including MacOS, Android. - Implemented HMA memory manager, and lots of work done on a more aggressive HMA usage. Unfortunately dosemu2 disabled HMA support by default in a mean time. - Lots of SHARE fixes. - Fixed nasty RTC bug (prehistoric2 had problems because of it) - Fixed stack switching on int21 calls (vlm now works) - Fixed stack switching on int24 - Added a config.sys syntax for referencing drives created at run-time: CHAIN=%0\userhook.sys can be used if the host platform supplies the meaning of %0 (other digits are possible) at the right time. - Added a config.sys syntax for conditional loading: device=?0c:\bin\nansi.sys can be used if the host platform supplies the value of ?0 (other digits are possible) via boot protocol. - Fix to support multiple CHAIN directives - "Get extended free drive space" function can now use redirector extensions to properly report space on much larger partitions. - Fixes to volume labels support. - Added handlers for GP and SS exceptions. - clang-16 support - Lots of bug fixes.
1.4 Most of work went into making the kernel fully relocatable. This required writing the new heap manager and updating the boot protocol. - It is now possible to run fdpp directly from UMB, leaving entire low mem free for your programs. - Lots of build infrastructure work was done for buildroot integration. - LBA support resurrected and enabled by default.
PreviousNext