[R-sig-Debian] Ubuntu 16.10 Yakkety Yak uses GCC 6 but -std=c++98 is missing

Dirk Eddelbuettel edd at debian.org
Sat Nov 12 03:01:38 CET 2016


On 11 November 2016 at 23:48, Kirill Müller wrote:
| After upgrading to Ubuntu 16.10, which brings GCC 6, I've noticed that 
| packages are compiled in C++14 mode by default. Here's what a g++ 
| command for compiling one of Rcpp's modules look like on my system:
| 
| g++ -I/usr/share/R/include -DNDEBUG -I../inst/include/     -fpic  -g -O2 
| -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time 
| -D_FORTIFY_SOURCE=2 -g  -c barrier.cpp -o barrier.o
| 
| According to GCC news [1], the default is now C++14 if no -std is given. 
| R-admin suggests adapting the configuration for GCC 6 [2].
| 
| I'm using r-base-core in version 3.3.2-1xenial0 from the Ubuntu repo 
| [3]. Please advise.

Hm. We had g++-6.* (which does indeed default to C++14) in Debian unstable
for a while now, without problems.

This issue _may_ be fixable by rebuilding r-base-core, but then it would have
been needed for Debian too. Not sure.

This may be an Ubuntu-lagging-Debian issue because we may be rebuilding more
consistently in Debian whereas Ubuntu thinks that R is built with gcc-5 (as
it was) but is now used with gcc-6. Ooops.

You _could_ try idea this by editing /etc/R/Makeconf and inserting the
missing -std=c++-98 for the default CXX builds.

I am still on 16.04 with my machines as I had too much other stuff going on.
Please try a test or two at your end and report back. We should be able to
get this squared.

Dirk

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org



More information about the R-SIG-Debian mailing list