[Bug 258887] math/R: fails to build with clang/openmp 13 due to old mgcv
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 03 Oct 2021 11:27:21 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258887 Bug ID: 258887 Summary: math/R: fails to build with clang/openmp 13 due to old mgcv Product: Ports & Packages Version: Latest Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: Individual Port(s) Assignee: jrm@freebsd.org Reporter: dim@FreeBSD.org Assignee: jrm@freebsd.org Flags: maintainer-feedback?(jrm@freebsd.org) During an exp-run for llvm 13 (see bug 258209), it turned out that math/R fails to build with clang 13 (http://gohan04.nyi.freebsd.org/data/mainamd64PR258209-default/2021-09-30_06h20m28s/logs/errors/R-4.1.1_1.log): begin installing recommended package mgcv * installing *source* package ‘mgcv’ ... ** package ‘mgcv’ successfully unpacked and MD5 sums checked ** using non-staged installation ** libs gmake[4]: Entering directory '/tmp/RtmpJN7T4d/R.INSTALLb1494371d851/mgcv/src' cc -I"/wrkdirs/usr/ports/math/R/work/R-4.1.1/include" -DNDEBUG -DLIBICONV_PLUG -I/usr/local/include -isystem /usr/local/include -fopenmp -fpic -O2 -pipe -DLIBICONV_PLUG -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -c coxph.c -o coxph.o cc -I"/wrkdirs/usr/ports/math/R/work/R-4.1.1/include" -DNDEBUG -DLIBICONV_PLUG -I/usr/local/include -isystem /usr/local/include -fopenmp -fpic -O2 -pipe -DLIBICONV_PLUG -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -c davies.c -o davies.o cc -I"/wrkdirs/usr/ports/math/R/work/R-4.1.1/include" -DNDEBUG -DLIBICONV_PLUG -I/usr/local/include -isystem /usr/local/include -fopenmp -fpic -O2 -pipe -DLIBICONV_PLUG -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -c discrete.c -o discrete.o In file included from discrete.c:28: /usr/include/omp.h:484:39: error: expected 'match' clause on 'omp declare variant' directive #pragma omp begin declare variant match(device={kind(host)}) ^ /wrkdirs/usr/ports/math/R/work/R-4.1.1/include/Rinternals.h:1640:17: note: expanded from macro 'match' #define match Rf_match ^ In file included from discrete.c:28: /usr/include/omp.h:487:39: error: expected 'match' clause on 'omp declare variant' directive #pragma omp begin declare variant match(device={kind(nohost)}) ^ /wrkdirs/usr/ports/math/R/work/R-4.1.1/include/Rinternals.h:1640:17: note: expanded from macro 'match' #define match Rf_match ^ 2 errors generated. What happens here is that the mgcv package includes <omp.h> *after* including <R.h>, which causes the conflict between the "#define match" and the openm pragma line which uses match(). This problem was fixed in mgcv 1.8-37 (https://cran.r-project.org/web/packages/mgcv/ChangeLog) with the small mention: > 1.8-37 > > * minor update for clang compatibility. basically, in most of the .c files, "#include <omp.h>" was moved before "#include <R.h>". Locally, I was able to 'fix' it by replacing /wrkdirs/usr/ports/math/R/work/R-4.1.1/src/library/Recommended/mgcv.tgz with a copy of https://cran.r-project.org/src/contrib/mgcv_1.8-37.tar.gz, but I am unsure how this can be done more correctly for the math/R port. Maybe the mgcv_1.8-37.tar.gz file can be added as an additional distfile, and added to the port Makefile, somehow? Any ideas are welcome. -- You are receiving this mail because: You are the assignee for the bug.