From help-request at octave dot org Mon Nov 28 13:48:12 2005 Subject: Re: Problem building 2.9.4 on x86_64 From: Tim Davis To: Orion Poplawski Cc: help at octave dot org Date: Mon, 28 Nov 2005 13:31:45 -0600 You cannot typecast the long * down to int *. You need to call cholmod_l_row_subtree instead, when compiling with -m64. The 4th argument of that function is long *, not int *. Likewise for all other CHOLMOD routines. You need cholmod_l_* when compiling in 64-bit mode with 64-bit integers. Orion Poplawski wrote: > I get the following error: > > g++ -c -I/usr/include/glpk -fPIC -I. -I.. -I../liboctave -I../src > -I../libcruft/misc -DHAVE_CONFIG_H -Wall -W -Wshadow -O2 -g -pipe > -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -m64 -mtune=nocona -D_GNU_SOURCE > ./DLD-FUNCTIONS/spdet.cc -o pic/spdet.o > ./DLD-FUNCTIONS/spchol.cc: In function 'octave_value_list > Fsymbfact(const octave_value_list&, int)': > ./DLD-FUNCTIONS/spchol.cc:612: error: cannot convert 'octave_idx_type*' > to 'int*' for argument '4' to 'int cholmod_row_subtree(cholmod_sparse*, > cholmod_sparse*, size_t, int*, cholmod_sparse*, cholmod_common*)' > > This is because on x86_64 octave_idx_type is a 64-bit int. I suppose > this is really a ufsparse issue so I'm CCing Tim Davis. Not sure I can > safely cast to an int*. Certainly limits the size of the arrays. > ------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. Octave's home on the web: http://www.octave.org How to fund new projects: http://www.octave.org/funding.html Subscription information: http://www.octave.org/archive.html -------------------------------------------------------------