-
Notifications
You must be signed in to change notification settings - Fork 57
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
feat(build): disable semantic interposition #624
Conversation
Tell the compiler to treat symbols marked explicitly as NCCL_OFI_EXPORT_SYMBOL as preemptible, but not others. This gives the compiler the freedom to assume that no external LD_PRELOAD'd library can inject itself as an implementation of any given function in the library, which means the compiler has the freedom to optimize across function. Signed-off-by: Nicholas Sielicki <[email protected]> stack-info: PR: #624, branch: aws-nslick/stack/37
3e46268
to
f7490c5
Compare
Frustratingly, this PR needed to be reopened so that it could be rebased atop #594. The old PR was #601 @bwbarrett previously commented:
I've removed it. Also two comments around using
I have removed them. In general, I don't agree with autotools that these flags should be avoided. There are certain flags that cannot be expressed when LIBS/LDFLAGS/CFLAGS are kept entirely separate. eg: Sorry for the trouble, thank you. |
Yeah, the split of LIBS and LDFLAGS is not as big of a deal to me. But passing linker flags to every compilation step is weird, which is why I called those out. The only time I have strong feelings on LIBS vs. LDFLAGS is that in-tree libtool archives need to be in LIBS for all the dependency analysis to work correctly. Other than that, do what makes sense between LIBS and LDFLAGS. |
Tell the compiler to treat symbols marked explicitly as NCCL_OFI_EXPORT_SYMBOL as preemptible, but not others. This gives the compiler the freedom to assume that no external LD_PRELOAD'd library can inject itself as an implementation of any given function in the library, which means the compiler has the freedom to optimize across function. Signed-off-by: Nicholas Sielicki <[email protected]> stack-info: PR: #624, branch: aws-nslick/stack/37
f7490c5
to
f6b3bd9
Compare
Tell the compiler to treat symbols marked explicitly as NCCL_OFI_EXPORT_SYMBOL as preemptible, but not others. This gives the compiler the freedom to assume that no external LD_PRELOAD'd library can inject itself as an implementation of any given function in the library, which means the compiler has the freedom to optimize across function. Signed-off-by: Nicholas Sielicki <[email protected]> stack-info: PR: aws#624, branch: aws-nslick/stack/37
Tell the compiler to treat symbols marked explicitly as NCCL_OFI_EXPORT_SYMBOL as preemptible, but not others. This gives the compiler the freedom to assume that no external LD_PRELOAD'd library can inject itself as an implementation of any given function in the library, which means the compiler has the freedom to optimize across function. Signed-off-by: Nicholas Sielicki <[email protected]> stack-info: PR: aws#624, branch: aws-nslick/stack/37
Tell the compiler to treat symbols marked explicitly as NCCL_OFI_EXPORT_SYMBOL as preemptible, but not others. This gives the compiler the freedom to assume that no external LD_PRELOAD'd library can inject itself as an implementation of any given function in the library, which means the compiler has the freedom to optimize across function. Signed-off-by: Nicholas Sielicki <[email protected]> stack-info: PR: #624, branch: aws-nslick/stack/37
f6b3bd9
to
a225f9f
Compare
Tell the compiler to treat symbols marked explicitly as NCCL_OFI_EXPORT_SYMBOL as preemptible, but not others. This gives the compiler the freedom to assume that no external LD_PRELOAD'd library can inject itself as an implementation of any given function in the library, which means the compiler has the freedom to optimize across function. Signed-off-by: Nicholas Sielicki <[email protected]> stack-info: PR: aws#624, branch: aws-nslick/stack/37
Checks are marked as failed, but actually passed: https://pr.nccl.plugin.jenkins.samwise.annapurna.aws.dev/job/NCCL%20Plugin%20PR%20CI/view/change-requests/job/PR-624/3/ |
Tell the compiler to treat symbols marked explicitly as NCCL_OFI_EXPORT_SYMBOL as preemptible, but not others. This gives the compiler the freedom to assume that no external LD_PRELOAD'd library can inject itself as an implementation of any given function in the library, which means the compiler has the freedom to optimize across function. Signed-off-by: Nicholas Sielicki <[email protected]>
Stacked PRs:
feat(build): disable semantic interposition
Tell the compiler to treat symbols marked explicitly as
NCCL_OFI_EXPORT_SYMBOL as preemptible, but not others. This gives the
compiler the freedom to assume that no external LD_PRELOAD'd library can
inject itself as an implementation of any given function in the library,
which means the compiler has the freedom to optimize across function.
Signed-off-by: Nicholas Sielicki [email protected]