[R-pkg-devel] Status of -mmacosx-version-min
Simon Urbanek
@|mon@urb@nek @end|ng |rom R-project@org
Sun Dec 10 05:07:12 CET 2023
As discussed here before packages should *never* set -mmacosx-version-min or similar flags by hand. As documented in R-exts 1.2 packages should retrieve compiler flags from R (this includes compiling 3rd party dependencies). Incidentally, older versions of R have included -mmacosx-version-min in the CC setting (high-sierra builds) which current ones don't, but complying packages will automatically use the correct compilers and flags regardless of the R version and build. Note that this is important as R can be built for different systems and targets so the package should not assume anything - just ask R.
The implied question was about the target macOS version for CRAN binaries: it is always included in the build name, so high-sierra build was targeting macOS 10.13 (High Sierra) and big-sur build is targeting macOS 11 (Big Sur). It is clearly stated next to the download for each macOS R binary on CRAN: https://cran.r-project.org/bin/macosx/ where the current releases target macOS 11.
Anyone distributing macOS binaries should subscribe to R-SIG-Mac where we discuss details such as repository locations etc. Developers writing packages just need to pay attention to R-exts and CRAN policies (the latter if they want to publish on CRAN). I hope this is now clear enough explanation.
Cheers,
Simon
> On Dec 10, 2023, at 10:07 AM, Dirk Eddelbuettel <edd using debian.org> wrote:
>
>
> Last month, I had asked about the setting '-mmacosx-version-min' here. The
> setting can be used to specify what macOS version one builds for. It is,
> oddly enough, not mentioned in Writing R Extension but for both r-release and
> r-devel the R Administration manual states
>
> • Current CRAN macOS distributions are targeted at Big Sur so it is
> wise to ensure that the compilers generate code that will run on
> Big Sur or later. With the recommended compilers we can use
> CC="clang -mmacosx-version-min=11.0"
> CXX="clang++ -mmacosx-version-min=11.0"
> FC="/opt//gfortran/bin/gfortran -mmacosx-version-min=11.0"
> or set the environment variable
> export MACOSX_DEPLOYMENT_TARGET=11.0
>
> which is clear enough. (There is also an example in the R Internals manual
> still showing the old (and deprecated ?) value of 10.13.) It is also stated
> at the top of mac.r-project.org. But it is still in a somewhat confusing
> contradiction to the matrix of tests machines, described e.g. at
>
> https://cran.r-project.org/web/checks/check_flavors.html
>
> which still has r-oldrel-macos-x86_64 with 10.13.
>
> I found this confusing, and pressed the CRAN macOS maintainer to clarify but
> apparently did so in an insuffciently convincing manner. (There was a word
> about it being emailed to r-sig-mac which is a list I am not on as I don't
> have a macOS machine.) So in case anybody else wonders, my hope is that the
> above is of help. At my day job, we will now switch to 11.0 to take advantage
> of some more recent C++ features.
>
> Dirk
>
> --
> dirk.eddelbuettel.com | @eddelbuettel | edd using debian.org
>
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel
>
More information about the R-package-devel
mailing list