[R-SIG-Mac] Help on reducing size of shared libraries on MacOS on CRAN

Simon Urbanek @|mon@urb@nek @end|ng |rom R-project@org
Sat Mar 18 22:19:59 CET 2023


Please note that size checks are not really relevant for binary packages - it is normal for binaries to be large as they may include static libraries (e.g., rgdal has 273Mb). Also note that 4.8Mb is rather small for a library since it also includes debugging symbols (CRAN packages are built with --dsym to make debugging easier) - so is there a particular reason you are concerned about the size? You can always remove the debugging symbols (libs/*.dsym) on your machine if you have issues with size.


> On 19/03/2023, at 07:02, Gilberto Camara <gilberto.camara.inpe using gmail.com> wrote:
> 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.
> - 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
> 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 using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac

More information about the R-SIG-Mac mailing list