-
Notifications
You must be signed in to change notification settings - Fork 96
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
Circular link dependency error on Windows in 5.3.0 #71
Comments
My guess is that
Then when I link the application, I choose my favorite blas implementation, which hopefully has its own self contained error handling. If you must have dynamic libraries and want the CBLAS, I suggest copying |
I think it's a good suggestion from @tcaduser . |
Is that sufficient? There are several other unresolved external symbols beyond Also, why did this only begin in 5.3.0? Building in 5.2.1 succeeds. Was the code significantly rearchitected? |
@xiaoyeli adding |
Working through the build, this isn't limited to $ VERBOSE=1 cmake .. -Denable_internal_blaslib=YES && cmake --build .
Re-run cmake no build system arguments
Process XSDK defaults ...
USE_XSDK_DEFAULTS = 'TRUE'
-- XSDK: Setting default BUILD_SHARED_LIBS=TRUE
-- XSDK: Setting default CMAKE_BUILD_TYPE=DEBUG
-- SuperLU will be built as a shared library.
-- The C compiler identification is AppleClang 14.0.0.14000029
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- The Fortran compiler identification is GNU 12.2.0
-- Checking whether Fortran compiler has -isysroot
-- Checking whether Fortran compiler has -isysroot - yes
-- Checking whether Fortran compiler supports OSX deployment target flag
-- Checking whether Fortran compiler supports OSX deployment target flag - yes
-- Detecting Fortran compiler ABI info
-- Detecting Fortran compiler ABI info - done
-- Check for working Fortran compiler: /usr/local/bin/gfortran - skipped
-- Did not find or specify BLAS so configure to build internal CBLAS ...
-- Configuring done
CMake Warning (dev):
Policy CMP0042 is not set: MACOSX_RPATH is enabled by default. Run "cmake
--help-policy CMP0042" for policy details. Use the cmake_policy command to
set the policy and suppress this warning.
MACOSX_RPATH is not specified for the following targets:
blas
matgen
superlu
This warning is for project developers. Use -Wno-dev to suppress it.
-- Generating done
-- Build files have been written to: /Users/dev/Git/superlu/build
[ 0%] Building C object CBLAS/CMakeFiles/blas.dir/input_error.c.o
[ 0%] Building C object CBLAS/CMakeFiles/blas.dir/isamax.c.o
[ 0%] Building C object CBLAS/CMakeFiles/blas.dir/sasum.c.o
[ 1%] Building C object CBLAS/CMakeFiles/blas.dir/saxpy.c.o
[ 1%] Building C object CBLAS/CMakeFiles/blas.dir/scopy.c.o
[ 1%] Building C object CBLAS/CMakeFiles/blas.dir/sdot.c.o
[ 2%] Building C object CBLAS/CMakeFiles/blas.dir/snrm2.c.o
[ 2%] Building C object CBLAS/CMakeFiles/blas.dir/srot.c.o
[ 2%] Building C object CBLAS/CMakeFiles/blas.dir/sscal.c.o
[ 2%] Building C object CBLAS/CMakeFiles/blas.dir/sswap.c.o
[ 3%] Building C object CBLAS/CMakeFiles/blas.dir/sgemv.c.o
[ 3%] Building C object CBLAS/CMakeFiles/blas.dir/ssymv.c.o
[ 3%] Building C object CBLAS/CMakeFiles/blas.dir/strsv.c.o
[ 4%] Building C object CBLAS/CMakeFiles/blas.dir/sger.c.o
[ 4%] Building C object CBLAS/CMakeFiles/blas.dir/ssyr2.c.o
[ 4%] Building C object CBLAS/CMakeFiles/blas.dir/idamax.c.o
[ 4%] Building C object CBLAS/CMakeFiles/blas.dir/dasum.c.o
[ 5%] Building C object CBLAS/CMakeFiles/blas.dir/daxpy.c.o
[ 5%] Building C object CBLAS/CMakeFiles/blas.dir/dcopy.c.o
[ 5%] Building C object CBLAS/CMakeFiles/blas.dir/ddot.c.o
[ 6%] Building C object CBLAS/CMakeFiles/blas.dir/dnrm2.c.o
[ 6%] Building C object CBLAS/CMakeFiles/blas.dir/drot.c.o
[ 6%] Building C object CBLAS/CMakeFiles/blas.dir/dscal.c.o
[ 6%] Building C object CBLAS/CMakeFiles/blas.dir/dswap.c.o
[ 7%] Building C object CBLAS/CMakeFiles/blas.dir/dgemv.c.o
[ 7%] Building C object CBLAS/CMakeFiles/blas.dir/dsymv.c.o
[ 7%] Building C object CBLAS/CMakeFiles/blas.dir/dtrsv.c.o
[ 8%] Building C object CBLAS/CMakeFiles/blas.dir/dger.c.o
[ 8%] Building C object CBLAS/CMakeFiles/blas.dir/dsyr2.c.o
[ 8%] Building C object CBLAS/CMakeFiles/blas.dir/icamax.c.o
[ 8%] Building C object CBLAS/CMakeFiles/blas.dir/scasum.c.o
[ 9%] Building C object CBLAS/CMakeFiles/blas.dir/caxpy.c.o
[ 9%] Building C object CBLAS/CMakeFiles/blas.dir/ccopy.c.o
[ 9%] Building C object CBLAS/CMakeFiles/blas.dir/scnrm2.c.o
[ 10%] Building C object CBLAS/CMakeFiles/blas.dir/cscal.c.o
[ 10%] Building C object CBLAS/CMakeFiles/blas.dir/cswap.c.o
[ 10%] Building C object CBLAS/CMakeFiles/blas.dir/cdotc.c.o
[ 10%] Building C object CBLAS/CMakeFiles/blas.dir/cgemv.c.o
[ 11%] Building C object CBLAS/CMakeFiles/blas.dir/chemv.c.o
[ 11%] Building C object CBLAS/CMakeFiles/blas.dir/ctrsv.c.o
[ 11%] Building C object CBLAS/CMakeFiles/blas.dir/cgerc.c.o
[ 12%] Building C object CBLAS/CMakeFiles/blas.dir/cher2.c.o
[ 12%] Building C object CBLAS/CMakeFiles/blas.dir/izamax.c.o
[ 12%] Building C object CBLAS/CMakeFiles/blas.dir/dzasum.c.o
[ 13%] Building C object CBLAS/CMakeFiles/blas.dir/zaxpy.c.o
[ 13%] Building C object CBLAS/CMakeFiles/blas.dir/zcopy.c.o
[ 13%] Building C object CBLAS/CMakeFiles/blas.dir/dznrm2.c.o
[ 13%] Building C object CBLAS/CMakeFiles/blas.dir/zscal.c.o
[ 14%] Building C object CBLAS/CMakeFiles/blas.dir/dcabs1.c.o
[ 14%] Building C object CBLAS/CMakeFiles/blas.dir/zswap.c.o
[ 14%] Building C object CBLAS/CMakeFiles/blas.dir/zdotc.c.o
[ 15%] Building C object CBLAS/CMakeFiles/blas.dir/zgemv.c.o
[ 15%] Building C object CBLAS/CMakeFiles/blas.dir/zhemv.c.o
[ 15%] Building C object CBLAS/CMakeFiles/blas.dir/ztrsv.c.o
[ 15%] Building C object CBLAS/CMakeFiles/blas.dir/zgerc.c.o
[ 16%] Building C object CBLAS/CMakeFiles/blas.dir/zher2.c.o
[ 16%] Linking C shared library libblas.dylib
Undefined symbols for architecture x86_64:
"_c_div", referenced from:
_ctrsv_ in ctrsv.c.o
"_d_cnjg", referenced from:
_zdotc_ in zdotc.c.o
_zgemv_ in zgemv.c.o
_zhemv_ in zhemv.c.o
_ztrsv_ in ztrsv.c.o
_zgerc_ in zgerc.c.o
_zher2_ in zher2.c.o
"_d_imag", referenced from:
_dznrm2_ in dznrm2.c.o
"_r_cnjg", referenced from:
_cdotc_ in cdotc.c.o
_cgemv_ in cgemv.c.o
_chemv_ in chemv.c.o
_ctrsv_ in ctrsv.c.o
_cgerc_ in cgerc.c.o
_cher2_ in cher2.c.o
"_r_imag", referenced from:
_icamax_ in icamax.c.o
_scasum_ in scasum.c.o
_caxpy_ in caxpy.c.o
_scnrm2_ in scnrm2.c.o
"_z_div", referenced from:
_ztrsv_ in ztrsv.c.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [CBLAS/libblas.dylib] Error 1
make[1]: *** [CBLAS/CMakeFiles/blas.dir/all] Error 2
make: *** [all] Error 2 |
Building with VS 2019 as following fails, with CBLAS complaining of unresolved external symbols from SuperLU
Build Error
I tried
msbuild CBLAS\blas.vcxproj
andmsbuild -p:BuildProjectReferences=false CBLAS\blas.vcxproj
, but the same error happens.I also tried
msbuild -p:BuildProjectReferences=false SRC\superlu.vcxproj
, which almost compiled but failed to linkblas.lib
(as it wasn't built):Note that the last two failures ONLY happen on 5.3.0. On 5.2.1, the following commands succeed:
The text was updated successfully, but these errors were encountered: