From 55ed12f8d1eb6887d348be03aee5573d44177ffb Mon Sep 17 00:00:00 2001 From: Michael Sartain Date: Thu, 2 Oct 2014 08:25:55 -0700 Subject: Updated the SDK with the latest code from the TF and HL2 branches. --- mp/src/devtools/bin/linux/ccache | Bin 197505 -> 428393 bytes mp/src/devtools/bin/vpc.exe | Bin 1104384 -> 1103872 bytes mp/src/devtools/bin/vpc_linux | Bin 1179007 -> 1179883 bytes mp/src/devtools/bin/vpc_osx | Bin 1000264 -> 1006816 bytes mp/src/devtools/makefile_base_posix.mak | 135 ++++++++++---------------------- 5 files changed, 42 insertions(+), 93 deletions(-) (limited to 'mp/src/devtools') diff --git a/mp/src/devtools/bin/linux/ccache b/mp/src/devtools/bin/linux/ccache index 5146484f..99dd2b4a 100755 Binary files a/mp/src/devtools/bin/linux/ccache and b/mp/src/devtools/bin/linux/ccache differ diff --git a/mp/src/devtools/bin/vpc.exe b/mp/src/devtools/bin/vpc.exe index cab4902c..8c4fd6aa 100644 Binary files a/mp/src/devtools/bin/vpc.exe and b/mp/src/devtools/bin/vpc.exe differ diff --git a/mp/src/devtools/bin/vpc_linux b/mp/src/devtools/bin/vpc_linux index 55c29561..b83b870e 100755 Binary files a/mp/src/devtools/bin/vpc_linux and b/mp/src/devtools/bin/vpc_linux differ diff --git a/mp/src/devtools/bin/vpc_osx b/mp/src/devtools/bin/vpc_osx index 4a7cdc37..cbe1e289 100755 Binary files a/mp/src/devtools/bin/vpc_osx and b/mp/src/devtools/bin/vpc_osx differ diff --git a/mp/src/devtools/makefile_base_posix.mak b/mp/src/devtools/makefile_base_posix.mak index cd5f498a..0211e157 100644 --- a/mp/src/devtools/makefile_base_posix.mak +++ b/mp/src/devtools/makefile_base_posix.mak @@ -22,13 +22,22 @@ HOSTNAME := $(shell hostname) # To build with clang, set the following in your environment: # CC = clang # CXX = clang++ +ifneq (,$(findstring clang,$(CXX))) + CLANG_BUILD = 1 +endif ifeq ($(CFG), release) # With gcc 4.6.3, engine.so went from 7,383,765 to 8,429,109 when building with -O3. # There also was no speed difference running at 1280x1024. May 2012, mikesart. # tonyp: The size increase was likely caused by -finline-functions and -fipa-cp-clone getting switched on with -O3. # -fno-omit-frame-pointer: need this for stack traces with perf. - OptimizerLevel_CompilerSpecific = -O2 -fno-strict-aliasing -ffast-math -fno-omit-frame-pointer -ftree-vectorize -fpredictive-commoning -funswitch-loops + OptimizerLevel_CompilerSpecific = -O2 -fno-strict-aliasing -ffast-math -fno-omit-frame-pointer -ftree-vectorize + ifeq ($(CLANG_BUILD),1) + # These aren't supported wit Clang 3.5. Need to remove when we update that. + OptimizerLevel_CompilerSpecific += -fpredictive-commoning -funswitch-loops + else + OptimizerLevel_CompilerSpecific += -fpredictive-commoning -funswitch-loops + endif else OptimizerLevel_CompilerSpecific = -O0 #-O1 -finline-functions @@ -41,14 +50,14 @@ CPPFLAGS = $(DEFINES) $(addprefix -I, $(abspath $(INCLUDEDIRS) )) CFLAGS = $(ARCH_FLAGS) $(CPPFLAGS) $(WARN_FLAGS) -fvisibility=$(SymbolVisibility) $(OptimizerLevel) -pipe $(GCC_ExtraCompilerFlags) -Usprintf -Ustrncpy -UPROTECTED_THINGS_ENABLE # In -std=gnu++0x mode we get lots of errors about "error: narrowing conversion". -fpermissive # turns these into warnings in gcc, and -Wno-c++11-narrowing suppresses them entirely in clang 3.1+. -ifeq ($(CXX),clang++) +ifeq ($(CLANG_BUILD),1) CXXFLAGS = $(CFLAGS) -std=gnu++0x -Wno-c++11-narrowing -Wno-dangling-else else CXXFLAGS = $(CFLAGS) -std=gnu++0x -fpermissive endif DEFINES += -DVPROF_LEVEL=1 -DGNUC -DNO_HOOK_MALLOC -DNO_MALLOC_OVERRIDE LDFLAGS = $(CFLAGS) $(GCC_ExtraLinkerFlags) $(OptimizerLevel) -GENDEP_CXXFLAGS = -MD -MP -MF $(@:.o=.P) +GENDEP_CXXFLAGS = -MMD -MP -MF $(@:.o=.P) MAP_FLAGS = Srv_GAMEOUTPUTFILE = COPY_DLL_TO_SRV = 0 @@ -57,11 +66,30 @@ COPY_DLL_TO_SRV = 0 ifeq ($(STEAM_BRANCH),1) WARN_FLAGS = -Wall -Wextra -Wshadow -Wno-invalid-offsetof else - WARN_FLAGS = -Wno-write-strings -Wno-multichar + WARN_FLAGS = -Wall -Wno-invalid-offsetof -Wno-multichar -Wno-overloaded-virtual + WARN_FLAGS += -Wno-write-strings + WARN_FLAGS += -Wno-unused-variable + WARN_FLAGS += -Wno-unused-but-set-variable + WARN_FLAGS += -Wno-unused-function + + ifeq ($(CLANG_BUILD),1) + # Clang specific flags + else + # Gcc specific flags. Need this for gcc 4.8. + # WARN_FLAGS += -Wno-unused-local-typedefs + # WARN_FLAGS += -Wno-unused-function + # WARN_FLAGS += -Wno-unused-result + # WARN_FLAGS += -Wno-narrowing + endif endif -WARN_FLAGS += -Wno-unknown-pragmas -Wno-unused-parameter -Wno-unused-value -Wno-missing-field-initializers -Wno-sign-compare -Wno-reorder -Wno-invalid-offsetof -Wno-float-equal -Werror=return-type -fdiagnostics-show-option -Wformat -Wformat-security +WARN_FLAGS += -Wno-unknown-pragmas -Wno-unused-parameter -Wno-unused-value -Wno-missing-field-initializers +WARN_FLAGS += -Wno-sign-compare -Wno-reorder -Wno-invalid-offsetof -Wno-float-equal -Werror=return-type +WARN_FLAGS += -fdiagnostics-show-option -Wformat -Wformat-security +ifeq ($(OS),Darwin) +$(error This file should never be used for Mac - use base.xconfig) +endif ifeq ($(OS),Linux) # We should always specify -Wl,--build-id, as documented at: @@ -85,12 +113,9 @@ ifeq ($(OS),Linux) # If the steam-runtime is available, use it. We should just default to using it when # buildbot and everyone has a bit of time to get it installed. ifneq "$(wildcard /valve/steam-runtime/bin/)" "" - # The steam-runtime is incompatible with clang at this point, so disable it - # if clang is enabled. - ifneq ($(CXX),clang++) - VALVE_BINDIR = /valve/steam-runtime/bin/ - endif + VALVE_BINDIR = /valve/steam-runtime/bin/ endif + GCC_VER = MARCH_TARGET = pentium4 # On dedicated servers, some plugins depend on global variable symbols in addition to functions. @@ -98,7 +123,10 @@ ifeq ($(OS),Linux) STRIP_FLAGS = -x endif - ifeq ($(CXX),clang++) + ifeq ($(CLANG_BUILD),1) + # The steam-runtime is incompatible with clang at this point, so disable it + VALVE_BINDIR = + # Clang does not support -mfpmath=sse because it uses whatever # instruction set extensions are available by default. SSE_GEN_FLAGS = -msse2 @@ -114,19 +142,18 @@ ifeq ($(OS),Linux) ifeq ($(origin AR), default) AR = $(VALVE_BINDIR)ar crs endif - ifeq ($(origin CC),default) + ifeq ($(origin CC), default) CC = $(CCACHE) $(VALVE_BINDIR)gcc$(GCC_VER) endif ifeq ($(origin CXX), default) CXX = $(CCACHE) $(VALVE_BINDIR)g++$(GCC_VER) endif + # Support ccache with clang. Add -Qunused-arguments to avoid excessive warnings due to # a ccache quirk. Could also upgrade ccache. # http://petereisentraut.blogspot.com/2011/05/ccache-and-clang.html - ifeq ($(CC),clang) + ifeq ($(CLANG_BUILD),1) CC = $(CCACHE) $(VALVE_BINDIR)clang -Qunused-arguments - endif - ifeq ($(CXX),clang++) CXX = $(CCACHE) $(VALVE_BINDIR)clang++ -Qunused-arguments endif LINK ?= $(CC) @@ -180,84 +207,6 @@ ifeq ($(OS),Linux) endif -ifeq ($(OS),Darwin) - CCACHE := $(SRCROOT)/devtools/bin/osx32/ccache - MAC_SDK_VER ?= 10.6 - MAC_SDK := macosx$(MAC_SDK_VER) - SYSROOT := $(shell xcodebuild -sdk $(MAC_SDK) -version Path) - - ifneq ($(origin MAC_SDK_VER), file) - $(warning Attempting build with SDK version $(MAC_SDK_VER), only 10.6 is supported and recommended!) - endif - - ifeq ($(SYSROOT),) - FIRSTSDK := $(firstword $(sort $(shell xcodebuild -showsdks | grep macosx | sed 's/.*macosx//'))) - $(error Could not find SDK version $(MAC_SDK_VER). Install and configure Xcode 4.3, or build with: make MAC_SDK_VER=$(FIRSTSDK)) - endif - - ifeq ($(origin CC), default) - # Test to see if you have a compiler in the right place, if you - # don't abort with an error - CLANG := $(shell xcrun -sdk $(MAC_SDK) -find clang) - ifeq ($(wildcard $(CLANG)),) - $(error Unable to find C compiler, install and configure Xcode 4.3) - endif - - CC := $(CCACHE) $(CLANG) -Qunused-arguments - endif - - ifeq ($(origin CXX), default) - CXXLANG := $(shell xcrun -sdk $(MAC_SDK) -find clang++) - ifeq ($(wildcard $(CXXLANG)),) - $(error Unable to find C++ compiler, install and configure Xcode 4.3) - endif - - CXX := $(CCACHE) $(CXXLANG) -Qunused-arguments - endif - LINK ?= $(CXX) - - ifeq ($(origin AR), default) - AR := $(shell xcrun -sdk $(MAC_SDK) -find libtool) -static -o - endif - - ifeq ($(TARGET_PLATFORM),osx64) - ARCH_FLAGS += -arch x86_64 -m64 -march=core2 - else ifeq (,$(findstring -arch x86_64,$(GCC_ExtraCompilerFlags))) - ARCH_FLAGS += -arch i386 -m32 -march=prescott -momit-leaf-frame-pointer -mtune=core2 - else - # dirty hack to build a universal binary - don't specify the architecture - ARCH_FLAGS += -arch i386 -Xarch_i386 -march=prescott -Xarch_i386 -mtune=core2 -Xarch_i386 -momit-leaf-frame-pointer -Xarch_x86_64 -march=core2 - endif - - GEN_SYM ?= $(shell xcrun -sdk $(MAC_SDK) -find dsymutil) - ifeq ($(CFG),release) - STRIP ?= strip -S - else - STRIP ?= true - endif - ifeq ($(SOURCE_SDK), 1) - VSIGN ?= true - else - VSIGN ?= $(SRCROOT)/devtools/bin/vsign - endif - - CPPFLAGS += -I$(SYSROOT)/usr/include/malloc - CFLAGS += -isysroot $(SYSROOT) -mmacosx-version-min=10.5 -fasm-blocks - - LIB_START_EXE = -lm -ldl -lpthread - LIB_END_EXE = - - LIB_START_SHLIB = - LIB_END_SHLIB = - - SHLIBLDFLAGS = $(LDFLAGS) -bundle -flat_namespace -undefined suppress -Wl,-dead_strip -Wl,-no_dead_strip_inits_and_terms - - ifeq (lib,$(findstring lib,$(GAMEOUTPUTFILE))) - SHLIBLDFLAGS = $(LDFLAGS) -dynamiclib -current_version 1.0 -compatibility_version 1.0 -install_name @rpath/$(basename $(notdir $(GAMEOUTPUTFILE))).dylib $(SystemLibraries) -Wl,-dead_strip -Wl,-no_dead_strip_inits_and_terms - endif - -endif - # # Profile-directed optimizations. # Note: Last time these were tested 3/5/08, it actually slowed down the server benchmark by 5%! -- cgit v1.2.3