Hi, I can't seem to get VMKit to compile correctly. I'm on a 64 bit Jaunty system. I compiled llvm and llvm-gcc from the subversion source no problem, but when I try to compile VMKit I get some issue with GCAllocator: /home/mmwu/Download/llvm$ ./configure /home/mmwu/Download/llvm$ make ENABLE_OPTIMIZED=1 /home/mmwu/Download/llvm$ make ENABLE_OPTIMIZED=1 install ... /home/mmwu/Download/$ sudo apt-get install classpath ... /home/mmwu/Download/vmkit$ ./configure --with-llvmsrc=/home/mmwu/Download/llvm --with-llvmobj=/home/mmwu/Download/llvm --with-gnu-classpath-glibj=/usr/share/classpath/glibj.zip --with-gnu-classpath-libs=/usr/lib/classpath /home/mmwu/Download/vmkit$ make ENABLE_OPTIMIZED=1 make[2]: Entering directory `/home/mmwu/Download/vmkit/tools/vmkit' llvm[2]: Linking Release executable vmkit (without symbols) /home/mmwu/Download/vmkit/Release/lib/libGCMmap2.a(gcinit.o): In function `mvm::Collector::destroy()': gcinit.cpp:(.text+0x34): undefined reference to `GCAllocator::~GCAllocator()' gcinit.cpp:(.text+0x3c): undefined reference to `GCAllocator::operator delete(void*)' /home/mmwu/Download/vmkit/Release/lib/libGCMmap2.a(gcinit.o): In function `mvm::Collector::initialise()': gcinit.cpp:(.text+0x216): undefined reference to `GCAllocator::operator new(unsigned long)' gcinit.cpp:(.text+0x221): undefined reference to `GCAllocator::GCAllocator()' gcinit.cpp:(.text+0x2d5): undefined reference to `GCAllocator::operator delete(void*)' collect2: ld returned 1 exit status make[2]: *** [/home/mmwu/Download/vmkit/Release/bin/vmkit] Error 1 make[2]: Leaving directory `/home/mmwu/Download/vmkit/tools/vmkit' make[1]: *** [vmkit/.makeall] Error 2 make[1]: Leaving directory `/home/mmwu/Download/vmkit/tools' make: *** [all] Error 1 I would really appreciate any help I could get. Thanks, Michael
Dear Michael, The symbols that are said undefined by the compiler live in libAllocator.a. That file should be in Release/lib/, do you have it? It is possible that the compiler has linking order problems. What is the version of your gcc? You can try changing the link order of the make command by editing tools/vmkit/Makefile. Also, you should know that the GC of vmkit does not work on a 64bit system, so if you need the GC, you should try to emulate a 32bit system. Let me know how that worked for you. Nicolas Quoting Michael Wu <mmwu at princeton.edu>:> Hi, > > I can't seem to get VMKit to compile correctly. I'm on a 64 bit > Jaunty system. I compiled llvm and llvm-gcc from the subversion source > no problem, but when I try to compile VMKit I get some issue with > GCAllocator: > > /home/mmwu/Download/llvm$ ./configure > /home/mmwu/Download/llvm$ make ENABLE_OPTIMIZED=1 > /home/mmwu/Download/llvm$ make ENABLE_OPTIMIZED=1 install > > ... > > /home/mmwu/Download/$ sudo apt-get install classpath > > ... > > /home/mmwu/Download/vmkit$ ./configure > --with-llvmsrc=/home/mmwu/Download/llvm > --with-llvmobj=/home/mmwu/Download/llvm > --with-gnu-classpath-glibj=/usr/share/classpath/glibj.zip > --with-gnu-classpath-libs=/usr/lib/classpath > /home/mmwu/Download/vmkit$ make ENABLE_OPTIMIZED=1 > > make[2]: Entering directory `/home/mmwu/Download/vmkit/tools/vmkit' > llvm[2]: Linking Release executable vmkit (without symbols) > /home/mmwu/Download/vmkit/Release/lib/libGCMmap2.a(gcinit.o): In > function `mvm::Collector::destroy()': > gcinit.cpp:(.text+0x34): undefined reference to > `GCAllocator::~GCAllocator()' > gcinit.cpp:(.text+0x3c): undefined reference to `GCAllocator::operator > delete(void*)' > /home/mmwu/Download/vmkit/Release/lib/libGCMmap2.a(gcinit.o): In > function `mvm::Collector::initialise()': > gcinit.cpp:(.text+0x216): undefined reference to `GCAllocator::operator > new(unsigned long)' > gcinit.cpp:(.text+0x221): undefined reference to > `GCAllocator::GCAllocator()' > gcinit.cpp:(.text+0x2d5): undefined reference to `GCAllocator::operator > delete(void*)' > collect2: ld returned 1 exit status > make[2]: *** [/home/mmwu/Download/vmkit/Release/bin/vmkit] Error 1 > make[2]: Leaving directory `/home/mmwu/Download/vmkit/tools/vmkit' > make[1]: *** [vmkit/.makeall] Error 2 > make[1]: Leaving directory `/home/mmwu/Download/vmkit/tools' > make: *** [all] Error 1 > > I would really appreciate any help I could get. > > Thanks, > Michael > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >
Hi, Yes, I do have those files under Release/lib I have gcc 4.3.2 (see output) gcc -v Using built-in specs. Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.3.2-1ubuntu12' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.3.2 (Ubuntu 4.3.2-1ubuntu12) Do I definitely need the GC of vmkit to get Java programs to run successfully? If so I'll put a chroot jail 32 bit distribution on my machine. How would I go about changing the link order? Michael Nicolas Geoffray wrote:> Dear Michael, > > The symbols that are said undefined by the compiler live in > libAllocator.a. That file should be in Release/lib/, do you have it? > It is possible that the compiler has linking order problems. What is > the version of your gcc? > > You can try changing the link order of the make command by editing > tools/vmkit/Makefile. > > Also, you should know that the GC of vmkit does not work on a 64bit > system, so if you need the GC, you should try to emulate a 32bit system. > > Let me know how that worked for you. > > Nicolas > > > Quoting Michael Wu <mmwu at princeton.edu>: > > >> Hi, >> >> I can't seem to get VMKit to compile correctly. I'm on a 64 bit >> Jaunty system. I compiled llvm and llvm-gcc from the subversion source >> no problem, but when I try to compile VMKit I get some issue with >> GCAllocator: >> >> /home/mmwu/Download/llvm$ ./configure >> /home/mmwu/Download/llvm$ make ENABLE_OPTIMIZED=1 >> /home/mmwu/Download/llvm$ make ENABLE_OPTIMIZED=1 install >> >> ... >> >> /home/mmwu/Download/$ sudo apt-get install classpath >> >> ... >> >> /home/mmwu/Download/vmkit$ ./configure >> --with-llvmsrc=/home/mmwu/Download/llvm >> --with-llvmobj=/home/mmwu/Download/llvm >> --with-gnu-classpath-glibj=/usr/share/classpath/glibj.zip >> --with-gnu-classpath-libs=/usr/lib/classpath >> /home/mmwu/Download/vmkit$ make ENABLE_OPTIMIZED=1 >> >> make[2]: Entering directory `/home/mmwu/Download/vmkit/tools/vmkit' >> llvm[2]: Linking Release executable vmkit (without symbols) >> /home/mmwu/Download/vmkit/Release/lib/libGCMmap2.a(gcinit.o): In >> function `mvm::Collector::destroy()': >> gcinit.cpp:(.text+0x34): undefined reference to >> `GCAllocator::~GCAllocator()' >> gcinit.cpp:(.text+0x3c): undefined reference to `GCAllocator::operator >> delete(void*)' >> /home/mmwu/Download/vmkit/Release/lib/libGCMmap2.a(gcinit.o): In >> function `mvm::Collector::initialise()': >> gcinit.cpp:(.text+0x216): undefined reference to `GCAllocator::operator >> new(unsigned long)' >> gcinit.cpp:(.text+0x221): undefined reference to >> `GCAllocator::GCAllocator()' >> gcinit.cpp:(.text+0x2d5): undefined reference to `GCAllocator::operator >> delete(void*)' >> collect2: ld returned 1 exit status >> make[2]: *** [/home/mmwu/Download/vmkit/Release/bin/vmkit] Error 1 >> make[2]: Leaving directory `/home/mmwu/Download/vmkit/tools/vmkit' >> make[1]: *** [vmkit/.makeall] Error 2 >> make[1]: Leaving directory `/home/mmwu/Download/vmkit/tools' >> make: *** [all] Error 1 >> >> I would really appreciate any help I could get. >> >> Thanks, >> Michael >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >> >> > > > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >
Worked great in a 32 bit build environment. Thanks a lot! Michael Nicolas Geoffray wrote:> Dear Michael, > > The symbols that are said undefined by the compiler live in > libAllocator.a. That file should be in Release/lib/, do you have it? > It is possible that the compiler has linking order problems. What is > the version of your gcc? > > You can try changing the link order of the make command by editing > tools/vmkit/Makefile. > > Also, you should know that the GC of vmkit does not work on a 64bit > system, so if you need the GC, you should try to emulate a 32bit system. > > Let me know how that worked for you. > > Nicolas > > > Quoting Michael Wu <mmwu at princeton.edu>: > > >> Hi, >> >> I can't seem to get VMKit to compile correctly. I'm on a 64 bit >> Jaunty system. I compiled llvm and llvm-gcc from the subversion source >> no problem, but when I try to compile VMKit I get some issue with >> GCAllocator: >> >> /home/mmwu/Download/llvm$ ./configure >> /home/mmwu/Download/llvm$ make ENABLE_OPTIMIZED=1 >> /home/mmwu/Download/llvm$ make ENABLE_OPTIMIZED=1 install >> >> ... >> >> /home/mmwu/Download/$ sudo apt-get install classpath >> >> ... >> >> /home/mmwu/Download/vmkit$ ./configure >> --with-llvmsrc=/home/mmwu/Download/llvm >> --with-llvmobj=/home/mmwu/Download/llvm >> --with-gnu-classpath-glibj=/usr/share/classpath/glibj.zip >> --with-gnu-classpath-libs=/usr/lib/classpath >> /home/mmwu/Download/vmkit$ make ENABLE_OPTIMIZED=1 >> >> make[2]: Entering directory `/home/mmwu/Download/vmkit/tools/vmkit' >> llvm[2]: Linking Release executable vmkit (without symbols) >> /home/mmwu/Download/vmkit/Release/lib/libGCMmap2.a(gcinit.o): In >> function `mvm::Collector::destroy()': >> gcinit.cpp:(.text+0x34): undefined reference to >> `GCAllocator::~GCAllocator()' >> gcinit.cpp:(.text+0x3c): undefined reference to `GCAllocator::operator >> delete(void*)' >> /home/mmwu/Download/vmkit/Release/lib/libGCMmap2.a(gcinit.o): In >> function `mvm::Collector::initialise()': >> gcinit.cpp:(.text+0x216): undefined reference to `GCAllocator::operator >> new(unsigned long)' >> gcinit.cpp:(.text+0x221): undefined reference to >> `GCAllocator::GCAllocator()' >> gcinit.cpp:(.text+0x2d5): undefined reference to `GCAllocator::operator >> delete(void*)' >> collect2: ld returned 1 exit status >> make[2]: *** [/home/mmwu/Download/vmkit/Release/bin/vmkit] Error 1 >> make[2]: Leaving directory `/home/mmwu/Download/vmkit/tools/vmkit' >> make[1]: *** [vmkit/.makeall] Error 2 >> make[1]: Leaving directory `/home/mmwu/Download/vmkit/tools' >> make: *** [all] Error 1 >> >> I would really appreciate any help I could get. >> >> Thanks, >> Michael >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >> >> > > > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >_______________________________________________ LLVM Developers mailing list LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev