On 10/12/2025 11:13, Duncan Murdoch wrote:
I am making some large changes to rgl, and something I've done is causing crashes which I'm having trouble tracking down.  These are likely things that one of the sanitizers could detect, so I'd like to do a build using one.

The WRE manual gives partial instructions about how to enable them.  It first says to put these lines in ~/.R/Makevars:

   CC = gcc -std=gnu99 -fsanitize=address -fno-omit-frame-pointer
   CXX = g++ -fsanitize=address -fno-omit-frame-pointer
   FC = gfortran -fsanitize=address

Not for macOS ....

These don't work for me on my Mac, generating lots of compile errors that I don't see with the default settings.

Later WRE gives other instructions for clang 18.  What's not clear to me is what I should do for the default compiler tools (including clang 16) from mac.r-project.org.  Can anyone suggest what I should do for this situation:

  - using the default build of R from CRAN

AFAIK you need to build R with sanitizers: it might be possible without but the issues often are partially in the way the package calls back into R.

  - using the libs and tools from mac.r-project.org

In principle this might needs libs built against the sanitizers but I have only seen one instance over the years. Normally you will get less (but still useful) information.

Anything built with sanitizers needs to be of the same compiler version as used for R (in Linux experience, even the same patch version).

  - trying to build rgl with the sanitizer options

See

https://www.stats.ox.ac.uk/pub/bdr/M1-SAN/README.txt

which is tested daily, but only with up-to-date macOS and tools.

I don't think the gfortran used on macOS has sanitizer support, but it any case GCC's is not compatible with LLVM's. So this is C/C++ only.

--
Brian D. Ripley,                  [email protected]
Emeritus Professor of Applied Statistics, University of Oxford

_______________________________________________
R-SIG-Mac mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to