Open barracuda156 opened 2 months ago
@kevinushey Maybe you could suggest something? We just need to ensure that the flag is passed to dependents as long as conditions are met (oneTBB, macOS < 10.13, Clang as the compiler).
@andrjohns Or maybe you could help?
In theory, we could add this check in the RcppParallel configure scripts here (perhaps via adding to PKG_CPPFLAGS or similar):
https://github.com/RcppCore/RcppParallel/blob/master/tools/config/configure.R
but macOS 10.13 itself is already EOL since January 2021. I'd welcome a PR but we won't have time to investigate ourselves.
Thanks, I will look into that. I need to fix it at least in MacPorts (alternative will be patching about a hundred ports, and then carry the patches, that will be bad). But if I come up with a neat fix, I submit the PR.
@kevinushey So not for submission here, but to fix it locally, I can just add this?
cxxflags <- "-fno-aligned-allocation"
We can patch this in conditionally on macOS version + clang being used (in MacPorts).
I think you might want to append it to the flags set by default from R; that is, in here:
use something like cxxflags <- paste(cxxflags, "-fno-aligned-allocation")
?
@eddelbuettel Could we fix this? The issue arises only with OneTBB backend and Clang with
libc++
on < 10.13 (that is why we did not face it earlier: legacy TBB was used until recently).We could fix it for dependents of
RcppParallel
like this: https://github.com/macports/macports-ports/pull/24545/commits/627f0ddd37c8a343493f13ecab580665d294a97cBut considering a number of affected ports, it is somewhat suboptimal solution.
(To be explicit, this should not be used with gcc and
libstdc++
on any macOS versions, including < 10.13. Everything works fine there, and also the flag is Clang-specific.)