[LLVMdev] libLLVMgold.so: could not load plugin library
Guoliang Jin
jingl1345 at gmail.com
Fri Jun 25 20:30:50 PDT 2010
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.
More information about the llvm-dev
mailing list