--- a/make-rules/shared-macros.mk Wed Dec 18 04:50:56 2013 -0800
+++ b/make-rules/shared-macros.mk Wed Dec 18 10:04:53 2013 -0800
@@ -32,13 +32,14 @@
# The location of an external mirror of community source archives that we build
# in this gate. The external mirror is a replica of the internal mirror.
-EXTERNAL_ARCHIVE_MIRROR = \
- http://static.opensolaris.org/action/browse/userland/tarball/userland
+EXTERNAL_ARCHIVE_MIRROR =
# Default to looking for source archives on the internal mirror and the external
# mirror before we hammer on the community source archive repositories.
export DOWNLOAD_SEARCH_PATH += $(INTERNAL_ARCHIVE_MIRROR)
+ifneq ($(strip $(EXTERNAL_ARCHIVE_MIRROR)),)
export DOWNLOAD_SEARCH_PATH += $(EXTERNAL_ARCHIVE_MIRROR)
+endif
# The workspace starts at the mercurial root
ifeq ($(origin WS_TOP), undefined)
@@ -65,6 +66,10 @@
install: SHELLOPTS=
publish: SHELLOPTS=pipefail
+# some things don't build properly in non-C locales,
+# so lets stay there
+export LC_ALL=C
+
SHELL= /bin/bash
CONSOLIDATION = userland
@@ -222,7 +227,9 @@
SPRO_ROOT = $(BUILD_TOOLS)/SUNWspro
SPRO_VROOT = $(SPRO_ROOT)/sunstudio12.1
-PARFAIT_ROOT = $(BUILD_TOOLS)/parfait/parfait-tools-0.5.0.1/
+PARFAIT_ROOT = $(BUILD_TOOLS)/parfait/parfait-tools-1.2.0.2
+PARFAIT_TOOLS= $(WS_TOOLS)/$(MACH)/parfait
+PARFAIT_TOOLS_GCC3= $(PARFAIT_TOOLS)/gcc3
PARFAIT= $(PARFAIT_ROOT)/bin/parfait
export PARFAIT_NATIVESUNCC=$(SPRO_VROOT)/bin/cc
export PARFAIT_NATIVESUNCXX=$(SPRO_VROOT)/bin/CC
@@ -231,7 +238,8 @@
# for now
export PARFAIT_CLANG=0
-GCC_ROOT = /usr/sfw
+GCC_ROOT = /usr/gcc/4.7
+GCC3_ROOT = /usr/sfw
CC.studio.32 = $(SPRO_VROOT)/bin/cc
CXX.studio.32 = $(SPRO_VROOT)/bin/CC
@@ -246,6 +254,12 @@
CC.gcc.64 = $(GCC_ROOT)/bin/gcc
CXX.gcc.64 = $(GCC_ROOT)/bin/g++
+CC.gcc3.32 = $(GCC3_ROOT)/bin/gcc
+CXX.gcc3.32 = $(GCC3_ROOT)/bin/g++
+
+CC.gcc3.64 = $(GCC3_ROOT)/bin/gcc
+CXX.gcc3.64 = $(GCC3_ROOT)/bin/g++
+
lint.32 = $(SPRO_VROOT)/bin/lint -m32
lint.64 = $(SPRO_VROOT)/bin/lint -m64
@@ -263,15 +277,19 @@
PYTHON.2.7.VENDOR_PACKAGES = $(PYTHON.2.7.VENDOR_PACKAGES.$(BITS))
ifeq ($(strip $(PARFAIT_BUILD)),yes)
-CC.studio.32 = $(WS_TOOLS)/parfait/cc
-CXX.studio.32 = $(WS_TOOLS)/parfait/CC
-CC.studio.64 = $(WS_TOOLS)/parfait/cc
-CXX.studio.64 = $(WS_TOOLS)/parfait/CC
-CC.gcc.32 = $(WS_TOOLS)/parfait/gcc
-CXX.gcc.32 = $(WS_TOOLS)/parfait/g++
-CC.gcc.64 = $(WS_TOOLS)/parfait/gcc
-CXX.gcc.64 = $(WS_TOOLS)/parfait/g++
-LD = $(WS_TOOLS)/parfait/ld
+CC.studio.32 = $(PARFAIT_TOOLS)/cc
+CXX.studio.32 = $(PARFAIT_TOOLS)/CC
+CC.studio.64 = $(PARFAIT_TOOLS)/cc
+CXX.studio.64 = $(PARFAIT_TOOLS)/CC
+CC.gcc.32 = $(PARFAIT_TOOLS)/gcc
+CXX.gcc.32 = $(PARFAIT_TOOLS)/g++
+CC.gcc.64 = $(PARFAIT_TOOLS)/gcc
+CXX.gcc.64 = $(PARFAIT_TOOLS)/g++
+CC.gcc3.32 = $(PARFAIT_TOOLS_GCC3)/gcc
+CXX.gcc3.32 = $(PARFAIT_TOOLS_GCC3)/g++
+CC.gcc3.64 = $(PARFAIT_TOOLS_GCC3)/gcc
+CXX.gcc3.64 = $(PARFAIT_TOOLS_GCC3)/g++
+LD = $(PARFAIT_TOOLS)/ld
endif
CC = $(CC.$(COMPILER).$(BITS))
@@ -357,7 +375,11 @@
PKGREPO = /usr/bin/pkgrepo
PKGSEND = /usr/bin/pkgsend
-PKGLINT = /usr/bin/pkglint
+ifeq ($(strip $(PKGLINT_COMPONENT)),)
+PKGLINT = /usr/bin/pkglint
+else
+PKGLINT = ${WS_TOOLS}/pkglint
+endif
ACLOCAL = /usr/bin/aclocal-1.10
AUTOMAKE = /usr/bin/automake-1.10
@@ -555,6 +577,8 @@
# configure environment.
CFLAGS.gcc += $(gcc_OPT)
CFLAGS.gcc += $(gcc_XREGS)
+CFLAGS.gcc3 += $(gcc_OPT)
+CFLAGS.gcc3 += $(gcc_XREGS)
# Build 32 or 64 bit objects.
@@ -612,7 +636,7 @@
# only be required if the component's native build is horribly broken.
LD_Z_RESCAN_NOW = -z rescan-now
-LD_Z_TEXT = -z direct
+LD_Z_TEXT = -z text
# make sure that -lc is always present when building shared objects.
LD_DEF_LIBS += -lc
@@ -623,6 +647,9 @@
# eliminate unreferenced dynamic dependencies
LD_Z_IGNORE = -z ignore
+# eliminate comments
+LD_Z_STRIP_CLASS = -z strip-class=comment
+
# use direct binding
LD_B_DIRECT = -Bdirect
@@ -656,7 +683,8 @@
# libraries to this macro, as it will apply to everything linked during the
# component build.
LD_OPTIONS += $(LD_MAP_NOEXSTK.$(MACH)) $(LD_MAP_NOEXDATA.$(MACH)) \
- $(LD_MAP_PAGEALIGN) $(LD_B_DIRECT) $(LD_Z_IGNORE)
+ $(LD_MAP_PAGEALIGN) $(LD_B_DIRECT) $(LD_Z_IGNORE) \
+ $(LD_Z_STRIP_CLASS)
# Environment variables and arguments passed into the build and install
# environment(s). These are the initial settings.