r342827 - Fix modules build with shared library.

Shuai Wang via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 25 17:36:19 PDT 2018


I'd like to understand this better as well, in particular what would be a
proper fix?

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

> +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/e4b8289c/attachment-0001.html>


More information about the cfe-commits mailing list