On Fri, 17 Jul 2020 11:25:40 +0200 Fabio Sigrist <fabiosigr...@gmail.com> wrote:
> Found '_exit', possibly from '_exit' (C) > Found 'abort', possibly from 'abort' (C), 'runtime' (Fortran) > Found 'exit', possibly from 'exit' (C), 'stop' (Fortran) > Found 'printf', possibly from 'printf' (C) A curious thing is that it seems to only happen on Windows. I tried searching objdump -D output for the offending functions by means of a Perl5 one-liner [1] and found that the functions are all called by various bits of libgcc, OpenMP, C and C++ runtimes. This is probably caused by linking your R package with -static-libstdc++ (which is set in CMakeLists.txt if(WIN32 AND MINGW)). > Note that the shared library is compiled using install.libs.R (this > is a deliberate choice) Some of the things it does aren't very portable (e.g. manually setting most -W flags is discouraged). In particular, I had to manually remove -Wno-error=cast-function-type from CMakeLists.txt to build the package with GCC 6.3.0-18+deb9u1, despite it passing the version check (>=4.8.2). -- Best regards, Ivan [1] objdump -D lib_gpboost.dll | \ perl -lnE' $fn = $1 if /^[0-9a-f]+ +<([^>]+)>:/; say $fn if /call.*<\Q$call\E/ ' -s -- -call=abort | c++filt ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel