Re: [Rd] R compilation on old(ish) CentOS
Thanks -- yes, I can confirm that it installs OK after erasing and checking out SVN from scratch. On 4/30/21 9:40 PM, Henrik Bengtsson wrote: Ben, it's most like what Peter says. I can confirm it works; I just installed https://cran.r-project.org/src/base-prerelease/R-latest.tar.gz on an up-to-date CentOS 7.9.2009 system using the vanilla gcc (GCC) 4.8.5 that comes with that version and R compiles just fine and it passes 'make check' too. Since R is trying to move toward C++14 support by default, I agree with Iñaki, you might wanr to build and run R with a newer version of gcc. gcc 4.8.5 will only give you C++11 support. RedHat's Software Collections (SCL) devtoolset:s is the easiest way to do this. I've done this too and can confirm that gcc 7.3.1 that comes with SCL devtoolset/7 is sufficient to get C++14 support. I'm sharing my installation with lots of users, so I'm make it all transparent to the end-user with environment modules, i.e. 'module load r/4.1.0' is all the user needs to know. /Henrik On Thu, Apr 29, 2021 at 7:28 AM Peter Dalgaard wrote: You may want to check out your checkout I see: Peter-Dalgaards-iMac:R pd$ grep newsock src/main/connections.c con = R_newsock(host, port, server, serverfd, open, timeout, options); but your file seems to have lost the ", options" bit somehow. Also, mine is line 3488, not 3477. Maybe you have an old file getting in the way? - Peter On 29 Apr 2021, at 15:58 , Ben Bolker wrote: I probably don't want to go down this rabbit hole very far, but if anyone has any *quick* ideas ... Attempting to build R from scratch with a fresh SVN checkout on a somewhat out-of-date CentOS system (for which I don't have root access, although I can bug people if I care enough). ../r-devel/configure; make ends with gcc -std=gnu99 -I../../../r-devel/trunk/src/extra -I. -I../../src/include -I../../../r-devel/trunk/src/include -I/usr/local/include -I../../../r-devel/trunk/src/nmath -DHAVE_CONFIG_H -fopenmp -g -O2 -c ../../../r-devel/trunk/src/main/connections.c -o connections.o ../../../r-devel/trunk/src/main/connections.c: In function ‘do_sockconn’: ../../../r-devel/trunk/src/main/connections.c:3477:5: error: too few arguments to function ‘R_newsock’ con = R_newsock(host, port, server, serverfd, open, timeout); ^ In file included from ../../../r-devel/trunk/src/main/connections.c:80:0: ../../../r-devel/trunk/src/include/Rconnections.h:83:13: note: declared here Rconnection R_newsock(const char *host, int port, int server, int serverfd, const char * const mode, int timeout, int options); ^ make[3]: *** [connections.o] Error 1 Any suggestions for a quick fix/diagnosis? cheers Ben Bolker $ gcc --version gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) $ lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 7.8.2003 (Core) Release: 7.8.2003 Codename: Core __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel -- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd@cbs.dk Priv: pda...@gmail.com __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] R compilation on old(ish) CentOS
On Sat, 1 May 2021 at 03:41, Henrik Bengtsson wrote: > > Ben, it's most like what Peter says. I can confirm it works; I just > installed https://cran.r-project.org/src/base-prerelease/R-latest.tar.gz > on an up-to-date CentOS 7.9.2009 system using the vanilla gcc (GCC) > 4.8.5 that comes with that version and R compiles just fine and it > passes 'make check' too. It's not that you can't compile R with gcc 4.8.5, it's that you'll have a hard time installing many packages. And that's why EPEL 7 has R 3.6 and cannot be updated to 4. > Since R is trying to move toward C++14 support by default, I agree > with Iñaki, you might wanr to build and run R with a newer version of > gcc. gcc 4.8.5 will only give you C++11 support. RedHat's Software > Collections (SCL) devtoolset:s is the easiest way to do this. I've > done this too and can confirm that gcc 7.3.1 that comes with SCL > devtoolset/7 is sufficient to get C++14 support. I'm sharing my > installation with lots of users, so I'm make it all transparent to the > end-user with environment modules, i.e. 'module load r/4.1.0' is all > the user needs to know. -- Iñaki Úcar __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] R compilation on old(ish) CentOS
Ben, it's most like what Peter says. I can confirm it works; I just installed https://cran.r-project.org/src/base-prerelease/R-latest.tar.gz on an up-to-date CentOS 7.9.2009 system using the vanilla gcc (GCC) 4.8.5 that comes with that version and R compiles just fine and it passes 'make check' too. Since R is trying to move toward C++14 support by default, I agree with Iñaki, you might wanr to build and run R with a newer version of gcc. gcc 4.8.5 will only give you C++11 support. RedHat's Software Collections (SCL) devtoolset:s is the easiest way to do this. I've done this too and can confirm that gcc 7.3.1 that comes with SCL devtoolset/7 is sufficient to get C++14 support. I'm sharing my installation with lots of users, so I'm make it all transparent to the end-user with environment modules, i.e. 'module load r/4.1.0' is all the user needs to know. /Henrik On Thu, Apr 29, 2021 at 7:28 AM Peter Dalgaard wrote: > > You may want to check out your checkout > > I see: > > Peter-Dalgaards-iMac:R pd$ grep newsock src/main/connections.c > con = R_newsock(host, port, server, serverfd, open, timeout, options); > > but your file seems to have lost the ", options" bit somehow. Also, mine is > line 3488, not 3477. > > Maybe you have an old file getting in the way? > > - Peter > > > On 29 Apr 2021, at 15:58 , Ben Bolker wrote: > > > > I probably don't want to go down this rabbit hole very far, but if anyone > > has any *quick* ideas ... > > > > Attempting to build R from scratch with a fresh SVN checkout on a somewhat > > out-of-date CentOS system (for which I don't have root access, although I > > can bug people if I care enough). > > > > ../r-devel/configure; make > > > > ends with > > > > gcc -std=gnu99 -I../../../r-devel/trunk/src/extra -I. -I../../src/include > > -I../../../r-devel/trunk/src/include -I/usr/local/include > > -I../../../r-devel/trunk/src/nmath -DHAVE_CONFIG_H -fopenmp -g -O2 -c > > ../../../r-devel/trunk/src/main/connections.c -o connections.o > > ../../../r-devel/trunk/src/main/connections.c: In function ‘do_sockconn’: > > ../../../r-devel/trunk/src/main/connections.c:3477:5: error: too few > > arguments to function ‘R_newsock’ > > con = R_newsock(host, port, server, serverfd, open, timeout); > > ^ > > In file included from ../../../r-devel/trunk/src/main/connections.c:80:0: > > ../../../r-devel/trunk/src/include/Rconnections.h:83:13: note: declared here > > Rconnection R_newsock(const char *host, int port, int server, int serverfd, > > const char * const mode, int timeout, int options); > > ^ > > make[3]: *** [connections.o] Error 1 > > > > Any suggestions for a quick fix/diagnosis? > > > > cheers > >Ben Bolker > > > > > > > > > > $ gcc --version > > gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) > > > > $ lsb_release -a > > LSB Version: > > :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch > > Distributor ID: CentOS > > Description: CentOS Linux release 7.8.2003 (Core) > > Release: 7.8.2003 > > Codename: Core > > > > __ > > R-devel@r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-devel > > -- > Peter Dalgaard, Professor, > Center for Statistics, Copenhagen Business School > Solbjerg Plads 3, 2000 Frederiksberg, Denmark > Phone: (+45)38153501 > Office: A 4.23 > Email: pd@cbs.dk Priv: pda...@gmail.com > > __ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] R compilation on old(ish) CentOS
You may want to check out your checkout I see: Peter-Dalgaards-iMac:R pd$ grep newsock src/main/connections.c con = R_newsock(host, port, server, serverfd, open, timeout, options); but your file seems to have lost the ", options" bit somehow. Also, mine is line 3488, not 3477. Maybe you have an old file getting in the way? - Peter > On 29 Apr 2021, at 15:58 , Ben Bolker wrote: > > I probably don't want to go down this rabbit hole very far, but if anyone > has any *quick* ideas ... > > Attempting to build R from scratch with a fresh SVN checkout on a somewhat > out-of-date CentOS system (for which I don't have root access, although I can > bug people if I care enough). > > ../r-devel/configure; make > > ends with > > gcc -std=gnu99 -I../../../r-devel/trunk/src/extra -I. -I../../src/include > -I../../../r-devel/trunk/src/include -I/usr/local/include > -I../../../r-devel/trunk/src/nmath -DHAVE_CONFIG_H -fopenmp -g -O2 -c > ../../../r-devel/trunk/src/main/connections.c -o connections.o > ../../../r-devel/trunk/src/main/connections.c: In function ‘do_sockconn’: > ../../../r-devel/trunk/src/main/connections.c:3477:5: error: too few > arguments to function ‘R_newsock’ > con = R_newsock(host, port, server, serverfd, open, timeout); > ^ > In file included from ../../../r-devel/trunk/src/main/connections.c:80:0: > ../../../r-devel/trunk/src/include/Rconnections.h:83:13: note: declared here > Rconnection R_newsock(const char *host, int port, int server, int serverfd, > const char * const mode, int timeout, int options); > ^ > make[3]: *** [connections.o] Error 1 > > Any suggestions for a quick fix/diagnosis? > > cheers >Ben Bolker > > > > > $ gcc --version > gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) > > $ lsb_release -a > LSB Version: > :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch > Distributor ID: CentOS > Description: CentOS Linux release 7.8.2003 (Core) > Release: 7.8.2003 > Codename: Core > > __ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel -- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd@cbs.dk Priv: pda...@gmail.com __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] R compilation on old(ish) CentOS
On Thu, 29 Apr 2021 at 15:59, Ben Bolker wrote: > >I probably don't want to go down this rabbit hole very far, but if > anyone has any *quick* ideas ... > >Attempting to build R from scratch with a fresh SVN checkout on a > somewhat out-of-date CentOS system (for which I don't have root access, > although I can bug people if I care enough). Could you bug them to... update CentOS? :) [snip] > $ gcc --version > gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) Ouch. You definitely need to install and activate an appropriate devtoolset as follows: $ yum install centos-release-scl $ yum install devtoolset-8 (Bug those people to at least install that). Then, put something like this in your .bashrc: $ source scl_source enable devtoolset-8 And you are ready to go with a fairly decent version of gcc, i.e.: $ gcc --version gcc (GCC) 8.3.1 20190311 (Red Hat 8.3.1-3) Iñaki > $ lsb_release -a > LSB Version: > :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch > Distributor ID: CentOS > Description:CentOS Linux release 7.8.2003 (Core) > Release:7.8.2003 > Codename: Core > > __ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel -- Iñaki Úcar __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
[Rd] R compilation on old(ish) CentOS
I probably don't want to go down this rabbit hole very far, but if anyone has any *quick* ideas ... Attempting to build R from scratch with a fresh SVN checkout on a somewhat out-of-date CentOS system (for which I don't have root access, although I can bug people if I care enough). ../r-devel/configure; make ends with gcc -std=gnu99 -I../../../r-devel/trunk/src/extra -I. -I../../src/include -I../../../r-devel/trunk/src/include -I/usr/local/include -I../../../r-devel/trunk/src/nmath -DHAVE_CONFIG_H -fopenmp -g -O2 -c ../../../r-devel/trunk/src/main/connections.c -o connections.o ../../../r-devel/trunk/src/main/connections.c: In function ‘do_sockconn’: ../../../r-devel/trunk/src/main/connections.c:3477:5: error: too few arguments to function ‘R_newsock’ con = R_newsock(host, port, server, serverfd, open, timeout); ^ In file included from ../../../r-devel/trunk/src/main/connections.c:80:0: ../../../r-devel/trunk/src/include/Rconnections.h:83:13: note: declared here Rconnection R_newsock(const char *host, int port, int server, int serverfd, const char * const mode, int timeout, int options); ^ make[3]: *** [connections.o] Error 1 Any suggestions for a quick fix/diagnosis? cheers Ben Bolker $ gcc --version gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) $ lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch Distributor ID: CentOS Description:CentOS Linux release 7.8.2003 (Core) Release:7.8.2003 Codename: Core __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel