Restore build parallelism
authorJohn Marino <draco@marino.st>
Sat, 27 Oct 2012 22:55:14 +0000 (00:55 +0200)
committerJohn Marino <draco@marino.st>
Sat, 27 Oct 2012 23:01:25 +0000 (01:01 +0200)
The build parallelism was accidently disabled with recent commits.
First, relocate libobjc headers for gcc44 to /usr/libdata/gcc44/objc
and then remove all the strict ordering to maximize build parallelism.

Exception: the gcc47 library set requires libsupc++ to be built after
libstdc++ because they share object files built by libstdc++.

Makefile_upgrade.inc
etc/mtree/BSD.usr.dist
gnu/lib/Makefile
gnu/lib/gcc44/Makefile
gnu/lib/gcc44/libobjc/Makefile
gnu/lib/gcc47/Makefile

index c1243bc..985e3db 100644 (file)
@@ -2081,6 +2081,7 @@ TO_REMOVE+=/usr/share/man/man2/caps_sys_setgen.2.gz
 TO_REMOVE+=/usr/share/man/cat2/caps_sys_wait.2.gz
 TO_REMOVE+=/usr/share/man/man2/caps_sys_wait.2.gz
 TO_REMOVE+=/var/caps
+TO_REMOVE+=/usr/include/objc
 
 .if ${MACHINE_ARCH} == "x86_64"
 TO_REMOVE+=/usr/libdata/stallion/2681.sys
index 7e78ecd..e6622d3 100644 (file)
@@ -43,6 +43,8 @@
     ..
     libdata
         gcc44
+            objc
+            ..
         ..
         gcc47
             objc
index 85844e9..ed932ac 100644 (file)
@@ -1,4 +1,5 @@
-# SUBDIR_ORDERED defaults to SUBDIR order which is just fine
+# The libobjc header conflict between base compilers has been resolved
+# Maximum parallelism can be restored by setting SUBDIR_ORDERED to null
 
 SUBDIR= gcc44
 
@@ -12,4 +13,6 @@ SUBDIR+= libdialog
 SUBDIR+= libluks
 SUBDIR+= liblvm
 
+SUBDIR_ORDERED=
+
 .include <bsd.subdir.mk>
index 369d420..d96af4c 100644 (file)
@@ -1,5 +1,5 @@
-# Processed in order because SUBDIR_ORDERED is not defined
 # csu and libgcc are normally built earlier by the _startup_libs44 target
+# set SUBDIR_ORDERED to null to maximize parallelism
 
 SUBDIR=                csu
 SUBDIR+=       libgcc
@@ -14,4 +14,6 @@ SUBDIR+=      libstdc++
 SUBDIR+=       libobjc
 .endif
 
+SUBDIR_ORDERED=
+
 .include <bsd.subdir.mk>
index 960a714..44ed2b4 100644 (file)
@@ -20,7 +20,7 @@ INCS= \
         hash.h objc-list.h sarray.h objc.h objc-api.h \
         NXConstStr.h Object.h Protocol.h encoding.h typedstream.h \
         thr.h objc-decls.h
-INCSDIR=       ${INCLUDEDIR}/objc
+INCSDIR=       /usr/libdata/gcc${GCCSHORTVER}/objc
 
 
 SRCS+= unwind.h runtime-info.h
index 3177e02..d9bdd3e 100644 (file)
@@ -1,5 +1,5 @@
-# Processed in order because SUBDIR_ORDERED is not defined
 # csu and libgcc* are normally built earlier by the _startup_libs47 target
+# libsupc++ must be built after libstdc++, everything else can be parallel
 
 SUBDIR+=       csu
 SUBDIR+=       libgcc
@@ -13,6 +13,9 @@ SUBDIR+=      libgomp
 .if !defined(NO_CXX)
 SUBDIR+=       libstdc++
 SUBDIR+=       libsupc++
+SUBDIR_ORDERED= libstdc++ libsupc++
+.else
+SUBDIR_ORDERED=
 .endif
 
 .if !defined(NO_OBJC)