From owner-freebsd-ports-bugs@FreeBSD.ORG Sat Apr 7 12:10:05 2012 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 808551065670 for ; Sat, 7 Apr 2012 12:10:05 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 4EB2C8FC15 for ; Sat, 7 Apr 2012 12:10:05 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q37CA5jV050098 for ; Sat, 7 Apr 2012 12:10:05 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q37CA5PJ050097; Sat, 7 Apr 2012 12:10:05 GMT (envelope-from gnats) Resent-Date: Sat, 7 Apr 2012 12:10:05 GMT Resent-Message-Id: <201204071210.q37CA5PJ050097@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, John Marino Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D55701065673 for ; Sat, 7 Apr 2012 12:06:48 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22]) by mx1.freebsd.org (Postfix) with ESMTP id BED9C8FC16 for ; Sat, 7 Apr 2012 12:06:48 +0000 (UTC) Received: from red.freebsd.org (localhost [127.0.0.1]) by red.freebsd.org (8.14.4/8.14.4) with ESMTP id q37C6mUA020898 for ; Sat, 7 Apr 2012 12:06:48 GMT (envelope-from nobody@red.freebsd.org) Received: (from nobody@localhost) by red.freebsd.org (8.14.4/8.14.4/Submit) id q37C6m7S020896; Sat, 7 Apr 2012 12:06:48 GMT (envelope-from nobody) Message-Id: <201204071206.q37C6m7S020896@red.freebsd.org> Date: Sat, 7 Apr 2012 12:06:48 GMT From: John Marino To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: ports/166719: [MAINTAINER] lang/gnatdroid-armv5: upgrade to sync with gcc 4.6.3 X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 Apr 2012 12:10:05 -0000 >Number: 166719 >Category: ports >Synopsis: [MAINTAINER] lang/gnatdroid-armv5: upgrade to sync with gcc 4.6.3 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Sat Apr 07 12:10:05 UTC 2012 >Closed-Date: >Last-Modified: >Originator: John Marino >Release: >Organization: >Environment: >Description: NOTE: Depends on ports/166718 so that PR must be closed before this one. This patch converts lang/gnatdroid-armv5 from a custom-built standalone port to one that is based on lang/gnat-aux which uses official gcc tarballs. In addition, it has been upgraded to provide options to add Objective-C and Fortran languages. The C and Ada languages are still built by default. Note that every patch in the "files" directory as been deleted, so the directory itself can be removed. >How-To-Repeat: >Fix: Patch attached with submission follows: --- Makefile.orig 2011-09-10 19:53:10.000000000 +0200 +++ Makefile 2012-04-07 12:17:08.000000000 +0200 @@ -6,53 +6,59 @@ # PORTNAME= armv5 -PORTVERSION= 20110627 -PORTREVISION= 1 +PORTVERSION= ${SNAPSHOT} CATEGORIES= lang -MASTER_SITES= http://downloads.dragonlace.net/src/ \ - http://dragonlace.mirrors.ada.cx/src/ +MASTER_SITES= ${MASTER_SITE_GCC} +MASTER_SITE_SUBDIR= releases/gcc-${GCC_VERSION} PKGNAMEPREFIX= gnatdroid- DISTNAME= arm-gnat-${PORTVERSION} +DISTFILES= gcc-core-${GCC_VERSION}.tar.bz2 \ + gcc-ada-${GCC_VERSION}.tar.bz2 \ + gcc-testsuite-${GCC_VERSION}.tar.bz2 MAINTAINER= draco@marino.st COMMENT= C/Ada cross-compiler, target: Android ARMv5 BUILD_DEPENDS= gnatdroid-sysroot>=9:${PORTSDIR}/lang/gnatdroid-sysroot \ gnatdroid-binutils>=2.21:${PORTSDIR}/lang/gnatdroid-binutils \ - ${LOCALBASE}/lib/libgmp.so:${PORTSDIR}/math/gmp \ - ${LOCALBASE}/lib/libmpfr.so:${PORTSDIR}/math/mpfr \ - ${LOCALBASE}/lib/libmpc.so:${PORTSDIR}/math/mpc -RUN_DEPENDS:= ${BUILD_DEPENDS} -BUILD_DEPENDS+= gnat-aux>=20110325:${PORTSDIR}/lang/gnat-aux - -USE_BZIP2= YES -USE_GMAKE= YES -HAS_CONFIGURE= YES -USE_ICONV= YES -USE_BISON= build -ALL_TARGET= default + gnat-aux>=20110325:${PORTSDIR}/lang/gnat-aux +RUN_DEPENDS:= gnatdroid-sysroot>=9:${PORTSDIR}/lang/gnatdroid-sysroot \ + gnatdroid-binutils>=2.21:${PORTSDIR}/lang/gnatdroid-binutils + +.include "${.CURDIR}/../gnat-aux/Makefile.common" + +LANGS= c ada +APPLY_DIFFS= core ada ada-testsuite gcc-testsuite NO_MTREE= YES -MAKE_JOBS_SAFE= YES + +# Disable C++ until arm.cc/no-rtti issue resolved for libsupc++ +#OPTIONS+= CXX "Also build C++ language" off + +OPTIONS+= FORT "Also build Fortran language" off +OPTIONS+= OBJC "Also build Objective-C language" off DROID_TARGET= arm-android-eabi DROID_ARCH= armv5te ARMVERSION= ARMv5 FPU= vfp -GCC_BRANCH= 4.6 -GCC_VERSION= 4.6.1 -WRKSRC= ${WRKDIR}/gcc-${GCC_BRANCH}-${PORTVERSION} +WRKSRC= ${WRKDIR}/gcc-${GCC_VERSION} BUILDDIR= ${WRKDIR}/build +FILESDIR= ${.CURDIR}/../gnat-aux/files CFG_SCRIPT= ${WRKSRC}/configure REVFILE= ${WRKSRC}/gcc/REVISION SRPREFIX= ${LOCALBASE}/android9 -PREFIX= ${SRPREFIX}/${ARMVERSION} +PREFIX= ${SRPREFIX}/${ARMVERSION} FULL_GNATGCC= ${LOCALBASE}/bin/gnatgcc +INSTALLDIRS= lib/gcc libexec/gcc share +INSTALLDIRS+= ${DROID_TARGET}/lib/armv7-a +INSTALLDIRS+= ${DROID_TARGET}/lib/thumb PLIST_SUB+= TARGET="${DROID_TARGET}" PLIST_SUB+= GCCVERS="${GCC_VERSION}" ADA_CONFIGURE_ENV= CC=${FULL_GNATGCC} .include +.include .if ${ARCH} == "amd64" OS_LABEL4VERS= "[FreeBSD64 x Android ${ARMVERSION}]" @@ -60,7 +66,43 @@ OS_LABEL4VERS= "[FreeBSD32 x Android ${ARMVERSION}]" .endif -CONFIGURE_ARGS= --enable-languages=c,ada +########### +## C++ ## +########### + +.if defined(WITH_CXX) +LANGS+= c++ +APPLY_DIFFS+= cxx cxx-testsuite +DISTFILES+= gcc-g++-${GCC_VERSION}.tar.bz2 +INSTALLDIRS+= include/c++/${GCC_VERSION} +PLIST_SUB+= CXX="" +.else +PLIST_SUB+= CXX="@comment " +.endif + +############### +## Fortran ## +############### + +.if defined(WITH_FORT) +LANGS+= fortran +APPLY_DIFFS+= fortran +DISTFILES+= gcc-fortran-${GCC_VERSION}.tar.bz2 +PLIST_SUB+= FRT="" +.else +PLIST_SUB+= FRT="@comment " +.endif + +################### +## Objective-C ## +################### + +.if defined(WITH_OBJC) +LANGS+= objc +DISTFILES+= gcc-objc-${GCC_VERSION}.tar.bz2 +.endif + +CONFIGURE_ARGS= --enable-languages=${LANGS:Q} CONFIGURE_ARGS+= --target=${DROID_TARGET} CONFIGURE_ARGS+= --program-prefix=${DROID_TARGET}- CONFIGURE_ARGS+= --prefix=${PREFIX} @@ -81,7 +123,7 @@ CONFIGURE_ARGS+= --disable-libgomp CONFIGURE_ARGS+= --disable-libmudflap CONFIGURE_ARGS+= --disable-libquadmath -CONFIGURE_ARGS+= --disable-libstdcxx-pch +CONFIGURE_ARGS+= --disable-sjlj-exceptions CONFIGURE_ARGS+= --disable-tls CONFIGURE_ARGS+= --disable-nls @@ -89,6 +131,18 @@ # Personalize GNAT for each different machine @${ECHO} "-=> GNAT AUX ${OS_LABEL4VERS}" > ${REVFILE} + # Create new directories in preparation of applying diff files +.if defined(WITH_CXX) + ${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}" + @${PATCH} -d ${WRKSRC} -s -E < ${FILESDIR}/diff-${suffix} +.endfor + do-configure: ${MKDIR} ${BUILDDIR} cd ${BUILDDIR} && ${SETENV} ${ADA_CONFIGURE_ENV} \ @@ -103,9 +157,15 @@ ${PREFIX}/bin/${DROID_TARGET}-gnatgcc ${MV} ${PREFIX}/${DROID_TARGET}/bin/gcc \ ${PREFIX}/${DROID_TARGET}/bin/gnatgcc +.if defined(WITH_FORT) + ${MV} ${PREFIX}/bin/${DROID_TARGET}-gfortran \ + ${PREFIX}/bin/${DROID_TARGET}-gnatgfortran + ${MV} ${PREFIX}/${DROID_TARGET}/bin/gfortran \ + ${PREFIX}/${DROID_TARGET}/bin/gnatgfortran +.endif post-install: -.for d in lib/gcc libexec/gcc share +.for d in ${INSTALLDIRS} cd ${PREFIX}; ${FIND} $d \( -type f -or -type l \) | ${SORT} >> ${TMPPLIST} cd ${PREFIX}; ${FIND} $d -type d | ${SORT} -dr | \ ${SED} -e 's/^/@dirrm /g' >> ${TMPPLIST} --- distinfo.orig 2011-09-07 07:22:05.000000000 +0200 +++ distinfo 2012-04-07 00:36:04.000000000 +0200 @@ -1,2 +1,12 @@ -SHA256 (arm-gnat-20110627.tar.bz2) = 3698806aabc63ab93a23e57c2fc4065f41f788e2ac9cff4a05ae501723e7499f -SIZE (arm-gnat-20110627.tar.bz2) = 19133878 +SHA256 (gcc-core-4.6.3.tar.bz2) = 283e00881c0de258fafc5170843e4d9b14ee2a7dc4426f0d426e6be0400251c1 +SIZE (gcc-core-4.6.3.tar.bz2) = 30305971 +SHA256 (gcc-ada-4.6.3.tar.bz2) = 7bb213ec3948646df72720580fcba3489c84aa452bd0e4238712607ef83cbdf6 +SIZE (gcc-ada-4.6.3.tar.bz2) = 6092418 +SHA256 (gcc-g++-4.6.3.tar.bz2) = b3e0c733e900e99096b0c5480f57e22e3e583ec3d83596cc2cb9986bd64b29e8 +SIZE (gcc-g++-4.6.3.tar.bz2) = 6928430 +SHA256 (gcc-fortran-4.6.3.tar.bz2) = fe1bdf3485f33e6d0a998ff7bcb42526fbf3083dbfc107c3d95a88c00739eadb +SIZE (gcc-fortran-4.6.3.tar.bz2) = 1676490 +SHA256 (gcc-objc-4.6.3.tar.bz2) = 4c193397ce0b8b7b3a6b090078f7228e22999edb14a53480ac709f7f165a4ca3 +SIZE (gcc-objc-4.6.3.tar.bz2) = 342441 +SHA256 (gcc-testsuite-4.6.3.tar.bz2) = a3448d09e5e8ce6baee4080981efc85e6af1621b66a68258dd645c04ae381bed +SIZE (gcc-testsuite-4.6.3.tar.bz2) = 6354781 --- pkg-plist.orig 2012-04-07 10:51:47.000000000 +0200 +++ pkg-plist 2012-04-07 11:24:52.000000000 +0200 @@ -14,6 +14,7 @@ bin/%%TARGET%%-cpp bin/%%TARGET%%-gnatgcc bin/%%TARGET%%-gcc-%%GCCVERS%% +%%FRT%%bin/%%TARGET%%-gnatgfortran lib/libiberty.a %%TARGET%%/bin/gnatbind %%TARGET%%/bin/gnatchop @@ -24,10 +25,7 @@ %%TARGET%%/bin/gnatmake %%TARGET%%/bin/gnatprep %%TARGET%%/bin/gnatgcc -%%TARGET%%/lib/armv7-a/thumb/libiberty.a -%%TARGET%%/lib/armv7-a/libiberty.a -%%TARGET%%/lib/thumb/libiberty.a -%%TARGET%%/lib/libiberty.a -@dirrm %%TARGET%%/lib/armv7-a/thumb -@dirrm %%TARGET%%/lib/armv7-a -@dirrm %%TARGET%%/lib/thumb +%%FRT%%%%TARGET%%/bin/gnatgfortran +%%FRT%%%%TARGET%%/lib/libgfortran.a +%%FRT%%%%TARGET%%/lib/libgfortran.la +%%FRT%%%%TARGET%%/lib/libgfortran.spec --- files/patch-configure 2011-09-07 07:22:05.000000000 +0200 +++ /dev/null 2012-04-07 12:11:00.000000000 +0200 @@ -1,11 +0,0 @@ ---- configure.orig 2011-07-18 00:12:43.000000000 +0200 -+++ configure 2011-07-18 00:13:35.000000000 +0200 -@@ -3233,7 +3233,7 @@ - libgloss_dir=arm - ;; - arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* ) -- noconfigdirs="$noconfigdirs target-libffi target-qthreads" -+ noconfigdirs="$noconfigdirs target-libffi target-qthreads target-libstdc++-v3" - libgloss_dir=arm - ;; - arm*-*-linux-gnueabi) --- files/patch-gcc__Makefile.in 2011-09-07 07:22:05.000000000 +0200 +++ /dev/null 2012-04-07 12:11:00.000000000 +0200 @@ -1,27 +0,0 @@ ---- gcc/Makefile.in.orig 2011-01-09 00:44:20.000000000 +0100 -+++ gcc/Makefile.in 2011-01-09 00:53:28.000000000 +0100 -@@ -306,11 +306,11 @@ - # This is where we get zlib from. zlibdir is -L../zlib and zlibinc is - # -I../zlib, unless we were configured with --with-system-zlib, in which - # case both are empty. --ZLIB = @zlibdir@ -lz -+ZLIB = -Wl,-Bstatic @zlibdir@ -lz -Wl,-Bdynamic - ZLIBINC = @zlibinc@ - - # How to find GMP --GMPLIBS = @GMPLIBS@ -+GMPLIBS = -Wl,-Bstatic @GMPLIBS@ -Wl,-Bdynamic - GMPINC = @GMPINC@ - - # How to find PPL -@@ -626,8 +626,8 @@ - LIBINTL_DEP = @LIBINTL_DEP@ - - # Character encoding conversion library. --LIBICONV = @LIBICONV@ --LIBICONV_DEP = @LIBICONV_DEP@ -+LIBICONV = -Wl,-Bstatic -L/usr/local/lib -liconv -Wl,-Bdynamic -+LIBICONV_DEP = - - # The GC method to be used on this system. - GGC=@GGC@.o --- files/patch-gcc__ada__adaint.c 2011-09-07 07:22:05.000000000 +0200 +++ /dev/null 2012-04-07 12:11:00.000000000 +0200 @@ -1,50 +0,0 @@ ---- gcc/ada/adaint.c.orig 2011-04-16 05:34:37.000000000 -0500 -+++ gcc/ada/adaint.c 2011-08-19 23:28:10.000000000 -0500 -@@ -1201,6 +1201,47 @@ - free (pname); - } - -+#elif defined (__ANDROID__) -+ -+ /* -+ * ext2 /ext3/ext4/fat16/fat32 have no path limits -+ * /data/local/tmp normally requires rooted devices, if it even exists -+ * /sdcard is the standard location for external storage. Nativeactivity -+ * manifest needs to authorize its use, otherwise it might not have the -+ * proper permissions. -+ */ -+ -+ int testfd; -+ char *datadir = getenv ("ANDROID_DATA"); -+ -+ if (datadir == NULL) -+ strcpy (tmp_filename, "/data/local/tmp/gnat-XXXXXX"); -+ else -+ sprintf (tmp_filename, "%s/local/tmp/gnat-XXXXXX", datadir); -+ -+ testfd = mkstemp (tmp_filename); -+ if (testfd != -1) -+ { -+ close (testfd); -+ return; -+ } -+ -+ char *sdcard = getenv ("EXTERNAL_STORAGE"); -+ -+ if (sdcard == NULL) -+ strcpy (tmp_filename, "/sdcard/gnat-XXXXXX"); -+ else -+ sprintf (tmp_filename, "%s/gnat-XXXXXX", sdcard); -+ -+ testfd = mkstemp (tmp_filename); -+ if (testfd != -1) -+ { -+ close (testfd); -+ return; -+ } -+ -+ tmpnam (tmp_filename); -+ - #elif defined (linux) || defined (__FreeBSD__) || defined (__NetBSD__) \ - || defined (__DragonFly__) \ - || defined (__OpenBSD__) || defined(__GLIBC__) --- files/patch-gcc__ada__gccint__Makefile.in 2011-09-10 19:53:10.000000000 +0200 +++ /dev/null 2012-04-07 12:11:00.000000000 +0200 @@ -1,83 +0,0 @@ ---- gcc/ada/gcc-interface/Makefile.in.orig 2011-09-07 16:11:58.000000000 -0500 -+++ gcc/ada/gcc-interface/Makefile.in 2011-09-07 16:16:29.000000000 -0500 -@@ -1184,6 +1184,8 @@ - a-numaux.adsRelease-Note: >Audit-Trail: >Unformatted: