Hello community, here is the log from the commit of package octave for openSUSE:Factory checked in at 2014-11-03 13:11:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/octave (Old) and /work/SRC/openSUSE:Factory/.octave.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "octave" Changes: -------- --- /work/SRC/openSUSE:Factory/octave/octave.changes 2014-10-19 19:28:02.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.octave.new/octave.changes 2014-11-03 13:13:24.000000000 +0100 @@ -1,0 +2,7 @@ +Fri Oct 31 21:36:28 UTC 2014 - [email protected] + +- Fix build with latest SuiteSparse library + * octave-suitesparse-4.4.patch +- Restore SuiteSparse linking hack for openSUSE <= 13.1 + +------------------------------------------------------------------- New: ---- octave-suitesparse-4.4.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ octave.spec ++++++ --- /var/tmp/diff_new_pack.iUJzJX/_old 2014-11-03 13:13:25.000000000 +0100 +++ /var/tmp/diff_new_pack.iUJzJX/_new 2014-11-03 13:13:25.000000000 +0100 @@ -48,8 +48,10 @@ Url: http://www.octave.org/ Source: ftp://ftp.gnu.org/gnu/octave/%{name}-%{version}.tar.bz2 Source2: octave.pc.in -# PATCH-FIX-UPSTREAM octave-3.8.0-llvm-3.4.patch https://savannah.gnu.org/bugs/?41061 +# PATCH-FIX-UPSTREAM octave-3.8.0-llvm-3.4.patch -- https://savannah.gnu.org/bugs/?41061 Patch1: octave-3.8.0-llvm-3.4.patch +# PATCH-FIX-UPSTREAM octave-suitesparse-4.4.patch -- http://savannah.gnu.org/bugs/?43063 +Patch2: octave-suitesparse-4.4.patch BuildRequires: arpack-ng-devel BuildRequires: bison BuildRequires: blas-devel @@ -172,11 +174,16 @@ %prep %setup -q +# check llvm version %if %{?with_jit} == 1 %if %( echo `rpm -q --queryformat %%{version} llvm-devel`| tr -d '.' ) > 33 %patch1 -p1 %endif %endif +# check suitesparse library version +%if %( echo `rpm -q --queryformat %%{version} suitesparse-devel`| tr -d '.' ) > 421 +%patch2 -p1 +%endif %build export CPPFLAGS="-DH5_USE_16_API" @@ -191,6 +198,10 @@ %if %{?with_java} == 0 --disable-java \ %endif + %if 0%{?suse_version} <= 1310 + --with-umfpack="-lumfpack -lcholmod -lcolamd -lsuitesparseconfig -lrt -llapack" \ + --with-cholmod="-lcholmod -lsuitesparseconfig -lrt" \ + %endif --enable-openmp make %{?_smp_mflags} ++++++ octave-suitesparse-4.4.patch ++++++ # HG changeset patch # User John W. Eaton <[email protected]> # Date 1411328708 14400 # Node ID afd6179d2616bfc429a5d24f14d50f01c5e56546 # Parent ebeb3defae373a628ccd11eba69d7bde33855cc7 allow building with new version of SuiteSparse (bug #43063) * oct-sparse.h (SUITESPARSE_ASSIGN_FPTR, SUITESPARSE_ASSIGN_FPTR2): New macros. * amd.cc, symbfact.cc, CSparse.cc, dSparse.cc, sparse-base-chol.cc: Use as needed. >From Andre da Costa Barros <[email protected]>. diff --git a/libinterp/dldfcn/amd.cc b/libinterp/dldfcn/amd.cc --- a/libinterp/dldfcn/amd.cc +++ b/libinterp/dldfcn/amd.cc @@ -164,11 +164,11 @@ // FIXME: how can we manage the memory allocation of amd // in a cleaner manner? - amd_malloc = malloc; - amd_free = free; - amd_calloc = calloc; - amd_realloc = realloc; - amd_printf = printf; + SUITESPARSE_ASSIGN_FPTR (malloc_func, amd_malloc, malloc); + SUITESPARSE_ASSIGN_FPTR (free_func, amd_free, free); + SUITESPARSE_ASSIGN_FPTR (calloc_func, amd_calloc, calloc); + SUITESPARSE_ASSIGN_FPTR (realloc_func, amd_realloc, realloc); + SUITESPARSE_ASSIGN_FPTR (printf_func, amd_printf, printf); octave_idx_type result = AMD_NAME (_order) (n_col, cidx, ridx, P, Control, Info); diff --git a/libinterp/dldfcn/symbfact.cc b/libinterp/dldfcn/symbfact.cc --- a/libinterp/dldfcn/symbfact.cc +++ b/libinterp/dldfcn/symbfact.cc @@ -114,17 +114,17 @@ if (spu == 0.) { cm->print = -1; - cm->print_function = 0; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, 0); } else { cm->print = static_cast<int> (spu) + 2; - cm->print_function =&SparseCholPrint; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, &SparseCholPrint); } cm->error_handler = &SparseCholError; - cm->complex_divide = CHOLMOD_NAME(divcomplex); - cm->hypotenuse = CHOLMOD_NAME(hypot); + SUITESPARSE_ASSIGN_FPTR2 (divcomplex_func, cm->complex_divide, divcomplex); + SUITESPARSE_ASSIGN_FPTR2 (hypot_func, cm->hypotenuse, hypot); double dummy; cholmod_sparse Astore; diff --git a/liboctave/array/CSparse.cc b/liboctave/array/CSparse.cc --- a/liboctave/array/CSparse.cc +++ b/liboctave/array/CSparse.cc @@ -5669,17 +5669,17 @@ if (spu == 0.) { cm->print = -1; - cm->print_function = 0; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, 0); } else { cm->print = static_cast<int> (spu) + 2; - cm->print_function =&SparseCholPrint; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, &SparseCholPrint); } cm->error_handler = &SparseCholError; - cm->complex_divide = CHOLMOD_NAME(divcomplex); - cm->hypotenuse = CHOLMOD_NAME(hypot); + SUITESPARSE_ASSIGN_FPTR2 (divcomplex_func, cm->complex_divide, divcomplex); + SUITESPARSE_ASSIGN_FPTR2 (hypot_func, cm->hypotenuse, hypot); cm->final_ll = true; @@ -5912,17 +5912,17 @@ if (spu == 0.) { cm->print = -1; - cm->print_function = 0; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, 0); } else { cm->print = static_cast<int> (spu) + 2; - cm->print_function =&SparseCholPrint; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, &SparseCholPrint); } cm->error_handler = &SparseCholError; - cm->complex_divide = CHOLMOD_NAME(divcomplex); - cm->hypotenuse = CHOLMOD_NAME(hypot); + SUITESPARSE_ASSIGN_FPTR2 (divcomplex_func, cm->complex_divide, divcomplex); + SUITESPARSE_ASSIGN_FPTR2 (hypot_func, cm->hypotenuse, hypot); cm->final_ll = true; @@ -6203,17 +6203,17 @@ if (spu == 0.) { cm->print = -1; - cm->print_function = 0; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, 0); } else { cm->print = static_cast<int> (spu) + 2; - cm->print_function =&SparseCholPrint; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, &SparseCholPrint); } cm->error_handler = &SparseCholError; - cm->complex_divide = CHOLMOD_NAME(divcomplex); - cm->hypotenuse = CHOLMOD_NAME(hypot); + SUITESPARSE_ASSIGN_FPTR2 (divcomplex_func, cm->complex_divide, divcomplex); + SUITESPARSE_ASSIGN_FPTR2 (hypot_func, cm->hypotenuse, hypot); cm->final_ll = true; @@ -6425,17 +6425,17 @@ if (spu == 0.) { cm->print = -1; - cm->print_function = 0; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, 0); } else { cm->print = static_cast<int> (spu) + 2; - cm->print_function =&SparseCholPrint; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, &SparseCholPrint); } cm->error_handler = &SparseCholError; - cm->complex_divide = CHOLMOD_NAME(divcomplex); - cm->hypotenuse = CHOLMOD_NAME(hypot); + SUITESPARSE_ASSIGN_FPTR2 (divcomplex_func, cm->complex_divide, divcomplex); + SUITESPARSE_ASSIGN_FPTR2 (hypot_func, cm->hypotenuse, hypot); cm->final_ll = true; diff --git a/liboctave/array/dSparse.cc b/liboctave/array/dSparse.cc --- a/liboctave/array/dSparse.cc +++ b/liboctave/array/dSparse.cc @@ -5871,17 +5871,17 @@ if (spu == 0.) { cm->print = -1; - cm->print_function = 0; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, 0); } else { cm->print = static_cast<int> (spu) + 2; - cm->print_function =&SparseCholPrint; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, &SparseCholPrint); } cm->error_handler = &SparseCholError; - cm->complex_divide = CHOLMOD_NAME(divcomplex); - cm->hypotenuse = CHOLMOD_NAME(hypot); + SUITESPARSE_ASSIGN_FPTR2 (divcomplex_func, cm->complex_divide, divcomplex); + SUITESPARSE_ASSIGN_FPTR2 (hypot_func, cm->hypotenuse, hypot); cm->final_ll = true; @@ -6088,17 +6088,17 @@ if (spu == 0.) { cm->print = -1; - cm->print_function = 0; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, 0); } else { cm->print = static_cast<int> (spu) + 2; - cm->print_function =&SparseCholPrint; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, &SparseCholPrint); } cm->error_handler = &SparseCholError; - cm->complex_divide = CHOLMOD_NAME(divcomplex); - cm->hypotenuse = CHOLMOD_NAME(hypot); + SUITESPARSE_ASSIGN_FPTR2 (divcomplex_func, cm->complex_divide, divcomplex); + SUITESPARSE_ASSIGN_FPTR2 (hypot_func, cm->hypotenuse, hypot); cm->final_ll = true; @@ -6350,17 +6350,17 @@ if (spu == 0.) { cm->print = -1; - cm->print_function = 0; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, 0); } else { cm->print = static_cast<int> (spu) + 2; - cm->print_function =&SparseCholPrint; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, &SparseCholPrint); } cm->error_handler = &SparseCholError; - cm->complex_divide = CHOLMOD_NAME(divcomplex); - cm->hypotenuse = CHOLMOD_NAME(hypot); + SUITESPARSE_ASSIGN_FPTR2 (divcomplex_func, cm->complex_divide, divcomplex); + SUITESPARSE_ASSIGN_FPTR2 (hypot_func, cm->hypotenuse, hypot); cm->final_ll = true; @@ -6584,17 +6584,17 @@ if (spu == 0.) { cm->print = -1; - cm->print_function = 0; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, 0); } else { cm->print = static_cast<int> (spu) + 2; - cm->print_function =&SparseCholPrint; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, &SparseCholPrint); } cm->error_handler = &SparseCholError; - cm->complex_divide = CHOLMOD_NAME(divcomplex); - cm->hypotenuse = CHOLMOD_NAME(hypot); + SUITESPARSE_ASSIGN_FPTR2 (divcomplex_func, cm->complex_divide, divcomplex); + SUITESPARSE_ASSIGN_FPTR2 (hypot_func, cm->hypotenuse, hypot); cm->final_ll = true; diff --git a/liboctave/numeric/sparse-base-chol.cc b/liboctave/numeric/sparse-base-chol.cc --- a/liboctave/numeric/sparse-base-chol.cc +++ b/liboctave/numeric/sparse-base-chol.cc @@ -105,17 +105,17 @@ if (spu == 0.) { cm->print = -1; - cm->print_function = 0; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, 0); } else { cm->print = static_cast<int> (spu) + 2; - cm->print_function =&SparseCholPrint; + SUITESPARSE_ASSIGN_FPTR (printf_func, cm->print_function, &SparseCholPrint); } cm->error_handler = &SparseCholError; - cm->complex_divide = CHOLMOD_NAME(divcomplex); - cm->hypotenuse = CHOLMOD_NAME(hypot); + SUITESPARSE_ASSIGN_FPTR2 (divcomplex_func, cm->complex_divide, divcomplex); + SUITESPARSE_ASSIGN_FPTR2 (hypot_func, cm->hypotenuse, hypot); cm->final_asis = false; cm->final_super = false; diff --git a/liboctave/util/oct-sparse.h b/liboctave/util/oct-sparse.h --- a/liboctave/util/oct-sparse.h +++ b/liboctave/util/oct-sparse.h @@ -94,4 +94,14 @@ #endif #endif +// Cope with new suitesparse versions +// +#if defined (SUITESPARSE_VERSION) && SUITESPARSE_VERSION >= SUITESPARSE_VER_CODE (4, 3) +# define SUITESPARSE_ASSIGN_FPTR(f_name, f_var, f_assign) (SuiteSparse_config.f_name = f_assign) +# define SUITESPARSE_ASSIGN_FPTR2(f_name, f_var, f_assign) (SuiteSparse_config.f_name = SuiteSparse_##f_assign) +#else +# define SUITESPARSE_ASSIGN_FPTR(f_name, f_var, f_assign) (f_var = f_assign) +# define SUITESPARSE_ASSIGN_FPTR2(f_name, f_var, f_assign) (f_var = CHOLMOD_NAME (f_assign)) #endif + +#endif -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
