mirror of
https://git.freebsd.org/ports.git
synced 2025-06-18 03:00:42 -04:00
I failed to apply the actual patch and committed the ports patch
instead. It applies because it just creates files.
PR: 273959
Fixes: 50e51d2680
devel/llvm10: fix build with llvm17
210 lines
7.1 KiB
Text
210 lines
7.1 KiB
Text
diff --git projects/openmp/libomptarget/plugins/exports projects/openmp/libomptarget/plugins/exports
|
|
index 62bfc6e24d90..cc7beda183af 100644
|
|
--- projects/openmp/libomptarget/plugins/exports
|
|
+++ projects/openmp/libomptarget/plugins/exports
|
|
@@ -1,24 +1,6 @@
|
|
VERS1.0 {
|
|
global:
|
|
- __tgt_rtl_is_valid_binary;
|
|
- __tgt_rtl_is_data_exchangable;
|
|
- __tgt_rtl_number_of_devices;
|
|
- __tgt_rtl_init_requires;
|
|
- __tgt_rtl_init_device;
|
|
- __tgt_rtl_load_binary;
|
|
- __tgt_rtl_data_alloc;
|
|
- __tgt_rtl_data_submit;
|
|
- __tgt_rtl_data_submit_async;
|
|
- __tgt_rtl_data_retrieve;
|
|
- __tgt_rtl_data_retrieve_async;
|
|
- __tgt_rtl_data_exchange;
|
|
- __tgt_rtl_data_exchange_async;
|
|
- __tgt_rtl_data_delete;
|
|
- __tgt_rtl_run_target_team_region;
|
|
- __tgt_rtl_run_target_team_region_async;
|
|
- __tgt_rtl_run_target_region;
|
|
- __tgt_rtl_run_target_region_async;
|
|
- __tgt_rtl_synchronize;
|
|
+ __tgt_rtl*;
|
|
local:
|
|
*;
|
|
};
|
|
diff --git projects/openmp/runtime/cmake/LibompHandleFlags.cmake projects/openmp/runtime/cmake/LibompHandleFlags.cmake
|
|
index 0b8e3a35c888..cacc192eb378 100644
|
|
--- projects/openmp/runtime/cmake/LibompHandleFlags.cmake
|
|
+++ projects/openmp/runtime/cmake/LibompHandleFlags.cmake
|
|
@@ -94,7 +94,6 @@ function(libomp_get_ldflags ldflags)
|
|
IF_DEFINED CMAKE_C_OSX_CURRENT_VERSION_FLAG)
|
|
libomp_append(ldflags_local "${CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG}${LIBOMP_VERSION_MAJOR}.${LIBOMP_VERSION_MINOR}"
|
|
IF_DEFINED CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG)
|
|
- libomp_append(ldflags_local -Wl,--warn-shared-textrel LIBOMP_HAVE_WARN_SHARED_TEXTREL_FLAG)
|
|
libomp_append(ldflags_local -Wl,--as-needed LIBOMP_HAVE_AS_NEEDED_FLAG)
|
|
libomp_append(ldflags_local "-Wl,--version-script=${LIBOMP_SRC_DIR}/exports_so.txt" LIBOMP_HAVE_VERSION_SCRIPT_FLAG)
|
|
libomp_append(ldflags_local -static-libgcc LIBOMP_HAVE_STATIC_LIBGCC_FLAG)
|
|
diff --git projects/openmp/runtime/cmake/config-ix.cmake projects/openmp/runtime/cmake/config-ix.cmake
|
|
index 3419dd8cd788..fb7a644155e2 100644
|
|
--- projects/openmp/runtime/cmake/config-ix.cmake
|
|
+++ projects/openmp/runtime/cmake/config-ix.cmake
|
|
@@ -100,9 +100,8 @@ if(WIN32)
|
|
libomp_check_linker_flag(/SAFESEH LIBOMP_HAVE_SAFESEH_FLAG)
|
|
elseif(NOT APPLE)
|
|
libomp_check_linker_flag(-Wl,-x LIBOMP_HAVE_X_FLAG)
|
|
- libomp_check_linker_flag(-Wl,--warn-shared-textrel LIBOMP_HAVE_WARN_SHARED_TEXTREL_FLAG)
|
|
libomp_check_linker_flag(-Wl,--as-needed LIBOMP_HAVE_AS_NEEDED_FLAG)
|
|
- libomp_check_linker_flag("-Wl,--version-script=${LIBOMP_SRC_DIR}/exports_so.txt" LIBOMP_HAVE_VERSION_SCRIPT_FLAG)
|
|
+ libomp_check_linker_flag("-Wl,--version-script=${LIBOMP_SRC_DIR}/exports_test_so.txt" LIBOMP_HAVE_VERSION_SCRIPT_FLAG)
|
|
libomp_check_linker_flag(-static-libgcc LIBOMP_HAVE_STATIC_LIBGCC_FLAG)
|
|
libomp_check_linker_flag(-Wl,-z,noexecstack LIBOMP_HAVE_Z_NOEXECSTACK_FLAG)
|
|
endif()
|
|
diff --git projects/openmp/runtime/src/exports_so.txt projects/openmp/runtime/src/exports_so.txt
|
|
index 30222418163d..4e159a1abf29 100644
|
|
--- projects/openmp/runtime/src/exports_so.txt
|
|
+++ projects/openmp/runtime/src/exports_so.txt
|
|
@@ -74,10 +74,8 @@ VERSION {
|
|
__kmp_fork_call;
|
|
__kmp_invoke_microtask;
|
|
#if KMP_USE_MONITOR
|
|
- __kmp_launch_monitor;
|
|
__kmp_reap_monitor;
|
|
#endif
|
|
- __kmp_launch_worker;
|
|
__kmp_reap_worker;
|
|
__kmp_release_64;
|
|
__kmp_wait_64;
|
|
diff --git projects/openmp/runtime/src/exports_test_so.txt projects/openmp/runtime/src/exports_test_so.txt
|
|
new file mode 100644
|
|
index 000000000000..912d160e7c06
|
|
--- /dev/null
|
|
+++ projects/openmp/runtime/src/exports_test_so.txt
|
|
@@ -0,0 +1,60 @@
|
|
+# exports_test_so.txt #
|
|
+
|
|
+#
|
|
+#//===----------------------------------------------------------------------===//
|
|
+#//
|
|
+#// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
+#// See https://llvm.org/LICENSE.txt for license information.
|
|
+#// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
+#//
|
|
+#//===----------------------------------------------------------------------===//
|
|
+#
|
|
+
|
|
+# This is used only to test if the linker supports version scripts. If the full
|
|
+# version script it used we may error on undefined symbols and erroneously fail.
|
|
+
|
|
+VERSION {
|
|
+
|
|
+ global: # Exported symbols.
|
|
+
|
|
+ *; # All symbols as exported for testing.
|
|
+
|
|
+ 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;
|
|
+OMP_4.5 {
|
|
+} OMP_4.0;
|
|
+OMP_5.0 {
|
|
+} OMP_4.5;
|
|
+
|
|
+# 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;
|
|
+GOMP_4.5 {
|
|
+} GOMP_4.0;
|
|
+GOMP_5.0 {
|
|
+} GOMP_4.5;
|
|
+GOMP_5.0.1 {
|
|
+} GOMP_5.0;
|
|
+
|
|
+# end of file #
|
|
diff --git projects/openmp/runtime/src/kmp_runtime.cpp projects/openmp/runtime/src/kmp_runtime.cpp
|
|
index e0c8cf241044..772942079b1b 100644
|
|
--- projects/openmp/runtime/src/kmp_runtime.cpp
|
|
+++ projects/openmp/runtime/src/kmp_runtime.cpp
|
|
@@ -8305,3 +8305,20 @@ void __kmp_omp_display_env(int verbose) {
|
|
__kmp_display_env_impl(!verbose, verbose);
|
|
__kmp_release_bootstrap_lock(&__kmp_initz_lock);
|
|
}
|
|
+
|
|
+// Empty symbols to export (see exports_so.txt) when feature is disabled
|
|
+extern "C" {
|
|
+#if !KMP_STATS_ENABLED
|
|
+void __kmp_reset_stats() {}
|
|
+#endif
|
|
+#if !USE_DEBUGGER
|
|
+int __kmp_omp_debug_struct_info = FALSE;
|
|
+int __kmp_debugging = FALSE;
|
|
+#endif
|
|
+#if !USE_ITT_BUILD || !USE_ITT_NOTIFY
|
|
+void __kmp_itt_fini_ittlib() {}
|
|
+void __kmp_itt_init_ittlib() {}
|
|
+#endif
|
|
+}
|
|
+
|
|
+// end of file
|
|
diff --git projects/openmp/runtime/src/kmp_utility.cpp projects/openmp/runtime/src/kmp_utility.cpp
|
|
index 6e6785deb445..5f66e2509d33 100644
|
|
--- projects/openmp/runtime/src/kmp_utility.cpp
|
|
+++ projects/openmp/runtime/src/kmp_utility.cpp
|
|
@@ -407,3 +407,16 @@ void __kmp_expand_file_name(char *result, size_t rlen, char *pattern) {
|
|
|
|
*pos = '\0';
|
|
}
|
|
+
|
|
+#if !OMPT_SUPPORT
|
|
+extern "C" {
|
|
+typedef struct ompt_start_tool_result_t ompt_start_tool_result_t;
|
|
+// Define symbols expected by VERSION script
|
|
+ompt_start_tool_result_t *ompt_start_tool(unsigned int omp_version,
|
|
+ const char *runtime_version) {
|
|
+ return nullptr;
|
|
+}
|
|
+
|
|
+void ompt_libomp_connect(ompt_start_tool_result_t *result) { result = nullptr; }
|
|
+}
|
|
+#endif
|
|
diff --git projects/openmp/runtime/src/z_Linux_util.cpp projects/openmp/runtime/src/z_Linux_util.cpp
|
|
index 3b5910fc95e8..e36952f30982 100644
|
|
--- projects/openmp/runtime/src/z_Linux_util.cpp
|
|
+++ projects/openmp/runtime/src/z_Linux_util.cpp
|
|
@@ -1049,7 +1049,7 @@ void __kmp_exit_thread(int exit_status) {
|
|
#if KMP_USE_MONITOR
|
|
void __kmp_resume_monitor();
|
|
|
|
-void __kmp_reap_monitor(kmp_info_t *th) {
|
|
+extern "C" void __kmp_reap_monitor(kmp_info_t *th) {
|
|
int status;
|
|
void *exit_val;
|
|
|
|
@@ -1091,6 +1091,12 @@ void __kmp_reap_monitor(kmp_info_t *th) {
|
|
|
|
KMP_MB(); /* Flush all pending memory write invalidates. */
|
|
}
|
|
+#else
|
|
+// Empty symbol to export (see exports_so.txt) when
|
|
+// monitor thread feature is disabled
|
|
+extern "C" void __kmp_reap_monitor(kmp_info_t *th) {
|
|
+ (void)th;
|
|
+}
|
|
#endif // KMP_USE_MONITOR
|
|
|
|
void __kmp_reap_worker(kmp_info_t *th) {
|