This seems like a problem specific to the linker, but it's also so specific to linux and MIPS that I decided to send it here first. If I was wrong to do that let me know and I'll send it to bug-binutils@gnu.org instead. Anyway, I think I've found a problem in the ld scripts for MIPS. Basically the built in script don't seem to fill in a .plt section. So if I do this: mips-linux-gcc prog.c mips-linux-objdump -h a.out | grep plt I get no output, but if I use my modified linker script I get this: mips-linux-gcc -T tmp.ld prog.c mips-linux-objdump -h a.out | grep plt 10 .plt 00000030 0040052c 0040052c 0000052c 2**2 which I believe is the correct output. The change that I made was to move .stub sections into the .plt from the .text section. So this: .plt : { *(.plt) } .text : { _ftext = . ; *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.mips16.fn.*) *(.mips16.call.*) } =0 became this: .plt : { *(.plt .stub) } .text : { _ftext = . ; *(.text .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.mips16.fn.*) *(.mips16.call.*) } =0 If anyone needs more information on this issue just let me know. It has been in the MIPS tools for a while. I have been working from a recent snapshot: 59) ./mips-linux-ld -v GNU ld version 040121 20040121 but the same issue was around way back when (MontaVista preview kit 2.1): 61) /opt/hardhat/previewkit/mips/fp_be/bin/mips_fp_be-ld -v GNU ld version 2.10.91 (with BFD 2.10.91.0.2) Does anyone here have the knowledge to confirm that my changes are correct and commit privileges to the binutils tree? nathan -- Nathan Field (ndf@ghs.com) All gone. But the trouble with analogies is that analogies are like goldfish: sometimes they have nothing to do with the topic at hand. -- Crispin (from a posting to the Bugtraq mailing list)