My environment is MacBook Pro w/Snow Leopard (10.6.8). I have built and installed llvm-2.9 and gcc front-end (llvm-gcc-4.2-2.9) at /Users/amitava/opt/llvm.
Under $LLVM_ROOT/bin (i.e. /Users/amitava/opt/llvm/bin), I have added the following, the following symlinks
$ ln -s llvm-gcc gcc
$ ln -s llvm-g++ g++
$ ln -s llvm-c++ c++
$ ln -s llvm-ar ar
While building deca, I have prefixed /Users/opt/llvm/bin to the PATH. Now I am getting the following link errors. I wonder if the SWIG bindings refer to another version of java - mine is - /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java (found version "1.6.0.29")
build_llvm_bindings:
[echo] Building jllvm.
[exec] Buildfile: /Users/amitava/opt/decac/src/org/jllvm/build.xml
[exec]
[exec] build:
[exec] [exec] -- The C compiler identification is GNU
[exec] [exec] -- The CXX compiler identification is GNU
[exec] [exec] -- Checking whether C compiler has -isysroot
[exec] [exec] -- Checking whether C compiler has -isysroot - yes
[exec] [exec] -- Checking whether C compiler supports OSX deployment target flag
[exec] [exec] -- Checking whether C compiler supports OSX deployment target flag - yes
[exec] [exec] -- Check for working C compiler: /Users/amitava/opt/llvm/bin/gcc
[exec] [exec] -- Check for working C compiler: /Users/amitava/opt/llvm/bin/gcc -- works
[exec] [exec] -- Detecting C compiler ABI info
[exec] [exec] -- Detecting C compiler ABI info - done
[exec] [exec] -- Checking whether CXX compiler has -isysroot
[exec] [exec] -- Checking whether CXX compiler has -isysroot - yes
[exec] [exec] -- Checking whether CXX compiler supports OSX deployment target flag
[exec] [exec] -- Checking whether CXX compiler supports OSX deployment target flag - yes
[exec] [exec] -- Check for working CXX compiler: /Users/amitava/opt/llvm/bin/c++
[exec] [exec] -- Check for working CXX compiler: /Users/amitava/opt/llvm/bin/c++ -- works
[exec] [exec] -- Detecting CXX compiler ABI info
[exec] [exec] -- Detecting CXX compiler ABI info - done
[exec] [exec] -- Java version 1.6.0.29 configured successfully!
[exec] [exec] -- Found Java: /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home/bin/java (found version "1.6.0.29")
[exec] [exec] -- Found JNI: -framework JavaVM
[exec] [exec] -- Configuring done
[exec] [exec] -- Generating done
[exec] [exec] -- Build files have been written to: /Users/amitava/opt/decac/src/org/jllvm/bindings
[exec] [exec] Scanning dependencies of target jllvm
[exec] [exec] [ 9%] Building C object CMakeFiles/jllvm.dir/Analysis_wrap.c.o
[exec] [exec] [ 18%] Building C object CMakeFiles/jllvm.dir/BitReader_wrap.c.o
[exec] [exec] [ 27%] Building C object CMakeFiles/jllvm.dir/BitWriter_wrap.c.o
[exec] [exec] [ 36%] Building C object CMakeFiles/jllvm.dir/Core_wrap.c.o
[exec] [exec] /Users/amitava/opt/decac/src/org/jllvm/bindings/Core_wrap.c: In function ‘Java_jllvm_llvm_CoreJNI_LLVMUnionTypeInContext’:
[exec] [exec] /Users/amitava/opt/decac/src/org/jllvm/bindings/Core_wrap.c:2221: warning: cast to pointer from integer of different size
[exec] [exec] /Users/amitava/opt/decac/src/org/jllvm/bindings/Core_wrap.c: In function ‘Java_jllvm_llvm_CoreJNI_LLVMUnionType’:
[exec] [exec] /Users/amitava/opt/decac/src/org/jllvm/bindings/Core_wrap.c:2237: warning: cast to pointer from integer of different size
[exec] [exec] /Users/amitava/opt/decac/src/org/jllvm/bindings/Core_wrap.c: In function ‘Java_jllvm_llvm_CoreJNI_LLVMConstUnion’:
[exec] [exec] /Users/amitava/opt/decac/src/org/jllvm/bindings/Core_wrap.c:4104: warning: cast to pointer from integer of different size
[exec] [exec] [ 45%] Building C object CMakeFiles/jllvm.dir/EnhancedDisassembly_wrap.c.o
[exec] [exec] [ 54%] Building C object CMakeFiles/jllvm.dir/ExecutionEngine_wrap.c.o
[exec] [exec] [ 63%] Building C object CMakeFiles/jllvm.dir/LinkTimeOptimizer_wrap.c.o
[exec] [exec] [ 72%] Building C object CMakeFiles/jllvm.dir/lto_wrap.c.o
[exec] [exec] [ 81%] Building C object CMakeFiles/jllvm.dir/Target_wrap.c.o
[exec] [exec] [ 90%] Building C object CMakeFiles/jllvm.dir/Transforms/IPO_wrap.c.o
[exec] [exec] [100%] Building C object CMakeFiles/jllvm.dir/Transforms/Scalar_wrap.c.o
[exec] [exec] Linking CXX shared library libjllvm.dylib
[exec] [exec] Undefined symbols:
[exec] [exec] "_LLVMAddLoopIndexSplitPass", referenced from:
[exec] [exec] _Java_jllvm_llvm_ScalarJNI_LLVMAddLoopIndexSplitPass in Scalar_wrap.c.o
[exec] [exec] (maybe you meant: _Java_jllvm_llvm_ScalarJNI_LLVMAddLoopIndexSplitPass)
[exec] [exec] "_lto_codegen_create", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1codegen_1create in lto_wrap.c.o
[exec] [exec] "_lto_codegen_add_module", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1codegen_1add_1module in lto_wrap.c.o
[exec] [exec] "_LLVMUnionType", referenced from:
[exec] [exec] _Java_jllvm_llvm_CoreJNI_LLVMUnionType in Core_wrap.c.o
[exec] [exec] (maybe you meant: _Java_jllvm_llvm_CoreJNI_LLVMUnionType, _Java_jllvm_llvm_CoreJNI_LLVMUnionTypeInContext )
[exec] [exec] "_lto_codegen_compile", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1codegen_1compile in lto_wrap.c.o
[exec] [exec] "_lto_codegen_dispose", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1codegen_1dispose in lto_wrap.c.o
[exec] [exec] "_lto_get_error_message", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1get_1error_1message in lto_wrap.c.o
[exec] [exec] "_lto_module_is_object_file_in_memory", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1module_1is_1object_1file_1in_1memory in lto_wrap.c.o
[exec] [exec] "_LLVMUnionTypeInContext", referenced from:
[exec] [exec] _Java_jllvm_llvm_CoreJNI_LLVMUnionTypeInContext in Core_wrap.c.o
[exec] [exec] (maybe you meant: _Java_jllvm_llvm_CoreJNI_LLVMUnionTypeInContext)
[exec] [exec] "_lto_codegen_write_merged_modules", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1codegen_1write_1merged_1modules in lto_wrap.c.o
[exec] [exec] "_lto_codegen_set_gcc_path", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1codegen_1set_1gcc_1path in lto_wrap.c.o
[exec] [exec] "_lto_get_version", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1get_1version in lto_wrap.c.o
[exec] [exec] "_lto_codegen_debug_options", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1codegen_1debug_1options in lto_wrap.c.o
[exec] [exec] "_LLVMConstUnion", referenced from:
[exec] [exec] _Java_jllvm_llvm_CoreJNI_LLVMConstUnion in Core_wrap.c.o
[exec] [exec] (maybe you meant: _Java_jllvm_llvm_CoreJNI_LLVMConstUnion)
[exec] [exec] "_llvm_create_optimizer", referenced from:
[exec] [exec] _Java_jllvm_llvm_LinkTimeOptimizerJNI_llvm_1create_1optimizer in LinkTimeOptimizer_wrap.c.o
[exec] [exec] "_LLVMInitializePIC16Target", referenced from:
[exec] [exec] _LLVMInitializeAllTargets in Target_wrap.c.o
[exec] [exec] "_lto_codegen_set_pic_model", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1codegen_1set_1pic_1model in lto_wrap.c.o
[exec] [exec] "_EDInstID", referenced from:
[exec] [exec] _Java_jllvm_llvm_EnhancedDisassemblyJNI_EDInstID in EnhancedDisassembly_wrap.c.o
[exec] [exec] (maybe you meant: _Java_jllvm_llvm_EnhancedDisassemblyJNI_EDInstID)
[exec] [exec] "_llvm_destroy_optimizer", referenced from:
[exec] [exec] _Java_jllvm_llvm_LinkTimeOptimizerJNI_llvm_1destroy_1optimizer in LinkTimeOptimizer_wrap.c.o
[exec] [exec] "_LLVMCountUnionElementTypes", referenced from:
[exec] [exec] _Java_jllvm_llvm_CoreJNI_LLVMCountUnionElementTypes in Core_wrap.c.o
[exec] [exec] (maybe you meant: _Java_jllvm_llvm_CoreJNI_LLVMCountUnionElementTypes)
[exec] [exec] "_LLVMInitializePIC16TargetInfo", referenced from:
[exec] [exec] _LLVMInitializeAllTargetInfos in Target_wrap.c.o
[exec] [exec] "_lto_module_is_object_file_in_memory_for_target", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1module_1is_1object_1file_1in_1memory_1for_1target in lto_wrap.c.o
[exec] [exec] "_lto_codegen_set_assembler_path", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1codegen_1set_1assembler_1path in lto_wrap.c.o
[exec] [exec] "_lto_codegen_add_must_preserve_symbol", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1codegen_1add_1must_1preserve_1symbol in lto_wrap.c.o
[exec] [exec] "_lto_module_get_symbol_attribute", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1module_1get_1symbol_1attribute in lto_wrap.c.o
[exec] [exec] "_lto_module_create", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1module_1create in lto_wrap.c.o
[exec] [exec] "_llvm_optimize_modules", referenced from:
[exec] [exec] _Java_jllvm_llvm_LinkTimeOptimizerJNI_llvm_1optimize_1modules in LinkTimeOptimizer_wrap.c.o
[exec] [exec] "_lto_module_dispose", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1module_1dispose in lto_wrap.c.o
[exec] [exec] "_lto_module_get_num_symbols", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1module_1get_1num_1symbols in lto_wrap.c.o
[exec] [exec] "_lto_codegen_set_debug_model", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1codegen_1set_1debug_1model in lto_wrap.c.o
[exec] [exec] "_LLVMGetUnionElementTypes", referenced from:
[exec] [exec] _Java_jllvm_llvm_CoreJNI_LLVMGetUnionElementTypes in Core_wrap.c.o
[exec] [exec] (maybe you meant: _Java_jllvm_llvm_CoreJNI_LLVMGetUnionElementTypes)
[exec] [exec] "_lto_module_get_target_triple", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1module_1get_1target_1triple in lto_wrap.c.o
[exec] [exec] "_lto_module_is_object_file", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1module_1is_1object_1file in lto_wrap.c.o
[exec] [exec] "_llvm_read_object_file", referenced from:
[exec] [exec] _Java_jllvm_llvm_LinkTimeOptimizerJNI_llvm_1read_1object_1file in LinkTimeOptimizer_wrap.c.o
[exec] [exec] "_lto_module_is_object_file_for_target", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1module_1is_1object_1file_1for_1target in lto_wrap.c.o
[exec] [exec] "_lto_module_get_symbol_name", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1module_1get_1symbol_1name in lto_wrap.c.o
[exec] [exec] "_lto_module_create_from_memory", referenced from:
[exec] [exec] _Java_jllvm_llvm_ltoJNI_lto_1module_1create_1from_1memory in lto_wrap.c.o
[exec] [exec] ld: symbol(s) not found
[exec] [exec] collect2: ld returned 1 exit status
[exec] [exec] make[2]: *** [libjllvm.dylib] Error 1
[exec] [exec] make[1]: *** [CMakeFiles/jllvm.dir/all] Error 2
[exec] [exec] make: *** [all] Error 2
[exec] [exec] Result: 2
-Amitava