OpenSolaris

Printable Version Enter a New Search
Bug ID 6592977
Synopsis sun4u sub-platforms can be compiled in parallel
State 10-Fix Delivered (Fix available in build)
Category:Subcategory consolidation:os-net-misc
Keywords build | nitro | parallel
Responsible Engineer Alexander Kolbasov
Reported Against s28_34
Duplicate Of
Introduced In
Commit to Fix snv_85
Fixed In snv_85
Release Fixed solaris_nevada(snv_85)
Related Bugs 4280813 , 6591892 , 6591900 , 6592974 , 6592975 , 6677061
Submit Date 15-August-2007
Last Update Date 12-March-2008
Description
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.
Work Around
N/A
Comments
N/A