# Copyright 2005-2010 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.

# cache_aligned_allocator.cpp
__ZN3tbb8internal12NFS_AllocateEmmPv
__ZN3tbb8internal15NFS_GetLineSizeEv
__ZN3tbb8internal8NFS_FreeEPv
__ZN3tbb8internal23allocate_via_handler_v3Em
__ZN3tbb8internal25deallocate_via_handler_v3EPv
__ZN3tbb8internal17is_malloc_used_v3Ev

# task.cpp v3
__ZN3tbb4task13note_affinityEt
__ZN3tbb4task22internal_set_ref_countEi
__ZN3tbb4task28internal_decrement_ref_countEv
__ZN3tbb4task22spawn_and_wait_for_allERNS_9task_listE
__ZN3tbb4task4selfEv
__ZN3tbb10interface58internal9task_base7destroyERNS_4taskE
__ZNK3tbb4task26is_owned_by_current_threadEv
__ZN3tbb8internal19allocate_root_proxy4freeERNS_4taskE
__ZN3tbb8internal19allocate_root_proxy8allocateEm
__ZN3tbb8internal28affinity_partitioner_base_v36resizeEj
__ZN3tbb8internal36get_initial_auto_partitioner_divisorEv
__ZNK3tbb8internal20allocate_child_proxy4freeERNS_4taskE
__ZNK3tbb8internal20allocate_child_proxy8allocateEm
__ZNK3tbb8internal27allocate_continuation_proxy4freeERNS_4taskE
__ZNK3tbb8internal27allocate_continuation_proxy8allocateEm
__ZNK3tbb8internal34allocate_additional_child_of_proxy4freeERNS_4taskE
__ZNK3tbb8internal34allocate_additional_child_of_proxy8allocateEm
__ZTIN3tbb4taskE
__ZTSN3tbb4taskE
__ZTVN3tbb4taskE
__ZN3tbb19task_scheduler_init19default_num_threadsEv
__ZN3tbb19task_scheduler_init10initializeEim
__ZN3tbb19task_scheduler_init10initializeEi
__ZN3tbb19task_scheduler_init9terminateEv
__ZN3tbb8internal26task_scheduler_observer_v37observeEb
__ZN3tbb10empty_task7executeEv
__ZN3tbb10empty_taskD0Ev
__ZN3tbb10empty_taskD1Ev
__ZTIN3tbb10empty_taskE
__ZTSN3tbb10empty_taskE
__ZTVN3tbb10empty_taskE

#if !TBB_NO_LEGACY
# task_v2.cpp
__ZN3tbb4task7destroyERS0_
#endif

# Exception handling in task scheduler
__ZNK3tbb8internal32allocate_root_with_context_proxy8allocateEm
__ZNK3tbb8internal32allocate_root_with_context_proxy4freeERNS_4taskE
__ZNK3tbb18task_group_context28is_group_execution_cancelledEv
__ZN3tbb18task_group_context22cancel_group_executionEv
__ZN3tbb18task_group_context26register_pending_exceptionEv
__ZN3tbb18task_group_context5resetEv
__ZN3tbb18task_group_context4initEv
__ZN3tbb18task_group_contextD1Ev
__ZN3tbb18task_group_contextD2Ev
__ZNK3tbb18captured_exception4nameEv
__ZNK3tbb18captured_exception4whatEv
__ZN3tbb18captured_exception10throw_selfEv
__ZN3tbb18captured_exception3setEPKcS2_
__ZN3tbb18captured_exception4moveEv
__ZN3tbb18captured_exception5clearEv
__ZN3tbb18captured_exception7destroyEv
__ZN3tbb18captured_exception8allocateEPKcS2_
__ZN3tbb18captured_exceptionD0Ev
__ZN3tbb18captured_exceptionD1Ev
__ZTIN3tbb18captured_exceptionE
__ZTSN3tbb18captured_exceptionE
__ZTVN3tbb18captured_exceptionE
__ZTIN3tbb13tbb_exceptionE
__ZTSN3tbb13tbb_exceptionE
__ZTVN3tbb13tbb_exceptionE

