Hi, Until recently I've been building LLVM with SHARED_LIBRARY=1. However, sith current svn, build now fails with unresolved symbols building opt. I've done a clean checkout, configure and make so it's not down to any local changes I've made. I'm building with: ./configure --enable-assertions \ --enable-expensive-checks=no \ --enable-pic \ --enable-targets=host-only \ --enable-shared \ --enable-jit make SHARED_LIBRARY=1 failure is: llvm[2]: Linking Release executable opt (without symbols) /home/src/llvm-trunk/llvm/tools/opt/Release/opt.o: In function `T.1603': opt.cpp:(.text+0x510): undefined reference to `llvm::createStripDeadPrototypesPass()' opt.cpp:(.text+0x525): undefined reference to `llvm::createDeadTypeEliminationPass()' opt.cpp:(.text+0x54a): undefined reference to `llvm::createConstantMergePass()' opt.cpp:(.text+0x57d): undefined reference to `llvm::createGlobalOptimizerPass()' opt.cpp:(.text+0x5a7): undefined reference to `llvm::createDeadArgEliminationPass()' opt.cpp:(.text+0x5e6): undefined reference to `llvm::createPruneEHPass()' opt.cpp:(.text+0x64d): undefined reference to `llvm::createArgumentPromotionPass(unsigned int)' opt.cpp:(.text+0x668): undefined reference to `llvm::createFunctionAttrsPass()' opt.cpp:(.text+0x688): undefined reference to `llvm::createGlobalDCEPass()' /home/src/llvm-trunk/llvm/tools/opt/Release/opt.o: In function `(anonymous namespace)::AddOptimizationPasses(llvm::PassManager&, llvm::FunctionPassManager&, unsigned int)': opt.cpp:(.text+0x6e7): undefined reference to `llvm::createFunctionInliningPass(int)' opt.cpp:(.text+0x781): undefined reference to `llvm::createAlwaysInlinerPass()' /home/src/llvm-trunk/llvm/tools/opt/Release/opt.o: In function `T.1601': opt.cpp:(.text+0x1f1f): undefined reference to `llvm::createArgumentPromotionPass(unsigned int)' opt.cpp:(.text+0x1f24): undefined reference to `llvm::createStructRetPromotionPass()' ...... more failures .... Should I expect this configuration to work? Thanks, -- James Williams -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100302/b9ed4b3a/attachment.html>
I suspect my change adding --enable-shared broke you, since that configure option didn't exist before last week (r97119). SHARED_LIBRARY is not one of the variables you're supposed to be able to set on make's command line (http://llvm.org/docs/MakefileGuide.html#variables). What are you using it for? What happens if you remove it? On Tue, Mar 2, 2010 at 1:35 PM, James Williams <junk at giantblob.com> wrote:> Hi, > > Until recently I've been building LLVM with SHARED_LIBRARY=1. However, sith > current svn, build now fails with unresolved symbols building opt. I've done > a clean checkout, configure and make so it's not down to any local changes > I've made. > > I'm building with: > ./configure --enable-assertions \ > --enable-expensive-checks=no \ > --enable-pic \ > --enable-targets=host-only \ > --enable-shared \ > --enable-jit > make SHARED_LIBRARY=1 > > failure is: > llvm[2]: Linking Release executable opt (without symbols) > /home/src/llvm-trunk/llvm/tools/opt/Release/opt.o: In function `T.1603': > opt.cpp:(.text+0x510): undefined reference to > `llvm::createStripDeadPrototypesPass()' > opt.cpp:(.text+0x525): undefined reference to > `llvm::createDeadTypeEliminationPass()' > opt.cpp:(.text+0x54a): undefined reference to > `llvm::createConstantMergePass()' > opt.cpp:(.text+0x57d): undefined reference to > `llvm::createGlobalOptimizerPass()' > opt.cpp:(.text+0x5a7): undefined reference to > `llvm::createDeadArgEliminationPass()' > opt.cpp:(.text+0x5e6): undefined reference to `llvm::createPruneEHPass()' > opt.cpp:(.text+0x64d): undefined reference to > `llvm::createArgumentPromotionPass(unsigned int)' > opt.cpp:(.text+0x668): undefined reference to > `llvm::createFunctionAttrsPass()' > opt.cpp:(.text+0x688): undefined reference to `llvm::createGlobalDCEPass()' > /home/src/llvm-trunk/llvm/tools/opt/Release/opt.o: In function `(anonymous > namespace)::AddOptimizationPasses(llvm::PassManager&, > llvm::FunctionPassManager&, unsigned int)': > opt.cpp:(.text+0x6e7): undefined reference to > `llvm::createFunctionInliningPass(int)' > opt.cpp:(.text+0x781): undefined reference to > `llvm::createAlwaysInlinerPass()' > /home/src/llvm-trunk/llvm/tools/opt/Release/opt.o: In function `T.1601': > opt.cpp:(.text+0x1f1f): undefined reference to > `llvm::createArgumentPromotionPass(unsigned int)' > opt.cpp:(.text+0x1f24): undefined reference to > `llvm::createStructRetPromotionPass()' > ...... more failures .... > > Should I expect this configuration to work? > > Thanks, > -- James Williams > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >
Hi, Thanks for getting back to me. I don't actually need opt dynamically linked but I do want shared libraries. If run make without "SHARED_LIBRARY=1" I don't appear to get any shared libraries built or installed. Is LLVM built as shared libraries supported? If so what's the correct build procedure? -- James On 2 March 2010 21:51, Jeffrey Yasskin <jyasskin at google.com> wrote:> I suspect my change adding --enable-shared broke you, since that > configure option didn't exist before last week (r97119). > SHARED_LIBRARY is not one of the variables you're supposed to be able > to set on make's command line > (http://llvm.org/docs/MakefileGuide.html#variables). What are you > using it for? What happens if you remove it? > > On Tue, Mar 2, 2010 at 1:35 PM, James Williams <junk at giantblob.com> wrote: > > Hi, > > > > Until recently I've been building LLVM with SHARED_LIBRARY=1. However, > sith > > current svn, build now fails with unresolved symbols building opt. I've > done > > a clean checkout, configure and make so it's not down to any local > changes > > I've made. > > > > I'm building with: > > ./configure --enable-assertions \ > > --enable-expensive-checks=no \ > > --enable-pic \ > > --enable-targets=host-only \ > > --enable-shared \ > > --enable-jit > > make SHARED_LIBRARY=1 > > > > failure is: > > llvm[2]: Linking Release executable opt (without symbols) > > /home/src/llvm-trunk/llvm/tools/opt/Release/opt.o: In function `T.1603': > > opt.cpp:(.text+0x510): undefined reference to > > `llvm::createStripDeadPrototypesPass()' > > opt.cpp:(.text+0x525): undefined reference to > > `llvm::createDeadTypeEliminationPass()' > > opt.cpp:(.text+0x54a): undefined reference to > > `llvm::createConstantMergePass()' > > opt.cpp:(.text+0x57d): undefined reference to > > `llvm::createGlobalOptimizerPass()' > > opt.cpp:(.text+0x5a7): undefined reference to > > `llvm::createDeadArgEliminationPass()' > > opt.cpp:(.text+0x5e6): undefined reference to `llvm::createPruneEHPass()' > > opt.cpp:(.text+0x64d): undefined reference to > > `llvm::createArgumentPromotionPass(unsigned int)' > > opt.cpp:(.text+0x668): undefined reference to > > `llvm::createFunctionAttrsPass()' > > opt.cpp:(.text+0x688): undefined reference to > `llvm::createGlobalDCEPass()' > > /home/src/llvm-trunk/llvm/tools/opt/Release/opt.o: In function > `(anonymous > > namespace)::AddOptimizationPasses(llvm::PassManager&, > > llvm::FunctionPassManager&, unsigned int)': > > opt.cpp:(.text+0x6e7): undefined reference to > > `llvm::createFunctionInliningPass(int)' > > opt.cpp:(.text+0x781): undefined reference to > > `llvm::createAlwaysInlinerPass()' > > /home/src/llvm-trunk/llvm/tools/opt/Release/opt.o: In function `T.1601': > > opt.cpp:(.text+0x1f1f): undefined reference to > > `llvm::createArgumentPromotionPass(unsigned int)' > > opt.cpp:(.text+0x1f24): undefined reference to > > `llvm::createStructRetPromotionPass()' > > ...... more failures .... > > > > Should I expect this configuration to work? > > > > Thanks, > > -- James Williams > > > > _______________________________________________ > > LLVM Developers mailing list > > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > > > > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100302/2c0f925f/attachment.html>