[PATCH] D155290: [PGO] Use Unique Profile Files when New Processes are Forked
Qiongsi Wu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Jul 21 07:27:34 PDT 2023
qiongsiwu1 marked 2 inline comments as done.
qiongsiwu1 added inline comments.
================
Comment at: clang/lib/Driver/ToolChains/AIX.cpp:440
+ if (NeedsProfileRT || needsGCovInstrumentation(Args))
+ CmdArgs.push_back("-lpthreads");
+
----------------
w2yehia wrote:
> w2yehia wrote:
> > The change in `compiler-rt/lib/profile/InstrProfilingFile.c` affects non-AIX platforms too, so won't they need `-lpthreads` too?
> >
> In order to avoid adding -lpthreads, we can leave it to the user to decide whether to add or not (i.e. they would add -lpthreads to their application's link command if they want to).
> And so to avoid a link error due to undefined symbol, we can define `pthread_atfork` as a weak empty stub in the compiler-rt.
> The change in `compiler-rt/lib/profile/InstrProfilingFile.c` affects non-AIX platforms too, so won't they need `-lpthreads` too?
>
This is a good question. On Linux we are ok because `pthread_atfork` is actually implemented by `__register_atfork`, which is available in `libc.so`, so we do not need `-lpthreads`. I am not sure about other platforms. @davidxl @vsk @ellis may I get your comments?
================
Comment at: clang/lib/Driver/ToolChains/AIX.cpp:440
+ if (NeedsProfileRT || needsGCovInstrumentation(Args))
+ CmdArgs.push_back("-lpthreads");
+
----------------
qiongsiwu1 wrote:
> w2yehia wrote:
> > w2yehia wrote:
> > > The change in `compiler-rt/lib/profile/InstrProfilingFile.c` affects non-AIX platforms too, so won't they need `-lpthreads` too?
> > >
> > In order to avoid adding -lpthreads, we can leave it to the user to decide whether to add or not (i.e. they would add -lpthreads to their application's link command if they want to).
> > And so to avoid a link error due to undefined symbol, we can define `pthread_atfork` as a weak empty stub in the compiler-rt.
> > The change in `compiler-rt/lib/profile/InstrProfilingFile.c` affects non-AIX platforms too, so won't they need `-lpthreads` too?
> >
>
> This is a good question. On Linux we are ok because `pthread_atfork` is actually implemented by `__register_atfork`, which is available in `libc.so`, so we do not need `-lpthreads`. I am not sure about other platforms. @davidxl @vsk @ellis may I get your comments?
> In order to avoid adding -lpthreads, we can leave it to the user to decide whether to add or not (i.e. they would add -lpthreads to their application's link command if they want to).
> And so to avoid a link error due to undefined symbol, we can define `pthread_atfork` as a weak empty stub in the compiler-rt.
@w2yehia and I discussed offline, and we think it is ok to pass in `-lpthread` on AIX. There should not be any functional issues.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D155290/new/
https://reviews.llvm.org/D155290
More information about the cfe-commits
mailing list