# exports_so.txt #

# <copyright>
#    Copyright (c) 2013 Intel Corporation.  All Rights Reserved.
#
#    Redistribution and use in source and binary forms, with or without
#    modification, are permitted provided that the following conditions
#    are met:
#
#      * Redistributions of source code must retain the above copyright
#        notice, this list of conditions and the following disclaimer.
#      * Redistributions in binary form must reproduce the above copyright
#        notice, this list of conditions and the following disclaimer in the
#        documentation and/or other materials provided with the distribution.
#      * Neither the name of Intel Corporation nor the names of its
#        contributors may be used to endorse or promote products derived
#        from this software without specific prior written permission.
#
#    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
#    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
#    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
#    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
#    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
#    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
#    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
#    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
#    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
#    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# </copyright>

# This is version script for OMP RTL shared library (libiomp5*.so)

VERSION {

    global: # Exported symbols.

        #
        # "Normal" symbols.
        #
        omp_*;     # Standard OpenMP functions.
        ompc_*;    # omp.h renames some standard functions to ompc_*.
        kmp_*;     # Intel extensions.
        kmpc_*;    # Intel extensions.
        __kmpc_*;  # Functions called by compiler-generated code.
        GOMP_*;    # GNU C compatibility functions.

        _You_must_link_with_*;     # Mutual detection/MS compatibility symbols.



        #
        # Internal functions exported for testing purposes.
        #
        __kmp_get_reduce_method;
        ___kmp_allocate;
        ___kmp_free;
        __kmp_thread_pool;
        __kmp_thread_pool_nth;

#if USE_ITT_BUILD
        #
        # ITT support.
        #
        # The following entry points are added so that the backtraces from
        # the tools contain meaningful names for all the functions that might
        # appear in a backtrace of a thread which is blocked in the RTL.
        __kmp_acquire_drdpa_lock;
        __kmp_acquire_nested_drdpa_lock;
        __kmp_acquire_nested_queuing_lock;
        __kmp_acquire_nested_tas_lock;
        __kmp_acquire_nested_ticket_lock;
        __kmp_acquire_queuing_lock;
        __kmp_acquire_tas_lock;
        __kmp_acquire_ticket_lock;
        __kmp_fork_call;
        __kmp_get_reduce_method;
        __kmp_invoke_microtask;
        __kmp_itt_fini_ittlib;
        __kmp_itt_init_ittlib;
        __kmp_launch_monitor;
        __kmp_launch_worker;
        __kmp_reap_monitor;
        __kmp_reap_worker;
        __kmp_release;
        __kmp_wait_sleep;
        __kmp_wait_yield_4;
        __kmp_wait_yield_8;

        # ittnotify symbols to be used by debugger
        __kmp_itt_fini_ittlib;
        __kmp_itt_init_ittlib;
#endif /* USE_ITT_BUILD */

    local: # Non-exported symbols.

        *;         # All other symbols are not exported.

}; # VERSION

# sets up GCC OMP_ version dependency chain
OMP_1.0 {
};
OMP_2.0 {
} OMP_1.0;
OMP_3.0 {
} OMP_2.0;
OMP_3.1 {
} OMP_3.0;
OMP_4.0 {
} OMP_3.1;

# sets up GCC GOMP_ version dependency chain
GOMP_1.0 {
};
GOMP_2.0 {
} GOMP_1.0;
GOMP_3.0 {
} GOMP_2.0;
GOMP_4.0 {
} GOMP_3.0;

# end of file #
