r342827 - Fix modules build with shared library.

Eric Fiselier via cfe-commits cfe-commits at lists.llvm.org
Sun Sep 30 09:09:28 PDT 2018


+rsmith

Hi All,

Sorry, I'm not actually sure why this fix is correct.I stole both the fix
and the comment from a similar one on L150 of the module map left by
Richard Smith.

/Eric

On Tue, Sep 25, 2018 at 8:36 PM Shuai Wang <shuaiwang at google.com> wrote:

> 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/20180930/8abee789/attachment.html>


More information about the cfe-commits mailing list