On 16 October 2016 at 09:46, Da Zheng wrote: | I'm writing an R package that is mainly written in C++. By default, R | CMD INSTALL creates C/C++ flags as follows: | -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat | -Werror=format-security -D_FORTIFY_SOURCE=2 -g
That looks like you are running R on a Debian or Ubuntu system as these are the compilation defaults we set everywhere, and which my r-base-core package has via the same defaults. That is also where the `-g` comes from. By default we compile everything with debugging, and (these days) strip debug symbols away in a -dbg package. I.e. if you wanted to use gdb to analyse R you could without recompilation by just installing the r-base-core-dbg package. That is a nice feature. | However, my package is fairly large. With debug info compiled into the | library, the generated .so file is over 200MB. Without debug info, | it's about 30MB. I hope by default debug info is disabled. You cannot, currently. The values in Makeconf (for us in /etc/R/Makeconf) cannot be edited before `R CMD INSTALL` et al use them. That is a pity, but such is life. We had prior discussions about this here; and at least Simon chimed in once and confirmed. | However, I don't see any option in R CMD INSTALL that can disable | "-g". Could anyone tell me how to disable it? You cannot, currently. There are a few ways out: i) Quick local fix: Edit /etc/R/Makeconf. Obviously not portable. ii) Rebuild R without -g in the configure flags. Ditto. iii) Do something in src/Makevars to strip after the build. May be flagged as non-portable by CRAN but at least it tries. iv) (Lot of work, potentially) Patch the R build system to allow, say, sed filtering of some of the values in Makeconf. Get the patch included. Hope this helps, Dirk -- http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel