[PATCH] D14847: Support CMake's clang_rt.profile library naming scheme

Chris Bieneman via cfe-commits cfe-commits at lists.llvm.org
Thu Nov 19 16:16:58 PST 2015


> On Nov 19, 2015, at 4:12 PM, Justin Bogner <mail at justinbogner.com> wrote:
> 
> Chris Bieneman <beanz at apple.com <mailto:beanz at apple.com>> writes:
>> beanz created this revision.
>> beanz added a reviewer: bogner.
>> beanz added a subscriber: cfe-commits.
>> 
>> This code is a bit undesirable, but it gets clang to work with the
>> autoconf and cmake-built libclang_rt.profile libraries.
> 
> Yeah, this is a bit awkward, but it makes sense for the transition
> period. LGTM with a couple of nits.
> 
>> http://reviews.llvm.org/D14847
>> 
>> Files:
>>  lib/Driver/ToolChains.cpp
>> 
>> Index: lib/Driver/ToolChains.cpp
>> ===================================================================
>> --- lib/Driver/ToolChains.cpp
>> +++ lib/Driver/ToolChains.cpp
>> @@ -323,21 +323,35 @@
>>                               ArgStringList &CmdArgs) const {
>>   if (!needsProfileRT(Args)) return;
>> 
>> +  // TODO: Clean this up once autoconf is gone
>> +  SmallString<128> P(getDriver().ResourceDir);
>> +  llvm::sys::path::append(P, "lib", "darwin");
>> +  auto library = "libclang_rt.profile_osx.a";
> 
> Did you just use auto for a 'const char *'? I don't think its worth the
> saved keystrokes. Also, the variable should be named "Library”.

I optimize for keystrokes, and that is more than 2x as many characters!

I’ll update and commit :-)

-Chris

> 
>> +
>>   // Select the appropriate runtime library for the target.
>> -  if (isTargetWatchOSBased()) {
>> -    AddLinkRuntimeLib(Args, CmdArgs, "libclang_rt.profile_watchos.a",
>> -                      /*AlwaysLink*/ true);
>> -  } else if (isTargetTvOSBased()) {
>> -    AddLinkRuntimeLib(Args, CmdArgs, "libclang_rt.profile_tvos.a",
>> -                      /*AlwaysLink*/ true);
>> -  } else if (isTargetIOSBased()) {
>> -    AddLinkRuntimeLib(Args, CmdArgs, "libclang_rt.profile_ios.a",
>> -                      /*AlwaysLink*/ true);
>> +  if (isTargetWatchOS()) {
>> +    library = "libclang_rt.profile_watchos.a";
>> +  } else if (isTargetWatchOSSimulator()) {
>> +    llvm::sys::path::append(P, "libclang_rt.profile_watchossim.a");
>> +    library = getVFS().exists(P) ? "libclang_rt.profile_watchossim.a"
>> +                                 : "libclang_rt.profile_watchos.a";
>> +  } else if (isTargetTvOS()) {
>> +    library = "libclang_rt.profile_tvos.a";
>> +  } else if (isTargetTvOSSimulator()) {
>> +    llvm::sys::path::append(P, "libclang_rt.profile_tvossim.a");
>> +    library = getVFS().exists(P) ? "libclang_rt.profile_tvossim.a"
>> +                                 : "libclang_rt.profile_tvos.a";
>> +  } else if (isTargetIPhoneOS()) {
>> +    library = "libclang_rt.profile_ios.a";
>> +  } else if (isTargetIOSSimulator()) {
>> +    llvm::sys::path::append(P, "libclang_rt.profile_iossim.a");
>> +    library = getVFS().exists(P) ? "libclang_rt.profile_iossim.a"
>> +                                 : "libclang_rt.profile_ios.a";
>>   } else {
>>     assert(isTargetMacOS() && "unexpected non MacOS platform");
>> -    AddLinkRuntimeLib(Args, CmdArgs, "libclang_rt.profile_osx.a",
>> -                      /*AlwaysLink*/ true);
>>   }
>> +  AddLinkRuntimeLib(Args, CmdArgs, library,
>> +                    /*AlwaysLink*/ true);
>>   return;
>> }

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20151119/339564b7/attachment-0001.html>


More information about the cfe-commits mailing list