Dirk Eddelbuettel
2021-Dec-20 14:19 UTC
[R-sig-Debian] Cpp Error installing CRAN version of MatrixExtra on Ubuntu 18.04
On 19 December 2021 at 18:14, David Winsemius wrote: | I initially attempted installation of pkg:MatrixExtra with | `install.packages on my Ubuntu 18.04 LTS system from within RStudio. It | failed with an error attempting to compile a function named "matmul.cpp" | so I tried running R from a Terminal session. Same error. Finally I Well yes. Same system, same compiler and same R. Can you remind me what gcc --version says on Ubuntu 18.04. It could be that the g++ version may be too old for current coding practices. You may have to expect such errors to occur more frequently on ancient system. Some of us have started to ship packages using C++14 (which is actually R's default in R 4.1.0 and later unless overridden to C++11 or lower) and even C++17. Or it could be something else. See below. | downloaded from CRAN and this is the session result of an effort with R | CMD INSTALL: | | (The name of my library is a historical accident, but I'm running R | version 4.1.2 (2021-11-01) -- "Bird Hippie" and almost all of my other You say R 4.1.2 but we see R 3.5.1 below !! | 1536 packages have been updated without reported errors using | `update.packages(checkBuilt=TRUE)` | | =====================================| | david at davids:/usr/lib/R$ R CMD INSTALL ~/MatrixExtra_0.1.9.tar.gz | * installing to library ?/home/david/R/x86_64-pc-linux-gnu-library/3.5.1? That is very suspicious. Why R/x86_64_pc-linux-gnu-library/3.5.1 ? That looks like an error. There _was_ a change from R before 4.0 to 4.0. As I recall you need to rebuild everything for R 4.0.* or R 4.1.*. | * installing *source* package ?MatrixExtra? ... | ** package ?MatrixExtra? successfully unpacked and MD5 sums checked | ** using staged installation | checking for g++... g++ | checking whether the C++ compiler works... yes | checking for C++ compiler default output file name... a.out | checking for suffix of executables... | checking whether we are cross compiling... no | checking for suffix of object files... o | checking whether the compiler supports GNU C++... yes | checking whether g++ accepts -g... yes | checking for g++ option to enable C++11 features... none needed So far it is happy with C++11. | configure: creating ./config.status | config.status: creating src/Makevars | ** libs | g++ -std=gnu++11 -I"/usr/share/R/include" -DNDEBUG -DUSE_ROBINMAP | -DHAS_LD=1 -DSUPPORTS_RESTRICT=1 | -I'/home/david/R/x86_64-pc-linux-gnu-library/3.5.1/Rcpp/include' | -I'/home/david/R/x86_64-pc-linux-gnu-library/3.5.1/float/include' | -fopenmp -fno-trapping-math -fno-math-errno -fvisibility=hidden -fpic? | -g -O2 -fdebug-prefix-map=/build/r-base-J7pprH/r-base-4.1.2=. | -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time | -D_FORTIFY_SOURCE=2 -g? -Wno-ignored-attributes -c RcppExports.cpp -o | RcppExports.o And uses C++11 | g++ -std=gnu++11 -I"/usr/share/R/include" -DNDEBUG -DUSE_ROBINMAP | -DHAS_LD=1 -DSUPPORTS_RESTRICT=1 | -I'/home/david/R/x86_64-pc-linux-gnu-library/3.5.1/Rcpp/include' | -I'/home/david/R/x86_64-pc-linux-gnu-library/3.5.1/float/include' | -fopenmp -fno-trapping-math -fno-math-errno -fvisibility=hidden -fpic? | -g -O2 -fdebug-prefix-map=/build/r-base-J7pprH/r-base-4.1.2=. | -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time | -D_FORTIFY_SOURCE=2 -g? -Wno-ignored-attributes -c assignment.cpp -o | assignment.o | g++ -std=gnu++11 -I"/usr/share/R/include" -DNDEBUG -DUSE_ROBINMAP | -DHAS_LD=1 -DSUPPORTS_RESTRICT=1 | -I'/home/david/R/x86_64-pc-linux-gnu-library/3.5.1/Rcpp/include' | -I'/home/david/R/x86_64-pc-linux-gnu-library/3.5.1/float/include' | -fopenmp -fno-trapping-math -fno-math-errno -fvisibility=hidden -fpic? | -g -O2 -fdebug-prefix-map=/build/r-base-J7pprH/r-base-4.1.2=. | -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time | -D_FORTIFY_SOURCE=2 -g? -Wno-ignored-attributes -c cbind.cpp -o cbind.o | g++ -std=gnu++11 -I"/usr/share/R/include" -DNDEBUG -DUSE_ROBINMAP | -DHAS_LD=1 -DSUPPORTS_RESTRICT=1 | -I'/home/david/R/x86_64-pc-linux-gnu-library/3.5.1/Rcpp/include' | -I'/home/david/R/x86_64-pc-linux-gnu-library/3.5.1/float/include' | -fopenmp -fno-trapping-math -fno-math-errno -fvisibility=hidden -fpic? | -g -O2 -fdebug-prefix-map=/build/r-base-J7pprH/r-base-4.1.2=. | -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time | -D_FORTIFY_SOURCE=2 -g? -Wno-ignored-attributes -c matmul.cpp -o matmul.o | matmul.cpp: In function ?void gemm_csr_drm_as_dcm(int, int, const int*, | const int*, const double*, const real_t*, size_t, real_t*, int, int)?: | matmul.cpp:137:41: error: ?ldc? is predetermined ?shared? for ?shared? | ???????????? private(write_ptr, temp_arr) | ???????????????????????????????????????? ^ | /usr/lib/R/etc/Makeconf:177: recipe for target 'matmul.o' failed | make: *** [matmul.o] Error 1 | ERROR: compilation failed for package ?MatrixExtra? | * removing ?/home/david/R/x86_64-pc-linux-gnu-library/3.5.1/MatrixExtra? I have never seen that error. No idea. But again the '3.5.1' seems out of whack with your use of R 4.1.2. Dirk | =======from an R console session=============================| | > sessionInfo() | R version 4.1.2 (2021-11-01) | Platform: x86_64-pc-linux-gnu (64-bit) | Running under: Ubuntu 18.04.5 LTS | | Matrix products: default | BLAS:?? /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3 | LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.2.20.so | | locale: | ?[1] LC_CTYPE=en_US.UTF-8?????? LC_NUMERIC=C | ?[3] LC_TIME=en_US.UTF-8??????? LC_COLLATE=en_US.UTF-8 | ?[5] LC_MONETARY=en_US.UTF-8??? LC_MESSAGES=en_US.UTF-8 | ?[7] LC_PAPER=en_US.UTF-8?????? LC_NAME=C | ?[9] LC_ADDRESS=C?????????????? LC_TELEPHONE=C | [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C | | attached base packages: | [1] stats???? graphics? grDevices utils???? datasets? methods base | | loaded via a namespace (and not attached): | [1] compiler_4.1.2 | | Thanks for any suggestions. | | David Winsemius | | _______________________________________________ | R-SIG-Debian mailing list | R-SIG-Debian at r-project.org | https://stat.ethz.ch/mailman/listinfo/r-sig-debian -- https://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
Sebastian Meyer
2021-Dec-20 14:48 UTC
[R-sig-Debian] Cpp Error installing CRAN version of MatrixExtra on Ubuntu 18.04
Am 20.12.21 um 15:19 schrieb Dirk Eddelbuettel:> > On 19 December 2021 at 18:14, David Winsemius wrote: > | I initially attempted installation of pkg:MatrixExtra with > | `install.packages on my Ubuntu 18.04 LTS system from within RStudio. It > | failed with an error attempting to compile a function named "matmul.cpp" > | so I tried running R from a Terminal session. Same error. Finally I > > Well yes. Same system, same compiler and same R. Can you remind me what > > gcc --version > > says on Ubuntu 18.04.gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0 FWIW, "MatrixExtra" installs without problems for me on "ancient"> R version 4.1.2 (2021-11-01) > Platform: x86_64-pc-linux-gnu (64-bit) > Running under: Ubuntu 18.04.6 LTS > > Matrix products: default > BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1 > LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.7.1I see openblas in your sessionInfo(). Could that be a problem? Best wishes, Sebastian Meyer> It could be that the g++ version may be too old for > current coding practices. You may have to expect such errors to occur more > frequently on ancient system. Some of us have started to ship packages using > C++14 (which is actually R's default in R 4.1.0 and later unless overridden > to C++11 or lower) and even C++17. Or it could be something else. See below. > > | downloaded from CRAN and this is the session result of an effort with R > | CMD INSTALL: > | > | (The name of my library is a historical accident, but I'm running R > | version 4.1.2 (2021-11-01) -- "Bird Hippie" and almost all of my other > > You say R 4.1.2 but we see R 3.5.1 below !! > > | 1536 packages have been updated without reported errors using > | `update.packages(checkBuilt=TRUE)` > | > | =====================================> | > | david at davids:/usr/lib/R$ R CMD INSTALL ~/MatrixExtra_0.1.9.tar.gz > | * installing to library ?/home/david/R/x86_64-pc-linux-gnu-library/3.5.1? > > That is very suspicious. Why R/x86_64_pc-linux-gnu-library/3.5.1 ? > > That looks like an error. There _was_ a change from R before 4.0 to 4.0. > As I recall you need to rebuild everything for R 4.0.* or R 4.1.*. > > | * installing *source* package ?MatrixExtra? ... > | ** package ?MatrixExtra? successfully unpacked and MD5 sums checked > | ** using staged installation > | checking for g++... g++ > | checking whether the C++ compiler works... yes > | checking for C++ compiler default output file name... a.out > | checking for suffix of executables... > | checking whether we are cross compiling... no > | checking for suffix of object files... o > | checking whether the compiler supports GNU C++... yes > | checking whether g++ accepts -g... yes > | checking for g++ option to enable C++11 features... none needed > > So far it is happy with C++11. > > | configure: creating ./config.status > | config.status: creating src/Makevars > | ** libs > | g++ -std=gnu++11 -I"/usr/share/R/include" -DNDEBUG -DUSE_ROBINMAP > | -DHAS_LD=1 -DSUPPORTS_RESTRICT=1 > | -I'/home/david/R/x86_64-pc-linux-gnu-library/3.5.1/Rcpp/include' > | -I'/home/david/R/x86_64-pc-linux-gnu-library/3.5.1/float/include' > | -fopenmp -fno-trapping-math -fno-math-errno -fvisibility=hidden -fpic > | -g -O2 -fdebug-prefix-map=/build/r-base-J7pprH/r-base-4.1.2=. > | -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time > | -D_FORTIFY_SOURCE=2 -g? -Wno-ignored-attributes -c RcppExports.cpp -o > | RcppExports.o > > And uses C++11 > > | g++ -std=gnu++11 -I"/usr/share/R/include" -DNDEBUG -DUSE_ROBINMAP > | -DHAS_LD=1 -DSUPPORTS_RESTRICT=1 > | -I'/home/david/R/x86_64-pc-linux-gnu-library/3.5.1/Rcpp/include' > | -I'/home/david/R/x86_64-pc-linux-gnu-library/3.5.1/float/include' > | -fopenmp -fno-trapping-math -fno-math-errno -fvisibility=hidden -fpic > | -g -O2 -fdebug-prefix-map=/build/r-base-J7pprH/r-base-4.1.2=. > | -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time > | -D_FORTIFY_SOURCE=2 -g? -Wno-ignored-attributes -c assignment.cpp -o > | assignment.o > | g++ -std=gnu++11 -I"/usr/share/R/include" -DNDEBUG -DUSE_ROBINMAP > | -DHAS_LD=1 -DSUPPORTS_RESTRICT=1 > | -I'/home/david/R/x86_64-pc-linux-gnu-library/3.5.1/Rcpp/include' > | -I'/home/david/R/x86_64-pc-linux-gnu-library/3.5.1/float/include' > | -fopenmp -fno-trapping-math -fno-math-errno -fvisibility=hidden -fpic > | -g -O2 -fdebug-prefix-map=/build/r-base-J7pprH/r-base-4.1.2=. > | -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time > | -D_FORTIFY_SOURCE=2 -g? -Wno-ignored-attributes -c cbind.cpp -o cbind.o > | g++ -std=gnu++11 -I"/usr/share/R/include" -DNDEBUG -DUSE_ROBINMAP > | -DHAS_LD=1 -DSUPPORTS_RESTRICT=1 > | -I'/home/david/R/x86_64-pc-linux-gnu-library/3.5.1/Rcpp/include' > | -I'/home/david/R/x86_64-pc-linux-gnu-library/3.5.1/float/include' > | -fopenmp -fno-trapping-math -fno-math-errno -fvisibility=hidden -fpic > | -g -O2 -fdebug-prefix-map=/build/r-base-J7pprH/r-base-4.1.2=. > | -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time > | -D_FORTIFY_SOURCE=2 -g? -Wno-ignored-attributes -c matmul.cpp -o matmul.o > | matmul.cpp: In function ?void gemm_csr_drm_as_dcm(int, int, const int*, > | const int*, const double*, const real_t*, size_t, real_t*, int, int)?: > | matmul.cpp:137:41: error: ?ldc? is predetermined ?shared? for ?shared? > | ???????????? private(write_ptr, temp_arr) > | ???????????????????????????????????????? ^ > | /usr/lib/R/etc/Makeconf:177: recipe for target 'matmul.o' failed > | make: *** [matmul.o] Error 1 > | ERROR: compilation failed for package ?MatrixExtra? > | * removing ?/home/david/R/x86_64-pc-linux-gnu-library/3.5.1/MatrixExtra? > > I have never seen that error. No idea. > > But again the '3.5.1' seems out of whack with your use of R 4.1.2. > > Dirk > > > | =======from an R console session=============================> | > | > sessionInfo() > | R version 4.1.2 (2021-11-01) > | Platform: x86_64-pc-linux-gnu (64-bit) > | Running under: Ubuntu 18.04.5 LTS > | > | Matrix products: default > | BLAS:?? /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3 > | LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.2.20.so > | > | locale: > | ?[1] LC_CTYPE=en_US.UTF-8?????? LC_NUMERIC=C > | ?[3] LC_TIME=en_US.UTF-8??????? LC_COLLATE=en_US.UTF-8 > | ?[5] LC_MONETARY=en_US.UTF-8??? LC_MESSAGES=en_US.UTF-8 > | ?[7] LC_PAPER=en_US.UTF-8?????? LC_NAME=C > | ?[9] LC_ADDRESS=C?????????????? LC_TELEPHONE=C > | [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C > | > | attached base packages: > | [1] stats???? graphics? grDevices utils???? datasets? methods base > | > | loaded via a namespace (and not attached): > | [1] compiler_4.1.2 > | > | Thanks for any suggestions. > | > | David Winsemius > | > | _______________________________________________ > | R-SIG-Debian mailing list > | R-SIG-Debian at r-project.org > | https://stat.ethz.ch/mailman/listinfo/r-sig-debian >