It is possible to compile uts and lib in parallel since there are no dependencies. Library
build parallelism is quite low, so this change improves total build time.
Currently during ON build all sparc platforms (sun4v, sun4u and sparc) are compiled
sequentially. It should be possible to compile them in parallel. The trick is to build sun4u/genunix first since everyone depends on it.
Currently intel and i86pc platforms are compiled sequentially. It should be possible to
compile them in parallel. The trick is to build intel/genunix first since both depend on
it.
Currently all sun4u platforms are defined with .WAIT sattements in
sun4u/Makefile.sun4u/shared. It should be possible to compile them in parallel.
It is possible to do if sun4u/genunix is built first. Another issue is bug 6591900
which should be fixed for this.
See
6592975 Sparc platforms can be compiled in parallel
for dependency analysis.
The usr/src/uts/sun4u/Makefile.sun4u.shared file declares all platforms with .WAIT statement,
serializing their build. It started early on with version 1.94 of then sun4u/Makefile and the
comment says only
temporary fix to parallel make problems (platform symbolic links)
The change was:
***************
*** 51,57 ****
PLATFORMS = $(IMPLEMENTED_PLATFORM)
PLATFORMS += $(LINKED_PLATFORMS)
! IMPLEMENTATIONS = tazmo sunfire starfire javelin darwin quasar
ROOT_PLAT_DIRS = $(PLATFORMS:%=$(ROOT_PLAT_DIR)/%)
USR_PLAT_DIRS = $(PLATFORMS:%=$(USR_PLAT_DIR)/%)
--- 51,62 ----
PLATFORMS = $(IMPLEMENTED_PLATFORM)
PLATFORMS += $(LINKED_PLATFORMS)
! IMPLEMENTATIONS = tazmo .WAIT \
! sunfire .WAIT \
! starfire .WAIT \
! javelin .WAIT \
! darwin .WAIT \
! quasar
It seems that the actual problem was
6591900 Various sun4u platforms try to install sys symlink in usr/share/src/uts in parallel
Since then everyone just did cut and paste of these .WAIT statements without investigating these.