diff options
author | John Marino <marino@FreeBSD.org> | 2014-04-10 00:34:48 +0000 |
---|---|---|
committer | John Marino <marino@FreeBSD.org> | 2014-04-10 00:34:48 +0000 |
commit | 65f2051631a6dd1ebce1ce9a07a142186ed0eef8 (patch) | |
tree | 308f40862a08348a6d7a3a38710c3ae7f0a024e4 /lang/gnatdroid-armv7 | |
parent | eeaf3324e33d5218b0b9b1d9cf964a9f31a255b2 (diff) | |
download | ports-65f2051631a6dd1ebce1ce9a07a142186ed0eef8.tar.gz ports-65f2051631a6dd1ebce1ce9a07a142186ed0eef8.zip |
Notes
Diffstat (limited to 'lang/gnatdroid-armv7')
-rw-r--r-- | lang/gnatdroid-armv7/Makefile | 103 | ||||
-rw-r--r-- | lang/gnatdroid-armv7/files/acats.diff | 103 | ||||
-rw-r--r-- | lang/gnatdroid-armv7/pkg-plist | 14 |
3 files changed, 144 insertions, 76 deletions
diff --git a/lang/gnatdroid-armv7/Makefile b/lang/gnatdroid-armv7/Makefile index 756a842a26fa..c3f02c4ad58d 100644 --- a/lang/gnatdroid-armv7/Makefile +++ b/lang/gnatdroid-armv7/Makefile @@ -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: Android ARMv7 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 - -# Disable C++ until arm.cc/no-rtti issue resolved for libsupc++ +DISTINFO_FILE= ${.CURDIR}/../gcc-aux/distinfo -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 ${ARMVERSION}]" 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> diff --git a/lang/gnatdroid-armv7/files/acats.diff b/lang/gnatdroid-armv7/files/acats.diff new file mode 100644 index 000000000000..8b97ffc497ed --- /dev/null +++ b/lang/gnatdroid-armv7/files/acats.diff @@ -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 diff --git a/lang/gnatdroid-armv7/pkg-plist b/lang/gnatdroid-armv7/pkg-plist index 412273ab0cf7..73dd8ee76c8f 100644 --- a/lang/gnatdroid-armv7/pkg-plist +++ b/lang/gnatdroid-armv7/pkg-plist @@ -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 |