blob: 9e726b3805b23663806731892cb0d9a885869ff4 [file] [log] [blame]
Jim Cownie5e8470a2013-09-27 10:38:44 +00001/*
2 * kmp_version.h -- version number for this release
Jim Cownie5e8470a2013-09-27 10:38:44 +00003 */
4
Jim Cownie5e8470a2013-09-27 10:38:44 +00005//===----------------------------------------------------------------------===//
6//
Chandler Carruth57b08b02019-01-19 10:56:40 +00007// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
8// See https://llvm.org/LICENSE.txt for license information.
9// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
Jim Cownie5e8470a2013-09-27 10:38:44 +000010//
11//===----------------------------------------------------------------------===//
12
Jim Cownie5e8470a2013-09-27 10:38:44 +000013#ifndef KMP_VERSION_H
14#define KMP_VERSION_H
15
16#ifdef __cplusplus
Jonathan Peyton30419822017-05-12 18:01:32 +000017extern "C" {
Jim Cownie5e8470a2013-09-27 10:38:44 +000018#endif // __cplusplus
19
20#ifndef KMP_VERSION_MAJOR
Jonathan Peyton30419822017-05-12 18:01:32 +000021#error KMP_VERSION_MAJOR macro is not defined.
Jim Cownie5e8470a2013-09-27 10:38:44 +000022#endif
Jonathan Peyton30419822017-05-12 18:01:32 +000023#define KMP_VERSION_MINOR 0
24/* Using "magic" prefix in all the version strings is rather convenient to get
25 static version info from binaries by using standard utilities "strings" and
26 "grep", e. g.:
Jonathan Peyton66338292015-06-01 02:37:28 +000027 $ strings libomp.so | grep "@(#)"
Jonathan Peyton30419822017-05-12 18:01:32 +000028 gives clean list of all version strings in the library. Leading zero helps
29 to keep version string separate from printable characters which may occurs
30 just before version string. */
31#define KMP_VERSION_MAGIC_STR "\x00@(#) "
32#define KMP_VERSION_MAGIC_LEN 6 // Length of KMP_VERSION_MAGIC_STR.
33#define KMP_VERSION_PREF_STR "Intel(R) OMP "
34#define KMP_VERSION_PREFIX KMP_VERSION_MAGIC_STR KMP_VERSION_PREF_STR
Jim Cownie5e8470a2013-09-27 10:38:44 +000035
36/* declare all the version string constants for KMP_VERSION env. variable */
Jonathan Peyton30419822017-05-12 18:01:32 +000037extern int const __kmp_version_major;
38extern int const __kmp_version_minor;
39extern int const __kmp_version_build;
40extern int const __kmp_openmp_version;
41extern char const
42 __kmp_copyright[]; // Old variable, kept for compatibility with ITC and ITP.
Jim Cownie5e8470a2013-09-27 10:38:44 +000043extern char const __kmp_version_copyright[];
44extern char const __kmp_version_lib_ver[];
45extern char const __kmp_version_lib_type[];
46extern char const __kmp_version_link_type[];
47extern char const __kmp_version_build_time[];
48extern char const __kmp_version_target_env[];
49extern char const __kmp_version_build_compiler[];
50extern char const __kmp_version_alt_comp[];
51extern char const __kmp_version_omp_api[];
52// ??? extern char const __kmp_version_debug[];
53extern char const __kmp_version_lock[];
Jim Cownie5e8470a2013-09-27 10:38:44 +000054extern char const __kmp_version_nested_stats_reporting[];
55extern char const __kmp_version_ftnstdcall[];
56extern char const __kmp_version_ftncdecl[];
57extern char const __kmp_version_ftnextra[];
58
Jonathan Peyton30419822017-05-12 18:01:32 +000059void __kmp_print_version_1(void);
60void __kmp_print_version_2(void);
Jim Cownie5e8470a2013-09-27 10:38:44 +000061
62#ifdef __cplusplus
Jonathan Peyton30419822017-05-12 18:01:32 +000063} // extern "C"
Jim Cownie5e8470a2013-09-27 10:38:44 +000064#endif // __cplusplus
65
66#endif /* KMP_VERSION_H */