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 <dblai...@gmail.com> wrote: > +Shuai Wang > > On Tue, Sep 25, 2018 at 2:14 PM David Blaikie <dblai...@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@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@lists.llvm.org >>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >>> >>
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits