Guoliang Jin
2010-Jun-25 16:16 UTC
[LLVMdev] libLLVMgold.so: could not load plugin library
On 6/25/2010 8:56 AM, Rafael Espindola wrote:> On 25 June 2010 03:17, Guoliang Jin<jingl1345 at gmail.com> wrote: >> Hi there, >> >> I checked out the latest code from the repository, and wanna use the gold >> plugin, but I got the following: >> >> libLLVMgold.so: could not load plugin library >> >> Do you know why this is happening? >> >> Also I noticed the name of the library is changed to LLVMgold.so, and I just >> renamed it to libLLVMgold.so when I copied it. Is this the right thing to >> do? > The library is now named LLVMgold.so, I probably forgot to update some > documentation, didn't I :-(So when I copy it to $PREFIX/libexec/gcc/x86_64-unknown-linux-gnu/4.2.1/ and $PREFIX/lib/bfd-plugins/, should I rename it to libLLVMgold.so? Any other copies I should make?> Copying it should cause no problems. just make sure libLTO.so is in a > place it can find. What happens if you run ldd on LLVMgold.so?Here is the result: ldd $LLVMPREFIX/lib/LLVMgold.so linux-gate.so.1 => (0x006fa000) libLTO.so => $LLVMPREFI/lib/libLTO.so (0x00f24000) libpthread.so.0 => /lib/libpthread.so.0 (0x00570000) libdl.so.2 => /lib/libdl.so.2 (0x00c4c000) libstdc++.so.6 => /s/gcc-4.3.1/i386_rhel5/lib/libstdc++.so.6 (0x001f0000) libm.so.6 => /lib/libm.so.6 (0x00153000) libgcc_s.so.1 => /s/gcc-4.3.1/i386_rhel5/lib/libgcc_s.so.1 (0x00675000) libc.so.6 => /lib/libc.so.6 (0x002db000) /lib/ld-linux.so.2 (0x00f07000)
Rafael Espindola
2010-Jun-25 19:37 UTC
[LLVMdev] libLLVMgold.so: could not load plugin library
> So when I copy it to $PREFIX/libexec/gcc/x86_64-unknown-linux-gnu/4.2.1/ and > $PREFIX/lib/bfd-plugins/, should I rename it to libLLVMgold.so? Any other > copies I should make?The copy in that directory can have any name you like. BFD will try all. Note that that is the copy that nm and ar will use. The linker (gold) requires you to pass -plugin to it.>> >> Copying it should cause no problems. just make sure libLTO.so is in a >> place it can find. What happens if you run ldd on LLVMgold.so? > > Here is the result: > ldd $LLVMPREFIX/lib/LLVMgold.so > linux-gate.so.1 => (0x006fa000) > libLTO.so => $LLVMPREFI/lib/libLTO.so (0x00f24000) > libpthread.so.0 => /lib/libpthread.so.0 (0x00570000) > libdl.so.2 => /lib/libdl.so.2 (0x00c4c000) > libstdc++.so.6 => /s/gcc-4.3.1/i386_rhel5/lib/libstdc++.so.6 (0x001f0000) > libm.so.6 => /lib/libm.so.6 (0x00153000) > libgcc_s.so.1 => /s/gcc-4.3.1/i386_rhel5/lib/libgcc_s.so.1 (0x00675000) > libc.so.6 => /lib/libc.so.6 (0x002db000) > /lib/ld-linux.so.2 (0x00f07000) >Looks like it found libLTO. Another case I have seen is when the plugin is linked with a different libstdc++ than gold. Is that the case? You do have libstdc++ in an unusual location... Cheers, -- Rafael Ávila de Espíndola
Guoliang Jin
2010-Jun-26 03:30 UTC
[LLVMdev] libLLVMgold.so: could not load plugin library
On 6/25/2010 2:37 PM, Rafael Espindola wrote:> The linker (gold) requires you to pass -plugin to it.I am using the command: llvm-gcc a.c -emit-llvm -use-gold-plugin and here is the output: $LLVMGCCPREFIX/lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../i686-pc-linux-gnu/bin/ld: error: $LLVMGCCPREFIX/libexec/gcc/i686-pc-linux-gnu/4.2.1/libLLVMgold.so: could not load plugin library $LLVMGCCPREFIX/lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../i686-pc-linux-gnu/bin/ld: error: /tmp/ccur7bJG.o:1:3: invalid character $LLVMGCCPREFIX/lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../i686-pc-linux-gnu/bin/ld: error: /tmp/ccur7bJG.o:1:3: syntax error, unexpected $end $LLVMGCCPREFIX/lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../i686-pc-linux-gnu/bin/ld: error: /tmp/ccur7bJG.o: not an object or archive $LLVMGCCPREFIX/lib/gcc/i686-pc-linux-gnu/4.2.1/../../../../i686-pc-linux-gnu/bin/ld: /usr/lib/crt1.o:(.text+0x18): error: undefined reference to 'main' collect2: ld returned 1 exit status Did I use the wrong options?>> Here is the result: >> ldd $LLVMPREFIX/lib/LLVMgold.so >> linux-gate.so.1 => (0x006fa000) >> libLTO.so => $LLVMPREFI/lib/libLTO.so (0x00f24000) >> libpthread.so.0 => /lib/libpthread.so.0 (0x00570000) >> libdl.so.2 => /lib/libdl.so.2 (0x00c4c000) >> libstdc++.so.6 => /s/gcc-4.3.1/i386_rhel5/lib/libstdc++.so.6 (0x001f0000) >> libm.so.6 => /lib/libm.so.6 (0x00153000) >> libgcc_s.so.1 => /s/gcc-4.3.1/i386_rhel5/lib/libgcc_s.so.1 (0x00675000) >> libc.so.6 => /lib/libc.so.6 (0x002db000) >> /lib/ld-linux.so.2 (0x00f07000) > Looks like it found libLTO. Another case I have seen is when the > plugin is linked with a different libstdc++ than gold. Is that the > case? You do have libstdc++ in an unusual location...ldd $LLVMGCCPREFIX/bin/ld linux-gate.so.1 => (0x0057c000) libdl.so.2 => /lib/libdl.so.2 (0x00bfa000) libz.so.1 => /usr/lib/libz.so.1 (0x00dae000) libstdc++.so.6 => /s/gcc-4.3.1/i386_rhel5/lib/libstdc++.so.6 (0x006c6000) libm.so.6 => /lib/libm.so.6 (0x00822000) libgcc_s.so.1 => /s/gcc-4.3.1/i386_rhel5/lib/libgcc_s.so.1 (0x004e0000) libc.so.6 => /lib/libc.so.6 (0x00110000) /lib/ld-linux.so.2 (0x0051a000) So the gold and the LLVMgold are linked against the same libstdc++. I am using the gcc at /s/gcc-4.3.1/i386_rhel5/bin to compile the LLVM chain. Thanks.
Reasonably Related Threads
- [LLVMdev] libLLVMgold.so: could not load plugin library
- [LLVMdev] libLLVMgold.so: could not load plugin library
- [LLVMdev] libLLVMgold.so: could not load plugin library
- [LLVMdev] libLLVMgold.so: could not load plugin library
- [LLVMdev] libLLVMgold.so: could not load plugin library