freebsd-ports/base
John Baldwin c0cd82c292 Use a unified packing list for base/binutils.
Create a single pkg-plist that uses arch-specific PLIST_SUBs to control
arch-specific linker scripts but is otherwise machine-independent.
- Only include objcopy for OS versions older than 11.0 (11.0 uses the
  elftoolchain elfcopy as objcopy in the base system)
- Use %%BUTARGET%% throughout.  This probably fixes the sparc64 pkg-plist
  which was not updated when BUTARGET started including OSREL.  This also
  avoids hardcoding an OSREL of 12.0 for powerpc64.
- Enable MIPS ldscripts for all MIPS architectures which probably fixes
  this port on mips64 and mipsn32.
- Enable PowerPC ldscripts for all PowerPC architectures which probably
  fixes this port on powerpc.

Reviewed by:	bapt, bdrewery
2018-06-29 18:07:29 +00:00
..
binutils
gcc
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