GCC生成MIPS PIC代码

时间:2013-08-05 18:59:08

标签: gcc4

gcc 4.5.3-1.3; MIPS32

您好, 我正在尝试构建一个小于32K的小代码。我希望代码是位置无关代码(PIC),所以我可以加载到任何内存位置并运行。所以我在编译C文件时指定了-fPIC。 但是当我检查生成的反汇编代码时,我发现有

9fc01f24:   00000000    nop
9fc01f28:   0ff00445    jal 9fc01114 <_writeasm>
9fc01f2c:   24040076    li  a0,118
9fc01f30:   0ff00445    jal 9fc01114 <_writeasm>
9fc01f34:   24040065    li  a0,101
9fc01f38:   0ff00445    jal 9fc01114 <_writeasm>

指示。 “jal”表示这些代码不是PIC,PIC不应该跳转到绝对地址。对?我期待bal 0x 00001234。

我还尝试了-mshared -fPIC选项和-mshared -fpic,但它们会生成相同的二进制代码。我想知道为什么-fPIC不起作用?

是否有专家可以帮助我?

提前致谢。

0 个答案:

没有答案