flr / FLash

The FLash package for fisheries forecasting
http://flr-project.org/FLash
0 stars 3 forks source link

Compilation error under linux 64 bit and R-mkl #3

Closed poldokim closed 8 years ago

poldokim commented 8 years ago

When I try to compile FLash packages I have this error:

R version 3.3.0 (2016-05-03) -- "Supposedly Educational" Copyright (C) 2016 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu (64-bit)

* installing *source* package ‘FLash’ ... ** libs g++ -I/usr/include/R/ -DNDEBUG -D_FORTIFY_SOURCE=2 -I../inst/include -fpic -O3 -m64 -I/opt/intel/composerxe/linux/mkl/include -c FLCoreClasses.cpp -o FLCoreClasses.o g++ -I/usr/include/R/ -DNDEBUG -D_FORTIFY_SOURCE=2 -I../inst/include -fpic -O3 -m64 -I/opt/intel/composerxe/linux/mkl/include -c FLashDLL.cpp -o FLashDLL.o FLashDLL.cpp: In function ‘SEXPREC* fwd_adolc_FLBiol(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP)’:

FLashDLL.cpp:83:14: error: cannot convert ‘bool’ to ‘SEXP {aka SEXPREC*}’ in return
       return false;
              ^~~~~

FLashDLL.cpp: In function ‘SEXPREC* fwd_adolc_FLBiols(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP)’:

FLashDLL.cpp:133:14: error: cannot convert ‘bool’ to ‘SEXP {aka SEXPREC*}’ in return
       return false;
              ^~~~~
FLashDLL.cpp:139:14: error: cannot convert ‘bool’ to ‘SEXP {aka SEXPREC*}’ in return
       return false;
              ^~~~~
/usr/lib64/R/etc/Makeconf:141: recipe for target 'FLashDLL.o' failed
make: *** [FLashDLL.o] Error 1

ERROR: compilation failed for package ‘FLash’

Do you have any suggestion?

iagomosqueira commented 8 years ago

Hi,

It compiles fine for me in Linux (Ubuntu 14.04) using gcc 4.8.4. What version of gcc do you have? (ggc -v)

---- On Thu, 09 Jun 2016 09:40:04 +0200 poldokim <notifications@github.com>wrote ----

When I try to compile FLash packages I have this error:

R version 3.3.0 (2016-05-03) -- "Supposedly Educational"

Copyright (C) 2016 The R Foundation for Statistical Computing

Platform: x86_64-pc-linux-gnu (64-bit)

FLashDLL.cpp:83:14: error: cannot convert ‘bool’ to ‘SEXP {aka SEXPREC}’ in return return false; ^~~~~ FLashDLL.cpp: In function ‘SEXPREC fwd_adolc_FLBiols(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP)’:

FLashDLL.cpp:133:14: error: cannot convert ‘bool’ to ‘SEXP {aka SEXPREC}’ in return return false; ^~~~~ FLashDLL.cpp:139:14: error: cannot convert ‘bool’ to ‘SEXP {aka SEXPREC}’ in return return false; ^~~~~ /usr/lib64/R/etc/Makeconf:141: recipe for target 'FLashDLL.o' failed make: *\ [FLashDLL.o] Error 1 ERROR: compilation failed for package ‘FLash’

Do you have any suggestion?

You are receiving this because you are subscribed to this thread.

Reply to this email directly, view it on GitHub, or mute the thread.

poldokim commented 8 years ago

$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/6.1.1/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: /build/gcc/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --disable-multilib --disable-werror --enable-checking=release Thread model: posix gcc version 6.1.1 20160501 (GCC) But R was compiled with Intel MKL (to increase computational speed)

iagomosqueira commented 8 years ago

I haven't tried compiling with MKL or the latest gcc. We use the same versions as R uses to ensure compatibility.

We are moving to a new version of FLash, currently in alpha but already compiling. Repository is at

https://github.com/iagomosqueira/FLasher

It is based on Rcpp and cppAD, so it should have less problems compiling across platforms and compilers. It does work with both gcc 4.8.4 and clang.

Do let us know if you try compiling it. It is still missing a few bits in the R side and a complete example, but should be there in a little while.

On 09/06/16 14:51, poldokim wrote:

$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/6.1.1/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: /build/gcc/src/gcc/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --enable-libmpx --with-system-zlib --with-isl --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --disable-libssp --enable-gnu-unique-object --enable-linker-build-id --enable-lto --enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu --enable-gnu-indirect-function --disable-multilib --disable-werror --enable-checking=release Thread model: posix gcc version 6.1.1 20160501 (GCC) But R was compiled with Intel MKL (to increase computational speed)


You are receiving this because you commented. Reply to this email directly or view it on GitHub: https://github.com/flr/FLash/issues/3#issuecomment-224884935

iagomosqueira commented 8 years ago

Forgot to add, you will need specific versions of both FLCore and FLFishery

library(devtools) install_github("iagomosqueira/FLFishery") install_github("flr/FLCore", ref="NewFLBiol")

