mirror of
https://github.com/intel/llvm.git
synced 2026-01-15 12:25:46 +08:00
Add basic NetBSD support.
llvm-svn: 248204
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 ||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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".
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user