From owner-svn-ports-all@FreeBSD.ORG Thu Apr 10 00:34:51 2014 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 151E4579; Thu, 10 Apr 2014 00:34:51 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F2E3B1839; Thu, 10 Apr 2014 00:34:50 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s3A0Yoib025013; Thu, 10 Apr 2014 00:34:50 GMT (envelope-from marino@svn.freebsd.org) Received: (from marino@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s3A0YndE025004; Thu, 10 Apr 2014 00:34:49 GMT (envelope-from marino@svn.freebsd.org) Message-Id: <201404100034.s3A0YndE025004@svn.freebsd.org> From: John Marino Date: Thu, 10 Apr 2014 00:34:49 +0000 (UTC) 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 X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Apr 2014 00:34:51 -0000 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 +.include .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 +.include 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 +.include .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 +.include 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 + +.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 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