HEADS UP: Toolchain changes coming soon. (Octeon, n32, n64)
C. Jayachandran
c.jayachandran at gmail.com
Wed Jun 2 14:41:31 UTC 2010
On Wed, Jun 2, 2010 at 7:06 PM, M. Warner Losh <imp at bsdimp.com> wrote:
> In message: <AANLkTilYyTZRFvkly897pFgnISE9npT9BM1yuOiQr3rx at mail.gmail.com>
> "C. Jayachandran" <c.jayachandran at gmail.com> writes:
> : On Tue, Jun 1, 2010 at 2:53 PM, Juli Mallett <jmallett at freebsd.org> wrote:
> : > On Tue, Jun 1, 2010 at 02:17, C. Jayachandran <c.jayachandran at gmail.com> wrote:
> : >> That clears it up, thanks. Looking at the patch, most of the changes
> : >> seems to be in binutils, are these from a specific version of
> : >> binutils? I am asking because I'm not sure how the FreeBSD toolchain
> : >> is synchronized across architectures - are all architectures at the
> : >> same version of binutils, or can each architecture decide to update
> : >> its part of the tool-chain.
> : >
> : > I pulled some files from a slightly more modern version of binutils
> : > from a Cavium SDK than ours and reduced differences to make the
> : > relevant parts of code match the older binutils API we provide, while
> : > still providing the newer opcode interface and a couple of nearby
> : > things.
> : >
> : >>> Is there specific functionality you need in GCC?
> : >>
> : >> Netlogic has some updates for GCC and binutils in its SDK. But they
> : >> are not critical, and we have not merged these into the FreeBSD. I
> : >> was not sure if I can get these changes into FreeBSD directly.
> : >
> : > If Netlogic can GPLv2 their specific changes or reimplement them
> : > relative to FreeBSD's toolchain, I think we would want to coordinate
> : > to get them into the tree. Our goal is generally to produce a
> : > fully-working self-hosting system out of the box. That may change at
> : > some point, especially if Warner's work on supporting external
> : > toolchains better pans out well, but I think for now it's a reasonable
> : > goal.
> :
> : Stock binutils and GCC works fine for XLR (it is mips64 compliant), so
> : XLR is self-hosting with the current FreeBSD MIPS tool-chain. Our
> : patch for GCC is for adding 'xlr' machine description and march/mtune
> : options. The binutils patch is for a few XLR specific instructions for
> : which we currently '.word' in assembly for. So both of these are not
> : really needed.
> :
> : Also licensing should not be an issue here - I'll have a go at this
> : once the other toolchain changes are in.
> :
> : > Note that my understanding is that David O'Brien is working on
> : > bringing in the last GPLv2 binutils which will make the differences
> : > required for mips64r2 and Octeon substantially-smaller and I would
> : > hope for Netlogic processors as well.
>
> One thing that I'm told, but haven't verified, is that the binutils
> from the XLR SDK breaks other mips platforms in subtle ways. Based on
> this assertion, I think it would be prudent to carefully review and
> test any proposed patches from that SDK.
Our gcc and binutils patches are in the latest releases (IIRC - GCC
went in about 4.4 and binutils patches are in 2.20), so it has gone
thru some testing.
JC.
More information about the freebsd-mips
mailing list