如何通过libc.a 生成libc.so

时间:2022-04-27 06:17:07
我这有powerpc 的toolchain 里面已经有 libc.a 和 libc.so了,
-rwxr-x--- 1 ebaozhu gbgusers 1468872 Oct 19 04:15 ../libc-2.3.6.so
-rw-r----- 1 ebaozhu gbgusers     193 May 10  2007 ../libc.so
lrwxrwxrwx 1 ebaozhu gbgusers      13 Oct 18 10:10 ../libc.so.6 -> libc-2.3.6.so
我想重新生成libc-2.3.6.so,所以我通过
powerpc-linux-ar x 将libc.a把所有.o文件解出来了,
然后通过 ../../../bin/powerpc-linux-gcc -fPIC -shared *.o -o my.so
生成一个新的libc-2.3.6.so(我起为名字my.so了),但是每次都失败,错误是
/home/a8049/toolchain-projects/linux-2.6.21.1-binutils-2.16.1-gcc-4.1.2-glibc-2.3.6/build-tools/build-gcc/gcc/crtsavres.S:149: multiple definition of `_restfpr_28'
fprrest.o:../sysdeps/powerpc/powerpc32/fpu/fprrest.S:(.text+0x38): first defined here
/vobs/trillian/sw/src_14649/sea-1020/platform/toolchain/bin/../lib/gcc/powerpc-linux/4.1.2/crtsavres.o: In function `_restfpr_29':
/home/a8049/toolchain-projects/linux-2.6.21.1-binutils-2.16.1-gcc-4.1.2-glibc-2.3.6/build-tools/build-gcc/gcc/crtsavres.S:150: multiple definition of `_restfpr_29'
fprrest.o:../sysdeps/powerpc/powerpc32/fpu/fprrest.S:(.text+0x3c): first defined here
/vobs/trillian/sw/src_14649/sea-1020/platform/toolchain/bin/../lib/gcc/powerpc-linux/4.1.2/../../../../powerpc-linux/bin/ld: my.so: undefined versioned symbol name longjmp@@GLIBC_2.3.4
/vobs/trillian/sw/src_14649/sea-1020/platform/toolchain/bin/../lib/gcc/powerpc-linux/4.1.2/../../../../powerpc-linux/bin/ld: failed to set dynamic section sizes: Bad value
collect2: ld returned 1 exit status
难道是因为他还会去链接我原来的libc-2.3.6.so?
如果是这样怎么不让他链接原来的libc-2.3.6.so

通过powerpc-linux-ld -fPIC -shared *.o -o my.so也不行
../../../bin/powerpc-linux-ld -fPIC -shared *.o -o my.so
../../../bin/powerpc-linux-ld: my.so: undefined versioned symbol name longjmp@@GLIBC_2.3.4
../../../bin/powerpc-linux-ld: failed to set dynamic section sizes: Bad value

2 个解决方案

#1


没有源文件的话,应该就办不到的吧!

#2


这。。。。好像是奇谈。

#1


没有源文件的话,应该就办不到的吧!

#2


这。。。。好像是奇谈。