On 01/27/2011 01:02 PM, Paul Koning wrote:
On Jan 27, 2011, at 4:00 PM, Ian Lance Taylor wrote:
Rainer Orth<r...@cebitec.uni-bielefeld.de> writes:
Ian Lance Taylor<i...@google.com> writes:
I guess ARCH == mips64 is going to be appropriate for any 64-bit MIPS
target. If you need a different syscall_linux_${GOARCH} file for
different mips64 targets, then I think we're going to need to test some
conditional in libgo/Makefile.am to add the file to build. E.g., look
at syscall_filesize_file.
This is the same difference as between sparc and sparc64/sparcv9: while
all recent SPARC CPUs are capable of executing 64-bit insns, there's
both a 32-bit ABI (sparc) and a 64-bit one (sparcv9/sparc64).
On MIPS (at least IRIX and obviously Linux/MIPS as well), you have two
32-bit ABIs (O32 and N32) and one 64-bit one (N64), on other systems
there's also O64.
It again comes down to what GOARCH is supposed to mean: an ABI, or what
else?
That's a good point. I guess it has to mean an ABI. So we should be
using different values for the different MIPS ABIs.
What about all the other things you can do to MIPS with multilib? Different
ISAs? Soft float vs. hard float?
The current default GCC behavior under linux-mips64* is to ignore all
those details.
Based on my almost complete lack of libgo knowlege, I think the
selection of a specific syscall_linux_${GOARCH}.go file would not care
about soft/hard float issues.
David Daney