[Openmp-commits] [openmp] r248204 - Add basic NetBSD support.
Joerg Sonnenberger via Openmp-commits
openmp-commits at lists.llvm.org
Mon Sep 21 13:02:46 PDT 2015
Author: joerg
Date: Mon Sep 21 15:02:45 2015
New Revision: 248204
URL: http://llvm.org/viewvc/llvm-project?rev=248204&view=rev
Log:
Add basic NetBSD support.
Modified:
openmp/trunk/runtime/src/kmp.h
openmp/trunk/runtime/src/kmp_ftn_entry.h
openmp/trunk/runtime/src/kmp_platform.h
openmp/trunk/runtime/src/kmp_runtime.c
openmp/trunk/runtime/src/kmp_wrapper_malloc.h
openmp/trunk/runtime/src/z_Linux_util.c
Modified: openmp/trunk/runtime/src/kmp.h
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/src/kmp.h?rev=248204&r1=248203&r2=248204&view=diff
==============================================================================
--- openmp/trunk/runtime/src/kmp.h (original)
+++ openmp/trunk/runtime/src/kmp.h Mon Sep 21 15:02:45 2015
@@ -979,6 +979,10 @@ extern int __kmp_place_core_offset;
/* TODO: tune for KMP_OS_FREEBSD */
# define KMP_INIT_WAIT 1024U /* initial number of spin-tests */
# define KMP_NEXT_WAIT 512U /* susequent number of spin-tests */
+#elif KMP_OS_NETBSD
+/* TODO: tune for KMP_OS_NETBSD */
+# define KMP_INIT_WAIT 1024U /* initial number of spin-tests */
+# define KMP_NEXT_WAIT 512U /* susequent number of spin-tests */
#endif
#if KMP_ARCH_X86 || KMP_ARCH_X86_64
Modified: openmp/trunk/runtime/src/kmp_ftn_entry.h
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/src/kmp_ftn_entry.h?rev=248204&r1=248203&r2=248204&view=diff
==============================================================================
--- openmp/trunk/runtime/src/kmp_ftn_entry.h (original)
+++ openmp/trunk/runtime/src/kmp_ftn_entry.h Mon Sep 21 15:02:45 2015
@@ -398,7 +398,7 @@ xexpand(FTN_GET_THREAD_NUM)( void )
#else
int gtid;
- #if KMP_OS_DARWIN || KMP_OS_FREEBSD
+ #if KMP_OS_DARWIN || KMP_OS_FREEBSD || KMP_OS_NETBSD
gtid = __kmp_entry_gtid();
#elif KMP_OS_WINDOWS
if (!__kmp_init_parallel ||
Modified: openmp/trunk/runtime/src/kmp_platform.h
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/src/kmp_platform.h?rev=248204&r1=248203&r2=248204&view=diff
==============================================================================
--- openmp/trunk/runtime/src/kmp_platform.h (original)
+++ openmp/trunk/runtime/src/kmp_platform.h Mon Sep 21 15:02:45 2015
@@ -18,6 +18,7 @@
#define KMP_OS_LINUX 0
#define KMP_OS_FREEBSD 0
+#define KMP_OS_NETBSD 0
#define KMP_OS_DARWIN 0
#define KMP_OS_WINDOWS 0
#define KMP_OS_CNK 0
@@ -49,16 +50,21 @@
# define KMP_OS_FREEBSD 1
#endif
+#if ( defined __NetBSD__ )
+# undef KMP_OS_NETBSD
+# define KMP_OS_NETBSD 1
+#endif
+
#if ( defined __bgq__ )
# undef KMP_OS_CNK
# define KMP_OS_CNK 1
#endif
-#if (1 != KMP_OS_LINUX + KMP_OS_FREEBSD + KMP_OS_DARWIN + KMP_OS_WINDOWS)
+#if (1 != KMP_OS_LINUX + KMP_OS_FREEBSD + KMP_OS_NETBSD + KMP_OS_DARWIN + KMP_OS_WINDOWS)
# error Unknown OS
#endif
-#if KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_DARWIN
+#if KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_NETBSD || KMP_OS_DARWIN
# undef KMP_OS_UNIX
# define KMP_OS_UNIX 1
#endif
Modified: openmp/trunk/runtime/src/kmp_runtime.c
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/src/kmp_runtime.c?rev=248204&r1=248203&r2=248204&view=diff
==============================================================================
--- openmp/trunk/runtime/src/kmp_runtime.c (original)
+++ openmp/trunk/runtime/src/kmp_runtime.c Mon Sep 21 15:02:45 2015
@@ -7590,7 +7590,7 @@ __kmp_determine_reduction_method( ident_
#if KMP_ARCH_X86_64 || KMP_ARCH_PPC64 || KMP_ARCH_AARCH64
- #if KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_WINDOWS || KMP_OS_DARWIN
+ #if KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_NETBSD || KMP_OS_WINDOWS || KMP_OS_DARWIN
int teamsize_cutoff = 4;
@@ -7612,7 +7612,7 @@ __kmp_determine_reduction_method( ident_
}
#else
#error "Unknown or unsupported OS"
- #endif // KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_WINDOWS || KMP_OS_DARWIN
+ #endif // KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_NETBSD || KMP_OS_WINDOWS || KMP_OS_DARWIN
#elif KMP_ARCH_X86 || KMP_ARCH_ARM || KMP_ARCH_AARCH
Modified: openmp/trunk/runtime/src/kmp_wrapper_malloc.h
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/src/kmp_wrapper_malloc.h?rev=248204&r1=248203&r2=248204&view=diff
==============================================================================
--- openmp/trunk/runtime/src/kmp_wrapper_malloc.h (original)
+++ openmp/trunk/runtime/src/kmp_wrapper_malloc.h Mon Sep 21 15:02:45 2015
@@ -103,7 +103,7 @@
#if KMP_OS_WINDOWS
#include <malloc.h> // Windows* OS: _alloca() declared in "malloc.h".
#define alloca _alloca // Allow to use alloca() with no underscore.
-#elif KMP_OS_FREEBSD
+#elif KMP_OS_FREEBSD || KMP_OS_NETBSD
// Declared in "stdlib.h".
#elif KMP_OS_UNIX
#include <alloca.h> // Linux* OS and OS X*: alloc() declared in "alloca".
Modified: openmp/trunk/runtime/src/z_Linux_util.c
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/src/z_Linux_util.c?rev=248204&r1=248203&r2=248204&view=diff
==============================================================================
--- openmp/trunk/runtime/src/z_Linux_util.c (original)
+++ openmp/trunk/runtime/src/z_Linux_util.c Mon Sep 21 15:02:45 2015
@@ -22,7 +22,7 @@
#include "kmp_stats.h"
#include "kmp_wait_release.h"
-#if !KMP_OS_FREEBSD
+#if !KMP_OS_FREEBSD && !KMP_OS_NETBSD
# include <alloca.h>
#endif
#include <unistd.h>
@@ -622,7 +622,7 @@ static kmp_int32
__kmp_set_stack_info( int gtid, kmp_info_t *th )
{
int stack_data;
-#if KMP_OS_LINUX || KMP_OS_FREEBSD
+#if KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_NETBSD
/* Linux* OS only -- no pthread_getattr_np support on OS X* */
pthread_attr_t attr;
int status;
@@ -637,7 +637,7 @@ __kmp_set_stack_info( int gtid, kmp_info
/* Fetch the real thread attributes */
status = pthread_attr_init( &attr );
KMP_CHECK_SYSFAIL( "pthread_attr_init", status );
-#if KMP_OS_FREEBSD
+#if KMP_OS_FREEBSD || KMP_OS_NETBSD
status = pthread_attr_get_np( pthread_self(), &attr );
KMP_CHECK_SYSFAIL( "pthread_attr_get_np", status );
#else
@@ -661,7 +661,7 @@ __kmp_set_stack_info( int gtid, kmp_info
TCW_4(th->th.th_info.ds.ds_stackgrow, FALSE);
return TRUE;
}
-#endif /* KMP_OS_LINUX || KMP_OS_FREEBSD */
+#endif /* KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_NETBSD */
/* Use incremental refinement starting from initial conservative estimate */
TCW_PTR(th->th.th_info.ds.ds_stacksize, 0);
TCW_PTR(th -> th.th_info.ds.ds_stackbase, &stack_data);
@@ -677,7 +677,7 @@ __kmp_launch_worker( void *thr )
sigset_t new_set, old_set;
#endif /* KMP_BLOCK_SIGNALS */
void *exit_val;
-#if KMP_OS_LINUX || KMP_OS_FREEBSD
+#if KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_NETBSD
void * volatile padding = 0;
#endif
int gtid;
@@ -725,7 +725,7 @@ __kmp_launch_worker( void *thr )
KMP_CHECK_SYSFAIL( "pthread_sigmask", status );
#endif /* KMP_BLOCK_SIGNALS */
-#if KMP_OS_LINUX || KMP_OS_FREEBSD
+#if KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_NETBSD
if ( __kmp_stkoffset > 0 && gtid > 0 ) {
padding = KMP_ALLOCA( gtid * __kmp_stkoffset );
}
@@ -2067,7 +2067,7 @@ __kmp_get_xproc( void ) {
int r = 0;
- #if KMP_OS_LINUX
+ #if KMP_OS_LINUX || KMP_OS_NETBSD
r = sysconf( _SC_NPROCESSORS_ONLN );
@@ -2338,9 +2338,9 @@ __kmp_is_address_mapped( void * addr ) {
found = 1;
}; // if
- #elif KMP_OS_FREEBSD
+ #elif KMP_OS_FREEBSD || KMP_OS_NETBSD
- // FIXME(FreeBSD*): Implement this
+ // FIXME(FreeBSD, NetBSD): Implement this
found = 1;
#else
More information about the Openmp-commits
mailing list