Print this page
9128 cw(1onbld) should be able to run multiple shadows
9129 file-locking tests shouldn't build multiple source files in one compiler invocation
9130 DTrace tst.gcc.d isn't useful
9132 cw(1onbld) shouldn't shadow pure preprocessing
Reviewed by: Andy Fiddaman <>

@@ -487,19 +487,17 @@
 CTF_FLAGS       = $(CTF_FLAGS_32)
 # Flags used with genoffsets
-GOFLAGS = -_noecho \
-        $(CALLSYMS) \
-        $(CDWARFSTR)
-        $(CC) $(GOFLAGS) $(CFLAGS) $(CPPFLAGS)
+        $(CW) --noecho $(CW_CC_COMPILERS) -- $(GOFLAGS) $(CFLAGS) $(CPPFLAGS)
-        $(CC) $(GOFLAGS) $(CFLAGS64) $(CPPFLAGS)
+        $(CW) --noecho $(CW_CC_COMPILERS) -- $(GOFLAGS) $(CFLAGS64) $(CPPFLAGS)
 # tradeoff time for space (smaller is better)
 sparc_SPACEFLAG         = -xspace -W0,-Lt

@@ -784,10 +782,19 @@
 SPRO_ROOT=              $(BUILD_TOOLS)/SUNWspro
 SPRO_VROOT=             $(SPRO_ROOT)/SS12
 GNU_ROOT=               /usr
+$(__GNUC)PRIMARY_CC=    gcc4,$(GNUC_ROOT)/bin/gcc,gnu
+$(__SUNC)PRIMARY_CC=    studio12,$(SPRO_VROOT)/bin/cc,sun
+$(__GNUC)PRIMARY_CCC=   gcc4,$(GNUC_ROOT)/bin/g++,gnu
+$(__SUNC)PRIMARY_CCC=   studio12,$(SPRO_VROOT)/bin/CC,sun
+CW_CC_COMPILERS=        $(PRIMARY_CC:%=--primary %) $(SHADOW_CCS:%=--shadow %)
+CW_CCC_COMPILERS=       $(PRIMARY_CCC:%=--primary %) $(SHADOW_CCCS:%=--shadow %)
 # Till SS12u1 formally becomes the NV CBE, LINT is hard
 # coded to be picked up from the $SPRO_ROOT/sunstudio12.1/
 # location. Impacted variables are sparc_LINT, sparcv9_LINT,
 # i386_LINT, amd64_LINT.
 # Reset them when SS12u1 is rolled out.

@@ -794,46 +801,35 @@
 # Specify platform compiler versions for languages
 # that we use (currently only c and c++).
