gold sparc status...
Thu Apr 10 11:48:00 GMT 2008
At this point, using a hack to deal with the .bss alignment issue I
reported earlier tonight, I have the 64-bit sparc target working as
well as the BFD linker's. The failures all surround the handling of
call relocs in non-PIC shared objects. Compiling the same testcases
using the BFD linker fail in the same way.
I have a feeling that these failures might be a specific issue with
with the GLIBC dynamic linker on sparc64, and in any event I'll track
it down fully and fix whatever the problem is.
Meanwhile, once the .bss alignment issue is resolved, I think I'm at
the point where I can submit my work for review and potential
The sparc.cc target module I wrote uses templates so that the same
code is used for both 32-bit and 64-bit. It can be made to support
little-endian sparc targets (which exist, the instructions are
still big-endian, just the data is little-endian), although I
don't instantiate any little-endian target selectors yet.
My C++ ninja skills aren't so great, so please be kind when reviewing
My rough plan would be to first submit the command line option changes
I made to be compatible with the BFD sparc linker ('-Y' and '-relax'
support, gcc passes these in by default). Then I'd submit the sparc
Besides obviously fixing bugs, afterwards I'd like to add some sparc
specific test cases since assembler is the only way to generate
certain relocation types. I also plan to add vxworks support and
do at least minimal testing on Solaris.
Other things on my TODO list are to try a GCC bootstrap, a GLIBC
build, and also a sparc64 Linux kernel build using gold.
More information about the Binutils