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 << " " <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 g1(mat,gsl_matrix_free); + memcpy(mat->data, &(*p0D)[0], nEl*szdbl); + +- DLongGDL* p1L =e->GetParAs(1); + gsl_permutation *p = gsl_permutation_alloc (nEl1); ++ if (sizeof(size_t) == szlng) { ++ DLongGDL* p1L =e->GetParAs(1); ++ memcpy(p->data, &(*p1L)[0], nEl1*szlng); ++ } else { ++ DLong64GDL* p1L =e->GetParAs(1); ++ memcpy(p->data, &(*p1L)[0], nEl1*szlng64); ++ } + GDLGuard g2(p,gsl_permutation_free); +- memcpy(p->data, &(*p1L)[0], nEl1*szlng); + + DDoubleGDL *p2D = e->GetParAs(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 - 0.9.3-10.cvs20130804 - Add patch to support new width() method in plplot