r342827 - Fix modules build with shared library.

David Blaikie via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 25 14:15:00 PDT 2018


+Shuai Wang

On Tue, Sep 25, 2018 at 2:14 PM David Blaikie <dblaikie at gmail.com> wrote:

> Hey Eric - thanks for the fix - but could you explain the issue here in a
> bit more detail, as I'm a bit confused (& really interested in
> understanding any layering problems in LLVM - and fixing them/making sure
> they're fixed/holding the line/etc)
>
> What do you mean by "pull all of the AST matchers library into clang" -
> how does including a header ever add a link dependency?
>
> - Dave
>
>
> On Sat, Sep 22, 2018 at 5:49 PM Eric Fiselier via cfe-commits <
> cfe-commits at lists.llvm.org> wrote:
>
>> Author: ericwf
>> Date: Sat Sep 22 17:48:05 2018
>> New Revision: 342827
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=342827&view=rev
>> Log:
>> Fix modules build with shared library.
>>
>> r341994 caused clangAnalysis to pull all of the AST matchers
>> library into clang. Due to inline key functions in the headers,
>> importing the AST matchers library gives a link dependency on the
>> AST matchers (and thus the AST), which clang should not
>> have.
>>
>> This patch works around the issues by excluding the offending
>> libclangAnalysis header in the modulemap.
>>
>> Modified:
>>     cfe/trunk/include/clang/module.modulemap
>>
>> Modified: cfe/trunk/include/clang/module.modulemap
>> URL:
>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/module.modulemap?rev=342827&r1=342826&r2=342827&view=diff
>>
>> ==============================================================================
>> --- cfe/trunk/include/clang/module.modulemap (original)
>> +++ cfe/trunk/include/clang/module.modulemap Sat Sep 22 17:48:05 2018
>> @@ -5,6 +5,12 @@ module Clang_Analysis {
>>    textual header "Analysis/Analyses/ThreadSafetyOps.def"
>>
>>    module * { export * }
>> +
>> +  // FIXME: Exclude these headers to avoid pulling all of the AST
>> matchers
>> +  // library into clang. Due to inline key functions in the headers,
>> +  // importing the AST matchers library gives a link dependency on the
>> AST
>> +  // matchers (and thus the AST), which clang-format should not have.
>> +  exclude header "Analysis/Analyses/ExprMutationAnalyzer.h"
>>  }
>>
>>  module Clang_AST {
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180925/ff8096c6/attachment.html>


More information about the cfe-commits mailing list