poldokim commented 8 years ago

Thanks a lot! New libraries compiles fine!

iagomosqueira commented 8 years ago

Good to know. It is still missing functionality, but it is progressing fairly quickly.

On 13/06/16 09:07, poldokim wrote:

Thanks a lot! New libraries compiles fine!


You are receiving this because you commented. Reply to this email directly or view it on GitHub: https://github.com/flr/FLash/issues/3#issuecomment-225503880

slarge commented 8 years ago

Trying to get FLash(er) to compile on my x86-64 Windows 7 machine. I have used the following approach (from above)

library(devtools) install_github("iagomosqueira/FLFishery") install_github("flr/FLCore", ref="NewFLBiol") install_github("iagomosqueira/FLasher")

FLFishery loads without issue. FLCore yields the following error: Error in stop(github_error(request)) : 404: Not Found (404)

FLasher strikes out with the following error: make: *\ [FLCatch.o] Error 1 Warning: running command 'make -f "Makevars.win" -f "C:/PROGRA~1/R/R-33~1.1/etc/i386/Makeconf" -f "C:/PROGRA~1/R/R-33~1.1/share/make/winshlib.mk" CXX='$(CXX1X) $(CXX1XSTD)' CXXFLAGS='$(CXX1XFLAGS)' CXXPICFLAGS='$(CXX1XPICFLAGS)' SHLIB_LDFLAGS='$(SHLIB_CXX1XLDFLAGS)' SHLIB_LD='$(SHLIB_CXX1XLD)' SHLIB="FLasher.dll" OBJECTS="FLCatch.o FLFishery.o FLQuant_base.o FLQuant_multidim.o FLStock.o RcppExports.o fwdBiol.o fwdControl.o fwdSR.o operating_model.o rcpp_hello_world.o solver.o tests_FLCatch.o tests_FLFishery.o tests_FLQuant.o tests_FLQuantAD.o tests_FLQuant_multidim.o tests_FLStock.o tests_arithmetic_operators.o tests_fwdBiol.o tests_fwdControl.o tests_fwdSR.o tests_operatingModel.o tests_profiling.o tests_solver.o"' had status 2 ERROR: compilation failed for package 'FLasher'

FLash strikes out, too, but I assume it has something to do with the Windows 7 x64.

Suggestions on how to continue?

iagomosqueira commented 8 years ago

The new FLBiol class is now on master, so you will need to do

library(devtools)
install_github("flr/FLCore")
install_github("iagomosqueira/FLFishery")
install_github("iagomosqueira/FLasher")

which works here (R 3.3.1 on Linux, gcc version 4.8.4.

FLash only works on 32 bit, due to the old version of Adol-C. We are not upgrading it and have moved to develop FLasher instead.

I won't be able to test on a Windows 7 machine until later in the week. To make sure we try on the same setup, what version of Rtools are you using?

slarge commented 8 years ago

Just tried your suggestion. FLCore and FLFishery load without issue. FLasher still fails. I'm using RTools34. Perhaps the following output is useful.

Sys.getenv()['PATH'] PATH C:\Program Files\R\R-3.3.1\bin\x64;C:\RBuildTools\3.3\bin;C:\RBuildTools\3.3\mingw_32\bin;C:\Program Files\Broadcom\Broadcom 802.11;C:\ProgramData\Oracle\Java\javapath;c:\Program Files (x86)\Intel\iCLS Client\;c:\Program Files\Intel\iCLS Client\;C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WindowsPowerShell\v1.0...

Sys.which("gcc.exe") gcc.exe "C:\RBUILD~1\3.3\mingw_32\bin\gcc.exe"

system('g++ -v') Thread model: posix gcc version 4.9.3 (i686-posix-dwarf, Built by MinGW-W64 project)

iagomosqueira commented 8 years ago

Thanks. I can test this tomorrow. Last time I tried with Rtools 3.4 it did compile and load.

On 06/09/16 13:28, Scott Large wrote:

Just tried your suggestion. FLCore and FLFishery load without issue. FLasher still fails. I'm using RTools34. Perhaps the following output is useful.

Sys.getenv()['PATH'] PATH C:\Program Files\R\R-3.3.1\bin\x64;C:\RBuildTools\3.3\bin;C:\RBuildTools\3.3\mingw_32\bin;C:\Program Files\Broadcom\Broadcom 802.11;C:\ProgramData\Oracle\Java\javapath;c:\Program Files (x86)\Intel\iCLS Client\;c:\Program Files\Intel\iCLS Client\;C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WindowsPowerShell\v1.0...

Sys.which("gcc.exe") gcc.exe "C:\RBUILD~1\3.3\mingw_32\bin\gcc.exe"

system('g++ -v') Thread model: posix gcc version 4.9.3 (i686-posix-dwarf, Built by MinGW-W64 project)

iagomosqueira commented 8 years ago

This issue was moved to iagomosqueira/FLasher#51