svn commit: r420954 - in head: base base/binutils devel/binutils
Baptiste Daroussin
bapt at FreeBSD.org
Sat Aug 27 00:14:13 UTC 2016
Author: bapt
Date: Sat Aug 27 00:14:11 2016
New Revision: 420954
URL: https://svnweb.freebsd.org/changeset/ports/420954
Log:
WIP: external toolchain cross buildable: binutils
Add a cross buildable binutils package.
The new category is not linked to the regular ports tree to avoid make install,
poudriere and others to catch it automagically
instead of ending with a very complex file removal in the stage, prefer to use
specific plist per arch.
For now only sparc64 tested and added. This version of binutils is stipped down
only the components that are not supported by elftoolchain
Added:
head/base/
head/base/README (contents, props changed)
head/base/binutils/
head/base/binutils/Makefile (contents, props changed)
head/base/binutils/pkg-plist.sparc64 (contents, props changed)
Modified:
head/devel/binutils/Makefile
Added: head/base/README
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/base/README Sat Aug 27 00:14:11 2016 (r420954)
@@ -0,0 +1,18 @@
+# $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=/sysroot/sparc64 package
Added: head/base/binutils/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/base/binutils/Makefile Sat Aug 27 00:14:11 2016 (r420954)
@@ -0,0 +1,37 @@
+# $FreeBSD$
+
+PORTEPOCH= 0
+CATEGORIES= base
+PKGNAMEPREFIX= ${OPSYS}-
+VALID_CATEGORIES= base
+
+COMMENT= GNU binary tools for base
+
+MASTERDIR= ${.CURDIR}/../..//devel/binutils
+PLIST= ${.CURDIR}/pkg-plist.${TARGET_ARCH}
+
+.if !defined(CROSS_TOOLCHAIN)
+.error Please define CROSS_TOOLCHAIN before building
+.endif
+
+.if !defined(CROSS_SYSROOT)
+.error Please define CROSS_SYSROOT before building
+.endif
+
+TARGET_ARCH= ${CROSS_TOOLCHAIN:C,-.*$,,}
+BUTARGET= ${TARGET_ARCH}-${OPSYS:tl}
+CONFIGURE_ARGS+= --host=${BUTARGET} \
+ --disable-host-shared
+PREFIX= /usr
+
+.include "${MASTERDIR}/Makefile"
+.include "${LOCALBASE}/share/toolchains/${CROSS_TOOLCHAIN}.mk"
+
+PKG_ENV+= ABI_FILE=${CROSS_SYSROOT}/bin/sh
+CFLAGS+= --sysroot=${CROSS_SYSROOT} -isystem ${CROSS_SYSROOT}/usr/include
+CXXFLAGS+= --sysroot=${CROSS_SYSROOT}
+CC= ${XCC}
+CXX= ${XCXX}
+.for tool in AS AR LD NM OBJCOPY RANLIB SIZE STRINGS
+${tool}= ${CROSS_BINUTILS_PREFIX}/${tool}
+.endfor
Added: head/base/binutils/pkg-plist.sparc64
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/base/binutils/pkg-plist.sparc64 Sat Aug 27 00:14:11 2016 (r420954)
@@ -0,0 +1,59 @@
+bin/as
+bin/ld
+bin/ld.bfd
+bin/objcopy
+bin/objdump
+share/man/man1/as.1.gz
+share/man/man1/ld.1.gz
+share/man/man1/objcopy.1.gz
+share/man/man1/objdump.1.gz
+sparc64-freebsd/bin/ar
+sparc64-freebsd/bin/as
+sparc64-freebsd/bin/ld
+sparc64-freebsd/bin/ld.bfd
+sparc64-freebsd/bin/nm
+sparc64-freebsd/bin/objcopy
+sparc64-freebsd/bin/objdump
+sparc64-freebsd/bin/ranlib
+sparc64-freebsd/bin/readelf
+sparc64-freebsd/bin/size
+sparc64-freebsd/bin/strip
+sparc64-freebsd/lib/ldscripts/elf32_sparc.x
+sparc64-freebsd/lib/ldscripts/elf32_sparc.xbn
+sparc64-freebsd/lib/ldscripts/elf32_sparc.xc
+sparc64-freebsd/lib/ldscripts/elf32_sparc.xd
+sparc64-freebsd/lib/ldscripts/elf32_sparc.xdc
+sparc64-freebsd/lib/ldscripts/elf32_sparc.xdw
+sparc64-freebsd/lib/ldscripts/elf32_sparc.xn
+sparc64-freebsd/lib/ldscripts/elf32_sparc.xr
+sparc64-freebsd/lib/ldscripts/elf32_sparc.xs
+sparc64-freebsd/lib/ldscripts/elf32_sparc.xsc
+sparc64-freebsd/lib/ldscripts/elf32_sparc.xsw
+sparc64-freebsd/lib/ldscripts/elf32_sparc.xu
+sparc64-freebsd/lib/ldscripts/elf32_sparc.xw
+sparc64-freebsd/lib/ldscripts/elf64_sparc.x
+sparc64-freebsd/lib/ldscripts/elf64_sparc.xbn
+sparc64-freebsd/lib/ldscripts/elf64_sparc.xc
+sparc64-freebsd/lib/ldscripts/elf64_sparc.xd
+sparc64-freebsd/lib/ldscripts/elf64_sparc.xdc
+sparc64-freebsd/lib/ldscripts/elf64_sparc.xdw
+sparc64-freebsd/lib/ldscripts/elf64_sparc.xn
+sparc64-freebsd/lib/ldscripts/elf64_sparc.xr
+sparc64-freebsd/lib/ldscripts/elf64_sparc.xs
+sparc64-freebsd/lib/ldscripts/elf64_sparc.xsc
+sparc64-freebsd/lib/ldscripts/elf64_sparc.xsw
+sparc64-freebsd/lib/ldscripts/elf64_sparc.xu
+sparc64-freebsd/lib/ldscripts/elf64_sparc.xw
+sparc64-freebsd/lib/ldscripts/elf64_sparc_fbsd.x
+sparc64-freebsd/lib/ldscripts/elf64_sparc_fbsd.xbn
+sparc64-freebsd/lib/ldscripts/elf64_sparc_fbsd.xc
+sparc64-freebsd/lib/ldscripts/elf64_sparc_fbsd.xd
+sparc64-freebsd/lib/ldscripts/elf64_sparc_fbsd.xdc
+sparc64-freebsd/lib/ldscripts/elf64_sparc_fbsd.xdw
+sparc64-freebsd/lib/ldscripts/elf64_sparc_fbsd.xn
+sparc64-freebsd/lib/ldscripts/elf64_sparc_fbsd.xr
+sparc64-freebsd/lib/ldscripts/elf64_sparc_fbsd.xs
+sparc64-freebsd/lib/ldscripts/elf64_sparc_fbsd.xsc
+sparc64-freebsd/lib/ldscripts/elf64_sparc_fbsd.xsw
+sparc64-freebsd/lib/ldscripts/elf64_sparc_fbsd.xu
+sparc64-freebsd/lib/ldscripts/elf64_sparc_fbsd.xw
Modified: head/devel/binutils/Makefile
==============================================================================
--- head/devel/binutils/Makefile Sat Aug 27 00:09:51 2016 (r420953)
+++ head/devel/binutils/Makefile Sat Aug 27 00:14:11 2016 (r420954)
@@ -3,8 +3,8 @@
PORTNAME= binutils
PORTVERSION= 2.27
-PORTEPOCH= 1
-CATEGORIES= devel
+PORTEPOCH?= 1
+CATEGORIES?= devel
MASTER_SITES= SOURCEWARE/binutils/releases
MAINTAINER?= bapt at FreeBSD.org
@@ -13,10 +13,12 @@ COMMENT?= GNU binary tools
LICENSE= GPLv3 LGPL3
LICENSE_COMB= multi
+.if !defined(CROSS_TOOLCHAIN)
BUILD_DEPENDS= ${LOCALBASE}/lib/libgmp.so:math/gmp \
${LOCALBASE}/lib/libmpfr.so:math/mpfr
CONFLICTS= libbfd-[0-9]*
+.endif
OPTIONS_DEFINE= NLS RELRO
More information about the svn-ports-all
mailing list