owlbarn / owl

Owl - OCaml Scientific Computing @ https://ocaml.xyz
MIT License
1.22k stars 122 forks source link

Unable to build owl on ARM v8 architecture #354

Closed abhi18av closed 5 years ago

abhi18av commented 5 years ago

Hi OWL Team

I'm trying to setup a scaleway ARM-64 server for OCaml and OWL experimentation and almost everything installs correctly - apart from the eigen folder.

I've installed the dev package in ubuntu-18.04 via the following command


root@cub:~# apt install libeigen3-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libeigen3-dev is already the newest version (3.3.4-4).
0 upgraded, 0 newly installed, 0 to remove and 145 not upgraded.

Here's the build log


root@cub:~# opam install owl
[WARNING] Running as root is not recommended
The following actions will be performed:
  ∗ install eigen 0.0.6 [required by owl]
  ∗ install owl   0.4.0
===== ∗ 2 =====
Do you want to continue? [Y/n] y

<><> Gathering sources ><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
[eigen.0.0.6] found in cache
[owl.0.4.0] found in cache

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
[ERROR] The compilation of eigen failed at "/root/.opam/default/bin/ocaml setup.ml -build".

#=== ERROR while compiling eigen.0.0.6 ========================================#
# context     2.0.2 | linux/arm64 | ocaml-base-compiler.4.07.1 | https://opam.ocaml.org#252da17c
# path        ~/.opam/default/.opam-switch/build/eigen.0.0.6
# command     ~/.opam/default/bin/ocaml setup.ml -build
# exit-code   1
# env-file    ~/.opam/log/eigen-28448-d0f245.env
# output-file ~/.opam/log/eigen-28448-d0f245.out
### output ###
# [...]
# g++: error: unrecognized command line option ‘-mfpmath=sse’
# Makefile:8: recipe for target 'all' failed
# make: *** [all] Error 1
# cp: cannot stat 'libeigen.a': No such file or directory
# rm -rf _build *.byte *.a *.o *.so *.cmo *.cmi
# /root/.opam/default/.opam-switch/build/eigen.0.0.6
# ocamlfind ocamlopt unix.cmxa -I /root/.opam/default/lib/ocamlbuild /root/.opam/default/lib/ocamlbuild/ocamlbuildlib.cmxa -linkpkg myocamlbuild.ml /root/.opam/default/lib/ocamlbuild/ocamlbuild.cmx -o myocamlbuild
# /root/.opam/default/bin/ocamlfind ocamlc -g -ccopt -O3 -ccopt -Ofast -ccopt -I/root/.opam/default/lib/ctypes -ccopt '-march=native' -ccopt '-mfpmath=sse' -ccopt -funroll-loops -ccopt -ffast-math -ccopt -flto -package ctypes.stubs -package ctypes -c lib/eigen_utils_stubs.c
# + /root/.opam/default/bin/ocamlfind ocamlc -g -ccopt -O3 -ccopt -Ofast -ccopt -I/root/.opam/default/lib/ctypes -ccopt '-march=native' -ccopt '-mfpmath=sse' -ccopt -funroll-loops -ccopt -ffast-math -ccopt -flto -package ctypes.stubs -package ctypes -c lib/eigen_utils_stubs.c
# gcc: error: unrecognized command line option ‘-mfpmath=sse’
# Command exited with code 2.
# E: Failure("Command ''/root/.opam/default/bin/ocamlbuild' lib/libeigen_stubs.a lib/dlleigen_stubs.so lib/eigen.cma lib/eigen.cmxa lib/eigen.a lib/eigen.cmxs -use-ocamlfind -tag debug' terminated with error code 10")

<><> Error report <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
┌─ The following actions failed
│ λ build eigen 0.0.6
└─
╶─ No changes have been performed

Could you please help me figure out what's the problem?

jzstark commented 5 years ago

Hi @abhi18av, the eigen library indeed has installation issue on across platforms. Here the error is caused by that SSE instructions are not available on ARM. There is plan to remove the eigen library from dependencies in the future. For now, to install and run Owl on ARM, I would suggest installing Owl from source code. The dockerfile could be of help. I would be glad to help if you have any further problem on installation.

abhi18av commented 5 years ago

Thanks for the update @jzstark 👍

While doing my own troubleshooting I came across a similar issue people face while building tensorflow on R-Pi.

Here's link to that https://gist.github.com/EKami/9869ae6347f68c592c5b5cd181a3b205

You can search for the eigen word and it'll lead you to this bitbucket URL https://bitbucket.org/eigen/eigen/get/5a0156e40feb.tar.gz

I don't exactly know what this means, but I thought it might be informative for people who have the right knowledge :)

abhi18av commented 5 years ago

Following the manual installation instruction leads me to the following status

root@cub:~/projects/code/scratch/owl# jbuilder external-lib-deps --missing @install
Error: The following libraries are missing in the default context:
- eigen
Hint: try: opam install eigen

Am I doing something wrong?

jzstark commented 5 years ago

The manual instruction assumes prerequisites such as BLAS library and Eigen are already properly installed. I would generally follow the steps listed in the Dockerfile : install required libraries and opam packages, then install eigen, and then install Owl -- like Tensorflow, installation on RPi is not quite straightforward sometimes :)

abhi18av commented 5 years ago

Hi @jzstark , I tried following the instructions in the Dockerfile but at the very end, it's not really able to find the libraries still.


dune external-lib-deps --missing @install @runtest
dune build @install
      ocamlc bin/owl_bin_zoo.bc (exit 2)
(cd _build/default && /root/.opam/default/bin/ocamlc.opt -w @a-4-29-40-41-42-44-45-48-58-59-60-40 -strict-sequence -strict-formats -short-paths -keep-locs -safe-string -g -o bin/owl_bin_zoo.bc -linkall -I /root/.opam/default/lib/bytes -I /root/.opam/default/lib/ctypes -I /root/.opam/default/lib/eigen -I /root/.opam/default/lib/integers -I /root/.opam/default/lib/ocaml-compiler-libs/toplevel -I /root/.opam/default/lib/ocaml/compiler-libs -I /root/.opam/default/lib/plplot -I src/base -I src/owl -I src/zoo /root/.opam/default/lib/ocaml/unix.cma /root/.opam/default/lib/ocaml/bigarray.cma /root/.opam/default/lib/integers/integers.cma /root/.opam/default/lib/ctypes/ctypes.cma /root/.opam/default/lib/ocaml/str.cma /root/.opam/default/lib/ctypes/cstubs.cma /root/.opam/default/lib/eigen/eigen.cma src/base/owl_base.cma /root/.opam/default/lib/plplot/plplot.cma src/owl/owl.cma /root/.opam/default/lib/ocaml/compiler-libs/ocamlcommon.cma /root/.opam/default/lib/ocaml/compiler-libs/ocamlbytecomp.cma /root/.opam/default/lib/ocaml/compiler-libs/ocamltoplevel.cma /root/.opam/default/lib/ocaml-compiler-libs/toplevel/ocaml_toplevel.cma src/zoo/owl_zoo.cma bin/.owl_bin_zoo.eobjs/owl_bin_zoo.cmo)
File "_none_", line 1:
Error: Error on dynamically loaded library: ./src/owl/dllowl_stubs.so: ./src/owl/dllowl_stubs.so: undefined symbol: LAPACKE_dlagsy
    ocamlopt bin/owl_bin_viz.exe (exit 2)
(cd _build/default && /root/.opam/default/bin/ocamlopt.opt -w @a-4-29-40-41-42-44-45-48-58-59-60-40 -strict-sequence -strict-formats -short-paths -keep-locs -safe-string -g -o bin/owl_bin_viz.exe -linkall -I /root/.opam/default/lib/bytes -I /root/.opam/default/lib/ctypes -I /root/.opam/default/lib/eigen -I /root/.opam/default/lib/integers -I /root/.opam/default/lib/plplot -I src/base -I src/owl /root/.opam/default/lib/ocaml/unix.cmxa /root/.opam/default/lib/ocaml/bigarray.cmxa /root/.opam/default/lib/integers/integers.cmxa /root/.opam/default/lib/ctypes/ctypes.cmxa /root/.opam/default/lib/ocaml/str.cmxa /root/.opam/default/lib/ctypes/cstubs.cmxa /root/.opam/default/lib/eigen/eigen.cmxa src/base/owl_base.cmxa /root/.opam/default/lib/plplot/plplot.cmxa src/owl/owl.cmxa bin/.owl_bin_viz.eobjs/owl_bin_viz.cmx)
/usr/bin/ld: cannot find -leigen
collect2: error: ld returned 1 exit status
File "caml_startup", line 1:
Error: Error during linking
Makefile:13: recipe for target 'build' failed
make: *** [build] Error 1
root@cub:~/owl# 

Do you have more ideas? :)

abhi18av commented 5 years ago

For reference, here's the relevant output of the eigen build process

      ^
Finished, 53 targets (0 cached) in 00:07:42.
Phew ... it is done!
make: Leaving directory '/root/projects/code/scratch/eigen'
make: Entering directory '/root/projects/code/scratch/eigen'
ocaml setup.ml -uninstall
ocaml setup.ml -install
Installed /root/.opam/default/lib/eigen/eigen.ml
Installed /root/.opam/default/lib/eigen/ffi_eigen_bindings.ml
Installed /root/.opam/default/lib/eigen/ffi_eigen_generated.ml
Installed /root/.opam/default/lib/eigen/eigen_types.ml
Installed /root/.opam/default/lib/eigen/eigen_utils.ml
Installed /root/.opam/default/lib/eigen/eigen_dsmat_s.ml
Installed /root/.opam/default/lib/eigen/eigen_dsmat_d.ml
Installed /root/.opam/default/lib/eigen/eigen_dsmat_c.ml
Installed /root/.opam/default/lib/eigen/eigen_dsmat_z.ml
Installed /root/.opam/default/lib/eigen/eigen_spmat_s.ml
Installed /root/.opam/default/lib/eigen/eigen_spmat_d.ml
Installed /root/.opam/default/lib/eigen/eigen_spmat_c.ml
Installed /root/.opam/default/lib/eigen/eigen_spmat_z.ml
Installed /root/.opam/default/lib/eigen/eigen_tensor_s.ml
Installed /root/.opam/default/lib/eigen/eigen_tensor_d.ml
Installed /root/.opam/default/lib/eigen/libeigen_stubs.a
Installed /root/.opam/default/lib/eigen/eigen.cma
Installed /root/.opam/default/lib/eigen/eigen.cmxa
Installed /root/.opam/default/lib/eigen/eigen.a
Installed /root/.opam/default/lib/eigen/eigen.cmxs
Installed /root/.opam/default/lib/eigen/eigen_tensor_d.cmi
Installed /root/.opam/default/lib/eigen/eigen_tensor_d.cmt
Installed /root/.opam/default/lib/eigen/eigen_tensor_d.annot
Installed /root/.opam/default/lib/eigen/eigen_tensor_s.cmi
Installed /root/.opam/default/lib/eigen/eigen_tensor_s.cmt
Installed /root/.opam/default/lib/eigen/eigen_tensor_s.annot
Installed /root/.opam/default/lib/eigen/eigen_spmat_z.cmi
Installed /root/.opam/default/lib/eigen/eigen_spmat_z.cmt
Installed /root/.opam/default/lib/eigen/eigen_spmat_z.annot
Installed /root/.opam/default/lib/eigen/eigen_spmat_c.cmi
Installed /root/.opam/default/lib/eigen/eigen_spmat_c.cmt
Installed /root/.opam/default/lib/eigen/eigen_spmat_c.annot
Installed /root/.opam/default/lib/eigen/eigen_spmat_d.cmi
Installed /root/.opam/default/lib/eigen/eigen_spmat_d.cmt
Installed /root/.opam/default/lib/eigen/eigen_spmat_d.annot
Installed /root/.opam/default/lib/eigen/eigen_spmat_s.cmi
Installed /root/.opam/default/lib/eigen/eigen_spmat_s.cmt
Installed /root/.opam/default/lib/eigen/eigen_spmat_s.annot
Installed /root/.opam/default/lib/eigen/eigen_dsmat_z.cmi
Installed /root/.opam/default/lib/eigen/eigen_dsmat_z.cmt
Installed /root/.opam/default/lib/eigen/eigen_dsmat_z.annot
Installed /root/.opam/default/lib/eigen/eigen_dsmat_c.cmi
Installed /root/.opam/default/lib/eigen/eigen_dsmat_c.cmt
Installed /root/.opam/default/lib/eigen/eigen_dsmat_c.annot
Installed /root/.opam/default/lib/eigen/eigen_dsmat_d.cmi
Installed /root/.opam/default/lib/eigen/eigen_dsmat_d.cmt
Installed /root/.opam/default/lib/eigen/eigen_dsmat_d.annot
Installed /root/.opam/default/lib/eigen/eigen_dsmat_s.cmi
Installed /root/.opam/default/lib/eigen/eigen_dsmat_s.cmt
Installed /root/.opam/default/lib/eigen/eigen_dsmat_s.annot
Installed /root/.opam/default/lib/eigen/eigen_utils.cmi
Installed /root/.opam/default/lib/eigen/eigen_utils.cmt
Installed /root/.opam/default/lib/eigen/eigen_utils.annot
Installed /root/.opam/default/lib/eigen/eigen_types.cmi
Installed /root/.opam/default/lib/eigen/eigen_types.cmt
Installed /root/.opam/default/lib/eigen/eigen_types.annot
Installed /root/.opam/default/lib/eigen/ffi_eigen_generated.cmi
Installed /root/.opam/default/lib/eigen/ffi_eigen_generated.cmt
Installed /root/.opam/default/lib/eigen/ffi_eigen_generated.annot
Installed /root/.opam/default/lib/eigen/ffi_eigen_bindings.cmi
Installed /root/.opam/default/lib/eigen/ffi_eigen_bindings.cmt
Installed /root/.opam/default/lib/eigen/ffi_eigen_bindings.annot
Installed /root/.opam/default/lib/eigen/eigen.cmi
Installed /root/.opam/default/lib/eigen/eigen.cmt
Installed /root/.opam/default/lib/eigen/eigen.annot
Installed /root/.opam/default/lib/eigen/eigen_tensor_d.cmx
Installed /root/.opam/default/lib/eigen/eigen_tensor_s.cmx
Installed /root/.opam/default/lib/eigen/eigen_spmat_z.cmx
Installed /root/.opam/default/lib/eigen/eigen_spmat_c.cmx
Installed /root/.opam/default/lib/eigen/eigen_spmat_d.cmx
Installed /root/.opam/default/lib/eigen/eigen_spmat_s.cmx
Installed /root/.opam/default/lib/eigen/eigen_dsmat_z.cmx
Installed /root/.opam/default/lib/eigen/eigen_dsmat_c.cmx
Installed /root/.opam/default/lib/eigen/eigen_dsmat_d.cmx
Installed /root/.opam/default/lib/eigen/eigen_dsmat_s.cmx
Installed /root/.opam/default/lib/eigen/eigen_utils.cmx
Installed /root/.opam/default/lib/eigen/eigen_types.cmx
Installed /root/.opam/default/lib/eigen/ffi_eigen_generated.cmx
Installed /root/.opam/default/lib/eigen/ffi_eigen_bindings.cmx
Installed /root/.opam/default/lib/eigen/eigen.cmx
Installed /root/.opam/default/lib/stublibs/dlleigen_stubs.so
Installed /root/.opam/default/lib/stublibs/dlleigen_stubs.so.owner
ocamlfind: [WARNING] You have installed DLLs but the directory /root/.opam/default/lib/stublibs is not mentioned in ld.conf
Installed /root/.opam/default/lib/eigen/META 
jzstark commented 5 years ago

