Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SuiteSparse] Update and split into sub-packages #39297

Draft
wants to merge 63 commits into
base: master
Choose a base branch
from

Conversation

valgur
Copy link
Contributor

@valgur valgur commented Jun 14, 2024

SuiteSparse consists of a suite of mostly independent libraries, where each of them:

  • has a distinct versioning scheme,
  • varying license terms (e.g. some are GPL, while others are more permissive),
  • installs a separate CMake config file (i.e. you would do find_package(AMD) to use suitesparse-amd),
  • can have library-specific options, e.g. for CUDA support.

So I think splitting the package into its constituent sub-packages is well-justified.

Fixes #24252.


  • Changes comply with the maintainer guide.
  • SHA512s are updated for each updated download.
  • The "supports" clause reflects platforms that may be fixed by this new version.
  • Any fixed CI baseline entries are removed from that file.
  • Any patches that are no longer applied are deleted from the port's directory.
  • The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
  • Only one version is added to each modified port's versions file.
@Neumann-A
Copy link
Contributor

(i.e. you would do find_package(AMD) to use suitesparse-amd),

That looks like a no go. Is there an equivalent of find_package(Suitesparse COPMPONENTS AMD) ?

@valgur
Copy link
Contributor Author

valgur commented Jun 14, 2024

(i.e. you would do find_package(AMD) to use suitesparse-amd),

That looks like a no go. Is there an equivalent of find_package(Suitesparse COPMPONENTS AMD) ?

AFAIK SuiteSparse does not export a SuiteSparse CMake module or config.
Both Ceres and g2o (the only users of the suitesparse port, currently) define a custom FindSuiteSparse.cmake.

@Neumann-A
Copy link
Contributor

Yeah I checked upstream. Their find_package logic is flawed but nothing for you to fix. There is a Suitesparse_config package but that won't help much.

They should really install Suitesparse-config.cmake and use the component approach instead of just taking common abbreviations. SuitesparseAMD-config.cmake would be much better compared to just AMD-config.cmake.

Parallel configure fails due to race conditions with configure_file().
@MonicaLiu0311
Copy link
Contributor

@valgur Is there any new progress?

@valgur
Copy link
Contributor Author

valgur commented Jul 10, 2024

@valgur Is there any new progress?

I have been focusing on #39389 lately. Since that one is now complete and ready as far as I'm concerned, I'll be looking at this one next. The LAPACK and BLAS issues look quite tricky to solve, though, so it might take some time.

@valgur valgur marked this pull request as ready for review July 17, 2024 07:57
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not super happy about this workaround for BLAS and LAPACK handling, but it works well enough with current Vcpkg BLAS and LAPACK setup. This is a replacement for https://github.com/DrTimothyAldenDavis/SuiteSparse/blob/dev/SuiteSparse_config/cmake_modules/SuiteSparseBLAS.cmake, which modifies BLA_VENDOR and breaks LAPACK detection as a side-effect. Maybe the more generic BLAS handling in the project can be restored in a follow-up PR, if there's interest.

Comment on lines +5 to +9
if(WIN32)
# OpenBLAS includes an underscore suffix on Windows for all of its symbols.
# This is not detected automatically by SuiteSparse or FindBLAS and needs to be set manually.
add_compile_definitions(BLAS64__SUFFIX=_)
endif()
Copy link
Contributor Author

@valgur valgur Jul 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A check_symbol_exists() call to check for dgemm/dgemm_ would be a more robust and general approach, but this at least works for now.

@MonicaLiu0311 MonicaLiu0311 added the requires:testing Needs tests added before merging label Jul 18, 2024
@MonicaLiu0311
Copy link
Contributor

  • Feature testing

    ceres

    Features cxsparse,suitesparse are tested successfully in the following triplet:

    x86-windows
    x64-windows
    x64-windows-static
    

    suitesparse-config & suitesparse-klu & suitesparse-lagraph & suitesparse-mongoose & suitesparse-spex & suitesparse-umfpack

    All features are tested successfully in the following triplet:

    x86-windows
    x64-windows
    x64-windows-static
    

    suitesparse-graphblas

    All features are tested successfully in the following triplet:

    x64-windows
    x64-windows-static
    

    suitesparse-cholmod

    Features matrixops,modify,openmp,partition,supernodal are tested successfully in the following triplet:

    x86-windows
    x64-windows
    x64-windows-static
    

    suitesparse

    Feature gpl is tested successfully in the following triplet:

    x86-windows
    x64-windows
    x64-windows-static
    
@MonicaLiu0311
Copy link
Contributor

  • Usage testing

    The usage test passed on x64-windows (header files found).

    usage

    suitesparse-amd provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(AMD CONFIG REQUIRED)
    target_link_libraries(main PRIVATE SuiteSparse::AMD)
    

    suitesparse-camd provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(CAMD CONFIG REQUIRED)
    target_link_libraries(main PRIVATE SuiteSparse::CAMD)
    

    suitesparse-ccolamd provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(CCOLAMD CONFIG REQUIRED)
    target_link_libraries(main PRIVATE SuiteSparse::CCOLAMD)
    

    suitesparse-colamd provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(COLAMD CONFIG REQUIRED)
    target_link_libraries(main PRIVATE SuiteSparse::COLAMD)
    

    suitesparse-config provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(SuiteSparse_config CONFIG REQUIRED)
    target_link_libraries(main PRIVATE SuiteSparse::SuiteSparseConfig)
    

    suitesparse-btf provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(BTF CONFIG REQUIRED)
    target_link_libraries(main PRIVATE SuiteSparse::BTF)
    

    suitesparse-graphblas provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(GraphBLAS CONFIG REQUIRED)
    target_link_libraries(main PRIVATE SuiteSparse::GraphBLAS)
    

    suitesparse-lagraph provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(LAGraph CONFIG REQUIRED)
    target_link_libraries(main PRIVATE SuiteSparse::LAGraph SuiteSparse::LAGraphX)
    

    suitesparse-ldl provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(LDL CONFIG REQUIRED)
    target_link_libraries(main PRIVATE SuiteSparse::LDL)
    

    suitesparse-mongoose provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(SuiteSparse_Mongoose CONFIG REQUIRED)
    target_link_libraries(main PRIVATE SuiteSparse::Mongoose)
    

    suitesparse-rbio provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(RBio CONFIG REQUIRED)
    target_link_libraries(main PRIVATE SuiteSparse::RBio)
    

    suitesparse-spex provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(SPEX CONFIG REQUIRED)
    target_link_libraries(main PRIVATE SuiteSparse::SPEX)
    

    suitesparse-cholmod provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(CHOLMOD CONFIG REQUIRED)
    target_link_libraries(main PRIVATE SuiteSparse::CHOLMOD)
    

    suitesparse-cxsparse provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(CXSparse CONFIG REQUIRED)
    target_link_libraries(main PRIVATE SuiteSparse::CXSparse)
    

    suitesparse-spqr provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(SPQR CONFIG REQUIRED)
    target_link_libraries(main PRIVATE SuiteSparse::SPQR)
    

    ceres provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(Ceres CONFIG REQUIRED)
    target_link_libraries(main PRIVATE Ceres::ceres)
    

    suitesparse-klu provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(KLU CONFIG REQUIRED)
    target_link_libraries(main PRIVATE SuiteSparse::KLU)
    

    suitesparse-umfpack provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(UMFPACK CONFIG REQUIRED)
    target_link_libraries(main PRIVATE SuiteSparse::UMFPACK)
    

    suitesparse-paru provides CMake targets:

    # this is heuristically generated, and may not be correct
    find_package(ParU CONFIG REQUIRED)
    target_link_libraries(main PRIVATE SuiteSparse::ParU)
    

@MonicaLiu0311
Copy link
Contributor

suitesparse-paru & suitesparse

When testing openmp feature, the following error occurs:

CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:112 (message):
    Command failed: G:/suitesparse/downloads/tools/cmake-3.29.2-windows/cmake-3.29.2-windows-i386/bin/cmake.exe G:/suitesparse/buildtrees/suitesparse-paru/src/v7.7.0-b453f37041.clean/ParU -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=G:/suitesparse/packages/suitesparse-paru_x64-windows/debug -DFETCHCONTENT_FULLY_DISCONNECTED=ON -DBUILD_STATIC_LIBS=0 -DSUITESPARSE_USE_CUDA=OFF -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF -DSUITESPARSE_USE_OPENMP=ON "-DCMAKE_MAKE_PROGRAM=C:/Program Files/Microsoft Visual Studio/2022/Enterprise/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe" -DBUILD_SHARED_LIBS=ON -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=G:/suitesparse/scripts/toolchains/windows.cmake -DVCPKG_TARGET_TRIPLET=x64-windows -DVCPKG_SET_CHARSET_FLAG=ON -DVCPKG_PLATFORM_TOOLSET=v143 -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE -DCMAKE_VERBOSE_MAKEFILE=ON -DVCPKG_APPLOCAL_DEPS=OFF -DCMAKE_TOOLCHAIN_FILE=G:/suitesparse/scripts/buildsystems/vcpkg.cmake -DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON -DVCPKG_CXX_FLAGS= -DVCPKG_CXX_FLAGS_RELEASE= -DVCPKG_CXX_FLAGS_DEBUG= -DVCPKG_C_FLAGS= -DVCPKG_C_FLAGS_RELEASE= -DVCPKG_C_FLAGS_DEBUG= -DVCPKG_CRT_LINKAGE=dynamic -DVCPKG_LINKER_FLAGS= -DVCPKG_LINKER_FLAGS_RELEASE= -DVCPKG_LINKER_FLAGS_DEBUG= -DVCPKG_TARGET_ARCHITECTURE=x64 -DCMAKE_INSTALL_LIBDIR:STRING=lib -DCMAKE_INSTALL_BINDIR:STRING=bin -D_VCPKG_ROOT_DIR=G:/suitesparse -D_VCPKG_INSTALLED_DIR=G:/suitesparse/installed -DVCPKG_MANIFEST_INSTALL=OFF
    Working Directory: G:/suitesparse/buildtrees/suitesparse-paru/x64-windows-dbg
    Error code: 1
    See logs for more information:
      G:\suitesparse\buildtrees\suitesparse-paru\config-x64-windows-dbg-CMakeCache.txt.log
      G:\suitesparse\buildtrees\suitesparse-paru\config-x64-windows-dbg-out.log
      G:\suitesparse\buildtrees\suitesparse-paru\config-x64-windows-dbg-err.log

Call Stack (most recent call first):
  installed/x64-windows/share/vcpkg-cmake/vcpkg_cmake_configure.cmake:276 (vcpkg_execute_required_process)
  ports/suitesparse-paru/portfile.cmake:26 (vcpkg_cmake_configure)
  scripts/ports.cmake:175 (include)

config-x64-windows-dbg-err.log:

CMake Error at CMakeLists.txt:92 (message):
  OpenMP 4.5 required for ParU but not found

suitesparse-cxsparse

When testing complex feature, the following error occurs:

CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:134 (message):
    Command failed: G:/suitesparse/downloads/tools/cmake-3.29.2-windows/cmake-3.29.2-windows-i386/bin/cmake.exe --build . --config Debug --target install -- -v -j9
    Working Directory: G:/suitesparse/buildtrees/suitesparse-cxsparse/x64-windows-dbg
    See logs for more information:
      G:\suitesparse\buildtrees\suitesparse-cxsparse\install-x64-windows-dbg-out.log

Call Stack (most recent call first):
  installed/x64-windows/share/vcpkg-cmake/vcpkg_cmake_build.cmake:74 (vcpkg_execute_build_process)
  installed/x64-windows/share/vcpkg-cmake/vcpkg_cmake_install.cmake:16 (vcpkg_cmake_build)
  ports/suitesparse-cxsparse/portfile.cmake:29 (vcpkg_cmake_install)
  scripts/ports.cmake:175 (include)

install-x64-windows-dbg-out.log:

[1/208] C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1440~1.338\bin\Hostx64\x64\cl.exe   -DCXSparse_EXPORTS -D_CRT_SECURE_NO_WARNINGS -IG:\suitesparse\buildtrees\suitesparse-cxsparse\x64-windows-dbg -IG:\suitesparse\buildtrees\suitesparse-cxsparse\src\v7.7.0-0fc10962f1.clean\CXSparse -IG:\suitesparse\buildtrees\suitesparse-cxsparse\src\v7.7.0-0fc10962f1.clean\CXSparse\Source -IG:\suitesparse\buildtrees\suitesparse-cxsparse\src\v7.7.0-0fc10962f1.clean\CXSparse\Include -IG:\suitesparse\installed\x64-windows\include\suitesparse /nologo /DWIN32 /D_WINDOWS /W3 /utf-8 /MP  /D_DEBUG /MDd /Z7 /Ob0 /Od /RTC1  -std:c11 -MDd /showIncludes /FoCMakeFiles\CXSparse.dir\Source\cs_add.c.obj /FdCMakeFiles\CXSparse.dir\ /FS -c G:\suitesparse\buildtrees\suitesparse-cxsparse\src\v7.7.0-0fc10962f1.clean\CXSparse\Source\cs_add.c
FAILED: CMakeFiles/CXSparse.dir/Source/cs_add.c.obj 
C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1440~1.338\bin\Hostx64\x64\cl.exe   -DCXSparse_EXPORTS -D_CRT_SECURE_NO_WARNINGS -IG:\suitesparse\buildtrees\suitesparse-cxsparse\x64-windows-dbg -IG:\suitesparse\buildtrees\suitesparse-cxsparse\src\v7.7.0-0fc10962f1.clean\CXSparse -IG:\suitesparse\buildtrees\suitesparse-cxsparse\src\v7.7.0-0fc10962f1.clean\CXSparse\Source -IG:\suitesparse\buildtrees\suitesparse-cxsparse\src\v7.7.0-0fc10962f1.clean\CXSparse\Include -IG:\suitesparse\installed\x64-windows\include\suitesparse /nologo /DWIN32 /D_WINDOWS /W3 /utf-8 /MP  /D_DEBUG /MDd /Z7 /Ob0 /Od /RTC1  -std:c11 -MDd /showIncludes /FoCMakeFiles\CXSparse.dir\Source\cs_add.c.obj /FdCMakeFiles\CXSparse.dir\ /FS -c G:\suitesparse\buildtrees\suitesparse-cxsparse\src\v7.7.0-0fc10962f1.clean\CXSparse\Source\cs_add.c
G:\suitesparse\buildtrees\suitesparse-cxsparse\src\v7.7.0-0fc10962f1.clean\CXSparse\Include\cs.h(357): error C2143: syntax error: missing ';' before '*'
G:\suitesparse\buildtrees\suitesparse-cxsparse\src\v7.7.0-0fc10962f1.clean\CXSparse\Include\cs.h(357): error C2059: syntax error: '*'
G:\suitesparse\buildtrees\suitesparse-cxsparse\src\v7.7.0-0fc10962f1.clean\CXSparse\Include\cs.h(359): error C2059: syntax error: '}'
G:\suitesparse\buildtrees\suitesparse-cxsparse\src\v7.7.0-0fc10962f1.clean\CXSparse\Include\cs.h(361): error C2143: syntax error: missing '{' before '*'
G:\suitesparse\buildtrees\suitesparse-cxsparse\src\v7.7.0-0fc10962f1.clean\CXSparse\Include\cs.h(361): error C2143: syntax error: missing ')' before '*'
G:\suitesparse\buildtrees\suitesparse-cxsparse\src\v7.7.0-0fc10962f1.clean\CXSparse\Include\cs.h(361): error C2143: syntax error: missing '{' before '*'
G:\suitesparse\buildtrees\suitesparse-cxsparse\src\v7.7.0-0fc10962f1.clean\CXSparse\Include\cs.h(361): warning C4228: nonstandard extension used: qualifiers after comma in declarator list are ignored

suitesparse-cholmod & suitesparse-spqr

When testing cuda,cuda-redist feature, the following error occurs:

CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:112 (message):
    Command failed: G:/suitesparse/downloads/tools/cmake-3.29.2-windows/cmake-3.29.2-windows-i386/bin/cmake.exe G:/suitesparse/buildtrees/suitesparse-spqr/src/v7.7.0-0fc10962f1.clean/SPQR -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=G:/suitesparse/packages/suitesparse-spqr_x64-windows/debug -DFETCHCONTENT_FULLY_DISCONNECTED=ON -DBUILD_STATIC_LIBS=0 -DSUITESPARSE_USE_CUDA=ON -DSPQR_USE_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=all-major -DSUITESPARSE_USE_STRICT=ON -DSUITESPARSE_USE_FORTRAN=OFF -DSUITESPARSE_DEMOS=OFF "-DCMAKE_MAKE_PROGRAM=C:/Program Files/Microsoft Visual Studio/2022/Enterprise/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe" -DBUILD_SHARED_LIBS=ON -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=G:/suitesparse/scripts/toolchains/windows.cmake -DVCPKG_TARGET_TRIPLET=x64-windows -DVCPKG_SET_CHARSET_FLAG=ON -DVCPKG_PLATFORM_TOOLSET=v143 -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON -DCMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY=ON -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=TRUE -DCMAKE_VERBOSE_MAKEFILE=ON -DVCPKG_APPLOCAL_DEPS=OFF -DCMAKE_TOOLCHAIN_FILE=G:/suitesparse/scripts/buildsystems/vcpkg.cmake -DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=ON -DVCPKG_CXX_FLAGS= -DVCPKG_CXX_FLAGS_RELEASE= -DVCPKG_CXX_FLAGS_DEBUG= -DVCPKG_C_FLAGS= -DVCPKG_C_FLAGS_RELEASE= -DVCPKG_C_FLAGS_DEBUG= -DVCPKG_CRT_LINKAGE=dynamic -DVCPKG_LINKER_FLAGS= -DVCPKG_LINKER_FLAGS_RELEASE= -DVCPKG_LINKER_FLAGS_DEBUG= -DVCPKG_TARGET_ARCHITECTURE=x64 -DCMAKE_INSTALL_LIBDIR:STRING=lib -DCMAKE_INSTALL_BINDIR:STRING=bin -D_VCPKG_ROOT_DIR=G:/suitesparse -D_VCPKG_INSTALLED_DIR=G:/suitesparse/installed -DVCPKG_MANIFEST_INSTALL=OFF
    Working Directory: G:/suitesparse/buildtrees/suitesparse-spqr/x64-windows-dbg
    Error code: 1
    See logs for more information:
      G:\suitesparse\buildtrees\suitesparse-spqr\config-x64-windows-dbg-CMakeCache.txt.log
      G:\suitesparse\buildtrees\suitesparse-spqr\config-x64-windows-dbg-out.log
      G:\suitesparse\buildtrees\suitesparse-spqr\config-x64-windows-dbg-err.log

Call Stack (most recent call first):
  installed/x64-windows/share/vcpkg-cmake/vcpkg_cmake_configure.cmake:276 (vcpkg_execute_required_process)
  ports/suitesparse-spqr/portfile.cmake:29 (vcpkg_cmake_configure)
  scripts/ports.cmake:175 (include)

config-x64-windows-dbg-err.log:

CMake Error at G:/suitesparse/buildtrees/suitesparse-spqr/src/v7.7.0-0fc10962f1.clean/SuiteSparse_config/cmake_modules/SuiteSparsePolicy.cmake:363 (message):
  CUDA required for SuiteSparse but not found
Call Stack (most recent call first):
  CMakeLists.txt:41 (include)

suitesparse-graphblas:x86-windows

When installing suitesparse-graphblas:x86-windows, the following error occurs:

CMake Error at scripts/cmake/vcpkg_execute_build_process.cmake:134 (message):
    Command failed: G:/suitesparse/downloads/tools/cmake-3.29.2-windows/cmake-3.29.2-windows-i386/bin/cmake.exe --build . --config Debug --target install -- -v -j9
    Working Directory: G:/suitesparse/buildtrees/suitesparse-graphblas/x86-windows-dbg
    See logs for more information:
      G:\suitesparse\buildtrees\suitesparse-graphblas\install-x86-windows-dbg-out.log

Call Stack (most recent call first):
  installed/x64-windows/share/vcpkg-cmake/vcpkg_cmake_build.cmake:74 (vcpkg_execute_build_process)
  installed/x64-windows/share/vcpkg-cmake/vcpkg_cmake_install.cmake:16 (vcpkg_cmake_build)
  ports/suitesparse-graphblas/portfile.cmake:35 (vcpkg_cmake_install)
  scripts/ports.cmake:175 (include)

install-x86-windows-dbg-out.log:

