News for hackers. Stuff that matters.
Re:Show HN: A simple way to write standalone C programs for ... by rwmj on Wednesday October 02, 2019 @08:43AM (#21135731)
We actually wrote an optionrom in C for qemu a few years back. The main challenge was making it work on all the different C compilers that qemu supports because it makes some assumptions about the layout of the final binary which are not necessarily true for modern optimizing compilers. Anyhow if ever use qemu on x86 with the -kernel option then you are running this code.

https://git.qemu.org/?p=qemu.git;a=blob;f=pc-bios/optionrom/...

Re:Show HN: A simple way to write standalone C programs for ... by qx89l4 on Wednesday October 02, 2019 @11:56AM (#21137837)
I feel your pain, so sorry that you still need to support the .code16gcc hack! My first approach was actually to avoid GCC/clang altogether, and use Turbo C instead. It came with its own set of problems, but the output was much more predictable. In case you're interested, you can find the code at https://github.com/luke8086/nf
Re:Show HN: A simple way to write standalone C programs for ... by oso2k on Wednesday October 02, 2019 @12:49PM (#21138450)
tkchia [0] has been working on getting gcc to emit 16-bit clean code (no 32-bit code prefixes) along with ancillary tooling like binutils, a couple different libc's, and some of the things you'd expect from a 16-bit x86 C compiler like far pointers and DOS-specific libc functions [0]. The use case is to build the FreeDOS Kernel and ELKS 16-bit Linux Kernel from a 32-bit or 64-bit Linux system.

[0] https://github.com/tkchia/gcc-ia16

[1] https://github.com/tkchia/build-ia16/releases