Re: External toolchain support

From: Alfred Perlstein <bright_at_mu.org>
Date: Sun, 30 Nov 2014 09:02:01 -0800
On 11/29/14, 7:04 AM, Baptiste Daroussin wrote:
> Hi all,
>
> It is now possible to use an external toolchain to build the kernel and base
> (tested with gcc 4.9.1 and latest binutils)
>
> Of course a lot of work is needed to make it build cleanly (aka lots of warning
> to fix).
>
> What have been tested so far:
> - sparc64 kernel + world
> - amd64 kernel + world
> - powerpc64 kernel + world
>
> mips cannot be tested because upstream gcc never heard of FreeBSD running on
> mips, and I did not receive any patches for mips.
>
> for amd64, in the kernel two things had to be removed from the build:
> - aesni: (it request a header which is compiler specific and on recent gcc
> will end up including stdlib.h which gives errors because kernel version of free
> and malloc are not compatible with the version defined in stdlib.h)
> - hptmv: I had to remove it from GENERIC and kernel building.
>
> The result is:
>
> $ sysctl kern.ostype kern.osrelease kern.osrevision kern.compiler_version
>
> kern.ostype: FreeBSD
> kern.osrelease: 11.0-CURRENT
> kern.osrevision: 199506
> kern.compiler_version: gcc version 4.9.1 (FreeBSD Ports Collection for amd64)
>
> so yes it boots and runs
>
> How to do you own testing:
> in the ports tree/packages (the amd64 version will appear in packages next week)
> install:
> amd64-xtoolchain-gcc or powerpc64-xtoolchain-gcc or sparc64-xtoolchain-gcc
>
> if your source tree:
> make CROSS_TOOLCHAIN=amd64-gcc -j8 buildkernel
> or
> make CROSS_TOOLCHAIN=powerpc64-gcc -j8 buildkernel
> or
> make CROSS_TOOLCHAIN=sparc64-gcc -j8 buildkernel
>
> To build world:
> same operation with buildworld. Please note that for world you will need to add
> define NO_WERROR (world will also require a change in share/mk/bsd.lib.mk:
> s/--fatal-warnings/--no-fatal-warnings/)
>
> also notes that for the kernel a lots of warnings are disabled in
> share/sys/kern.mk so do not hesitate to remove yourself those -Wno-error= and
> fix the issue they are hidding!
>
> Best regards,
> Bapt
This is amazing work, thank you Bapt!

-Alfred
Received on Sun Nov 30 2014 - 16:02:14 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:54 UTC