aboutsummaryrefslogtreecommitdiff
path: root/lang/gnatdroid-armv7
diff options
context:
space:
mode:
Diffstat (limited to 'lang/gnatdroid-armv7')
-rw-r--r--lang/gnatdroid-armv7/Makefile103
-rw-r--r--lang/gnatdroid-armv7/files/acats.diff103
-rw-r--r--lang/gnatdroid-armv7/pkg-plist14
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