freebsd-dev/stand/i386
Kyle Evans ac5f382a9d stand: properly declare subdir deps or .WAIT, do parallel build
buildworld already runs the stand build in parallel[1], so make it easier to
identify ordering issues by properly establishing dependencies or adding
.WAIT where needed.

Everything in stand/ relies on libsa, either directly or indirectly, because
libsa build is where the stand headers get installed and it gets linked in
most places.

Interpreters depend on their libs, machine dirs usually depend on top-level
libs that are getting built and at least one of the interpreter flavors.

For i386, order btx/libi386/libfirewire before everything else using a
big-ol-.WAIT hammer. btx is the most common dependency, but the others are
used sporadically. This seems to be where the race reporting on the mailing
list is- AFAICT, the following sequence is happening:

1.) One of the loaders gets built based on stale btx/btxldr
2.) btx/btxldr gets rebuilt
3.) installworld triggers loader rebuild because btx was rebuilt after

This seems like the most plausible explanation, as they've verified system
time and timestamps.

While we're here, let's switch stand/ over to a completely parallel build so
we can work out these kinds of issues in isolation rather than in the middle
of a larger build.

Reviewed by:	bdragon, sjg, tsoome
Tested by:	bdragon (-j1024, no failures, significant speed improvement)
Differential Revision:	https://reviews.freebsd.org/D23411
2020-12-31 11:15:45 -06:00
..
boot0 Revert r362466 2020-06-22 07:46:24 +00:00
boot0sio
boot2 Remove tests for obsolete compilers in the build system 2020-05-12 15:22:40 +00:00
btx btx: rename .s files to .S to use Clang IAS 2018-11-26 19:14:33 +00:00
cdboot stand: remove CLANG_NO_IAS from cdboot 2019-08-15 17:32:39 +00:00
common loader: edd_device_path_v3 is too small 2020-10-12 09:34:50 +00:00
gptboot loader: implement GELI writes 2020-07-11 06:51:42 +00:00
gptzfsboot loader: zfs should support bootonce an nextboot 2020-09-21 09:01:10 +00:00
isoboot Remove tests for obsolete compilers in the build system 2020-05-12 15:22:40 +00:00
libfirewire biospci_write_config args were backwards 2019-01-08 20:01:56 +00:00
libi386 loader: create single zfs nextboot implementation 2020-06-20 06:23:31 +00:00
loader loader: fix non-zfs build 2020-09-23 19:15:22 +00:00
loader_4th Update Makefile.depend files 2019-12-11 17:37:53 +00:00
loader_lua Create a loader for each interpreter for x86 BIOS and all EFI 2018-08-14 18:44:41 +00:00
loader_simp Create a loader for each interpreter for x86 BIOS and all EFI 2018-08-14 18:44:41 +00:00
mbr stand/i386: rename .s to .S to use Clang IAS 2018-12-03 19:16:34 +00:00
pmbr stand/i386: rename .s to .S to use Clang IAS 2018-12-03 19:16:34 +00:00
pxeldr Avoid using non-portable dd conv=osync option 2020-05-11 08:40:33 +00:00
zfsboot zfsboot: add prototype for main() 2020-11-15 14:04:27 +00:00
boot.ldscript Link stand/i386 components using a linker script 2020-03-04 21:01:22 +00:00
Makefile stand: properly declare subdir deps or .WAIT, do parallel build 2020-12-31 11:15:45 -06:00
Makefile.inc Link stand/i386 components using a linker script 2020-03-04 21:01:22 +00:00