Use -fvisibility=hidden
for spdlog
#5427
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 branch coded up by @teo-tsirpanis . I'm putting up a PR for it, at his expicit request.
The problem to be solved is intermittent errors in TileDB-SOMA, which uses this repo as a dependency. For dev work, on a Mac, I build both TileDB Core and TileDB-SOMA from source. The intersection of those three things makes me, perhaps, unusual. Regardless, I have (until this PR) codepaths which, quite simply, always segfault.
The segfaulting patterns involve innocuous logging statements. The stack traces are of this form: https://gist.github.com/johnkerl/b1e07a70906177f498f6e9efa2979376
Notes:
formatted
is being passed to another with argument namedest
lldb
,p sizeof(formatted)
in the upper frame shows 24 whilep sizeof(dest)
in the lower frame shows 288libtiledb.dylib spdlog::logger
tolibtiledbsoma.dylib spdlog::logger
, and back -- so it's an ABI issue apparently.spdlog
both, yet the issue persistsI also tried
-fvisibility=hidden
within TileDB-SOMA's copy ofspdlog
and was not able to resolve the problem. Meanwhile @teo-tsirpanis's solution here does resolve the problem.[sc-62143]
TYPE: IMPROVEMENT
DESC: Use
-fvisibility=hidden
forspdlog