Thanks for the information. That means the eigen is successfully installed, but you might need to copy the generated eigen library to a searchable path. For example, run this command to copy libeigen.a file to /usr/local/lib/, which is normally a searchable path.

abhi18av commented 5 years ago

@jzstark , I followed through with your suggestions and it seems that the problem is about some symbol LAPACKE_dlagsy and other such symbols from dynamically loaded libraries

I'll paste here what the terminal throws out

dune external-lib-deps --missing @install @runtest
dune build @install
      ocamlc bin/owl_bin_zoo.bc (exit 2)
(cd _build/default && /root/.opam/default/bin/ocamlc.opt -w @a-4-29-40-41-42-44-45-48-58-59-60-40 -strict-sequence -strict-formats -short-paths -keep-locs -safe-string -g -o bin/owl_bin_zoo.bc -linkall -I /root/.opam/default/lib/bytes -I /root/.opam/default/lib/ctypes -I /root/.opam/default/lib/eigen -I /root/.opam/default/lib/integers -I /root/.opam/default/lib/ocaml-compiler-libs/toplevel -I /root/.opam/default/lib/ocaml/compiler-libs -I /root/.opam/default/lib/plplot -I src/base -I src/owl -I src/zoo /root/.opam/default/lib/ocaml/unix.cma /root/.opam/default/lib/ocaml/bigarray.cma /root/.opam/default/lib/integers/integers.cma /root/.opam/default/lib/ctypes/ctypes.cma /root/.opam/default/lib/ocaml/str.cma /root/.opam/default/lib/ctypes/cstubs.cma /root/.opam/default/lib/eigen/eigen.cma src/base/owl_base.cma /root/.opam/default/lib/plplot/plplot.cma src/owl/owl.cma /root/.opam/default/lib/ocaml/compiler-libs/ocamlcommon.cma /root/.opam/default/lib/ocaml/compiler-libs/ocamlbytecomp.cma /root/.opam/default/lib/ocaml/compiler-libs/ocamltoplevel.cma /root/.opam/default/lib/ocaml-compiler-libs/toplevel/ocaml_toplevel.cma src/zoo/owl_zoo.cma bin/.owl_bin_zoo.eobjs/owl_bin_zoo.cmo)
File "_none_", line 1:
Error: Error on dynamically loaded library: ./src/owl/dllowl_stubs.so: ./src/owl/dllowl_stubs.so: undefined symbol: LAPACKE_dlagsy
Done: 3240/3246 (jobs: 1)

    ocamlopt bin/owl_bin_viz.exe (exit 2)
(cd _build/default && /root/.opam/default/bin/ocamlopt.opt -w @a-4-29-40-41-42-44-45-48-58-59-60-40 -strict-sequence -strict-formats -short-paths -keep-locs -safe-string -g -o bin/owl_bin_viz.exe -linkall -I /root/.opam/default/lib/bytes -I /root/.opam/default/lib/ctypes -I /root/.opam/default/lib/eigen -I /root/.opam/default/lib/integers -I /root/.opam/default/lib/plplot -I src/base -I src/owl /root/.opam/default/lib/ocaml/unix.cmxa /root/.opam/default/lib/ocaml/bigarray.cmxa /root/.opam/default/lib/integers/integers.cmxa /root/.opam/default/lib/ctypes/ctypes.cmxa /root/.opam/default/lib/ocaml/str.cmxa /root/.opam/default/lib/ctypes/cstubs.cmxa /root/.opam/default/lib/eigen/eigen.cmxa src/base/owl_base.cmxa /root/.opam/default/lib/plplot/plplot.cmxa src/owl/owl.cmxa bin/.owl_bin_viz.eobjs/owl_bin_viz.cmx)
lib/eigen_spmat.h:259:8: warning: type of ‘c_eigen_spmat_z_print’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:443:6: note: ‘c_eigen_spmat_z_print’ was previously declared here
eigen_spmat_z.cpp:443:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:258:21: warning: type of ‘c_eigen_spmat_z_sqrt’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:437:12: note: ‘c_eigen_spmat_z_sqrt’ was previously declared here
eigen_spmat_z.cpp:437:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:257:21: warning: type of ‘c_eigen_spmat_z_neg’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:428:12: note: ‘c_eigen_spmat_z_neg’ was previously declared here
eigen_spmat_z.cpp:428:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:256:17: warning: type of ‘c_eigen_spmat_z_sum’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:386:15: note: return value type mismatch
eigen_spmat.h:19:35: note: type ‘struct c_spmat_z_elt’ should match type ‘c_spmat_z_elt’
lib/eigen_spmat.h:28:27: note: the incompatible type is defined here
eigen_spmat_z.cpp:386:15: note: ‘c_eigen_spmat_z_sum’ was previously declared here
eigen_spmat_z.cpp:386:15: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:255:21: warning: type of ‘c_eigen_spmat_z_div_scalar’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:376:12: note: type mismatch in parameter 2
eigen_spmat.h:19:35: note: type ‘struct c_spmat_z_elt’ should match type ‘c_spmat_z_elt’
lib/eigen_spmat.h:28:27: note: the incompatible type is defined here
eigen_spmat_z.cpp:376:12: note: ‘c_eigen_spmat_z_div_scalar’ was previously declared here
eigen_spmat_z.cpp:376:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:254:21: warning: type of ‘c_eigen_spmat_z_mul_scalar’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:369:12: note: type mismatch in parameter 2
eigen_spmat.h:19:35: note: type ‘struct c_spmat_z_elt’ should match type ‘c_spmat_z_elt’
lib/eigen_spmat.h:28:27: note: the incompatible type is defined here
eigen_spmat_z.cpp:369:12: note: ‘c_eigen_spmat_z_mul_scalar’ was previously declared here
eigen_spmat_z.cpp:369:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:253:21: warning: type of ‘c_eigen_spmat_z_sub_scalar’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:359:12: note: type mismatch in parameter 2
eigen_spmat.h:19:35: note: type ‘struct c_spmat_z_elt’ should match type ‘c_spmat_z_elt’
lib/eigen_spmat.h:28:27: note: the incompatible type is defined here
eigen_spmat_z.cpp:359:12: note: ‘c_eigen_spmat_z_sub_scalar’ was previously declared here
eigen_spmat_z.cpp:359:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:252:21: warning: type of ‘c_eigen_spmat_z_add_scalar’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:349:12: note: type mismatch in parameter 2
eigen_spmat.h:19:35: note: type ‘struct c_spmat_z_elt’ should match type ‘c_spmat_z_elt’
lib/eigen_spmat.h:28:27: note: the incompatible type is defined here
eigen_spmat_z.cpp:349:12: note: ‘c_eigen_spmat_z_add_scalar’ was previously declared here
eigen_spmat_z.cpp:349:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:251:21: warning: type of ‘c_eigen_spmat_z_gemm’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:342:12: note: ‘c_eigen_spmat_z_gemm’ was previously declared here
eigen_spmat_z.cpp:342:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:250:21: warning: type of ‘c_eigen_spmat_z_div’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:335:12: note: ‘c_eigen_spmat_z_div’ was previously declared here
eigen_spmat_z.cpp:335:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:249:21: warning: type of ‘c_eigen_spmat_z_mul’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:328:12: note: ‘c_eigen_spmat_z_mul’ was previously declared here
eigen_spmat_z.cpp:328:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:248:21: warning: type of ‘c_eigen_spmat_z_sub’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:321:12: note: ‘c_eigen_spmat_z_sub’ was previously declared here
eigen_spmat_z.cpp:321:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:247:21: warning: type of ‘c_eigen_spmat_z_add’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:314:12: note: ‘c_eigen_spmat_z_add’ was previously declared here
eigen_spmat_z.cpp:314:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:246:7: warning: type of ‘c_eigen_spmat_z_equal_or_smaller’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:308:5: note: ‘c_eigen_spmat_z_equal_or_smaller’ was previously declared here
eigen_spmat_z.cpp:308:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:245:7: warning: type of ‘c_eigen_spmat_z_equal_or_greater’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:302:5: note: ‘c_eigen_spmat_z_equal_or_greater’ was previously declared here
eigen_spmat_z.cpp:302:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:244:7: warning: type of ‘c_eigen_spmat_z_is_smaller’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:296:5: note: ‘c_eigen_spmat_z_is_smaller’ was previously declared here
eigen_spmat_z.cpp:296:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:243:7: warning: type of ‘c_eigen_spmat_z_is_greater’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:290:5: note: ‘c_eigen_spmat_z_is_greater’ was previously declared here
eigen_spmat_z.cpp:290:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:242:7: warning: type of ‘c_eigen_spmat_z_is_unequal’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:283:5: note: ‘c_eigen_spmat_z_is_unequal’ was previously declared here
eigen_spmat_z.cpp:283:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:241:7: warning: type of ‘c_eigen_spmat_z_is_equal’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:276:5: note: ‘c_eigen_spmat_z_is_equal’ was previously declared here
eigen_spmat_z.cpp:276:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:240:7: warning: type of ‘c_eigen_spmat_z_is_nonnegative’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:259:5: note: ‘c_eigen_spmat_z_is_nonnegative’ was previously declared here
eigen_spmat_z.cpp:259:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:239:7: warning: type of ‘c_eigen_spmat_z_is_nonpositive’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:242:5: note: ‘c_eigen_spmat_z_is_nonpositive’ was previously declared here
eigen_spmat_z.cpp:242:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:238:7: warning: type of ‘c_eigen_spmat_z_is_negative’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:222:5: note: ‘c_eigen_spmat_z_is_negative’ was previously declared here
eigen_spmat_z.cpp:222:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:237:7: warning: type of ‘c_eigen_spmat_z_is_positive’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:202:5: note: ‘c_eigen_spmat_z_is_positive’ was previously declared here
eigen_spmat_z.cpp:202:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:236:7: warning: type of ‘c_eigen_spmat_z_is_zero’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:184:5: note: ‘c_eigen_spmat_z_is_zero’ was previously declared here
eigen_spmat_z.cpp:184:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:235:17: warning: type of ‘c_eigen_spmat_z_trace’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:178:15: note: return value type mismatch
eigen_spmat.h:19:35: note: type ‘struct c_spmat_z_elt’ should match type ‘c_spmat_z_elt’
lib/eigen_spmat.h:28:27: note: the incompatible type is defined here
eigen_spmat_z.cpp:178:15: note: ‘c_eigen_spmat_z_trace’ was previously declared here
eigen_spmat_z.cpp:178:15: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:234:21: warning: type of ‘c_eigen_spmat_z_diagonal’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:172:12: note: ‘c_eigen_spmat_z_diagonal’ was previously declared here
eigen_spmat_z.cpp:172:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:233:21: warning: type of ‘c_eigen_spmat_z_adjoint’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:166:12: note: ‘c_eigen_spmat_z_adjoint’ was previously declared here
eigen_spmat_z.cpp:166:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:232:21: warning: type of ‘c_eigen_spmat_z_transpose’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:160:12: note: ‘c_eigen_spmat_z_transpose’ was previously declared here
eigen_spmat_z.cpp:160:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:231:21: warning: type of ‘c_eigen_spmat_z_col’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:154:12: note: ‘c_eigen_spmat_z_col’ was previously declared here
eigen_spmat_z.cpp:154:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:230:21: warning: type of ‘c_eigen_spmat_z_row’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:148:12: note: ‘c_eigen_spmat_z_row’ was previously declared here
eigen_spmat_z.cpp:148:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:229:21: warning: type of ‘c_eigen_spmat_z_clone’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:142:12: note: ‘c_eigen_spmat_z_clone’ was previously declared here
eigen_spmat_z.cpp:142:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:228:10: warning: type of ‘c_eigen_spmat_z_outerindexptr’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:135:8: note: ‘c_eigen_spmat_z_outerindexptr’ was previously declared here
eigen_spmat_z.cpp:135:8: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:227:10: warning: type of ‘c_eigen_spmat_z_innerindexptr’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:128:8: note: ‘c_eigen_spmat_z_innerindexptr’ was previously declared here
eigen_spmat_z.cpp:128:8: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:226:18: warning: type of ‘c_eigen_spmat_z_valueptr’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:120:16: note: ‘c_eigen_spmat_z_valueptr’ was previously declared here
eigen_spmat_z.cpp:120:16: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:225:8: warning: type of ‘c_eigen_spmat_z_prune’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:114:6: note: type mismatch in parameter 2
eigen_spmat.h:19:35: note: type ‘struct c_spmat_z_elt’ should match type ‘c_spmat_z_elt’
lib/eigen_spmat.h:28:27: note: the incompatible type is defined here
eigen_spmat_z.cpp:114:6: note: ‘c_eigen_spmat_z_prune’ was previously declared here
eigen_spmat_z.cpp:114:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:224:8: warning: type of ‘c_eigen_spmat_z_reshape’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:108:6: note: ‘c_eigen_spmat_z_reshape’ was previously declared here
eigen_spmat_z.cpp:108:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:223:8: warning: type of ‘c_eigen_spmat_z_uncompress’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:103:6: note: ‘c_eigen_spmat_z_uncompress’ was previously declared here
eigen_spmat_z.cpp:103:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:222:8: warning: type of ‘c_eigen_spmat_z_compress’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:98:6: note: ‘c_eigen_spmat_z_compress’ was previously declared here
eigen_spmat_z.cpp:98:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:221:7: warning: type of ‘c_eigen_spmat_z_is_compressed’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:93:5: note: ‘c_eigen_spmat_z_is_compressed’ was previously declared here
eigen_spmat_z.cpp:93:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:220:8: warning: type of ‘c_eigen_spmat_z_reset’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:88:6: note: ‘c_eigen_spmat_z_reset’ was previously declared here
eigen_spmat_z.cpp:88:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:219:8: warning: type of ‘c_eigen_spmat_z_insert’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:83:6: note: type mismatch in parameter 4
eigen_spmat.h:19:35: note: type ‘struct c_spmat_z_elt’ should match type ‘c_spmat_z_elt’
lib/eigen_spmat.h:28:27: note: the incompatible type is defined here
eigen_spmat_z.cpp:83:6: note: ‘c_eigen_spmat_z_insert’ was previously declared here
eigen_spmat_z.cpp:83:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:218:8: warning: type of ‘c_eigen_spmat_z_set’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:78:6: note: type mismatch in parameter 4
eigen_spmat.h:19:35: note: type ‘struct c_spmat_z_elt’ should match type ‘c_spmat_z_elt’
lib/eigen_spmat.h:28:27: note: the incompatible type is defined here
eigen_spmat_z.cpp:78:6: note: ‘c_eigen_spmat_z_set’ was previously declared here
eigen_spmat_z.cpp:78:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:217:17: warning: type of ‘c_eigen_spmat_z_get’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:72:15: note: return value type mismatch
eigen_spmat.h:19:35: note: type ‘struct c_spmat_z_elt’ should match type ‘c_spmat_z_elt’
lib/eigen_spmat.h:28:27: note: the incompatible type is defined here
eigen_spmat_z.cpp:72:15: note: ‘c_eigen_spmat_z_get’ was previously declared here
eigen_spmat_z.cpp:72:15: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:216:9: warning: type of ‘c_eigen_spmat_z_nnz’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:67:7: note: ‘c_eigen_spmat_z_nnz’ was previously declared here
eigen_spmat_z.cpp:67:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:215:9: warning: type of ‘c_eigen_spmat_z_cols’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:62:7: note: ‘c_eigen_spmat_z_cols’ was previously declared here
eigen_spmat_z.cpp:62:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:214:9: warning: type of ‘c_eigen_spmat_z_rows’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:57:7: note: ‘c_eigen_spmat_z_rows’ was previously declared here
eigen_spmat_z.cpp:57:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:213:21: warning: type of ‘c_eigen_spmat_z_eye’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:50:12: note: ‘c_eigen_spmat_z_eye’ was previously declared here
eigen_spmat_z.cpp:50:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:212:8: warning: type of ‘c_eigen_spmat_z_delete’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:45:6: note: ‘c_eigen_spmat_z_delete’ was previously declared here
eigen_spmat_z.cpp:45:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:211:21: warning: type of ‘c_eigen_spmat_z_new’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_z.cpp:38:12: note: ‘c_eigen_spmat_z_new’ was previously declared here
eigen_spmat_z.cpp:38:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:204:8: warning: type of ‘c_eigen_spmat_c_print’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:443:6: note: ‘c_eigen_spmat_c_print’ was previously declared here
eigen_spmat_c.cpp:443:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:203:21: warning: type of ‘c_eigen_spmat_c_sqrt’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:437:12: note: ‘c_eigen_spmat_c_sqrt’ was previously declared here
eigen_spmat_c.cpp:437:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:202:21: warning: type of ‘c_eigen_spmat_c_neg’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:428:12: note: ‘c_eigen_spmat_c_neg’ was previously declared here
eigen_spmat_c.cpp:428:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:201:17: warning: type of ‘c_eigen_spmat_c_sum’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:386:15: note: return value type mismatch
eigen_spmat.h:18:34: note: type ‘struct c_spmat_c_elt’ should match type ‘c_spmat_c_elt’
lib/eigen_spmat.h:27:26: note: the incompatible type is defined here
eigen_spmat_c.cpp:386:15: note: ‘c_eigen_spmat_c_sum’ was previously declared here
eigen_spmat_c.cpp:386:15: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:200:21: warning: type of ‘c_eigen_spmat_c_div_scalar’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:376:12: note: type mismatch in parameter 2
eigen_spmat.h:18:34: note: type ‘struct c_spmat_c_elt’ should match type ‘c_spmat_c_elt’
lib/eigen_spmat.h:27:26: note: the incompatible type is defined here
eigen_spmat_c.cpp:376:12: note: ‘c_eigen_spmat_c_div_scalar’ was previously declared here
eigen_spmat_c.cpp:376:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:199:21: warning: type of ‘c_eigen_spmat_c_mul_scalar’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:369:12: note: type mismatch in parameter 2
eigen_spmat.h:18:34: note: type ‘struct c_spmat_c_elt’ should match type ‘c_spmat_c_elt’
lib/eigen_spmat.h:27:26: note: the incompatible type is defined here
eigen_spmat_c.cpp:369:12: note: ‘c_eigen_spmat_c_mul_scalar’ was previously declared here
eigen_spmat_c.cpp:369:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:198:21: warning: type of ‘c_eigen_spmat_c_sub_scalar’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:359:12: note: type mismatch in parameter 2
eigen_spmat.h:18:34: note: type ‘struct c_spmat_c_elt’ should match type ‘c_spmat_c_elt’
lib/eigen_spmat.h:27:26: note: the incompatible type is defined here
eigen_spmat_c.cpp:359:12: note: ‘c_eigen_spmat_c_sub_scalar’ was previously declared here
eigen_spmat_c.cpp:359:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:197:21: warning: type of ‘c_eigen_spmat_c_add_scalar’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:349:12: note: type mismatch in parameter 2
eigen_spmat.h:18:34: note: type ‘struct c_spmat_c_elt’ should match type ‘c_spmat_c_elt’
lib/eigen_spmat.h:27:26: note: the incompatible type is defined here
eigen_spmat_c.cpp:349:12: note: ‘c_eigen_spmat_c_add_scalar’ was previously declared here
eigen_spmat_c.cpp:349:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:196:21: warning: type of ‘c_eigen_spmat_c_gemm’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:342:12: note: ‘c_eigen_spmat_c_gemm’ was previously declared here
eigen_spmat_c.cpp:342:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:195:21: warning: type of ‘c_eigen_spmat_c_div’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:335:12: note: ‘c_eigen_spmat_c_div’ was previously declared here
eigen_spmat_c.cpp:335:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:194:21: warning: type of ‘c_eigen_spmat_c_mul’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:328:12: note: ‘c_eigen_spmat_c_mul’ was previously declared here
eigen_spmat_c.cpp:328:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:193:21: warning: type of ‘c_eigen_spmat_c_sub’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:321:12: note: ‘c_eigen_spmat_c_sub’ was previously declared here
eigen_spmat_c.cpp:321:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:192:21: warning: type of ‘c_eigen_spmat_c_add’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:314:12: note: ‘c_eigen_spmat_c_add’ was previously declared here
eigen_spmat_c.cpp:314:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:191:7: warning: type of ‘c_eigen_spmat_c_equal_or_smaller’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:308:5: note: ‘c_eigen_spmat_c_equal_or_smaller’ was previously declared here
eigen_spmat_c.cpp:308:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:190:7: warning: type of ‘c_eigen_spmat_c_equal_or_greater’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:302:5: note: ‘c_eigen_spmat_c_equal_or_greater’ was previously declared here
eigen_spmat_c.cpp:302:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:189:7: warning: type of ‘c_eigen_spmat_c_is_smaller’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:296:5: note: ‘c_eigen_spmat_c_is_smaller’ was previously declared here
eigen_spmat_c.cpp:296:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:188:7: warning: type of ‘c_eigen_spmat_c_is_greater’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:290:5: note: ‘c_eigen_spmat_c_is_greater’ was previously declared here
eigen_spmat_c.cpp:290:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:187:7: warning: type of ‘c_eigen_spmat_c_is_unequal’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:283:5: note: ‘c_eigen_spmat_c_is_unequal’ was previously declared here
eigen_spmat_c.cpp:283:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:186:7: warning: type of ‘c_eigen_spmat_c_is_equal’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:276:5: note: ‘c_eigen_spmat_c_is_equal’ was previously declared here
eigen_spmat_c.cpp:276:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:185:7: warning: type of ‘c_eigen_spmat_c_is_nonnegative’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:259:5: note: ‘c_eigen_spmat_c_is_nonnegative’ was previously declared here
eigen_spmat_c.cpp:259:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:184:7: warning: type of ‘c_eigen_spmat_c_is_nonpositive’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:242:5: note: ‘c_eigen_spmat_c_is_nonpositive’ was previously declared here
eigen_spmat_c.cpp:242:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:183:7: warning: type of ‘c_eigen_spmat_c_is_negative’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:222:5: note: ‘c_eigen_spmat_c_is_negative’ was previously declared here
eigen_spmat_c.cpp:222:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:182:7: warning: type of ‘c_eigen_spmat_c_is_positive’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:202:5: note: ‘c_eigen_spmat_c_is_positive’ was previously declared here
eigen_spmat_c.cpp:202:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:181:7: warning: type of ‘c_eigen_spmat_c_is_zero’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:184:5: note: ‘c_eigen_spmat_c_is_zero’ was previously declared here
eigen_spmat_c.cpp:184:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:180:17: warning: type of ‘c_eigen_spmat_c_trace’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:178:15: note: return value type mismatch
eigen_spmat.h:18:34: note: type ‘struct c_spmat_c_elt’ should match type ‘c_spmat_c_elt’
lib/eigen_spmat.h:27:26: note: the incompatible type is defined here
eigen_spmat_c.cpp:178:15: note: ‘c_eigen_spmat_c_trace’ was previously declared here
eigen_spmat_c.cpp:178:15: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:179:21: warning: type of ‘c_eigen_spmat_c_diagonal’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:172:12: note: ‘c_eigen_spmat_c_diagonal’ was previously declared here
eigen_spmat_c.cpp:172:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:178:21: warning: type of ‘c_eigen_spmat_c_adjoint’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:166:12: note: ‘c_eigen_spmat_c_adjoint’ was previously declared here
eigen_spmat_c.cpp:166:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:177:21: warning: type of ‘c_eigen_spmat_c_transpose’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:160:12: note: ‘c_eigen_spmat_c_transpose’ was previously declared here
eigen_spmat_c.cpp:160:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:176:21: warning: type of ‘c_eigen_spmat_c_col’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:154:12: note: ‘c_eigen_spmat_c_col’ was previously declared here
eigen_spmat_c.cpp:154:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:175:21: warning: type of ‘c_eigen_spmat_c_row’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:148:12: note: ‘c_eigen_spmat_c_row’ was previously declared here
eigen_spmat_c.cpp:148:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:174:21: warning: type of ‘c_eigen_spmat_c_clone’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:142:12: note: ‘c_eigen_spmat_c_clone’ was previously declared here
eigen_spmat_c.cpp:142:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:173:10: warning: type of ‘c_eigen_spmat_c_outerindexptr’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:135:8: note: ‘c_eigen_spmat_c_outerindexptr’ was previously declared here
eigen_spmat_c.cpp:135:8: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:172:10: warning: type of ‘c_eigen_spmat_c_innerindexptr’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:128:8: note: ‘c_eigen_spmat_c_innerindexptr’ was previously declared here
eigen_spmat_c.cpp:128:8: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:171:18: warning: type of ‘c_eigen_spmat_c_valueptr’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:120:16: note: ‘c_eigen_spmat_c_valueptr’ was previously declared here
eigen_spmat_c.cpp:120:16: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:170:8: warning: type of ‘c_eigen_spmat_c_prune’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:114:6: note: type mismatch in parameter 2
eigen_spmat.h:18:34: note: type ‘struct c_spmat_c_elt’ should match type ‘c_spmat_c_elt’
lib/eigen_spmat.h:27:26: note: the incompatible type is defined here
eigen_spmat_c.cpp:114:6: note: ‘c_eigen_spmat_c_prune’ was previously declared here
eigen_spmat_c.cpp:114:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:169:8: warning: type of ‘c_eigen_spmat_c_reshape’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:108:6: note: ‘c_eigen_spmat_c_reshape’ was previously declared here
eigen_spmat_c.cpp:108:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:168:8: warning: type of ‘c_eigen_spmat_c_uncompress’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:103:6: note: ‘c_eigen_spmat_c_uncompress’ was previously declared here
eigen_spmat_c.cpp:103:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:167:8: warning: type of ‘c_eigen_spmat_c_compress’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:98:6: note: ‘c_eigen_spmat_c_compress’ was previously declared here
eigen_spmat_c.cpp:98:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:166:7: warning: type of ‘c_eigen_spmat_c_is_compressed’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:93:5: note: ‘c_eigen_spmat_c_is_compressed’ was previously declared here
eigen_spmat_c.cpp:93:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:165:8: warning: type of ‘c_eigen_spmat_c_reset’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:88:6: note: ‘c_eigen_spmat_c_reset’ was previously declared here
eigen_spmat_c.cpp:88:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:164:8: warning: type of ‘c_eigen_spmat_c_insert’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:83:6: note: type mismatch in parameter 4
eigen_spmat.h:18:34: note: type ‘struct c_spmat_c_elt’ should match type ‘c_spmat_c_elt’
lib/eigen_spmat.h:27:26: note: the incompatible type is defined here
eigen_spmat_c.cpp:83:6: note: ‘c_eigen_spmat_c_insert’ was previously declared here
eigen_spmat_c.cpp:83:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:163:8: warning: type of ‘c_eigen_spmat_c_set’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:78:6: note: type mismatch in parameter 4
eigen_spmat.h:18:34: note: type ‘struct c_spmat_c_elt’ should match type ‘c_spmat_c_elt’
lib/eigen_spmat.h:27:26: note: the incompatible type is defined here
eigen_spmat_c.cpp:78:6: note: ‘c_eigen_spmat_c_set’ was previously declared here
eigen_spmat_c.cpp:78:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:162:17: warning: type of ‘c_eigen_spmat_c_get’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:72:15: note: return value type mismatch
eigen_spmat.h:18:34: note: type ‘struct c_spmat_c_elt’ should match type ‘c_spmat_c_elt’
lib/eigen_spmat.h:27:26: note: the incompatible type is defined here
eigen_spmat_c.cpp:72:15: note: ‘c_eigen_spmat_c_get’ was previously declared here
eigen_spmat_c.cpp:72:15: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:161:9: warning: type of ‘c_eigen_spmat_c_nnz’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:67:7: note: ‘c_eigen_spmat_c_nnz’ was previously declared here
eigen_spmat_c.cpp:67:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:160:9: warning: type of ‘c_eigen_spmat_c_cols’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:62:7: note: ‘c_eigen_spmat_c_cols’ was previously declared here
eigen_spmat_c.cpp:62:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:159:9: warning: type of ‘c_eigen_spmat_c_rows’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:57:7: note: ‘c_eigen_spmat_c_rows’ was previously declared here
eigen_spmat_c.cpp:57:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:158:21: warning: type of ‘c_eigen_spmat_c_eye’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:50:12: note: ‘c_eigen_spmat_c_eye’ was previously declared here
eigen_spmat_c.cpp:50:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:157:8: warning: type of ‘c_eigen_spmat_c_delete’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:45:6: note: ‘c_eigen_spmat_c_delete’ was previously declared here
eigen_spmat_c.cpp:45:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:156:21: warning: type of ‘c_eigen_spmat_c_new’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_c.cpp:38:12: note: ‘c_eigen_spmat_c_new’ was previously declared here
eigen_spmat_c.cpp:38:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:149:8: warning: type of ‘c_eigen_spmat_d_print’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:435:6: note: ‘c_eigen_spmat_d_print’ was previously declared here
eigen_spmat_d.cpp:435:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:148:21: warning: type of ‘c_eigen_spmat_d_sqrt’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:429:12: note: ‘c_eigen_spmat_d_sqrt’ was previously declared here
eigen_spmat_d.cpp:429:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:147:21: warning: type of ‘c_eigen_spmat_d_neg’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:420:12: note: ‘c_eigen_spmat_d_neg’ was previously declared here
eigen_spmat_d.cpp:420:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:146:21: warning: type of ‘c_eigen_spmat_d_abs’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:414:12: note: ‘c_eigen_spmat_d_abs’ was previously declared here
eigen_spmat_d.cpp:414:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:145:10: warning: type of ‘c_eigen_spmat_d_max’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:399:13: note: ‘c_eigen_spmat_d_max’ was previously declared here
eigen_spmat_d.cpp:399:13: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:144:10: warning: type of ‘c_eigen_spmat_d_min’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:384:13: note: ‘c_eigen_spmat_d_min’ was previously declared here
eigen_spmat_d.cpp:384:13: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:143:10: warning: type of ‘c_eigen_spmat_d_sum’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:379:13: note: ‘c_eigen_spmat_d_sum’ was previously declared here
eigen_spmat_d.cpp:379:13: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:142:21: warning: type of ‘c_eigen_spmat_d_max2’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:372:12: note: ‘c_eigen_spmat_d_max2’ was previously declared here
eigen_spmat_d.cpp:372:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:141:21: warning: type of ‘c_eigen_spmat_d_min2’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:365:12: note: ‘c_eigen_spmat_d_min2’ was previously declared here
eigen_spmat_d.cpp:365:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:140:21: warning: type of ‘c_eigen_spmat_d_div_scalar’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:356:12: note: ‘c_eigen_spmat_d_div_scalar’ was previously declared here
eigen_spmat_d.cpp:356:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:139:21: warning: type of ‘c_eigen_spmat_d_mul_scalar’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:350:12: note: ‘c_eigen_spmat_d_mul_scalar’ was previously declared here
eigen_spmat_d.cpp:350:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:138:21: warning: type of ‘c_eigen_spmat_d_sub_scalar’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:341:12: note: ‘c_eigen_spmat_d_sub_scalar’ was previously declared here
eigen_spmat_d.cpp:341:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:137:21: warning: type of ‘c_eigen_spmat_d_add_scalar’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:332:12: note: ‘c_eigen_spmat_d_add_scalar’ was previously declared here
eigen_spmat_d.cpp:332:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:136:21: warning: type of ‘c_eigen_spmat_d_gemm’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:325:12: note: ‘c_eigen_spmat_d_gemm’ was previously declared here
eigen_spmat_d.cpp:325:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:135:21: warning: type of ‘c_eigen_spmat_d_div’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:318:12: note: ‘c_eigen_spmat_d_div’ was previously declared here
eigen_spmat_d.cpp:318:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:134:21: warning: type of ‘c_eigen_spmat_d_mul’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:311:12: note: ‘c_eigen_spmat_d_mul’ was previously declared here
eigen_spmat_d.cpp:311:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:133:21: warning: type of ‘c_eigen_spmat_d_sub’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:304:12: note: ‘c_eigen_spmat_d_sub’ was previously declared here
eigen_spmat_d.cpp:304:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:132:21: warning: type of ‘c_eigen_spmat_d_add’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:297:12: note: ‘c_eigen_spmat_d_add’ was previously declared here
eigen_spmat_d.cpp:297:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:131:7: warning: type of ‘c_eigen_spmat_d_equal_or_smaller’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:291:5: note: ‘c_eigen_spmat_d_equal_or_smaller’ was previously declared here
eigen_spmat_d.cpp:291:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:130:7: warning: type of ‘c_eigen_spmat_d_equal_or_greater’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:285:5: note: ‘c_eigen_spmat_d_equal_or_greater’ was previously declared here
eigen_spmat_d.cpp:285:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:129:7: warning: type of ‘c_eigen_spmat_d_is_smaller’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:279:5: note: ‘c_eigen_spmat_d_is_smaller’ was previously declared here
eigen_spmat_d.cpp:279:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:128:7: warning: type of ‘c_eigen_spmat_d_is_greater’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:273:5: note: ‘c_eigen_spmat_d_is_greater’ was previously declared here
eigen_spmat_d.cpp:273:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:127:7: warning: type of ‘c_eigen_spmat_d_is_unequal’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:266:5: note: ‘c_eigen_spmat_d_is_unequal’ was previously declared here
eigen_spmat_d.cpp:266:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:126:7: warning: type of ‘c_eigen_spmat_d_is_equal’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:259:5: note: ‘c_eigen_spmat_d_is_equal’ was previously declared here
eigen_spmat_d.cpp:259:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:125:7: warning: type of ‘c_eigen_spmat_d_is_nonnegative’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:242:5: note: ‘c_eigen_spmat_d_is_nonnegative’ was previously declared here
eigen_spmat_d.cpp:242:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:124:7: warning: type of ‘c_eigen_spmat_d_is_nonpositive’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:225:5: note: ‘c_eigen_spmat_d_is_nonpositive’ was previously declared here
eigen_spmat_d.cpp:225:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:123:7: warning: type of ‘c_eigen_spmat_d_is_negative’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:205:5: note: ‘c_eigen_spmat_d_is_negative’ was previously declared here
eigen_spmat_d.cpp:205:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:122:7: warning: type of ‘c_eigen_spmat_d_is_positive’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:185:5: note: ‘c_eigen_spmat_d_is_positive’ was previously declared here
eigen_spmat_d.cpp:185:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:121:7: warning: type of ‘c_eigen_spmat_d_is_zero’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:167:5: note: ‘c_eigen_spmat_d_is_zero’ was previously declared here
eigen_spmat_d.cpp:167:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:120:10: warning: type of ‘c_eigen_spmat_d_trace’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:162:13: note: ‘c_eigen_spmat_d_trace’ was previously declared here
eigen_spmat_d.cpp:162:13: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:119:21: warning: type of ‘c_eigen_spmat_d_diagonal’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:156:12: note: ‘c_eigen_spmat_d_diagonal’ was previously declared here
eigen_spmat_d.cpp:156:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:118:21: warning: type of ‘c_eigen_spmat_d_adjoint’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:150:12: note: ‘c_eigen_spmat_d_adjoint’ was previously declared here
eigen_spmat_d.cpp:150:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:117:21: warning: type of ‘c_eigen_spmat_d_transpose’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:144:12: note: ‘c_eigen_spmat_d_transpose’ was previously declared here
eigen_spmat_d.cpp:144:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:116:21: warning: type of ‘c_eigen_spmat_d_col’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:138:12: note: ‘c_eigen_spmat_d_col’ was previously declared here
eigen_spmat_d.cpp:138:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:115:21: warning: type of ‘c_eigen_spmat_d_row’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:132:12: note: ‘c_eigen_spmat_d_row’ was previously declared here
eigen_spmat_d.cpp:132:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:114:21: warning: type of ‘c_eigen_spmat_d_clone’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:126:12: note: ‘c_eigen_spmat_d_clone’ was previously declared here
eigen_spmat_d.cpp:126:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:113:10: warning: type of ‘c_eigen_spmat_d_outerindexptr’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:119:8: note: ‘c_eigen_spmat_d_outerindexptr’ was previously declared here
eigen_spmat_d.cpp:119:8: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:112:10: warning: type of ‘c_eigen_spmat_d_innerindexptr’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:112:8: note: ‘c_eigen_spmat_d_innerindexptr’ was previously declared here
eigen_spmat_d.cpp:112:8: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:111:11: warning: type of ‘c_eigen_spmat_d_valueptr’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:104:14: note: ‘c_eigen_spmat_d_valueptr’ was previously declared here
eigen_spmat_d.cpp:104:14: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:110:8: warning: type of ‘c_eigen_spmat_d_prune’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:99:6: note: ‘c_eigen_spmat_d_prune’ was previously declared here
eigen_spmat_d.cpp:99:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:109:8: warning: type of ‘c_eigen_spmat_d_reshape’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:93:6: note: ‘c_eigen_spmat_d_reshape’ was previously declared here
eigen_spmat_d.cpp:93:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:108:8: warning: type of ‘c_eigen_spmat_d_uncompress’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:88:6: note: ‘c_eigen_spmat_d_uncompress’ was previously declared here
eigen_spmat_d.cpp:88:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:107:8: warning: type of ‘c_eigen_spmat_d_compress’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:83:6: note: ‘c_eigen_spmat_d_compress’ was previously declared here
eigen_spmat_d.cpp:83:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:106:7: warning: type of ‘c_eigen_spmat_d_is_compressed’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:78:5: note: ‘c_eigen_spmat_d_is_compressed’ was previously declared here
eigen_spmat_d.cpp:78:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:105:8: warning: type of ‘c_eigen_spmat_d_reset’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:73:6: note: ‘c_eigen_spmat_d_reset’ was previously declared here
eigen_spmat_d.cpp:73:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:104:8: warning: type of ‘c_eigen_spmat_d_insert’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:68:6: note: ‘c_eigen_spmat_d_insert’ was previously declared here
eigen_spmat_d.cpp:68:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:103:8: warning: type of ‘c_eigen_spmat_d_set’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:63:6: note: ‘c_eigen_spmat_d_set’ was previously declared here
eigen_spmat_d.cpp:63:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:102:10: warning: type of ‘c_eigen_spmat_d_get’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:58:13: note: ‘c_eigen_spmat_d_get’ was previously declared here
eigen_spmat_d.cpp:58:13: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:101:9: warning: type of ‘c_eigen_spmat_d_nnz’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:53:7: note: ‘c_eigen_spmat_d_nnz’ was previously declared here
eigen_spmat_d.cpp:53:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:100:9: warning: type of ‘c_eigen_spmat_d_cols’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:48:7: note: ‘c_eigen_spmat_d_cols’ was previously declared here
eigen_spmat_d.cpp:48:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:99:9: warning: type of ‘c_eigen_spmat_d_rows’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:43:7: note: ‘c_eigen_spmat_d_rows’ was previously declared here
eigen_spmat_d.cpp:43:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:98:21: warning: type of ‘c_eigen_spmat_d_eye’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:36:12: note: ‘c_eigen_spmat_d_eye’ was previously declared here
eigen_spmat_d.cpp:36:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:97:8: warning: type of ‘c_eigen_spmat_d_delete’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:31:6: note: ‘c_eigen_spmat_d_delete’ was previously declared here
eigen_spmat_d.cpp:31:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:96:21: warning: type of ‘c_eigen_spmat_d_new’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_d.cpp:24:12: note: ‘c_eigen_spmat_d_new’ was previously declared here
eigen_spmat_d.cpp:24:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:89:8: warning: type of ‘c_eigen_spmat_s_print’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:435:6: note: ‘c_eigen_spmat_s_print’ was previously declared here
eigen_spmat_s.cpp:435:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:88:21: warning: type of ‘c_eigen_spmat_s_sqrt’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:429:12: note: ‘c_eigen_spmat_s_sqrt’ was previously declared here
eigen_spmat_s.cpp:429:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:87:21: warning: type of ‘c_eigen_spmat_s_neg’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:420:12: note: ‘c_eigen_spmat_s_neg’ was previously declared here
eigen_spmat_s.cpp:420:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:86:21: warning: type of ‘c_eigen_spmat_s_abs’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:414:12: note: ‘c_eigen_spmat_s_abs’ was previously declared here
eigen_spmat_s.cpp:414:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:85:9: warning: type of ‘c_eigen_spmat_s_max’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:399:13: note: ‘c_eigen_spmat_s_max’ was previously declared here
eigen_spmat_s.cpp:399:13: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:84:9: warning: type of ‘c_eigen_spmat_s_min’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:384:13: note: ‘c_eigen_spmat_s_min’ was previously declared here
eigen_spmat_s.cpp:384:13: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:83:9: warning: type of ‘c_eigen_spmat_s_sum’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:379:13: note: ‘c_eigen_spmat_s_sum’ was previously declared here
eigen_spmat_s.cpp:379:13: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:82:21: warning: type of ‘c_eigen_spmat_s_max2’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:372:12: note: ‘c_eigen_spmat_s_max2’ was previously declared here
eigen_spmat_s.cpp:372:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:81:21: warning: type of ‘c_eigen_spmat_s_min2’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:365:12: note: ‘c_eigen_spmat_s_min2’ was previously declared here
eigen_spmat_s.cpp:365:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:80:21: warning: type of ‘c_eigen_spmat_s_div_scalar’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:356:12: note: ‘c_eigen_spmat_s_div_scalar’ was previously declared here
eigen_spmat_s.cpp:356:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:79:21: warning: type of ‘c_eigen_spmat_s_mul_scalar’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:350:12: note: ‘c_eigen_spmat_s_mul_scalar’ was previously declared here
eigen_spmat_s.cpp:350:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:78:21: warning: type of ‘c_eigen_spmat_s_sub_scalar’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:341:12: note: ‘c_eigen_spmat_s_sub_scalar’ was previously declared here
eigen_spmat_s.cpp:341:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:77:21: warning: type of ‘c_eigen_spmat_s_add_scalar’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:332:12: note: ‘c_eigen_spmat_s_add_scalar’ was previously declared here
eigen_spmat_s.cpp:332:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:76:21: warning: type of ‘c_eigen_spmat_s_gemm’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:325:12: note: ‘c_eigen_spmat_s_gemm’ was previously declared here
eigen_spmat_s.cpp:325:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:75:21: warning: type of ‘c_eigen_spmat_s_div’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:318:12: note: ‘c_eigen_spmat_s_div’ was previously declared here
eigen_spmat_s.cpp:318:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:74:21: warning: type of ‘c_eigen_spmat_s_mul’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:311:12: note: ‘c_eigen_spmat_s_mul’ was previously declared here
eigen_spmat_s.cpp:311:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:73:21: warning: type of ‘c_eigen_spmat_s_sub’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:304:12: note: ‘c_eigen_spmat_s_sub’ was previously declared here
eigen_spmat_s.cpp:304:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:72:21: warning: type of ‘c_eigen_spmat_s_add’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:297:12: note: ‘c_eigen_spmat_s_add’ was previously declared here
eigen_spmat_s.cpp:297:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:71:7: warning: type of ‘c_eigen_spmat_s_equal_or_smaller’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:291:5: note: ‘c_eigen_spmat_s_equal_or_smaller’ was previously declared here
eigen_spmat_s.cpp:291:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:70:7: warning: type of ‘c_eigen_spmat_s_equal_or_greater’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:285:5: note: ‘c_eigen_spmat_s_equal_or_greater’ was previously declared here
eigen_spmat_s.cpp:285:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:69:7: warning: type of ‘c_eigen_spmat_s_is_smaller’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:279:5: note: ‘c_eigen_spmat_s_is_smaller’ was previously declared here
eigen_spmat_s.cpp:279:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:68:7: warning: type of ‘c_eigen_spmat_s_is_greater’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:273:5: note: ‘c_eigen_spmat_s_is_greater’ was previously declared here
eigen_spmat_s.cpp:273:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:67:7: warning: type of ‘c_eigen_spmat_s_is_unequal’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:266:5: note: ‘c_eigen_spmat_s_is_unequal’ was previously declared here
eigen_spmat_s.cpp:266:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:66:7: warning: type of ‘c_eigen_spmat_s_is_equal’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:259:5: note: ‘c_eigen_spmat_s_is_equal’ was previously declared here
eigen_spmat_s.cpp:259:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:65:7: warning: type of ‘c_eigen_spmat_s_is_nonnegative’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:242:5: note: ‘c_eigen_spmat_s_is_nonnegative’ was previously declared here
eigen_spmat_s.cpp:242:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:64:7: warning: type of ‘c_eigen_spmat_s_is_nonpositive’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:225:5: note: ‘c_eigen_spmat_s_is_nonpositive’ was previously declared here
eigen_spmat_s.cpp:225:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:63:7: warning: type of ‘c_eigen_spmat_s_is_negative’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:205:5: note: ‘c_eigen_spmat_s_is_negative’ was previously declared here
eigen_spmat_s.cpp:205:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:62:7: warning: type of ‘c_eigen_spmat_s_is_positive’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:185:5: note: ‘c_eigen_spmat_s_is_positive’ was previously declared here
eigen_spmat_s.cpp:185:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:61:7: warning: type of ‘c_eigen_spmat_s_is_zero’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:167:5: note: ‘c_eigen_spmat_s_is_zero’ was previously declared here
eigen_spmat_s.cpp:167:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:60:9: warning: type of ‘c_eigen_spmat_s_trace’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:162:13: note: ‘c_eigen_spmat_s_trace’ was previously declared here
eigen_spmat_s.cpp:162:13: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:59:21: warning: type of ‘c_eigen_spmat_s_diagonal’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:156:12: note: ‘c_eigen_spmat_s_diagonal’ was previously declared here
eigen_spmat_s.cpp:156:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:58:21: warning: type of ‘c_eigen_spmat_s_adjoint’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:150:12: note: ‘c_eigen_spmat_s_adjoint’ was previously declared here
eigen_spmat_s.cpp:150:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:57:21: warning: type of ‘c_eigen_spmat_s_transpose’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:144:12: note: ‘c_eigen_spmat_s_transpose’ was previously declared here
eigen_spmat_s.cpp:144:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:56:21: warning: type of ‘c_eigen_spmat_s_col’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:138:12: note: ‘c_eigen_spmat_s_col’ was previously declared here
eigen_spmat_s.cpp:138:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:55:21: warning: type of ‘c_eigen_spmat_s_row’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:132:12: note: ‘c_eigen_spmat_s_row’ was previously declared here
eigen_spmat_s.cpp:132:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:54:21: warning: type of ‘c_eigen_spmat_s_clone’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:126:12: note: ‘c_eigen_spmat_s_clone’ was previously declared here
eigen_spmat_s.cpp:126:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:53:10: warning: type of ‘c_eigen_spmat_s_outerindexptr’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:119:8: note: ‘c_eigen_spmat_s_outerindexptr’ was previously declared here
eigen_spmat_s.cpp:119:8: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:52:10: warning: type of ‘c_eigen_spmat_s_innerindexptr’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:112:8: note: ‘c_eigen_spmat_s_innerindexptr’ was previously declared here
eigen_spmat_s.cpp:112:8: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:51:10: warning: type of ‘c_eigen_spmat_s_valueptr’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:104:14: note: ‘c_eigen_spmat_s_valueptr’ was previously declared here
eigen_spmat_s.cpp:104:14: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:50:8: warning: type of ‘c_eigen_spmat_s_prune’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:99:6: note: ‘c_eigen_spmat_s_prune’ was previously declared here
eigen_spmat_s.cpp:99:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:49:8: warning: type of ‘c_eigen_spmat_s_reshape’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:93:6: note: ‘c_eigen_spmat_s_reshape’ was previously declared here
eigen_spmat_s.cpp:93:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:48:8: warning: type of ‘c_eigen_spmat_s_uncompress’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:88:6: note: ‘c_eigen_spmat_s_uncompress’ was previously declared here
eigen_spmat_s.cpp:88:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:47:8: warning: type of ‘c_eigen_spmat_s_compress’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:83:6: note: ‘c_eigen_spmat_s_compress’ was previously declared here
eigen_spmat_s.cpp:83:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:46:7: warning: type of ‘c_eigen_spmat_s_is_compressed’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:78:5: note: ‘c_eigen_spmat_s_is_compressed’ was previously declared here
eigen_spmat_s.cpp:78:5: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:45:8: warning: type of ‘c_eigen_spmat_s_reset’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:73:6: note: ‘c_eigen_spmat_s_reset’ was previously declared here
eigen_spmat_s.cpp:73:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:44:8: warning: type of ‘c_eigen_spmat_s_insert’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:68:6: note: ‘c_eigen_spmat_s_insert’ was previously declared here
eigen_spmat_s.cpp:68:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:43:8: warning: type of ‘c_eigen_spmat_s_set’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:63:6: note: ‘c_eigen_spmat_s_set’ was previously declared here
eigen_spmat_s.cpp:63:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:42:9: warning: type of ‘c_eigen_spmat_s_get’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:58:13: note: ‘c_eigen_spmat_s_get’ was previously declared here
eigen_spmat_s.cpp:58:13: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:41:9: warning: type of ‘c_eigen_spmat_s_nnz’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:53:7: note: ‘c_eigen_spmat_s_nnz’ was previously declared here
eigen_spmat_s.cpp:53:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:40:9: warning: type of ‘c_eigen_spmat_s_cols’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:48:7: note: ‘c_eigen_spmat_s_cols’ was previously declared here
eigen_spmat_s.cpp:48:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:39:9: warning: type of ‘c_eigen_spmat_s_rows’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:43:7: note: ‘c_eigen_spmat_s_rows’ was previously declared here
eigen_spmat_s.cpp:43:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:38:21: warning: type of ‘c_eigen_spmat_s_eye’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:36:12: note: ‘c_eigen_spmat_s_eye’ was previously declared here
eigen_spmat_s.cpp:36:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:37:8: warning: type of ‘c_eigen_spmat_s_delete’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:31:6: note: ‘c_eigen_spmat_s_delete’ was previously declared here
eigen_spmat_s.cpp:31:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_spmat.h:36:21: warning: type of ‘c_eigen_spmat_s_new’ does not match original declaration [-Wlto-type-mismatch]
eigen_spmat_s.cpp:24:12: note: ‘c_eigen_spmat_s_new’ was previously declared here
eigen_spmat_s.cpp:24:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:131:21: warning: type of ‘c_eigen_dsmat_z_inv’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_z.cpp:167:12: note: ‘c_eigen_dsmat_z_inv’ was previously declared here
eigen_dsmat_z.cpp:167:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:130:8: warning: type of ‘c_eigen_dsmat_z_colwise_op’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_z.cpp:150:6: note: ‘c_eigen_dsmat_z_colwise_op’ was previously declared here
eigen_dsmat_z.cpp:150:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:129:8: warning: type of ‘c_eigen_dsmat_z_rowwise_op’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_z.cpp:133:6: note: ‘c_eigen_dsmat_z_rowwise_op’ was previously declared here
eigen_dsmat_z.cpp:133:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:128:8: warning: type of ‘c_eigen_dsmat_z_swap_cols’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_z.cpp:127:6: note: ‘c_eigen_dsmat_z_swap_cols’ was previously declared here
eigen_dsmat_z.cpp:127:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:127:8: warning: type of ‘c_eigen_dsmat_z_swap_rows’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_z.cpp:121:6: note: ‘c_eigen_dsmat_z_swap_rows’ was previously declared here
eigen_dsmat_z.cpp:121:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:126:21: warning: type of ‘c_eigen_dsmat_z_transpose’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_z.cpp:115:12: note: ‘c_eigen_dsmat_z_transpose’ was previously declared here
eigen_dsmat_z.cpp:115:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:125:21: warning: type of ‘c_eigen_dsmat_z_gemm’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_z.cpp:108:12: note: ‘c_eigen_dsmat_z_gemm’ was previously declared here
eigen_dsmat_z.cpp:108:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:123:8: warning: type of ‘c_eigen_dsmat_z_print’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_z.cpp:101:6: note: ‘c_eigen_dsmat_z_print’ was previously declared here
eigen_dsmat_z.cpp:101:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:122:18: warning: type of ‘c_eigen_dsmat_z_data’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_z.cpp:96:16: note: ‘c_eigen_dsmat_z_data’ was previously declared here
eigen_dsmat_z.cpp:96:16: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:121:8: warning: type of ‘c_eigen_dsmat_z_set’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_z.cpp:91:6: note: type mismatch in parameter 4
eigen_dsmat.h:19:35: note: type ‘struct c_dsmat_z_elt’ should match type ‘c_dsmat_z_elt’
lib/eigen_dsmat.h:28:27: note: the incompatible type is defined here
eigen_dsmat_z.cpp:91:6: note: ‘c_eigen_dsmat_z_set’ was previously declared here
eigen_dsmat_z.cpp:91:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:120:17: warning: type of ‘c_eigen_dsmat_z_get’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_z.cpp:85:15: note: return value type mismatch
eigen_dsmat.h:19:35: note: type ‘struct c_dsmat_z_elt’ should match type ‘c_dsmat_z_elt’
lib/eigen_dsmat.h:28:27: note: the incompatible type is defined here
eigen_dsmat_z.cpp:85:15: note: ‘c_eigen_dsmat_z_get’ was previously declared here
eigen_dsmat_z.cpp:85:15: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:119:9: warning: type of ‘c_eigen_dsmat_z_cols’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_z.cpp:80:7: note: ‘c_eigen_dsmat_z_cols’ was previously declared here
eigen_dsmat_z.cpp:80:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:118:9: warning: type of ‘c_eigen_dsmat_z_rows’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_z.cpp:75:7: note: ‘c_eigen_dsmat_z_rows’ was previously declared here
eigen_dsmat_z.cpp:75:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:117:21: warning: type of ‘c_eigen_dsmat_z_eye’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_z.cpp:68:12: note: ‘c_eigen_dsmat_z_eye’ was previously declared here
eigen_dsmat_z.cpp:68:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:116:21: warning: type of ‘c_eigen_dsmat_z_ones’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_z.cpp:62:12: note: ‘c_eigen_dsmat_z_ones’ was previously declared here
eigen_dsmat_z.cpp:62:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:115:21: warning: type of ‘c_eigen_dsmat_z_zeros’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_z.cpp:55:12: note: ‘c_eigen_dsmat_z_zeros’ was previously declared here
eigen_dsmat_z.cpp:55:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:114:8: warning: type of ‘c_eigen_dsmat_z_delete’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_z.cpp:50:6: note: ‘c_eigen_dsmat_z_delete’ was previously declared here
eigen_dsmat_z.cpp:50:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:113:21: warning: type of ‘c_eigen_dsmat_z_new’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_z.cpp:45:12: note: ‘c_eigen_dsmat_z_new’ was previously declared here
eigen_dsmat_z.cpp:45:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:106:21: warning: type of ‘c_eigen_dsmat_c_inv’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_c.cpp:167:12: note: ‘c_eigen_dsmat_c_inv’ was previously declared here
eigen_dsmat_c.cpp:167:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:105:8: warning: type of ‘c_eigen_dsmat_c_colwise_op’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_c.cpp:150:6: note: ‘c_eigen_dsmat_c_colwise_op’ was previously declared here
eigen_dsmat_c.cpp:150:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:104:8: warning: type of ‘c_eigen_dsmat_c_rowwise_op’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_c.cpp:133:6: note: ‘c_eigen_dsmat_c_rowwise_op’ was previously declared here
eigen_dsmat_c.cpp:133:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:103:8: warning: type of ‘c_eigen_dsmat_c_swap_cols’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_c.cpp:127:6: note: ‘c_eigen_dsmat_c_swap_cols’ was previously declared here
eigen_dsmat_c.cpp:127:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:102:8: warning: type of ‘c_eigen_dsmat_c_swap_rows’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_c.cpp:121:6: note: ‘c_eigen_dsmat_c_swap_rows’ was previously declared here
eigen_dsmat_c.cpp:121:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:101:21: warning: type of ‘c_eigen_dsmat_c_transpose’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_c.cpp:115:12: note: ‘c_eigen_dsmat_c_transpose’ was previously declared here
eigen_dsmat_c.cpp:115:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:100:21: warning: type of ‘c_eigen_dsmat_c_gemm’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_c.cpp:108:12: note: ‘c_eigen_dsmat_c_gemm’ was previously declared here
eigen_dsmat_c.cpp:108:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:98:8: warning: type of ‘c_eigen_dsmat_c_print’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_c.cpp:101:6: note: ‘c_eigen_dsmat_c_print’ was previously declared here
eigen_dsmat_c.cpp:101:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:97:18: warning: type of ‘c_eigen_dsmat_c_data’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_c.cpp:96:16: note: ‘c_eigen_dsmat_c_data’ was previously declared here
eigen_dsmat_c.cpp:96:16: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:96:8: warning: type of ‘c_eigen_dsmat_c_set’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_c.cpp:91:6: note: type mismatch in parameter 4
eigen_dsmat.h:18:34: note: type ‘struct c_dsmat_c_elt’ should match type ‘c_dsmat_c_elt’
lib/eigen_dsmat.h:27:26: note: the incompatible type is defined here
eigen_dsmat_c.cpp:91:6: note: ‘c_eigen_dsmat_c_set’ was previously declared here
eigen_dsmat_c.cpp:91:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:95:17: warning: type of ‘c_eigen_dsmat_c_get’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_c.cpp:85:15: note: return value type mismatch
eigen_dsmat.h:18:34: note: type ‘struct c_dsmat_c_elt’ should match type ‘c_dsmat_c_elt’
lib/eigen_dsmat.h:27:26: note: the incompatible type is defined here
eigen_dsmat_c.cpp:85:15: note: ‘c_eigen_dsmat_c_get’ was previously declared here
eigen_dsmat_c.cpp:85:15: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:94:9: warning: type of ‘c_eigen_dsmat_c_cols’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_c.cpp:80:7: note: ‘c_eigen_dsmat_c_cols’ was previously declared here
eigen_dsmat_c.cpp:80:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:93:9: warning: type of ‘c_eigen_dsmat_c_rows’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_c.cpp:75:7: note: ‘c_eigen_dsmat_c_rows’ was previously declared here
eigen_dsmat_c.cpp:75:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:92:21: warning: type of ‘c_eigen_dsmat_c_eye’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_c.cpp:68:12: note: ‘c_eigen_dsmat_c_eye’ was previously declared here
eigen_dsmat_c.cpp:68:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:91:21: warning: type of ‘c_eigen_dsmat_c_ones’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_c.cpp:62:12: note: ‘c_eigen_dsmat_c_ones’ was previously declared here
eigen_dsmat_c.cpp:62:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:90:21: warning: type of ‘c_eigen_dsmat_c_zeros’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_c.cpp:55:12: note: ‘c_eigen_dsmat_c_zeros’ was previously declared here
eigen_dsmat_c.cpp:55:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:89:8: warning: type of ‘c_eigen_dsmat_c_delete’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_c.cpp:50:6: note: ‘c_eigen_dsmat_c_delete’ was previously declared here
eigen_dsmat_c.cpp:50:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:88:21: warning: type of ‘c_eigen_dsmat_c_new’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_c.cpp:45:12: note: ‘c_eigen_dsmat_c_new’ was previously declared here
eigen_dsmat_c.cpp:45:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:81:21: warning: type of ‘c_eigen_dsmat_d_inv’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_d.cpp:147:12: note: ‘c_eigen_dsmat_d_inv’ was previously declared here
eigen_dsmat_d.cpp:147:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:76:21: warning: type of ‘c_eigen_dsmat_d_transpose’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_d.cpp:95:12: note: ‘c_eigen_dsmat_d_transpose’ was previously declared here
eigen_dsmat_d.cpp:95:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:75:21: warning: type of ‘c_eigen_dsmat_d_gemm’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_d.cpp:88:12: note: ‘c_eigen_dsmat_d_gemm’ was previously declared here
eigen_dsmat_d.cpp:88:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:73:8: warning: type of ‘c_eigen_dsmat_d_print’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_d.cpp:81:6: note: ‘c_eigen_dsmat_d_print’ was previously declared here
eigen_dsmat_d.cpp:81:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:72:16: warning: type of ‘c_eigen_dsmat_d_data’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_d.cpp:76:14: note: ‘c_eigen_dsmat_d_data’ was previously declared here
eigen_dsmat_d.cpp:76:14: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:71:8: warning: type of ‘c_eigen_dsmat_d_set’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_d.cpp:71:6: note: ‘c_eigen_dsmat_d_set’ was previously declared here
eigen_dsmat_d.cpp:71:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:70:15: warning: type of ‘c_eigen_dsmat_d_get’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_d.cpp:66:13: note: ‘c_eigen_dsmat_d_get’ was previously declared here
eigen_dsmat_d.cpp:66:13: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:69:9: warning: type of ‘c_eigen_dsmat_d_cols’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_d.cpp:61:7: note: ‘c_eigen_dsmat_d_cols’ was previously declared here
eigen_dsmat_d.cpp:61:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:68:9: warning: type of ‘c_eigen_dsmat_d_rows’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_d.cpp:56:7: note: ‘c_eigen_dsmat_d_rows’ was previously declared here
eigen_dsmat_d.cpp:56:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:67:21: warning: type of ‘c_eigen_dsmat_d_eye’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_d.cpp:49:12: note: ‘c_eigen_dsmat_d_eye’ was previously declared here
eigen_dsmat_d.cpp:49:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:66:21: warning: type of ‘c_eigen_dsmat_d_ones’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_d.cpp:43:12: note: ‘c_eigen_dsmat_d_ones’ was previously declared here
eigen_dsmat_d.cpp:43:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:65:21: warning: type of ‘c_eigen_dsmat_d_zeros’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_d.cpp:36:12: note: ‘c_eigen_dsmat_d_zeros’ was previously declared here
eigen_dsmat_d.cpp:36:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:64:8: warning: type of ‘c_eigen_dsmat_d_delete’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_d.cpp:31:6: note: ‘c_eigen_dsmat_d_delete’ was previously declared here
eigen_dsmat_d.cpp:31:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:63:21: warning: type of ‘c_eigen_dsmat_d_new’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_d.cpp:26:12: note: ‘c_eigen_dsmat_d_new’ was previously declared here
eigen_dsmat_d.cpp:26:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:56:21: warning: type of ‘c_eigen_dsmat_s_inv’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_s.cpp:159:12: note: ‘c_eigen_dsmat_s_inv’ was previously declared here
eigen_dsmat_s.cpp:159:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:51:21: warning: type of ‘c_eigen_dsmat_s_transpose’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_s.cpp:109:12: note: ‘c_eigen_dsmat_s_transpose’ was previously declared here
eigen_dsmat_s.cpp:109:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:50:21: warning: type of ‘c_eigen_dsmat_s_gemm’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_s.cpp:102:12: note: ‘c_eigen_dsmat_s_gemm’ was previously declared here
eigen_dsmat_s.cpp:102:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:48:8: warning: type of ‘c_eigen_dsmat_s_print’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_s.cpp:95:6: note: ‘c_eigen_dsmat_s_print’ was previously declared here
eigen_dsmat_s.cpp:95:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:47:8: warning: type of ‘c_eigen_dsmat_s_of_bigarray2’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_s.cpp:89:6: note: ‘c_eigen_dsmat_s_of_bigarray2’ was previously declared here
eigen_dsmat_s.cpp:89:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:46:21: warning: type of ‘c_eigen_dsmat_s_of_bigarray’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_s.cpp:82:12: note: ‘c_eigen_dsmat_s_of_bigarray’ was previously declared here
eigen_dsmat_s.cpp:82:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:45:16: warning: type of ‘c_eigen_dsmat_s_data’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_s.cpp:76:14: note: ‘c_eigen_dsmat_s_data’ was previously declared here
eigen_dsmat_s.cpp:76:14: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:44:8: warning: type of ‘c_eigen_dsmat_s_set’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_s.cpp:71:6: note: ‘c_eigen_dsmat_s_set’ was previously declared here
eigen_dsmat_s.cpp:71:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:43:15: warning: type of ‘c_eigen_dsmat_s_get’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_s.cpp:66:13: note: ‘c_eigen_dsmat_s_get’ was previously declared here
eigen_dsmat_s.cpp:66:13: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:42:9: warning: type of ‘c_eigen_dsmat_s_cols’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_s.cpp:61:7: note: ‘c_eigen_dsmat_s_cols’ was previously declared here
eigen_dsmat_s.cpp:61:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:41:9: warning: type of ‘c_eigen_dsmat_s_rows’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_s.cpp:56:7: note: ‘c_eigen_dsmat_s_rows’ was previously declared here
eigen_dsmat_s.cpp:56:7: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:40:21: warning: type of ‘c_eigen_dsmat_s_eye’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_s.cpp:49:12: note: ‘c_eigen_dsmat_s_eye’ was previously declared here
eigen_dsmat_s.cpp:49:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:39:21: warning: type of ‘c_eigen_dsmat_s_ones’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_s.cpp:43:12: note: ‘c_eigen_dsmat_s_ones’ was previously declared here
eigen_dsmat_s.cpp:43:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:38:21: warning: type of ‘c_eigen_dsmat_s_zeros’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_s.cpp:36:12: note: ‘c_eigen_dsmat_s_zeros’ was previously declared here
eigen_dsmat_s.cpp:36:12: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:37:8: warning: type of ‘c_eigen_dsmat_s_delete’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_s.cpp:31:6: note: ‘c_eigen_dsmat_s_delete’ was previously declared here
eigen_dsmat_s.cpp:31:6: note: code may be misoptimized unless -fno-strict-aliasing is used
lib/eigen_dsmat.h:36:21: warning: type of ‘c_eigen_dsmat_s_new’ does not match original declaration [-Wlto-type-mismatch]
eigen_dsmat_s.cpp:26:12: note: ‘c_eigen_dsmat_s_new’ was previously declared here
eigen_dsmat_s.cpp:26:12: note: code may be misoptimized unless -fno-strict-aliasing is used
In member function ‘__base_ctor ’,
    inlined from ‘reallocate’ at ./Eigen/src/SparseCore/CompressedStorage.h:234:38:
./Eigen/src/Core/util/Memory.h:589:13: warning: argument 1 value ‘18446744073709551615’ exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=]
./Eigen/src/Core/util/Memory.h: In member function ‘reallocate’:
/usr/include/c++/7/new:122:7: note: in a call to allocation function ‘operator new []’ declared here
 void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc)
       ^
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_391_LAPACKE_slagge':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:15413: undefined reference to `LAPACKE_slagge'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_392_LAPACKE_dlagge':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:15446: undefined reference to `LAPACKE_dlagge'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_393_LAPACKE_clagge':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:15479: undefined reference to `LAPACKE_clagge'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_394_LAPACKE_zlagge':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:15512: undefined reference to `LAPACKE_zlagge'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_429_LAPACKE_slatms':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:16509: undefined reference to `LAPACKE_slatms'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_430_LAPACKE_dlatms':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:16558: undefined reference to `LAPACKE_dlatms'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_431_LAPACKE_clatms':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:16607: undefined reference to `LAPACKE_clatms'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_432_LAPACKE_zlatms':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:16656: undefined reference to `LAPACKE_zlatms'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_923_LAPACKE_claghe':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:33633: undefined reference to `LAPACKE_claghe'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_924_LAPACKE_zlaghe':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:33661: undefined reference to `LAPACKE_zlaghe'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_925_LAPACKE_slagsy':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:33689: undefined reference to `LAPACKE_slagsy'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_926_LAPACKE_dlagsy':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:33717: undefined reference to `LAPACKE_dlagsy'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_927_LAPACKE_clagsy':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:33745: undefined reference to `LAPACKE_clagsy'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_928_LAPACKE_zlagsy':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:33773: undefined reference to `LAPACKE_zlagsy'
collect2: error: ld returned 1 exit status
File "caml_startup", line 1:
Error: Error during linking
Makefile:13: recipe for target 'build' failed
make: *** [build] Error 1
jzstark commented 5 years ago

This error is caused at linking with OpenBLAS library. I assume the libopenblas-dev liblapacke-dev libraries are both properly installed with apt-get and can be found by the system; and that the eigen library is also installed and can already be used in utop. This should be the one last issue before successful installation of Owl. Later tonight I'll try to find a RPi and reproduce this issue. I'll come back to you tomorrow. Sorry for the inconvenience.

Also, note that installing things in root and using sudo might change the system variables like PATH and LD_LIBRARY_PATH. Besides, sometimes run make cleanall and then make install again might be helpful.

abhi18av commented 5 years ago

I understand @jzstark and I'd also like to thank you for your pro-activeness here :)

I"m trying out the make cleanall approach and hoping for the best🤞

abhi18av commented 5 years ago

As for the other libraries, I've already installed them using the package manager

root@cub:~# apt install libopenblas-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libopenblas-dev is already the newest version (0.2.20+ds-4).
0 upgraded, 0 newly installed, 0 to remove and 145 not upgraded.
root@cub:~# apt install liblapacke-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
liblapacke-dev is already the newest version (3.7.1-4ubuntu1).
0 upgraded, 0 newly installed, 0 to remove and 145 not upgraded.
abhi18av commented 5 years ago

For the sake of documentation, I'm reproducing everything I did at this stage.

Warning, the logs are really verbose :)

Here's the gist

https://gist.github.com/abhi18av/1f0d7bf0512b9bacce39e7db07b1d939

jzstark commented 5 years ago

Thanks for the detailed information! It looks like that there is still issue installing eigen. The only possible solution I can now think of is to remove the flto flag when compiling eigen. Please see the updated Dockerfile. Of course, make cleanall before installation should do no harm.

Also, please note that in this Dockerfile, line 58 is specifically for RaspberryPi, so probably you don't need it.

Another possible source of issue is the -llapack flag in configuration. Please see #344 for detail. However, since you install those libraries with apt-get rather than from the OpenBLAS source code, I don't think it's a very likely cause.

Anyway, by following this Dockerfile, I build a ARM docker image, without being able reproduce this issue. So if the aforementioned solution still doesn't work, could you please kindly help to provide some software / hardware platform information so that I can further investigate it. Meanwhile, you can try the ARM docker image on you machine.

abhi18av commented 5 years ago

I followed through with your suggestions and I'm reproducing here the commands I entered and the response I recieved,

root@cub:~# cd /root && git clone https://github.com/ryanrhymes/eigen.git
Cloning into 'eigen'...
remote: Enumerating objects: 1795, done.
remote: Total 1795 (delta 0), reused 0 (delta 0), pack-reused 1795
Receiving objects: 100% (1795/1795), 2.06 MiB | 3.39 MiB/s, done.
Resolving deltas: 100% (935/935), done.
root@cub:~# sed -i -- 's/-march=native -mfpmath=sse/-march=native/g' $EIGENPATH/_oasis $EIGENPATH/lib/Makefile \
>     && sed -i -- 's/ar rvs/gcc-ar rvs/g' /root/eigen/lib/Makefile \
>     && sed -i -- 's/-flto/ /g' $EIGENPATH/lib/Makefile \
> && sed -i -- 's/-flto/ /g' $EIGENPATH/_oasis
root@cub:~# cd eigen/
root@cub:~/eigen# git status
On branch master
Your branch is up to date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   _oasis
        modified:   lib/Makefile

no changes added to commit (use "git add" and/or "git commit -a")
root@cub:~/eigen# eval $(opam config env) \
>     && make -C $EIGENPATH oasis \
> && make -C $EIGENPATH && make -C $EIGENPATH install
[WARNING] Running as root is not recommended
make: Entering directory '/root/eigen'
oasis setup
ocaml setup.ml -configure

Configuration:
ocamlfind: ........................................... /root/.opam/default/bin/ocamlfind
ocamlc: .............................................. /root/.opam/default/bin/ocamlc.opt
ocamlopt: ............................................ /root/.opam/default/bin/ocamlopt.opt
ocamlbuild: .......................................... /root/.opam/default/bin/ocamlbuild
Package name: ........................................ eigen
Package version: ..................................... 0.1
os_type: ............................................. Unix
system: .............................................. linux
architecture: ........................................ arm64
ccomp_type: .......................................... cc
ocaml_version: ....................................... 4.07.1
standard_library_default: ............................ /root/.opam/default/lib/ocaml
standard_library: .................................... /root/.opam/default/lib/ocaml
standard_runtime: .................................... /root/.opam/default/bin/ocamlrun
bytecomp_c_compiler: ................................. gcc -O2 -fno-strict-aliasing -fwrapv -fPIC -D_FILE_OFFSET_BITS=64 -D_REENTRANT
native_c_compiler: ................................... gcc -O2 -fno-strict-aliasing -fwrapv -D_FILE_OFFSET_BITS=64 -D_REENTRANT
model: ............................................... default
ext_obj: ............................................. .o
ext_asm: ............................................. .s
ext_lib: ............................................. .a
ext_dll: ............................................. .so
default_executable_name: ............................. a.out
systhread_supported: ................................. true
Install architecture-independent files dir: .......... /usr/local
Install architecture-dependent files in dir: ......... $prefix
User executables: .................................... $exec_prefix/bin
System admin executables: ............................ $exec_prefix/sbin
Program executables: ................................. $exec_prefix/libexec
Read-only single-machine data: ....................... $prefix/etc
Modifiable architecture-independent data: ............ $prefix/com
Modifiable single-machine data: ...................... $prefix/var
Object code libraries: ............................... $exec_prefix/lib
Read-only arch-independent data root: ................ $prefix/share
Read-only architecture-independent data: ............. $datarootdir
Info documentation: .................................. $datarootdir/info
Locale-dependent data: ............................... $datarootdir/locale
Man documentation: ................................... $datarootdir/man
Documentation root: .................................. $datarootdir/doc/$pkg_name
HTML documentation: .................................. $docdir
DVI documentation: ................................... $docdir
PDF documentation: ................................... $docdir
PS documentation: .................................... $docdir
findlib_version: ..................................... 1.8.0
is_native: ........................................... true
suffix_program: ......................................
Remove a file.: ...................................... rm -f
Remove a directory.: ................................. rm -rf
Turn ocaml debug flag on: ............................ true
Turn ocaml profile flag on: .......................... false
Compiler support generation of .cmxs.: ............... true
OCamlbuild additional flags: .........................
Create documentations: ............................... true
Compile tests executable and library and run them: ... false
pkg_ctypes: .......................................... /root/.opam/default/lib/ctypes
pkg_ctypes_stubs: .................................... /root/.opam/default/lib/ctypes

make: Leaving directory '/root/eigen'
make: Entering directory '/root/eigen'
ocaml setup.ml -build
make[1]: Entering directory '/root/eigen/lib'
g++ -O3 -std=c++11 -I. -I./unsupported/ -c -fPIC -ansi -Wno-extern-c-compat -Wno-c++11-long-long -Wno-invalid-partial-specialization -Ofast
-march=native -funroll-loops -ffast-math   eigen_tensor.cpp -o eigen_tensor.o
g++ -O3 -std=c++11 -I. -c -fPIC -ansi -Wno-extern-c-compat -Wno-c++11-long-long -Wno-invalid-partial-specialization -Ofast -march=native -funroll-loops -ffast-math   eigen_dsmat.cpp -o eigen_dsmat.o
g++ -O3 -std=c++11 -I. -c -fPIC -ansi -Wno-extern-c-compat -Wno-c++11-long-long -Wno-invalid-partial-specialization -Ofast -march=native -funroll-loops -ffast-math   eigen_spmat.cpp -o eigen_spmat.o
gcc-ar rvs libeigen.a eigen_dsmat.o eigen_spmat.o eigen_tensor.o
/usr/bin/ar: creating libeigen.a
a - eigen_dsmat.o
a - eigen_spmat.o
a - eigen_tensor.o
make[1]: Leaving directory '/root/eigen/lib'
make[1]: Entering directory '/root/eigen/lib'
rm -rf _build *.byte *.a *.o *.so *.cmo *.cmi
make[1]: Leaving directory '/root/eigen/lib'
/root/eigen
Finished, 1 target (0 cached) in 00:00:03.
Finished, 53 targets (0 cached) in 00:00:32.
Phew ... it is done!
make: Leaving directory '/root/eigen'
make: Entering directory '/root/eigen'
ocaml setup.ml -uninstall
ocaml setup.ml -install
Installed /root/.opam/default/lib/eigen/eigen.ml
Installed /root/.opam/default/lib/eigen/ffi_eigen_bindings.ml
Installed /root/.opam/default/lib/eigen/ffi_eigen_generated.ml
Installed /root/.opam/default/lib/eigen/eigen_types.ml
Installed /root/.opam/default/lib/eigen/eigen_utils.ml
Installed /root/.opam/default/lib/eigen/eigen_dsmat_s.ml
Installed /root/.opam/default/lib/eigen/eigen_dsmat_d.ml
Installed /root/.opam/default/lib/eigen/eigen_dsmat_c.ml
Installed /root/.opam/default/lib/eigen/eigen_dsmat_z.ml
Installed /root/.opam/default/lib/eigen/eigen_spmat_s.ml
Installed /root/.opam/default/lib/eigen/eigen_spmat_d.ml
Installed /root/.opam/default/lib/eigen/eigen_spmat_c.ml
Installed /root/.opam/default/lib/eigen/eigen_spmat_z.ml
Installed /root/.opam/default/lib/eigen/eigen_tensor_s.ml
Installed /root/.opam/default/lib/eigen/eigen_tensor_d.ml
Installed /root/.opam/default/lib/eigen/libeigen_stubs.a
Installed /root/.opam/default/lib/eigen/eigen.cma
Installed /root/.opam/default/lib/eigen/eigen.cmxa
Installed /root/.opam/default/lib/eigen/eigen.a
Installed /root/.opam/default/lib/eigen/eigen.cmxs
Installed /root/.opam/default/lib/eigen/eigen_tensor_d.cmi
Installed /root/.opam/default/lib/eigen/eigen_tensor_d.cmt
Installed /root/.opam/default/lib/eigen/eigen_tensor_d.annot
Installed /root/.opam/default/lib/eigen/eigen_tensor_s.cmi
Installed /root/.opam/default/lib/eigen/eigen_tensor_s.cmt
Installed /root/.opam/default/lib/eigen/eigen_tensor_s.annot
Installed /root/.opam/default/lib/eigen/eigen_spmat_z.cmi
Installed /root/.opam/default/lib/eigen/eigen_spmat_z.cmt
Installed /root/.opam/default/lib/eigen/eigen_spmat_z.annot
Installed /root/.opam/default/lib/eigen/eigen_spmat_c.cmi
Installed /root/.opam/default/lib/eigen/eigen_spmat_c.cmt
Installed /root/.opam/default/lib/eigen/eigen_spmat_c.annot
Installed /root/.opam/default/lib/eigen/eigen_spmat_d.cmi
Installed /root/.opam/default/lib/eigen/eigen_spmat_d.cmt
Installed /root/.opam/default/lib/eigen/eigen_spmat_d.annot
Installed /root/.opam/default/lib/eigen/eigen_spmat_s.cmi
Installed /root/.opam/default/lib/eigen/eigen_spmat_s.cmt
Installed /root/.opam/default/lib/eigen/eigen_spmat_s.annot
Installed /root/.opam/default/lib/eigen/eigen_dsmat_z.cmi
Installed /root/.opam/default/lib/eigen/eigen_dsmat_z.cmt
Installed /root/.opam/default/lib/eigen/eigen_dsmat_z.annot
Installed /root/.opam/default/lib/eigen/eigen_dsmat_c.cmi
Installed /root/.opam/default/lib/eigen/eigen_dsmat_c.cmt
Installed /root/.opam/default/lib/eigen/eigen_dsmat_c.annot
Installed /root/.opam/default/lib/eigen/eigen_dsmat_d.cmi
Installed /root/.opam/default/lib/eigen/eigen_dsmat_d.cmt
Installed /root/.opam/default/lib/eigen/eigen_dsmat_d.annot
Installed /root/.opam/default/lib/eigen/eigen_dsmat_s.cmi
Installed /root/.opam/default/lib/eigen/eigen_dsmat_s.cmt
Installed /root/.opam/default/lib/eigen/eigen_dsmat_s.annot
Installed /root/.opam/default/lib/eigen/eigen_utils.cmi
Installed /root/.opam/default/lib/eigen/eigen_utils.cmt
Installed /root/.opam/default/lib/eigen/eigen_utils.annot
Installed /root/.opam/default/lib/eigen/eigen_types.cmi
Installed /root/.opam/default/lib/eigen/eigen_types.cmt
Installed /root/.opam/default/lib/eigen/eigen_types.annot
Installed /root/.opam/default/lib/eigen/ffi_eigen_generated.cmi
Installed /root/.opam/default/lib/eigen/ffi_eigen_generated.cmt
Installed /root/.opam/default/lib/eigen/ffi_eigen_generated.annot
Installed /root/.opam/default/lib/eigen/ffi_eigen_bindings.cmi
Installed /root/.opam/default/lib/eigen/ffi_eigen_bindings.cmt
Installed /root/.opam/default/lib/eigen/ffi_eigen_bindings.annot
Installed /root/.opam/default/lib/eigen/eigen.cmi
Installed /root/.opam/default/lib/eigen/eigen.cmt
Installed /root/.opam/default/lib/eigen/eigen.annot
Installed /root/.opam/default/lib/eigen/eigen_tensor_d.cmx
Installed /root/.opam/default/lib/eigen/eigen_tensor_s.cmx
Installed /root/.opam/default/lib/eigen/eigen_spmat_z.cmx
Installed /root/.opam/default/lib/eigen/eigen_spmat_c.cmx
Installed /root/.opam/default/lib/eigen/eigen_spmat_d.cmx
Installed /root/.opam/default/lib/eigen/eigen_spmat_s.cmx
Installed /root/.opam/default/lib/eigen/eigen_dsmat_z.cmx
Installed /root/.opam/default/lib/eigen/eigen_dsmat_c.cmx
Installed /root/.opam/default/lib/eigen/eigen_dsmat_d.cmx
Installed /root/.opam/default/lib/eigen/eigen_dsmat_s.cmx
Installed /root/.opam/default/lib/eigen/eigen_utils.cmx
Installed /root/.opam/default/lib/eigen/eigen_types.cmx
Installed /root/.opam/default/lib/eigen/ffi_eigen_generated.cmx
Installed /root/.opam/default/lib/eigen/ffi_eigen_bindings.cmx
Installed /root/.opam/default/lib/eigen/eigen.cmx
Installed /root/.opam/default/lib/stublibs/dlleigen_stubs.so
Installed /root/.opam/default/lib/stublibs/dlleigen_stubs.so.owner
ocamlfind: [WARNING] You have installed DLLs but the directory /root/.opam/default/lib/stublibs is not mentioned in ld.conf
Installed /root/.opam/default/lib/eigen/META
make: Leaving directory '/root/eigen'
root@cub:~/eigen# cp $EIGENPATH/_build/include/libeigen.a /usr/local/lib 

root@cub:~# OWLPATH=/root/owl
root@cub:~# cd /root && git clone https://github.com/ryanrhymes/owl.git
Cloning into 'owl'...
remote: Enumerating objects: 38, done.
remote: Counting objects: 100% (38/38), done.
remote: Compressing objects: 100% (31/31), done.
remote: Total 33997 (delta 14), reused 13 (delta 7), pack-reused 33959
Receiving objects: 100% (33997/33997), 12.37 MiB | 6.92 MiB/s, done.
Resolving deltas: 100% (25491/25491), done. 
root@cub:~/owl# sed -i -- 's/-mfpmath=sse//g' $OWLPATH/src/owl/config/configure.ml \
> && sed -i -- 's/-msse2//g' $OWLPATH/src/owl/config/configure.ml
root@cub:~/owl# cd $OWLPATH     && eval `opam config env `     && make && make install
[WARNING] Running as root is not recommended
dune external-lib-deps --missing @install @runtest
dune build @install
      ocamlc bin/owl_bin_zoo.bc (exit 2)
(cd _build/default && /root/.opam/default/bin/ocamlc.opt -w @a-4-29-40-41-42-44-45-48-58-59-60-40 -strict-sequence -strict-formats -short-paths -keep-locs -safe-string -g -o bin/owl_bin_zoo.bc -linkall -I /root/.opam/default/lib/bytes -I /root/.opam/default/lib/ctypes -I /root/.opam/default/lib/eigen -I /root/.opam/default/lib/integers -I /root/.opam/default/lib/ocaml-compiler-libs/toplevel -I /root/.opam/default/lib/ocaml/compiler-libs -I /root/.opam/default/lib/plplot -I src/base -I src/owl -I src/zoo /root/.opam/default/lib/ocaml/unix.cma /root/.opam/default/lib/ocaml/bigarray.cma /root/.opam/default/lib/integers/integers.cma /root/.opam/default/lib/ctypes/ctypes.cma /root/.opam/default/lib/ocaml/str.cma /root/.opam/default/lib/ctypes/cstubs.cma /root/.opam/default/lib/eigen/eigen.cma src/base/owl_base.cma /root/.opam/default/lib/plplot/plplot.cma src/owl/owl.cma /root/.opam/default/lib/ocaml/compiler-libs/ocamlcommon.cma /root/.opam/default/lib/ocaml/compiler-libs/ocamlbytecomp.cma /root/.opam/default/lib/ocaml/compiler-libs/ocamltoplevel.cma /root/.opam/default/lib/ocaml-compiler-libs/toplevel/ocaml_toplevel.cma src/zoo/owl_zoo.cma bin/.owl_bin_zoo.eobjs/owl_bin_zoo.cmo)
File "_none_", line 1:
Error: Error on dynamically loaded library: ./src/owl/dllowl_stubs.so: ./src/owl/dllowl_stubs.so: undefined symbol: LAPACKE_dlagsy
    ocamlopt bin/owl_bin_viz.exe (exit 2)
(cd _build/default && /root/.opam/default/bin/ocamlopt.opt -w @a-4-29-40-41-42-44-45-48-58-59-60-40 -strict-sequence -strict-formats -short-paths -keep-locs -safe-string -g -o bin/owl_bin_viz.exe -linkall -I /root/.opam/default/lib/bytes -I /root/.opam/default/lib/ctypes -I /root/.opam/default/lib/eigen -I /root/.opam/default/lib/integers -I /root/.opam/default/lib/plplot -I src/base -I src/owl /root/.opam/default/lib/ocaml/unix.cmxa /root/.opam/default/lib/ocaml/bigarray.cmxa /root/.opam/default/lib/integers/integers.cmxa /root/.opam/default/lib/ctypes/ctypes.cmxa /root/.opam/default/lib/ocaml/str.cmxa /root/.opam/default/lib/ctypes/cstubs.cmxa /root/.opam/default/lib/eigen/eigen.cmxa src/base/owl_base.cmxa /root/.opam/default/lib/plplot/plplot.cmxa src/owl/owl.cmxa bin/.owl_bin_viz.eobjs/owl_bin_viz.cmx)
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_391_LAPACKE_slagge':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:15413: undefined reference to `LAPACKE_slagge'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_392_LAPACKE_dlagge':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:15446: undefined reference to `LAPACKE_dlagge'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_393_LAPACKE_clagge':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:15479: undefined reference to `LAPACKE_clagge'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_394_LAPACKE_zlagge':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:15512: undefined reference to `LAPACKE_zlagge'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_429_LAPACKE_slatms':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:16509: undefined reference to `LAPACKE_slatms'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_430_LAPACKE_dlatms':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:16558: undefined reference to `LAPACKE_dlatms'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_431_LAPACKE_clatms':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:16607: undefined reference to `LAPACKE_clatms'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_432_LAPACKE_zlatms':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:16656: undefined reference to `LAPACKE_zlatms'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_923_LAPACKE_claghe':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:33633: undefined reference to `LAPACKE_claghe'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_924_LAPACKE_zlaghe':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:33661: undefined reference to `LAPACKE_zlaghe'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_925_LAPACKE_slagsy':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:33689: undefined reference to `LAPACKE_slagsy'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_926_LAPACKE_dlagsy':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:33717: undefined reference to `LAPACKE_dlagsy'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_927_LAPACKE_clagsy':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:33745: undefined reference to `LAPACKE_clagsy'
src/owl/libowl_stubs.a(owl_lapacke_generated_stub.o): In function `owl_stub_928_LAPACKE_zlagsy':
/root/owl/_build/default/src/owl/src/owl/lapacke/owl_lapacke_generated_stub.c:33773: undefined reference to `LAPACKE_zlagsy'
collect2: error: ld returned 1 exit status
File "caml_startup", line 1:
Error: Error during linking
Makefile:13: recipe for target 'build' failed
make: *** [build] Error 1
root@cub:~/owl#                                               
abhi18av commented 5 years ago

I followed this guide here for the system information https://vitux.com/get-linux-system-and-hardware-details-on-the-command-line/

System informations

root@cub:~# uname -a
Linux cub 4.4.127-mainline-rev1 #1 SMP Sun Apr 8 10:44:07 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
root@cub:~# lshw
cub
    description: Computer
    product: KVM Virtual Machine
    vendor: QEMU
    version: 1.0
    width: 64 bits
    capabilities: smbios-3.0 dmi-3.0 smp cp15_barrier setend swp
    configuration: boot=normal
  *-core
       description: Motherboard
       physical id: 0
     *-cpu:0
          description: CPU
          vendor: QEMU
          physical id: 400
          bus info: cpu@0
          version: 1.0
          slot: CPU 0
          size: 2GHz
          capacity: 2GHz
          configuration: cores=1 enabledcores=1 threads=1
     *-cpu:1
          description: CPU
          vendor: QEMU
          physical id: 401
          bus info: cpu@1
          version: 1.0
          slot: CPU 1
          size: 2GHz
          capacity: 2GHz
          configuration: cores=1 enabledcores=1 threads=1
     *-cpu:2
          description: CPU
          vendor: QEMU
          physical id: 402
          bus info: cpu@2
          version: 1.0
          slot: CPU 2
          size: 2GHz
          capacity: 2GHz
          configuration: cores=1 enabledcores=1 threads=1
     *-cpu:3
          description: CPU
          vendor: QEMU
          physical id: 403
          bus info: cpu@3
          version: 1.0
          slot: CPU 3
          size: 2GHz
          capacity: 2GHz
          configuration: cores=1 enabledcores=1 threads=1
     *-memory
          description: System Memory
          physical id: 1000
          size: 2GiB
          capacity: 2GiB
          capabilities: ecc
          configuration: errordetection=multi-bit-ecc
        *-bank
             description: DIMM RAM
             vendor: QEMU
             physical id: 0
             slot: DIMM 0
             size: 2GiB
     *-firmware
          description: BIOS
          vendor: EFI Development Kit II / OVMF
          physical id: 0
          version: 0.0.0
          date: 02/06/2015
          size: 96KiB
          capabilities: uefi virtualmachine
     *-cpu:4 DISABLED
          description: CPU
          product: cpu
          physical id: 1
          bus info: cpu@0
     *-cpu:5 DISABLED
          description: CPU
          product: cpu
          physical id: 2
          bus info: cpu@1
     *-cpu:6 DISABLED
          description: CPU
          product: cpu
          physical id: 3
          bus info: cpu@2
     *-cpu:7 DISABLED
          description: CPU
          product: cpu
          physical id: 4
          bus info: cpu@3
     *-pci
          description: Host bridge
          product: Red Hat, Inc.
          vendor: Red Hat, Inc.
          physical id: 100
          bus info: pci@0000:00:00.0
          version: 00
          width: 32 bits
          clock: 33MHz
        *-network
             description: Ethernet controller
             product: Virtio network device
             vendor: Red Hat, Inc
             physical id: 1
             bus info: pci@0000:00:01.0
             version: 00
             width: 64 bits
             clock: 33MHz
             capabilities: msix bus_master cap_list rom
             configuration: driver=virtio-pci latency=0
             resources: irq:48 ioport:f040(size=32) memory:3ee09000-3ee09fff memory:3ee00000-3ee03fff memory:fffc0000-ffffffff
           *-virtio0
                description: Ethernet interface
                physical id: 0
                bus info: virtio@0
                logical name: enp0s1
                serial: de:19:88:09:00:01
                capabilities: ethernet physical
                configuration: broadcast=yes driver=virtio_net driverversion=1.0.0 ip=10.10.43.1 link=yes multicast=yes
        *-scsi
             description: SCSI storage controller
             product: Virtio block device
             vendor: Red Hat, Inc
             physical id: 2
             bus info: pci@0000:00:02.0
             version: 00
             width: 64 bits
             clock: 33MHz
             capabilities: scsi msix bus_master cap_list
             configuration: driver=virtio-pci latency=0
             resources: irq:49 ioport:f000(size=64) memory:3ee08000-3ee08fff memory:3ee04000-3ee07fff
           *-virtio1
                description: Virtual I/O device
                physical id: 0
                bus info: virtio@1
                logical name: /dev/vda
                size: 46GiB (50GB)
                capabilities: gpt-1.00 partitioned partitioned:gpt
                configuration: driver=virtio_blk guid=8cda79c8-9531-4fdb-acb1-a7a88051b273 logicalsectorsize=512 sectorsize=512
              *-volume:0
                   description: EXT4 volume
                   vendor: Linux
                   physical id: 1
                   bus info: virtio@1,1
                   logical name: /dev/vda1
                   logical name: /
                   version: 1.0
                   serial: 342f59d6-bd1e-47bd-b0a2-b79dd67e0254
                   size: 46GiB
                   capacity: 46GiB
                   capabilities: journaled extended_attributes large_files huge_files dir_nlink recover extents ext4 ext2 initialized
                   configuration: created=2018-07-03 13:30:10 filesystem=ext4 label=root lastmountpoint=/newroot modified=2019-01-27 06:18:28 mount.fstype=ext4 mount.options=rw,relatime,data=ordered mounted=2019-01-27 06:18:28 name=root state=mounted
              *-volume:1
                   description: Windows FAT volume
                   vendor: mkfs.fat
                   physical id: f
                   bus info: virtio@1,15
                   logical name: /dev/vda15
                   logical name: /boot/efi
                   version: FAT32
                   serial: a652-993e
                   size: 98MiB
                   capacity: 99MiB
                   capabilities: boot fat initialized
                   configuration: FATs=2 filesystem=fat mount.fstype=vfat mount.options=rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro name=efisystem state=mounted
  *-network
       description: Ethernet interface
       physical id: 1
       logical name: docker0
       serial: 02:42:09:c5:5a:61
       capabilities: ethernet physical
       configuration: broadcast=yes driver=bridge driverversion=2.3 firmware=N/A ip=172.17.0.1 link=no multicast=yes
root@cub:~# lscpu
Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  1
Core(s) per socket:  4
Socket(s):           1
Vendor ID:           Cavium
Model:               1
Model name:          ThunderX 88XX
Stepping:            0x1
BogoMIPS:            200.00
Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics
root@cub:~#
abhi18av commented 5 years ago

Also, I'm using the Scaleway - ARM64-v8 server for trying things out

mseri commented 5 years ago

@abhi18av eigen master branch and the current master branch of owl allow to override all the C and CPP flags by setting the right env variables (refer to owl and eigen's readmes for the names and the default values). Does this solve your issue?

ryanrhymes commented 5 years ago

The issue seems solved to me, closing it now. But feel free to reopen in case the issue is still there.

abhi18av commented 5 years ago

Hello @ryanrhymes and @mseri , I'll give it a go today.

abhi18av commented 5 years ago

Could you tell me which flags to override? I'm a bit lost at the moment, however my ARM server is all set to go.

mseri commented 5 years ago

Manually compile and install openblas if you are using ubuntu, it should go in /opt/OpenBlas by default I think.look where it imstalls the pkgconfig configuration, usually in “prefix/lib/pkgconfig” but you need to double check.

From the beginning of the discussion above i see that one issue was gcc: error: unrecognized command line option ‘-mfpmath=sse’, so I would say look on eigen and owl readmes the default flags and remove that option from them (and incrementally any other failing one).

Then run

opam remove eigen owl-base # add owl if it is also installed
opam update

PKG_CONFIG_PATH=/path/to/nnee/openblas/lib/pkgconfig \
EIGENCPP_OPTFLAGS=“your set of flags” \
EIGEN_FLAGS=“Your set of flags” \
OWL_CFLAGS=“your set of flags” \
opam install eigen owl owl-base
ryanrhymes commented 5 years ago

We probably need to dedicate one chapter in ocaml.xyz online doc to explain and demo the new installation demo process, this page is quite outdated now: http://ocaml.xyz/chapter/install.html

mseri commented 5 years ago

@abhi18av Can you check if what we do in https://github.com/owlbarn/owl/blob/master/docker/Dockerfile.ubuntu.arm is enough for the build to work?

If not we may also need to recompile openblas as done in https://github.com/owlbarn/owl/blob/master/docker/Dockerfile.ubuntu

abhi18av commented 5 years ago

Hi Marcello, please give me time till tomorrow and I shall check. This week turned out to be a busy one due to a family function.

Apologies for the delay.

From: Marcello Seri notifications@github.com Sent: sábado, 9 de março de 2019 13:07 To: owlbarn/owl owl@noreply.github.com Cc: Abhinav Sharma abhi18av@gmail.com; Mention mention@noreply.github.com Subject: Re: [owlbarn/owl] Unable to build owl on ARM v8 architecture (#354)

@abhi18av https://github.com/abhi18av Can you check if what we do in https://github.com/owlbarn/owl/blob/master/docker/Dockerfile.ubuntu.arm is enough for the build to work?

If not we may also need to recompile openblas as done in https://github.com/owlbarn/owl/blob/master/docker/Dockerfile.ubuntu

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/owlbarn/owl/issues/354#issuecomment-471195961 , or mute the thread https://github.com/notifications/unsubscribe-auth/AMNNXqEoo6rfnkvyog9oUvb0Qs9juSGBks5vU9wMgaJpZM4aUVIa .

mseri commented 5 years ago

@abhi18av Absolutely. Take your time, there is no hurry, don’t worry!