[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/
- [Octave-bug-tracker] [bug #51857] [octave forge] (interval) installation fails on 32-bit,
Oliver Heimlich <=