g++-3.0: on ia64, internal compiler error with octave code
Package: g++-3.0
Version: 1:3.0.4-7
Severity: important
The following bug report owes a lot to John Eaton's work. I reported a
problem with the octave2.1 package on the ia64 platform to him, the upstream
authors. Bdale kindly provided an account on ia64 for John.
There appear to (still) be some issues with g++-3.0 on ia64. Under some
optimisation switches, the executable is built, but segfaults. Under others,
g++-3.-0 dies.
The latter problem is detailed here. I quote from an email by John to
me. Note that the code in question is really part of GNU Octave, a program we
have successfully built hundreds of times on different platforms.
-----------------------------------------------------------------------------
From: "John W. Eaton" <jwe@bevo.che.wisc.edu>
Date: Wed, 24 Apr 2002 13:03:07 -0500
To: Dirk Eddelbuettel <edd@debian.org>
Subject: internal compiler error on ia64
OK, let's start with this one.
Here is the source file (pared down and simplified from what we really
have in lo-mappers.cc):
#include <complex>
extern std::complex<double> acosh (const std::complex<double>& x);
std::complex<double>
acos (const std::complex<double>& x)
{
return (std::real (x)) ? acosh (x) : acosh (x);
}
Here is the compile command and result:
g++-3.0 -v -save-temps -c -g foo-3.cc -o foo-3.o
Reading specs from /usr/lib/gcc-lib/ia64-linux/3.0.4/specs
Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,proto,objc --prefix=/usr --infodir=/share/info --mandir=/share/man --enable-shared --with-gnu-as --with-gnu-ld --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-checking --enable-threads=posix --enable-java-gc=boehm --with-cpp-install-dir=bin --enable-objc-gc ia64-linux
Thread model: posix
gcc version 3.0.4
/usr/lib/gcc-lib/ia64-linux/3.0.4/cpp0 -lang-c++ -D__GNUG__=3 -D__GXX_DEPRECATED -D__EXCEPTIONS -D__GXX_ABI_VERSION=100 -v -D__GNUC__=3 -D__GNUC_MINOR__=0 -D__GNUC_PATCHLEVEL__=4 -D__ia64 -D__ia64__ -D__linux -D__linux__ -D_LONGLONG -Dlinux -Dunix -D__LP64__ -D__ELF__ -D__ia64 -D__ia64__ -D__linux -D__linux__ -D_LONGLONG -D__linux__ -D__unix__ -D__LP64__ -D__ELF__ -D__linux -D__unix -Asystem=linux -Acpu=ia64 -Amachine=ia64 -D__NO_INLINE__ -D__STDC_HOSTED__=1 -D_GNU_SOURCE -D__LONG_MAX__=9223372036854775807L foo-3.cc foo-3.ii
GNU CPP version 3.0.4 (cpplib) (IA-64) Linux
#include "..." search starts here:
#include <...> search starts here:
/usr/include/g++-v3
/usr/include/g++-v3/ia64-linux
/usr/include/g++-v3/backward
/usr/local/include
/usr/lib/gcc-lib/ia64-linux/3.0.4/include
/usr/ia64-linux/include
/usr/include
End of search list.
/usr/lib/gcc-lib/ia64-linux/3.0.4/cc1plus -fpreprocessed foo-3.ii -quiet -dumpbase foo-3.cc -g -version -o foo-3.s
GNU CPP version 3.0.4 (cpplib) (IA-64) Linux
GNU C++ version 3.0.4 (ia64-linux)
compiled by GNU C version 3.0.4.
foo-3.cc: In function `std::complex<double> acos(const std::complex<double>&)':
foo-3.cc:8: Internal compiler error in change_address, at emit-rtl.c:1624
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
-----------------------------------------------------------------------------
I have not included the complete source file, which can be downloaded from
http://www.che.wisc.edu/~jwe/foo-3.ii
Dirk
--
Good judgement comes from experience; experience comes from bad judgement.
-- Fred Brooks
--
To UNSUBSCRIBE, email to debian-ia64-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Reply to: