Open rsbivand opened 3 years ago
The error is:
/usr/bin/ld: final link failed: memory exhausted
I am afraid that no much I can help.
@zhengxwen : No it is not a memory exhaustion failure. On a PC with 16GB, memory usage never passed 4GB running R CMD check with only system processes running other than the R check processes. I suspect this is the first sign of issues with gcc 11.1.1 with the new use of -std=gnu++14
in R 4.1.0. Run up a docker container with R 4.1 and Fedora 34, and see whether you maybe need to override something, or adapt to more modern compiler options. Not using configure
to copy values into Makevars
seems worrying. Do you know that all of the assignments in Makevars
also work for CXX14?
Fedora 33 has gcc 10.3.1 on another of my systems. For R 4.0.5, R CMD config CXX
says g++ -std=gnu++11
, while for R 4.1.0, it says g++ -std=gnu++14
. With Fedora 34 having gcc 11.1.1, there are two important build train changes. I suspect that your unprotected ${CXX} in Makevars
may be vulnerable. The package installs correctly with R 4.0.5 and gcc 10.3.1. It is clear that your package cannot be installed with gcc 11.1.1 and R 4.1.0.
Negating -g
in ~/.R/Makevars
can avoid the problem /usr/bin/ld: final link failed: memory exhausted
.
Dear zhengxwen, I am having the same problem as described above. What do you mean by 'negating -g in ~/.R/Makevars'? Thanks a lot, Tomas
gdsfmt_1.29.1 (devel) and gdsfmt_1.28.1 (release) could avoid the problem /usr/bin/ld: final link failed: memory exhausted
. Please install these versions if you are not sure 'negating -g'.
Great, 1.28.1 works, thank you
The package fails to install on Fedora 34 with gcc/g++ 11.1.1 and R 4.1.0. Attached check log and zipped install outfile: 00check.log 00install.zip I do not use or need the package, but it is used by a package that I check regularly in a reverse dependency chain (I haven't identified which). I simply did BiocManager::install(version="3.13", force=TRUE), and gdsfmt was the only failure. I wonder whether bundling libraries is such a good idea when a simple configure.ac might find installed copies that probably worked.