Unconditionally define bli_l3_thread_entry().

Details:
- Define a dummy bli_l3_thread_entry() function when multithreading is
  disabled altogether, or enabled via OpenMP. This function was
  originally necessary when multithreading is enabled via pthreads.
  By defining the function no matter the threading options given, it is
  less likely that an AppVeyor Windows build will complain due to a
  missing symbol in the DLL. (To be clear: AppVeyor was working fine
  before, but a problem may have arisen if it were switched to an
  OpenMP build.)
- Removed the prototype for bli_l3_thread_entry() from
  bli_thrcomm_pthreads.c and placed it in bli_thrcomm.h.
- Regenerated the symbols list file build/libblis-symbols.def.
This commit is contained in:
Field G. Van Zee
2018-10-22 18:10:59 -05:00
parent 4ee986f0a7
commit eac7d267a0
5 changed files with 15 additions and 2 deletions

View File

@@ -1281,6 +1281,7 @@ bli_l3_prune_unref_mparts_k
bli_l3_prune_unref_mparts_m
bli_l3_prune_unref_mparts_n
bli_l3_thread_decorator
bli_l3_thread_entry
bli_l3_thrinfo_create_root
bli_l3_thrinfo_free
bli_l3_thrinfo_free_paths

View File

@@ -42,6 +42,10 @@
#include "bli_thrcomm_pthreads.h"
// thread entry point prototype.
void* bli_l3_thread_entry( void* data_void );
// thrcomm_t query (field only)
static dim_t bli_thrcomm_num_threads( thrcomm_t* comm )

View File

@@ -202,6 +202,11 @@ void bli_thrcomm_tree_barrier( barrier_t* barack )
#endif
// Define a dummy function bli_l3_thread_entry(), which is needed in the
// pthreads version, so that when building Windows DLLs (with OpenMP enabled
// or no multithreading) we don't risk having an unresolved symbol.
void* bli_l3_thread_entry( void* data_void ) { return NULL; }
//#define PRINT_THRINFO
void bli_l3_thread_decorator

View File

@@ -126,8 +126,6 @@ void bli_thrcomm_barrier( thrcomm_t* comm, dim_t t_id )
#endif
void* bli_l3_thread_entry( void* data_void );
// A data structure to assist in passing operands to additional threads.
typedef struct thread_data
{

View File

@@ -71,6 +71,11 @@ void bli_thrcomm_barrier( thrcomm_t* comm, dim_t t_id )
return;
}
// Define a dummy function bli_l3_thread_entry(), which is needed in the
// pthreads version, so that when building Windows DLLs (with OpenMP enabled
// or no multithreading) we don't risk having an unresolved symbol.
void* bli_l3_thread_entry( void* data_void ) { return NULL; }
void bli_l3_thread_decorator
(
l3int_t func,