xref: /freebsd/contrib/llvm-project/openmp/runtime/src/kmp_version.h (revision 0b57cec536236d46e3dba9bd041533462f33dbb7)
1*0b57cec5SDimitry Andric /*
2*0b57cec5SDimitry Andric  * kmp_version.h -- version number for this release
3*0b57cec5SDimitry Andric  */
4*0b57cec5SDimitry Andric 
5*0b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
6*0b57cec5SDimitry Andric //
7*0b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
8*0b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
9*0b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
10*0b57cec5SDimitry Andric //
11*0b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
12*0b57cec5SDimitry Andric 
13*0b57cec5SDimitry Andric #ifndef KMP_VERSION_H
14*0b57cec5SDimitry Andric #define KMP_VERSION_H
15*0b57cec5SDimitry Andric 
16*0b57cec5SDimitry Andric #ifdef __cplusplus
17*0b57cec5SDimitry Andric extern "C" {
18*0b57cec5SDimitry Andric #endif // __cplusplus
19*0b57cec5SDimitry Andric 
20*0b57cec5SDimitry Andric #ifndef KMP_VERSION_MAJOR
21*0b57cec5SDimitry Andric #error KMP_VERSION_MAJOR macro is not defined.
22*0b57cec5SDimitry Andric #endif
23*0b57cec5SDimitry Andric #define KMP_VERSION_MINOR 0
24*0b57cec5SDimitry Andric /* Using "magic" prefix in all the version strings is rather convenient to get
25*0b57cec5SDimitry Andric    static version info from binaries by using standard utilities "strings" and
26*0b57cec5SDimitry Andric    "grep", e. g.:
27*0b57cec5SDimitry Andric         $ strings libomp.so | grep "@(#)"
28*0b57cec5SDimitry Andric    gives clean list of all version strings in the library. Leading zero helps
29*0b57cec5SDimitry Andric    to keep version string separate from printable characters which may occurs
30*0b57cec5SDimitry Andric    just before version string. */
31*0b57cec5SDimitry Andric #define KMP_VERSION_MAGIC_STR "\x00@(#) "
32*0b57cec5SDimitry Andric #define KMP_VERSION_MAGIC_LEN 6 // Length of KMP_VERSION_MAGIC_STR.
33*0b57cec5SDimitry Andric #define KMP_VERSION_PREF_STR "Intel(R) OMP "
34*0b57cec5SDimitry Andric #define KMP_VERSION_PREFIX KMP_VERSION_MAGIC_STR KMP_VERSION_PREF_STR
35*0b57cec5SDimitry Andric 
36*0b57cec5SDimitry Andric /* declare all the version string constants for KMP_VERSION env. variable */
37*0b57cec5SDimitry Andric extern int const __kmp_version_major;
38*0b57cec5SDimitry Andric extern int const __kmp_version_minor;
39*0b57cec5SDimitry Andric extern int const __kmp_version_build;
40*0b57cec5SDimitry Andric extern int const __kmp_openmp_version;
41*0b57cec5SDimitry Andric extern char const
42*0b57cec5SDimitry Andric     __kmp_copyright[]; // Old variable, kept for compatibility with ITC and ITP.
43*0b57cec5SDimitry Andric extern char const __kmp_version_copyright[];
44*0b57cec5SDimitry Andric extern char const __kmp_version_lib_ver[];
45*0b57cec5SDimitry Andric extern char const __kmp_version_lib_type[];
46*0b57cec5SDimitry Andric extern char const __kmp_version_link_type[];
47*0b57cec5SDimitry Andric extern char const __kmp_version_build_time[];
48*0b57cec5SDimitry Andric extern char const __kmp_version_target_env[];
49*0b57cec5SDimitry Andric extern char const __kmp_version_build_compiler[];
50*0b57cec5SDimitry Andric extern char const __kmp_version_alt_comp[];
51*0b57cec5SDimitry Andric extern char const __kmp_version_omp_api[];
52*0b57cec5SDimitry Andric // ??? extern char const __kmp_version_debug[];
53*0b57cec5SDimitry Andric extern char const __kmp_version_lock[];
54*0b57cec5SDimitry Andric extern char const __kmp_version_nested_stats_reporting[];
55*0b57cec5SDimitry Andric extern char const __kmp_version_ftnstdcall[];
56*0b57cec5SDimitry Andric extern char const __kmp_version_ftncdecl[];
57*0b57cec5SDimitry Andric extern char const __kmp_version_ftnextra[];
58*0b57cec5SDimitry Andric 
59*0b57cec5SDimitry Andric void __kmp_print_version_1(void);
60*0b57cec5SDimitry Andric void __kmp_print_version_2(void);
61*0b57cec5SDimitry Andric 
62*0b57cec5SDimitry Andric #ifdef __cplusplus
63*0b57cec5SDimitry Andric } // extern "C"
64*0b57cec5SDimitry Andric #endif // __cplusplus
65*0b57cec5SDimitry Andric 
66*0b57cec5SDimitry Andric #endif /* KMP_VERSION_H */
67