[Rcpp-devel] Large size of libs directory on some systems

Dan Dillon dcdillon at gmail.com
Mon Nov 28 21:42:21 CET 2016


I need to make some changes to stripper tonight. Just to give you a heads
up.

On Mon, Nov 28, 2016 at 2:13 PM Dean Bodenham <deanbodenhambsse at gmail.com>
wrote:

> Dear Dirk,
>
> Thank you for your last email - your suggestion worked perfectly!
>
> To be clear (for others), creating a ~/.R/Makevars file containing:
>
> DYLIB_LDFLAGS = -shared -fopenmp# $(CFLAGS) $(CPICFLAGS)
> SHLIB_CXXLDFLAGS = -shared
> SHLIB_CXX1XLDFLAGS = -shared
> SHLIB_FCLDFLAGS = -shared
> SHLIB_LDFLAGS = -shared# $(CFLAGS) $(CPICFLAGS)
> PKG_LIBS= -Wl,-S
>
> (where the first five lines are from /etc/R/Makeconf) resulted in a much
> smaller ffstream.so for me on Ubuntu 16.04.
>
> I have just started playing around with Dan's r-stripper, but have not
> quite got it working yet.
>
> Dean
>
> On Sat, Nov 26, 2016 at 4:59 PM, Dan Dillon <dcdillon at gmail.com> wrote:
>
> Dean,
>
> I too have been concerned about this and working on a solution for some
> time.  I just formalized my work and put it in a repo at
> https://github.com/dcdillon/r-stripper.  Basically this script adds the
> appropriate commands to the PKG_LIBS variable to cause the linker to strip
> the debugging symbols from the shared library that is created.
>
> Feel free to try it out.  Right now it only knows how to do this for gcc,
> g++, clang, and clang++ but adding others is no problem as long as I know
> how to figure out which linker it is and know the option to pass to the
> linker to achieve "stripping".
>
> Thanks,
>
> Dan
>
> On Sat, Nov 26, 2016 at 7:55 AM, Dirk Eddelbuettel <edd at debian.org> wrote:
>
>
> On 26 November 2016 at 12:22, Dean Bodenham wrote:
> | Dear Dirk,
> |
> | Thank you very much for your detailed replies!
> |
> | The Ubuntu system does indeed seem to be using the -g flag. I did try a
> local
> | compile/installation with the ~/.R/Makevars file you suggested, but
> couldn't
> | quite get it to work - I get warnings "linking not done" for the .o
> files, and
> | then an error that the "ffstream.so" file is not found.
>
> Well "it worked me for" but a better approach entirely outside of your
> package may be to take
>
>   edd at max:~$ grep shared /etc/R/Makeconf
>   DYLIB_LDFLAGS = -shared -fopenmp# $(CFLAGS) $(CPICFLAGS)
>   SHLIB_CXXLDFLAGS = -shared
>   SHLIB_CXX1XLDFLAGS = -shared
>   SHLIB_FCLDFLAGS = -shared
>   SHLIB_LDFLAGS = -shared# $(CFLAGS) $(CPICFLAGS)
>   edd at max:~$
>
> and add them to ~/.R/Makevars as
>
>   DYLIB_LDFLAGS = -shared -fopenmp# $(CFLAGS) $(CPICFLAGS)
>   SHLIB_CXXLDFLAGS = -shared
>   SHLIB_CXX1XLDFLAGS = -shared
>   SHLIB_FCLDFLAGS = -shared
>   SHLIB_LDFLAGS = -shared# $(CFLAGS) $(CPICFLAGS)
>
> When I do that without/with the change I get
>
>   edd at max:/tmp/ffstream$ ls -lh ffstream*/src/ffstream.so
>   -rwxrwxr-x 1 edd edd 9.0M Nov 26 07:52 ffstream.orig/src/ffstream.so
>   -rwxrwxr-x 1 edd edd 734K Nov 26 07:52 ffstream/src/ffstream.so
>   edd at max:/tmp/ffstream$
>
> I think it is an issue worth raising with on r-devel and I may do so.
>
> Dirk
>
> --
> http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
> _______________________________________________
> Rcpp-devel mailing list
> Rcpp-devel at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20161128/43d8ed66/attachment-0001.html>


More information about the Rcpp-devel mailing list