freebsd-ports/base
John Baldwin 9b66924988 Enable .init_array and .fini_array with xtoolchain GCC.
For base/gcc, only enable .init_array and .fini_array for 12.0 and later
to match the policy used by clang and llvm.  For the xtoolchain ports,
enable these unconditionally since the only OS version handy is the OS
version of the build host, not the target OS to be built.  Unlike llvm,
the use of .init_array and .fini_array is set at compile-time for GCC
and can't be changed at runtime.

Bump PORTREVISION for base/gcc and the xtoolchain GCC ports.

Reviewed by:	bapt (earlier version)
Differential Revision:	https://reviews.freebsd.org/D16014
2018-07-11 16:50:00 +00:00
..
binutils Use a unified packing list for base/binutils. 2018-06-29 18:07:29 +00:00
gcc Enable .init_array and .fini_array with xtoolchain GCC. 2018-07-11 16:50:00 +00:00
Makefile Add a Makefile to unbreak some scripts that lookup for all lowercase directories 2016-11-11 18:51:42 +00:00
README Update the README to include how to cross build gcc 2016-09-08 21:04:00 +00:00

# $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