[LLVMdev] Circular dependencies
Eric Kidd
emk.lists at gmail.com
Wed Mar 22 06:26:12 PST 2006
On Mar 21, 2006, at 11:23 PM, Chris Lattner wrote:
>>> LLVMCodeGen.o LLVMSelectionDAG.o libLLVMAnalysis.a
>>> libLLVMTarget.a
>>> libLLVMTransformUtils.a libLLVMipa.a
>
> CodeGen should depend on Target, but not the other way around.
> LLVMIPA should depend on LLVMAnalysis, but certainly nothing in the
> list should depend on LLVMIPA. If you knew what was pulling in IPA
> that would probably be an easy tie to sever.
>
> Ideally, none of the above should depend on libLLVMTransformUtils.
Yeah, I'm definitely having headaches with LLVMTransformUtils, which
needs to appear before LLVMAnalysis and lLLVMTarget.
-lLLVMTransformUtils -lLLVMAnalysis -lLLVMTarget
If I don't do this, I get link errors on:
__ZN4llvm11BasicAAStubEv
I think, for now, the only portable workaround is for me to link all
the *.a libraries in that loop twice, and hope we can clean up the
dependencies later.
There's several places where llvm-config could be simplified quite a
bit if we broke the unnecessary dependencies and merged the remaining
loops into single *.a files. In some sense, parts of llvm-config are
re-inventing the system linker. Depending on your point of view, this
might be a bad thing. :-)
Many thanks to everyone who's helped sort this out!
Cheers,
Eric
More information about the llvm-dev
mailing list