-sparc_CC=               $(ONBLD_TOOLS)/bin/$(MACH)/cw -_cc
-$(__GNUC)sparc_CC=      $(ONBLD_TOOLS)/bin/$(MACH)/cw -_gcc
-sparc_CCC=              $(ONBLD_TOOLS)/bin/$(MACH)/cw -_CC
-$(__GNUC)sparc_CCC=     $(ONBLD_TOOLS)/bin/$(MACH)/cw -_g++
-sparc_CPP=              /usr/ccs/lib/cpp
-sparc_AS=               /usr/ccs/bin/as -xregsym=no
-sparc_LD=               /usr/ccs/bin/ld
-sparc_LINT=             $(SPRO_ROOT)/sunstudio12.1/bin/lint
+CW=                     $(ONBLD_TOOLS)/bin/$(MACH)/cw
-sparcv9_CC=             $(ONBLD_TOOLS)/bin/$(MACH)/cw -_cc
-$(__GNUC64)sparcv9_CC=  $(ONBLD_TOOLS)/bin/$(MACH)/cw -_gcc
-sparcv9_CCC=            $(ONBLD_TOOLS)/bin/$(MACH)/cw -_CC
-$(__GNUC64)sparcv9_CCC= $(ONBLD_TOOLS)/bin/$(MACH)/cw -_g++
-sparcv9_CPP=            /usr/ccs/lib/cpp
-sparcv9_AS=             /usr/ccs/bin/as -xregsym=no
-sparcv9_LD=             /usr/ccs/bin/ld
-sparcv9_LINT=           $(SPRO_ROOT)/sunstudio12.1/bin/lint
+BUILD_CC=               $(CW) $(CW_CC_COMPILERS) --
+BUILD_CCC=              $(CW) -C $(CW_CCC_COMPILERS) --
+BUILD_CPP=              /usr/ccs/lib/cpp
+BUILD_LD=               /usr/ccs/bin/ld
+BUILD_LINT=             $(SPRO_ROOT)/sunstudio12.1/bin/lint
-i386_CC=                $(ONBLD_TOOLS)/bin/$(MACH)/cw -_cc
-$(__GNUC)i386_CC=       $(ONBLD_TOOLS)/bin/$(MACH)/cw -_gcc
-i386_CCC=               $(ONBLD_TOOLS)/bin/$(MACH)/cw -_CC
-$(__GNUC)i386_CCC=      $(ONBLD_TOOLS)/bin/$(MACH)/cw -_g++
-i386_CPP=               /usr/ccs/lib/cpp
+$(MACH)_CC=             $(BUILD_CC)
+$(MACH)_CCC=            $(BUILD_CCC)
+$(MACH)_CPP=            $(BUILD_CPP)
+$(MACH)_LD=             $(BUILD_LD)
+$(MACH)_LINT=           $(BUILD_LINT)
+$(MACH64)_CC=           $(BUILD_CC)
+$(MACH64)_CCC=          $(BUILD_CCC)
+$(MACH64)_CPP=          $(BUILD_CPP)
+$(MACH64)_LD=           $(BUILD_LD)
+$(MACH64)_LINT=         $(BUILD_LINT)
+sparc_AS=               /usr/ccs/bin/as -xregsym=no
+sparcv9_AS=             $($(MACH)_AS)
 i386_AS=                /usr/ccs/bin/as
 $(__GNUC)i386_AS=       $(ONBLD_TOOLS)/bin/$(MACH)/aw
-i386_LD=                /usr/ccs/bin/ld
-i386_LINT=              $(SPRO_ROOT)/sunstudio12.1/bin/lint
-amd64_CC=               $(ONBLD_TOOLS)/bin/$(MACH)/cw -_cc
-$(__GNUC64)amd64_CC=    $(ONBLD_TOOLS)/bin/$(MACH)/cw -_gcc
-amd64_CCC=              $(ONBLD_TOOLS)/bin/$(MACH)/cw -_CC
-$(__GNUC64)amd64_CCC=   $(ONBLD_TOOLS)/bin/$(MACH)/cw -_g++
-amd64_CPP=              /usr/ccs/lib/cpp
 amd64_AS=               $(ONBLD_TOOLS)/bin/$(MACH)/aw
-amd64_LD=               /usr/ccs/bin/ld
-amd64_LINT=             $(SPRO_ROOT)/sunstudio12.1/bin/lint
 NATIVECC=               $($(NATIVE_MACH)_CC)
 NATIVECCC=              $($(NATIVE_MACH)_CCC)
 NATIVECPP=              $($(NATIVE_MACH)_CPP)
 NATIVEAS=               $($(NATIVE_MACH)_AS)

@@ -848,16 +844,10 @@
 CPP=                    $(NATIVECPP)
 AS=                     $(NATIVEAS)
 LD=                     $(NATIVELD)
 LINT=                   $(NATIVELINT)
-# The real compilers used for this build
-CW_CC_CMD=              $(CC) -_compiler
-CW_CCC_CMD=             $(CCC) -_compiler
-REAL_CC=                $(CW_CC_CMD:sh)
-REAL_CCC=               $(CW_CCC_CMD:sh)
 # Pass -Y flag to cpp (method of which is release-dependent)
 CCYFLAG=                -Y I,
 BDIRECT=        -Bdirect
 BDYNAMIC=       -Bdynamic