ports/162706: math/suitesparse port does not properly detect or link atlas

Don Lewis truckman at FreeBSD.org
Sun Nov 20 22:20:11 UTC 2011


>Number:         162706
>Category:       ports
>Synopsis:       math/suitesparse port does not properly detect or link atlas
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Nov 20 22:20:10 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Don Lewis
>Release:        FreeBSD 9.9-CURRENT i386
>Organization:
none
>Environment:
System: FreeBSD scratch.catspoiler.org 9.9-CURRENT FreeBSD 10.0-CURRENT #64: Mon Nov 14 15:09:48 PST 2011 dl at scratch.catspoiler.org:/usr/obj/usr/src/sys/GENERICSMB i386

	atlas-3.8.4,1

>Description:

	The math/suitesparse port looks for and tries to link to
 	libatlas_r.so, which is no longer installed by the math/atlas port.

>How-To-Repeat:


>Fix:

	According to math/atlas/pkg-descr, it is no longer necessary
	to explictly link with -latlas.  The following patch works for me:

Index: math/suitesparse/Makefile
===================================================================
RCS file: /home/ncvs/ports/math/suitesparse/Makefile,v
retrieving revision 1.38
diff -u -r1.38 Makefile
--- math/suitesparse/Makefile	20 Jul 2011 16:17:35 -0000	1.38
+++ math/suitesparse/Makefile	20 Nov 2011 19:37:28 -0000
@@ -30,7 +30,7 @@
 
 .if exists(${LOCALBASE}/lib/libgoto2.so)
 WITH_BLAS?=	gotoblas
-.elif exists(${LOCALBASE}/lib/libatlas_r.so)
+.elif exists(${LOCALBASE}/lib/libatlas.so)
 WITH_BLAS?=	atlas
 .else
 WITH_BLAS?=	reference
@@ -51,8 +51,8 @@
 LAPACK =	-lgoto2p ${PTHREAD_LIBS}
 .elif ${WITH_BLAS} == atlas
 LIB_DEPENDS+=	atlas:${PORTSDIR}/math/atlas
-BLAS=		-lptf77blas -lptcblas -latlas_r ${PTHREAD_LIBS}
-LAPACK =	-lalapack_r ${PTHREAD_LIBS}
+BLAS=		-lptf77blas -lptcblas ${PTHREAD_LIBS}
+LAPACK =	-lalapack ${PTHREAD_LIBS}
 .endif
 
 .if ${ARCH} == "sparc64"



	Because the Makefiles for arpack++, arpack, blocksolve95,
	fflas-ffpack, freemat, lapack++, lapack95, lapacke, levmar,
	libtsnnls, mumps, petsc, scalapack, suitesparse, and taucs
	share similar code for selecting the desired libraryies, it
	would probably be better to move it to common location like
	ports/Mk/bsd.blas.mk that could be included in the individual
	port Makefiles to make future maintenance easier.

	Something like this (though the library selection probably
	requires more thought):

.if exists(${LOCALBASE}/lib/libgoto2.so)
WITH_BLAS?=     gotoblas
.elif exists(${LOCALBASE}/lib/libatlas.so)
WITH_BLAS?=     atlas
.else
WITH_BLAS?=     reference
.endif

.if ${WITH_BLAS} == reference
LIB_DEPENDS+=	blas.2:${PORTSDIR}/math/blas
LIB_DEPENDS+=	lapack.4:${PORTSDIR}/math/lapack
BLAS_ST_C=	-lblas
BLAS_ST_F77=	-lblas
BLAS_MT_C=	-lblas
BLAS_MT_F77=	-lblas
LAPACK=         -llapack
.elif ${WITH_BLAS} == gotoblas
LIB_DEPENDS+=   goto2:${PORTSDIR}/math/gotoblas
LIB_DEPENDS+=   lapack.4:${PORTSDIR}/math/lapack
BLAS_ST_C=	-lgoto2p ${PTHREAD_LIBS}
BLAS_ST_F77=	-lgoto2p ${PTHREAD_LIBS}
BLAS_MT_C=	-lgoto2p ${PTHREAD_LIBS}
BLAS_MT_F77=	-lgoto2p ${PTHREAD_LIBS}
LAPACK =        -lgoto2p ${PTHREAD_LIBS}
.elif ${WITH_BLAS} == atlas
LIB_DEPENDS+=   atlas:${PORTSDIR}/math/atlas
BLAS_ST_C=	-lcblas
BLAS_ST_F77=	-lf77blas
BLAS_MT_C=	-lptcblas ${PTHREAD_LIBS}
BLAS_MT_F77=	-lptf77blas ${PTHREAD_LIBS}
LAPACK =        -lalapack ${PTHREAD_LIBS}
.endif

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list