zhengxwen / gdsfmt

R Interface to CoreArray Genomic Data Structure (GDS) Files (Development version only)
http://www.bioconductor.org/packages/gdsfmt
18 stars 4 forks source link

INSTALL fails on F34 with R 4.1.0 #32

Open rsbivand opened 3 years ago

rsbivand commented 3 years ago

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.

zhengxwen commented 3 years ago

The error is:

/usr/bin/ld: final link failed: memory exhausted

I am afraid that no much I can help.

rsbivand commented 3 years ago

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

rsbivand commented 3 years ago

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.

zhengxwen commented 3 years ago

Negating -g in ~/.R/Makevars can avoid the problem /usr/bin/ld: final link failed: memory exhausted.

tomas-fer commented 3 years ago

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

zhengxwen commented 3 years ago

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'.

tomas-fer commented 3 years ago

Great, 1.28.1 works, thank you