Update build glue for building libomp.

This commit is contained in:
dim 2019-09-01 18:25:45 +00:00
parent 509a226829
commit 9e3905e2da
6 changed files with 151 additions and 51 deletions

View File

@ -32,7 +32,6 @@ SRCS+= kmp_settings.cpp
SRCS+= kmp_str.cpp SRCS+= kmp_str.cpp
SRCS+= kmp_taskdeps.cpp SRCS+= kmp_taskdeps.cpp
SRCS+= kmp_tasking.cpp SRCS+= kmp_tasking.cpp
SRCS+= kmp_taskq.cpp
SRCS+= kmp_threadprivate.cpp SRCS+= kmp_threadprivate.cpp
SRCS+= kmp_utility.cpp SRCS+= kmp_utility.cpp
SRCS+= kmp_version.cpp SRCS+= kmp_version.cpp

View File

@ -4,10 +4,9 @@
*/ */
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// //
// The LLVM Compiler Infrastructure // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// // See https://llvm.org/LICENSE.txt for license information.
// This file is dual licensed under the MIT and the University of Illinois Open // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// Source Licenses. See LICENSE.txt for details.
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
#ifndef KMP_CONFIG_H #ifndef KMP_CONFIG_H
@ -66,11 +65,6 @@
#define KMP_LIBRARY_FILE "libomp.so" #define KMP_LIBRARY_FILE "libomp.so"
#define KMP_VERSION_MAJOR 5 #define KMP_VERSION_MAJOR 5
#define KMP_VERSION_MINOR 0 #define KMP_VERSION_MINOR 0
#define LIBOMP_OMP_VERSION 50
#define OMP_50_ENABLED (LIBOMP_OMP_VERSION >= 50)
#define OMP_45_ENABLED (LIBOMP_OMP_VERSION >= 45)
#define OMP_40_ENABLED (LIBOMP_OMP_VERSION >= 40)
#define OMP_30_ENABLED (LIBOMP_OMP_VERSION >= 30)
#define LIBOMP_TSAN_SUPPORT 0 #define LIBOMP_TSAN_SUPPORT 0
#if LIBOMP_TSAN_SUPPORT #if LIBOMP_TSAN_SUPPORT
#define TSAN_SUPPORT #define TSAN_SUPPORT

View File

@ -1,6 +1,6 @@
// $FreeBSD$ // $FreeBSD$
// Do not edit this file! // // Do not edit this file! //
// The file was generated from en_US.txt by message-converter.pl on Thu Mar 14 22:26:24 2019. // // The file was generated from en_US.txt by message-converter.pl on Fri Aug 23 08:40:57 2019. //
static char const * static char const *
__kmp_i18n_default_meta[] = __kmp_i18n_default_meta[] =
@ -362,6 +362,7 @@ __kmp_i18n_default_messages[] =
"KMP_HW_SUBSET ignored: too many Procs requested.", "KMP_HW_SUBSET ignored: too many Procs requested.",
"Hierarchy ignored: unsupported level: %1$s.", "Hierarchy ignored: unsupported level: %1$s.",
"OMP: pid %1$s tid %2$s thread %3$s bound to OS proc set {%4$s}", "OMP: pid %1$s tid %2$s thread %3$s bound to OS proc set {%4$s}",
"%1$s routine deprecated, please use %2$s instead.",
NULL NULL
}; };
@ -412,7 +413,7 @@ __kmp_i18n_sections[] =
{ 5, __kmp_i18n_default_meta }, { 5, __kmp_i18n_default_meta },
{ 55, __kmp_i18n_default_strings }, { 55, __kmp_i18n_default_strings },
{ 6, __kmp_i18n_default_formats }, { 6, __kmp_i18n_default_formats },
{ 269, __kmp_i18n_default_messages }, { 270, __kmp_i18n_default_messages },
{ 27, __kmp_i18n_default_hints }, { 27, __kmp_i18n_default_hints },
{ 0, NULL } { 0, NULL }
}; };

View File

