diff options
Diffstat (limited to 'openmp/runtime/src')
-rw-r--r-- | openmp/runtime/src/kmp.h | 4 | ||||
-rw-r--r-- | openmp/runtime/src/kmp_ftn_entry.h | 2 | ||||
-rw-r--r-- | openmp/runtime/src/kmp_platform.h | 10 | ||||
-rw-r--r-- | openmp/runtime/src/kmp_runtime.c | 4 | ||||
-rw-r--r-- | openmp/runtime/src/kmp_wrapper_malloc.h | 2 | ||||
-rw-r--r-- | openmp/runtime/src/z_Linux_util.c | 18 |
6 files changed, 25 insertions, 15 deletions
diff --git a/openmp/runtime/src/kmp.h b/openmp/runtime/src/kmp.h index 167eaf0ff7b..fcf913e30da 100644 --- a/openmp/runtime/src/kmp.h +++ b/openmp/runtime/src/kmp.h @@ -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 diff --git a/openmp/runtime/src/kmp_ftn_entry.h b/openmp/runtime/src/kmp_ftn_entry.h index a04b284d9c1..0ba53b9c304 100644 --- a/openmp/runtime/src/kmp_ftn_entry.h +++ b/openmp/runtime/src/kmp_ftn_entry.h @@ -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 || diff --git a/openmp/runtime/src/kmp_platform.h b/openmp/runtime/src/kmp_platform.h index a12b89bc2d0..0707f2b40ae 100644 --- a/openmp/runtime/src/kmp_platform.h +++ b/openmp/runtime/src/kmp_platform.h @@ -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 diff --git a/openmp/runtime/src/kmp_runtime.c b/openmp/runtime/src/kmp_runtime.c index 4c75808735b..e5619d17c56 100644 --- a/openmp/runtime/src/kmp_runtime.c +++ b/openmp/runtime/src/kmp_runtime.c @@ -7590,7 +7590,7 @@ __kmp_determine_reduction_method( ident_t *loc, kmp_int32 global_tid, #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_t *loc, kmp_int32 global_tid, } #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 diff --git a/openmp/runtime/src/kmp_wrapper_malloc.h b/openmp/runtime/src/kmp_wrapper_malloc.h index 58a7ab7de37..453d1ef5e7c 100644 --- a/openmp/runtime/src/kmp_wrapper_malloc.h +++ b/openmp/runtime/src/kmp_wrapper_malloc.h @@ -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". diff --git a/openmp/runtime/src/z_Linux_util.c b/openmp/runtime/src/z_Linux_util.c index c419edb9802..0631ab5b197 100644 --- a/openmp/runtime/src/z_Linux_util.c +++ b/openmp/runtime/src/z_Linux_util.c @@ -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_t *th ) /* 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_t *th ) 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 |