Module Name: src Committed By: martin Date: Thu Dec 14 17:56:09 UTC 2023
Modified Files: src/sys/arch/i386/stand [netbsd-10]: Makefile.booters Makefile.inc src/sys/arch/i386/stand/bootxx/bootxx_msdos [netbsd-10]: Makefile src/sys/arch/i386/stand/bootxx/bootxx_ustarfs [netbsd-10]: Makefile src/sys/arch/i386/stand/dosboot [netbsd-10]: Makefile Log Message: Pull up following revision(s) (requested by rin in ticket #498): sys/arch/i386/stand/dosboot/Makefile: revision 1.35 sys/arch/i386/stand/Makefile.booters: revision 1.95 sys/arch/i386/stand/bootxx/bootxx_msdos/Makefile: revision 1.5 sys/arch/i386/stand/Makefile.inc: revision 1.19 sys/arch/i386/stand/bootxx/bootxx_ustarfs/Makefile: revision 1.4 sys/arch/i386/stand/dosboot/Makefile: revision 1.34 Fix the clang build by setting -z noseparate-code Merge the OPT_SIZE flags. -Oz is not always producing smaller code that -Os, so default to -Os for both, and we'll override where needed. Override these two booters with -Oz for clang since it produces smaller code here. x86/dosboot: Allow NULL dereference to fetch command line arguments DOS command line arguments are provided as struct psp at 0x0000; see doscommain.c. Recent versions of gcc and clang are clever enough to optimize code block involving NULL dereference into ud2 insn. Sprinkle -fno-delete-null-pointer-checks to doscommain.c to prevent this behavior. Note that dosboot.com for netbsd-9 and later was broken due to this ``over optimization''. gcc 5.5.0 and clang 4.0.0 in netbsd-8 generate correct codes without this workaround. XXX Are there still use cases for dosboot.com? Does anyone want to boot NetBSD from real-mode DOS in 2023? x86/dosboot: Do not page-align data segment 4K alignment is too heavy burden for COM executable with 64K limit :) Fix binary size overflow for clang/amd64. To generate a diff of this commit: cvs rdiff -u -r1.94 -r1.94.20.1 src/sys/arch/i386/stand/Makefile.booters cvs rdiff -u -r1.18 -r1.18.30.1 src/sys/arch/i386/stand/Makefile.inc cvs rdiff -u -r1.4 -r1.4.24.1 \ src/sys/arch/i386/stand/bootxx/bootxx_msdos/Makefile cvs rdiff -u -r1.3 -r1.3.94.1 \ src/sys/arch/i386/stand/bootxx/bootxx_ustarfs/Makefile cvs rdiff -u -r1.33 -r1.33.26.1 src/sys/arch/i386/stand/dosboot/Makefile Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.