| Name |
Last commit
|
Last update |
|---|---|---|
| googlemock | ||
| googletest | ||
| .gitignore | ||
| .travis.yml | ||
| BUILD.bazel | ||
| CMakeLists.txt | ||
| README.md | ||
| WORKSPACE | ||
| appveyor.yml | ||
| travis.sh |
ThreadLocal class needs to be have default visibility. Root cause is gtest uses typeinfo for the ThreadLocal class. The problem manifests When gtest/gmock are built as a shared library with libc++. When a class is used in typeinfo, it must have default visibility. There is an explanation about typeinfo and visibility here: https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/SymbolVisibility.html When libc++ is used with gtest in shared library mode, any tests that are compiled with -fvisibility=hidden and exercise the macro EXPECT_CALL, it results in an abort like: [ FATAL ] /usr/include/gtest/internal/gtest-port.h:1394:: Condition typeid(*base) == typeid(Derived) failed. This is because the typeinfo for ThreadLocal class is not visible. Therefore, linker failed to match it to the shared library symbol, creating a new symbol instead. This fixes https://github.com/google/googletest/issues/1207.
| Name |
Last commit
|
Last update |
|---|---|---|
| googlemock | Loading commit data... | |
| googletest | Loading commit data... | |
| .gitignore | Loading commit data... | |
| .travis.yml | Loading commit data... | |
| BUILD.bazel | Loading commit data... | |
| CMakeLists.txt | Loading commit data... | |
| README.md | Loading commit data... | |
| WORKSPACE | Loading commit data... | |
| appveyor.yml | Loading commit data... | |
| travis.sh | Loading commit data... |