[cfe-dev] Automatic target selection for Clang tools
Eric Christopher via cfe-dev
cfe-dev at lists.llvm.org
Fri Sep 18 08:47:58 PDT 2015
On Fri, Sep 18, 2015, 8:07 AM Reid Kleckner via cfe-dev <
cfe-dev at lists.llvm.org> wrote:
> Moving more argv processing logic to lib/Driver sounds like a great idea.
> On Thu, Sep 17, 2015 at 3:54 PM, Luke Zarko via cfe-dev <
> cfe-dev at lists.llvm.org> wrote:
>> The Clang gcc-compatible driver (clang/tools/driver/driver.cpp) has some
>> logic to select an alternate target based on the executable it was called
>> as. For instance, if you symlink i686-linux-android-gcc to clang and invoke
>> it, the driver will act as though it were called with another argument
>> ("-target i686-linux-android"). This leads to visible effects even in
>> syntax-only compilations (like the __ANDROID__ preprocessor symbol being
>> This behavior is not replicated for tool invocations--for
>> instance, clang::createInvocationFromCommandLine will not choose an
>> alternate target based on ArgList. This means that configurations stored
>> in compilation databases aren't accurately replayed.
>> One possible solution is to move the target-extracting logic from
>> driver/driver.cpp to a library (Frontend/Utils.h) and to be sure to call it
>> in any situation where an argv-equivalent array is used to initialize the
>> compiler. Is this appropriate, or does it violate some layering principle
>> that I don't understand?
>> cfe-dev mailing list
>> cfe-dev at lists.llvm.org
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-dev