[LLVMdev] Undefined symbol in Hello pass

Scott Ricketts
Thu, 02 Dec 2010 22:37:01 -0000

Hi all,

I recently experienced the same issue as below with LLVM 2.8 on Mac OS
10.5.8. I can load the pass with the debug version of opt, but not the
optimized version.

Does anyone know what the problem is or have any suggestions for debugging this?

My install went fine except for some failures during make check
(Unexpected Failures: 92). All failures were in one of the following:

LLVM::FrontendC++
LLVM::FrontendC
LLVM::FrontendObjC++
LLVM::FrontendObjC
LLVM::Transforms

Thanks,
Scott

On Tue, Mar 16, 2010 at 9:24 AM, Ben Ransford <ransford at cs.umass.edu>
wrote:
> Hello,
>
> I just built a virgin ToT (r98634) for release on vanilla Snow
> Leopard.  It seems that the Hello pass doesn't want to load because of
> undefined symbols:
>
> builddir% ../llvm/configure --prefix=$(PWD)/../installdir
--enable-optimized
> builddir% make
> builddir% make install && cd ../installdir
> installdir% bin/opt -load lib/libLLVMHello.dylib
> Error opening 'lib/libLLVMHello.dylib':
dlopen(lib/libLLVMHello.dylib,
> 9): Symbol not found:
> __ZN4llvm12FunctionPass11runOnModuleERNS_6ModuleE
>  Referenced from: /blah/installdir/lib/libLLVMHello.dylib
>  Expected in: flat namespace
>  in /blah/installdir/lib/libLLVMHello.dylib
>  -load request ignored.
>
> This error doesn't occur in debug mode (same build as above, but with
> --disable-optimized):
>
> installdir% bin/opt -load lib/libLLVMHello.dylib -help | grep hello
>    -hello                                     - Hello World Pass
>    -hello2                                    - Hello World Pass
> (with getAnalysisUsage implemented)
>
> I noticed that lib/Transforms/Hello/Makefile has an empty USEDLIBS
> variable, but that may be a red herring because it works in debug
> mode.  I'm hoping someone who knows the build system better than I
> (i.e., at all) can provide some insight into what's happening.
>
> -ben
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>