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

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

[Octave-bug-tracker] [bug #51857] [octave forge] (interval) installation


From: Oliver Heimlich
Subject: [Octave-bug-tracker] [bug #51857] [octave forge] (interval) installation fails on 32-bit
Date: Sat, 26 Aug 2017 10:15:56 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0

URL:
  <http://savannah.gnu.org/bugs/?51857>

                 Summary: [octave forge] (interval) installation fails on
32-bit
                 Project: GNU Octave
            Submitted by: oheim
            Submitted on: Sat 26 Aug 2017 04:15:54 PM CEST
                Category: Octave Forge Package
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: Installation Failure
                  Status: None
             Assigned to: None
         Originator Name: Oliver Heimlich
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any
                 Release: 3.8.2
        Operating System: GNU/Linux

    _______________________________________________________

Details:

Version 3.0.0 of the interval package can't be compiled on 32-bit systems,
because of type casting ambiguity.  The problem is that MPFR uses parameters
of type “long unsigned int”, which is either 64-bit or 32-bit depending on
the platform and depending on the compiler being used.  Octave's uint64NDArray
elements can't be converted to the 32-bit integers, which are used on 32-bit
architectures.

The attached patch fixes this.  A patched interval-3.0.0 installs without
errors and “test @infsup/nthroot” passes without errors on my device.

interval package version: 3.0.0
MPFR version: 3.1.2-p3
Octave version: 3.8.2
CPU: AArch64
Debian architecture: armhf (=32-bit)

Error log:

octave:11> pkg install interval-3.0.0.tar.gz
mpfr_function_d.cc: In function 'void nthroot(NDArray&, uint64NDArray,
mpfr_rnd_t)':
mpfr_function_d.cc:220:43: error: conversion from 'const octave_int<long long
unsigned int>' to 'long unsigned int' is ambiguous
       mpfr_root (mp, mp, arg2.elem(i), rnd);
                                           ^
mpfr_function_d.cc:220:43: note: candidates are:
In file included from
/usr/include/octave-3.8.2/octave/../octave/idx-vector.h:35:0,
                 from /usr/include/octave-3.8.2/octave/../octave/Array.h:36,
                 from
/usr/include/octave-3.8.2/octave/../octave/boolMatrix.h:27,
                 from
/usr/include/octave-3.8.2/octave/../octave/mx-base.h:32,
                 from /usr/include/octave-3.8.2/octave/../octave/Matrix.h:30,
                 from /usr/include/octave-3.8.2/octave/../octave/oct.h:33,
                 from mpfr_function_d.cc:21:
/usr/include/octave-3.8.2/octave/../octave/oct-inttypes.h:884:3: note:
octave_int<T>::operator float() const [with T = long long unsigned int]
   operator float (void) const { return float_value (); }
   ^
/usr/include/octave-3.8.2/octave/../octave/oct-inttypes.h:882:3: note:
octave_int<T>::operator double() const [with T = long long unsigned int]
   operator double (void) const { return double_value (); }
   ^
/usr/include/octave-3.8.2/octave/../octave/oct-inttypes.h:878:3: note:
octave_int<T>::operator T() const [with T = long long unsigned int]
   operator T (void) const { return value (); }
   ^
In file included from mpfr_function_d.cc:22:0:
/usr/include/mpfr.h:650:21: note: initializing argument 3 of 'int
mpfr_root(mpfr_ptr, mpfr_srcptr, long unsigned int, mpfr_rnd_t)'
 __MPFR_DECLSPEC int mpfr_root _MPFR_PROTO ((mpfr_ptr,mpfr_srcptr,un          
          ^
make: *** [mpfr_function_d.oct] Error 1
make: Entering directory '/tmp/oct-VEGNwU/interval-3.0.0/src'
/usr/bin/mkoctfile  --compile -o crlibm_function.o  crlibm_function.cc
(cd crlibm && ./configure --disable-dependency-tracking )
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking build system type... armv8l-unknown-linux-gnueabihf
checking host system type... armv8l-unknown-linux-gnueabihf
checking whether make sets $(MAKE)... (cached) yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes             checking
whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... none
checking for ranlib... ranlib
checking whether ln -s works... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for sqrt... no
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking fenv.h usability... yes
checking fenv.h presence... yes
checking for fenv.h... yes
checking float.h usability... yes
checking float.h presence... yes
checking for float.h... yes
checking fpu_control.h usability... yes
checking fpu_control.h presence... yes
checking for fpu_control.h... yes
checking for log in -lm... yes
checking whether byte ordering is bigendian... no
checking for long double with more range or precision than double... no
checking size of int... 4
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating scs_lib/Makefile
config.status: creating crlibm_config.h
config.status: executing depfiles commands
make -C crlibm CFLAGS+="-fPIC -Wno-div-by-zero -Wno-unused-variable
-Wno-unused-but-set-variable"
make[1]: Entering directory '/tmp/oct-VEGNwU/interval-3.0.0/src/crlibm'
make  all-recursive
make[2]: Entering directory '/tmp/oct-VEGNwU/interval-3.0.0/src/crlibm'
Making all in scs_lib
make[3]: Entering directory
'/tmp/oct-VEGNwU/interval-3.0.0/src/crlibm/scs_lib'
gcc -DHAVE_CONFIG_H -I. -I..  -I..   -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o scs_private.o
scs_private.c
gcc -DHAVE_CONFIG_H -I. -I..  -I..   -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o double2scs.o
double2scs.c
gcc -DHAVE_CONFIG_H -I. -I..  -I..   -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o print_scs.o
print_scs.c
gcc -DHAVE_CONFIG_H -I. -I..  -I..   -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o division_scs.o
division_scs.c
gcc -DHAVE_CONFIG_H -I. -I..  -I..   -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o addition_scs.o
addition_scs.c
gcc -DHAVE_CONFIG_H -I. -I..  -I..   -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o multiplication_scs.o
multiplication_scs.c
gcc -DHAVE_CONFIG_H -I. -I..  -I..   -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o scs2double.o
scs2double.c
gcc -DHAVE_CONFIG_H -I. -I..  -I..   -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o zero_scs.o zero_scs.c
gcc -DHAVE_CONFIG_H -I. -I..  -I..   -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o scs2mpfr.o scs2mpfr.c
rm -f libscs.a
ar cru libscs.a scs_private.o double2scs.o print_scs.o division_scs.o
addition_scs.o multiplication_scs.o scs2double.o zero_scs.o scs2mpfr.o
ranlib libscs.a
make[3]: Leaving directory
'/tmp/oct-VEGNwU/interval-3.0.0/src/crlibm/scs_lib'
Making all in .
make[3]: Entering directory '/tmp/oct-VEGNwU/interval-3.0.0/src/crlibm'
gcc -DHAVE_CONFIG_H -I.    -std=c99 -Wall -O3 -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o crlibm_private.o
crlibm_private.c
gcc -DHAVE_CONFIG_H -I.    -std=c99 -Wall -O3 -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o triple-double.o
triple-double.c
gcc -DHAVE_CONFIG_H -I.    -std=c99 -Wall -O3 -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o exp-td.o exp-td.c
gcc -DHAVE_CONFIG_H -I.    -std=c99 -Wall -O3 -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o exp-td-standalone.o
exp-td-standalone.c
gcc -DHAVE_CONFIG_H -I.    -std=c99 -Wall -O3 -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o expm1-standalone.o
expm1-standalone.c
gcc -DHAVE_CONFIG_H -I.    -std=c99 -Wall -O3 -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o expm1.o expm1.c
gcc -DHAVE_CONFIG_H -I.    -std=c99 -Wall -O3 -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o log.o log.cgcc
-DHAVE_CONFIG_H -I.    -std=c99 -Wall -O3 -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o log1p.o log1p.c
gcc -DHAVE_CONFIG_H -I.    -std=c99 -Wall -O3 -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o rem_pio2_accurate.o
rem_pio2_accurate.c
gcc -DHAVE_CONFIG_H -I.    -std=c99 -Wall -O3 -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o trigo_fast.o
trigo_fast.c
gcc -DHAVE_CONFIG_H -I.    -std=c99 -Wall -O3 -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o trigo_accurate.o
trigo_accurate.c
gcc -DHAVE_CONFIG_H -I.    -std=c99 -Wall -O3 -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o trigpi.o trigpi.c
gcc -DHAVE_CONFIG_H -I.    -std=c99 -Wall -O3 -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o asincos.o asincos.c
gcc -DHAVE_CONFIG_H -I.    -std=c99 -Wall -O3 -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o pow.o pow.cgcc
-DHAVE_CONFIG_H -I.    -std=c99 -Wall -O3 -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o atan_fast.o
atan_fast.c
gcc -DHAVE_CONFIG_H -I.    -std=c99 -Wall -O3 -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o atan_accurate.o
atan_accurate.c
gcc -DHAVE_CONFIG_H -I.    -std=c99 -Wall -O3 -fPIC -Wno-div-by-zero
-Wno-unused-variable -Wno-unused-but-set-variable -c -o csh_fast.o csh_fast.c
rm -f libcrlibm.a
ar cru libcrlibm.a crlibm_private.o triple-double.o exp-td.o
exp-td-standalone.o expm1-standalone.o expm1.o log.o log1p.o
rem_pio2_accurate.o trigo_fast.o trigo_accurate.o trigpi.o asincos.o pow.o
atan_fast.o atan_accurate.o csh_fast.o scs_lib/scs_private.o
scs_lib/addition_scs.o scs_lib/division_scs.o scs_lib/print_scs.o
scs_lib/double2scs.o scs_lib/zero_scs.o scs_lib/multiplication_scs.o
scs_lib/scs2double.o
ranlib libcrlibm.a
make[3]: Leaving directory '/tmp/oct-VEGNwU/interval-3.0.0/src/crlibm'
make[2]: Leaving directory '/tmp/oct-VEGNwU/interval-3.0.0/src/crlibm'
make[1]: Leaving directory '/tmp/oct-VEGNwU/interval-3.0.0/src/crlibm'
/usr/bin/mkoctfile  -o crlibm_function.oct  crlibm_function.o crlibm/*.o
crlibm/scs_lib/*.o
/usr/bin/mkoctfile  -o mpfr_function_d.oct -lmpfr -Wno-comment 
mpfr_function_d.cc
Makefile:57: recipe for target 'mpfr_function_d.oct' failed
make: Leaving directory '/tmp/oct-VEGNwU/interval-3.0.0/src'

pkg: error running `make' for the interval package.
error: called from 'configure_make' in file
/usr/share/octave/3.8.2/m/pkg/private/configure_make.m near line 82, column 9
error: called from:
error:   /usr/share/octave/3.8.2/m/pkg/private/install.m at line 206, column
5
error:   /usr/share/octave/3.8.2/m/pkg/pkg.m at line 394, column 9
octave:11>




    _______________________________________________________

File Attachments:


-------------------------------------------------------
Date: Sat 26 Aug 2017 04:15:54 PM CEST  Name: patch.diff  Size: 755B   By:
oheim

<http://savannah.gnu.org/bugs/download.php?file_id=41668>

    _______________________________________________________

Reply to this item at:

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

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




reply via email to

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