This repository has been archived by the owner on Nov 17, 2023. It is now read-only.
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.
Prior to this commit, linker version scripts were used to control the set of
visible symbols. These scripts exported C++ symbols, that do not have a stable
ABI and should not have been exported. Instead, use
MXNET_DLL
macro toannotate the visiblity in the source code and remove the linker version scripts where
possible.
Refer to "Deep CMake For Library Authors" CppCon 2019 talk by Craig Scott for
details on the cmake settings.
Some third-party libraries began relying on the C++ symbols, for example Horovod.
We need to rewrite their integration to only rely on the C API. These libraries are currently broken in any case, as they assume a different C++ ABI than the one used by the MXNet static build script. We can't change the static build script to adopt a different ABI without dropping support for RHEL7 based systems (see https://bugzilla.redhat.com/show_bug.cgi?id=1546704)