svn commit: r46155 - head/en_US.ISO8859-1/htdocs/news/status
Brad Davis
brd at FreeBSD.org
Wed Jan 7 18:06:32 UTC 2015
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 @@
</help>
</project>
+ <project cat='proj'>
+ <title>External toolchain</title>
+
+ <contact>
+ <person>
+ <name>
+ <given>Baptiste</given>
+ <common>Daroussin</common>
+ </name>
+ <email>bapt at FreeBSD.org</email>
+ </person>
+ <person>
+ <name>
+ <given>Warner</given>
+ <common>Losh</common>
+ </name>
+ <email>imp at FreeBSD.org</email>
+ </person>
+ <person>
+ <name>
+ <given>Brooks</given>
+ <common>Davis</common>
+ </name>
+ <email>brooks at FreeBSD.org</email>
+ </person>
+ </contact>
+
+ <links>
+ <url href="https://wiki.freebsd.org/ExternalToolchain" />
+ </links>
+
+ <body>
+ <p>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:
+ <ul>
+ <li>Prepare a migration to a newer version of the components like compilers, binutils, and elftoolchain.</li>
+ <li>Port &os; to newer architecture</li>
+ <li>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.</li>
+ </ul>
+ </p>
+
+ <p>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).</p>
+
+ <p>A large number of fixes have been committed to HEAD to support
+ incompatible behaviour changes between <tt>ld(1)</tt> from
+ binutils 2.17.50 (the version in base) and binutils 2.24+.</p>
+
+ <p>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)</p>
+
+ <p>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.
+ </p>
+
+ <p>To simplify using an external toolchain, the following
+ pre-seeded configurations have been added to the ports tree:
+ <ul>
+ <li>amd64-xtoolchain-gcc</li>
+ <li>powerpc64-xtoolchain-gcc</li>
+ <li>sparc64-xtoolchain-gcc</li>
+ </ul>
+ </p>
+
+ <p>Those packages will depend on special version of GCC
+ (minimalistic cross-built ready GCC) and on binutils. To use
+ them run: <tt>make CROSS_TOOLCHAIN=powerpc64-gcc TARGET=powerpc
+ TARGET_ARCH=powerpc64</tt></p>
+
+ <p>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.</p>
+ </body>
+
+ <help>
+ <task>Patch and upstream GCC 4.9 to support &os; mips, arm and
+ aarch64</task>
+ <task>Adapt and upstream the aarch64 patches for binutils 2.25
+ </task>
+ <task>Add more pre seeded configurations</task>
+ </help>
+ </project>
+
</report>
More information about the svn-doc-all
mailing list