[LLVMdev] "lazy symbol binding failed" with dynamically loaded pass in opt

Julian Oppermann oppermann at esa.informatik.tu-darmstadt.de
Sat Apr 19 11:29:40 PDT 2014


Hi Duncan, Dear List,

Am 19.04.2014 um 00:32 schrieb Duncan P. N. Exon Smith <dexonsmith at apple.com>:

> Are you using the same configure line on both Linux and Darwin?
yes, just a bare ./configure.

> What build system are you using?  (cmake vs. configure)
The configure/make system.

> Is it the same build system you were using on Linux?
Yes.

In the meantime, I had a closer look on which particular symbol was missing. It turned out that the llvm::Calculate template (used by DominatorTreeBase::recalculate, which I call in my pass) is declared in llvm/Analysis/Dominators.h, but is implemented in DominatorInternals.h. *) When I include that header directly as a workaround, my pass works fine.

Cheers,
Julian

*) I forgot to mention that I'm still using the release_33 branch; in the trunk, the dominator tree computation code has been restructured, and no longer causes this linker problem in my example.



More information about the llvm-dev mailing list