3.1.52 fails to build in hppa/linux

John W. Eaton jwe at octave.org
Sun Feb 22 19:02:20 CST 2009


On 22-Feb-2009, Marco Atzeri wrote:

| 
| --- Dom 22/2/09, Jaroslav Hajek  ha scritto:
| 
| > >> And is OCTAVE_INT_USE_LONG_DOUBLE defined in
| > config.h? Do
| > >> you get the
| > >> same error as Rafael? You see, lines 511 and 514
| > in
| > >> oct-inttypes.cc
| > >> are inside an #ifdef OCTAVE_INT_USE_LONG_DOUBLE
| > block.
| > >>
| > >>
| > >>
| > >> --
| > >> RNDr. Jaroslav Hajek
| > >
| > > OCTAVE_INT_USE_LONG_DOUBLE is defined
| > >
| > > same errors from 511 to 516
| > >
| > > Regards
| > > Marco
| > 
| > Whoa, that's wicked. Those lines should not even be
| > compiled, then (I
| > meant, of course, ifndef block in the previous message).
| > Can you maybe
| > try posting just the preprocessor output?
| > 
| > The easiest way to get it is to cd to liboctave/, do
| > make pic/oct-inttypes.o
| > 
| > then copy the command shown to compile, but replace
| > "-c" by "-E" and
| > redirect -o to a suitable file. It will be probably too
| > large to post
| > it on the mailing list.
| 
| uploaded on
| http://matzeri.altervista.org/octave/
| 
| gcc -E output    oct-inttypes.E
| gcc -c logs      oct-inttypes.log-20090222-202140
| full command     oct_int.sh 

Does the attached change avoid the problem for you?  It allows me to
build Octave with GCC and OCTAVE_INT_USE_LONG_DOUBLE undefined.  So
maybe this is a GCC bug because I didn't change any code, I just moved
some function definitions to a header file.  But I did remove some
explicit instantiations, and I'm not sure I fully understand the rules
for instantiating templates, especially when some are explicitly
instantiated and some are not (at least I think that is true for the
classes defined in oct-inttypes.{h,cc}).

I also don't see how these lines could be compiled if
OCTAVE_INT_USE_LONG_DOUBLE is defined.

The lines to define it in config.h are

  #if (SIZEOF_LONG_DOUBLE >= 10) && defined (HAVE_ROUNDL)
  #define OCTAVE_INT_USE_LONG_DOUBLE
  #endif

I think you already said SIZEOF_LONG_DOUBLE is 12.  Is HAVE_ROUNDL
defined on your system?

jwe

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: diffs
Url: https://www-old.cae.wisc.edu/pipermail/octave-maintainers/attachments/20090222/9b92f60d/attachment-0001.ksh 


More information about the Octave-maintainers mailing list