[PATCH] D91361: [AIX][driver] Include crti[_64].o and -bcdtors also for C language link invocations by default

David Tenty via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Nov 12 18:56:31 PST 2020


daltenty added inline comments.


================
Comment at: clang/lib/Driver/ToolChains/AIX.cpp:137
 
-    if (D.CCCIsCXX())
+    if (D.CCCIsCXX() || D.CCCIsCC())
       CmdArgs.push_back(Args.MakeArgString(
----------------
Xiangling_L wrote:
> daltenty wrote:
> > I think that rather that adding CC, we should just pull the if and unconditionally link crti.o. This is consistent with what is done on other platforms and since the `llvm.global_c/dtors` are generally allowable in the IR, we might see them in more than just the two driver scenarios suggested here.
> > we should just pull the if and unconditionally link crti.o. ...we might see them in more than just the two driver scenarios suggested here.
> 
> I was thinking to use the code to document what exactly  happen is under c++ and c mode we link crti.o. But I think it makes sense to just remove `if` as you said. But we can indicate it's something for C and CXX mode only? Cuz as far as I know, there are c++, c, preprocessor, cl and flang driver mode. I think it only make sense for us to see static init functions generated in IR in c++ and c mode on AIX?  
> 
> 
These mode flags don't exactly correspond to input languages though, so it's not quite right to say this is "something for C and CXX mode only"  (i.e. CXX isn't defined as "C++" mode, it's "behave similar to g++"). 

For example, it seems like if someone tired to link a mixed C and Fortran program using --driver-mode=flang, the static init in the C portion would stop working because we'd omit crit.o. I don't know if there is an advantage to being more specific in this case,  and it definitely seems like it could run us into problems.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D91361/new/

https://reviews.llvm.org/D91361



More information about the cfe-commits mailing list