diff --git a/cmake/utils.cmake b/cmake/utils.cmake index b0e36a28c..28ef65f47 100644 --- a/cmake/utils.cmake +++ b/cmake/utils.cmake @@ -202,8 +202,8 @@ function(GenerateNamedObjects sources_in) if (use_cblas) set(obj_name "cblas_${obj_name}") list(APPEND obj_defines "CBLAS") - elseif (NOT "${obj_name}" MATCHES "${TSUFFIX}") - set(obj_name "${obj_name}${TSUFFIX}") + elseif (NOT "${obj_name}" MATCHES "${ARCH_SUFFIX}") + set(obj_name "${obj_name}${ARCH_SUFFIX}") endif () list(APPEND obj_defines "ASMNAME=${FU}${obj_name};ASMFNAME=${FU}${obj_name}${BU};NAME=${obj_name}${BU};CNAME=${obj_name};CHAR_NAME=\"${obj_name}${BU}\";CHAR_CNAME=\"${obj_name}\"") diff --git a/kernel/CMakeLists.txt b/kernel/CMakeLists.txt index 7da7bcc8c..849ef21d4 100644 --- a/kernel/CMakeLists.txt +++ b/kernel/CMakeLists.txt @@ -4,6 +4,7 @@ include_directories(${PROJECT_SOURCE_DIR}) # Makefile function (build_core TARGET_CORE KDIR TSUFFIX KERNEL_DEFINITIONS) set (OPENBLAS_SRC "") + set (ARCH_SUFFIX "") include("${PROJECT_SOURCE_DIR}/cmake/kernel.cmake") if (${DYNAMIC_ARCH}) include("${PROJECT_SOURCE_DIR}/cmake/system.cmake") @@ -19,19 +20,23 @@ function (build_core TARGET_CORE KDIR TSUFFIX KERNEL_DEFINITIONS) set(KERNEL_INTERFACE ${KERNEL_INTERFACE} common_lapack.h) endif () - if (${ARCH} STREQUAL "x86") - if (NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") - GenerateNamedObjects("${KERNELDIR}/cpuid.S" "" "" false "" "" true) - else() - GenerateNamedObjects("${KERNELDIR}/cpuid_win.c" "" "" false "" "" true) - endif() + if (${ADD_COMMONOBJS}) + if (${ARCH} STREQUAL "x86") + if (NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") + GenerateNamedObjects("${KERNELDIR}/cpuid.S" "" "" false "" "" true) + else() + GenerateNamedObjects("${KERNELDIR}/cpuid_win.c" "" "" false "" "" true) + endif() + endif () + + # don't use float type name mangling here + GenerateNamedObjects("${KERNELDIR}/${LSAME_KERNEL}" "F_INTERFACE" "lsame" false "" "" true "") + GenerateNamedObjects("${KERNELDIR}/${SCABS_KERNEL}" "COMPLEX;F_INTERFACE" "scabs1" false "" "" true "") + GenerateNamedObjects("${KERNELDIR}/${DCABS_KERNEL}" "DOUBLE;COMPLEX;F_INTERFACE" "dcabs1" false "" "" true "") endif () - # don't use float type name mangling here - GenerateNamedObjects("${KERNELDIR}/${LSAME_KERNEL}" "F_INTERFACE" "lsame" false "" "" true) - GenerateNamedObjects("${KERNELDIR}/${SCABS_KERNEL}" "COMPLEX;F_INTERFACE" "scabs1" false "" "" true) - GenerateNamedObjects("${KERNELDIR}/${DCABS_KERNEL}" "DOUBLE;COMPLEX;F_INTERFACE" "dcabs1" false "" "" true) - + # Run with no ARCH_SUFFIX for above + set (ARCH_SUFFIX "${TSUFFIX}") # Makefile.L1 foreach (float_type ${FLOAT_TYPES}) # a bit of metaprogramming here to pull out the appropriate KERNEL var @@ -489,7 +494,7 @@ function (build_core TARGET_CORE KDIR TSUFFIX KERNEL_DEFINITIONS) endfunction () - +set(ADD_COMMONOBJS 1) if (${DYNAMIC_ARCH}) foreach(TARGET_CORE ${DYNAMIC_CORE}) set(BUILD_KERNEL 1) @@ -497,6 +502,7 @@ if (${DYNAMIC_ARCH}) set(TSUFFIX "_${TARGET_CORE}") set(KERNEL_DEFINITIONS "-DBUILD_KERNEL -DTABLE_NAME=gotoblas_${TARGET_CORE} -DTS=${TSUFFIX}") build_core("${TARGET_CORE}" "${KDIR}" "${TSUFFIX}" "${KERNEL_DEFINITIONS}") + set(ADD_COMMONOBJS 0) endforeach() else () set(TARGET_CONF_DIR ${PROJECT_BINARY_DIR})