From henr|k@bengt@@on @end|ng |rom gm@||@com  Sat May  1 03:40:48 2021
From: henr|k@bengt@@on @end|ng |rom gm@||@com (Henrik Bengtsson)
Date: Fri, 30 Apr 2021 18:40:48 -0700
Subject: [Rd] R compilation on old(ish) CentOS
In-Reply-To: <1E8063DB-0F65-49CF-8D63-C6786D9BB880@gmail.com>
References: <1ae5a21f-a74e-b532-1359-a55856d4f365@gmail.com>
 <1E8063DB-0F65-49CF-8D63-C6786D9BB880@gmail.com>
Message-ID: <CAFDcVCTRLWpan0emJd_Ri1-iUhoxQVA_8p8+WQ2HZa86bP3Tfw@mail.gmail.com>

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 <pdalgd at gmail.com> 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 <bbolker at gmail.com> 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 at 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.mes at cbs.dk  Priv: PDalgd at gmail.com
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] R compilation on old(ish) CentOS
Henrik Bengtsson