Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Nov 2015 00:15:39 +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: r402635 - in head/lang: . gcc-aux gcc-aux/files gnatdroid-armv7 gnatdroid-binutils gnatdroid-binutils-x86 gnatdroid-sysroot-x86 gnatdroid-sysroot-x86/files gnatdroid-x86
Message-ID:  <201511300015.tAU0FdPQ087141@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marino
Date: Mon Nov 30 00:15:39 2015
New Revision: 402635
URL: https://svnweb.freebsd.org/changeset/ports/402635

Log:
  Add gnatdroid-x86 (3 new ports), X-compiler to Android-x86
  
  Similar to lang/gnatdroid-armv7, lang/gnatdroid-x86 is a cross-compiler
  targetting Android. The former targets ARMv7 processors while the latter
  targets Android on x86 (32-bit).  The latter also runs on Virtualbox as
  a bonus.  The new ports are implemented as slaves to the ARMv7 versions.
  
  The GNAT ACATS were run, and it passed every test except CXG2024,
  "accuracy of multiplication and division of mixed decimal and binary
  fixed point numbers".
  subtest 13: expected -51.00 got 50.0
  subtest 14: expected 51.0 got 50.0
  
  This is probably a rounding error unique to 32-bit x86.  Overall this
  version passed better than gnatdroid-armv7 because unwind is supported,
  enabling check check support.
  
  Also added:
  lang/gnatdroid-sysroot-x86 (KitKat and Lollipop API)
  lang/gnatdroid-binutils-x86
  
  Despite the desciption, C++, Fortran and Objective-C should also work
  well (in addition to advertised C and Ada frontends).
  
  ===
  
  The gnatdroid-x86 port builds a C/Ada cross-compiler based on GCC 4.9
  that targets the Android operating system (up to version 5.0, API level
  21) running on x86 or x86_64 architecture (version 7).  This produces
  binaries that run natively on x86-based Android devices.

Added:
  head/lang/gnatdroid-binutils-x86/
  head/lang/gnatdroid-binutils-x86/Makefile   (contents, props changed)
  head/lang/gnatdroid-binutils-x86/pkg-descr   (contents, props changed)
  head/lang/gnatdroid-binutils-x86/pkg-plist   (contents, props changed)
  head/lang/gnatdroid-sysroot-x86/
  head/lang/gnatdroid-sysroot-x86/Makefile   (contents, props changed)
  head/lang/gnatdroid-sysroot-x86/distinfo   (contents, props changed)
  head/lang/gnatdroid-sysroot-x86/files/
  head/lang/gnatdroid-sysroot-x86/files/extra-21-stat.h   (contents, props changed)
  head/lang/gnatdroid-sysroot-x86/files/extra-stat.h   (contents, props changed)
  head/lang/gnatdroid-sysroot-x86/pkg-descr   (contents, props changed)
  head/lang/gnatdroid-x86/
  head/lang/gnatdroid-x86/Makefile   (contents, props changed)
  head/lang/gnatdroid-x86/pkg-descr   (contents, props changed)
Deleted:
  head/lang/gcc-aux/files/patch-libstdc++-v3_config_os_bionic_ctype__base.h
Modified:
  head/lang/Makefile
  head/lang/gcc-aux/Makefile.version
  head/lang/gcc-aux/files/diff-ada
  head/lang/gcc-aux/files/diff-ada-testsuite
  head/lang/gcc-aux/files/diff-cxx
  head/lang/gnatdroid-armv7/Makefile
  head/lang/gnatdroid-armv7/pkg-descr
  head/lang/gnatdroid-binutils/Makefile

Modified: head/lang/Makefile
==============================================================================
--- head/lang/Makefile	Sun Nov 29 23:57:02 2015	(r402634)
+++ head/lang/Makefile	Mon Nov 30 00:15:39 2015	(r402635)
@@ -105,7 +105,10 @@
     SUBDIR += gnat_util
     SUBDIR += gnatdroid-armv7
     SUBDIR += gnatdroid-binutils
+    SUBDIR += gnatdroid-binutils-x86
     SUBDIR += gnatdroid-sysroot
+    SUBDIR += gnatdroid-sysroot-x86
+    SUBDIR += gnatdroid-x86
     SUBDIR += gnu-cobol
     SUBDIR += gnustep-base
     SUBDIR += go

Modified: head/lang/gcc-aux/Makefile.version
==============================================================================
--- head/lang/gcc-aux/Makefile.version	Sun Nov 29 23:57:02 2015	(r402634)
+++ head/lang/gcc-aux/Makefile.version	Mon Nov 30 00:15:39 2015	(r402635)
@@ -7,6 +7,7 @@ SNAPSHOT=		20150626
 MAIN_PR=		0
 UTIL_PR=		0
 ARMV7_PR=		1
+X86_PR=			0
 
 # Snapshot naming pattern
 #IDENTIFICATION=	gcc-${GCC_BRANCH}-${SNAPSHOT}

Modified: head/lang/gcc-aux/files/diff-ada
==============================================================================
--- head/lang/gcc-aux/files/diff-ada	Sun Nov 29 23:57:02 2015	(r402634)
+++ head/lang/gcc-aux/files/diff-ada	Mon Nov 30 00:15:39 2015	(r402635)
@@ -2358,17 +2358,6 @@
  /*---------------------- PPC AIX/PPC Lynx 178/Older Darwin ------------------*/
  #elif ((defined (_POWER) && defined (_AIX)) || \
         (defined (__powerpc__) && defined (__Lynx__) && !defined(__ELF__)) || \
---- gcc/ada/gcc-interface/Make-lang.in.orig
-+++ gcc/ada/gcc-interface/Make-lang.in
-@@ -584,7 +584,7 @@
-  ada/widechar.o
- 
- # Language-independent object files.
--ADA_BACKEND = $(BACKEND) attribs.o
-+ADA_BACKEND = $(BACKEND2) attribs.o
- 
- # List of target dependent sources, overridden below as necessary
- TARGET_ADA_SRCS =
 --- gcc/ada/gcc-interface/Makefile.in.orig
 +++ gcc/ada/gcc-interface/Makefile.in
 @@ -1044,6 +1044,7 @@
@@ -2410,7 +2399,47 @@
    THREADSLIB = -lposix4 -lthread
    MISCLIB = -lposix4 -lnsl -lsocket
    SO_OPTS = -Wl,-h,
-@@ -1330,8 +1332,11 @@
+@@ -1266,6 +1268,39 @@
+   LIBRARY_VERSION := $(LIB_VERSION)
+ endif
+ 
++# x86 android
++ifeq ($(strip $(filter-out %86 linux-android,$(target_cpu) $(target_os))),)
++  LIBGNAT_TARGET_PAIRS = \
++  a-intnam.ads<a-intnam-linux.ads \
++  g-socthi.adb<g-socthi-bsd.adb \
++  s-inmaop.adb<s-inmaop-posix.adb \
++  s-intman.adb<s-intman-posix.adb \
++  s-linux.ads<s-linux-android.ads \
++  s-osinte.adb<s-osinte-android.adb \
++  s-osinte.ads<s-osinte-android.ads \
++  s-osprim.adb<s-osprim-posix.adb \
++  s-taprop.adb<s-taprop-posix.adb \
++  s-taspri.ads<s-taspri-posix.ads \
++  s-tpopsp.adb<s-tpopsp-posix-foreign.adb \
++  $(ATOMICS_TARGET_PAIRS) \
++  $(X86_TARGET_PAIRS) \
++  system.ads<system-linux-x86.ads
++
++  TOOLS_TARGET_PAIRS =  \
++    mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
++    indepsw.adb<indepsw-gnu.adb
++
++  EXTRA_LIBGNAT_OBJS=
++  EXTRA_GNATRTL_TASKING_OBJS=s-linux.o
++  EXTRA_GNATRTL_NONTASKING_OBJS=
++  EH_MECHANISM=-gcc
++  THREADSLIB=
++  MISCLIB=
++  GMEM_LIB=
++  GNATLIB_SHARED = gnatlib-shared-dual
++  LIBRARY_VERSION := $(LIB_VERSION)
++endif
++
+ # x86 kfreebsd
+ ifeq ($(strip $(filter-out %86 kfreebsd%,$(target_cpu) $(target_os))),)
+   LIBGNAT_TARGET_PAIRS = \
+@@ -1330,8 +1365,11 @@
  ifeq ($(strip $(filter-out %86 freebsd%,$(target_cpu) $(target_os))),)
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<a-intnam-freebsd.ads \
@@ -2422,7 +2451,7 @@
    s-osinte.adb<s-osinte-freebsd.adb \
    s-osinte.ads<s-osinte-freebsd.ads \
    s-osprim.adb<s-osprim-posix.adb \
-@@ -1346,6 +1351,8 @@
+@@ -1346,6 +1384,8 @@
    mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb
    GNATLIB_SHARED = gnatlib-shared-dual
  
@@ -2431,7 +2460,7 @@
    EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
  
    EH_MECHANISM=-gcc
-@@ -1359,8 +1366,11 @@
+@@ -1359,8 +1399,11 @@
  ifeq ($(strip $(filter-out %86_64 freebsd%,$(target_cpu) $(target_os))),)
    LIBGNAT_TARGET_PAIRS = \
    a-intnam.ads<a-intnam-freebsd.ads \
@@ -2443,7 +2472,7 @@
    s-osinte.adb<s-osinte-freebsd.adb \
    s-osinte.ads<s-osinte-freebsd.ads \
    s-osprim.adb<s-osprim-posix.adb \
-@@ -1375,6 +1385,181 @@
+@@ -1375,6 +1418,181 @@
    mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb
    GNATLIB_SHARED = gnatlib-shared-dual
  
@@ -2625,6 +2654,17 @@
    EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o
  
    EH_MECHANISM=-gcc
+--- gcc/ada/gcc-interface/Make-lang.in.orig
++++ gcc/ada/gcc-interface/Make-lang.in
+@@ -584,7 +584,7 @@
+  ada/widechar.o
+ 
+ # Language-independent object files.
+-ADA_BACKEND = $(BACKEND) attribs.o
++ADA_BACKEND = $(BACKEND2) attribs.o
+ 
+ # List of target dependent sources, overridden below as necessary
+ TARGET_ADA_SRCS =
 --- gnattools/configure.ac.orig
 +++ gnattools/configure.ac
 @@ -79,11 +79,27 @@

Modified: head/lang/gcc-aux/files/diff-ada-testsuite
==============================================================================
--- head/lang/gcc-aux/files/diff-ada-testsuite	Sun Nov 29 23:57:02 2015	(r402634)
+++ head/lang/gcc-aux/files/diff-ada-testsuite	Mon Nov 30 00:15:39 2015	(r402635)
@@ -126,7 +126,7 @@
 +gccflags="-O2"
 +gnatflags="-gnatws"
 +tabtarget="/data/local/testsuite"
-+STRIP="arm-aux-linux-androideabi-strip"
++STRIP="@REMOTE_TARGET@-strip"
 +
 +target_run () {
 +  # Run on rooted tablet (port 22 vs port 2222)
@@ -180,8 +180,8 @@
 +fi
 +
 +target_gnatmake () {
-+  echo gnatmake-cross --GCC=\"$GCC\" $gnatflags $gccflags $* -largs $EXTERNAL_OBJECTS --GCC=\"$GCC\"
-+  gnatmake-cross --GCC="$GCC" $gnatflags $gccflags $* -largs $EXTERNAL_OBJECTS --GCC="$GCC"
++  echo gnatmake-cross --GCC=\"$GCC\" $gnatflags $gccflags $* -largs $EXTERNAL_OBJECTS --GCC=\"$GCC\" -fPIE -pie
++  gnatmake-cross --GCC="$GCC" $gnatflags $gccflags $* -largs $EXTERNAL_OBJECTS --GCC="$GCC" -fPIE -pie
 +}
 +
 +target_gcc () {

Modified: head/lang/gcc-aux/files/diff-cxx
==============================================================================
--- head/lang/gcc-aux/files/diff-cxx	Sun Nov 29 23:57:02 2015	(r402634)
+++ head/lang/gcc-aux/files/diff-cxx	Mon Nov 30 00:15:39 2015	(r402635)
@@ -970,9 +970,30 @@
 +  dragonfly*)
 +    os_include_dir="os/bsd/dragonfly"
 +    ;;
-+  linux-androideabi)
++  linux-android*)
 +    os_include_dir="os/bionic"
 +    ;;
    bsd*)
      # Plain BSD attempts to share FreeBSD files.
      os_include_dir="os/bsd/freebsd"
+--- libstdc++-v3/config/os/bionic/ctype_base.h.orig
++++ libstdc++-v3/config/os/bionic/ctype_base.h
+@@ -40,6 +40,18 @@
+     // Non-standard typedefs.
+     typedef const int* 		__to_type;
+ 
++#ifdef _CTYPE_U
++#define _U _CTYPE_U
++#define _L _CTYPE_L
++#define _D _CTYPE_D
++#define _S _CTYPE_S
++#define _P _CTYPE_P
++#define _C _CTYPE_C
++#define _X _CTYPE_X
++#define _B _CTYPE_B
++#define _N _CTYPE_D
++#endif
++
+     // NB: Offsets into ctype<char>::_M_table force a particular size
+     // on the mask type. Because of this, we don't use an enum.
+     typedef char 		mask;

Modified: head/lang/gnatdroid-armv7/Makefile
==============================================================================
--- head/lang/gnatdroid-armv7/Makefile	Sun Nov 29 23:57:02 2015	(r402634)
+++ head/lang/gnatdroid-armv7/Makefile	Mon Nov 30 00:15:39 2015	(r402635)
@@ -1,22 +1,22 @@
 # Created by: John Marino <marino@FreeBSD.org>
 # $FreeBSD$
 
-PORTNAME=	armv7
+PORTNAME?=	armv7
 PORTVERSION=	${SNAPSHOT}
-PORTREVISION=	${ARMV7_PR}
+PORTREVISION?=	${ARMV7_PR}
 CATEGORIES=	lang
 MASTER_SITES=	GCC/releases/gcc-${GCC_VERSION}
 PKGNAMEPREFIX=	gnatdroid-
 DISTFILES=	${IDENTIFICATION}.tar.bz2
 
-MAINTAINER=	marino@FreeBSD.org
-COMMENT=	C/Ada cross-compiler, target: Android ARMv7
+MAINTAINER?=	marino@FreeBSD.org
+COMMENT?=	C/Ada cross-compiler, target: Android ARMv7
 
 LICENSE=	GPLv3 GPLv3RLE
 LICENSE_COMB=	multi
 
-BUILD_DEPENDS=	gnatdroid-sysroot>=19:${PORTSDIR}/lang/gnatdroid-sysroot \
-		gnatdroid-binutils>=2.21:${PORTSDIR}/lang/gnatdroid-binutils
+BUILD_DEPENDS=	${SYSROOT}>=19:${PORTSDIR}/lang/${SYSROOT} \
+		${GDBINUTILS}>=2.21:${PORTSDIR}/lang/${GDBINUTILS}
 RUN_DEPENDS:=	${BUILD_DEPENDS}
 
 NO_LICENSES_INSTALL= yes
@@ -34,21 +34,24 @@ OPTIONS_SUB=		yes
 FORT_DESC=		Also build Fortran language
 OBJC_DESC=		Also build Objective-C language
 
-DROID_TARGET=		arm-aux-linux-androideabi
-DROID_ARCH=		armv7-a
-ARMVERSION=		ARMv7
-FPU=			neon
+DROID_TARGET?=		arm-aux-linux-androideabi
+CPUVERSION?=		ARMv7
+ARG_ARCH?=		--with-arch=armv7-a
+ARG_FPU?=		--with-fpu=neon
+ARG_FLOATSOFT?=		--with-float=soft
 ALL_TARGET=		all
 GARCH=			${ARCH:S/amd64/x86_64/}
 BITS=			${GARCH:S/x86_64/64/:S/i386/32/}
-OS_LABEL4VERS=		[${OPSYS}${BITS} x Android ${ARMVERSION}]
+OS_LABEL4VERS=		[${OPSYS}${BITS} x Android ${CPUVERSION}]
 WRKSRC=			${WRKDIR}/${IDENTIFICATION}
 BUILD_WRKSRC=		${WRKDIR}/build
 PATCHDIR=		${.CURDIR}/../gcc-aux/files
 CFG_SCRIPT=		${WRKSRC}/configure
 REVFILE=		${WRKSRC}/gcc/REVISION
-SRPREFIX=		${LOCALBASE}/android
-PREFIX=			${SRPREFIX}/${ARMVERSION}
+SRPREFIX?=		${LOCALBASE}/android
+PREFIX=			${SRPREFIX}/${CPUVERSION}
+SYSROOT?=		gnatdroid-sysroot
+GDBINUTILS?=		gnatdroid-binutils
 PLIST_SUB+=		TARGET="${DROID_TARGET}"
 PLIST_SUB+=		GCCVERS="${GCC_VERSION}"
 SUB_FILES=		pkg-message
@@ -59,10 +62,6 @@ CROSS=			gnat gnatbind gnatchop gnatclea
 
 .include <bsd.port.options.mk>
 
-.if ${OPSYS} == FreeBSD && ${OSREL:R:M8}
-BROKEN=	multiple definition of __x86.get_pc_thunk.cx on FreeBSD 8
-.endif
-
 .if ${PORT_OPTIONS:MFORT}
 LANGS+=		fortran
 APPLY_DIFFS+=	fortran
@@ -72,21 +71,21 @@ APPLY_DIFFS+=	fortran
 LANGS+=		objc
 .endif
 
-INSTALL_ENV=	${MAKE_ENV:C/^PATH=/&${SRPREFIX}\/${ARMVERSION}\/bin:/}
+INSTALL_ENV=	${MAKE_ENV:C/^PATH=/&${SRPREFIX}\/${CPUVERSION}\/bin:/}
 
 ADA_CONFIG_ARGS=	--enable-languages=${LANGS:Q}
 ADA_CONFIG_ARGS+=	--target=${DROID_TARGET}
 ADA_CONFIG_ARGS+=	--program-prefix=${DROID_TARGET}-
 ADA_CONFIG_ARGS+=	--prefix=${PREFIX}
-ADA_CONFIG_ARGS+=	--with-arch=${DROID_ARCH}
+ADA_CONFIG_ARGS+=	${ARG_ARCH}
 ADA_CONFIG_ARGS+=	--with-system-zlib
 ADA_CONFIG_ARGS+=	--with-gmp=${LOCALBASE}
 ADA_CONFIG_ARGS+=	--with-mpfr=${LOCALBASE}
 ADA_CONFIG_ARGS+=	--with-mpc=${LOCALBASE}
 ADA_CONFIG_ARGS+=	${ICONV_CONFIGURE_ARG}
 ADA_CONFIG_ARGS+=	--with-sysroot=${SRPREFIX}
-ADA_CONFIG_ARGS+=	--with-float=soft
-ADA_CONFIG_ARGS+=	--with-fpu=${FPU}
+ADA_CONFIG_ARGS+=	${ARG_FLOATSOFT}
+ADA_CONFIG_ARGS+=	${ARG_FPU}
 ADA_CONFIG_ARGS+=	--enable-target-optspace
 ADA_CONFIG_ARGS+=	--enable-threads=posix
 ADA_CONFIG_ARGS+=	--enable-cxx-flags=-frtti
@@ -114,6 +113,8 @@ post-extract:
 .endfor
 	@(cd ${WRKSRC}/gcc/testsuite/ada/acats && \
 		${CP} run_remote.sh run_all.sh)
+	${REINPLACE_CMD} -e 's|@REMOTE_TARGET@|${DROID_TARGET}|' \
+		${WRKSRC}/gcc/testsuite/ada/acats/run_all.sh
 	${REINPLACE_CMD} -e 's|<syscall.h>|<sys/syscall.h>|' \
 		${WRKSRC}/libstdc++-v3/libsupc++/guard.cc
 

Modified: head/lang/gnatdroid-armv7/pkg-descr
==============================================================================
--- head/lang/gnatdroid-armv7/pkg-descr	Sun Nov 29 23:57:02 2015	(r402634)
+++ head/lang/gnatdroid-armv7/pkg-descr	Mon Nov 30 00:15:39 2015	(r402635)
@@ -1,6 +1,6 @@
-The gnatdroid-armv7 port builds a C/Ada cross-compiler based on GCC 4.7 that
-targets the Android operating system (version 4.4, API level 19) running on
-ARM architecture (version 7).  This produces binaries that run natively on
-Android devices built with Cortex-A series chips.
+The gnatdroid-armv7 port builds a C/Ada cross-compiler based on GCC 4.9
+that targets the Android operating system (up to version 5.0, API level
+21) running on ARM architecture (version 7).  This produces binaries that
+run natively on Android devices built with Cortex-A series chips.
 
 WWW: http://www.dragonlace.net

Added: head/lang/gnatdroid-binutils-x86/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/gnatdroid-binutils-x86/Makefile	Mon Nov 30 00:15:39 2015	(r402635)
@@ -0,0 +1,18 @@
+# Created by: John Marino <marino@FreeBSD.org>
+# $FreeBSD$
+
+PORTREVISION=	0
+PKGNAMESUFFIX=	-x86
+
+MAINTAINER=	marino@FreeBSD.org
+COMMENT=	Infrastructure for C/Ada Android cross-compiler (x86)
+
+BRANCH2=	x86_32
+XCCTARGET=	i686-aux-linux-android
+PREFIX=		${LOCALBASE}/android-x86
+SYSROOT=	gnatdroid-sysroot-x86
+MASTERDIR=	${.CURDIR}/../../lang/gnatdroid-binutils
+PLIST=		${.CURDIR}/pkg-plist
+DESCR=		${.CURDIR}/pkg-descr
+
+.include "${MASTERDIR}/Makefile"

Added: head/lang/gnatdroid-binutils-x86/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/gnatdroid-binutils-x86/pkg-descr	Mon Nov 30 00:15:39 2015	(r402635)
@@ -0,0 +1,5 @@
+This package is a dependency of lang/gnatdroid-x86. It provides the
+cross-tools required to build the GNAT FreeBSD->x86 cross-compiler that
+is gnatdroid, as well as any binaries that it produces.
+
+WWW: http://www.dragonlace.net

Added: head/lang/gnatdroid-binutils-x86/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/gnatdroid-binutils-x86/pkg-plist	Mon Nov 30 00:15:39 2015	(r402635)
@@ -0,0 +1,95 @@
+%%BRANCH2%%/bin/%%TARGET%%-addr2line
+%%BRANCH2%%/bin/%%TARGET%%-ar
+%%BRANCH2%%/bin/%%TARGET%%-as
+%%BRANCH2%%/bin/%%TARGET%%-c++filt
+%%BRANCH2%%/bin/%%TARGET%%-elfedit
+%%BRANCH2%%/bin/%%TARGET%%-gprof
+%%BRANCH2%%/bin/%%TARGET%%-ld
+%%BRANCH2%%/bin/%%TARGET%%-ld.bfd
+%%BRANCH2%%/bin/%%TARGET%%-nm
+%%BRANCH2%%/bin/%%TARGET%%-objcopy
+%%BRANCH2%%/bin/%%TARGET%%-objdump
+%%BRANCH2%%/bin/%%TARGET%%-ranlib
+%%BRANCH2%%/bin/%%TARGET%%-readelf
+%%BRANCH2%%/bin/%%TARGET%%-size
+%%BRANCH2%%/bin/%%TARGET%%-strings
+%%BRANCH2%%/bin/%%TARGET%%-strip
+%%BRANCH2%%/%%TARGET%%/bin/ar
+%%BRANCH2%%/%%TARGET%%/bin/as
+%%BRANCH2%%/%%TARGET%%/bin/ld
+%%BRANCH2%%/%%TARGET%%/bin/ld.bfd
+%%BRANCH2%%/%%TARGET%%/bin/nm
+%%BRANCH2%%/%%TARGET%%/bin/objcopy
+%%BRANCH2%%/%%TARGET%%/bin/objdump
+%%BRANCH2%%/%%TARGET%%/bin/ranlib
+%%BRANCH2%%/%%TARGET%%/bin/strip
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf32_x86_64.x
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf32_x86_64.xbn
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf32_x86_64.xc
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf32_x86_64.xd
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf32_x86_64.xdc
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf32_x86_64.xdw
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf32_x86_64.xn
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf32_x86_64.xr
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf32_x86_64.xs
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf32_x86_64.xsc
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf32_x86_64.xsw
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf32_x86_64.xu
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf32_x86_64.xw
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_i386.x
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_i386.xbn
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_i386.xc
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_i386.xd
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_i386.xdc
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_i386.xdw
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_i386.xn
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_i386.xr
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_i386.xs
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_i386.xsc
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_i386.xsw
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_i386.xu
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_i386.xw
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_k1om.x
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_k1om.xbn
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_k1om.xc
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_k1om.xd
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_k1om.xdc
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_k1om.xdw
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_k1om.xn
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_k1om.xr
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_k1om.xs
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_k1om.xsc
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_k1om.xsw
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_k1om.xu
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_k1om.xw
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_l1om.x
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_l1om.xbn
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_l1om.xc
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_l1om.xd
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_l1om.xdc
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_l1om.xdw
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_l1om.xn
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_l1om.xr
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_l1om.xs
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_l1om.xsc
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_l1om.xsw
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_l1om.xu
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_l1om.xw
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_x86_64.x
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_x86_64.xbn
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_x86_64.xc
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_x86_64.xd
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_x86_64.xdc
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_x86_64.xdw
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_x86_64.xn
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_x86_64.xr
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_x86_64.xs
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_x86_64.xsc
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_x86_64.xsw
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_x86_64.xu
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/elf_x86_64.xw
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/i386linux.x
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/i386linux.xbn
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/i386linux.xn
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/i386linux.xr
+%%BRANCH2%%/%%TARGET%%/lib/ldscripts/i386linux.xu

Modified: head/lang/gnatdroid-binutils/Makefile
==============================================================================
--- head/lang/gnatdroid-binutils/Makefile	Sun Nov 29 23:57:02 2015	(r402634)
+++ head/lang/gnatdroid-binutils/Makefile	Mon Nov 30 00:15:39 2015	(r402635)
@@ -3,18 +3,18 @@
 
 PORTNAME=	binutils
 PORTVERSION=	2.25.1
-PORTREVISION=	1
+PORTREVISION?=	1
 CATEGORIES=	lang
 MASTER_SITES=	SOURCEWARE/binutils/releases
 PKGNAMEPREFIX=	gnatdroid-
 
-MAINTAINER=	marino@FreeBSD.org
-COMMENT=	Infrastructure for C/Ada Android cross-compiler
+MAINTAINER?=	marino@FreeBSD.org
+COMMENT?=	Infrastructure for C/Ada Android cross-compiler (ARMv7)
 
 LICENSE=	GPLv3 LGPL3
 LICENSE_COMB=	multi
 
-BUILD_DEPENDS=	gnatdroid-sysroot>=19:${PORTSDIR}/lang/gnatdroid-sysroot \
+BUILD_DEPENDS=	${SYSROOT}>=19:${PORTSDIR}/lang/${SYSROOT} \
 		${LOCALBASE}/lib/libgmp.so:${PORTSDIR}/math/gmp \
 		${LOCALBASE}/lib/libmpfr.so:${PORTSDIR}/math/mpfr
 RUN_DEPENDS:=	${BUILD_DEPENDS}
@@ -26,14 +26,15 @@ NO_MTREE=	yes
 NO_LICENSES_INSTALL= yes
 
 WRKSRC=			${WRKDIR}/binutils-${PORTVERSION}
-PREFIX=			${LOCALBASE}/android
-BRANCH2=		ARMv7
+PREFIX?=		${LOCALBASE}/android
+BRANCH2?=		ARMv7
 BR2_PREFIX=		${PREFIX}/${BRANCH2}
-ARMTARGET=		arm-aux-linux-androideabi
-PLIST_SUB+=		TARGET="${ARMTARGET}"
+XCCTARGET?=		arm-aux-linux-androideabi
+SYSROOT?=		gnatdroid-sysroot
+PLIST_SUB+=		TARGET="${XCCTARGET}"
 PLIST_SUB+=		BRANCH2="${BRANCH2}"
 
-CONFIGURE_ARGS+=	--target=${ARMTARGET}
+CONFIGURE_ARGS+=	--target=${XCCTARGET}
 CONFIGURE_ARGS+=	--prefix=${BR2_PREFIX}
 CONFIGURE_ARGS+=	--with-sysroot=${PREFIX}
 CONFIGURE_ARGS+=	--with-gmp=${LOCALBASE}

Added: head/lang/gnatdroid-sysroot-x86/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/gnatdroid-sysroot-x86/Makefile	Mon Nov 30 00:15:39 2015	(r402635)
@@ -0,0 +1,49 @@
+# Created by: John Marino <marino@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME=	sysroot
+PORTVERSION=	21
+CATEGORIES=	lang
+MASTER_SITES=	http://downloads.dragonlace.net/src/
+PKGNAMEPREFIX=	gnatdroid-
+PKGNAMESUFFIX=	-x86
+DISTNAME=	android-${API}-x86
+
+MAINTAINER=	marino@FreeBSD.org
+COMMENT=	Android sysroots for C/Ada Android cross-compiler (x86)
+
+USES=		tar:bzip2
+NO_BUILD=	yes
+NO_MTREE=	yes
+
+PREFIX=		${LOCALBASE}/android-x86
+STAT_PATCH=	${FILESDIR}/extra-stat.h
+EXTRA_PATCHES=	${STAT_PATCH}
+
+OPTIONS_SINGLE=		SG1
+OPTIONS_SINGLE_SG1=	KITKAT LOLLIPOP
+OPTIONS_DEFAULT=	KITKAT
+
+KITKAT_DESC=	Android 4.4 - API level 19 - Kitkat
+LOLLIPOP_DESC=	Android 5.0 - API level 21 - Lollipop
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MKITKAT}
+API=	19
+.elif ${PORT_OPTIONS:MLOLLIPOP}
+API=	21
+STAT_PATCH=	${FILESDIR}/extra-21-stat.h
+.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})
+
+.include <bsd.port.mk>

Added: head/lang/gnatdroid-sysroot-x86/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/gnatdroid-sysroot-x86/distinfo	Mon Nov 30 00:15:39 2015	(r402635)
@@ -0,0 +1,4 @@
+SHA256 (android-19-x86.tar.bz2) = 35c5e6fdebe54373d2103e500034d620fbda8a7b79148fc6a5e507a25ff17f24
+SIZE (android-19-x86.tar.bz2) = 5554684
+SHA256 (android-21-x86.tar.bz2) = 48c306569d4d27ba595c930bfe3ac69208868b2a1d2598b57e8f8ded293a7478
+SIZE (android-21-x86.tar.bz2) = 7261178

Added: head/lang/gnatdroid-sysroot-x86/files/extra-21-stat.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/gnatdroid-sysroot-x86/files/extra-21-stat.h	Mon Nov 30 00:15:39 2015	(r402635)
@@ -0,0 +1,10 @@
+--- usr/include/linux/stat.h.orig	2014-10-15 02:53:49 UTC
++++ usr/include/linux/stat.h
+@@ -57,5 +57,7 @@
+ #define S_IWOTH 00002
+ /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ #define S_IXOTH 00001
++#define S_IREAD  S_IRUSR
++#define S_IWRITE S_IWUSR
+ #endif
+ #endif

Added: head/lang/gnatdroid-sysroot-x86/files/extra-stat.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/gnatdroid-sysroot-x86/files/extra-stat.h	Mon Nov 30 00:15:39 2015	(r402635)
@@ -0,0 +1,12 @@
+--- usr/include/linux/stat.h.orig	2011-07-17 20:54:19.000000000 +0200
++++ usr/include/linux/stat.h	2011-07-17 20:55:15.000000000 +0200
+@@ -39,6 +39,9 @@
+ #define S_IWUSR 00200
+ #define S_IXUSR 00100
+ 
++#define S_IREAD  S_IRUSR
++#define S_IWRITE S_IWUSR
++
+ #define S_IRWXG 00070
+ #define S_IRGRP 00040
+ #define S_IWGRP 00020

Added: head/lang/gnatdroid-sysroot-x86/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/gnatdroid-sysroot-x86/pkg-descr	Mon Nov 30 00:15:39 2015	(r402635)
@@ -0,0 +1,6 @@
+This package is used by lang/gnatdroid to install the system root of
+Android 2.2 to 5.0 (API Level 8 to API Level 21) of the x86 architecture.
+The x86 cross-tools are built using these files, which in turn is required
+for the GNAT FreeBSD->Android(x86) cross-compiler that is gnatdroid.
+
+WWW: http://www.dragonlace.net

Added: head/lang/gnatdroid-x86/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/gnatdroid-x86/Makefile	Mon Nov 30 00:15:39 2015	(r402635)
@@ -0,0 +1,21 @@
+# Created by: John Marino <marino@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME=	x86
+PORTREVISION=	${X86_PR}
+
+MAINTAINER=	marino@FreeBSD.org
+COMMENT=	C/Ada cross-compiler, target: Android x86
+
+DROID_TARGET=	i686-aux-linux-android
+CPUVERSION=	x86_32
+ARG_ARCH=	# don't specify
+ARG_FPU=	# don't specify
+ARG_FLOATSOFT=	# don't specify
+SRPREFIX=	${LOCALBASE}/android-x86
+SYSROOT=	gnatdroid-sysroot-x86
+GDBINUTILS=	gnatdroid-binutils-x86
+MASTERDIR=	${.CURDIR}/../../lang/gnatdroid-armv7
+DESCR=		${.CURDIR}/pkg-descr
+
+.include "${MASTERDIR}/Makefile"

Added: head/lang/gnatdroid-x86/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/gnatdroid-x86/pkg-descr	Mon Nov 30 00:15:39 2015	(r402635)
@@ -0,0 +1,6 @@
+The gnatdroid-x86 port builds a C/Ada cross-compiler based on GCC 4.9
+that targets the Android operating system (up to version 5.0, API level
+21) running on x86 or x86_64 architecture (version 7).  This produces
+binaries that run natively on x86-based Android devices.
+
+WWW: http://www.dragonlace.net



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