I made my first attempt to build on an x86_64-unknown-linux-gnu system. Is this supposed to work? I get libtools errors (below). The problem seems to be that it finds a 32-bit libltdl rather than the 64-bit libltdl. /home/dag> ls /usr/lib/libltdl.so.3.1.0 /usr/lib/libltdl.so.3.1.0 /home/dag> ls /usr/lib64/libltdl.so.3.1.0 /usr/lib64/libltdl.so.3.1.0 Is this a known problem? I'm not very familiar with how libtools works so I'm a bit hesitant to hack up ltmain.sh. -Dave llvm[2]: Linking Debug+Checks executable tblgen /tmp/ptmp/dag/build.llvm.modified.debug/mklib --tag=CXX --tag=disable-shared --mode=link /tools/llvm-tools/x86_64-unknown-linux-gnu/bin/g++ -I/tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen -I/users/dag/projects/llvm-project.modified/llvm/trunk/utils/TableGen -I/tmp/ptmp/dag/build.llvm.modified.debug/include -I/users/dag/projects/llvm-project.modified/llvm/trunk/include -I/tmp/ptmp/dag/build.llvm.modified.debug/include -I/users/dag/projects/llvm-project.modified/llvm/trunk/include -D_DEBUG -D_GLIBCXX_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -g -Woverloaded-virtual -Wall -W -Wwrite-strings -Wunused -Wno-unused-parameter -g -rpath /tmp/ptmp/dag/build.llvm.modified.debug/Debug+Checks/bin -export-dynamic -L/tmp/ptmp/dag/build.llvm.modified.debug/Debug+Checks/lib -L/tmp/ptmp/dag/build.llvm.modified.debug/Debug+Checks/lib -o /tmp/ptmp/dag/build.llvm.modified.debug/Debug+Checks/bin/tblgen /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/AsmWriterEmitter.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/CallingConvEmitter.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/CodeEmitterGen.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/CodeGenTarget.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/DAGISelEmitter.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/FileLexer.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/FileParser.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/InstrInfoEmitter.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/IntrinsicEmitter.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/Record.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/RegisterInfoEmitter.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/SubtargetEmitter.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/TableGen.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/TableGenBackend.o -lLLVMSupport -lLLVMSystem \ -lltdl -lm -lelf /tools/llvm-tools/x86_64-unknown-linux-gnu/bin/g++ -I/tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen -I/users/dag/projects/llvm-project.modified/llvm/trunk/utils/TableGen -I/tmp/ptmp/dag/build.llvm.modified.debug/include -I/users/dag/projects/llvm-project.modified/llvm/trunk/include -I/tmp/ptmp/dag/build.llvm.modified.debug/include -I/users/dag/projects/llvm-project.modified/llvm/trunk/include -D_DEBUG -D_GLIBCXX_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -g -Woverloaded-virtual -Wall -W -Wwrite-strings -Wunused -Wno-unused-parameter -g -o /tmp/ptmp/dag/build.llvm.modified.debug/Debug+Checks/bin/tblgen /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/AsmWriterEmitter.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/CallingConvEmitter.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/CodeEmitterGen.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/CodeGenTarget.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/DAGISelEmitter.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/FileLexer.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/FileParser.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/InstrInfoEmitter.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/IntrinsicEmitter.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/Record.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/RegisterInfoEmitter.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/SubtargetEmitter.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/TableGen.o /tmp/ptmp/dag/build.llvm.modified.debug/utils/TableGen/Debug+Checks/TableGenBackend.o -Wl,--export-dynamic -L/tmp/ptmp/dag/build.llvm.modified.debug/Debug+Checks/lib -lLLVMSupport -lLLVMSystem /usr/lib/libltdl.so -ldl -lm -lelf -Wl,--rpath -Wl,/tmp/ptmp/dag/build.llvm.modified.debug/Debug+Checks/bin
On my gentoo/amd64 installation i could get llvm and llvm-gcc to compile. llvm/tests are mostly passed the test-suite fails with a glibc double free error. you could try setting the CC="gcc -L/usr/lib64" or maybe even CC="gcc -m64 -L/usr/lib64" environment variable and likewise for CXX before configuring and make. although i would guess that something is wrong with your install because it should find the 64bit libs by default (that is if your on a 64bit system) but i am not a linux expert so take everything i say with a grain (boulder) of salt gritz arnold On 9/20/07, David Greene <dag at cray.com> wrote:> I made my first attempt to build on an x86_64-unknown-linux-gnu system. > Is this supposed to work? I get libtools errors (below). The problem seems > to be that it finds a 32-bit libltdl rather than the 64-bit libltdl.
On Thursday 20 September 2007 14:08, Arnold Schwaighofer wrote:> On my gentoo/amd64 installation i could get llvm and llvm-gcc to compile. > llvm/tests are mostly passed > the test-suite fails with a glibc double free error. > > you could try setting the CC="gcc -L/usr/lib64" or maybe even CC="gcc > -m64 -L/usr/lib64" environment variable and likewise for CXX before > configuring and make. > > although i would guess that something is wrong with your install > because it should find the 64bit libs by default (that is if your on a > 64bit system)I suspect you are right. I just ran into a similar problem building another package that uses libtool. The only "non-standard" flag I passed to configure when building gcc was --disable-shared, but I don't see how that would affect the search path for libraries. libtool does it's own searching and I don't think it cares where gcc looks. But again, I know very little about libtool, mostly just from looking at sh -x output. Does anyone have any insight as to how libtool finds libraries? Why can't it just pass -lltdl to the linker like the compile command told it to? -Dave