Merge branch 'cmake' of https://github.com/hpanderson/OpenBLAS into hpanderson_cmake
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
include_directories(${CMAKE_SOURCE_DIR})
|
||||
|
||||
if (${CORE} STREQUAL "PPC440")
|
||||
set(MEMORY memory_qalloc.c)
|
||||
else ()
|
||||
set(MEMORY memory.c)
|
||||
endif ()
|
||||
|
||||
if (SMP)
|
||||
|
||||
if (USE_OPENMP)
|
||||
set(BLAS_SERVER blas_server_omp.c)
|
||||
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
|
||||
set(BLAS_SERVER blas_server_win32.c)
|
||||
endif ()
|
||||
|
||||
if (NOT DEFINED BLAS_SERVER)
|
||||
set(BLAS_SERVER blas_server.c)
|
||||
endif ()
|
||||
|
||||
set(SMP_SOURCES
|
||||
${BLAS_SERVER}
|
||||
divtable.c # TODO: Makefile has -UDOUBLE
|
||||
blas_l1_thread.c
|
||||
)
|
||||
|
||||
if (NOT NO_AFFINITY)
|
||||
list(APPEND SMP_SOURCES init.c)
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
set(COMMON_SOURCES
|
||||
xerbla.c
|
||||
openblas_set_num_threads.c
|
||||
openblas_error_handle.c
|
||||
)
|
||||
|
||||
# these need to have NAME/CNAME set, so use GenerateNamedObjects, but don't use standard name mangling
|
||||
GenerateNamedObjects("abs.c" "" "c_abs" 0 "" "" 1 )
|
||||
GenerateNamedObjects("abs.c" "DOUBLE" "z_abs" 0 "" "" 1)
|
||||
GenerateNamedObjects("openblas_get_config.c;openblas_get_parallel.c" "" "" 0 "" "" 1)
|
||||
|
||||
if (DYNAMIC_ARCH)
|
||||
list(APPEND COMMON_SOURCES dynamic.c)
|
||||
else ()
|
||||
list(APPEND COMMON_SOURCES parameter.c)
|
||||
endif ()
|
||||
|
||||
#ifdef EXPRECISION
|
||||
#COMMONOBJS += x_abs.$(SUFFIX) qlamch.$(SUFFIX) qlamc3.$(SUFFIX)
|
||||
#endif
|
||||
#
|
||||
#ifdef QUAD_PRECISION
|
||||
#COMMONOBJS += addx.$(SUFFIX) mulx.$(SUFFIX)
|
||||
#endif
|
||||
#
|
||||
#ifdef USE_CUDA
|
||||
#COMMONOBJS += cuda_init.$(SUFFIX)
|
||||
#endif
|
||||
#
|
||||
#ifdef FUNCTION_PROFILE
|
||||
#COMMONOBJS += profile.$(SUFFIX)
|
||||
#endif
|
||||
|
||||
#LIBOTHERS = libothers.$(LIBSUFFIX)
|
||||
|
||||
#ifeq ($(DYNAMIC_ARCH), 1)
|
||||
#HPLOBJS = memory.$(SUFFIX) xerbla.$(SUFFIX) dynamic.$(SUFFIX)
|
||||
#else
|
||||
#HPLOBJS = memory.$(SUFFIX) xerbla.$(SUFFIX) parameter.$(SUFFIX)
|
||||
#endif
|
||||
|
||||
add_library(driver_others OBJECT ${OPENBLAS_SRC} ${MEMORY} ${SMP_SOURCES} ${COMMON_SOURCES})
|
||||
+29
-2
@@ -139,8 +139,13 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
#define BITMASK(a, b, c) ((((a) >> (b)) & (c)))
|
||||
|
||||
#if defined(_MSC_VER) && !defined(__clang__)
|
||||
#define CONSTRUCTOR __cdecl
|
||||
#define DESTRUCTOR __cdecl
|
||||
#else
|
||||
#define CONSTRUCTOR __attribute__ ((constructor))
|
||||
#define DESTRUCTOR __attribute__ ((destructor))
|
||||
#endif
|
||||
|
||||
#ifdef DYNAMIC_ARCH
|
||||
gotoblas_t *gotoblas = NULL;
|
||||
@@ -795,12 +800,12 @@ static void *alloc_hugetlb(void *address){
|
||||
|
||||
if (LookupPrivilegeValue(NULL, SE_LOCK_MEMORY_NAME, &tp.Privileges[0].Luid) != TRUE) {
|
||||
CloseHandle(hToken);
|
||||
return -1;
|
||||
return (void*)-1;
|
||||
}
|
||||
|
||||
if (AdjustTokenPrivileges(hToken, FALSE, &tp, 0, NULL, NULL) != TRUE) {
|
||||
CloseHandle(hToken);
|
||||
return -1;
|
||||
return (void*)-1;
|
||||
}
|
||||
|
||||
map_address = (void *)VirtualAlloc(address,
|
||||
@@ -1399,6 +1404,28 @@ void DESTRUCTOR gotoblas_quit(void) {
|
||||
#endif
|
||||
}
|
||||
|
||||
#if defined(_MSC_VER) && !defined(__clang__)
|
||||
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
|
||||
{
|
||||
switch (ul_reason_for_call)
|
||||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
gotoblas_init();
|
||||
break;
|
||||
case DLL_THREAD_ATTACH:
|
||||
break;
|
||||
case DLL_THREAD_DETACH:
|
||||
break;
|
||||
case DLL_PROCESS_DETACH:
|
||||
gotoblas_quit();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if (defined(C_PGI) || (!defined(C_SUN) && defined(F_INTERFACE_SUN))) && (defined(ARCH_X86) || defined(ARCH_X86_64))
|
||||
/* Don't call me; this is just work around for PGI / Sun bug */
|
||||
void gotoblas_dummy_for_PGI(void) {
|
||||
|
||||
Reference in New Issue
Block a user