Date: Sat, 7 Apr 2012 12:10:28 GMT From: John Marino <draco@marino.st> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/166720: [MAINTAINER] lang/gnatdroid-armv7: upgrade to sync with gcc 4.6.3 Message-ID: <201204071210.q37CASb6021832@red.freebsd.org> Resent-Message-ID: <201204071220.q37CK1sg060145@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 166720 >Category: ports >Synopsis: [MAINTAINER] lang/gnatdroid-armv7: 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:20:01 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-armv7 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-11 09:06:21.000000000 +0200 +++ Makefile 2012-04-07 12:45:40.000000000 +0200 @@ -6,53 +6,59 @@ # PORTNAME= armv7 -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 ARMv7 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= armv7-a ARMVERSION= ARMv7 FPU= neon -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 <bsd.port.pre.mk> +.include <bsd.port.options.mk> .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 13:09:09.000000000 +0200 +++ distinfo 2012-04-07 12:34:35.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 2011-09-07 13:09:09.000000000 +0200 +++ pkg-plist 2012-04-07 13:07:29.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,7 +25,4 @@ %%TARGET%%/bin/gnatmake %%TARGET%%/bin/gnatprep %%TARGET%%/bin/gnatgcc -%%TARGET%%/lib/armv7-a/thumb/libiberty.a -%%TARGET%%/lib/armv7-a/libiberty.a -@dirrm %%TARGET%%/lib/armv7-a/thumb -@dirrm %%TARGET%%/lib/armv7-a +%%FRT%%%%TARGET%%/bin/gnatgfortran --- files/patch-configure 2011-09-07 13:09:09.000000000 +0200 +++ /dev/null 2012-04-07 13:33:23.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 13:09:09.000000000 +0200 +++ /dev/null 2012-04-07 13:33:23.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 13:09:09.000000000 +0200 +++ /dev/null 2012-04-07 13:33:23.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-11 09:06:21.000000000 +0200 +++ /dev/null 2012-04-07 13:33:23.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.ads<a-numaux-x86.ads \ - g-bytswa.adb<g-bytswa-x86.adb \ - g-socthi.adb<g-socthi-bsd.adb \ -+ g-trasym.ads<g-trasym-unimplemented.ads \ -+ g-trasym.adb<g-trasym-unimplemented.adb \ - s-inmaop.adb<s-inmaop-posix.adb \ - s-intman.adb<s-intman-posix.adb \ - s-osinte.adb<s-osinte-freebsd.adb \ -@@ -1219,6 +1221,8 @@ - a-numaux.ads<a-numaux-x86.ads \ - g-bytswa.adb<g-bytswa-x86.adb \ - g-socthi.adb<g-socthi-bsd.adb \ -+ g-trasym.ads<g-trasym-unimplemented.ads \ -+ g-trasym.adb<g-trasym-unimplemented.adb \ - s-inmaop.adb<s-inmaop-posix.adb \ - s-intman.adb<s-intman-posix.adb \ - s-osinte.adb<s-osinte-freebsd.adb \ -@@ -1253,6 +1257,8 @@ - a-numaux.ads<a-numaux-x86.ads \ - g-bytswa.adb<g-bytswa-x86.adb \ - g-socthi.adb<g-socthi-bsd.adb \ -+ g-trasym.ads<g-trasym-unimplemented.ads \ -+ g-trasym.adb<g-trasym-unimplemented.adb \ - s-inmaop.adb<s-inmaop-posix.adb \ - s-intman.adb<s-intman-posix.adb \ - s-osinte.adb<s-osinte-dragonfly.adb \ -@@ -1288,6 +1294,8 @@ - a-numaux.ads<a-numaux-x86.ads \ - g-bytswa.adb<g-bytswa-x86.adb \ - g-socthi.adb<g-socthi-bsd.adb \ -+ g-trasym.ads<g-trasym-unimplemented.ads \ -+ g-trasym.adb<g-trasym-unimplemented.adb \ - s-inmaop.adb<s-inmaop-posix.adb \ - s-intman.adb<s-intman-posix.adb \ - s-osinte.adb<s-osinte-dragonfly.adb \ -@@ -1322,6 +1330,8 @@ - a-numaux.ads<a-numaux-x86.ads \ - g-bytswa.adb<g-bytswa-x86.adb \ - g-socthi.adb<g-socthi-bsd.adb \ -+ g-trasym.ads<g-trasym-unimplemented.ads \ -+ g-trasym.adb<g-trasym-unimplemented.adb \ - s-inmaop.adb<s-inmaop-posix.adb \ - s-intman.adb<s-intman-posix.adb \ - s-osinte.adb<s-osinte-openbsd.adb \ -@@ -1357,6 +1367,8 @@ - a-numaux.ads<a-numaux-x86.ads \ - g-bytswa.adb<g-bytswa-x86.adb \ - g-socthi.adb<g-socthi-bsd.adb \ -+ g-trasym.ads<g-trasym-unimplemented.ads \ -+ g-trasym.adb<g-trasym-unimplemented.adb \ - s-inmaop.adb<s-inmaop-posix.adb \ - s-intman.adb<s-intman-posix.adb \ - s-osinte.adb<s-osinte-openbsd.adb \ -@@ -1391,6 +1403,8 @@ - a-numaux.ads<a-numaux-x86.ads \ - g-bytswa.adb<g-bytswa-x86.adb \ - g-socthi.adb<g-socthi-netbsd.adb \ -+ g-trasym.ads<g-trasym-unimplemented.ads \ -+ g-trasym.adb<g-trasym-unimplemented.adb \ - s-inmaop.adb<s-inmaop-posix.adb \ - s-intman.adb<s-intman-posix.adb \ - s-osinte.adb<s-osinte-netbsd.adb \ -@@ -1435,6 +1449,8 @@ - a-numaux.ads<a-numaux-x86.ads \ - g-bytswa.adb<g-bytswa-x86.adb \ - g-socthi.adb<g-socthi-netbsd.adb \ -+ g-trasym.ads<g-trasym-unimplemented.ads \ -+ g-trasym.adb<g-trasym-unimplemented.adb \ - s-inmaop.adb<s-inmaop-posix.adb \ - s-intman.adb<s-intman-posix.adb \ - s-osinte.adb<s-osinte-netbsd.adb \ -@@ -1472,6 +1488,8 @@ - ifeq ($(strip $(filter-out arm% android eabi,$(targ))),) - LIBGNAT_TARGET_PAIRS = \ - a-intnam.ads<a-intnam-linux.ads \ -+ g-trasym.ads<g-trasym-unimplemented.ads \ -+ g-trasym.adb<g-trasym-unimplemented.adb \ - s-inmaop.adb<s-inmaop-posix.adb \ - s-intman.adb<s-intman-posix.adb \ - s-linux.ads<s-linux.ads \ --- files/patch-libiberty__getpagesize.c 2011-09-07 13:09:09.000000000 +0200 +++ /dev/null 2012-04-07 13:33:23.000000000 +0200 @@ -1,15 +0,0 @@ ---- libiberty/getpagesize.c.orig 2011-01-29 06:55:10 +0100 -+++ libiberty/getpagesize.c 2011-01-29 07:07:40 +0100 -@@ -20,6 +20,7 @@ - - */ - -+#ifndef __ANDROID__ - #ifndef VMS - - #include "config.h" -@@ -88,3 +89,4 @@ - } - - #endif /* VMS */ -+#endif /* __ANDROID__ */ --- files/patch-libiberty__setprotitle.c 2011-09-07 13:09:09.000000000 +0200 +++ /dev/null 2012-04-07 13:33:23.000000000 +0200 @@ -1,14 +0,0 @@ ---- libiberty/setproctitle.c.orig 2011-01-29 07:11:03 +0100 -+++ libiberty/setproctitle.c 2011-01-29 07:28:55 +0100 -@@ -40,9 +40,11 @@ - void - setproctitle (const char *name ATTRIBUTE_UNUSED, ...) - { -+#ifndef __ANDROID__ - #ifdef PR_SET_NAME - /* On Linux this sets the top visible "comm", but not necessarily - the name visible in ps. */ - prctl (PR_SET_NAME, name); - #endif -+#endif - } >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201204071210.q37CASb6021832>