[linbox] Update to latest upstream release 1.3.2 (#837441)

pcpa pcpa at fedoraproject.org
Sat Jul 14 17:35:42 UTC 2012


commit 81998ca96cd292c1b6aaf97d62bc06474eb340fb
Author: pcpa <paulo.cesar.pereira.de.andrade at gmail.com>
Date:   Sat Jul 14 14:34:48 2012 -0400

    Update to latest upstream release 1.3.2 (#837441)

 .gitignore              |    1 +
 linbox-destructor.patch |   20 ++--
 linbox-gcc47.patch      |  345 +++--------------------------------------------
 linbox-int64.patch      |   12 ++
 linbox-underlink.patch  |   20 +++
 linbox.spec             |   41 +++++-
 sources                 |    2 +-
 7 files changed, 96 insertions(+), 345 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index f3d24c1..a1cfa86 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 /linbox-1.2.1.tar.gz
 /linbox-1.2.2.tar.gz
+/linbox-1.3.2.tar.gz
diff --git a/linbox-destructor.patch b/linbox-destructor.patch
index 398d5ad..4c3ea2d 100644
--- a/linbox-destructor.patch
+++ b/linbox-destructor.patch
@@ -1,8 +1,9 @@
---- ./tests/Makefile.in.orig	2011-10-28 04:19:29.000000000 -0600
-+++ ./tests/Makefile.in	2011-11-07 15:51:50.518340012 -0700
-@@ -1091,14 +1091,14 @@ AM_CPPFLAGS = -I$(top_srcdir) -I$(top_sr
+diff -up linbox-1.3.2/tests/Makefile.in.orig linbox-1.3.2/tests/Makefile.in
+--- linbox-1.3.2/tests/Makefile.in.orig	2012-07-03 17:03:58.199463037 -0400
++++ linbox-1.3.2/tests/Makefile.in	2012-07-03 17:04:57.440465264 -0400
+@@ -1260,14 +1260,14 @@ AM_CPPFLAGS = -I$(top_srcdir) -I$(top_sr
  	$(FFLAS_FFPACK_CFLAGS) $(GMP_CFLAGS) $(NTL_CFLAGS) \
- 	$(GIVARO_CFLAGS) $(LIDIA_CFLAGS)
+ 	$(GIVARO_CFLAGS) $(LIDIA_CFLAGS) $(IML_CFLAGS)
  # AM_LDFLAGS = -llapack -lcblas -latlas
 -AM_LDFLAGS = $(top_srcdir)/linbox/.libs/liblinbox.a
 +AM_LDFLAGS = $(top_srcdir)/linbox/liblinbox.la
@@ -12,14 +13,15 @@
  #  AM_CXXFLAGS = $(SAFER_FLAGS) -DLinBoxSrcOnly
  #AM_CXXFLAGS = $(SAFER_FLAGS) -DLinBoxSrcOnly -O2
  #  AM_CXXFLAGS = -g -DLinBoxSrcOnly -Wall -DDEBUG -O0
--AM_CXXFLAGS = -DLinBoxSrcOnly  @TESTS_CFLAGS@
-+AM_CXXFLAGS = -DLinBoxTestOnly  @TESTS_CFLAGS@
+-AM_CXXFLAGS = -DLinBoxSrcOnly  @TESTS_CFLAGS@ @DEBUG_CFLAGS@
++AM_CXXFLAGS = -DLinBoxTestOnly  @TESTS_CFLAGS@ @DEBUG_CFLAGS@
  # AM_CXXFLAGS = -g -DLinBoxSrcOnly -Wall -D__LINBOX_HAVE_DGETRF -D__LINBOX_HAVE_DGETRI
  # AM_CFLAGS = -g -Wall
  SUBDIRS = data matrix
---- ./tests/test-common.h.orig	2011-10-28 02:48:13.000000000 -0600
-+++ ./tests/test-common.h	2011-11-07 15:51:50.524340146 -0700
-@@ -362,7 +362,7 @@ extern inline double incompleteGamma (do
+diff -up linbox-1.3.2/tests/test-common.h.orig linbox-1.3.2/tests/test-common.h
+--- linbox-1.3.2/tests/test-common.h.orig	2012-07-03 17:05:16.537466108 -0400
++++ linbox-1.3.2/tests/test-common.h	2012-07-03 17:05:29.191466504 -0400
+@@ -381,7 +381,7 @@ extern inline double incompleteGamma (do
  
  double chiSquaredCDF (double chi_sqr, double df);
  
diff --git a/linbox-gcc47.patch b/linbox-gcc47.patch
index 0162739..d8c1d91 100644
--- a/linbox-gcc47.patch
+++ b/linbox-gcc47.patch
@@ -1,6 +1,7 @@
---- ./interfaces/driver/lb-blackbox-functor.h.orig	2011-10-28 02:48:13.000000000 -0600
-+++ ./interfaces/driver/lb-blackbox-functor.h	2012-01-09 16:34:50.101676361 -0700
-@@ -52,7 +52,7 @@ public:
+diff -up linbox-1.3.2/interfaces/driver/lb-blackbox-functor.h.orig linbox-1.3.2/interfaces/driver/lb-blackbox-functor.h
+--- linbox-1.3.2/interfaces/driver/lb-blackbox-functor.h.orig	2012-07-03 17:48:30.630565374 -0400
++++ linbox-1.3.2/interfaces/driver/lb-blackbox-functor.h	2012-07-03 17:48:49.880566113 -0400
+@@ -53,7 +53,7 @@ public:
   * Macro for automatic code generation *
   ***************************************/
  #define LB_BLACKBOX_VISIT(B)				\
@@ -9,9 +10,10 @@
  
  
  /**********************************************************************************
---- ./interfaces/driver/lb-domain-functor.h.orig	2011-10-28 02:48:13.000000000 -0600
-+++ ./interfaces/driver/lb-domain-functor.h	2012-01-09 16:34:50.102676447 -0700
-@@ -51,7 +51,7 @@ public:
+diff -up linbox-1.3.2/interfaces/driver/lb-domain-functor.h.orig linbox-1.3.2/interfaces/driver/lb-domain-functor.h
+--- linbox-1.3.2/interfaces/driver/lb-domain-functor.h.orig	2012-07-03 17:49:05.931566774 -0400
++++ linbox-1.3.2/interfaces/driver/lb-domain-functor.h	2012-07-03 17:49:17.856567170 -0400
+@@ -52,7 +52,7 @@ public:
   * Macro for automatic code generation *
   ***************************************/
  #define LB_DOMAIN_VISIT(D)				\
@@ -20,9 +22,10 @@
  
  
  /*******************************************************************************
---- ./interfaces/driver/lb-vector-functor.h.orig	2011-10-28 02:48:13.000000000 -0600
-+++ ./interfaces/driver/lb-vector-functor.h	2012-01-09 16:34:50.104676614 -0700
-@@ -53,7 +53,7 @@ public:
+diff -up linbox-1.3.2/interfaces/driver/lb-vector-functor.h.orig linbox-1.3.2/interfaces/driver/lb-vector-functor.h
+--- linbox-1.3.2/interfaces/driver/lb-vector-functor.h.orig	2012-07-03 17:49:30.130567691 -0400
++++ linbox-1.3.2/interfaces/driver/lb-vector-functor.h	2012-07-03 17:49:42.232568167 -0400
+@@ -54,7 +54,7 @@ public:
   * Macro for automatic code generation *
   ***************************************/
  #define LB_VECTOR_VISIT(B)				\
@@ -31,9 +34,10 @@
  
  
  /**********************************************************************************
---- ./linbox/algorithms/blackbox-container-symmetric.h.orig	2011-10-28 02:48:12.000000000 -0600
-+++ ./linbox/algorithms/blackbox-container-symmetric.h	2012-01-09 16:34:50.105676693 -0700
-@@ -43,10 +43,10 @@ namespace LinBox
+diff -up linbox-1.3.2/linbox/algorithms/blackbox-container-symmetric.h.orig linbox-1.3.2/linbox/algorithms/blackbox-container-symmetric.h
+--- linbox-1.3.2/linbox/algorithms/blackbox-container-symmetric.h.orig	2012-07-03 17:49:56.067568648 -0400
++++ linbox-1.3.2/linbox/algorithms/blackbox-container-symmetric.h	2012-07-03 17:50:24.032569723 -0400
+@@ -59,7 +59,7 @@ namespace LinBox
  		template<class Vector>
  		BlackboxContainerSymmetric (const Blackbox *D, const Field &F, const Vector &u0) :
  			BlackboxContainerBase<Field, _Blackbox> (D, F)
@@ -41,319 +45,4 @@
 +		{ this->init (u0, u0); }
  		BlackboxContainerSymmetric (const Blackbox *D, const Field &F, RandIter &g) :
  			BlackboxContainerBase<Field, _Blackbox> (D, F)
--		{ init (g); }
-+		{ this->init (g); }
- 
- 	protected:
- 
---- ./linbox/algorithms/cra-full-multip-fixed.h.orig	2011-10-28 02:48:12.000000000 -0600
-+++ ./linbox/algorithms/cra-full-multip-fixed.h	2012-01-09 16:34:50.107676845 -0700
-@@ -236,7 +236,7 @@ namespace LinBox
- 						// It is the only shelf of the radix
- 						// We normalize the result and output it
- 						for( ; t_it != _tab_it->end(); ++t0_it, ++t_it)
--							normalize(*t0_it = *t_it, *t_it,
-+							this->normalize(*t0_it = *t_it, *t_it,
- 								  _mod_it->operator()());
- 						this->RadixPrimeProd_.resize(1);
- 						return d;
-@@ -483,7 +483,7 @@ namespace LinBox
- 						// It is the only shelf of the radix
- 						// We normalize the result and output it
- 						for( ; t_it != _tab_it->end(); ++t0_it, ++t_it)
--							normalize(*t0_it = *t_it, *t_it,
-+							this->normalize(*t0_it = *t_it, *t_it,
- 								  _mod_it->operator()());
- 						this->RadixPrimeProd_.resize(1);
- 						return d;
---- ./linbox/util/formats/matrix-market.h.orig	2011-10-28 02:48:12.000000000 -0600
-+++ ./linbox/util/formats/matrix-market.h	2012-01-09 16:34:50.108676918 -0700
-@@ -150,7 +150,7 @@ namespace LinBox
- 			--j;
- 			if(  i >= this->_m || j >= this->_n )
- 				return BAD_FORMAT;
--			if( symmetric && (i != j) ) saveTriple(j,i,v);
-+			if( symmetric && (i != j) ) this->saveTriple(j,i,v);
- 
- 			return GOOD;
- 		}
---- ./linbox/matrix/matrix-domain.h.orig	2011-10-28 02:48:12.000000000 -0600
-+++ ./linbox/matrix/matrix-domain.h	2012-01-09 16:34:50.109676989 -0700
-@@ -997,7 +997,7 @@ namespace LinBox
- 					    VectorCategories::DenseVectorTag,
- 					    VectorCategories::DenseVectorTag) const
- 		{
--			return mulColDense (_VD, w, A, v);
-+			return this->mulColDense (_VD, w, A, v);
- 		}
- 		template <class Vector1, class Matrix, class Vector2>
- 		Vector1 &mulColSpecialized (Vector1 &w, const Matrix &A, const Vector2 &v,
---- ./linbox/field/Givaro/givaro-field.h.orig	2011-10-28 02:48:12.000000000 -0600
-+++ ./linbox/field/Givaro/givaro-field.h	2012-01-09 16:34:50.110677059 -0700
-@@ -42,8 +42,8 @@ namespace LinBox
- 		{
- 			this->init(zero,0UL);
- 			this->init(one, 1UL);
--			init(mone);
--			neg(mone,one);
-+			this->init(mone);
-+			this->neg(mone,one);
- 		}
- 
- 		GivaroField(const BaseField& bf) :
-@@ -51,8 +51,8 @@ namespace LinBox
- 		{
- 			this->init(zero,0UL);
- 			this->init(one, 1UL);
--			init(mone);
--			neg(mone,one);
-+			this->init(mone);
-+			this->neg(mone,one);
- 			// neg(init(mone),one);
- 		}
- 
-@@ -75,7 +75,7 @@ namespace LinBox
- 		Rep& axmyin (Rep& r, const Rep a, const Rep x) const
- 		{
- 			maxpyin(r,a,x);
--			return negin(r);
-+			return this->negin(r);
- 		}
- 
- 		// -- maxpyin: r <- r - a * x
---- ./linbox/blackbox/companion.h.orig	2011-10-28 02:48:12.000000000 -0600
-+++ ./linbox/blackbox/companion.h	2012-01-09 16:34:50.112677193 -0700
-@@ -31,12 +31,12 @@ namespace LinBox
- 		{	size_t n = P.size() - 1;
- 			const size_t indexbase = 1;
- 			typename Field::Element one; F.init(one, 1);
--			for (size_t i = 1; i < n; ++i) addEntry(one, i+indexbase, i-1+indexbase);
-+			for (size_t i = 1; i < n; ++i) this->addEntry(one, i+indexbase, i-1+indexbase);
- 			for (size_t i = 0; i < n; ++i)
- 			{	typename Field::Element x;
- 				F.init(x, 0);
- 				F.neg(x, P[i]);
--				addEntry(x, i+indexbase, n-1+indexbase);
-+				this->addEntry(x, i+indexbase, n-1+indexbase);
- 			}
- 		}// Companion cstor
- 
---- ./tests/test-field.h.orig	2011-10-28 02:48:13.000000000 -0600
-+++ ./tests/test-field.h	2012-01-09 16:37:58.921941742 -0700
-@@ -818,25 +818,6 @@ bool testFreshmansDream (const Field &F,
- 
- /* Tests of field features */
- 
--/** Generic test 7: Consistency of in-place and out-of-place arithmetic
-- *
-- * Generates random elements 'a' and 'b' and performs all basic arithmetic
-- * operations in-place and out-of-place, checking for consistency.
-- *
-- * Div and inv are checked in a separate function.
-- */
--
--template <class Field>
--bool testArithmeticConsistency (const Field &F, const char *name, unsigned int iterations)
--{
--	bool ret = true ;
--
--	ret &= testRingArithmeticConsistency(F, name, iterations) ;
--	ret &= testInvDivConsistency(F, name, iterations);
--
--	return ret;
--}
--
- template <class Field>
- bool testRingArithmeticConsistency (const Field &F, const char *name, unsigned int iterations)
- {
-@@ -1041,6 +1022,25 @@ bool testInvDivConsistency (const Field
- 	return ret;
- }
- 
-+/** Generic test 7: Consistency of in-place and out-of-place arithmetic
-+ *
-+ * Generates random elements 'a' and 'b' and performs all basic arithmetic
-+ * operations in-place and out-of-place, checking for consistency.
-+ *
-+ * Div and inv are checked in a separate function.
-+ */
-+
-+template <class Field>
-+bool testArithmeticConsistency (const Field &F, const char *name, unsigned int iterations)
-+{
-+	bool ret = true ;
-+
-+	ret &= testRingArithmeticConsistency(F, name, iterations) ;
-+	ret &= testInvDivConsistency(F, name, iterations);
-+
-+	return ret;
-+}
-+
- /** Generic test 8: Consistency of axpy
-  *
-  * Generates random elements 'a', 'x', and 'y' and checks that a * x + y is the
-@@ -1130,31 +1130,6 @@ bool testRanditerBasic(const Field &F, c
- }
- 
- 
--/* Convenience function to run all of the field tests on a given field */
--
--template <class Field>
--bool runFieldTests (const Field &F, const char *desc, unsigned int iterations, size_t n, bool runCharacteristicTest = true)
--	// n is not used.
--{
--
--	ostringstream str;
--
--	str << "\t--Testing " << desc << " field" << ends;
--	char * st = new char[str.str().size()];
--	strcpy (st, str.str().c_str());
--	commentator.start (st, "runFieldTests");
--	bool ret =  runBasicRingTests(F, desc, iterations, runCharacteristicTest) ;
--	ret &= testInvDivConsistency(F, desc, iterations) ;
--	ret &= testFieldInversion (F, desc, iterations) ;
--	ret &= testFieldCommutativity (F, desc, iterations) ;
--	ret &= testFreshmansDream(F, desc, iterations);
--	ret &= testRingTrivia(F,desc);
--
--	commentator.stop (MSG_STATUS (ret));
--	delete[] st;
--	return ret;
--}
--
- template <class Field>
- bool runBasicRingTests (const Field &F, const char *desc, unsigned int iterations, bool runCharacteristicTest = true)
- {
-@@ -1199,46 +1174,33 @@ bool runBasicRingTests (const Field &F,
- 	return pass;
- }
- 
--/// @name Generic field tests
--//@{
--/** Random number test
-- *
-- * Test that the random iterator over the given field works.
-- *
-- * Test up to five times, accepting any one, to increase probability of
-- * passing statistical tests.
-- */
-+/* Convenience function to run all of the field tests on a given field */
-+
- template <class Field>
--bool testRandomIterator (const Field &F, const char *text,
--			 unsigned int num_trials,
--			 unsigned int num_categories,
--			 unsigned int hist_len)
-+bool runFieldTests (const Field &F, const char *desc, unsigned int iterations, size_t n, bool runCharacteristicTest = true)
-+	// n is not used.
- {
--	std::ostringstream str;
- 
--	str << "\t--Testing " << text << "::RandIter" << std::ends;
-+	ostringstream str;
-+
-+	str << "\t--Testing " << desc << " field" << ends;
- 	char * st = new char[str.str().size()];
- 	strcpy (st, str.str().c_str());
-+	commentator.start (st, "runFieldTests");
-+	bool ret =  runBasicRingTests(F, desc, iterations, runCharacteristicTest) ;
-+	ret &= testInvDivConsistency(F, desc, iterations) ;
-+	ret &= testFieldInversion (F, desc, iterations) ;
-+	ret &= testFieldCommutativity (F, desc, iterations) ;
-+	ret &= testFreshmansDream(F, desc, iterations);
-+	ret &= testRingTrivia(F,desc);
- 
--	commentator.start (st, "testRandomIterator");
--
--	std::ostream &report = commentator.report (LinBox::Commentator::LEVEL_NORMAL, INTERNAL_DESCRIPTION);
--
--	/* This test either passes or runs a lot of times */
--	for (int i = 1;
--	     (!  testRandomIteratorStep (F, text, num_trials, num_categories, hist_len)) && (i < 20) ;
--	     ++i ){
--		if (0 == i % 10)
--			report << "Warning! Probable failure of uniformity" << std::endl;
--	};
--
--	commentator.stop (MSG_STATUS (true), (const char *) 0, "testRandomIterator");
--
-+	commentator.stop (MSG_STATUS (ret));
- 	delete[] st;
--	return true;
--
-+	return ret;
- }
- 
-+/// @name Generic field tests
-+//@{
- /* Random number test
-  *
-  * Test that the random iterator over the given field works
-@@ -1356,5 +1318,43 @@ bool testRandomIteratorStep (const Field
- 	//commentator.stop (MSG_STATUS (ret), (const char *) 0, "testRandomIteratorStep");
- 	return ret;
- }
-+
-+/** Random number test
-+ *
-+ * Test that the random iterator over the given field works.
-+ *
-+ * Test up to five times, accepting any one, to increase probability of
-+ * passing statistical tests.
-+ */
-+template <class Field>
-+bool testRandomIterator (const Field &F, const char *text,
-+			 unsigned int num_trials,
-+			 unsigned int num_categories,
-+			 unsigned int hist_len)
-+{
-+	std::ostringstream str;
-+
-+	str << "\t--Testing " << text << "::RandIter" << std::ends;
-+	char * st = new char[str.str().size()];
-+	strcpy (st, str.str().c_str());
-+
-+	commentator.start (st, "testRandomIterator");
-+
-+	std::ostream &report = commentator.report (LinBox::Commentator::LEVEL_NORMAL, INTERNAL_DESCRIPTION);
-+
-+	/* This test either passes or runs a lot of times */
-+	for (int i = 1;
-+	     (!  testRandomIteratorStep (F, text, num_trials, num_categories, hist_len)) && (i < 20) ;
-+	     ++i ){
-+		if (0 == i % 10)
-+			report << "Warning! Probable failure of uniformity" << std::endl;
-+	};
-+
-+	commentator.stop (MSG_STATUS (true), (const char *) 0, "testRandomIterator");
-+
-+	delete[] st;
-+	return true;
-+
-+}
- //@}
- #endif // __LINBOX_test_field_H
---- ./tests/test-common.h.orig	2012-01-09 16:34:45.565609259 -0700
-+++ ./tests/test-common.h	2012-01-09 16:34:50.116677442 -0700
-@@ -34,10 +34,6 @@ using namespace std;
- #include "fflas-ffpack/utils/args-parser.h"
- 
- template <class Field, class Vector>
--void printVector (Field &F, ostream &output, const Vector &v)
--{ printVectorSpecialized(F, output, v, typename LinBox::VectorTraits<Vector>::VectorCategory()); }
--
--template <class Field, class Vector>
- void printVectorSpecialized(
- 			    Field &F,
- 			    ostream &output,
-@@ -109,6 +105,10 @@ void printVectorSpecialized(
- }
- 
- template <class Field, class Vector>
-+void printVector (Field &F, ostream &output, const Vector &v)
-+{ printVectorSpecialized(F, output, v, typename LinBox::VectorTraits<Vector>::VectorCategory()); }
-+
-+template <class Field, class Vector>
- bool areVectorsEqual (Field &F, const Vector &v, const Vector &w)
- {
- 	return areVectorsEqualSpecialized(F, v, w, LinBox::VectorTraits<Vector>::VectorCategory());
+ 		{ this->init (g); }
diff --git a/linbox-int64.patch b/linbox-int64.patch
new file mode 100644
index 0000000..069a7d5
--- /dev/null
+++ b/linbox-int64.patch
@@ -0,0 +1,12 @@
+diff -up linbox-1.3.2/linbox/field/Modular/modular-int64.h.orig linbox-1.3.2/linbox/field/Modular/modular-int64.h
+--- linbox-1.3.2/linbox/field/Modular/modular-int64.h.orig	2012-07-03 17:34:48.498533895 -0400
++++ linbox-1.3.2/linbox/field/Modular/modular-int64.h	2012-07-03 17:34:51.880534136 -0400
+@@ -96,7 +96,7 @@ namespace LinBox
+ 	public:
+ 		typedef int64_t Element;
+ 
+-		typedef FFPACK::Modular<int64_t> Father_t
++		typedef FFPACK::Modular<int64_t> Father_t;
+ 		friend class FieldAXPY<Modular<int64_t> >;
+ 		friend class DotProductDomain<Modular<int64_t> >;
+ 		friend class MVProductDomain<Modular<int64_t> >;
diff --git a/linbox-underlink.patch b/linbox-underlink.patch
new file mode 100644
index 0000000..0779bc7
--- /dev/null
+++ b/linbox-underlink.patch
@@ -0,0 +1,20 @@
+diff -up linbox-1.3.2/linbox/Makefile.in.orig linbox-1.3.2/linbox/Makefile.in
+--- linbox-1.3.2/linbox/Makefile.in.orig	2012-07-03 20:07:41.470885165 -0400
++++ linbox-1.3.2/linbox/Makefile.in	2012-07-03 20:08:27.611886923 -0400
+@@ -154,7 +154,7 @@ LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM
+ CXXLD = $(CXX)
+ CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ 	--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+-	$(LDFLAGS) -o $@
++	$(liblinbox_la_LDFLAGS) $(LDFLAGS) -o $@
+ SOURCES = $(liblinbox_la_SOURCES)
+ DIST_SOURCES = $(liblinbox_la_SOURCES)
+ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+@@ -390,6 +390,7 @@ liblinbox_la_LIBADD = \
+     util/libutil.la             \
+     randiter/libranditer.la     \
+     algorithms/libalgorithms.la
++liblinbox_la_LDFLAGS = $(MPFR_LIBS) $(IML_LIBS) $(BLAS_LIBS)
+ 
+ all: all-recursive
+ 
diff --git a/linbox.spec b/linbox.spec
index 55ec3bd..791672f 100644
--- a/linbox.spec
+++ b/linbox.spec
@@ -1,6 +1,6 @@
 Name:           linbox
-Version:        1.2.2
-Release:        4%{?dist}
+Version:        1.3.2
+Release:        2%{?dist}
 Summary:        C++ Library for High-Performance Exact Linear Algebra
 Group:          Development/Libraries
 License:        LGPLv2+
@@ -9,13 +9,18 @@ Source0:        http://www.linalg.org/%{name}-%{version}.tar.gz
 # Sent upstream 2 Nov 2011.  Fix double frees that crash all tests.
 Patch0:         linbox-destructor.patch
 Patch1:         linbox-gcc47.patch
+# Correct missing semicollon
+Patch2:		linbox-int64.patch
+# Force linkage to mpfr and iml to avoid unresolved symbols
+Patch3:		linbox-underlink.patch
 
 BuildRequires:  atlas-devel
 BuildRequires:  fflas-ffpack-devel
 BuildRequires:  givaro-devel
-BuildRequires:  gmp-devel
 BuildRequires:  iml-devel
 BuildRequires:  m4ri-devel
+BuildRequires:  m4rie-devel
+BuildRequires:  mpfr-devel
 BuildRequires:  ntl-devel
 
 BuildRequires:  doxygen
@@ -53,8 +58,10 @@ Documentation for %{name}.
 
 %prep
 %setup -q
-%patch0
-%patch1
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
 
 # Fix up missing and extraneous library linkage
 sed -e "s|\$(GMP_LIBS) \$(NTL_LIBS) \$(BLAS_LIBS)|-L%{_libdir}/atlas \$(NTL_LIBS) -lcblas|" \
@@ -65,9 +72,18 @@ sed -e "s|\$(GIVARO_LIBS) \$(GMP_LIBS) \$(NTL_LIBS) \$(BLAS_LIBS)|-L%{_libdir}/a
 # Fix libtool
 sed -i "s/func_apped/func_append/g" build-aux/ltmain.sh
 
-
 %build
-%configure --enable-shared --disable-static --enable-drivers --enable-sage \
+CFLAGS="%{optflags}"
+if [ %{__isa_bits} = "64" ]; then
+    CFLAGS="$CFLAGS -D__LINBOX_HAVE_INT64=1"
+fi
+export CFLAGS
+CXXFLAGS=$CFLAGS
+export CXXFLAGS
+CPPFLAGS="$CPPFLAGS -I%{_includedir}/m4rie"
+export CPPFLAGS
+
+%configure --enable-shared --disable-static --enable-sage \
   --enable-doc --with-ntl
 
 # Remove hardcoded rpaths
@@ -119,6 +135,17 @@ LD_LIBRARY_PATH=`pwd`/linbox/.libs make %{?_smp_mflags} check
 
 
 %changelog
+* Tue Jul 3 2012 pcpa <paulo.cesar.pereira.de.andrade at gmail.com> - 1.3.2-2
+- Force linkage to mpfr and iml to avoid unresolved symbols.
+
+* Tue Jul 3 2012 pcpa <paulo.cesar.pereira.de.andrade at gmail.com> - 1.3.2-1
+- Update to latest upstream release.
+- Rediff linbox-destructor patch.
+- Rediff gcc 4.7 patch as it is partially applied to upstream tarball.
+- Correct 64 bit build.
+- Add m4rie-devel to build requires and set CPPFLAGS to detect it.
+- Disable --enable-driver as it no longer compiles.
+
 * Tue Feb 28 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.2.2-4
 - Rebuilt for c++ ABI breakage
 
diff --git a/sources b/sources
index fc3639a..7850e96 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-d2006e80dce15914708f72c748f86677  linbox-1.2.2.tar.gz
+67c80345c8c3e93d213f2d7d37d8c9af  linbox-1.3.2.tar.gz


More information about the scm-commits mailing list