Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 729636

Summary: sci-libs/spqr-2.0.9 - qrdemoc.c:(.text.startup+0x94): undefined reference to `cholmod_l_norm_sparse'
Product: Gentoo Linux Reporter: Rolf Eike Beer <eike>
Component: Current packagesAssignee: Gentoo Science Related Packages <sci>
Status: CONFIRMED ---    
Severity: normal CC: frp.bissey, mjo
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 716960    
Attachments: build.log

Description Rolf Eike Beer archtester 2020-06-25 15:20:44 UTC
Created attachment 646400 [details]
build.log

qrdemoc.c: In function ‘main’:
qrdemoc.c:44:13: warning: implicit declaration of function ‘cholmod_l_norm_sparse’; did you mean ‘cholmod_l_copy_sparse’? [-Wimplicit-function-declaration]
   44 |     anorm = cholmod_l_norm_sparse (A, 1, cc) ;
      |             ^~~~~~~~~~~~~~~~~~~~~
      |             cholmod_l_copy_sparse
qrdemoc.c:60:5: warning: implicit declaration of function ‘cholmod_l_sdmult’; did you mean ‘cholmod_l_sort’? [-Wimplicit-function-declaration]
   60 |     cholmod_l_sdmult (A, 0, one, minusone, X, Residual, cc) ;
      |     ^~~~~~~~~~~~~~~~
      |     cholmod_l_sort
qrdemoc.c:61:13: warning: implicit declaration of function ‘cholmod_l_norm_dense’; did you mean ‘cholmod_l_copy_dense’? [-Wimplicit-function-declaration]
   61 |     rnorm = cholmod_l_norm_dense (Residual, 2, cc) ;
      |             ^~~~~~~~~~~~~~~~~~~~
      |             cholmod_l_copy_dense

libtool: link: sparc-unknown-linux-gnu-g++ -O2 -mcpu=niagara2 -pipe -Wcast-align -Wl,-O1 -Wl,--as-needed -o .libs/qrsimple qrsimple.o  ../Source/.libs/libspqr.so -L=/usr/lib //usr/lib/libcholmod.so //usr/lib/libamd.so //usr/lib/libcolamd.so -lmetis //usr/lib/libcamd.so //usr/lib/libccolamd.so -lblas -llapack //usr/lib/libsuitesparseconfig.so -lrt -lm
/usr/lib/gcc/sparc-unknown-linux-gnu/9.3.0/../../../../sparc-unknown-linux-gnu/bin/ld: qrdemoc.o: in function `main':
qrdemoc.c:(.text.startup+0x94): undefined reference to `cholmod_l_norm_sparse'
/usr/lib/gcc/sparc-unknown-linux-gnu/9.3.0/../../../../sparc-unknown-linux-gnu/bin/ld: qrdemoc.c:(.text.startup+0x138): undefined reference to `cholmod_l_sdmult'
/usr/lib/gcc/sparc-unknown-linux-gnu/9.3.0/../../../../sparc-unknown-linux-gnu/bin/ld: qrdemoc.c:(.text.startup+0x148): undefined reference to `cholmod_l_norm_dense'
/usr/lib/gcc/sparc-unknown-linux-gnu/9.3.0/../../../../sparc-unknown-linux-gnu/bin/ld: qrdemoc.c:(.text.startup+0x168): undefined reference to `cholmod_l_norm_dense'
Comment 1 Michael Orlitzky gentoo-dev 2020-07-15 14:24:57 UTC
Maybe spqr needs an improved lower bound on sci-libs/cholmod?
Comment 2 François Bissey 2020-07-16 20:56:28 UTC
Definitely. Actually, I also did some work on getting the soname from upstream incorporated so we could use subslots. In principle it should be appropriate for this issue.

The problem of course is that each time I do something like this we have new source tarballs without upstream version bumps. A better strategy is needed to deal with the suitesparse upstream metapackage sources.
Comment 3 Michael Orlitzky gentoo-dev 2020-07-17 01:04:53 UTC
Hm, spqr DOES need a newer cholmod, but having an older cholmod doesn't cause the particular problem reported here. Instead I get errors like

  SuiteSparseQR_expert.cpp:148:9: error: 'cholmod_common' {aka 'struct 
  cholmod_common_struct'} has no member named 'SPQR_analyze_time'

So we're back to square one here.