freebsd-ports/base
John Baldwin b0889ee3fa Update base/gcc to work with devel/freebsd-gcc6.
- Explicitly set all the toolchain <foo>_FOR_TARGET variables.
  GCC's default guess for CC, etc. happened to work with the
  powerpc64-gcc port, but fails when the binaries have a suffix
  like the '6' suffix in freebsd-gcc6.  Setting these variables
  explicitly keeps GCC's build from having to guess.
- Pull patches from freebsd6-gcc instead of powerpc64-gcc.
- Use per-arch plists.
- Simplify the post-install steps to keep the hard links the
  normal install performs and avoid renaming binaries.
  Keep links to 'cc' and 'c++'.

Reviewed by:	bapt (earlier version)
Differential Revision:	https://reviews.freebsd.org/D22594
2019-12-21 01:13:07 +00:00
..
binutils
gcc Update base/gcc to work with devel/freebsd-gcc6. 2019-12-21 01:13:07 +00:00
Makefile
README

# $FreeBSD$

How to cross build initial toolchain

Example with sparc64

1/ install a cross toolchain
pkg install sparc64-xtoolchain-gcc

2/ cross build world
make CROSS_TOOLCHAIN=sparc64-gcc TARGET=sparc64 TARGET_ARCH=sparc64 buildworld

3/ install the world in a sysroot
make CROSS_TOOLCHAIN=sparc64-gcc TARGET=sparc64 TARGET_ARCH=sparc64 installworld DESTDIR=/sysroots/sparc64

4/ build the required port
$ cd base/binutils
make CROSS_TOOLCHAIN=sparc64-gcc CROSS_SYSROOT=/sysroots/sparc64 package

$ cd base/gcc
make CROSS_TOOLCHAIN=sparc64-gcc CROSS_SYSROOT=/sysroots/sparc64 package

the package are in base/gcc/work/pkg/*.txz and base/binutils/work/pkg/*.txz

To add a plist for a new binutils target
$ cd base/binutils
make CROSS_TOOLCHAIN=sparc64-gcc CROSS_SYSROOT=/sysroots/sparc64 makeplist > pkg-plist

edit the pkg-plist and remove everything which base does not provide via the
elftoolchain