Dear R-SIG-MAC members

We are the developers of R package sits and would like to ask for your help in 
solving a problem with library size on R macOS binaries. 

Before submission to CRAN, version 1.3.0 of sits 
(https://cran.r-project.org/web/packages/sits/index.html) has been tested in 
various environments, including Ubuntu, Fedora, CRAN winbuilder (all flavors). 
We have tested sits-1.3.0 on r-release-mac-x86_64 and r-release-macos-arm64 
with the following configurations:

- r-release-macos-x86_64: R 4.2.2, MacMini 3.2GHz, 6 cores, 32 MB RAM, macOS 
Ventura 3.2.1, Apple clang version 14.0.3 (clang-1403.0.22.14.1).

- r-release-macos-arm64: R 4.2.2, MacBookAir, chip ARM M1, 8 cores, 16 MB RAM, 
macOS Monterrey 12.6,  Apple clang version 14.0.0 (clang-1400.0.29.201). 

In our configuration of r-release-macos-x86_64, the installed size is 3.8 MB, 
and the libs directory size is 436 KB. On r-release-macos-arm64, the installed 
size is 5.4 MB and the libs directory size is 1.6 MB. 

The current CRAN check on sits version 1.3.0 reports a NOTE on 
r-release-macos-arm64 and r-oldrel-macos-arm64, with an installation size of 
7.3Mb with the libs directory size reported as 4.8Mb. CRAN is using Apple clang 
version 13.0.0 ((clang-1300.0.29.30) on r-release-macos-arm64 and Apple clang 
version 12.0.0 (clang-1200.0.32.29) on r-oldrel-macos-arm64. 

There is a 3.2 MB difference in size between what CRAN reports and what we 
obtain in our tests for r-release-macos-arm64. We would appreciate your 
guidance on how to address this problem and, if possible, point to a reliable 
way to reduce package size in macOS. 

Note that our package links to RCpp and RCppArmadillo.

Our current Makevars configuration is given below
==========================================
# suggestion by Dirk Eddelbuettel
SHLIB_CXXLDFLAGS = -Wlto,-S -shared
SHLIB_CXX11LDFLAGS = -Wlto,-S -shared
SHLIB_CXX14LDFLAGS = -Wlto,-S -shared
SHLIB_FCLDFLAGS = -Wlto,-S -shared
SHLIB_LDFLAGS = -Wlto,-S -shared

## suggestion by Dirk Eddelbuettel
PKG_CXXFLAGS = $(SHLIB_OPENMP_CXXFLAGS)
PKG_LIBS = $(SHLIB_OPENMP_CXXFLAGS) $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)

strippedLib: $(SHLIB)
                if test -e "/usr/bin/strip" & test -e "/bin/uname" & [[ `uname` 
== "Linux" ]] ; then /usr/bin/strip --strip-debug $(SHLIB); fi

clean:
        rm -f $(OBJECTS)

.phony: strippedLib clean
===========================================

Any help would be much appreciated. 

Best regards
Gilberto
============================
Prof Dr Gilberto Camara
Senior Researcher
National Institute for Space Research (INPE), Brazil
https://gilbertocamara.org/
=============================

_______________________________________________
R-SIG-Mac mailing list
R-SIG-Mac@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to