Skip to content
New issue

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

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

Already on GitHub? # to your account

INSTALL fails on F34 with R 4.1.0 #32

Open
rsbivand opened this issue May 18, 2021 · 7 comments
Open

INSTALL fails on F34 with R 4.1.0 #32

rsbivand opened this issue May 18, 2021 · 7 comments

Comments

@rsbivand
Copy link

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

The error is:

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

I am afraid that no much I can help.

@rsbivand
Copy link
Author

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

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

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

@tomas-fer
Copy link

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

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

Great, 1.28.1 works, thank you

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

No branches or pull requests

3 participants