manojgupta added inline comments.
================ Comment at: clang/lib/Driver/ToolChains/Gnu.cpp:447 const char *crtbegin; - if (Args.hasArg(options::OPT_static)) - crtbegin = isAndroid ? "crtbegin_static.o" : "crtbeginT.o"; - else if (Args.hasArg(options::OPT_shared)) - crtbegin = isAndroid ? "crtbegin_so.o" : "crtbeginS.o"; - else if (IsPIE || IsStaticPIE) - crtbegin = isAndroid ? "crtbegin_dynamic.o" : "crtbeginS.o"; - else - crtbegin = isAndroid ? "crtbegin_dynamic.o" : "crtbegin.o"; - - if (HasCRTBeginEndFiles) + if (ToolChain.GetRuntimeLibType(Args) == ToolChain::RLT_CompilerRT && + !isAndroid) { ---------------- phosek wrote: > manojgupta wrote: > > This is currently unconditional on using compiler-rt. Given that > > compiler-rt provides the crt*.o files only under the CMake flag > > COMPILER_RT_BUILD_CRT, shouldn't there be an equivalent clang CMake flag to > > conditionally enable this. > `COMPILER_RT_BUILD_CRT` is `ON` by default now in D28791, but even if we > change that, I think this logic should be independent since you should be > able to build Clang separately from compiler-rt. Since it is possible to build compiler-rt without CRT files, I believe that clang should also be able to use compiler-rt without compiler-rt provided CRT files. Using them unconditionally will also break the case of using newer clang with older compiler-rt. Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D59264/new/ https://reviews.llvm.org/D59264 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits