Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 Apr 2014 00:34:49 +0000 (UTC)
From:      John Marino <marino@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r350752 - in head/lang: gnatdroid-armv5 gnatdroid-armv5/files gnatdroid-armv7 gnatdroid-armv7/files gnatdroid-binutils gnatdroid-sysroot
Message-ID:  <201404100034.s3A0YndE025004@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marino
Date: Thu Apr 10 00:34:48 2014
New Revision: 350752
URL: http://svnweb.freebsd.org/changeset/ports/350752
QAT: https://qat.redports.org/buildarchive/r350752/

Log:
  lang/gnatdroid-*: Support multiple API, base on gcc-aux (gcc 4.9)
  
  This represents major changes with gnatdroid.
  
  The sysroot is no longer API 9 or 19, but a choice of API 8, 9, 15,
  16, 17, 18, or 19.  The prefix is not androidX but just "android".
  The binutils port had to be adjusted due to the prefix change.
  
  Finally, gnatdroid-armv(5,7) was substancially reworked to use
  gcc-aux (4.9) instead of gcc47-aux (4.7).  This means the new ARM
  unwinder is in use (zero cost exceptions).  Only 6 ACATS tests are
  failing, they are related to the missing stack check capability.
  
  Future work will speed up ACATS remote device testing and hopefully
  enable gnat.dg testing too.

Added:
  head/lang/gnatdroid-armv5/files/acats.diff   (contents, props changed)
  head/lang/gnatdroid-armv7/files/acats.diff   (contents, props changed)
Deleted:
  head/lang/gnatdroid-sysroot/pkg-plist
Modified:
  head/lang/gnatdroid-armv5/Makefile
  head/lang/gnatdroid-armv5/pkg-plist
  head/lang/gnatdroid-armv7/Makefile
  head/lang/gnatdroid-armv7/pkg-plist
  head/lang/gnatdroid-binutils/Makefile
  head/lang/gnatdroid-sysroot/Makefile
  head/lang/gnatdroid-sysroot/distinfo

Modified: head/lang/gnatdroid-armv5/Makefile
==============================================================================
--- head/lang/gnatdroid-armv5/Makefile	Thu Apr 10 00:34:17 2014	(r350751)
+++ head/lang/gnatdroid-armv5/Makefile	Thu Apr 10 00:34:48 2014	(r350752)
@@ -3,13 +3,11 @@
 
 PORTNAME=	armv5
 PORTVERSION=	${SNAPSHOT}
-PORTREVISION=	2
 CATEGORIES=	lang
 MASTER_SITES=	${MASTER_SITE_GCC}
 MASTER_SITE_SUBDIR=	releases/gcc-${GCC_VERSION}
 PKGNAMEPREFIX=	gnatdroid-
-DISTNAME=	arm-gnat-${PORTVERSION}
-DISTFILES=	gcc-${GCC_VERSION}.tar.bz2
+DISTFILES=	${IDENTIFICATION}.tar.bz2
 
 MAINTAINER=	marino@FreeBSD.org
 COMMENT=	C/Ada cross-compiler, target: Android ARMv5
@@ -17,56 +15,47 @@ COMMENT=	C/Ada cross-compiler, target: A
 LICENSE=	GPLv3 GPLv3RLE
 LICENSE_COMB=	multi
 
-BUILD_DEPENDS=	gnatdroid-sysroot=19:${PORTSDIR}/lang/gnatdroid-sysroot \
+BUILD_DEPENDS=	gnatdroid-sysroot>=19:${PORTSDIR}/lang/gnatdroid-sysroot \
 		gnatdroid-binutils>=2.21:${PORTSDIR}/lang/gnatdroid-binutils
 RUN_DEPENDS:=	${BUILD_DEPENDS}
 
 NO_LICENSES_INSTALL= yes
 
-.include "${.CURDIR}/../gcc47-aux/Makefile.common"
+.include "${.CURDIR}/../gcc-aux/Makefile.common"
 
-# DELETE NEXT LINE AFTER NEXT UPDATE TO GCC-AUX 4.7 TO AVOID PORTEPOCH
-# Without it, this port version regresses by a day
-SNAPSHOT:=	20130413 	# last portversion + 1
-
-USES+=		ada:47 gmake
-LANGS=		c ada
-APPLY_DIFFS=	core ada ada-testsuite gcc-testsuite
+USES+=		ada gmake
+LANGS=		c c++ ada
+APPLY_DIFFS=	core ada cxx ada-testsuite
 NO_MTREE=	YES
-DISTINFO_FILE=	${.CURDIR}/../gcc47-aux/distinfo
+DISTINFO_FILE=	${.CURDIR}/../gcc-aux/distinfo
 
-# Disable C++ until arm.cc/no-rtti issue resolved for libsupc++
-
-OPTIONS_DEFINE=		FORT OBJC #CXX
-OPTIONS_DEFAULT=
+OPTIONS_DEFINE=		FORT OBJC
 OPTIONS_SUB=		yes
-CXX_DESC=		Also build c++ language
 FORT_DESC=		Also build Fortran language
 OBJC_DESC=		Also build Objective-C language
 
-DROID_TARGET=		arm-android-eabi
+DROID_TARGET=		arm-aux-linux-androideabi
 DROID_ARCH=		armv5te
 ARMVERSION=		ARMv5
 FPU=			vfp
-WRKSRC=			${WRKDIR}/gcc-${GCC_VERSION}
+WRKSRC=			${WRKDIR}/${IDENTIFICATION}
 BUILD_WRKSRC=		${WRKDIR}/build
-PATCHDIR=		${.CURDIR}/../gcc47-aux/files
+PATCHDIR=		${.CURDIR}/../gcc-aux/files
 CFG_SCRIPT=		${WRKSRC}/configure
 REVFILE=		${WRKSRC}/gcc/REVISION
-SRPREFIX=		${LOCALBASE}/android19
+SRPREFIX=		${LOCALBASE}/android
 PREFIX=			${SRPREFIX}/${ARMVERSION}
-INSTALLDIRS=		lib libexec share
-INSTALLDIRS+=		${DROID_TARGET}/lib
 PLIST_SUB+=		TARGET="${DROID_TARGET}"
 PLIST_SUB+=		GCCVERS="${GCC_VERSION}"
 SUB_FILES=		pkg-message
 SUB_LIST=		TARGET="${DROID_TARGET}"
+EXTRA_PATCHES=		${FILESDIR}/acats.diff
 CROSS=			gnat gnatbind gnatchop gnatclean gnatfind gnatkr \
 			gnatlink gnatls gnatmake gnatprep gnatxref
 
 ALL_TARGET=		all
 
-.include <bsd.port.pre.mk>
+.include <bsd.port.options.mk>
 
 .if ${ARCH:S/amd64/x86_64/} == x86_64
 OS_LABEL4VERS=	"[${OPSYS}64 x Android ${ARMVERSION}]"
@@ -74,33 +63,17 @@ OS_LABEL4VERS=	"[${OPSYS}64 x Android ${
 OS_LABEL4VERS=	"[${OPSYS}32 x Android ${ARMVERSION}]"
 .endif
 
-###########
-##  C++  ##
-###########
-
-.if ${PORT_OPTIONS:MCXX}
-LANGS+=		c++
-APPLY_DIFFS+=	cxx cxx-testsuite
-INSTALLDIRS+=	include/c++/${GCC_VERSION}
-.endif
-
-###############
-##  Fortran  ##
-###############
-
 .if ${PORT_OPTIONS:MFORT}
 LANGS+=		fortran
 APPLY_DIFFS+=	fortran
 .endif
 
-###################
-##  Objective-C  ##
-###################
-
 .if ${PORT_OPTIONS:MOBJC}
 LANGS+=		objc
 .endif
 
+INSTALL_ENV=	${MAKE_ENV:C/^PATH=/&${SRPREFIX}\/${ARMVERSION}\/bin:/}
+
 CONFIGURE_ARGS=		--enable-languages=${LANGS:Q}
 CONFIGURE_ARGS+=	--target=${DROID_TARGET}
 CONFIGURE_ARGS+=	--program-prefix=${DROID_TARGET}-
@@ -116,12 +89,15 @@ CONFIGURE_ARGS+=	--with-float=soft
 CONFIGURE_ARGS+=	--with-fpu=${FPU}
 CONFIGURE_ARGS+=	--enable-target-optspace
 CONFIGURE_ARGS+=	--enable-threads=posix
+CONFIGURE_ARGS+=	--enable-cxx-flags=-frtti
 CONFIGURE_ARGS+=	--disable-bootstrap
 CONFIGURE_ARGS+=	--disable-shared
 CONFIGURE_ARGS+=	--disable-libssp
 CONFIGURE_ARGS+=	--disable-libgomp
 CONFIGURE_ARGS+=	--disable-libmudflap
 CONFIGURE_ARGS+=	--disable-libquadmath
+CONFIGURE_ARGS+=	--disable-libsanitizer
+CONFIGURE_ARGS+=	--disable-libitm
 CONFIGURE_ARGS+=	--disable-sjlj-exceptions
 CONFIGURE_ARGS+=	--disable-tls
 CONFIGURE_ARGS+=	--disable-nls
@@ -129,13 +105,8 @@ CONFIGURE_ARGS+=	--disable-nls
 post-extract:
 	# Personalize GNAT for each different machine
 	@${ECHO} "-=> GNAT AUX ${OS_LABEL4VERS}" > ${REVFILE}
-
-	# Create new directories in preparation of applying diff files
-.if ${PORT_OPTIONS:MCXX}
 	${MKDIR} ${WRKSRC}/libstdc++-v3/config/locale/dragonfly
 	${MKDIR} ${WRKSRC}/libstdc++-v3/config/os/bsd/dragonfly
-.endif
-
 	# Apply required composite diff files
 .for suffix in ${APPLY_DIFFS}
 	@${ECHO} "Applying composite patch diff-${suffix}"
@@ -145,34 +116,36 @@ post-extract:
 do-configure:
 	${MKDIR} ${BUILD_WRKSRC}
 	cd ${BUILD_WRKSRC} && ${SETENV} ${CONFIGURE_ENV} \
-	${CFG_SCRIPT} ${CONFIGURE_ARGS}
+		${CFG_SCRIPT} ${CONFIGURE_ARGS}
 
-pre-install:
-#	The "native tools" won't install unless a directory exists
-	${MKDIR} ${STAGEDIR}${PREFIX}/${DROID_TARGET}/bin
+do-install:
 #	Buggy makefile; seems to have forgotten this is a cross compiler
 #	Manually rename products so it doesn't rebuild them with new name
 .for X in ${CROSS}
+.  if !exists(${BUILD_WRKSRC}/gcc/${X})
 	${CP} -a ${BUILD_WRKSRC}/gcc/${X}-cross ${BUILD_WRKSRC}/gcc/${X}
+.  endif
 .endfor
-
-do-install:
-	cd ${BUILD_WRKSRC} && ${GMAKE} install-strip DESTDIR=${STAGEDIR}
+	cd ${BUILD_WRKSRC} && ${SETENV} ${INSTALL_ENV} \
+		${MAKE_CMD} install-strip DESTDIR=${STAGEDIR}
+	${MV} ${STAGEDIR}${PREFIX}/bin/ada \
+		${STAGEDIR}${PREFIX}/bin/${DROID_TARGET}-ada
 
 post-install:
-.for d in ${INSTALLDIRS}
-	cd ${STAGEDIR}${PREFIX}; ${FIND} $d \( -type f -or -type l \) | \
-		${SORT} >> ${TMPPLIST}
-.endfor
 .for loop in A B
 	cd ${STAGEDIR}${PREFIX}; ${FIND} * -type d -empty | \
 		${SORT} -dr | ${XARGS} ${RMDIR}
 .endfor
+	cd ${STAGEDIR}${PREFIX}; \
+	   ${FIND} * \( -type f -or -type l \) | ${SORT} | \
+	   ${SED} -e '/^bin\//d' -e '/^${DROID_TARGET}\/bin\//d' \
+	   >> ${TMPPLIST}
 	cd ${STAGEDIR}${PREFIX}; ${FIND} * -type d | ${SORT} -dr | \
-	   ${SED} -e '/^bin$$/d' \
-	   -e '/^${DROID_TARGET}\/bin$$/d' \
-	   -e '/^${DROID_TARGET}\/lib$$/d' \
-	   -e '/^${DROID_TARGET}$$/d' \
-	   -e 's/^/@dirrm /g' >> ${TMPPLIST}
+	   ${SED} -e 's/^/@dirrmtry /g' >> ${TMPPLIST}
+
+acats: build
+	cd ${BUILD_WRKSRC}/gcc && ${SETENV} \
+	   PATH=${LOCALBASE}/gcc-aux/bin:${PATH}:${PREFIX}/bin \
+	   gmake -sk check-acats
 
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>

Added: head/lang/gnatdroid-armv5/files/acats.diff
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/gnatdroid-armv5/files/acats.diff	Thu Apr 10 00:34:48 2014	(r350752)
@@ -0,0 +1,103 @@
+The testsuite assumes "tablet" is a known host.
+Before running the testsuite, define "tablet" in /etc/hosts
+
+--- gcc/testsuite/ada/acats/run_acats.orig	2011-08-18 12:31:35.000000000 -0500
++++ gcc/testsuite/ada/acats/run_acats	2011-08-18 12:31:35.000000000 -0500
+@@ -11,7 +11,7 @@
+ host_gnatchop=`which gnatchop`
+ host_gnatmake=`which gnatmake`
+ ROOT=`${PWDCMD-pwd}`
+-BASE=`cd $ROOT/../../..; ${PWDCMD-pwd}`
++BASE=`realpath $ROOT/../../..`
+ 
+ PATH=$BASE:$ROOT:$PATH
+ ADA_INCLUDE_PATH=$BASE/ada/rts
+@@ -23,12 +23,12 @@
+    exit 1
+ fi
+ 
+-if [ ! -f $BASE/gnatchop ]; then
++if [ ! -f $host_gnatchop ]; then
+    echo gnattools missing, exiting.
+    exit 1
+ fi
+ 
+-if [ ! -f $BASE/gnatmake ]; then
++if [ ! -f $host_gnatmake ]; then
+    echo gnattools missing, exiting.
+    exit 1
+ fi
+@@ -46,8 +46,8 @@
+ chmod +x host_gnatchop
+ 
+ echo '#!/bin/sh' > host_gnatmake
+-echo PATH=`dirname $host_gnatmake`:'$PATH' >> host_gnatmake
+-echo unset ADA_INCLUDE_PATH ADA_OBJECTS_PATH GCC_EXEC_PREFIX >> host_gnatmake
++echo unset -v `env | sed -e "s/=.*//" -e "s/^\.//"` >> host_gnatmake 
++echo PATH=`dirname $host_gnatmake`:'/sbin:/bin:/usr/bin:/usr/sbin' >> host_gnatmake
+ echo export PATH >> host_gnatmake
+ echo exec gnatmake '"$@"' >> host_gnatmake
+ 
+--- gcc/testsuite/ada/acats/run_all.sh.orig	2011-08-18 12:31:42.000000000 -0500
++++ gcc/testsuite/ada/acats/run_all.sh	2011-08-18 18:26:04.000000000 -0500
+@@ -11,9 +11,14 @@
+ 
+ gccflags="-O2"
+ gnatflags="-gnatws"
++tabtarget="/data/local/testsuite"
+ 
+ target_run () {
+-  eval $EXPECT -f $testdir/run_test.exp $*
++  # Run on rooted tablet (port 22 vs port 2222)
++  BN=`basename $*`
++  $STRIP_FOR_TARGET $*
++  /usr/bin/scp -qp $* root@tablet:$tabtarget/
++  /usr/bin/ssh -q tablet $tabtarget/$BN
+ }
+ 
+ # End of customization section.
+@@ -55,13 +60,9 @@
+   exit 1
+ fi
+ 
+-target_gnatchop () {
+-  gnatchop --GCC="$GCC_DRIVER" $*
+-}
+-
+ target_gnatmake () {
+-  echo gnatmake --GCC=\"$GCC\" $gnatflags $gccflags $* -largs $EXTERNAL_OBJECTS --GCC=\"$GCC\"
+-  gnatmake --GCC="$GCC" $gnatflags $gccflags $* -largs $EXTERNAL_OBJECTS --GCC="$GCC"
++  echo gnatmake-cross --GCC=\"$GCC\" $gnatflags $gccflags $* -largs $EXTERNAL_OBJECTS --GCC=\"$GCC\"
++  gnatmake-cross --GCC="$GCC" $gnatflags $gccflags $* -largs $EXTERNAL_OBJECTS --GCC="$GCC"
+ }
+ 
+ target_gcc () {
+@@ -94,8 +95,8 @@
+ display `$GCC -v 2>&1`
+ display host=`gcc -dumpmachine`
+ display target=$target
+-display `type gnatmake`
+-gnatls -v >> $dir/acats.log
++display `type gnatmake-cross`
++gnatls-cross -v >> $dir/acats.log
+ display ""
+ 
+ display "		=== acats support ==="
+@@ -187,7 +188,7 @@
+    exit 1
+ fi
+ 
+-target_gnatchop *.adt >> $dir/acats.log 2>&1
++host_gnatchop *.adt >> $dir/acats.log 2>&1
+ 
+ target_gnatmake -c -gnato -gnatE *.ads >> $dir/acats.log 2>&1
+ target_gnatmake -c -gnato -gnatE *.adb >> $dir/acats.log 2>&1
+@@ -262,7 +263,7 @@
+          continue
+       fi
+ 
+-      target_gnatchop -c -w `ls ${test}*.a ${test}*.ada ${test}*.adt ${test}*.am ${test}*.dep 2> /dev/null` >> $dir/acats.log 2>&1
++      host_gnatchop -c -w `ls ${test}*.a ${test}*.ada ${test}*.adt ${test}*.am ${test}*.dep 2> /dev/null` >> $dir/acats.log 2>&1
+       main=""
+       find_main
+       if [ -z "$main" ]; then

Modified: head/lang/gnatdroid-armv5/pkg-plist
==============================================================================
--- head/lang/gnatdroid-armv5/pkg-plist	Thu Apr 10 00:34:17 2014	(r350751)
+++ head/lang/gnatdroid-armv5/pkg-plist	Thu Apr 10 00:34:48 2014	(r350752)
@@ -1,7 +1,9 @@
-bin/ada
+bin/%%TARGET%%-ada
+bin/%%TARGET%%-c++
 bin/%%TARGET%%-cpp
 bin/%%TARGET%%-gcc-%%GCCVERS%%
 bin/%%TARGET%%-gcov
+bin/%%TARGET%%-g++
 bin/%%TARGET%%-gcc
 bin/%%TARGET%%-gcc-ar
 bin/%%TARGET%%-gcc-nm
@@ -19,13 +21,3 @@ bin/%%TARGET%%-gnatmake
 bin/%%TARGET%%-gnatname
 bin/%%TARGET%%-gnatprep
 bin/%%TARGET%%-gnatxref
-%%TARGET%%/bin/gcc
-%%FORT%%%%TARGET%%/bin/gfortran
-%%TARGET%%/bin/gnat
-%%TARGET%%/bin/gnatbind
-%%TARGET%%/bin/gnatchop
-%%TARGET%%/bin/gnatkr
-%%TARGET%%/bin/gnatlink
-%%TARGET%%/bin/gnatls
-%%TARGET%%/bin/gnatmake
-%%TARGET%%/bin/gnatprep

Modified: head/lang/gnatdroid-armv7/Makefile
==============================================================================
--- head/lang/gnatdroid-armv7/Makefile	Thu Apr 10 00:34:17 2014	(r350751)
+++ head/lang/gnatdroid-armv7/Makefile	Thu Apr 10 00:34:48 2014	(r350752)
@@ -3,13 +3,11 @@
 
 PORTNAME=	armv7
 PORTVERSION=	${SNAPSHOT}
-PORTREVISION=	2
 CATEGORIES=	lang
 MASTER_SITES=	${MASTER_SITE_GCC}
 MASTER_SITE_SUBDIR=	releases/gcc-${GCC_VERSION}
 PKGNAMEPREFIX=	gnatdroid-
-DISTNAME=	arm-gnat-${PORTVERSION}
-DISTFILES=	gcc-${GCC_VERSION}.tar.bz2
+DISTFILES=	${IDENTIFICATION}.tar.bz2
 
 MAINTAINER=	marino@FreeBSD.org
 COMMENT=	C/Ada cross-compiler, target: Android ARMv7
@@ -17,56 +15,47 @@ COMMENT=	C/Ada cross-compiler, target: A
 LICENSE=	GPLv3 GPLv3RLE
 LICENSE_COMB=	multi
 
-BUILD_DEPENDS=	gnatdroid-sysroot=19:${PORTSDIR}/lang/gnatdroid-sysroot \
+BUILD_DEPENDS=	gnatdroid-sysroot>=19:${PORTSDIR}/lang/gnatdroid-sysroot \
 		gnatdroid-binutils>=2.21:${PORTSDIR}/lang/gnatdroid-binutils
 RUN_DEPENDS:=	${BUILD_DEPENDS}
 
 NO_LICENSES_INSTALL= yes
 
-.include "${.CURDIR}/../gcc47-aux/Makefile.common"
+.include "${.CURDIR}/../gcc-aux/Makefile.common"
 
-# DELETE NEXT LINE AFTER NEXT UPDATE TO GCC-AUX 4.7 TO AVOID PORTEPOCH
-# Without it, this port version regresses by a day
-SNAPSHOT:=	20130413 	# last portversion + 1
-
-USES+=		ada:47 gmake
-LANGS=		c ada
-APPLY_DIFFS=	core ada ada-testsuite gcc-testsuite
+USES+=		ada gmake
+LANGS=		c c++ ada
+APPLY_DIFFS=	core ada cxx ada-testsuite
 NO_MTREE=	YES
-DISTINFO_FILE=	${.CURDIR}/../gcc47-aux/distinfo
+DISTINFO_FILE=	${.CURDIR}/../gcc-aux/distinfo
 
-# Disable C++ until arm.cc/no-rtti issue resolved for libsupc++
-
-OPTIONS_DEFINE=		FORT OBJC #CXX
-OPTIONS_DEFAULT=
+OPTIONS_DEFINE=		FORT OBJC
 OPTIONS_SUB=		yes
-CXX_DESC=		Also build c++ language
 FORT_DESC=		Also build Fortran language
 OBJC_DESC=		Also build Objective-C language
 
-DROID_TARGET=		arm-android-eabi
+DROID_TARGET=		arm-aux-linux-androideabi
 DROID_ARCH=		armv7-a
 ARMVERSION=		ARMv7
 FPU=			neon
-WRKSRC=			${WRKDIR}/gcc-${GCC_VERSION}
+WRKSRC=			${WRKDIR}/${IDENTIFICATION}
 BUILD_WRKSRC=		${WRKDIR}/build
-PATCHDIR=		${.CURDIR}/../gcc47-aux/files
+PATCHDIR=		${.CURDIR}/../gcc-aux/files
 CFG_SCRIPT=		${WRKSRC}/configure
 REVFILE=		${WRKSRC}/gcc/REVISION
-SRPREFIX=		${LOCALBASE}/android19
+SRPREFIX=		${LOCALBASE}/android
 PREFIX=			${SRPREFIX}/${ARMVERSION}
-INSTALLDIRS=		lib libexec share
-INSTALLDIRS+=		${DROID_TARGET}/lib
 PLIST_SUB+=		TARGET="${DROID_TARGET}"
 PLIST_SUB+=		GCCVERS="${GCC_VERSION}"
 SUB_FILES=		pkg-message
 SUB_LIST=		TARGET="${DROID_TARGET}"
+EXTRA_PATCHES=		${FILESDIR}/acats.diff
 CROSS=			gnat gnatbind gnatchop gnatclean gnatfind gnatkr \
 			gnatlink gnatls gnatmake gnatprep gnatxref
 
 ALL_TARGET=		all
 
-.include <bsd.port.pre.mk>
+.include <bsd.port.options.mk>
 
 .if ${ARCH:S/amd64/x86_64/} == x86_64
 OS_LABEL4VERS=	"[${OPSYS}64 x Android ${ARMVERSION}]"
@@ -74,33 +63,17 @@ OS_LABEL4VERS=	"[${OPSYS}64 x Android ${
 OS_LABEL4VERS=	"[${OPSYS}32 x Android ${ARMVERSION}]"
 .endif
 
-###########
-##  C++  ##
-###########
-
-.if ${PORT_OPTIONS:MCXX}
-LANGS+=		c++
-APPLY_DIFFS+=	cxx cxx-testsuite
-INSTALLDIRS+=	include/c++/${GCC_VERSION}
-.endif
-
-###############
-##  Fortran  ##
-###############
-
 .if ${PORT_OPTIONS:MFORT}
 LANGS+=		fortran
 APPLY_DIFFS+=	fortran
 .endif
 
-###################
-##  Objective-C  ##
-###################
-
 .if ${PORT_OPTIONS:MOBJC}
 LANGS+=		objc
 .endif
 
+INSTALL_ENV=	${MAKE_ENV:C/^PATH=/&${SRPREFIX}\/${ARMVERSION}\/bin:/}
+
 CONFIGURE_ARGS=		--enable-languages=${LANGS:Q}
 CONFIGURE_ARGS+=	--target=${DROID_TARGET}
 CONFIGURE_ARGS+=	--program-prefix=${DROID_TARGET}-
@@ -116,12 +89,15 @@ CONFIGURE_ARGS+=	--with-float=soft
 CONFIGURE_ARGS+=	--with-fpu=${FPU}
 CONFIGURE_ARGS+=	--enable-target-optspace
 CONFIGURE_ARGS+=	--enable-threads=posix
+CONFIGURE_ARGS+=	--enable-cxx-flags=-frtti
 CONFIGURE_ARGS+=	--disable-bootstrap
 CONFIGURE_ARGS+=	--disable-shared
 CONFIGURE_ARGS+=	--disable-libssp
 CONFIGURE_ARGS+=	--disable-libgomp
 CONFIGURE_ARGS+=	--disable-libmudflap
 CONFIGURE_ARGS+=	--disable-libquadmath
+CONFIGURE_ARGS+=	--disable-libsanitizer
+CONFIGURE_ARGS+=	--disable-libitm
 CONFIGURE_ARGS+=	--disable-sjlj-exceptions
 CONFIGURE_ARGS+=	--disable-tls
 CONFIGURE_ARGS+=	--disable-nls
@@ -129,13 +105,8 @@ CONFIGURE_ARGS+=	--disable-nls
 post-extract:
 	# Personalize GNAT for each different machine
 	@${ECHO} "-=> GNAT AUX ${OS_LABEL4VERS}" > ${REVFILE}
-
-	# Create new directories in preparation of applying diff files
-.if ${PORT_OPTIONS:MCXX}
 	${MKDIR} ${WRKSRC}/libstdc++-v3/config/locale/dragonfly
 	${MKDIR} ${WRKSRC}/libstdc++-v3/config/os/bsd/dragonfly
-.endif
-
 	# Apply required composite diff files
 .for suffix in ${APPLY_DIFFS}
 	@${ECHO} "Applying composite patch diff-${suffix}"
@@ -145,34 +116,36 @@ post-extract:
 do-configure:
 	${MKDIR} ${BUILD_WRKSRC}
 	cd ${BUILD_WRKSRC} && ${SETENV} ${CONFIGURE_ENV} \
-	${CFG_SCRIPT} ${CONFIGURE_ARGS}
+		${CFG_SCRIPT} ${CONFIGURE_ARGS}
 
-pre-install:
-#	The "native tools" won't install unless a directory exists
-	${MKDIR} ${STAGEDIR}${PREFIX}/${DROID_TARGET}/bin
+do-install:
 #	Buggy makefile; seems to have forgotten this is a cross compiler
 #	Manually rename products so it doesn't rebuild them with new name
 .for X in ${CROSS}
+.  if !exists(${BUILD_WRKSRC}/gcc/${X})
 	${CP} -a ${BUILD_WRKSRC}/gcc/${X}-cross ${BUILD_WRKSRC}/gcc/${X}
+.  endif
 .endfor
-
-do-install:
-	cd ${BUILD_WRKSRC} && ${GMAKE} install-strip DESTDIR=${STAGEDIR}
+	cd ${BUILD_WRKSRC} && ${SETENV} ${INSTALL_ENV} \
+		${MAKE_CMD} install-strip DESTDIR=${STAGEDIR}
+	${MV} ${STAGEDIR}${PREFIX}/bin/ada \
+		${STAGEDIR}${PREFIX}/bin/${DROID_TARGET}-ada
 
 post-install:
-.for d in ${INSTALLDIRS}
-	cd ${STAGEDIR}${PREFIX}; ${FIND} $d \( -type f -or -type l \) | \
-		${SORT} >> ${TMPPLIST}
-.endfor
 .for loop in A B
 	cd ${STAGEDIR}${PREFIX}; ${FIND} * -type d -empty | \
 		${SORT} -dr | ${XARGS} ${RMDIR}
 .endfor
+	cd ${STAGEDIR}${PREFIX}; \
+	   ${FIND} * \( -type f -or -type l \) | ${SORT} | \
+	   ${SED} -e '/^bin\//d' -e '/^${DROID_TARGET}\/bin\//d' \
+	   >> ${TMPPLIST}
 	cd ${STAGEDIR}${PREFIX}; ${FIND} * -type d | ${SORT} -dr | \
-	   ${SED} -e '/^bin$$/d' \
-	   -e '/^${DROID_TARGET}\/bin$$/d' \
-	   -e '/^${DROID_TARGET}\/lib$$/d' \
-	   -e '/^${DROID_TARGET}$$/d' \
-	   -e 's/^/@dirrm /g' >> ${TMPPLIST}
+	   ${SED} -e 's/^/@dirrmtry /g' >> ${TMPPLIST}
+
+acats: build
+	cd ${BUILD_WRKSRC}/gcc && ${SETENV} \
+	   PATH=${LOCALBASE}/gcc-aux/bin:${PATH}:${PREFIX}/bin \
+	   gmake -sk check-acats
 
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>

Added: head/lang/gnatdroid-armv7/files/acats.diff
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/gnatdroid-armv7/files/acats.diff	Thu Apr 10 00:34:48 2014	(r350752)
@@ -0,0 +1,103 @@
+The testsuite assumes "tablet" is a known host.
+Before running the testsuite, define "tablet" in /etc/hosts
+
+--- gcc/testsuite/ada/acats/run_acats.orig	2011-08-18 12:31:35.000000000 -0500
++++ gcc/testsuite/ada/acats/run_acats	2011-08-18 12:31:35.000000000 -0500
+@@ -11,7 +11,7 @@
+ host_gnatchop=`which gnatchop`
+ host_gnatmake=`which gnatmake`
+ ROOT=`${PWDCMD-pwd}`
+-BASE=`cd $ROOT/../../..; ${PWDCMD-pwd}`
++BASE=`realpath $ROOT/../../..`
+ 
+ PATH=$BASE:$ROOT:$PATH
+ ADA_INCLUDE_PATH=$BASE/ada/rts
+@@ -23,12 +23,12 @@
+    exit 1
+ fi
+ 
+-if [ ! -f $BASE/gnatchop ]; then
++if [ ! -f $host_gnatchop ]; then
+    echo gnattools missing, exiting.
+    exit 1
+ fi
+ 
+-if [ ! -f $BASE/gnatmake ]; then
++if [ ! -f $host_gnatmake ]; then
+    echo gnattools missing, exiting.
+    exit 1
+ fi
+@@ -46,8 +46,8 @@
+ chmod +x host_gnatchop
+ 
+ echo '#!/bin/sh' > host_gnatmake
+-echo PATH=`dirname $host_gnatmake`:'$PATH' >> host_gnatmake
+-echo unset ADA_INCLUDE_PATH ADA_OBJECTS_PATH GCC_EXEC_PREFIX >> host_gnatmake
++echo unset -v `env | sed -e "s/=.*//" -e "s/^\.//"` >> host_gnatmake 
++echo PATH=`dirname $host_gnatmake`:'/sbin:/bin:/usr/bin:/usr/sbin' >> host_gnatmake
+ echo export PATH >> host_gnatmake
+ echo exec gnatmake '"$@"' >> host_gnatmake
+ 
+--- gcc/testsuite/ada/acats/run_all.sh.orig	2011-08-18 12:31:42.000000000 -0500
++++ gcc/testsuite/ada/acats/run_all.sh	2011-08-18 18:26:04.000000000 -0500
+@@ -11,9 +11,14 @@
+ 
+ gccflags="-O2"
+ gnatflags="-gnatws"
++tabtarget="/data/local/testsuite"
+ 
+ target_run () {
+-  eval $EXPECT -f $testdir/run_test.exp $*
++  # Run on rooted tablet (port 22 vs port 2222)
++  BN=`basename $*`
++  $STRIP_FOR_TARGET $*
++  /usr/bin/scp -qp $* root@tablet:$tabtarget/
++  /usr/bin/ssh -q tablet $tabtarget/$BN
+ }
+ 
+ # End of customization section.
+@@ -55,13 +60,9 @@
+   exit 1
+ fi
+ 
+-target_gnatchop () {
+-  gnatchop --GCC="$GCC_DRIVER" $*
+-}
+-
+ target_gnatmake () {
+-  echo gnatmake --GCC=\"$GCC\" $gnatflags $gccflags $* -largs $EXTERNAL_OBJECTS --GCC=\"$GCC\"
+-  gnatmake --GCC="$GCC" $gnatflags $gccflags $* -largs $EXTERNAL_OBJECTS --GCC="$GCC"
++  echo gnatmake-cross --GCC=\"$GCC\" $gnatflags $gccflags $* -largs $EXTERNAL_OBJECTS --GCC=\"$GCC\"
++  gnatmake-cross --GCC="$GCC" $gnatflags $gccflags $* -largs $EXTERNAL_OBJECTS --GCC="$GCC"
+ }
+ 
+ target_gcc () {
+@@ -94,8 +95,8 @@
+ display `$GCC -v 2>&1`
+ display host=`gcc -dumpmachine`
+ display target=$target
+-display `type gnatmake`
+-gnatls -v >> $dir/acats.log
++display `type gnatmake-cross`
++gnatls-cross -v >> $dir/acats.log
+ display ""
+ 
+ display "		=== acats support ==="
+@@ -187,7 +188,7 @@
+    exit 1
+ fi
+ 
+-target_gnatchop *.adt >> $dir/acats.log 2>&1
++host_gnatchop *.adt >> $dir/acats.log 2>&1
+ 
+ target_gnatmake -c -gnato -gnatE *.ads >> $dir/acats.log 2>&1
+ target_gnatmake -c -gnato -gnatE *.adb >> $dir/acats.log 2>&1
+@@ -262,7 +263,7 @@
+          continue
+       fi
+ 
+-      target_gnatchop -c -w `ls ${test}*.a ${test}*.ada ${test}*.adt ${test}*.am ${test}*.dep 2> /dev/null` >> $dir/acats.log 2>&1
++      host_gnatchop -c -w `ls ${test}*.a ${test}*.ada ${test}*.adt ${test}*.am ${test}*.dep 2> /dev/null` >> $dir/acats.log 2>&1
+       main=""
+       find_main
+       if [ -z "$main" ]; then

Modified: head/lang/gnatdroid-armv7/pkg-plist
==============================================================================
--- head/lang/gnatdroid-armv7/pkg-plist	Thu Apr 10 00:34:17 2014	(r350751)
+++ head/lang/gnatdroid-armv7/pkg-plist	Thu Apr 10 00:34:48 2014	(r350752)
@@ -1,7 +1,9 @@
-bin/ada
+bin/%%TARGET%%-ada
+bin/%%TARGET%%-c++
 bin/%%TARGET%%-cpp
 bin/%%TARGET%%-gcc-%%GCCVERS%%
 bin/%%TARGET%%-gcov
+bin/%%TARGET%%-g++
 bin/%%TARGET%%-gcc
 bin/%%TARGET%%-gcc-ar
 bin/%%TARGET%%-gcc-nm
@@ -19,13 +21,3 @@ bin/%%TARGET%%-gnatmake
 bin/%%TARGET%%-gnatname
 bin/%%TARGET%%-gnatprep
 bin/%%TARGET%%-gnatxref
-%%TARGET%%/bin/gcc
-%%FORT%%%%TARGET%%/bin/gfortran
-%%TARGET%%/bin/gnat
-%%TARGET%%/bin/gnatbind
-%%TARGET%%/bin/gnatchop
-%%TARGET%%/bin/gnatkr
-%%TARGET%%/bin/gnatlink
-%%TARGET%%/bin/gnatls
-%%TARGET%%/bin/gnatmake
-%%TARGET%%/bin/gnatprep

Modified: head/lang/gnatdroid-binutils/Makefile
==============================================================================
--- head/lang/gnatdroid-binutils/Makefile	Thu Apr 10 00:34:17 2014	(r350751)
+++ head/lang/gnatdroid-binutils/Makefile	Thu Apr 10 00:34:48 2014	(r350752)
@@ -3,7 +3,7 @@
 
 PORTNAME=		binutils
 PORTVERSION=		2.24
-PORTREVISION=		2
+PORTREVISION=		3
 CATEGORIES=		lang
 MASTER_SITES=		${MASTER_SITE_SOURCEWARE}
 MASTER_SITE_SUBDIR=	binutils/releases
@@ -15,7 +15,7 @@ COMMENT=	Infrastructure for C/Ada Androi
 LICENSE=	GPLv3 LGPL3
 LICENSE_COMB=	multi
 
-BUILD_DEPENDS=	gnatdroid-sysroot=19:${PORTSDIR}/lang/gnatdroid-sysroot \
+BUILD_DEPENDS=	gnatdroid-sysroot>=19:${PORTSDIR}/lang/gnatdroid-sysroot \
 		${LOCALBASE}/lib/libgmp.so:${PORTSDIR}/math/gmp \
 		${LOCALBASE}/lib/libmpfr.so:${PORTSDIR}/math/mpfr
 RUN_DEPENDS:=	${BUILD_DEPENDS}
@@ -27,12 +27,12 @@ NO_MTREE=	yes
 NO_LICENSES_INSTALL= yes
 
 WRKSRC=			${WRKDIR}/binutils-${PORTVERSION}
-PREFIX=			${LOCALBASE}/android19
+PREFIX=			${LOCALBASE}/android
 BRANCH1=		ARMv5
 BRANCH2=		ARMv7
 BR1_PREFIX=		${PREFIX}/${BRANCH1}
 BR2_PREFIX=		${PREFIX}/${BRANCH2}
-ARMTARGET=		arm-android-eabi
+ARMTARGET=		arm-aux-linux-androideabi
 PLIST_SUB+=		TARGET="${ARMTARGET}"
 PLIST_SUB+=		BRANCH1="${BRANCH1}"
 PLIST_SUB+=		BRANCH2="${BRANCH2}"

Modified: head/lang/gnatdroid-sysroot/Makefile
==============================================================================
--- head/lang/gnatdroid-sysroot/Makefile	Thu Apr 10 00:34:17 2014	(r350751)
+++ head/lang/gnatdroid-sysroot/Makefile	Thu Apr 10 00:34:48 2014	(r350752)
@@ -3,23 +3,62 @@
 
 PORTNAME=	sysroot
 PORTVERSION=	19
+PORTREVISION=	1
 CATEGORIES=	lang
 MASTER_SITES=	http://downloads.dragonlace.net/src/
 PKGNAMEPREFIX=	gnatdroid-
-DISTNAME=	android-${PORTVERSION}-arm
+DISTNAME=	android-${API}-arm
 
 MAINTAINER=	marino@FreeBSD.org
-COMMENT=	Android-${PORTVERSION} sysroot for C/Ada Android cross-compiler
+COMMENT=	Android sysroots for C/Ada Android cross-compiler
 
 USES=		tar:bzip2
-NO_BUILD=	YES
-NO_MTREE=	YES
+NO_BUILD=	yes
+NO_MTREE=	yes
 
-WRKSRC=		${WRKDIR}/android-${PORTVERSION}-arm
-PREFIX=		${LOCALBASE}/android${PORTVERSION}
+WRKSRC=		${WRKDIR}/android-${API}-arm
+PREFIX=		${LOCALBASE}/android
+
+OPTIONS_SINGLE= SG1
+OPTIONS_SINGLE_SG1= FROYO GBREAD ICS JBEAN16 JBEAN17 JBEAN18 KITKAT
+OPTIONS_DEFAULT= JBEAN16
+
+FROYO_DESC=	Android 2.2 - API level 08 - Froyo
+GBREAD_DESC=	Android 2.3 - API level 09 - Gingerbread 1
+ICS_DESC=	Android 4.0 - API level 15 - Ice Cream Sandwich 2
+JBEAN16_DESC=	Android 4.1 - API level 16 - Jelly Bean 1
+JBEAN17_DESC=	Android 4.2 - API level 17 - Jelly Bean 2
+JBEAN18_DESC=	Android 4.3 - API level 18 - Jelly Bean 3
+KITKAT_DESC=	Android 4.4 - API level 19 - Kitkat
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MFROYO}
+API= 8
+.elif ${PORT_OPTIONS:MGBREAD}
+API= 9
+.elif ${PORT_OPTIONS:MICS}
+API= 15
+.elif ${PORT_OPTIONS:MJBEAN16}
+API= 16
+.elif ${PORT_OPTIONS:MJBEAN17}
+API= 17
+.elif ${PORT_OPTIONS:MJBEAN18}
+API= 18
+.elif ${PORT_OPTIONS:MKITKAT}
+API= 19
+.else
+IGNORE= the API option is improperly selected
+.endif
 
 do-install:
 	@${MKDIR} ${STAGEDIR}${PREFIX}
 	(cd ${WRKSRC} && ${COPYTREE_SHARE} usr ${STAGEDIR}${PREFIX})
 
+post-install:
+	@(cd ${STAGEDIR}${PREFIX}; ${FIND} usr \( -type f -or -type l \) | \
+	   ${SORT} >> ${TMPPLIST})
+	@(cd ${STAGEDIR}${PREFIX}; ${FIND} usr -type d | ${SORT} -r | \
+	   ${SED} -e 's/^/@dirrm /g' >> ${TMPPLIST})
+
 .include <bsd.port.mk>

Modified: head/lang/gnatdroid-sysroot/distinfo
==============================================================================
--- head/lang/gnatdroid-sysroot/distinfo	Thu Apr 10 00:34:17 2014	(r350751)
+++ head/lang/gnatdroid-sysroot/distinfo	Thu Apr 10 00:34:48 2014	(r350752)
@@ -1,2 +1,14 @@
+SHA256 (android-8-arm.tar.bz2) = d352ecf413c7bf12561d3f5766e94be5e9da3232b3aa5a48c2186e41fdc0c549
+SIZE (android-8-arm.tar.bz2) = 1646555
+SHA256 (android-9-arm.tar.bz2) = 682cee5219f171a8bf4d0b35a33bc00d265a8c5a0b1d81ddd04389b402783190
+SIZE (android-9-arm.tar.bz2) = 1924233
+SHA256 (android-15-arm.tar.bz2) = 67836bdc1e5e2bd0db796e8e32f9faf5705f42b48b610fe479e0d92ff42280c2
+SIZE (android-15-arm.tar.bz2) = 1717174
+SHA256 (android-16-arm.tar.bz2) = a6966779c31663f60fddc2fab86287be74c06c376e8ffb3704e2b5c53a612dc9
+SIZE (android-16-arm.tar.bz2) = 1716973
+SHA256 (android-17-arm.tar.bz2) = 3ff8d76ba9f5f0aa129e7c69a5da2ec63696f553d5ad14d0859f51e7a38f992a
+SIZE (android-17-arm.tar.bz2) = 1716909
+SHA256 (android-18-arm.tar.bz2) = 73ceb5894c4436ca1477e0a535c3a014f334acf0683ab43bd22565f6c8ec6920
+SIZE (android-18-arm.tar.bz2) = 1736810
 SHA256 (android-19-arm.tar.bz2) = 734b37fa2c3aff05540ce9d8c73d0ad92623b281f0e267a05fd2f0c3a86e08ea
 SIZE (android-19-arm.tar.bz2) = 4621476



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201404100034.s3A0YndE025004>