[797/798] C:\Windows\system32\cmd.exe /C "C:\Windows\system32\cmd.exe /C "G:\suitesparse\downloads\tools\cmake-3.29.2-windows\cmake-3.29.2-windows-i386\bin\cmake.exe -E __create_def G:\suitesparse\buildtrees\suitesparse-graphblas\x86-windows-dbg\CMakeFiles\GraphBLAS.dir\.\exports.def G:\suitesparse\buildtrees\suitesparse-graphblas\x86-windows-dbg\CMakeFiles\GraphBLAS.dir\.\exports.def.objs && cd G:\suitesparse\buildtrees\suitesparse-graphblas\x86-windows-dbg" && G:\suitesparse\downloads\tools\cmake-3.29.2-windows\cmake-3.29.2-windows-i386\bin\cmake.exe -E vs_link_dll --intdir=CMakeFiles\GraphBLAS.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\mt.exe --manifests  -- C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1440~1.338\bin\Hostx64\x86\link.exe  @CMakeFiles\GraphBLAS.rsp  /out:graphblas.dll /implib:graphblas.lib /pdb:graphblas.pdb /dll /version:9.2 /machine:X86 /nologo    /debug /INCREMENTAL  /DEF:CMakeFiles\GraphBLAS.dir\.\exports.def && cd ."
FAILED: graphblas.dll graphblas.lib 
C:\Windows\system32\cmd.exe /C "C:\Windows\system32\cmd.exe /C "G:\suitesparse\downloads\tools\cmake-3.29.2-windows\cmake-3.29.2-windows-i386\bin\cmake.exe -E __create_def G:\suitesparse\buildtrees\suitesparse-graphblas\x86-windows-dbg\CMakeFiles\GraphBLAS.dir\.\exports.def G:\suitesparse\buildtrees\suitesparse-graphblas\x86-windows-dbg\CMakeFiles\GraphBLAS.dir\.\exports.def.objs && cd G:\suitesparse\buildtrees\suitesparse-graphblas\x86-windows-dbg" && G:\suitesparse\downloads\tools\cmake-3.29.2-windows\cmake-3.29.2-windows-i386\bin\cmake.exe -E vs_link_dll --intdir=CMakeFiles\GraphBLAS.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\mt.exe --manifests  -- C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1440~1.338\bin\Hostx64\x86\link.exe  @CMakeFiles\GraphBLAS.rsp  /out:graphblas.dll /implib:graphblas.lib /pdb:graphblas.pdb /dll /version:9.2 /machine:X86 /nologo    /debug /INCREMENTAL  /DEF:CMakeFiles\GraphBLAS.dir\.\exports.def && cd ."
LINK Pass 1: command "C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1440~1.338\bin\Hostx64\x86\link.exe @CMakeFiles\GraphBLAS.rsp /out:graphblas.dll /implib:graphblas.lib /pdb:graphblas.pdb /dll /version:9.2 /machine:X86 /nologo /debug /INCREMENTAL /DEF:CMakeFiles\GraphBLAS.dir\.\exports.def /MANIFEST /MANIFESTFILE:CMakeFiles\GraphBLAS.dir/intermediate.manifest CMakeFiles\GraphBLAS.dir/manifest.res" failed (exit code 1120) with the following output:
   Creating library graphblas.lib and object graphblas.exp
GB_AxB_saxpy3_generic_secondj32.c.obj : error LNK2001: unresolved external symbol __InterlockedOr64
GB_AxB_saxpy3_generic_secondj64.c.obj : error LNK2001: unresolved external symbol __InterlockedOr64
GB_AxB_saxpy3_generic_unflipped.c.obj : error LNK2001: unresolved external symbol __InterlockedOr64
GB_AxB_saxpy3_generic_firstj32.c.obj : error LNK2001: unresolved external symbol __InterlockedOr64
GB_AxB_saxpy3_generic_firstj64.c.obj : error LNK2001: unresolved external symbol __InterlockedOr64
GB_AxB_saxpy3_generic_flipped.c.obj : error LNK2001: unresolved external symbol __InterlockedOr64
GB_AxB_saxpy3_generic_second.c.obj : error LNK2001: unresolved external symbol __InterlockedOr64
GB_AxB__any_pair_iso.c.obj : error LNK2001: unresolved external symbol __InterlockedOr64
GB_AxB_saxpy3_generic_first.c.obj : error LNK2001: unresolved external symbol __InterlockedOr64
GB_AxB_saxpy3_generic_firsti32.c.obj : error LNK2001: unresolved external symbol __InterlockedOr64
GB_AxB_saxpy3_generic_firsti64.c.obj : error LNK2001: unresolved external symbol __InterlockedOr64
GB_AxB_saxpy3_sym_nsb.c.obj : error LNK2019: unresolved external symbol __InterlockedExchange64 referenced in function _GB_AxB_saxpy3_sym_nsb$omp$1
@MonicaLiu0311 MonicaLiu0311 removed the requires:testing Needs tests added before merging label Jul 19, 2024
@MonicaLiu0311 MonicaLiu0311 marked this pull request as draft July 19, 2024 09:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:new-port The issue is requesting a new library to be added; consider making a PR! category:port-update The issue is with a library, which is requesting update new revision
4 participants