CDRIVER-5641: Build fix for _FORTIFY_SOURCE #1899
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a follow-up for #1868 to fix a build break in the abi-compliance-check task.
The break isn't straightforward to reproduce. It seems to require gcc-9(?), -D_FORTIFY_SOURCE=2 and -Og.
The cause is a set of tests that intentionally generate an oversized memcpy within dead code, to ensure the surrounding guard prevents the binary vector read/write operation. When _FORTIFY_SOURCE is set, additional checks are enabled for string functions like memcpy, enforcing a maximum object size of SIZE_MAX/2. In this patch, any time we build with _FORTIFY_SOURCE the maximum counts for these memcpy are adjusted so we don't overflow even for the largest element type (float32).