svn commit: r350752 - in head/lang: gnatdroid-armv5 gnatdroid-armv5/files gnatdroid-armv7 gnatdroid-armv7/files gnatdroid-binutils gnatdroid-sysroot
John Marino
marino at FreeBSD.org
Thu Apr 10 00:34:51 UTC 2014
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 at 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 at 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 at 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 at 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 at 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
More information about the svn-ports-head
mailing list