Thank you, Reid. I have applied tha patch to ltdl.c ltdl.h. The problem still exists. I looked up the symbol on libLLVMCore.a, and found three U-entries and one T-entry. However, the Darwin linker is not able to find the T-entry. Any idea? pollux:~/test jingyu$ opt -load /Users/jingyu/tools/build-ppc/Release/lib/LLVMHello.so -help Error opening '/Users/jingyu/tools/build-ppc/Release/lib/LLVMHello.so': Can't open :/Users/jingyu/tools/build-ppc/Release/lib/LLVMHello.so: dlopen(/Users/jingyu/tools/build-ppc/Release/lib/LLVMHello.so, 9): Symbol not found:__ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13AnalysisUsageE Referenced from: /Users/jingyu/tools/build-ppc/Release/lib/LLVMHello.so Expected in: flat namespace pollux:~/tools/build-ppc/Release/lib jingyu$ nm libLLVMCore.a | grep __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13AnalysisUsageE U __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13AnalysisUsageE U __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13AnalysisUsageE 00004100 T __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13AnalysisUsageE 000197d8 S __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13AnalysisUsageE.eh U __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13AnalysisUsageE Jing -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20060828/6680507c/attachment.html>
On Mon, 2006-08-28 at 00:00 -0500, Jing Yu wrote:> Thank you, Reid. > > I have applied tha patch to ltdl.c ltdl.h. The problem still exists.Okay, I guess that wasn't it.> I looked up the symbol on libLLVMCore.a, and found three U-entries and > one T-entry. However, the Darwin linker is not able to find the > T-entry. Any idea?Nope. I think you're going to have to get some Darwin specific help on this one. I don't have a Mac so I can't replicate your situation. The Apple guys will be working tomorrow, so hopefully they can take a look at it.> pollux:~/test jingyu$ opt > -load /Users/jingyu/tools/build-ppc/Release/lib/LLVMHello.so -help > Error opening > '/Users/jingyu/tools/build-ppc/Release/lib/LLVMHello.so': Can't > open :/Users/jingyu/tools/build-ppc/Release/lib/LLVMHello.so: > dlopen(/Users/jingyu/tools/build-ppc/Release/lib/LLVMHello.so, 9): > Symbol not > found:__ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13AnalysisUsageE > Referenced > from: /Users/jingyu/tools/build-ppc/Release/lib/LLVMHello.so > Expected in: flat namespaceOh, one other thing you could try. Add LLVMCore.a to the USED_LIBS line in the lib/Transforms/Hello/Makefile file. This should link the addToPassManager method into the shared object, which might allow the pass to register.> pollux:~/tools/build-ppc/Release/lib jingyu$ nm libLLVMCore.a | grep > __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13AnalysisUsageE > U > __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13AnalysisUsageE > U > __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13AnalysisUsageE > 00004100 T > __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13AnalysisUsageEYes, this is the definition of the symbol. Not sure why the linker can't find it. I think on Darwin the runtime loader can't open the executable. But, I thought that problem was resolved with the ltdl.{c,h} change that you already implemented. As I said before, you're going to need some help from someone that knows Darwin better than I do.> 000197d8 S > __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13AnalysisUsageE.eh > U > __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13AnalysisUsageE > > > JingReid.
On Mon, 28 Aug 2006, Jing Yu wrote: I don't really have any ideas beyond what Reid has already said, but:> pollux:~/test jingyu$ opt -load > /Users/jingyu/tools/build-ppc/Release/lib/LLVMHello.so -help > Error opening '/Users/jingyu/tools/build-ppc/Release/lib/LLVMHello.so': > Can't open :/Users/jingyu/tools/build-ppc/Release/lib/LLVMHello.so: > dlopen(/Users/jingyu/tools/build-ppc/Release/lib/LLVMHello.so, 9): Symbol > not > found:__ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13AnalysisUsageE > Referenced from: /Users/jingyu/tools/build-ppc/Release/lib/LLVMHello.so > Expected in: flat namespace > > pollux:~/tools/build-ppc/Release/lib jingyu$ nm libLLVMCore.a | grepTry using 'nm -m' on the 'opt' executable itself. Using plain nm on my local one yields: 00121a4e T __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13AnalysisUsageE and nm -m shows: 00121a4e (__TEXT,__text) external __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13AnalysisUsageE Is this what you're seeing? Are you using llvm 1.8 or CVS? You might try CVS if 1.8 doesn't work for you. -Chris -- http://nondot.org/sabre/ http://llvm.org/
I am using llvm 1.8 and have patched ltdl.c and ltdl.h to the latest version. My Makefile has LLVMLIBS = LLVMCore.a LLVMSupport.a LLVMSystem.a included.> Try using 'nm -m' on the 'opt' executable itself. Using plain nm on my > local one yields: > 00121a4e T > __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13AnalysisUsageE > > and nm -m shows: > 00121a4e (__TEXT,__text) external > > __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13AnalysisUsageE > > Is this what you're seeing? Are you using llvm 1.8 or CVS? You might try > CVS if 1.8 doesn't work for you. >Here is what I am seeing with nm. Is it normal to have a .eh entry that I did not see on Pentium4? $nm opt | grep __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPass 001b8d90 T __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13Analys isUsageE 00380b64 S __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPassManagerTERNS_13Analys isUsageE.eh $ nm -m opt | grep __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPass 001b8d90 (__TEXT,__text) external __ZN4llvm12FunctionPass16addToPassManagerEPNS_20FunctionPa ssManagerTERNS_13AnalysisUsageE 00380b64 (__TEXT,__eh_frame) external __ZN4llvm12FunctionPass16addToPassManagerEPNS_20Functi onPassManagerTERNS_13AnalysisUsageE.eh I will try the CVS version. Thanks, Jing -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20060828/99118335/attachment.html>