# Symbols for exceptions thrown from TBB
__ZN3tbb8internal33throw_bad_last_alloc_exception_v4Ev
__ZN3tbb8internal18throw_exception_v4ENS0_12exception_idE
__ZNSt13runtime_errorD1Ev
__ZTISt13runtime_error
__ZTSSt13runtime_error
__ZNSt16invalid_argumentD1Ev
__ZTISt16invalid_argument
__ZTSSt16invalid_argument
__ZNSt11range_errorD1Ev
__ZTISt11range_error
__ZTSSt11range_error
__ZNSt12length_errorD1Ev
__ZTISt12length_error
__ZTSSt12length_error
__ZNSt12out_of_rangeD1Ev
__ZTISt12out_of_range
__ZTSSt12out_of_range
__ZN3tbb14bad_last_allocD0Ev
__ZN3tbb14bad_last_allocD1Ev
__ZNK3tbb14bad_last_alloc4whatEv
__ZTIN3tbb14bad_last_allocE
__ZTSN3tbb14bad_last_allocE
__ZTVN3tbb14bad_last_allocE
__ZN3tbb12missing_waitD0Ev
__ZN3tbb12missing_waitD1Ev
__ZNK3tbb12missing_wait4whatEv
__ZTIN3tbb12missing_waitE
__ZTSN3tbb12missing_waitE
__ZTVN3tbb12missing_waitE
__ZN3tbb27invalid_multiple_schedulingD0Ev
__ZN3tbb27invalid_multiple_schedulingD1Ev
__ZNK3tbb27invalid_multiple_scheduling4whatEv
__ZTIN3tbb27invalid_multiple_schedulingE
__ZTSN3tbb27invalid_multiple_schedulingE
__ZTVN3tbb27invalid_multiple_schedulingE
__ZN3tbb13improper_lockD0Ev
__ZN3tbb13improper_lockD1Ev
__ZNK3tbb13improper_lock4whatEv
__ZTIN3tbb13improper_lockE
__ZTSN3tbb13improper_lockE
__ZTVN3tbb13improper_lockE

# tbb_misc.cpp
__ZN3tbb17assertion_failureEPKciS1_S1_
__ZN3tbb21set_assertion_handlerEPFvPKciS1_S1_E
__ZN3tbb8internal13handle_perrorEiPKc
__ZN3tbb8internal15runtime_warningEPKcz
_TBB_runtime_interface_version

# itt_notify.cpp
__ZN3tbb8internal32itt_load_pointer_with_acquire_v3EPKv
__ZN3tbb8internal33itt_store_pointer_with_release_v3EPvS1_
__ZN3tbb8internal19itt_load_pointer_v3EPKv
__ZN3tbb8internal20itt_set_sync_name_v3EPvPKc

# pipeline.cpp
__ZTIN3tbb6filterE
__ZTSN3tbb6filterE
__ZTVN3tbb6filterE
__ZN3tbb6filterD2Ev
__ZN3tbb8pipeline10add_filterERNS_6filterE
__ZN3tbb8pipeline12inject_tokenERNS_4taskE
__ZN3tbb8pipeline13remove_filterERNS_6filterE
__ZN3tbb8pipeline3runEm
__ZN3tbb8pipeline3runEmRNS_18task_group_contextE
__ZN3tbb8pipeline5clearEv
__ZN3tbb19thread_bound_filter12process_itemEv
__ZN3tbb19thread_bound_filter16try_process_itemEv
__ZN3tbb8pipelineC1Ev
__ZN3tbb8pipelineC2Ev
__ZN3tbb8pipelineD0Ev
__ZN3tbb8pipelineD1Ev
__ZN3tbb8pipelineD2Ev
__ZTIN3tbb8pipelineE
__ZTSN3tbb8pipelineE
__ZTVN3tbb8pipelineE

# queuing_rw_mutex.cpp
__ZN3tbb16queuing_rw_mutex11scoped_lock17upgrade_to_writerEv
__ZN3tbb16queuing_rw_mutex11scoped_lock19downgrade_to_readerEv
__ZN3tbb16queuing_rw_mutex11scoped_lock7acquireERS0_b
__ZN3tbb16queuing_rw_mutex11scoped_lock7releaseEv
__ZN3tbb16queuing_rw_mutex11scoped_lock11try_acquireERS0_b
__ZN3tbb16queuing_rw_mutex18internal_constructEv

# reader_writer_lock.cpp
__ZN3tbb10interface518reader_writer_lock11scoped_lock16internal_destroyEv
__ZN3tbb10interface518reader_writer_lock11scoped_lock18internal_constructERS1_
__ZN3tbb10interface518reader_writer_lock13try_lock_readEv
__ZN3tbb10interface518reader_writer_lock16scoped_lock_read16internal_destroyEv
__ZN3tbb10interface518reader_writer_lock16scoped_lock_read18internal_constructERS1_
__ZN3tbb10interface518reader_writer_lock16internal_destroyEv
__ZN3tbb10interface518reader_writer_lock18internal_constructEv
__ZN3tbb10interface518reader_writer_lock4lockEv
__ZN3tbb10interface518reader_writer_lock6unlockEv
__ZN3tbb10interface518reader_writer_lock8try_lockEv
__ZN3tbb10interface518reader_writer_lock9lock_readEv