@ -1,6 +1,6 @@
// $FreeBSD$ // $FreeBSD$
// Do not edit this file! // // Do not edit this file! //
// The file was generated from en_US.txt by message-converter.pl on Thu Mar 14 22:26:24 2019. // // The file was generated from en_US.txt by message-converter.pl on Fri Aug 23 08:40:57 2019. //
enum kmp_i18n_id { enum kmp_i18n_id {
@ -356,6 +356,7 @@ enum kmp_i18n_id {
kmp_i18n_msg_AffHWSubsetManyProcs, kmp_i18n_msg_AffHWSubsetManyProcs,
kmp_i18n_msg_HierSchedInvalid, kmp_i18n_msg_HierSchedInvalid,
kmp_i18n_msg_AffFormatDefault, kmp_i18n_msg_AffFormatDefault,
kmp_i18n_msg_APIDeprecated,
kmp_i18n_msg_last, kmp_i18n_msg_last,
// Set #5, hints. // Set #5, hints.

View File

@ -1,14 +1,13 @@
// $FreeBSD$ // $FreeBSD$
/* /*
* include/50/omp-tools.h.var * include/omp-tools.h.var
*/ */
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// //
// The LLVM Compiler Infrastructure // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// // See https://llvm.org/LICENSE.txt for license information.
// This file is dual licensed under the MIT and the University of Illinois Open // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// Source Licenses. See LICENSE.txt for details.
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
@ -373,7 +372,7 @@ typedef enum ompt_frame_flag_t {
ompt_frame_cfa = 0x10, ompt_frame_cfa = 0x10,
ompt_frame_framepointer = 0x20, ompt_frame_framepointer = 0x20,
ompt_frame_stackaddress = 0x30 ompt_frame_stackaddress = 0x30
} ompt_frame_flag_t; } ompt_frame_flag_t;
typedef enum ompt_state_t { typedef enum ompt_state_t {
ompt_state_work_serial = 0x000, ompt_state_work_serial = 0x000,
@ -722,14 +721,14 @@ typedef void (*ompt_callback_dispatch_t) (
ompt_data_t *parallel_data, ompt_data_t *parallel_data,
ompt_data_t *task_data, ompt_data_t *task_data,
ompt_dispatch_t kind, ompt_dispatch_t kind,
ompt_data_t instance ompt_data_t instance
); );
typedef struct ompt_record_dispatch_t { typedef struct ompt_record_dispatch_t {
ompt_id_t parallel_id; ompt_id_t parallel_id;
ompt_id_t task_id; ompt_id_t task_id;
ompt_dispatch_t kind; ompt_dispatch_t kind;
ompt_data_t instance; ompt_data_t instance;
} ompt_record_dispatch_t; } ompt_record_dispatch_t;
typedef void (*ompt_callback_task_create_t) ( typedef void (*ompt_callback_task_create_t) (

View File

@ -1,15 +1,14 @@
// $FreeBSD$ // $FreeBSD$
/* /*
* include/50/omp.h.var * include/omp.h.var
*/ */
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// //
// The LLVM Compiler Infrastructure // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// // See https://llvm.org/LICENSE.txt for license information.
// This file is dual licensed under the MIT and the University of Illinois Open // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// Source Licenses. See LICENSE.txt for details.
// //
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
@ -17,6 +16,9 @@
#ifndef __OMP_H #ifndef __OMP_H
# define __OMP_H # define __OMP_H
# include <stdlib.h>
# include <stdint.h>
# define KMP_VERSION_MAJOR 5 # define KMP_VERSION_MAJOR 5
# define KMP_VERSION_MINOR 0 # define KMP_VERSION_MINOR 0
# define KMP_VERSION_BUILD 20140926 # define KMP_VERSION_BUILD 20140926
@ -45,10 +47,11 @@
/* schedule kind constants */ /* schedule kind constants */
typedef enum omp_sched_t { typedef enum omp_sched_t {
omp_sched_static = 1, omp_sched_static = 1,
omp_sched_dynamic = 2, omp_sched_dynamic = 2,
omp_sched_guided = 3, omp_sched_guided = 3,
omp_sched_auto = 4 omp_sched_auto = 4,
omp_sched_monotonic = 0x80000000
} omp_sched_t; } omp_sched_t;
/* set API functions */ /* set API functions */
@ -135,7 +138,6 @@
extern int __KAI_KMPC_CONVENTION omp_get_team_num (void); extern int __KAI_KMPC_CONVENTION omp_get_team_num (void);
extern int __KAI_KMPC_CONVENTION omp_get_cancellation (void); extern int __KAI_KMPC_CONVENTION omp_get_cancellation (void);
# include <stdlib.h>
/* OpenMP 4.5 */ /* OpenMP 4.5 */
extern int __KAI_KMPC_CONVENTION omp_get_initial_device (void); extern int __KAI_KMPC_CONVENTION omp_get_initial_device (void);
extern void* __KAI_KMPC_CONVENTION omp_target_alloc(size_t, int); extern void* __KAI_KMPC_CONVENTION omp_target_alloc(size_t, int);
@ -149,6 +151,7 @@
/* OpenMP 5.0 */ /* OpenMP 5.0 */
extern int __KAI_KMPC_CONVENTION omp_get_device_num (void); extern int __KAI_KMPC_CONVENTION omp_get_device_num (void);
typedef void * omp_depend_t;
/* kmp API functions */ /* kmp API functions */
extern int __KAI_KMPC_CONVENTION kmp_get_stacksize (void); extern int __KAI_KMPC_CONVENTION kmp_get_stacksize (void);
@ -219,30 +222,113 @@
omp_control_tool_flush = 3, omp_control_tool_flush = 3,
omp_control_tool_end = 4 omp_control_tool_end = 4
} omp_control_tool_t; } omp_control_tool_t;
extern int __KAI_KMPC_CONVENTION omp_control_tool(int, int, void*); extern int __KAI_KMPC_CONVENTION omp_control_tool(int, int, void*);
/* OpenMP 5.0 Memory Management */ /* OpenMP 5.0 Memory Management */
typedef void *omp_allocator_t; typedef uintptr_t omp_uintptr_t;
extern __KMP_IMP const omp_allocator_t *OMP_NULL_ALLOCATOR;
extern __KMP_IMP const omp_allocator_t *omp_default_mem_alloc;
extern __KMP_IMP const omp_allocator_t *omp_large_cap_mem_alloc;
extern __KMP_IMP const omp_allocator_t *omp_const_mem_alloc;
extern __KMP_IMP const omp_allocator_t *omp_high_bw_mem_alloc;
extern __KMP_IMP const omp_allocator_t *omp_low_lat_mem_alloc;
extern __KMP_IMP const omp_allocator_t *omp_cgroup_mem_alloc;
extern __KMP_IMP const omp_allocator_t *omp_pteam_mem_alloc;
extern __KMP_IMP const omp_allocator_t *omp_thread_mem_alloc;
extern void __KAI_KMPC_CONVENTION omp_set_default_allocator(const omp_allocator_t *); typedef enum {
extern const omp_allocator_t * __KAI_KMPC_CONVENTION omp_get_default_allocator(void); OMP_ATK_THREADMODEL = 1,
#ifdef __cplusplus OMP_ATK_ALIGNMENT = 2,
extern void *__KAI_KMPC_CONVENTION omp_alloc(size_t size, const omp_allocator_t *allocator = OMP_NULL_ALLOCATOR); OMP_ATK_ACCESS = 3,
extern void __KAI_KMPC_CONVENTION omp_free(void * ptr, const omp_allocator_t *allocator = OMP_NULL_ALLOCATOR); OMP_ATK_POOL_SIZE = 4,
#else OMP_ATK_FALLBACK = 5,
extern void *__KAI_KMPC_CONVENTION omp_alloc(size_t size, const omp_allocator_t *allocator); OMP_ATK_FB_DATA = 6,
extern void __KAI_KMPC_CONVENTION omp_free(void *ptr, const omp_allocator_t *allocator); OMP_ATK_PINNED = 7,
#endif OMP_ATK_PARTITION = 8
} omp_alloctrait_key_t;
typedef enum {
OMP_ATV_FALSE = 0,
OMP_ATV_TRUE = 1,
OMP_ATV_DEFAULT = 2,
OMP_ATV_CONTENDED = 3,
OMP_ATV_UNCONTENDED = 4,
OMP_ATV_SEQUENTIAL = 5,
OMP_ATV_PRIVATE = 6,
OMP_ATV_ALL = 7,
OMP_ATV_THREAD = 8,
OMP_ATV_PTEAM = 9,
OMP_ATV_CGROUP = 10,
OMP_ATV_DEFAULT_MEM_FB = 11,
OMP_ATV_NULL_FB = 12,
OMP_ATV_ABORT_FB = 13,
OMP_ATV_ALLOCATOR_FB = 14,
OMP_ATV_ENVIRONMENT = 15,
OMP_ATV_NEAREST = 16,
OMP_ATV_BLOCKED = 17,
OMP_ATV_INTERLEAVED = 18
} omp_alloctrait_value_t;
typedef struct {
omp_alloctrait_key_t key;
omp_uintptr_t value;
} omp_alloctrait_t;
# if defined(_WIN32)
// On Windows cl and icl do not support 64-bit enum, let's use integer then.
typedef omp_uintptr_t omp_allocator_handle_t;
extern __KMP_IMP omp_allocator_handle_t const omp_null_allocator;
extern __KMP_IMP omp_allocator_handle_t const omp_default_mem_alloc;
extern __KMP_IMP omp_allocator_handle_t const omp_large_cap_mem_alloc;
extern __KMP_IMP omp_allocator_handle_t const omp_const_mem_alloc;
extern __KMP_IMP omp_allocator_handle_t const omp_high_bw_mem_alloc;
extern __KMP_IMP omp_allocator_handle_t const omp_low_lat_mem_alloc;
extern __KMP_IMP omp_allocator_handle_t const omp_cgroup_mem_alloc;
extern __KMP_IMP omp_allocator_handle_t const omp_pteam_mem_alloc;
extern __KMP_IMP omp_allocator_handle_t const omp_thread_mem_alloc;
typedef omp_uintptr_t omp_memspace_handle_t;
extern __KMP_IMP omp_memspace_handle_t const omp_default_mem_space;
extern __KMP_IMP omp_memspace_handle_t const omp_large_cap_mem_space;
extern __KMP_IMP omp_memspace_handle_t const omp_const_mem_space;
extern __KMP_IMP omp_memspace_handle_t const omp_high_bw_mem_space;
extern __KMP_IMP omp_memspace_handle_t const omp_low_lat_mem_space;
# else
# if __cplusplus >= 201103
typedef enum omp_allocator_handle_t : omp_uintptr_t
# else
typedef enum omp_allocator_handle_t
# endif
{
omp_null_allocator = 0,
omp_default_mem_alloc = 1,
omp_large_cap_mem_alloc = 2,
omp_const_mem_alloc = 3,
omp_high_bw_mem_alloc = 4,
omp_low_lat_mem_alloc = 5,
omp_cgroup_mem_alloc = 6,
omp_pteam_mem_alloc = 7,
omp_thread_mem_alloc = 8,
KMP_ALLOCATOR_MAX_HANDLE = UINTPTR_MAX
} omp_allocator_handle_t;
# if __cplusplus >= 201103
typedef enum omp_memspace_handle_t : omp_uintptr_t
# else
typedef enum omp_memspace_handle_t
# endif
{
omp_default_mem_space = 0,
omp_large_cap_mem_space = 1,
omp_const_mem_space = 2,
omp_high_bw_mem_space = 3,
omp_low_lat_mem_space = 4,
KMP_MEMSPACE_MAX_HANDLE = UINTPTR_MAX
} omp_memspace_handle_t;
# endif
extern omp_allocator_handle_t __KAI_KMPC_CONVENTION omp_init_allocator(omp_memspace_handle_t m,
int ntraits, omp_alloctrait_t traits[]);
extern void __KAI_KMPC_CONVENTION omp_destroy_allocator(omp_allocator_handle_t allocator);
extern void __KAI_KMPC_CONVENTION omp_set_default_allocator(omp_allocator_handle_t a);
extern omp_allocator_handle_t __KAI_KMPC_CONVENTION omp_get_default_allocator(void);
# ifdef __cplusplus
extern void *__KAI_KMPC_CONVENTION omp_alloc(size_t size, omp_allocator_handle_t a = omp_null_allocator);
extern void __KAI_KMPC_CONVENTION omp_free(void * ptr, omp_allocator_handle_t a = omp_null_allocator);
# else
extern void *__KAI_KMPC_CONVENTION omp_alloc(size_t size, omp_allocator_handle_t a);
extern void __KAI_KMPC_CONVENTION omp_free(void *ptr, omp_allocator_handle_t a);
# endif
/* OpenMP 5.0 Affinity Format */ /* OpenMP 5.0 Affinity Format */
extern void __KAI_KMPC_CONVENTION omp_set_affinity_format(char const *); extern void __KAI_KMPC_CONVENTION omp_set_affinity_format(char const *);
@ -250,6 +336,26 @@
extern void __KAI_KMPC_CONVENTION omp_display_affinity(char const *); extern void __KAI_KMPC_CONVENTION omp_display_affinity(char const *);
extern size_t __KAI_KMPC_CONVENTION omp_capture_affinity(char *, size_t, char const *); extern size_t __KAI_KMPC_CONVENTION omp_capture_affinity(char *, size_t, char const *);
/* OpenMP 5.0 events */
# if defined(_WIN32)
// On Windows cl and icl do not support 64-bit enum, let's use integer then.
typedef omp_uintptr_t omp_event_handle_t;
# else
typedef enum omp_event_handle_t { KMP_EVENT_MAX_HANDLE = UINTPTR_MAX } omp_event_handle_t;
# endif
extern void __KAI_KMPC_CONVENTION omp_fulfill_event ( omp_event_handle_t event );
/* OpenMP 5.0 Pause Resources */
typedef enum omp_pause_resource_t {
omp_pause_resume = 0,
omp_pause_soft = 1,
omp_pause_hard = 2
} omp_pause_resource_t;
extern int __KAI_KMPC_CONVENTION omp_pause_resource(omp_pause_resource_t, int);
extern int __KAI_KMPC_CONVENTION omp_pause_resource_all(omp_pause_resource_t);
extern int __KAI_KMPC_CONVENTION omp_get_supported_active_levels(void);
# undef __KAI_KMPC_CONVENTION # undef __KAI_KMPC_CONVENTION
# undef __KMP_IMP # undef __KMP_IMP