[R-pkg-devel] compilation flags WARNING

Heather Turner ht @ending from he@therturner@net
Thu Jul 5 22:34:39 CEST 2018


I would suggest not to set the CFLAGS in the package itself - at least not exclusively. R-admin 6.3.3 (the section I linked before) recommends "to  enable a reasonable amount of diagnostic messaging (“warnings”) when compiling, such as e.g. -Wall -pedantic for tools from GCC", while R-exts 1.2.1 says"When writing a Makevars file for a package you intend to distribute, take care to ensure that it is not specific to your compiler: flags such as -O2 -Wall -pedantic (and all other -W flags: for the Oracle compilers these are used to pass arguments to compiler phases) are all specific to GCC." Since these are contradictory, you can't satisfy both via PKG_CFLAGS alone. That is why I suggest to use the Makevars.site file to set pedantic flags for local use that are not distributed with the package (if you don't want to set them at a site-wide level R-admin 6.3.3 gives alternatives for setting at user-level).

Heather

On Thu, Jul 5, 2018, at 9:19 PM, Göran Broström wrote:
> Thanks Heather and Iñaki: I understand.
> 
> I have an old Makevars file in the src directory of the package.  I 
> guess I can set the flags there? Now it only contains
> 
> # PKG_CFLAGS = -Wall
> # PKG_FFLAGS = -Wall -fbounds-check
> PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)
> 
> Göran
> 
> On 2018-07-05 17:43, Heather Turner wrote:
> > 
> > 
> > On Thu, Jul 5, 2018, at 3:39 PM, Iñaki Úcar wrote:
> >> El jue., 5 jul. 2018 a las 16:11, Göran Broström
> >> (<goran.brostrom using umu.se>) escribió:
> >>>
> >>> I am preparing a CRAN release of eha (a trivial change due to a change
> >>> in the survival package), but when checking the build I get:
> >>>
> >>> goran using M6800:~/R$ R CMD check --as-cran eha_2.5.2.tar.gz
> >>> ...
> >>> * checking compilation flags used ... WARNING
> >>> Compilation used the following non-portable flag(s):
> >>>     ‘-Wdate-time’ ‘-Werror=format-security’ ‘-Wformat’
> >>> ...
> >>
> >> AFAIK, these are new checks. I get similar warnings on Fedora for
> >> different flags.
> >>
> >>> I have never seen this before and I haven't (to my knowledge) set any
> >>> compilation flags. It is my first build and check on a newly upgraded
> >>> ubuntu 18.04 (no issues on 17.10). Should I perhaps ask on r-sig-debian,
> >>> or is that observation irrelevant?
> >>
> >> Again AFAIK (there are package maintainers for several distros here
> >> that can correct me if I'm wrong), each distro defines some policies
> >> regarding compilation flags that are applied to all packages by
> >> default. So these warnings can be safely ignored locally (or you may
> >> override them), because those flags won't be defined on CRAN.
> >>
> > Yes, by default the compilation flags are those set when R was installed. You can see the current flags via
> > 
> > R CMD config CFLAGS
> > 
> > which in your case should include  ‘-Wdate-time’ etc.
> > 
> > As Iñaki says you can safely ignore the warning, but if you prefer to not to have any warnings you can solve this by creating a Makevars.site file with CFLAGS excluding the non-portable ones, e.g.
> > 
> > CFLAGS=-Wall -g O0 -fPIC
> > 
> > This should be saved in the /etc directory of R.home(), e.g. /usr/lib/R/etc.
> > 
> > See https://cran.r-project.org/doc/manuals/r-release/R-admin.html#Customizing-package-compilation for more information.
> > 
> > Heather
> > 
> >> Iñaki
> >>
> >>>
> >>> Göran Broström
> >>
> >> ______________________________________________
> >> R-package-devel using r-project.org mailing list
> >> https://stat.ethz.ch/mailman/listinfo/r-package-devel
> > 
> > ______________________________________________
> > R-package-devel using r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-package-devel
> >
> 
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel



More information about the R-package-devel mailing list