#if !TBB_NO_LEGACY
# spin_rw_mutex.cpp v2
__ZN3tbb13spin_rw_mutex16internal_upgradeEPS0_
__ZN3tbb13spin_rw_mutex22internal_itt_releasingEPS0_
__ZN3tbb13spin_rw_mutex23internal_acquire_readerEPS0_
__ZN3tbb13spin_rw_mutex23internal_acquire_writerEPS0_
__ZN3tbb13spin_rw_mutex18internal_downgradeEPS0_
__ZN3tbb13spin_rw_mutex23internal_release_readerEPS0_
__ZN3tbb13spin_rw_mutex23internal_release_writerEPS0_
__ZN3tbb13spin_rw_mutex27internal_try_acquire_readerEPS0_
__ZN3tbb13spin_rw_mutex27internal_try_acquire_writerEPS0_
#endif

# spin_rw_mutex v3
__ZN3tbb16spin_rw_mutex_v316internal_upgradeEv
__ZN3tbb16spin_rw_mutex_v318internal_downgradeEv
__ZN3tbb16spin_rw_mutex_v323internal_acquire_readerEv
__ZN3tbb16spin_rw_mutex_v323internal_acquire_writerEv
__ZN3tbb16spin_rw_mutex_v323internal_release_readerEv
__ZN3tbb16spin_rw_mutex_v323internal_release_writerEv
__ZN3tbb16spin_rw_mutex_v327internal_try_acquire_readerEv
__ZN3tbb16spin_rw_mutex_v327internal_try_acquire_writerEv
__ZN3tbb16spin_rw_mutex_v318internal_constructEv

# spin_mutex.cpp
__ZN3tbb10spin_mutex11scoped_lock16internal_acquireERS0_
__ZN3tbb10spin_mutex11scoped_lock16internal_releaseEv
__ZN3tbb10spin_mutex11scoped_lock20internal_try_acquireERS0_
__ZN3tbb10spin_mutex18internal_constructEv

# mutex.cpp
__ZN3tbb5mutex11scoped_lock16internal_acquireERS0_
__ZN3tbb5mutex11scoped_lock16internal_releaseEv
__ZN3tbb5mutex11scoped_lock20internal_try_acquireERS0_
__ZN3tbb5mutex16internal_destroyEv
__ZN3tbb5mutex18internal_constructEv

# recursive_mutex.cpp
__ZN3tbb15recursive_mutex11scoped_lock16internal_acquireERS0_
__ZN3tbb15recursive_mutex11scoped_lock16internal_releaseEv
__ZN3tbb15recursive_mutex11scoped_lock20internal_try_acquireERS0_
__ZN3tbb15recursive_mutex16internal_destroyEv
__ZN3tbb15recursive_mutex18internal_constructEv

# queuing_mutex.cpp
__ZN3tbb13queuing_mutex11scoped_lock7acquireERS0_
__ZN3tbb13queuing_mutex11scoped_lock7releaseEv
__ZN3tbb13queuing_mutex11scoped_lock11try_acquireERS0_
__ZN3tbb13queuing_mutex18internal_constructEv

# critical_section.cpp
__ZN3tbb8internal19critical_section_v418internal_constructEv

#if !TBB_NO_LEGACY
# concurrent_hash_map
__ZNK3tbb8internal21hash_map_segment_base23internal_grow_predicateEv

# concurrent_queue.cpp v2
__ZN3tbb8internal21concurrent_queue_base12internal_popEPv
__ZN3tbb8internal21concurrent_queue_base13internal_pushEPKv
__ZN3tbb8internal21concurrent_queue_base21internal_set_capacityElm
__ZN3tbb8internal21concurrent_queue_base23internal_pop_if_presentEPv
__ZN3tbb8internal21concurrent_queue_base25internal_push_if_not_fullEPKv
__ZN3tbb8internal21concurrent_queue_baseC2Em
__ZN3tbb8internal21concurrent_queue_baseD2Ev
__ZTIN3tbb8internal21concurrent_queue_baseE
__ZTSN3tbb8internal21concurrent_queue_baseE
__ZTVN3tbb8internal21concurrent_queue_baseE
__ZN3tbb8internal30concurrent_queue_iterator_base6assignERKS1_
__ZN3tbb8internal30concurrent_queue_iterator_base7advanceEv
__ZN3tbb8internal30concurrent_queue_iterator_baseC2ERKNS0_21concurrent_queue_baseE
__ZN3tbb8internal30concurrent_queue_iterator_baseD2Ev
__ZNK3tbb8internal21concurrent_queue_base13internal_sizeEv
#endif

