Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[oneTBB backend] macOS < 10.13 with libc++ need -fno-aligned-allocation #219

Open
barracuda156 opened this issue Jun 18, 2024 · 5 comments

Comments

@barracuda156
Copy link
Contributor

@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:
macports/macports-ports@627f0dd

But 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.)

@barracuda156
Copy link
Contributor Author

barracuda156 commented Jun 21, 2024

@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?

@kevinushey
Copy link
Contributor

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.

@barracuda156
Copy link
Contributor Author

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.

@barracuda156
Copy link
Contributor Author

@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).

@kevinushey
Copy link
Contributor

I think you might want to append it to the flags set by default from R; that is, in here:

# work around issue with '-Werror=format-security' being specified without
# a prior '-Wformat', which makes gcc angry
cxxflags <- read_r_config(sprintf("%sFLAGS", cxx), envir = NULL)[[1]]

use something like cxxflags <- paste(cxxflags, "-fno-aligned-allocation")?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants