Hello. I'm am modernizing Meaty Skeleton a bunch. The list of changes is too big for the summary field, so here's the list of changes:
- Avoid unportable make -C option and just use cd.
- Don't use unportable rm -v option.
- Fix typo in config.sh.
- Don't rely on PWD variable being set, just use pwd(1) to get it.
- Use upcoming-POSIX != make syntax to run shells and not $(shell).
- Don't overuse := in makefiles.
- Don't locate crtbegin.o and crtend.o when not compiling.
- Switch to portable .SUFFIXES wildcards to get them more known.
- Fix kernel link like order with respect to libk and libgcc.
- Verify multibootness with grub-file.
- Use -MD to properly handle header dependency tracking.
- Replace unportable cp -RTv.
- Pass unportable --preserve=timestamp to cp to avoid -MD issues.
- Align boot.S and linker.ld with bare bones.
- Remove kernel_early abstraction.
- Switch coding style to match bare bones.
- Move vga text mode buffer constants into tty.c.
- Move vga.h from public kernel header to private arch header.
- Prefix all vga.h declarations with vga_.
- Remove _myos from __is_kernel/libc/libk detection macros.
- Don't build libc.a anymore.
- Add EOF to stdio.h to detect putchar errors.
- Simplify printf, handle errors in putchar and error output exceeds INT_MAX.
- Clarify non-libk case in putchar and abort.
- Don't pass -fbuiltin as it's not safe for freestanding environments.
See the history page on the article for the full changes. --Sortie 14:59, 2 September 2016 (CDT)
Reverting makefile changes
Unfortunately, Debian and Ubuntu based distros (and probably many, many more) are still on GNU Make 3.8, which does not support the use of !=. I have added troubleshooting to the bottom of the page to document this problem and how to solve it:
DEFAULT_HOST := $(shell ../default-host.sh)
Sigtau 00:03, 3 October 2016 (CDT)