-
-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve RDC #167
Improve RDC #167
Conversation
It is incorrect in the case of whole archive linking and prevent us to creating shared library.
/test |
@rnburn I think you would like to try this out, I will wait for your feedback for a while. |
Integration Build: succeeded ✅ |
Thank you @cloudhan - I'll try testing the transitive linking dependencies. |
Intermediate *_dlink.o completely destory the idea of transitive device link. The only acceptable way is do dlink once and only once in the whole dependency graph. https://forums.developer.nvidia.com/t/linking-multiple-static-cuda-libs/148964 |
Backlog with an example for this. examples_deep_rdc.tar.gz
|
Backlog for already known issue: mark base.a, intermediate1.a, intermediate2.a and lib_cu.a as and change cc_binary(
name = "deep",
linkshared = 1,
linkstatic = 1,
deps = [
":base",
":intermediate1",
":intermediate2",
":lib_cu",
],
) That is we want to include all symbols and produce a usable .so file for other user or downstream library, and this is a common valid use case, however, will trigger errors:
This is cause by the nvlink limitation:
|
cuda_objects
now returnsCcInfo
with linking context, thus, thecc_library
deps can correctly propagate tocuda_library
This fixed static linking issue introduced by #125, and partially address some concerns mentioned in #164