r342827 - Fix modules build with shared library.

Eric Fiselier via cfe-commits cfe-commits at lists.llvm.org
Sun Sep 30 10:23:27 PDT 2018


+rsmith (actually this time)

On Sun, Sep 30, 2018 at 12:09 PM Eric Fiselier <eric at efcs.ca> wrote:

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


More information about the cfe-commits mailing list