From owner-svn-doc-all@FreeBSD.ORG Wed Jan 7 18:06:32 2015 Return-Path: Delivered-To: svn-doc-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 854BFBF9; Wed, 7 Jan 2015 18:06:32 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6B6E81FBA; Wed, 7 Jan 2015 18:06:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t07I6Wwv022625; Wed, 7 Jan 2015 18:06:32 GMT (envelope-from brd@FreeBSD.org) Received: (from brd@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t07I6WNQ022623; Wed, 7 Jan 2015 18:06:32 GMT (envelope-from brd@FreeBSD.org) Message-Id: <201501071806.t07I6WNQ022623@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: brd set sender to brd@FreeBSD.org using -f From: Brad Davis Date: Wed, 7 Jan 2015 18:06:32 +0000 (UTC) To: doc-committers@freebsd.org, svn-doc-all@freebsd.org, svn-doc-head@freebsd.org Subject: svn commit: r46155 - head/en_US.ISO8859-1/htdocs/news/status X-SVN-Group: doc-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-doc-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the entire doc trees \(except for " user" , " projects" , and " translations" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jan 2015 18:06:32 -0000 Author: brd Date: Wed Jan 7 18:06:31 2015 New Revision: 46155 URL: https://svnweb.freebsd.org/changeset/doc/46155 Log: Add bapt's External Toolchain report Modified: head/en_US.ISO8859-1/htdocs/news/status/report-2014-10-2014-12.xml Modified: head/en_US.ISO8859-1/htdocs/news/status/report-2014-10-2014-12.xml ============================================================================== --- head/en_US.ISO8859-1/htdocs/news/status/report-2014-10-2014-12.xml Wed Jan 7 11:09:00 2015 (r46154) +++ head/en_US.ISO8859-1/htdocs/news/status/report-2014-10-2014-12.xml Wed Jan 7 18:06:31 2015 (r46155) @@ -379,4 +379,91 @@ + + External toolchain + + + + + Baptiste + Daroussin + + bapt@FreeBSD.org + + + + Warner + Losh + + imp@FreeBSD.org + + + + Brooks + Davis + + brooks@FreeBSD.org + + + + + + + + +

The main goal of the external toolchain project is to be able + to build world and kernel with non default toolchain. It can be + helpful to: +

    +
  • Prepare a migration to a newer version of the components like compilers, binutils, and elftoolchain.
  • +
  • Port &os; to newer architecture
  • +
  • Upgrade from a &os; that ships with GCC 4.2 to a version that ship with clang 3.5+ (which need a more modern toolchain than GCC 4.2 to bootstrap.
  • +
+

+ +

The initial support for external toolchain only supported + clang. It has been extended to support recent GCC (4.9.1 has + been tested) and recent binutils (2.24 and 2.25).

+ +

A large number of fixes have been committed to HEAD to support + incompatible behaviour changes between ld(1) from + binutils 2.17.50 (the version in base) and binutils 2.24+.

+ +

A large number of warnings have been deactivated when building + the kernel to make sure it is possible to build the kernel with + recent GCC (first 4.6 and then 4.9.1)

+ +

The build system has been changed to build libc++ as a C++ + stack when a recent enough GCC (4.6+) is used to build world. +

+ +

To simplify using an external toolchain, the following + pre-seeded configurations have been added to the ports tree: +

    +
  • amd64-xtoolchain-gcc
  • +
  • powerpc64-xtoolchain-gcc
  • +
  • sparc64-xtoolchain-gcc
  • +
+

+ +

Those packages will depend on special version of GCC + (minimalistic cross-built ready GCC) and on binutils. To use + them run: make CROSS_TOOLCHAIN=powerpc64-gcc TARGET=powerpc + TARGET_ARCH=powerpc64

+ +

As a result of this effort, it has been possible to + successfully build and run a kernel and world built with GCC + 4.9.1 and binutils 2.24 on sparc64, amd64 (with minor tweaks for + amd64), powerpc and powerpc64.

+ + + + Patch and upstream GCC 4.9 to support &os; mips, arm and + aarch64 + Adapt and upstream the aarch64 patches for binutils 2.25 + + Add more pre seeded configurations + +
+