From bug-octave-request at bevo dot che dot wisc dot edu Thu Dec 26 14:34:55 2002 Subject: Re: SGI octave test failure From: Paul Kienzle To: bug-octave at bevo dot che dot wisc dot edu Date: Thu, 26 Dec 2002 15:34:16 -0500 I could reproduce the problem using the following: ddot.cc: #include #define F77_FUNC(name,NAME) name ## _ extern "C" double F77_FUNC (ddot, DDOT) (const int*, const double*, const int*, const double*, const int*); int main(int argc, char *argv[]) { const int len = 4; const int one = 1; const double v[] = { 1., 2., 3., 4. }; const double a[] = { 4., 3., 2., 1. }; const double retval = F77_FUNC (ddot, DDOT) (&len, v, &one, a, &one); std::cout << "dot product is " << retval << std::endl; return 0; } g++ ddot.cc -lscs; ./a.out # this fails g++ ddot.cc -lblas; ./a.out # this succeeds I tried it for both gcc 3.0.4 and gcc 3.2.1. Any ideas? The other option I was pursuing was compiling octave with SGI's CC compiler. I made good progress using the -LANG:std compiler option. I had to fake , , etc. That was easy enough, but I was stymied by: CC -LANG:std -L/usr/lib32 -c -I. -I.. -I../liboctave -I../src -I../libcruft/misc -I../glob -I../glob -DHAVE_CONFIG_H -g Cell.cc -o Cell.o cc-1070 CC: ERROR File = /usr/include/CC/stl_list.h, Line = 46 The indicated type is incomplete. _Tp _M_data; ^ A template was detected during header processing. instantiation of class "std::_List_node" at line 199 of "/usr/include/CC/stl_alloc.h" instantiation of "std::_List_node *std::simple_alloc, std::alloc>::allocate(size_t)" at line 168 instantiation of "std::_List_node *std::_List_alloc_base, true>::_M_get_node()" at line 187 instantiation of "std::_List_base>::_List_base(const std::_List_base>::allocator_type &)" at line 310 instantiation of "std::list>::list(const std::list>::allocator_type &)" at line 254 of "ov.h" It seems to happen because octave_value_list is forward declared before the list is needed, but I don't have a minimal example yet. Given that octave compiles without -lscs, I may not spend the time trying to get it to work. FWIW, without -lscs, make check returns failures for: eval-catch-{1,2,9,10}.m eval-{3,7,9}.m global-4.m quad-2.m panic: Segmentation fault -- stopping myself... detrend-3.m ans = 1 try-{9,10}.m while-1.m The eval-{3,7,9}, global-4 and while-1 are spurious: they expect no output and receive none. Perhaps this version of dejagnu (1.4.3) handles blank lines differently? Paul Kienzle pkienzle at users dot sf dot net On Tue, Dec 24, 2002 at 01:21:27AM -0500, Paul Kienzle wrote: > Bug report for Octave 2.1.40 configured for mips-sgi-irix6.5 > > Description: > ----------- > > bash-2.05a$ LD_LIBRARY_PATH=$OF/src:$OF/liboctave:$OF/libcruft:/usr/local/lib src/octave > Bus error (core dumped) > bash-2.05a$ gdb src/octave core > GNU gdb 5.2 > Copyright 2002 Free Software Foundation, Inc. > This GDB was configured as "mips-sgi-irix6.5"... > Core was generated by `octave'. > Program terminated with signal 10, Bus error. > Reading symbols from /data/freeware/src/octave-2.1.40/src/liboctinterp.so... > done. > Reading symbols from /data/freeware/src/octave-2.1.40/liboctave/liboctave.so... > done. > Reading symbols from /data/freeware/src/octave-2.1.40/libcruft/libcruft.so... > done. > Reading symbols from /usr/lib32/libscs.so...done. > Reading symbols from /usr/lib32/libcurses.so...done. > Reading symbols from /usr/lib32/libdl.so...done. > Reading symbols from /usr/lib32/libm.so...done. > Reading symbols from /usr/lib32/libftn.so...done. > Reading symbols from /usr/local/lib/libstdc++.so.6...done. > Reading symbols from /usr/local/lib/libgcc_s.so.1...done. > Reading symbols from /usr/lib32/libc.so.1...done. > Reading symbols from /usr/lib32/libCsup.so...done. > Reading symbols from /usr/lib32/libC.so.2...done. > Reading symbols from /usr/lib32/libCio.so.1...done. > #0 0x0504cd94 in perfutil_ () from /usr/local/lib/libstdc++.so.6 > (gdb) bt > #0 0x0504cd94 in perfutil_ () from /usr/local/lib/libstdc++.so.6 > #1 0x0ae44a74 in __dynamic_cast_ref () at rtti.cxx:328 > > Repeat-By: > --------- > > * Please replace this item with a description of the sequence of > events that causes the problem to occur. > > Fix: > --- > > * If possible, replace this item with a description of how to > fix the problem (if you don't have a fix for the problem, don't > include this section, but please do submit your report anyway). > > > > Configuration (please do not edit this section): > ----------------------------------------------- > > uname output: IRIX64 jazz 6.5 04101931 IP35 > configure opts: '--disable-readline' '--enable-shared' '--disable-static' 'CC=/usr/local/bin/gcc' 'CXX=/usr/local/bin/g++' 'F77=f77' > Fortran compiler: f77 > FFLAGS: -O > F2C: > F2CFLAGS: > FLIBS: -L/usr/lib32/mips4/r10000 -L/usr/lib32/mips4 -L/usr/lib32 -lm -lftn > CPPFLAGS: > INCFLAGS: -I. -I. -I./liboctave -I./src -I./libcruft/misc -I./glob -I./glob > C compiler: /usr/local/bin/gcc, version 3.2.1 > CFLAGS: -g -O2 > CPICFLAG: > C++ compiler: /usr/local/bin/g++, version 3.2.1 > CXXFLAGS: -g -O2 -Wall > CXXPICFLAG: > LD_CXX: /usr/local/bin/g++ > LDFLAGS: > LIBFLAGS: -L. > RLD_FLAG: -L/usr/local/lib/octave-2.1.40 > BLAS_LIBS: -lscs > FFTW_LIBS: > LIBS: -lcurses -ldl -lm > LEXLIB: > LIBPLPLOT: > LIBDLFCN: > LIBGLOB: ./glob/glob.o ./glob/fnmatch.o > SED: /sbin/sed > DEFS: > > -DPACKAGE_NAME="" -DPACKAGE_TARNAME="" -DPACKAGE_VERSION="" > -DPACKAGE_STRING="" -DPACKAGE_BUGREPORT="" -DOCTAVE_SOURCE=1 > -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 > -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 > -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_UNISTD_H=1 -DSEPCHAR=1 > -DSEPCHAR_STR=":" -D__NO_MATH_INLINES=1 > -DCXX_NEW_FRIEND_TEMPLATE_DECL=1 -DCXX_ISO_COMPLIANT_LIBRARY=1 > -DCXX_ABI=gnu_v3 -DHAVE_LIBM=1 -DF77_FUNC(name,NAME)=name ## _ > -DF77_FUNC_(name,NAME)=name ## _ -DHAVE_BLAS=1 -DHAVE_GETHOSTNAME=1 > -DHAVE_GETPWNAM=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 > -DSIZEOF_LONG_LONG=8 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 > -DNPOS=std::string::npos -DSTDC_HEADERS=1 -DHAVE_DIRENT_H=1 > -DTIME_WITH_SYS_TIME=1 -DHAVE_SYS_WAIT_H=1 -DHAVE_ASSERT_H=1 > -DHAVE_CURSES_H=1 -DHAVE_DLFCN_H=1 -DHAVE_FCNTL_H=1 -DHAVE_FLOAT_H=1 > -DHAVE_GRP_H=1 -DHAVE_IEEEFP_H=1 -DHAVE_LIMITS_H=1 -DHAVE_MEMORY_H=1 > -DHAVE_NAN_H=1 -DHAVE_POLL_H=1 -DHAVE_PWD_H=1 -DHAVE_STDLIB_H=1 > -DHAVE_STRING_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_PARAM_H=1 > -DHAVE_SYS_POLL_H=1 -DHAVE_SYS_RESOURCE_H=1 -DHAVE_SYS_SELECT_H=1 > -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_TIMES_H=1 > -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_UTSNAME_H=1 -DHAVE_UNISTD_H=1 > -DHAVE_VARARGS_H=1 -DHAVE_SSTREAM=1 -DHAVE_TERMIO_H=1 -DHAVE_SGTTY_H=1 > -DHAVE_GLOB_H=1 -DHAVE_FNMATCH_H=1 -DHAVE_ATEXIT=1 -DHAVE_BCOPY=1 > -DHAVE_BZERO=1 -DHAVE_DUP2=1 -DHAVE_ENDGRENT=1 -DHAVE_ENDPWENT=1 > -DHAVE_EXECVP=1 -DHAVE_FCNTL=1 -DHAVE_FORK=1 -DHAVE_GETCWD=1 > -DHAVE_GETEGID=1 -DHAVE_GETEUID=1 -DHAVE_GETGID=1 -DHAVE_GETGRENT=1 > -DHAVE_GETGRGID=1 -DHAVE_GETGRNAM=1 -DHAVE_GETPGRP=1 -DHAVE_GETPID=1 > -DHAVE_GETPPID=1 -DHAVE_GETPWENT=1 -DHAVE_GETPWUID=1 > -DHAVE_GETTIMEOFDAY=1 -DHAVE_GETUID=1 -DHAVE_GETWD=1 -DHAVE_KILL=1 > -DHAVE_LINK=1 -DHAVE_LOCALTIME_R=1 -DHAVE_LSTAT=1 -DHAVE_MEMMOVE=1 > -DHAVE_MKDIR=1 -DHAVE_MKFIFO=1 -DHAVE_PIPE=1 -DHAVE_POLL=1 > -DHAVE_PUTENV=1 -DHAVE_RAISE=1 -DHAVE_READLINK=1 -DHAVE_RENAME=1 > -DHAVE_RINDEX=1 -DHAVE_RMDIR=1 -DHAVE_SELECT=1 -DHAVE_SETGRENT=1 > -DHAVE_SETPWENT=1 -DHAVE_SETVBUF=1 -DHAVE_SIGACTION=1 > -DHAVE_SIGLONGJMP=1 -DHAVE_SIGPENDING=1 -DHAVE_SIGPROCMASK=1 > -DHAVE_SIGSUSPEND=1 -DHAVE_STAT=1 -DHAVE_STRCASECMP=1 -DHAVE_STRDUP=1 > -DHAVE_STRERROR=1 -DHAVE_STRFTIME=1 -DHAVE_STRNCASECMP=1 > -DHAVE_STRPTIME=1 -DHAVE_SYMLINK=1 -DHAVE_TEMPNAM=1 -DHAVE_UMASK=1 > -DHAVE_UNLINK=1 -DHAVE_USLEEP=1 -DHAVE_VFPRINTF=1 -DHAVE_VSPRINTF=1 > -DHAVE_VSNPRINTF=1 -DHAVE_WAITPID=1 -DHAVE_LIBDL=1 -DHAVE_DLOPEN=1 > -DHAVE_DLSYM=1 -DHAVE_DLERROR=1 -DHAVE_DLCLOSE=1 -DHAVE_DLOPEN_API=1 > -DENABLE_DYNAMIC_LINKING=1 -DHAVE_TIMEVAL=1 -DHAVE_FINITE=1 > -DHAVE_ISNAN=1 -DHAVE_ACOSH=1 -DHAVE_ASINH=1 -DHAVE_ATANH=1 > -DHAVE_ERF=1 -DHAVE_ERFC=1 -DHAVE_STRUCT_STAT_ST_BLKSIZE=1 > -DHAVE_STRUCT_STAT_ST_BLOCKS=1 -DHAVE_STRUCT_STAT_ST_RDEV=1 > -DHAVE_TZNAME=1 -DEXCEPTION_IN_MATH=1 -DRETSIGTYPE=void > -DHAVE_SYS_SIGLIST=1 -DHAVE_POSIX_SIGNALS=1 -DHAVE_DEV_T=1 > -DHAVE_INO_T=1 -DHAVE_NLINK_T=1 -DHAVE_NLINK_T=1 -DHAVE_SIGSET_T=1 > -DHAVE_SIG_ATOMIC_T=1 -DHAVE_GETRUSAGE=1 -DHAVE_TIMES=1 > -DYYTEXT_POINTER=1 -DGNUPLOT_BINARY="gnuplot" -DGNUPLOT_HAS_MULTIPLOT=1 > -DGNUPLOT_HAS_FRAMES=1 ------------------------------------------------------------- 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 -------------------------------------------------------------