question about branch island

Eric Christopher echristo@apple.com
Fri Feb 17 06:14:00 GMT 2006


> I'm working on a gcc/binutils port and met with a problem. The target
> doesn't have absolute address jump. So for function call, the linker
> sometimes complains about "relocation truncated to fit". I used the
> pc-relative branch to implement function call, but I think this is a
> bug. They told me about branch island, which ppc used. I've got the
> codes about branch island of gcc-3.4.4. But it seems that
> binutils-2.14 doesn't implement it. Even failed when I try to build
> with --target=ppc-darwin. The configuration said,
> *** This configuration is not supported in the following  
> subdirectories:
>      bfd binutils ld gas opcodes
>     (Any other directories should still work fine.)
>

Yup. darwin isn't supported in binutils.

> So can anyone tell me where is the example about how to implement
> branch island in gas and ld.
>

Take a look at the powerpc port as I told you on the gcc list. elf64- 
ppc.c or elf32-ppc.c would be a good start.

I highly suggest you implement it in the linker instead of in the  
compiler. You do not want to use the ppc -mlong-branch
code.

-eric



More information about the Binutils mailing list