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