commit 90d9e9f6d579e9e23571e4feb5b359990c709c20
Author: Orion Poplawski <orion(a)nwra.com>
Date: Mon Sep 30 17:10:11 2013 -0600
Add patch to fix gsl usage
gdl-gsl.patch | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
gdl.spec | 5 +++++
2 files changed, 58 insertions(+), 0 deletions(-)
---
diff --git a/gdl-gsl.patch b/gdl-gsl.patch
new file mode 100644
index 0000000..5d5932b
--- /dev/null
+++ b/gdl-gsl.patch
@@ -0,0 +1,53 @@
+diff -up gdl-0.9.4/src/gsl_matrix.cpp.gsl gdl-0.9.4/src/gsl_matrix.cpp
+--- gdl-0.9.4/src/gsl_matrix.cpp.gsl 2013-09-20 10:10:02.000000000 -0600
++++ gdl-0.9.4/src/gsl_matrix.cpp 2013-09-30 16:57:24.762141411 -0600
+@@ -41,10 +41,11 @@ namespace lib {
+ const int szdbl=sizeof(DDouble);
+ const int szflt=sizeof(DFloat);
+ const int szlng=sizeof(DLong);
++ const int szlng64=sizeof(DLong64);
+
+ void ludc_pro( EnvT* e)
+ {
+- // cout << szdbl << " " <<szflt << " "
<< szlng << endl;
++ // cout << szdbl << " " <<szflt << " "
<< szlng << " " szlng64 << endl;
+
+ SizeT nParam=e->NParam(1);
+ // if( nParam == 0)
+@@ -120,9 +121,15 @@ namespace lib {
+ dimension dim1(&n, (SizeT) 1);
+ BaseGDL** p1D = &e->GetPar( 1);
+ GDLDelete((*p1D));
+- *p1D = new DLongGDL(dim1, BaseGDL::NOZERO);
+- memcpy(&(*(DLongGDL*) *p1D)[0], p->data,
+- p0->Dim(0)*szlng);
++ if (sizeof(size_t) == szlng) {
++ *p1D = new DLongGDL(dim1, BaseGDL::NOZERO);
++ memcpy(&(*(DLongGDL*) *p1D)[0], p->data,
++ p0->Dim(0)*szlng);
++ } else {
++ *p1D = new DLong64GDL(dim1, BaseGDL::NOZERO);
++ memcpy(&(*(DLong64GDL*) *p1D)[0], p->data,
++ p0->Dim(0)*szlng64);
++ }
+
+ // gsl_matrix_free(mat);
+ // gsl_permutation_free(p);
+@@ -189,10 +196,15 @@ namespace lib {
+ GDLGuard<gsl_matrix> g1(mat,gsl_matrix_free);
+ memcpy(mat->data, &(*p0D)[0], nEl*szdbl);
+
+- DLongGDL* p1L =e->GetParAs<DLongGDL>(1);
+ gsl_permutation *p = gsl_permutation_alloc (nEl1);
++ if (sizeof(size_t) == szlng) {
++ DLongGDL* p1L =e->GetParAs<DLongGDL>(1);
++ memcpy(p->data, &(*p1L)[0], nEl1*szlng);
++ } else {
++ DLong64GDL* p1L =e->GetParAs<DLong64GDL>(1);
++ memcpy(p->data, &(*p1L)[0], nEl1*szlng64);
++ }
+ GDLGuard<gsl_permutation> g2(p,gsl_permutation_free);
+- memcpy(p->data, &(*p1L)[0], nEl1*szlng);
+
+ DDoubleGDL *p2D = e->GetParAs<DDoubleGDL>(2);
+ gsl_vector *b = gsl_vector_alloc(nEl2);
diff --git a/gdl.spec b/gdl.spec
index 86ffd11..3a2142f 100644
--- a/gdl.spec
+++ b/gdl.spec
@@ -25,6 +25,9 @@ Patch4: gdl-plwidth.patch
# Fix python build
#
https://sourceforge.net/p/gnudatalanguage/bugs/552/
Patch5: gdl-python.patch
+# Fix datatype for use with gsl's permutation type
+#
https://sourceforge.net/p/gnudatalanguage/bugs/570/
+Patch6: gdl-gsl.patch
Patch13: gdl-0.9-antlr-cmake.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -112,6 +115,7 @@ popd
%patch3 -p1 -b .build
%patch4 -p1 -b .plwidth
%patch5 -p1 -b .python
+%patch6 -p1 -b .gsl
%global cmake_opts \\\
-DWXWIDGETS=ON \\\
@@ -193,6 +197,7 @@ rm -rf $RPM_BUILD_ROOT
- Update to 0.9.4
- Update build patch - drop automake components
- New python patch to fix python build
+- Add patch to fix gsl usage
* Tue Aug 27 2013 Orion Poplawski <orion(a)cora.nwra.com> - 0.9.3-10.cvs20130804
- Add patch to support new width() method in plplot