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 archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:54 UTC