octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Compilation problem MSVC with recent 'sort' implementation


From: John W. Eaton
Subject: Re: Compilation problem MSVC with recent 'sort' implementation
Date: Sun, 03 Feb 2008 14:29:59 -0500

On  3-Feb-2008, Shai Ayal wrote:

| This patch doesn't solve my problem. I still get the same link time
| error. I did a fresh cvs checkout followed by autogen.sh and configure
| and still th same problem. Am I the only one?
| 
| The error I get:
| g++  -I. -I.. -I../liboctave -I../src -I../libcruft/misc
| -DHAVE_CONFIG_H -mieee-fp -Wall -W -Wshadow -Wold-style-cast -g -O2
| -rdynamic \
|       -L..  -fPIC  -o octave \
|       main.o  \
|       -L../liboctave -L../libcruft -L../src -Wl,-rpath
| -Wl,/usr/local/lib/octave-3.0.0+ \
|       -loctinterp -loctave  -lcruft   \
|        -lumfpack -lamd -lcamd -lcolamd \
|       -lcholmod -lccolamd -lcxsparse -llapack -lblas \
|       -lfftw3 -lreadline  -lncurses -ldl -lhdf5 -lz -lm
| -L/usr/lib/gcc/i386-redhat-linux/4.1.2
| -L/usr/lib/gcc/i386-redhat-linux/4.1.2/../../.. -lhdf5 -lz
| -lgfortranbegin -lgfortran -lm -lgcc_s
| ../liboctave/liboctave.so: undefined reference to
| `octave_sort<vec_index<long long>*>::octave_sort()'
| ../liboctave/liboctave.so: undefined reference to `octave_sort<long
| long>::octave_sort()'
| ../liboctave/liboctave.so: undefined reference to
| `octave_sort<vec_index<long long>*>::merge_freemem()'
| ../liboctave/liboctave.so: undefined reference to `octave_sort<long
| long>::sort(long long*, int)'
| ../liboctave/liboctave.so: undefined reference to `octave_sort<long
| long>::merge_freemem()'
| ../liboctave/liboctave.so: undefined reference to
| `octave_sort<vec_index<long long>*>::sort(vec_index<long long>**,
| int)'
| collect2: ld returned 1 exit status
| make[2]: *** [octave] Error 1
| make[2]: Leaving directory `/home/shaia/Download/octave-cvs/octave/src'
| make[1]: *** [src] Error 2
| make[1]: Leaving directory `/home/shaia/Download/octave-cvs/octave'
| make: *** [all] Error 2

I don't see this problem, but I'm usually using a 64-bit system where
long is 64-bits wide, so I don't think I need long long ints.  The
following is just a guess, but does it fix the problem?

jwe


2008-02-03  John W. Eaton  <address@hidden>

        * Array-i.cc: Also instantiate Arrays for long long type if it exists.


Index: liboctave/Array-i.cc
===================================================================
RCS file: /cvs/octave/liboctave/Array-i.cc,v
retrieving revision 1.24
diff -u -u -r1.24 Array-i.cc
--- liboctave/Array-i.cc        31 Jan 2008 18:59:09 -0000      1.24
+++ liboctave/Array-i.cc        3 Feb 2008 19:26:54 -0000
@@ -35,9 +35,15 @@
 
 INSTANTIATE_ARRAY_SORT (int);
 INSTANTIATE_ARRAY_SORT (long);
+#if defined (HAVE_LONG_LONG_INT)
+INSTANTIATE_ARRAY_SORT (long long);
+#endif
 
 INSTANTIATE_ARRAY_AND_ASSIGN (int, OCTAVE_API);
 INSTANTIATE_ARRAY_AND_ASSIGN (long, OCTAVE_API);
+#if defined (HAVE_LONG_LONG_INT)
+INSTANTIATE_ARRAY_AND_ASSIGN (long long, OCTAVE_API);
+#endif
 
 INSTANTIATE_ARRAY_ASSIGN (int, short, OCTAVE_API);
 INSTANTIATE_ARRAY_ASSIGN (int, char, OCTAVE_API);

reply via email to

[Prev in Thread] Current Thread [Next in Thread]