platform: Solaris 10 10/09 s10s_u8wos_08a SPARC
compiler: g++ (GCC) 4.9.0
scanner: canoscan lide200 (genesys gl847)
usblib: 0.1.7 (shipped with solaris)

notes: sane-backends 1.0.27 and sane-backends-master-e13b80fa built
      and work so issue is with new c++ genesys implementation or
      in other words my antiquated system and tools

i have tried -std=c++11, -std=c++14, -std=gnu++11 and -std=gnu++14 without
any change so either my c++ math headers are inadequate or i need additional
pow overloading declarations or ???.

i have also tried -D__EXTENSIONS__ with no change either.

these 3 errors seem to be the only ones being encountered at compile
time, but linkedit and runtime may reveal others ...
 39:genesys.cc:761:61: error: call of overloaded 'pow(float, double)' is 
ambiguous
 57:genesys.cc:1308:35: error: call of overloaded 'pow(int, uint8_t&)' is 
ambiguous
 236:genesys_low.cc:157:48: error: call of overloaded 'pow(int, int&)' is 
ambiguous

one of many actual g++ command lines tried:
  /opt/csw/bin/g++ \
     -std=gnu++11 \
     -DHAVE_CONFIG_H \
     -D_REENTRANT \
     -DPATH_SANE_CONFIG_DIR=/opt/csw/etc/sane.d \
     -DPATH_SANE_DATA_DIR=/opt/csw/share \
     -DPATH_SANE_LOCK_DIR=/opt/csw/var/lock/sane \
     -DV_MAJOR=1 -DV_MINOR=0 \
     -DLIBDIR="\"/opt/csw/lib/sane\"" \
     -DBACKEND_NAME=genesys \
     -Wall -Wextra -pedantic \
     -MT libgenesys_la-genesys.lo -MD -MP -MF .deps/libgenesys_la-genesys.Tpo \
     -I. -I../include/sane \
     -I../include -I/usr/sfw/include \
     -c -o libgenesys_la-genesys.lo \
     `test -f 'genesys.cc' || echo './'`genesys.cc ; \


solutions other than get a more modern computer?


ras



truncated output from gmake
.
.
.
/usr/bin/bash ../libtool --silent  --tag=CXX   --mode=compile /opt/csw/bin/g++ -std=c++11 
-DHAVE_CONFIG_H -I. -I../include/sane  -D_REENTRANT -DPATH_SANE_CONFIG_DIR=/opt/csw/etc/sane.d      
    -DPATH_SANE_DATA_DIR=/opt/csw/share     -DPATH_SANE_LOCK_DIR=/opt/csw/var/lock/sane     
-DV_MAJOR=1 -DV_MINOR=0 -I. -I. -I../include -I../include -I/usr/sfw/include 
-DLIBDIR="\"/opt/csw/lib/sane\"" -DBACKEND_NAME=genesys  -Wall -Wextra 
-pedantic  -MT libgenesys_la-genesys.lo -MD -MP -MF .deps/libgenesys_la-genesys.Tpo -c -o 
libgenesys_la-genesys.lo `test -f 'genesys.cc' || echo './'`genesys.cc
In file included from genesys.h:54:0,
                from genesys.cc:63:
genesys_low.h:556:44: warning: missing initializer for member 'std::array<short 
unsigned int, 3u>::_M_elems' [-Wmissing-field-initializers]
    std::array<uint16_t, 3> offset_addr = {};
                                           ^
genesys_low.h:557:42: warning: missing initializer for member 'std::array<short 
unsigned int, 3u>::_M_elems' [-Wmissing-field-initializers]
    std::array<uint16_t, 3> gain_addr = {};
                                         ^
genesys_low.h:581:36: warning: missing initializer for member 'std::array<unsigned 
char, 3u>::_M_elems' [-Wmissing-field-initializers]
    std::array<uint8_t, 3> reg2 = {};
                                   ^
In file included from genesys.cc:63:0:
genesys.h:242:31: warning: missing initializer for member 
'SANE_Parameters::format' [-Wmissing-field-initializers]
    SANE_Parameters params = {};
                              ^
genesys.h:242:31: warning: missing initializer for member 
'SANE_Parameters::last_frame' [-Wmissing-field-initializers]
genesys.h:242:31: warning: missing initializer for member 
'SANE_Parameters::bytes_per_line' [-Wmissing-field-initializers]
genesys.h:242:31: warning: missing initializer for member 
'SANE_Parameters::pixels_per_line' [-Wmissing-field-initializers]
genesys.h:242:31: warning: missing initializer for member 
'SANE_Parameters::lines' [-Wmissing-field-initializers]
genesys.h:242:31: warning: missing initializer for member 
'SANE_Parameters::depth' [-Wmissing-field-initializers]
genesys.cc: In function 'void sanei_genesys_create_gamma_table(std::vector<short 
unsigned int>&, int, float, float, float)':
genesys.cc:761:61: error: call of overloaded 'pow(float, double)' is ambiguous
      value = gamma_max * pow ((float) i / size, 1.0 / gamma);
                                                            ^
genesys.cc:761:61: note: candidates are:
In file included from 
/opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.0/include-fixed/math.h:26:0,
                from genesys_low.h:62,
                from genesys.h:54,
                from genesys.cc:63:
/opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.0/include-fixed/iso/math_iso.h:204:21:
 note: long double std::pow(long double, long double)
 inline long double pow(long double __X, long double __Y) { return
                    ^
/opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.0/include-fixed/iso/math_iso.h:171:15:
 note: float std::pow(float, float)
 inline float pow(float __X, float __Y) { return __powf(__X, __Y); }
              ^
/opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.0/include-fixed/iso/math_iso.h:72:15:
 note: double std::pow(double, double)
extern double pow __P((double, double));
              ^
genesys.cc: In function 'void sanei_genesys_calculate_zmode(uint32_t, uint32_t, 
uint16_t, uint32_t, uint8_t, uint8_t, uint8_t, uint8_t, uint32_t*, uint32_t*)':
genesys.cc:1308:35: error: call of overloaded 'pow(int, uint8_t&)' is ambiguous
  exposure_factor = pow (2, tgtime); /* todo: originally, this is always 2^0 ! 
*/
                                  ^
genesys.cc:1308:35: note: candidates are:
In file included from 
/opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.0/include-fixed/math.h:26:0,
                from genesys_low.h:62,
                from genesys.h:54,
                from genesys.cc:63:
/opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.0/include-fixed/iso/math_iso.h:204:21:
 note: long double std::pow(long double, long double)
 inline long double pow(long double __X, long double __Y) { return
                    ^
/opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.0/include-fixed/iso/math_iso.h:171:15:
 note: float std::pow(float, float)
 inline float pow(float __X, float __Y) { return __powf(__X, __Y); }
              ^
/opt/csw/lib/gcc/sparc-sun-solaris2.10/4.9.0/include-fixed/iso/math_iso.h:72:15:
 note: double std::pow(double, double)
extern double pow __P((double, double));
              ^
Makefile:5665: recipe for target 'libgenesys_la-genesys.lo' failed
gmake[2]: *** [libgenesys_la-genesys.lo] Error 1
.
.
.


Reply via email to