[PATCH] D71082: Allow system header to provide their own implementation of some builtin
George Burgess IV via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 16 10:13:26 PST 2020
george.burgess.iv added a comment.
(It's interesting to me if gcc doesn't warn about that libcxx code, since the whole point of the gnuc 5.0 check there was "the compiler should check this for us now"...)
If a glibc-side fix for this does materialize, IMO `-fgnuc-version=5.0` isn't a good path forward.
It's best if workarounds are limited in scope, lifespan, and user impact:
- Presumably `-fgnuc-version=5.0` implies many more changes that are unrelated to this particular bug.
- Glibc upgrades can take years to materialize for users[1].
- A lot of packages build with `-D_FORTIFY_SOURCE=2` by default. Requiring extra CPPFLAGS (either `-D_FORTIFY_SOURCE=0` or `-fgnuc-version=5.0`) would break `CC=clang make`-style builds that already work today, if any statement in them folds to `memset(x, non_zero, 0);` after optimizations.
Looks like this landed on the branch, so unless I'm mistaken, we probably need to revert there, as well?
[1] -- Anecdotally, I upgraded a project's host toolchain from using glibc 2.15 to 2.17 last year. I wanted to do 2.19, but 2.17 usage was still large enough that 2.19 wasn't an option.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D71082/new/
https://reviews.llvm.org/D71082
More information about the cfe-commits
mailing list