Commit e8febd78 authored by Graham Inggs's avatar Graham Inggs

Imported Upstream version 2.2+r004

parent 924368fe
TBB 2.2 commercial-aligned release
Changes (w.r.t. TBB 2.1 U4 commercial-aligned release):
- Incorporates all changes from open-source releases below.
- Architecture folders renamed from em64t to intel64 and from itanium
to ia64.
- Major Interface version changed from 3 to 4. Deprecated interfaces
might be removed in future releases.
- Improved memory allocator performance for allocations bigger than 8K.
- Added new thread-bound filters functionality for pipeline.
- New implementation of concurrent_hash_map that improves performance
significantly.
- A few other small changes in code and documentation.
------------------------------------------------------------------------
20090511 open-source release
Changes (w.r.t. previous open-source release):
- Basic support for MinGW32 development kit.
- Added tbb::zero_allocator class that initializes memory with zeros.
It can be used as an adaptor to any STL-compatible allocator class.
- Added tbb::parallel_for_each template function as alias to parallel_do.
- Added more overloads for tbb::parallel_for.
- Added support for exact exception propagation (can only be used with
compilers that support C++0x std::exception_ptr).
- tbb::atomic template class can be used with enumerations.
- mutex, recursive_mutex, spin_mutex, spin_rw_mutex classes extended
with explicit lock/unlock methods.
- Fixed size() and grow_to_at_least() methods of tbb::concurrent_vector
to provide space allocation guarantees. More methods added for
compatibility with std::vector, including some from C++0x.
- Preview of a lambda-friendly interface for low-level use of tasks.
- scalable_msize function added to the scalable allocator (Windows only).
- Rationalized internal auxiliary functions for spin-waiting and backoff.
- Several tests undergo decent refactoring.
Changes affecting backward compatibility:
- Improvements in concurrent_queue, including limited API changes.
The previous version is deprecated; its functionality is accessible
via methods of the new tbb::concurrent_bounded_queue class.
- grow* and push_back methods of concurrent_vector changed to return
iterators; old semantics is deprecated.
------------------------------------------------------------------------
TBB 2.1 Update 4 commercial-aligned release
Changes (w.r.t. TBB 2.1 U3 commercial-aligned release):
......@@ -15,6 +62,33 @@ Bugs fixed:
- On Windows, TBB allocator classes can be instantiated with const types
for compatibility with MS implementation of STL containers (1566).
------------------------------------------------------------------------
20090313 open-source release
Changes (w.r.t. 20081109 open-source release):
- Includes all changes introduced in TBB 2.1 Update 2 & Update 3
commercial-aligned releases (see below for details).
- Added tbb::parallel_invoke template function. It runs up to 10
user-defined functions in parallel and waits for them to complete.
- Added a special library providing ability to replace the standard
memory allocation routines in Microsoft* C/C++ RTL (malloc/free,
global new/delete, etc.) with the TBB memory allocator.
Usage details are described in include/tbb/tbbmalloc_proxy.h file.
- Task scheduler switched to use new implementation of its core
functionality (deque based task pool, new structure of arena slots).
- Preview of Microsoft* Visual Studio* 2005 project files for
building the library is available in build/vsproject folder.
- Added tests for aligned memory allocations and malloc replacement.
- Added parallel_for/game_of_life.net example (for Windows only)
showing TBB usage in a .NET application.
- A number of other fixes and improvements to code, tests, makefiles,
examples and documents.
Bugs fixed:
- The same list as in TBB 2.1 Update 4 right above.
------------------------------------------------------------------------
TBB 2.1 Update 3 commercial-aligned release
......@@ -26,53 +100,91 @@ Changes (w.r.t. TBB 2.1 U2 commercial-aligned release):
TBB memory allocator.
- Added null_mutex and null_rw_mutex: no-op classes interface-compliant
to other TBB mutexes.
- Improved performance of parallel_sort, to close most of gap with
std::sort in serial, and beat it on 2 and more cores.
- Fixed the problem where parallel_for hanged after exception throw
if affinity_partitioner was used.
- Fixed VS 2008 warnings about mbstowcs deprecation, and some others.
- Fixed operator== for concurrent_vector::iterator to work correctly
with different vector instances.
- Improved performance of parallel_sort, to close most of the serial gap
with std::sort, and beat it on 2 and more cores.
- A few other small changes.
Bugs fixed:
- the problem where parallel_for hanged after exception throw
if affinity_partitioner was used (1556).
- get rid of VS warnings about mbstowcs deprecation (1560),
as well as some other warnings.
- operator== for concurrent_vector::iterator fixed to work correctly
with different vector instances.
------------------------------------------------------------------------
TBB 2.1 Update 2 commercial-aligned release
Changes (w.r.t. TBB 2.1 U1 commercial-aligned release):
- Incorporates all open-source-release changes down to TBB 2.1 U1,
except for:
- 20081019 addition of enumerable_thread_specific;
- Warning level for Microsoft* Visual C++* compiler raised to /W4 /Wp64;
warnings found on this level were cleaned or suppressed.
- Added TBB_runtime_interface_version API function.
- Added new example: pipeline/square.
- Added exception handling and cancellation support
for parallel_do and pipeline.
- Added new serial out of order filter for tbb::pipeline.
- Added copy constructor and [begin,end) constructor to concurrent_queue.
- Added some support for beta version of Intel(R) Parallel Amplifier.
- Added scripts to set environment for cross-compilation of 32-bit
applications on 64-bit Linux with Intel(R) C++ Compiler.
- Dependency from Microsoft* CRT was integrated to the libraries using
manifests, to avoid issues if called from code that uses different
version of Visual C++* runtime than the library.
- Introduced new defines TBB_USE_ASSERT, TBB_USE_DEBUG,
TBB_USE_PERFORMANCE_WARNINGS, TBB_USE_THREADING_TOOLS.
- Fixed semantics of concurrent_vector::clear() to not deallocate
internal arrays. Fixed compact() to perform such deallocation later.
- Fixed the issue with atomic<T*> when T is incomplete type.
- Improved support for PowerPC* Macintosh*, including the fix
for a bug in masked compare-and-swap reported by a customer.
- As usual, a number of other improvements everywhere.
------------------------------------------------------------------------
20081109 open-source release
Changes (w.r.t. previous open-source release):
- Added new serial out of order filter for tbb::pipeline.
- Fixed the issue with atomic<T*>::operator= reported at the forum.
- Fixed the issue with using tbb::task::self() in task destructor
reported at the forum.
- Fixed more concurrent_queue issues also reported at the forum.
- Improved support for Intel(R) Threading Analysis Tools
on Intel(R) 64 architecture.
- Improved support for PowerPC* Macintosh*, including the fix
for a bug in masked compare-and-swap reported by a customer.
- A number of other improvements to code, tests, makefiles, examples
and documents.
Open-source contributions integrated:
- Changes in the memory allocator were partially integrated.
- linker optimization: /incremental:no.
------------------------------------------------------------------------
20081019 open-source release
Changes (w.r.t. previous open-source release):
- Introduced enumerable_thread_specific<T>. This new class provides a
wrapper around native thread local storage as well as iterators and
ranges for accessing the thread local copies (1533).
- Improved support for Intel(R) Threading Analysis Tools
on Intel(R) 64 architecture.
- Dependency from Microsoft* CRT was integrated to the libraries using
manifests, to avoid issues if called from code that uses different
version of Visual C++* runtime than the library.
- Introduced new defines TBB_USE_ASSERT, TBB_USE_DEBUG,
TBB_USE_PERFORMANCE_WARNINGS, TBB_USE_THREADING_TOOLS.
- A number of other improvements to code, tests, makefiles, examples
and documents.
Open-source contributions integrated:
- linker optimization: /incremental:no .
------------------------------------------------------------------------
20080925 open-source release
Changes (w.r.t. previous open-source release):
- Same fix for a memory leak in the memory allocator as in TBB 2.1 U1.
- Improved support for lambda functions.
- Fixed more concurrent_queue issues reported at the forum.
- A number of other improvements to code, tests, makefiles, examples
and documents.
------------------------------------------------------------------------
TBB 2.1 Update 1 commercial-aligned release
......
......@@ -50,6 +50,10 @@ test: tbb tbbmalloc
-$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=release malloc_test tbb_root=$(tbb_root)
-$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.test cfg=release tbb_root=$(tbb_root)
rml: mkdir
$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.rml cfg=debug tbb_root=$(tbb_root)
$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.rml cfg=release tbb_root=$(tbb_root)
examples: tbb tbbmalloc
$(MAKE) -C examples -r -f Makefile tbb_root=.. release test
......
......@@ -39,9 +39,10 @@ DYLIB_KEY = -shared
TBB_NOSTRICT = 1
CPLUS = g++
CONLY = gcc
LIB_LINK_FLAGS = -shared
LIBS = -lpthread
C_FLAGS = $(CPLUS_FLAGS) -x c
C_FLAGS = $(CPLUS_FLAGS)
ifeq ($(cfg), release)
CPLUS_FLAGS = -O2 -DUSE_PTHREAD
......@@ -55,12 +56,12 @@ ASM_FLAGS=
TBB_ASM.OBJ=
ifeq (itanium,$(arch))
ifeq (ia64,$(arch))
# Position-independent code (PIC) is a must on IA-64, even for regular (not shared) executables
CPLUS_FLAGS += $(PIC_KEY)
endif
ifeq (em64t,$(arch))
ifeq (intel64,$(arch))
CPLUS_FLAGS += -m64
LIB_LINK_FLAGS += -m64
endif
......@@ -74,7 +75,7 @@ endif
# Setting assembler data.
#------------------------------------------------------------------------------
ASSEMBLY_SOURCE=$(arch)-gas
ifeq (itanium,$(arch))
ifeq (ia64,$(arch))
ASM=as
TBB_ASM.OBJ = atomic_support.o lock_byte.o log2.o pause.o
endif
......
......@@ -29,10 +29,10 @@ ifndef arch
export arch:=ia32
endif
ifeq ($(shell uname -m),ia64)
export arch:=itanium
export arch:=ia64
endif
ifeq ($(shell uname -m),amd64)
export arch:=em64t
export arch:=intel64
endif
endif
......
# Copyright 2005-2009 Intel Corporation. All Rights Reserved.
#
# This file is part of Threading Building Blocks.
#
# Threading Building Blocks is free software; you can redistribute it
# and/or modify it under the terms of the GNU General Public License
# version 2 as published by the Free Software Foundation.
#
# Threading Building Blocks is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Threading Building Blocks; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# As a special exception, you may use this file as part of a free software
# library without restriction. Specifically, if other files instantiate
# templates or use macros or inline functions from this file, or you compile
# this file and link it with other files to produce an executable, this
# file does not by itself cause the resulting executable to be covered by
# the GNU General Public License. This exception does not however
# invalidate any other reasons why the executable file might be covered by
# the GNU General Public License.
tbb_root ?= $(TBB22_INSTALL_DIR)
BUILDING_PHASE=1
include $(tbb_root)/build/common.inc
DEBUG_SUFFIX=$(findstring _debug,_$(cfg))
# default target
default_rml: rml rml_test
RML_ROOT ?= $(tbb_root)/src/rml
RML_SERVER_ROOT = $(RML_ROOT)/server
VPATH = $(tbb_root)/src/tbb $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE)
VPATH += $(RML_ROOT)/server $(RML_ROOT)/client $(RML_ROOT)/test
include $(tbb_root)/build/common_rules.inc
#--------------------------------------------------------------------------
# Define rules for making the RML server shared library and client objects.
#--------------------------------------------------------------------------
# Object files that make up RML server
RML_SERVER.OBJ = rml_server.$(OBJ)
# Object files that RML clients need
RML_TBB_CLIENT.OBJ = rml_tbb.$(OBJ) dynamic_link.$(OBJ)
RML_OMP_CLIENT.OBJ = rml_omp.$(OBJ) omp_dynamic_link.$(OBJ)
RML.OBJ = $(RML_SERVER.OBJ) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ)
ifeq (windows,$(tbb_os))
RML_ASM.OBJ = $(if $(findstring intel64,$(arch)),$(TBB_ASM.OBJ))
endif
ifeq (linux,$(tbb_os))
RML_ASM.OBJ = $(if $(findstring ia64,$(arch)),$(TBB_ASM.OBJ))
endif
RML_TBB_DEP= cache_aligned_allocator_rml.$(OBJ) dynamic_link_rml.$(OBJ) concurrent_vector_rml.$(OBJ) tbb_misc_rml.$(OBJ)
TBB_DEP_NON_RML_TEST= cache_aligned_allocator_rml.$(OBJ) dynamic_link_rml.$(OBJ) $(RML_ASM.OBJ)
TBB_DEP_RML_TEST= $(RML_ASM.OBJ)
ifeq ($(cfg),debug)
RML_TBB_DEP+= spin_mutex_rml.$(OBJ)
TBB_DEP_NON_RML_TEST+= tbb_misc_rml.$(OBJ)
TBB_DEP_RML_TEST+= tbb_misc_rml.$(OBJ)
endif
LIBS += $(LIBDL)
INCLUDES += $(INCLUDE_KEY)$(RML_ROOT)/include $(INCLUDE_KEY).
T_INCLUDES = $(INCLUDES) $(INCLUDE_KEY)$(tbb_root)/src/test $(INCLUDE_KEY)$(RML_SERVER_ROOT)
# Suppress superfluous warnings for RML compilation
R_CPLUS_FLAGS = $(subst DO_ITT_NOTIFY,DO_ITT_NOTIFY=0,$(CPLUS_FLAGS_NOSTRICT)) $(WARNING_SUPPRESS) \
$(DEFINE_KEY)TBB_USE_THREADING_TOOLS=0 $(DEFINE_KEY)__TBB_RML_STATIC=1 $(DEFINE_KEY)__TBB_NO_IMPLICIT_LINKAGE=1
%.$(OBJ): %.cpp
$(CPLUS) $(COMPILE_ONLY) $(R_CPLUS_FLAGS) $(PIC_KEY) $(INCLUDES) $<
tbb_misc_rml.$(OBJ): version_string.tmp
RML_TEST.OBJ = test_hunk.$(OBJ) test_job_automaton.$(OBJ) test_ring.$(OBJ) test_thread_monitor.$(OBJ) test_rml_tbb.$(OBJ) test_rml_omp.$(OBJ) test_rml_mixed.$(OBJ)
$(RML_TBB_DEP): %_rml.$(OBJ): %.cpp
$(CPLUS) $(COMPILE_ONLY) $(OUTPUTOBJ_KEY)$@ $(R_CPLUS_FLAGS) $(PIC_KEY) $(INCLUDES) $<
$(RML_TEST.OBJ): %.$(OBJ): %.cpp
$(CPLUS) $(COMPILE_ONLY) $(R_CPLUS_FLAGS) $(PIC_KEY) $(T_INCLUDES) $<
ifneq (,$(RML.DEF))
rml.def: $(RML.DEF)
$(CMD) "$(CPLUS) $(PREPROC_ONLY) $(RML.DEF) $(filter $(DEFINE_KEY)%,$(CPLUS_FLAGS)) >rml.def 2>$(NUL) || exit 0"
LIB_LINK_FLAGS += $(EXPORT_KEY)rml.def
$(RML.DLL): rml.def
endif
$(RML.DLL): BUILDING_LIBRARY = $(RML.DLL)
$(RML.DLL): $(RML_SERVER.OBJ) $(RML.RES) $(RML_NO_VERSION.DLL) $(RML_TBB_DEP) $(RML_ASM.OBJ)
$(LIB_LINK_CMD) $(LIB_OUTPUT_KEY)$(RML.DLL) $(RML_SERVER.OBJ) $(RML_TBB_DEP) $(RML_ASM.OBJ) $(RML.RES) $(LIB_LINK_LIBS) $(LIB_LINK_FLAGS)
ifneq (,$(RML_NO_VERSION.DLL))
$(RML_NO_VERSION.DLL):
echo "INPUT ($(RML.DLL))" > $(RML_NO_VERSION.DLL)
endif
rml: $(RML.DLL) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ)
#------------------------------------------------------
# End of rules for making the RML server shared library
#------------------------------------------------------
#------------------------------------------------------
# Define rules for making the RML unit tests
#------------------------------------------------------
add_debug=$(basename $(1))_debug$(suffix $(1))
cross_suffix=$(if $(crosstest),$(if $(DEBUG_SUFFIX),$(subst _debug,,$(1)),$(call add_debug,$(1))),$(1))
RML_TESTS = test_hunk.exe test_job_automaton.exe test_ring.exe test_thread_monitor.exe test_rml_tbb.exe test_rml_omp.exe test_rml_mixed.exe test_rml_omp_c_linkage.exe
test_rml_tbb.exe: test_rml_tbb.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(TBB_DEP_RML_TEST)
$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) test_rml_tbb.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(TBB_DEP_RML_TEST) $(LIBS) $(LINK_FLAGS)
test_rml_omp.exe: test_rml_omp.$(OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_NON_RML_TEST)
$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) test_rml_omp.$(OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_NON_RML_TEST) $(LIBS) $(LINK_FLAGS)
test_rml_mixed.exe: test_rml_mixed.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_RML_TEST)
$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) test_rml_mixed.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_RML_TEST) $(LIBS) $(LINK_FLAGS)
rml_omp_stub.$(OBJ): rml_omp_stub.cpp
$(CPLUS) $(COMPILE_ONLY) $(M_CPLUS_FLAGS) $(WARNING_SUPPRESS) $(T_INCLUDES) $(PIC_KEY) $<
test_rml_omp_c_linkage.exe: test_rml_omp_c_linkage.$(OBJ) rml_omp_stub.$(OBJ)
$(CONLY) $(C_FLAGS) $(OUTPUT_KEY)$@ test_rml_omp_c_linkage.$(OBJ) rml_omp_stub.$(OBJ)
test_%.exe: test_%.$(OBJ) $(TBB_DEP_NON_RML_TEST)
$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(TBB_DEP_NON_RML_TEST) $(LIBS) $(LINK_FLAGS)
### run_cmd is usually empty
rml_test: $(call cross_suffix,$(RML.DLL)) $(RML_TESTS)
$(run_cmd) ./test_hunk.exe
$(run_cmd) ./test_job_automaton.exe
$(run_cmd) ./test_ring.exe
$(run_cmd) ./test_thread_monitor.exe
$(run_cmd) ./test_rml_tbb.exe
$(run_cmd) ./test_rml_omp.exe
$(run_cmd) ./test_rml_mixed.exe
$(run_cmd) ./test_rml_omp_c_linkage.exe
#------------------------------------------------------
# End of rules for making the TBBMalloc unit tests
#------------------------------------------------------
# Include automatically generated dependences
-include *.d
......@@ -28,7 +28,7 @@
# Define rules for making the TBB shared library.
#------------------------------------------------------------------------------
tbb_root ?= "$(TBB21_INSTALL_DIR)"
tbb_root ?= "$(TBB22_INSTALL_DIR)"
BUILDING_PHASE=1
include $(tbb_root)/build/common.inc
DEBUG_SUFFIX=$(findstring _debug,_$(cfg))
......@@ -62,6 +62,7 @@ endif
TBB_CPLUS.OBJ = concurrent_hash_map.$(OBJ) \
concurrent_queue.$(OBJ) \
concurrent_vector.$(OBJ) \
dynamic_link.$(OBJ) \
itt_notify.$(OBJ) \
cache_aligned_allocator.$(OBJ) \
pipeline.$(OBJ) \
......@@ -73,7 +74,8 @@ TBB_CPLUS.OBJ = concurrent_hash_map.$(OBJ) \
tbb_misc.$(OBJ) \
mutex.$(OBJ) \
recursive_mutex.$(OBJ) \
tbb_thread.$(OBJ)
tbb_thread.$(OBJ) \
itt_notify_proxy.$(OBJ)
# OLD/Legacy object files for backward binary compatibility
ifeq (,$(findstring $(DEFINE_KEY)TBB_NO_LEGACY,$(CPLUS_FLAGS)))
......@@ -89,11 +91,17 @@ TBB.OBJ = $(TBB_CPLUS.OBJ) $(TBB_CPLUS_OLD.OBJ) $(TBB_ASM.OBJ)
# Suppress superfluous warnings for TBB compilation
WARNING_KEY += $(WARNING_SUPPRESS)
ifneq (,$(RML))
VPATH += $(tbb_root)/src/rml/client
TBB.OBJ += rml_tbb.$(OBJ) private_server.$(OBJ)
CPLUS_FLAGS += $(DEFINE_KEY)__TBB_RML=1 $(INCLUDE_KEY)$(tbb_root)/src/rml/include
endif
include $(tbb_root)/build/common_rules.inc
ifneq (,$(TBB.DEF))
tbb.def: $(TBB.DEF)
$(CMD) "$(CPLUS) $(PREPROC_ONLY) $(TBB.DEF) $(filter $(DEFINE_KEY)%,$(CPLUS_FLAGS)) >tbb.def 2>$(NUL) || exit 0"
$(CMD) "$(CPLUS) $(PREPROC_ONLY) $(TBB.DEF) $(INCLUDES) $(filter $(DEFINE_KEY)%,$(CPLUS_FLAGS)) >tbb.def 2>$(NUL) || exit 0"
LIB_LINK_FLAGS += $(EXPORT_KEY)tbb.def
$(TBB.DLL): tbb.def
......
......@@ -24,7 +24,7 @@
# invalidate any other reasons why the executable file might be covered by
# the GNU General Public License.
tbb_root ?= $(TBB21_INSTALL_DIR)
tbb_root ?= $(TBB22_INSTALL_DIR)
BUILDING_PHASE=1
include $(tbb_root)/build/common.inc
DEBUG_SUFFIX=$(findstring _debug,_$(cfg))
......@@ -39,7 +39,6 @@ VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/s
VPATH += $(MALLOC_ROOT) $(MALLOC_SOURCE_ROOT)
KNOWN_NOSTRICT = test_ScalableAllocator_STL.$(OBJ) test_malloc_compliance.$(OBJ) test_malloc_overload.$(OBJ)
KNOWN_WARNINGS =
CPLUS_FLAGS += $(if $(crosstest),$(DEFINE_KEY)__TBBMALLOC_NO_IMPLICIT_LINKAGE=1)
......@@ -50,20 +49,22 @@ include $(tbb_root)/build/common_rules.inc
#------------------------------------------------------
# Object files that make up TBBMalloc
MALLOC_CPLUS.OBJ = tbbmalloc.$(OBJ)
MALLOC_CPLUS.OBJ = tbbmalloc.$(OBJ) dynamic_link.$(OBJ)
MALLOC_CUSTOM.OBJ += tbb_misc_malloc.$(OBJ)
MALLOC_ASM.OBJ = $(TBB_ASM.OBJ)
# MALLOC_CPLUS.OBJ is built in two steps due to Intel Compiler Tracker # C69574
MALLOC.OBJ := $(MALLOC_CPLUS.OBJ) $(MALLOC_ASM.OBJ) $(MALLOC_CUSTOM.OBJ) MemoryAllocator.$(OBJ)
MALLOC.OBJ := $(MALLOC_CPLUS.OBJ) $(MALLOC_ASM.OBJ) $(MALLOC_CUSTOM.OBJ) MemoryAllocator.$(OBJ) itt_notify_proxy.$(OBJ)
MALLOC_CPLUS.OBJ += MemoryAllocator.$(OBJ)
PROXY.OBJ := proxy.$(OBJ)
PROXY.OBJ := proxy.$(OBJ) tbb_function_replacement.$(OBJ)
M_CPLUS_FLAGS := $(subst $(WARNING_KEY),,$(M_CPLUS_FLAGS)) $(DEFINE_KEY)__TBB_BUILD=1
M_INCLUDES = $(INCLUDES) $(INCLUDE_KEY)$(MALLOC_ROOT) $(INCLUDE_KEY)$(MALLOC_SOURCE_ROOT)
# Suppress superfluous warnings for TBBmalloc compilation
$(MALLOC.OBJ): M_CPLUS_FLAGS += $(WARNING_SUPPRESS)
itt_notify_proxy.$(OBJ): C_FLAGS += $(PIC_KEY)
$(PROXY.OBJ): %.$(OBJ): %.cpp
$(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(PIC_KEY) $(M_INCLUDES) $<
......@@ -98,8 +99,8 @@ endif
ifneq (,$(MALLOCPROXY.DLL))
$(MALLOCPROXY.DLL): BUILDING_LIBRARY = $(MALLOCPROXY.DLL)
$(MALLOCPROXY.DLL): $(PROXY.OBJ) $(MALLOCPROXY_NO_VERSION.DLL) $(MALLOC.DLL)