File blis-gcc15-unnecessary-openmp-include.patch of Package blis
From 843a5e8d394d126ed370da523d2c09d7e12b582d Mon Sep 17 00:00:00 2001
From: Devin Matthews <damatthews@smu.edu>
Date: Tue, 24 Jun 2025 16:46:23 -0500
Subject: [PATCH] Remove unnecessary OpenMP include. (#875)
Details:
- Previously, `<omp.h>` was included in `bli_thrcomm_openmp.h` so that the framework
could access the necessary OpenMP functions.
- As @melven reported (#873), this causes issues when `blis.h` is included in C++ code since
the `<omp.h>` include happens with `extern "C"`.
- Move the include from the header to the necessary .c files so that it does not "pollute" `blis.h`.
---
CREDITS | 1 +
frame/3/bli_l3_decor.c | 4 ++++
frame/thread/bli_thrcomm_openmp.c | 4 ++--
frame/thread/bli_thrcomm_openmp.h | 2 --
frame/thread/bli_thread_openmp.c | 2 ++
kernels/bgq/1/bli_dotv_bgq_int.c | 2 ++
6 files changed, 11 insertions(+), 4 deletions(-)
Index: blis-2.0/frame/3/bli_l3_decor.c
===================================================================
--- blis-2.0.orig/frame/3/bli_l3_decor.c
+++ blis-2.0/frame/3/bli_l3_decor.c
@@ -39,6 +39,10 @@
#include <omp.h>
#endif
+#ifdef BLIS_ENABLE_OPENMP
+#include <omp.h>
+#endif
+
struct l3_decor_params_s
{
const obj_t* a;
Index: blis-2.0/frame/thread/bli_thread_openmp.c
===================================================================
--- blis-2.0.orig/frame/thread/bli_thread_openmp.c
+++ blis-2.0/frame/thread/bli_thread_openmp.c
@@ -38,6 +38,8 @@
#include <omp.h>
+#include <omp.h>
+
void bli_thread_launch_openmp( dim_t n_threads, thread_func_t func, const void* params )
{
const timpl_t ti = BLIS_OPENMP;
Index: blis-2.0/kernels/bgq/1/bli_dotv_bgq_int.c
===================================================================
--- blis-2.0.orig/kernels/bgq/1/bli_dotv_bgq_int.c
+++ blis-2.0/kernels/bgq/1/bli_dotv_bgq_int.c
@@ -36,6 +36,8 @@
#include <omp.h>
+#include <omp.h>
+
void bli_ddotv_bgq_int
(
conj_t conjx,