On 25 July 2014 at 15:30, Alan Benson wrote: | Does anybody know why two "-g" flags appear in the call to gcc in R CMD | SHLIB | | Example: | | gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -fpic *-g* -O2 | -fstack-protector --param=ssp-buffer-size=4 -Wformat | -Werror=format-security -D_FORTIFY_SOURCE=2 *-g* -c c_file1.c -o | c_object1.o | | Surely it need only be listed once?
AFAIK the second entry does no harm. If you study the source code invoked by R CMD SHLIB (and the related commands) you will noticed that several Make variables are reflected, some of which you can set from the file Makeconf (on my systems in /etc/R/Makeconf via a symlink, otherwise in $R_HOME/etc/ depending on where R_HOME is) as well as other files, including variants in your home directory such as ~/.R/Makevars (my favourite for local configurations). As well as extra environment variables -- this is all driven by how 'make' behaves, which is well documented. As your local admin, you are free to edit these config files as you see fit, and/or use additional environment variables to tailor this. But as the second invocation of -g has no additional side effect over the first, nobody has seen fit to write a 'uniquefy()' filter for the arguments. For what it is worth, the default values on my system are below. Some of the choices are driven by Debian Policy and affect Debian, Ubuntu and other Debian derivatives. Hope this helps, Dirk edd@max:~$ grep -- -g /etc/R/Makeconf # configure '--prefix=/usr' '--with-cairo' '--with-jpeglib' '--with-readline' '--with-tcltk' '--with-system-bzlib' '--with-system-pcre' '--with-system-zlib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share/R/share' '--includedir=/usr/share/R/include' '--with-blas' '--with-lapack' '--enable-R-profiling' '--enable-R-shlib' '--enable-memory-profiling' '--without-recommended-packages' '--build' 'x86_64-linux-gnu' 'build_alias=x86_64-linux-gnu' 'R_PRINTCMD=/usr/bin/lpr' 'R_PAPERSIZE=letter' 'R_BROWSER=xdg-open' 'LIBnn=lib' 'CC=gcc -std=gnu99' 'CFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro' 'CPPFLAGS=' 'F77=gfortran' 'FFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4' 'CXX=g++' 'CXXFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g' 'FC=gfortran' 'FCFLAGS=-g -O2 -fstack-! protector --param=ssp-buffer-size=4' CFLAGS = -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g $(LTO) CXXFLAGS = -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g $(LTO) CXX1XFLAGS = -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g FCFLAGS = -g -O2 -fstack-protector --param=ssp-buffer-size=4 $(LTO) FFLAGS = -g -O2 -fstack-protector --param=ssp-buffer-size=4 $(LTO) SAFE_FFLAGS = -g -O2 -fstack-protector --param=ssp-buffer-size=4 -ffloat-store TCLTK_LIBS = -L/usr/lib/x86_64-linux-gnu -ltcl8.6 -L/usr/lib/x86_64-linux-gnu -ltk8.6 -lX11 -lXss -lXext edd@max:~$ -- http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel