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