[Rd] Build R static
Simon Urbanek
simon.urbanek at r-project.org
Thu May 20 18:50:19 CEST 2010
On May 20, 2010, at 8:50 AM, Alex Bryant wrote:
> Does anyone know if it's possible to create a static build of R?
>
That depends heavily on the OS and tools used and has nothing to do with R itself. You'll need static versions of all libraries you depend on and compilers capable of using them (=and having static libs themselves). In addition, packages are shared libraries in R so all static libraries that can be potentially used need to be PIC-safe (which is normally not the case).
That said, your motivation doesn't seem to be relevant here, because you can simply ship dynamic libraries with R which is much easier and more efficient (since you won't be copying them over and over for each binary and package). The usual motivation for a purely static binary is to ship it as one file but since that's not possible with R (it needs packages etc.) you don't gain anything at all.
Cheers,
Simon
> Thanks,
>
> From: Alex Bryant
> Sent: Monday, May 10, 2010 2:50 PM
> To: 'r-devel at r-project.org'
> Subject: Build R static
>
> Hi, I am having trouble building R static on Solaris 5.10. I have a requirement to run R within a specific user account on Solaris 5.10 and I do not have access to compilers and or shared libraries on the target machine. I thought I could build R static ( I've build it locally on Solaris with shared libraries) and just ftp the build to the target Solaris box. Can any help with what ./configure & Make flags need to be set for this, assuming it is possible?
>
> Here is what my currently built ./bin/exec/R executable is using.
>
> $ ldd R
> libRblas.so => (file not found)
> libg2c.so.0 => /usr/local/lib/libg2c.so.0
> libm.so.2 => /usr/lib/libm.so.2
> libreadline.so.6 => /usr/local/lib/libreadline.so.6
> libcurses.so.1 => /usr/lib/libcurses.so.1
> libnsl.so.1 => /usr/lib/libnsl.so.1
> libsocket.so.1 => /usr/lib/libsocket.so.1
> libdl.so.1 => /usr/lib/libdl.so.1
> libiconv.so.2 => /usr/local/lib/libiconv.so.2
> libicuuc.so.3 => /usr/lib/libicuuc.so.3
> libicui18n.so.3 => /usr/lib/libicui18n.so.3
> libc.so.1 => /usr/lib/libc.so.1
> libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1
> libmp.so.2 => /usr/lib/libmp.so.2
> libmd5.so.1 => /usr/lib/libmd5.so.1
> libscf.so.1 => /usr/lib/libscf.so.1
> libicudata.so.3 => /usr/lib/libicudata.so.3
> libpthread.so.1 => /usr/lib/libpthread.so.1
> libCrun.so.1 => /usr/lib/libCrun.so.1
> libdoor.so.1 => /usr/lib/libdoor.so.1
> libuutil.so.1 => /usr/lib/libuutil.so.1
> /platform/SUNW,Sun-Fire-280R/lib/libc_psr.so.1
> /platform/SUNW,Sun-Fire-280R/lib/libmd5_psr.so.1
>
> Thanks for your help,
> Alex
>
> //************************
> // Alex Bryant
> // Software Developer
> // Integrated Clinical Systems, Inc.
> // 908-996-7208
>
>
> ________________________________
> Confidentiality Note: This e-mail, and any attachment to...{{dropped:13}}
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
>
More information about the R-devel
mailing list