OMP_1.0 {
  global:
	omp_set_num_threads;
	omp_get_num_threads;
	omp_get_max_threads;
	omp_get_thread_num;
	omp_get_num_procs;
	omp_in_parallel;
	omp_set_dynamic;
	omp_get_dynamic;
	omp_set_nested;
	omp_get_nested;
#ifdef HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT
        # If the assembler used lacks the .symver directive or the linker
	# doesn't support GNU symbol versioning, we have the same symbol in
	# two versions, which Sun ld chokes on. 
	omp_init_lock;
	omp_init_nest_lock;
	omp_destroy_lock;
	omp_destroy_nest_lock;
	omp_set_lock;
	omp_set_nest_lock;
	omp_unset_lock;
	omp_unset_nest_lock;
	omp_test_lock;
	omp_test_nest_lock;
	omp_destroy_lock_;
	omp_destroy_nest_lock_;
	omp_init_lock_;
	omp_init_nest_lock_;
	omp_set_lock_;
	omp_set_nest_lock_;
	omp_test_lock_;
	omp_test_nest_lock_;
	omp_unset_lock_;
	omp_unset_nest_lock_;
#endif
	omp_get_dynamic_;
	omp_get_max_threads_;
	omp_get_nested_;
	omp_get_num_procs_;
	omp_get_num_threads_;
	omp_get_thread_num_;
	omp_in_parallel_;
	omp_set_dynamic_;
	omp_set_dynamic_8_;
	omp_set_nested_;
	omp_set_nested_8_;
	omp_set_num_threads_;
	omp_set_num_threads_8_;
  local:
	*;
};

OMP_2.0 {
  global:
	omp_get_wtick;
	omp_get_wtime;
	omp_get_wtick_;
	omp_get_wtime_;
} OMP_1.0;

OMP_3.0 {
  global:
	omp_set_schedule;
	omp_set_schedule_;
	omp_set_schedule_8_;
	omp_get_schedule;
	omp_get_schedule_;
	omp_get_schedule_8_;
	omp_get_thread_limit;
	omp_get_thread_limit_;
	omp_set_max_active_levels;
	omp_set_max_active_levels_;
	omp_set_max_active_levels_8_;
	omp_get_max_active_levels;
	omp_get_max_active_levels_;
	omp_get_level;
	omp_get_level_;
	omp_get_ancestor_thread_num;
	omp_get_ancestor_thread_num_;
	omp_get_ancestor_thread_num_8_;
	omp_get_team_size;
	omp_get_team_size_;
	omp_get_team_size_8_;
	omp_get_active_level;
	omp_get_active_level_;
	omp_init_lock;
	omp_init_nest_lock;
	omp_destroy_lock;
	omp_destroy_nest_lock;
	omp_set_lock;
	omp_set_nest_lock;
	omp_unset_lock;
	omp_unset_nest_lock;
	omp_test_lock;
	omp_test_nest_lock;
	omp_destroy_lock_;
	omp_destroy_nest_lock_;
	omp_init_lock_;
	omp_init_nest_lock_;
	omp_set_lock_;
	omp_set_nest_lock_;
	omp_test_lock_;
	omp_test_nest_lock_;
	omp_unset_lock_;
	omp_unset_nest_lock_;
} OMP_2.0;

OMP_3.1 {
  global:
	omp_in_final;
	omp_in_final_;
} OMP_3.0;

OMP_4.0 {
  global:
	omp_get_cancellation;
	omp_get_cancellation_;
	omp_get_proc_bind;
	omp_get_proc_bind_;
	omp_set_default_device;
	omp_set_default_device_;
	omp_set_default_device_8_;
	omp_get_default_device;
	omp_get_default_device_;
	omp_get_num_devices;
	omp_get_num_devices_;
	omp_get_num_teams;
	omp_get_num_teams_;
	omp_get_team_num;
	omp_get_team_num_;
	omp_is_initial_device;
	omp_is_initial_device_;
} OMP_3.1;

GOMP_1.0 {
  global:
	GOMP_atomic_end;
	GOMP_atomic_start;
	GOMP_barrier;
	GOMP_critical_end;
	GOMP_critical_name_end;
	GOMP_critical_name_start;
	GOMP_critical_start;
	GOMP_loop_dynamic_next;
	GOMP_loop_dynamic_start;
	GOMP_loop_end;
	GOMP_loop_end_nowait;
	GOMP_loop_guided_next;
	GOMP_loop_guided_start;
	GOMP_loop_ordered_dynamic_next;
	GOMP_loop_ordered_dynamic_start;
	GOMP_loop_ordered_guided_next;
	GOMP_loop_ordered_guided_start;
	GOMP_loop_ordered_runtime_next;
	GOMP_loop_ordered_runtime_start;
	GOMP_loop_ordered_static_next;
	GOMP_loop_ordered_static_start;
	GOMP_loop_runtime_next;
	GOMP_loop_runtime_start;
	GOMP_loop_static_next;
	GOMP_loop_static_start;
	GOMP_ordered_end;
	GOMP_ordered_start;
	GOMP_parallel_end;
	GOMP_parallel_loop_dynamic_start;
	GOMP_parallel_loop_guided_start;
	GOMP_parallel_loop_runtime_start;
	GOMP_parallel_loop_static_start;
	GOMP_parallel_sections_start;
	GOMP_parallel_start;
	GOMP_sections_end;
	GOMP_sections_end_nowait;
	GOMP_sections_next;
	GOMP_sections_start;
	GOMP_single_copy_end;
	GOMP_single_copy_start;
	GOMP_single_start;
};

GOMP_2.0 {
  global:
	GOMP_task;
	GOMP_taskwait;
	GOMP_loop_ull_dynamic_next;
	GOMP_loop_ull_dynamic_start;
	GOMP_loop_ull_guided_next;
	GOMP_loop_ull_guided_start;
	GOMP_loop_ull_ordered_dynamic_next;
	GOMP_loop_ull_ordered_dynamic_start;
	GOMP_loop_ull_ordered_guided_next;
	GOMP_loop_ull_ordered_guided_start;
	GOMP_loop_ull_ordered_runtime_next;
	GOMP_loop_ull_ordered_runtime_start;
	GOMP_loop_ull_ordered_static_next;
	GOMP_loop_ull_ordered_static_start;
	GOMP_loop_ull_runtime_next;
	GOMP_loop_ull_runtime_start;
	GOMP_loop_ull_static_next;
	GOMP_loop_ull_static_start;
} GOMP_1.0;

GOMP_3.0 {
  global:
	GOMP_taskyield;
} GOMP_2.0;

GOMP_4.0 {
  global:
	GOMP_barrier_cancel;
	GOMP_cancel;
	GOMP_cancellation_point;
	GOMP_loop_end_cancel;
	GOMP_parallel_loop_dynamic;
	GOMP_parallel_loop_guided;
	GOMP_parallel_loop_runtime;
	GOMP_parallel_loop_static;
	GOMP_parallel_sections;
	GOMP_parallel;
	GOMP_sections_end_cancel;
	GOMP_taskgroup_start;
	GOMP_taskgroup_end;
	GOMP_target;
	GOMP_target_data;
	GOMP_target_end_data;
	GOMP_target_update;
	GOMP_teams;
} GOMP_3.0;

GOMP_4.0.1 {
  global:
	GOMP_offload_register;
} GOMP_4.0;

OACC_2.0 {
  global:
	acc_get_num_devices;
	acc_get_num_devices_h_;
	acc_set_device_type;
	acc_set_device_type_h_;
	acc_get_device_type;
	acc_get_device_type_h_;
	acc_set_device_num;
	acc_set_device_num_h_;
	acc_get_device_num;
	acc_get_device_num_h_;
	acc_async_test;
	acc_async_test_h_;
	acc_async_test_all;
	acc_async_test_all_h_;
	acc_wait;
	acc_wait_h_;
	acc_wait_async;
	acc_wait_async_h_;
	acc_wait_all;
	acc_wait_all_h_;
	acc_wait_all_async;
	acc_wait_all_async_h_;
	acc_init;
	acc_init_h_;
	acc_shutdown;
	acc_shutdown_h_;
	acc_on_device;
	acc_on_device_h_;
	acc_malloc;
	acc_free;
	acc_copyin;
	acc_copyin_32_h_;
	acc_copyin_64_h_;
	acc_copyin_array_h_;
	acc_present_or_copyin;
	acc_present_or_copyin_32_h_;
	acc_present_or_copyin_64_h_;
	acc_present_or_copyin_array_h_;
	acc_create;
	acc_create_32_h_;
	acc_create_64_h_;
	acc_create_array_h_;
	acc_present_or_create;
	acc_present_or_create_32_h_;
	acc_present_or_create_64_h_;
	acc_present_or_create_array_h_;
	acc_copyout;
	acc_copyout_32_h_;
	acc_copyout_64_h_;
	acc_copyout_array_h_;
	acc_delete;
	acc_delete_32_h_;
	acc_delete_64_h_;
	acc_delete_array_h_;
	acc_update_device;
	acc_update_device_32_h_;
	acc_update_device_64_h_;
	acc_update_device_array_h_;
	acc_update_self;
	acc_update_self_32_h_;
	acc_update_self_64_h_;
	acc_update_self_array_h_;
	acc_map_data;
	acc_unmap_data;
	acc_deviceptr;
	acc_hostptr;
	acc_is_present;
	acc_is_present_32_h_;
	acc_is_present_64_h_;
	acc_is_present_array_h_;
	acc_memcpy_to_device;
	acc_memcpy_from_device;
	acc_get_current_cuda_device;
	acc_get_current_cuda_context;
	acc_get_cuda_stream;
	acc_set_cuda_stream;
};

GOACC_2.0 {
  global:
	GOACC_data_end;
	GOACC_data_start;
	GOACC_enter_exit_data;
	GOACC_parallel;
	GOACC_update;
	GOACC_wait;
	GOACC_get_thread_num;
	GOACC_get_num_threads;
};

GOMP_PLUGIN_1.0 {
  global:
	GOMP_PLUGIN_malloc;
	GOMP_PLUGIN_malloc_cleared;
	GOMP_PLUGIN_realloc;
	GOMP_PLUGIN_debug;
	GOMP_PLUGIN_error;
	GOMP_PLUGIN_fatal;
	GOMP_PLUGIN_async_unmap_vars;
	GOMP_PLUGIN_acc_thread;
};
