svn commit: r345283 - in head: contrib/openmp/runtime/src lib
Dimitry Andric
dim at FreeBSD.org
Mon Mar 18 21:04:30 UTC 2019
Author: dim
Date: Mon Mar 18 21:04:28 2019
New Revision: 345283
URL: https://svnweb.freebsd.org/changeset/base/345283
Log:
Enable building libomp.so for 32-bit x86. This is done by selectively
enabling the functions that save and restore MXCSR, since access to this
register requires SSE support.
Note that you may run into other issues with OpenMP on i386, since this
*not* yet supported upstream, and certainly not extensively tested.
PR: 236062, 236582
MFC after: 1 month
X-MFC-With: r344779
Modified:
head/contrib/openmp/runtime/src/kmp.h
head/contrib/openmp/runtime/src/kmp_runtime.cpp
head/lib/Makefile
Modified: head/contrib/openmp/runtime/src/kmp.h
==============================================================================
--- head/contrib/openmp/runtime/src/kmp.h Mon Mar 18 19:56:00 2019 (r345282)
+++ head/contrib/openmp/runtime/src/kmp.h Mon Mar 18 21:04:28 2019 (r345283)
@@ -3666,8 +3666,13 @@ extern int __kmp_read_from_file(char const *path, char
extern void __kmp_query_cpuid(kmp_cpuinfo_t *p);
-#define __kmp_load_mxcsr(p) _mm_setcsr(*(p))
+#if __SSE__
+static inline void __kmp_load_mxcsr(const kmp_uint32 *p) { _mm_setcsr(*(p)); }
static inline void __kmp_store_mxcsr(kmp_uint32 *p) { *p = _mm_getcsr(); }
+#else
+static inline void __kmp_load_mxcsr(const kmp_uint32 *) {}
+static inline void __kmp_store_mxcsr(kmp_uint32 *) {}
+#endif
extern void __kmp_load_x87_fpu_control_word(kmp_int16 *p);
extern void __kmp_store_x87_fpu_control_word(kmp_int16 *p);
Modified: head/contrib/openmp/runtime/src/kmp_runtime.cpp
==============================================================================
--- head/contrib/openmp/runtime/src/kmp_runtime.cpp Mon Mar 18 19:56:00 2019 (r345282)
+++ head/contrib/openmp/runtime/src/kmp_runtime.cpp Mon Mar 18 21:04:28 2019 (r345283)
@@ -8104,7 +8104,7 @@ __kmp_determine_reduction_method(
#elif KMP_ARCH_X86 || KMP_ARCH_ARM || KMP_ARCH_AARCH || KMP_ARCH_MIPS
-#if KMP_OS_LINUX || KMP_OS_WINDOWS || KMP_OS_HURD
+#if KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_WINDOWS || KMP_OS_HURD
// basic tuning
Modified: head/lib/Makefile
==============================================================================
--- head/lib/Makefile Mon Mar 18 19:56:00 2019 (r345282)
+++ head/lib/Makefile Mon Mar 18 21:04:28 2019 (r345283)
@@ -196,9 +196,7 @@ _libproc= libproc
_librtld_db= librtld_db
.endif
-.if !defined(COMPAT_32BIT)
SUBDIR.${MK_OPENMP}+= libomp
-.endif
SUBDIR.${MK_OPENSSL}+= libmp
SUBDIR.${MK_PMC}+= libpmc libpmcstat
SUBDIR.${MK_RADIUS_SUPPORT}+= libradius
More information about the svn-src-all
mailing list