From help-request at octave dot org Fri Jan 28 08:07:17 2005 Subject: link failure both octave-2.1.64 and cvs From: Gert Van den Eynde To: help at octave dot org Date: Fri, 28 Jan 2005 07:14:38 -0600 --Boundary-00=_muj+Bc4nBVpYTD5 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi, I run a SuSE 9.0 system with gcc3.4.3 in /usr/local/... Trying to compile octave, both from latest source 2.1.64 and cvs, it fails with g++ -I. -I.. -I../liboctave -I../src -I../libcruft/misc -I../glob -I../glob -DHAVE_CONFIG_H -mieee-fp -Wall -W -Wshadow-g -O2 -rdynamic \ -L.. -fPIC -o octave \ main.o \ -L../liboctave -L../libcruft -L../src -Wl,-rpath -Wl,/usr/local/lib/octave-2.1.64 \ -loctinterp -loctave -lcruft ../glob/glob.o ../glob/fnmatch.o \ -llapack -lcblas -lf77blas -latlas -lreadline -lncurses -ldl -lm -L/usr/local/lib/gcc/i686-pc-linux-gnu/3.4.3 -L/usr/local/lib/gcc/i686-pc-linux-gnu/3.4.3/../../.. -lfrtbegin -lg2c -lm -lgcc_s ../src/liboctinterp.so: undefined reference to `std::basic_iostream >::~basic_iostream()' ../src/liboctinterp.so: undefined reference to `std::basic_iostream >::basic_iostream(std::basic_streambuf >*)' ../src/liboctinterp.so: undefined reference to `std::basic_iostream >::~basic_iostream()' ../src/liboctinterp.so: undefined reference to `std::basic_iostream >::~basic_iostream()' collect2: ld returned 1 exit status make[2]: *** [octave] Error 1 make[2]: Leaving directory `/home/gvdeynde/octave-2.1.64/src' make[1]: *** [src] Error 2 make[1]: Leaving directory `/home/gvdeynde/octave-2.1.64' make: *** [all] Error 2 seems the linker seems to be confused (I think these errors also popup when linking with gcc instead of g++, but this is certainly not happening). I've attached the automatically generated octave-bug file. Any tips are welcome! gert ---------- SCK-CEN Disclaimer --------- http://www.sckcen.be/emaildisclaimer.html --Boundary-00=_muj+Bc4nBVpYTD5 Content-Type: application/x-shellscript; name="octave-bug" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="octave-bug" #! /bin/sh - # # octave-bug - create a bug report and mail it to the bug-octave # mailing list. # # Patterned after the bashbug script from bash 1.14. # # John W. Eaton # jwe at bevo dot che dot wisc dot edu # University of Wisconsin-Madison # Department of Chemical Engineering # Configuration: these variables are filled in when running make to # compile Octave. config_opts=3D"'--enable-dl' '--enable-lite-kernel' '--enable-shared' '--di= sable-static'" VERSION=3D"2.1.64" SED=3D"/usr/bin/sed" MACHINE=3D"i686-pc-linux-gnu" =4677=3D"g77" =46FLAGS=3D"-O -mieee-fp" =46PICFLAG=3D"-fPIC" =46LIBS=3D"-L/usr/local/lib/gcc/i686-pc-linux-gnu/3.4.3 -L/usr/local/lib/gc= c/i686-pc-linux-gnu/3.4.3/../../.. -lfrtbegin -lg2c -lm -lgcc_s" =462C=3D"" =462CFLAGS=3D"" CPPFLAGS=3D"" INCFLAGS=3D"-I. -I. -I./liboctave -I./src -I./libcruft/misc -I./glob -I./g= lob" CC=3D"gcc" CC_VERSION=3D"3.4.3" CFLAGS=3D"-g -O2" CPICFLAG=3D"-fPIC" CXX=3D"g++" CXX_VERSION=3D"3.4.3" CXXFLAGS=3D"-g -O2" CXXPICFLAG=3D"-fPIC" LD_CXX=3D"g++" LDFLAGS=3D"" LIBFLAGS=3D"-L." RLD_FLAG=3D"-Wl,-rpath -Wl,/usr/local/lib/octave-2.1.64" LIBS=3D"-lreadline -lncurses -ldl -lm " BLAS_LIBS=3D"-llapack -lcblas -lf77blas -latlas" =46FTW_LIBS=3D"" LEXLIB=3D"" LIBPLPLOT=3D"" LIBGLOB=3D"./glob/glob.o ./glob/fnmatch.o" LIBDLFCN=3D"" DEFS=3D"-DPACKAGE_NAME=3D\"\" -DPACKAGE_TARNAME=3D\"\" -DPACKAGE_VERSION=3D= \"\" -DPACKAGE_STRING=3D\"\" -DPACKAGE_BUGREPORT=3D\"\" -DOCTAVE_SOURCE=3D1= -DSTDC_HEADERS=3D1 -DHAVE_SYS_TYPES_H=3D1 -DHAVE_SYS_STAT_H=3D1 -DHAVE_STD= LIB_H=3D1 -DHAVE_STRING_H=3D1 -DHAVE_MEMORY_H=3D1 -DHAVE_STRINGS_H=3D1 -DHA= VE_INTTYPES_H=3D1 -DHAVE_STDINT_H=3D1 -DHAVE_UNISTD_H=3D1 -DSEPCHAR=3D1 -DS= EPCHAR_STR=3D\":\" -D__NO_MATH_INLINES=3D1 -DCXX_NEW_FRIEND_TEMPLATE_DECL= =3D1 -DCXX_ISO_COMPLIANT_LIBRARY=3D1 -DCXX_ABI=3Dgnu_v3 -DHAVE_LIBM=3D1 -DH= AVE_IEEE754_DATA_FORMAT=3D1 -DF77_FUNC(name,NAME)=3Dname ## _ -DF77_FUNC_(n= ame,NAME)=3Dname ## __ -DHAVE_BLAS=3D1 -DHAVE_GETHOSTNAME=3D1 -DHAVE_GETPWN= AM=3D1 -DHAVE_DEV_T=3D1 -DHAVE_INO_T=3D1 -DHAVE_NLINK_T=3D1 -DHAVE_NLINK_T= =3D1 -DHAVE_LONG_LONG_INT=3D1 -DHAVE_UNSIGNED_LONG_LONG_INT=3D1 -DHAVE_SIGS= ET_T=3D1 -DHAVE_SIG_ATOMIC_T=3D1 -DSIZEOF_SHORT=3D2 -DSIZEOF_INT=3D4 -DSIZE= OF_LONG=3D4 -DSIZEOF_LONG_LONG=3D8 -DHAVE_ALLOCA_H=3D1 -DHAVE_ALLOCA=3D1 -D= NPOS=3Dstd::string::npos -DHAVE_PLACEMENT_DELETE=3D1 -DHAVE_DYNAMIC_AUTO_AR= RAYS=3D1 -DSTDC_HEADERS=3D1 -DHAVE_DIRENT_H=3D1 -DTIME_WITH_SYS_TIME=3D1 -D= HAVE_SYS_WAIT_H=3D1 -DHAVE_ASSERT_H=3D1 -DHAVE_CURSES_H=3D1 -DHAVE_DLFCN_H= =3D1 -DHAVE_FCNTL_H=3D1 -DHAVE_FLOAT_H=3D1 -DHAVE_GRP_H=3D1 -DHAVE_LIMITS_H= =3D1 -DHAVE_MEMORY_H=3D1 -DHAVE_NCURSES_H=3D1 -DHAVE_POLL_H=3D1 -DHAVE_PWD_= H=3D1 -DHAVE_STDLIB_H=3D1 -DHAVE_STRING_H=3D1 -DHAVE_SYS_IOCTL_H=3D1 -DHAVE= _SYS_PARAM_H=3D1 -DHAVE_SYS_POLL_H=3D1 -DHAVE_SYS_RESOURCE_H=3D1 -DHAVE_SYS= _SELECT_H=3D1 -DHAVE_SYS_STAT_H=3D1 -DHAVE_SYS_TIME_H=3D1 -DHAVE_SYS_TIMES_= H=3D1 -DHAVE_SYS_TYPES_H=3D1 -DHAVE_SYS_UTSNAME_H=3D1 -DHAVE_TERMCAP_H=3D1 = =2DDHAVE_UNISTD_H=3D1 -DHAVE_SSTREAM=3D1 -DHAVE_TERMIO_H=3D1 -DHAVE_SGTTY_H= =3D1 -DHAVE_GLOB_H=3D1 -DHAVE_FNMATCH_H=3D1 -DHAVE_ATEXIT=3D1 -DHAVE_BASENA= ME=3D1 -DHAVE_BCOPY=3D1 -DHAVE_BZERO=3D1 -DHAVE_DUP2=3D1 -DHAVE_ENDGRENT=3D= 1 -DHAVE_ENDPWENT=3D1 -DHAVE_EXECVP=3D1 -DHAVE_FCNTL=3D1 -DHAVE_FORK=3D1 -D= HAVE_GETCWD=3D1 -DHAVE_GETEGID=3D1 -DHAVE_GETEUID=3D1 -DHAVE_GETGID=3D1 -DH= AVE_GETGRENT=3D1 -DHAVE_GETGRGID=3D1 -DHAVE_GETGRNAM=3D1 -DHAVE_GETPGRP=3D1= -DHAVE_GETPID=3D1 -DHAVE_GETPPID=3D1 -DHAVE_GETPWENT=3D1 -DHAVE_GETPWUID= =3D1 -DHAVE_GETTIMEOFDAY=3D1 -DHAVE_GETUID=3D1 -DHAVE_GETWD=3D1 -DHAVE_KILL= =3D1 -DHAVE_LINK=3D1 -DHAVE_LOCALTIME_R=3D1 -DHAVE_LSTAT=3D1 -DHAVE_MEMMOVE= =3D1 -DHAVE_MKDIR=3D1 -DHAVE_MKFIFO=3D1 -DHAVE_MKSTEMP=3D1 -DHAVE_ON_EXIT= =3D1 -DHAVE_PIPE=3D1 -DHAVE_POLL=3D1 -DHAVE_PUTENV=3D1 -DHAVE_RAISE=3D1 -DH= AVE_READLINK=3D1 -DHAVE_RENAME=3D1 -DHAVE_RINDEX=3D1 -DHAVE_RMDIR=3D1 -DHAV= E_ROUND=3D1 -DHAVE_SELECT=3D1 -DHAVE_SETGRENT=3D1 -DHAVE_SETPWENT=3D1 -DHAV= E_SETVBUF=3D1 -DHAVE_SIGACTION=3D1 -DHAVE_SIGLONGJMP=3D1 -DHAVE_SIGPENDING= =3D1 -DHAVE_SIGPROCMASK=3D1 -DHAVE_SIGSUSPEND=3D1 -DHAVE_STAT=3D1 -DHAVE_ST= RCASECMP=3D1 -DHAVE_STRDUP=3D1 -DHAVE_STRERROR=3D1 -DHAVE_STRFTIME=3D1 -DHA= VE_STRNCASECMP=3D1 -DHAVE_STRPTIME=3D1 -DHAVE_SYMLINK=3D1 -DHAVE_TEMPNAM=3D= 1 -DHAVE_UMASK=3D1 -DHAVE_UNLINK=3D1 -DHAVE_USLEEP=3D1 -DHAVE_VFPRINTF=3D1 = =2DDHAVE_VSPRINTF=3D1 -DHAVE_VSNPRINTF=3D1 -DHAVE_WAITPID=3D1 -DHAVE_LIBDL= =3D1 -DHAVE_DLOPEN=3D1 -DHAVE_DLSYM=3D1 -DHAVE_DLERROR=3D1 -DHAVE_DLCLOSE= =3D1 -DHAVE_DLOPEN_API=3D1 -DENABLE_DYNAMIC_LINKING=3D1 -DHAVE_TIMEVAL=3D1 = =2DDHAVE_FINITE=3D1 -DHAVE_ISNAN=3D1 -DHAVE_ISINF=3D1 -DHAVE_COPYSIGN=3D1 -= DHAVE_ACOSH=3D1 -DHAVE_ASINH=3D1 -DHAVE_ATANH=3D1 -DHAVE_ERF=3D1 -DHAVE_ERF= C=3D1 -DHAVE_STRUCT_STAT_ST_BLKSIZE=3D1 -DHAVE_STRUCT_STAT_ST_BLOCKS=3D1 -D= HAVE_STRUCT_STAT_ST_RDEV=3D1 -DHAVE_STRUCT_TM_TM_ZONE=3D1 -DHAVE_TM_ZONE=3D= 1 -DUSE_READLINE=3D1 -DEXCEPTION_IN_MATH=3D1 -DRETSIGTYPE=3Dvoid -DSYS_SIGL= IST_DECLARED=3D1 -DHAVE_SYS_SIGLIST=3D1 -DHAVE_POSIX_SIGNALS=3D1 -DHAVE_GET= RUSAGE=3D1 -DHAVE_TIMES=3D1 -DYYTEXT_POINTER=3D1 -DGNUPLOT_BINARY=3D\"gnupl= ot\" -DGNUPLOT_HAS_FRAMES=3D1" : ${USER=3D$LOGNAME} CC_AND_VERSION=3D if test -n "$CC_VERSION"; then CC_AND_VERSION=3D"$CC, version $CC_VERSION" fi CXX_AND_VERSION=3D if test -n "$CXX_VERSION"; then CXX_AND_VERSION=3D"$CXX, version $CXX_VERSION" fi PATH=3D/bin:/usr/bin:/usr/ucb:/usr/local/bin:$PATH export PATH TEMP=3D/tmp/octave-bug.$$ : ${EDITOR=3Demacs} : ${PAGER=3Dmore} trap 'rm -f $TEMP $TEMP.x; exit 1' 1 2 3 13 15 trap 'rm -f $TEMP $TEMP.x' 0 UN=3D if (uname) > /dev/null 2>&1; then UN=3D`uname -a` fi HAVE_FMT=3Dfalse if (fmt < /dev/null) > /dev/null 2>&1; then HAVE_FMT=3Dtrue fi # Check whether to use -n or \c to keep echo from printing a newline # character. Stolen from autoconf, which borrowed the idea from dist 3.0. if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then # Stardent Vistra SVR4 grep lacks -e, says ghazi at caip dot rutgers dot edu dot if (echo -n testing; echo 1,2,3) | $SED s/-n/xn/ | grep xn >/dev/null; th= en echo_n=3D echo_c=3D' ' else echo_n=3D-n echo_c=3D fi else echo_n=3D echo_c=3D'\c' fi ss_p=3D`echo $VERSION | grep "^ss-"` if test -n "$ss_p"; then BUGADDR=3D"maintainers at octave dot org" else pretest_p=3D`echo $VERSION \ | $SED 's,.*\.\([0-9]*\).*,\1,' \ | grep -v '\.' \ | grep '[0-9]'` if test -n "$pretest_p" && test "$pretest_p" -ge 90; then BUGADDR=3D"maintainers at octave dot org" else BUGADDR=3D"bug at octave dot org" fi fi SUBJECT=3D"[50 character or so descriptive subject here (for reference)]" if test $# -gt 0; then case "$1" in -s) shift if test $# -gt 0; then SUBJECT=3D"$1" shift else echo "usage: octave-bug [-s subject]" exit 1 fi ;; esac fi cat > $TEMP << EOF To: $BUGADDR EOF if test -n "$USER"; then cat >> $TEMP << EOF Cc: $USER EOF fi cat >> $TEMP << EOF Subject: $SUBJECT =2D------- Bug report for Octave $VERSION configured for $MACHINE Description: =2D---------- * Please replace this item with a detailed description of the problem. Suggestions or general comments are also welcome. Repeat-By: =2D-------- * Please replace this item with a description of the sequence of events that causes the problem to occur.=20 =46ix: =2D-- * 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): =2D---------------------------------------------- uname output: $UN configure opts: $config_opts =46ortran compiler: $F77 =46FLAGS: $FFLAGS =462C: $F2C =462CFLAGS: $F2CFLAGS =46LIBS: $FLIBS CPPFLAGS: $CPPFLAGS INCFLAGS: $INCFLAGS C compiler: $CC_AND_VERSION CFLAGS: $CFLAGS CPICFLAG: $CPICFLAG C++ compiler: $CXX_AND_VERSION CXXFLAGS: $CXXFLAGS CXXPICFLAG: $CXXPICFLAG LD_CXX: $LD_CXX LDFLAGS: $LDFLAGS LIBFLAGS: $LIBFLAGS RLD_FLAG: $RLD_FLAG BLAS_LIBS: $BLAS_LIBS =46FTW_LIBS: $FFTW_LIBS LIBS: $LIBS LEXLIB: $LEXLIB LIBPLPLOT: $LIBPLPLOT LIBDLFCN: $LIBDLFCN LIBGLOB: $LIBGLOB SED: $SED DEFS: EOF if $HAVE_FMT; then echo $DEFS | fmt | $SED 's/^/ /' >> $TEMP else echo $DEFS >> $TEMP fi if test $# -gt 0; then if test -f "$1"; then cat >> $TEMP << EOF User-preferences (please do not edit this section): =2D------------------------------------------------- EOF cat $1 >> $TEMP fi fi chmod u+w $TEMP cp $TEMP $TEMP.x status=3D0 editing=3Dtrue while $editing; do if $EDITOR $TEMP; then while $editing; do echo $echo_n "(a)bort, (e)dit, (l)ist, (s)end? $echo_c" read ans case "$ans" in a* | A*) status=3D1 editing=3Dfalse ;; e* | E*) break; ;; l* | L*) $PAGER $TEMP ;; s* | S*) editing=3Dfalse ;; esac done else echo "problems with edit -- no bug report submitted" status=3D1 editing=3Dfalse fi done if test $status -eq 0; then if cmp -s $TEMP $TEMP.x; then echo "file not changed -- no bug report submitted" status=3D1 elif test `wc $TEMP | awk '{print $1}'` -eq 0; then echo "empty bug report file -- not submitted" status=3D1 else # Try to extract the recipient address, in case the To: line in the # message template has been changed. Also get cc: lines. TO_ADDR=3D`$SED -e '/^--------[ \t]*$/q' $TEMP | $SED -n -e 's/^[Tt][Oo= ]://p'` CC_ADDR=3D`$SED -e '/^--------[ \t]*$/q' $TEMP | $SED -n -e 's/^[Cc][Cc= ]://p'` if test -z "$TO_ADDR"; then echo "no valid \`To:' field found in header -- using $BUGADDR instead" else BUGADDR=3D"$TO_ADDR" =20 fi BUGADDR=3D"$BUGADDR $CC_ADDR" TMP_SUB=3D`$SED -e '/^--------[ \t]*$/q' $TEMP | $SED -n -e 's/^Subject= ://p'` if test -n "$TMP_SUB"; then SUBJECT=3D"$TMP_SUB" fi # Delete the `--------' separator in the message. # Don't pretty-print this. Odd whitespace kills Ultrix AWK! awk 'BEGIN{in_header=3D1;} /^--------[ \t]*$/ { if (in_header) { in_header=3D0; print ""; next; } } { print $0; }' $TEMP > $TEMP.x # Now try to mail it. ( /bin/mail $BUGADDR < $TEMP.x ) > /dev/null 2>&1 status=3D$? if test $status -ne 0; then ( Mail -s "$SUBJECT" $BUGADDR < $TEMP.x ) > /dev/null 2>&1 status=3D$? if test $status -ne 0; then ( /usr/ucb/mail -s "$SUBJECT" $BUGADDR < $TEMP.x ) > /dev/null 2>&1 status=3D$? if test $status -ne 0; then ( mailx -s "$SUBJECT" $BUGADDR < $TEMP.x ) > /dev/null 2>&1 status=3D$? fi fi fi if test $status -ne 0; then echo "unable to send mail..." fi fi fi if test $status -ne 0; then dead_bug_file=3D$HOME/dead-octave-bug looking_for_file=3Dtrue; n=3D1 while $looking_for_file; do if test -f "$dead_bug_file-$n"; then n=3D`expr $n + 1` else looking_for_file=3Dfalse dead_bug_file=3D$dead_bug_file-$n fi done echo "saving message in $dead_bug_file"; cat $TEMP >> $dead_bug_file; exit 1 else echo "bug report sent to: $TO_ADDR" echo " cc to: $CC_ADDR" fi exit $status --Boundary-00=_muj+Bc4nBVpYTD5-- ------------------------------------------------------------- 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 -------------------------------------------------------------