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