help-octave
[Top][All Lists]
Advanced

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

Re: 2.9.6 build fails on an Opteron RHEL4


From: Fredrik Lingvall
Subject: Re: 2.9.6 build fails on an Opteron RHEL4
Date: Wed, 14 Jun 2006 10:49:28 +0200
User-agent: Thunderbird 1.5.0.4 (X11/20060604)

John W. Eaton wrote:
| > Precisely what compiler is this? | configure:2323: gcc -v >&5
| Reading specs from /usr/lib/gcc/x86_64-redhat-linux/3.4.4/specs
| Configured with: ../configure --prefix=/usr --mandir=/usr/share/man | --infodir=/u | sr/share/info --enable-shared --enable-threads=posix --disable-checking | --with-s | ystem-zlib --enable-__cxa_atexit --disable-libunwind-exceptions | --enable-java-aw
| t=gtk --host=x86_64-redhat-linux

I was asking about the Fortran compiler.
Since I did not specify it with F77= ... I guess the fortran compiler that
comes with the gcc above is used.
| > When you specify --enable-64, Octave
| > is compiled to assume that Fortran integers are 8 bytes wide.  Does
| > this compiler do that automatically, or have you provided the
| > appropriate flags for that?  Also, are your custom BLAS and LAPACK
| > libraries compiled so that the integers are 8 bytes wide?
| > | I use K. Goto's BLAS (and a LAPACK compiled against the GOTO BLAS lib).

So, is it compiled in a way that ensures that the integer quantities
are 8 byte signed integers?
Goto BLAS auto detects the architecture when compiling and I have not
thoroughly checked exactly what compiler flags that are used so I'm not sure (there is a lot of arch specific assembly code in Goto BLAS which I also haven't
looked at).

LAPACK, I have compiled with the -m64 flag and from gcc man,

-m32'
`-m64'
    Generate code for a 32-bit or 64-bit environment.  The 32-bit
    environment sets int, long and pointer to 32 bits.  The 64-bit
    environment sets int to 32 bits and long and pointer to 64 bits.

so I guess it the depends on whether the "integer quantities" are declared
as int:s or long:s.
| | dynamic-ld.cc:268: error: ISO C++ forbids casting between | pointer-to-function and pointer-to-object
| make[2]: *** [pic/dynamic-ld.o] Error 1
| make[2]: Leaving directory `/ifi/fenris/p13/fl/OPTERON/octave-2.9.6/src'
| make[1]: *** [src] Error 2
| make[1]: Leaving directory `/ifi/fenris/p13/fl/OPTERON/octave-2.9.6'
| make: *** [all] Error 2

This is a bug in g++.  But since I'm already tired of telling people
that, I added some code to Octave to work around the bug.
OK, What compiler do work then? gcc  4.x ?
The patch
is here:

  http://www.cae.wisc.edu/pipermail/octave-maintainers/2006-June/000309.html

And you might also want the following patch which will help to avoid
copies of matrices in some situtations:

  http://www.cae.wisc.edu/pipermail/octave-maintainers/2006-June/000316.html

And, since you are depending on some relatively experimental code, you
might want to start following the maintainers list.
OK. Done.

/Fredrik




reply via email to

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