Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
poldokim opened this issue Jun 9, 2016 · 11 comments
Closed

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

poldokim opened this issue Jun 9, 2016 · 11 comments

Comments

@poldokim
Copy link

poldokim commented Jun 9, 2016

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
Copy link
Member

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)

  • 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?

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
Copy link
Author

poldokim commented Jun 9, 2016

$ 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
Copy link
Member

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:
#3 (comment)

@iagomosqueira
Copy link
Member

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
Copy link
Author

Thanks a lot! New libraries compiles fine!

@iagomosqueira
Copy link
Member

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:
#3 (comment)

@slarge
Copy link

slarge commented Sep 5, 2016

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:/PROGRA1/R/R-331.1/etc/i386/Makeconf" -f "C:/PROGRA1/R/R-331.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
Copy link
Member

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
Copy link

slarge commented Sep 6, 2016

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
Copy link
Member

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
Copy link
Member

This issue was moved to flr/FLasher#51

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants