[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