octave-bug-tracker
[Top][All Lists]
Advanced

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

[Octave-bug-tracker] [bug #43319] Octave dev version fails to build with


From: Philip Nienhuis
Subject: [Octave-bug-tracker] [bug #43319] Octave dev version fails to build with --enable-64
Date: Fri, 03 Oct 2014 08:09:06 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 Firefox/29.0 SeaMonkey/2.26.1

Follow-up Comment #2, bug #43319 (project octave):

(Thanks for having a look)

Yes only in 64-bit.

As to the error messages I have to more precise:
the compile errors do not refer to functions proper but to function arguments
that have no unambiguous resolution (and thus implicitly point back to
functions handling those arguments).

In octave-4.1.0+ it is arguments to QMin() (see verbatim in my OP), while in
e.g., the image package I see:

("pkg install -forge -verbose image" in Octave-3.8.2 64-bit)


__spatial_filtering__.cc:593:9:   required from here
__spatial_filtering__.cc:191:25: error: conversion from ‘octave_int<signed
char>’ to ‘octave_idx_type {aka long int}’ is ambiguous
     hist (vals (i) + add) ++;
                         ^
__spatial_filtering__.cc:191:25: note: candidates are:
In file included from
/usr/local/include/octave-3.8.2/octave/../octave/idx-vector.h:35:0,
                 from
/usr/local/include/octave-3.8.2/octave/../octave/Array.h:36,
                 from
/usr/local/include/octave-3.8.2/octave/../octave/boolMatrix.h:27,
                 from
/usr/local/include/octave-3.8.2/octave/../octave/mx-base.h:32,
                 from
/usr/local/include/octave-3.8.2/octave/../octave/Matrix.h:30,
                 from
/usr/local/include/octave-3.8.2/octave/../octave/oct.h:33,
                 from __spatial_filtering__.cc:21:
/usr/local/include/octave-3.8.2/octave/../octave/oct-inttypes.h:884:3: note:
octave_int<T>::operator float() const [with T = signed char]
   operator float (void) const { return float_value (); }
   ^
/usr/local/include/octave-3.8.2/octave/../octave/oct-inttypes.h:882:3: note:
octave_int<T>::operator double() const [with T = signed char]
   operator double (void) const { return double_value (); }
   ^
/usr/local/include/octave-3.8.2/octave/../octave/oct-inttypes.h:878:3: note:
octave_int<T>::operator T() const [with T = signed char]
   operator T (void) const { return value (); }
   ^
In file included from
/usr/local/include/octave-3.8.2/octave/../octave/boolMatrix.h:27:0,
                 from
/usr/local/include/octave-3.8.2/octave/../octave/mx-base.h:32,
                 from
/usr/local/include/octave-3.8.2/octave/../octave/Matrix.h:30,
                 from
/usr/local/include/octave-3.8.2/octave/../octave/oct.h:33,
                 from __spatial_filtering__.cc:21:
/usr/local/include/octave-3.8.2/octave/../octave/Array.h:389:6: error:  
initializing argument 1 of ‘T& Array<T>::operator()(octave_idx_type) [withT
= double; octave_idx_type = long int]’
   T& operator () (octave_idx_type n) { return elem (n); }
      ^


...which all seem to point to the issue that some conversions that work in
32-bit don't work in 64-bit.

Coincidentally I was just looking into octave-dev (the QMin error) and found
that QMin is probably a Qt function. Qt obviously has been built for 64-bit as
well so it may well expect some other <int> types that the "int" it gets from
Octave in QtHandlesUtils.

AFAICS all these errors I hit with --enable-64 in octave-dev and some OF
packages, seem to refer to conversions from some lower rank <int> type to some
other <int> type, usually long or long long int.
That gives me the the vague hope that it might just be a missing #include or
some missing conversion template(s) in a core Octave header file. 
But for the same token the conversions/templates may need to be 
emplaced on a case-by-case basis. That would be a lot more work.

My C++ knowledge, especially the overloading & template stuff, is lacking so
it may be just a shot in the dark.


    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?43319>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

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