Fix crashes in GCC 4.x shared-libs builds, due to recent symbol visibility changes #675
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.
Issue:
When building with GCC 4.8 and 4.9 and
-DBUILD_SHARED_LIBS=ON
, many tests were crashing. The crashes would say something like "free(): invalid pointer" and the stack trace would point into the c++ string headers.Things we tried
CXX_VISIBILITY_PRESET hidden
. So obviously symbol visibility has something to do with it.AWS_CRT_CPP_API
to the templatedStlAllocator
class (see edfed14), which stopped GCC 4.x from crashing, but then the Windows compiler didn't like that.Description of Changes:
Don't set visibility to hidden for GCC < 5. That's how we had it before. GCC 4.x is very old. This isn't the first time it's disappointed us
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.