HEADS UP: Toolchain changes coming soon. (Octeon, n32, n64)

M. Warner Losh imp at bsdimp.com
Tue Jun 1 02:26:38 UTC 2010


In message: <AANLkTinXthc8drw_G8gYUCtUefTVb9JQWTIlqtgsofPt at mail.gmail.com>
            Juli Mallett <jmallett at freebsd.org> writes:
: Over the next day or two I am planning to merge changes to GCC and
: binutils adding support for Octeon and the n32 and n64 ABIs, as well
: as fixing a couple of bugs in our GCC spec.  Note that the
: Octeon-related patches are necessary to support the Cavium Octeon
: Simple Executive, which I am planning to import after these changes
: have been committed, which will be terribly helpful for the Octeon
: port, in particular a new network driver and hopefully soon crypto and
: PCI support.
: 
: If you have any questions or comments please get in touch with me.
: The contents of the patch may shift some before commit as I do testing
: on a wider variety of platforms.
: 
: The full patch to GCC and binutils is at this URL, and I have
: reproduced the description below:
: 
: http://people.freebsd.org/~jmallett/mips-toolchain.diff
: 
: o) Add TARGET_ABI to the MIPS toolchain build process.  This sets the
: default ABI to one of o32, n32 or n64.  If it is not set, o32 is
: assumed as that is the current default.
: o) Set the default GCC cpu type to any specified TARGET_CPUTYPE.  This
: is necessary to have a working "cc" if e.g. mips64 is specified, as
: binutils will refuse to link objects using different ISAs in some
: cases.
: o) Add support for n32 and n64 ABIs to binutils and GCC.
: o) Add additional required libgcc2 stubs for n32 and n64.
: o) Add support for the "mips64r2" architecture to GCC.  Add the "octeon"
: o) When static linking, wrap default libraries in --start-group and
: --end-group.  This is required for static linking to work on n64 with
: the interdependencies between libraries there.  This is what other
: OSes that support n64 seem to do, as well.
: o) Fix our GCC spec to define __mips64 for 64-bit targets, not
: __mips64__, the former being what libgcc, etc., check and the latter
: seemingly being a misspelling of a hand merge from a Linux spec.
: o) When no TARGET_CPUTYPE is specified at build time, make GCC take
: the default ISA from the ABI.  Our old defaults were too liberal and
: assumed that 64-bit ABIs should default to the MIPS64 ISA and that
: 32-bit ABIs should default to the MIPS32 ISA, when we are supporting
: or will support some systems based on earlier 32-bit and 64-bit ISAs,
: most notably MIPS-III.
: o) Merge a new opcode file (and support code) from a later version of
: binutils and add flags and code necessary to support Octeon-specific
: instructions.  This should also make merging opcodes for other modern
: architectures easier.

Great work Juli...

I plan on merging my TBEMD branch after the dust from this settles
down.  Juts so people know...

Warner


More information about the freebsd-mips mailing list