-
-
Notifications
You must be signed in to change notification settings - Fork 30
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
Multiple changes (primarily cleanups) - see individual commits #106
Conversation
See the expanded comment in dirent.h. TESTED: Tests (including relevant update) pass on all platforms.
TESTED: Fails without corresponding update & passes with.
The workaround for the bug in __has_cpp_attribute() is acceptable for all versions of both clang and GCC, but causes unsuppressible warnings in affected versions of GCC. To minimize this, we narrow the scope of the workaround in the GCC case to just the cases that actually require it. TESTED: Eliminates warnings where possible. Tests pass on all platforms.
SDK-related conditionals for the atcall mechanism were inappropriate since the only use was in purely internal code. This also removes the now-obsolete includes from common-priv.h. TESTED: Tests pass on all platforms.
Since the sole use of SYS___pthread_fchdir is in best_fchdir.c, it makes no sense to define it in a header. TESTED: Tests pass on all platforms.
Since the sole purpose of the internal common-priv.h was to support atcalls, naming it accordingly is more appropriate. If another circumstance arises calling for an internal header, it would make more sense to make it a separate header with an appropriate name. Also does some whitespace and include-order cleanup. TESTED: Tests pass on all platforms.
Since fdopendir() is just another "at" call, with the same availability as other "at" calls, the mere fact that it doesn't have "at" in its name doesn't justify giving it its own separate feature flags. This folds it into the general ATCALLS feature flags. TESTED: Test pass on all platforms.
These tests are intentionally performing illegal operations to verify that the checks work as expected. We try to suppress related warnings as much as possible. With these changes, all tested versions of clang are fully well-behaved, in that they emit no warnings and apply the checks as expected. Gcc is another story, where some versions fail to suppress the warnings, and some versions actually get false errors. The current state seems to be the best possible under the circumstances. TESTED: Behavior across compiler versions is as noted above. Tests pass on all platforms.
This provides targets to run all variants of the st?ncpy_chk tests. TESTED: Works as intended.
@mascguy The only remaining intended cleanups for this cycle relate to |
Notably:
scandir()
fix.Tested (both from repo and from temp Portfile) on: