[R-pkg-devel] Reducing installed package size with --strip-debug
edd at debian.org
Tue Oct 31 15:24:39 CET 2017
On 31 October 2017 at 15:02, Ege Rubak wrote:
| Based on Dirk's blog post  about stripping debug information from the
| shared object of my package `s2` I reduced the shared object file size
| from 7 to 0.7 MB and get rid of a NOTE about the installed package size
| (on my local Linux machine).
| Dirk suggests that one could conditionally do this in the Makevars file
| if the strip tool is available (typically the case on Linux). Does
| anybody know what CRAN's take is on this?
The "BDR Doctrine" still stands: no non-portable code in src/Makevars.
So the best I found (as a "live test") was this in RcppClassic (and I indent
what is one long line)
@if test -e "/usr/bin/strip" & \
test -e "/bin/uname" & \
[[ `uname` == "Linux" ]]; then \
/usr/bin/strip --strip-unneeded $(USERLIB); \
But but but ... this is in a package which already has an expanded
src/Makevars. For the simple default one ... I have found nothing better
than a _purely local_ settings in ~/.R/Makevars:
SHLIB_CXXLDFLAGS = -Wl,-S -shared
SHLIB_CXX11LDFLAGS = -Wl,-S -shared
SHLIB_CXX14LDFLAGS = -Wl,-S -shared
SHLIB_FCLDFLAGS = -Wl,-S -shared
SHLIB_LDFLAGS = -Wl,-S -shared
as described in the first follow-up to the link you quoted:
It is somewhat sad that we cannot portably set this for packages (at least
not as far as I know), and equally sad that we cannot augment the setting in
$(RHOME)/etc/Makeconf from inside a running R session.
Also see the second follow-up to the link you posted; the file size changes
are nothing short of staggering.
| Ege Rubak, Associate Professor,
| Department of Mathematical Sciences, Aalborg University
| Skjernvej 4A, 9220 Aalborg East, Denmark
| Phone: (+45)99408861
| Mobile: (+45)30230252
| Email: rubak at math.aau.dk
| R-package-devel at r-project.org mailing list
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
More information about the R-package-devel