Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Apr 2012 19:08:49 GMT
From:      Oliver Hartmann <ohartman@zedat.fu-berlin.de>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/166703: math/superlu: shared library is not created correctly
Message-ID:  <201204061908.q36J8nJI056779@red.freebsd.org>
Resent-Message-ID: <201204061910.q36JA2SZ068403@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         166703
>Category:       ports
>Synopsis:       math/superlu: shared library is not created correctly
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Apr 06 19:10:02 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Oliver Hartmann
>Release:        FreeBSD 9.-STABLE/amd64 and FreeBSD 10-CURRENT/amd64
>Organization:
FU Berlin
>Environment:
>Description:
The way the shared library of math/superlu is created, is nonsense (I recommended/sent pacth to do so, sorry for the bullshit).

Attached, you'll find some changes to the port that, hopefully, correct this.

Please reviev the new "making of" ...

Regards,
Oliver
>How-To-Repeat:

>Fix:


Patch attached with submission follows:

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	./
#	./Makefile
#	./distinfo
#	./pkg-descr
#	./pkg-plist
#	./files
#	./files/patch-SRC+sp_coletree.c
#	./files/patch-SRC-Makefile
#	./files/patch-make.inc
#
echo c - ./
mkdir -p ./ > /dev/null 2>&1
echo x - ./Makefile
sed 's/^X//' >./Makefile << '464ef7c6571951809b23e262cbe26e19'
X# New ports collection makefile for:	SuperLU
X# Date created:		31 Oct 97
X# Whom:			Pedro Giffuni <giffunip@asme.org>
X#
X# $FreeBSD: ports/math/superlu/Makefile,v 1.43 2012/03/14 01:44:04 maho Exp $
X#
X
XPORTNAME=	superlu
XPORTREVISION=	4
XDISTVERSION=	${P_VERSION}.20060201
XCATEGORIES=	math
XMASTER_SITES=	http://crd.lbl.gov/~xiaoye/SuperLU/ \
X		http://crd.lbl.gov/~xiaoye/:doc
XDISTNAME=	${PORTNAME}_${P_VERSION}
X.ifndef NOPORTDOCS
XDISTFILES=	${DISTNAME}${EXTRACT_SUFX} superlu_ug.pdf SLU_general.ps.gz:doc simax95.ps.gz:doc
X.endif
XDIST_SUBDIR=	${PORTNAME}
XEXTRACT_ONLY=	${DISTNAME}${EXTRACT_SUFX}
X
XMAINTAINER=	maho@FreeBSD.org
XCOMMENT=	A library of routines for performing sparse factorization
X
X.include <bsd.port.pre.mk>
X
X.if exists(${LOCALBASE}/lib/libgoto2.so)
XWITH_BLAS?=	gotoblas
X.elif exists(${LOCALBASE}/lib/libatlas.so)
XWITH_BLAS?=	atlas
X.else
XWITH_BLAS?=	reference
X.endif
X
X. if ${WITH_BLAS} == reference
XLIB_DEPENDS+=	blas.2:${PORTSDIR}/math/blas
XBLAS=		-lblas
X.elif ${WITH_BLAS} == gotoblas
XLIB_DEPENDS+=	goto2:${PORTSDIR}/math/gotoblas
XBLAS=		-lgoto2p
X.elif ${WITH_BLAS} == atlas
XLIB_DEPENDS+=	atlas:${PORTSDIR}/math/atlas
XBLAS=		-lptf77blas
X.endif
X
XUSE_FORTRAN=	yes
XUSE_LDCONFIG=	yes
X
XP_VERSION=	3.0
XWRKSRC=		${WRKDIR}/SuperLU_${P_VERSION}
XALL_TARGET=	lib
X
XARCH2FIX=	SRC/Makefile TESTING/MATGEN/Makefile CBLAS/Makefile make.inc	\
X		MAKE_INC/make.alpha MAKE_INC/make.inc
X
Xpre-build:
X	@${REINPLACE_CMD} -e 's+%%BLAS%%+-L${LOCALBASE}/lib ${BLAS}+ ; \
X			s+%%CC%%+${CC}+; s+%%FC%%+${FC}+; \
X			s+%%CFLAGS%%+${CFLAGS}+; \
X			s+%%FFLAGS%%+${FFLAGS}+' \
X	${WRKSRC}/make.inc
X.for fmk in ${ARCH2FIX}
X	@${REINPLACE_CMD} -e 's|^ARCH *.= ar|ARCMD = ar| ; \
X		s|\$$(ARCH)|$$(ARCMD)|' ${WRKSRC}/${fmk}
X.endfor
X
Xdo-install:
X	${INSTALL_DATA} ${WRKSRC}/libsuperlu_${P_VERSION}.a \
X		${PREFIX}/lib/libsuperlu.a
X	${INSTALL_DATA} ${WRKSRC}/libsuperlu_${P_VERSION}.so \
X		${PREFIX}/lib/libsuperlu.so.${PORTREVISION}
X	${LN} -f -s ${PREFIX}/lib/libsuperlu.so.${PORTREVISION} \
X		${PREFIX}/lib/libsuperlu.so
X	@${MKDIR} ${PREFIX}/include/superlu
X	${INSTALL_DATA} ${WRKSRC}/SRC/*.h ${PREFIX}/include/superlu
X.if !defined(NOPORTDOCS)
X	@${MKDIR} ${DOCSDIR}
X	${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/SLU_general.ps.gz ${DOCSDIR}
X	${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/simax95.ps.gz ${DOCSDIR}
X	${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/superlu_ug.pdf ${DOCSDIR}
X.endif
X
Xregression-test: build
X	@(cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} testing )
X	@(cd ${WRKSRC}/TESTING && ${CAT} *.out )
X	
X.include <bsd.port.post.mk>
464ef7c6571951809b23e262cbe26e19
echo x - ./distinfo
sed 's/^X//' >./distinfo << 'aec8793adfd5b7c3f00e62ae41a09ac2'
XSHA256 (superlu/superlu_3.0.tar.gz) = d0132a3a2fb6269dc8faa0b9ea9611764e8ca31265441f64cfc80485a86d5784
XSIZE (superlu/superlu_3.0.tar.gz) = 1134160
XSHA256 (superlu/superlu_ug.pdf) = 4657e60fb7832465b60e208613992d29b6bbd8110103bfe0f5cee0ab79b67766
XSIZE (superlu/superlu_ug.pdf) = 458405
XSHA256 (superlu/SLU_general.ps.gz) = 00d00cedfadd96a42014d22b30c0cc451a575d8d309774519068b11d4be1ebe5
XSIZE (superlu/SLU_general.ps.gz) = 89463
XSHA256 (superlu/simax95.ps.gz) = b7e7705a280336474a25b0a1aef57226d81ea0dc6f18728b7347cb1726f91d2a
XSIZE (superlu/simax95.ps.gz) = 138096
aec8793adfd5b7c3f00e62ae41a09ac2
echo x - ./pkg-descr
sed 's/^X//' >./pkg-descr << '0e313719ff012ceaf97a028d51caa8f5'
X			SuperLU (Version 3.0)
X			=====================
X
XSuperLU is a general purpose library for the direct solution of large, 
Xsparse, nonsymmetric systems of linear equations on high performance 
Xmachines. The library is written in C and is callable from either C or 
XFortran. The library routines will perform an LU decomposition with 
Xpartial pivoting and triangular system solves through forward and back 
Xsubstitution. The LU factorization routines can handle non-square matrices 
Xbut the triangular solves are performed only for square matrices. The 
Xmatrix columns may be preordered (before factorization) either through 
Xlibrary or user supplied routines. This preordering for sparsity is 
Xcompletely separate from the factorization. Working precision iterative 
Xrefinement subroutines are provided for improved backward stability. 
XRoutines are also provided to equilibrate the system, estimate the 
Xcondition number, calculate the relative backward error, and estimate 
Xerror bounds for the refined solutions.
X
XWWW: http://crd.lbl.gov/~xiaoye/SuperLU/
X
XDevelopers:	Sherry Li
X		Jim Demmel
X		John Gilbert
XNOTE: This library has to be linked with BLAS or a compatible library.
0e313719ff012ceaf97a028d51caa8f5
echo x - ./pkg-plist
sed 's/^X//' >./pkg-plist << 'ef3e7f63841ae908ba397c2bef1fbad6'
Xinclude/superlu/colamd.h
Xinclude/superlu/old_colamd.h
Xinclude/superlu/slu_Cnames.h
Xinclude/superlu/slu_cdefs.h
Xinclude/superlu/slu_dcomplex.h
Xinclude/superlu/slu_ddefs.h
Xinclude/superlu/slu_scomplex.h
Xinclude/superlu/slu_sdefs.h
Xinclude/superlu/slu_util.h
Xinclude/superlu/slu_zdefs.h
Xinclude/superlu/supermatrix.h
Xlib/libsuperlu.a
Xlib/libsuperlu.so
Xlib/libsuperlu.so.4
X@dirrm include/superlu
X%%PORTDOCS%%%%DOCSDIR%%/SLU_general.ps.gz
X%%PORTDOCS%%%%DOCSDIR%%/simax95.ps.gz
X%%PORTDOCS%%%%DOCSDIR%%/superlu_ug.pdf
X%%PORTDOCS%%@dirrm %%DOCSDIR%%
ef3e7f63841ae908ba397c2bef1fbad6
echo c - ./files
mkdir -p ./files > /dev/null 2>&1
echo x - ./files/patch-SRC+sp_coletree.c
sed 's/^X//' >./files/patch-SRC+sp_coletree.c << 'e83dfe18c1d85c6574b6b73a9f0cc262'
X--- SRC/sp_coletree.c.orig	Fri Sep 26 08:22:05 2003
X+++ SRC/sp_coletree.c	Thu Apr  1 20:29:10 2004
X@@ -2,6 +2,9 @@
X /*  Elimination tree computation and layout routines */
X 
X #include <stdio.h>
X+#ifndef __STDC__
X+#include <malloc.h>
X+#endif
X #include <stdlib.h>
X #include "dsp_defs.h"
X 
e83dfe18c1d85c6574b6b73a9f0cc262
echo x - ./files/patch-SRC-Makefile
sed 's/^X//' >./files/patch-SRC-Makefile << '69c59906d11ae90b6b88c4e4f5f8dbd1'
X--- SRC/Makefile.orig	2006-01-06 00:09:14.000000000 +0100
X+++ SRC/Makefile	2012-04-06 20:56:28.000000000 +0200
X@@ -89,39 +89,47 @@
X 	zcolumn_dfs.o zcolumn_bmod.o zpivotL.o zpruneL.o \
X 	zmemory.o zutil.o zmyblas2.o
X 
X-all:    single double complex complex16
X+all:    single double complex complex16 shared
X 
X single: $(SLUSRC) $(ALLAUX) $(LAAUX) $(SLASRC) $(SCLAUX)
X-	$(ARCH) $(ARCHFLAGS) ../$(SUPERLULIB) \
X+	$(ARCMD) $(ARCHFLAGS) ../$(SUPERLULIB) \
X 		$(SLUSRC) $(ALLAUX) $(LAAUX) $(SLASRC) $(SCLAUX)
X 	$(RANLIB) ../$(SUPERLULIB)
X 
X double: $(DLUSRC) $(ALLAUX) $(LAAUX) $(DLASRC) $(DZLAUX)
X-	$(ARCH) $(ARCHFLAGS) ../$(SUPERLULIB) \
X+	$(ARCMD) $(ARCHFLAGS) ../$(SUPERLULIB) \
X                 $(DLUSRC) $(ALLAUX) $(LAAUX) $(DLASRC) $(DZLAUX)
X 	$(RANLIB) ../$(SUPERLULIB)
X 
X complex: $(CLUSRC) $(ALLAUX) $(LAAUX) $(CLASRC) $(SCLAUX)
X-	$(ARCH) $(ARCHFLAGS) ../$(SUPERLULIB) \
X+	$(ARCMD) $(ARCHFLAGS) ../$(SUPERLULIB) \
X 		$(CLUSRC) $(ALLAUX) $(LAAUX) $(CLASRC) $(SCLAUX)
X 	$(RANLIB) ../$(SUPERLULIB)
X 
X complex16: $(ZLUSRC) $(ALLAUX) $(LAAUX) $(ZLASRC) $(DZLAUX)
X-	$(ARCH) $(ARCHFLAGS) ../$(SUPERLULIB) \
X+	$(ARCMD) $(ARCHFLAGS) ../$(SUPERLULIB) \
X 		$(ZLUSRC) $(ALLAUX) $(LAAUX) $(ZLASRC) $(DZLAUX)
X 	$(RANLIB) ../$(SUPERLULIB)
X 
X+shared:	single double complex complex16
X+	$(CC) -shared -Wl,-soname,$(SUPERLULIB_SHARED) -o ../$(SUPERLULIB_SHARED) \
X+		$(ALLAUX) $(LAAUX) $(SCLAUX) $(DZLAUX) \
X+		$(SLUSRC) $(SLASRC) \
X+		$(DLUSRC) $(DLASRC) \
X+		$(CLUSRC) $(CLASRC) \
X+		$(ZLUSRC) $(ZLASRC)
X+
X 
X ##################################
X # Do not optimize these routines #
X ##################################
X-slamch.o: slamch.c ; $(CC) -c $(NOOPTS) $(CDEFS) $<
X-dlamch.o: dlamch.c ; $(CC) -c $(NOOPTS) $(CDEFS) $<
X-superlu_timer.o:  superlu_timer.c ; $(CC) -c $(NOOPTS) $<
X+slamch.o: slamch.c ; $(CC) -fpic -c $(NOOPTS) $(CDEFS) $<
X+dlamch.o: dlamch.c ; $(CC) -fpic -c $(NOOPTS) $(CDEFS) $<
X+superlu_timer.o:  superlu_timer.c ; $(CC) -fpic -c $(NOOPTS) $<
X ##################################
X 
X .c.o:
X 	$(CC) $(CFLAGS) $(CDEFS) $(BLASDEF) -c $< $(VERBOSE)
X 
X clean:	
X-	rm -f *.o ../libsuperlu_3.0.a
X+	rm -f *.o ../libsuperlu_3.0.a ../libsuperlu_3.0.so
69c59906d11ae90b6b88c4e4f5f8dbd1
echo x - ./files/patch-make.inc
sed 's/^X//' >./files/patch-make.inc << '650cc8fcfb41dfc9614199c32fdf2980'
X--- make.inc.orig	2006-01-02 00:52:00.000000000 +0100
X+++ make.inc	2012-04-06 20:53:12.000000000 +0200
X@@ -19,28 +19,31 @@
X #
X TMGLIB       = libtmglib.a
X SUPERLULIB   = libsuperlu_3.0.a
X-BLASLIB      = ../libblas.a
X+SUPERLULIB_SHARED   = libsuperlu_3.0.so
X+BLASLIB      = -L/usr/local/lib -lblas
X 
X #
X #  The archiver and the flag(s) to use when building archive (library)
X #  If your system has no ranlib, set RANLIB = echo.
X #
X-ARCH         = ar
X+ARCMD = ar
X ARCHFLAGS    = cr
X RANLIB       = ranlib
X 
X-CC           = cc
X-CFLAGS       = -xO3 -xcg92
X-FORTRAN	     = f77
X-FFLAGS       = -O
X-LOADER       = cc
X-LOADOPTS     = -xO3
X+#CC           ?= gcc46
X+#CFLAGS       ?= -O3 -pipe -fno-strict-aliasing -march=native -Wl,-rpath=/usr/local/lib/gcc46
X+#FORTRAN	     ?= gfortran46
X+#FFLAGS       ?= -O -Wl,-rpath=/usr/local/lib/gcc46
X+#LOADER       ?= gfortran46
X+#LOADOPTS     = 
X+
X+CFLAGS       += -Wall -fpic
X 
X #
X #  C preprocessor defs for compilation (-DNoChange, -DAdd_, or -DUpCase)
X #
X-CDEFS        = -DAdd_
X+#CDEFS        = -DAdd_
X #
X # The directory in which Matlab is installed
X #
X-MATLAB	     = /usr/sww/pkg/matlab
X+#MATLAB	     = /usr/sww/pkg/matlab
650cc8fcfb41dfc9614199c32fdf2980
exit



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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201204061908.q36J8nJI056779>