# concurrent_queue v3
# constructors
__ZN3tbb8internal33concurrent_queue_iterator_base_v3C2ERKNS0_24concurrent_queue_base_v3E
__ZN3tbb8internal33concurrent_queue_iterator_base_v3C2ERKNS0_24concurrent_queue_base_v3Em
__ZN3tbb8internal24concurrent_queue_base_v3C2Em
# destructors
__ZN3tbb8internal33concurrent_queue_iterator_base_v3D2Ev
__ZN3tbb8internal24concurrent_queue_base_v3D2Ev
# typeinfo
__ZTIN3tbb8internal24concurrent_queue_base_v3E
__ZTSN3tbb8internal24concurrent_queue_base_v3E
#vtable
__ZTVN3tbb8internal24concurrent_queue_base_v3E
# methods
__ZN3tbb8internal33concurrent_queue_iterator_base_v36assignERKS1_
__ZN3tbb8internal33concurrent_queue_iterator_base_v37advanceEv
__ZN3tbb8internal24concurrent_queue_base_v313internal_pushEPKv
__ZN3tbb8internal24concurrent_queue_base_v325internal_push_if_not_fullEPKv
__ZN3tbb8internal24concurrent_queue_base_v312internal_popEPv
__ZN3tbb8internal24concurrent_queue_base_v323internal_pop_if_presentEPv
__ZN3tbb8internal24concurrent_queue_base_v321internal_finish_clearEv
__ZN3tbb8internal24concurrent_queue_base_v321internal_set_capacityElm
__ZNK3tbb8internal24concurrent_queue_base_v313internal_sizeEv
__ZNK3tbb8internal24concurrent_queue_base_v314internal_emptyEv
__ZNK3tbb8internal24concurrent_queue_base_v324internal_throw_exceptionEv
__ZN3tbb8internal24concurrent_queue_base_v36assignERKS1_

#if !TBB_NO_LEGACY
# concurrent_vector.cpp v2
__ZN3tbb8internal22concurrent_vector_base13internal_copyERKS1_mPFvPvPKvmE
__ZN3tbb8internal22concurrent_vector_base14internal_clearEPFvPvmEb
__ZN3tbb8internal22concurrent_vector_base15internal_assignERKS1_mPFvPvmEPFvS4_PKvmESA_
__ZN3tbb8internal22concurrent_vector_base16internal_grow_byEmmPFvPvmE
__ZN3tbb8internal22concurrent_vector_base16internal_reserveEmmm
__ZN3tbb8internal22concurrent_vector_base18internal_push_backEmRm
__ZN3tbb8internal22concurrent_vector_base25internal_grow_to_at_leastEmmPFvPvmE
__ZNK3tbb8internal22concurrent_vector_base17internal_capacityEv
#endif

# concurrent_vector v3
__ZN3tbb8internal25concurrent_vector_base_v313internal_copyERKS1_mPFvPvPKvmE
__ZN3tbb8internal25concurrent_vector_base_v314internal_clearEPFvPvmE
__ZN3tbb8internal25concurrent_vector_base_v315internal_assignERKS1_mPFvPvmEPFvS4_PKvmESA_
__ZN3tbb8internal25concurrent_vector_base_v316internal_grow_byEmmPFvPvPKvmES4_
__ZN3tbb8internal25concurrent_vector_base_v316internal_reserveEmmm
__ZN3tbb8internal25concurrent_vector_base_v318internal_push_backEmRm
__ZN3tbb8internal25concurrent_vector_base_v325internal_grow_to_at_leastEmmPFvPvPKvmES4_
__ZNK3tbb8internal25concurrent_vector_base_v317internal_capacityEv
__ZN3tbb8internal25concurrent_vector_base_v316internal_compactEmPvPFvS2_mEPFvS2_PKvmE
__ZN3tbb8internal25concurrent_vector_base_v313internal_swapERS1_
__ZNK3tbb8internal25concurrent_vector_base_v324internal_throw_exceptionEm
__ZN3tbb8internal25concurrent_vector_base_v3D2Ev
__ZN3tbb8internal25concurrent_vector_base_v315internal_resizeEmmmPKvPFvPvmEPFvS4_S3_mE
__ZN3tbb8internal25concurrent_vector_base_v337internal_grow_to_at_least_with_resultEmmPFvPvPKvmES4_

# tbb_thread
__ZN3tbb8internal13tbb_thread_v320hardware_concurrencyEv
__ZN3tbb8internal13tbb_thread_v36detachEv
__ZN3tbb8internal16thread_get_id_v3Ev
__ZN3tbb8internal15free_closure_v3EPv
__ZN3tbb8internal13tbb_thread_v34joinEv
__ZN3tbb8internal13tbb_thread_v314internal_startEPFPvS2_ES2_
__ZN3tbb8internal19allocate_closure_v3Em
__ZN3tbb8internal7move_v3ERNS0_13tbb_thread_v3ES2_
__ZN3tbb8internal15thread_yield_v3Ev
__ZN3tbb8internal15thread_sleep_v3ERKNS_10tick_count10interval_tE
