File mtl-fc6-070717.patch of Package mtl
diff -Nur mtl-2.1.2-23.orig/configure.in mtl-2.1.2-23/configure.in
--- mtl-2.1.2-23.orig/configure.in 2007-04-05 21:36:21.000000000 +0200
+++ mtl-2.1.2-23/configure.in 2007-07-17 14:25:54.000000000 +0200
@@ -56,7 +56,7 @@
BACKEND=""
MATHLIB=""
LDOUT="-o "
-FORTLIBS=""
+# FORTLIBS=""
case "$compiler" in
kai*) # KAI C++ http://www.kai.com/
@@ -84,15 +84,15 @@
echo "Configuring for GNU C++"
CXX_PICKY_FLAGS="-Wall"
# BZ_SET_COMPILER($withval,"g++","-ftemplate-depth-30 $CXX_PICKY_FLAGS")
- CXX="g++"
- CXXFLAGS="-ftemplate-depth-30 $CXX_PICKY_FLAGS"
- CXX_OPTIMIZE_FLAGS="-O2 -funroll-loops -fstrict-aliasing -fno-gcse"
- CXX_DEBUG_FLAGS="-g -DBZ_DEBUG"
- CXXLD="$CXX"
- F77=g77
- F77_OPTIMIZE_FLAGS="-O2 -funroll-loops"
- FORTLIBS=-lg2c
- CXXFFLAGS="-DMTL_FORTRAN_SYMBOLS_WITH_DOUBLE_TRAILING_UNDERSCORES"
+ CXX=${CXX:-"g++"}
+ CXXFLAGS=${CXXFLAGS:-"-ftemplate-depth-30 $CXX_PICKY_FLAGS"}
+ CXX_OPTIMIZE_FLAGS=${CXX_OPTIMIZE_FLAGS=$:-"-O2 -funroll-loops -fstrict-aliasing -fno-gcse"}
+ CXX_DEBUG_FLAGS=${CXX_DEBUG_FLAGS=$:-"-g -DBZ_DEBUG"}
+ CXXLD=${CXXLD:-"$CXX"}
+ F77=${F77:-g77}
+ F77_OPTIMIZE_FLAGS=${F77_OPTIMIZE_FLAGS:-"-O2 -funroll-loops"}
+ FORTLIBS=${FORTLIBS:-"-lg2c"}
+ CXXFFLAGS=${CXXFFLAGS:-"-DMTL_FORTRAN_SYMBOLS_WITH_DOUBLE_TRAILING_UNDERSCORES"}
;;
msvc*) # Microsoft Visual C++
echo "Configuring for Microsoft Visual C++"
@@ -126,18 +126,18 @@
# Set platform-specific fortran compilers and optimization settings
if test "$GXX" = "yes"; then
- F77=g77
- F77_OPTIMIZE_FLAGS="-O2 -funroll-loops"
- FORTLIBS=-lg2c
- MATHLIB="-lm"
+ F77=${F77:-g77}
+ F77_OPTIMIZE_FLAGS=${F77_OPTIMIZE_FLAGS:-"-O2 -funroll-loops"}
+ FORTLIBS=${FORTLIBS:-"-lg2c"}
+ MATHLIB=${MATHLIB:-"-lm"}
else
case "$target" in
*linux*)
echo "Linux: assuming g77 fortran compiler"
- F77=g77
- F77_OPTIMIZE_FLAGS="-O2 -funroll-loops"
- FORTLIBS=-lg2c
- MATHLIB="-lm"
+ F77=${F77:-g77}
+ F77_OPTIMIZE_FLAGS=${F77_OPTIMIZE_FLAGS:-"-O2 -funroll-loops"}
+ FORTLIBS=${FORTLIBS:-"-lg2c"}
+ MATHLIB=${MATHLIB:-"-lm"}
;;
*aix*)
echo "AIX: assuming f77 and xlf90"
@@ -389,14 +389,13 @@
# currently defined fortran compiler
# Check how to link to fortran -- will require calling fortran
-MTL_PROG_F77
+AC_PROG_F77
AC_F77_LIBRARY_LDFLAGS
# AC_CHECK_LIB (LIBRARY, FUNCTION [, ACTION-IF-FOUND [,
# ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]])
# AC_SEARCH_LIBS
-
AC_CHECK_LIB(blas, main,
[ AC_MSG_RESULT(BLAS found)
CXXFFLAGS="$CXXFLAGS -DMTL_USE_BLAS"
diff -Nur mtl-2.1.2-23.orig/mtl/lapack_interface.h mtl-2.1.2-23/mtl/lapack_interface.h
--- mtl-2.1.2-23.orig/mtl/lapack_interface.h 2007-04-10 22:03:10.000000000 +0200
+++ mtl-2.1.2-23/mtl/lapack_interface.h 2007-07-17 14:26:27.000000000 +0200
@@ -313,11 +313,11 @@
void dorgqr_(const int& m, const int& n, const int& k,
- double da[], const int& lda, double dtau[],
+ double da[], const int& lda, const double dtau[],
double dwork[], const int& ldwork, int& info);
void sorgqr_(const int& m, const int& n, const int& k,
- float da[], const int& lda, float dtau[],
+ float da[], const int& lda, const float dtau[],
float dwork[], const int& ldwork, int& info);
void dgesvd_(const char& jobu, const char& jobvt, const int& m, const int& n,
diff -Nur mtl-2.1.2-23.orig/mtl/mtl2lapack.h mtl-2.1.2-23/mtl/mtl2lapack.h
--- mtl-2.1.2-23.orig/mtl/mtl2lapack.h 2007-04-10 22:03:10.000000000 +0200
+++ mtl-2.1.2-23/mtl/mtl2lapack.h 2007-07-17 14:26:16.000000000 +0200
@@ -482,7 +482,7 @@
}
inline void orgqr(const int& m, const int& n, const int& k,
- double da[], int& lda, double dtau[], int& info)
+ double da[], int& lda, const double dtau[], int& info)
{
int ldwork = 2*m;
double* work = new double[ldwork];
@@ -491,7 +491,7 @@
}
inline void orgqr(const int& m, const int& n, const int& k,
- float da[], int& lda, float dtau[], int& info)
+ float da[], int& lda, const float dtau[], int& info)
{
int ldwork = 2*m;
float* work = new float[ldwork];
@@ -1111,8 +1111,7 @@
int m = a.nrows();
int n = a.ncols();
int info;
- mtl_lapack_dispatch::orgqr(m, n, tau.size(), a.data(), lda,
- tau.data(), info);
+ mtl_lapack_dispatch::orgqr(m, n, tau.size(), a.data(), lda, tau.data(), info);
return info;
}