Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Jul 2014 12:29:09 +0000 (UTC)
From:      "Lev A. Serebryakov" <lev@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r361360 - in head/devel/gcc-arm-embedded: . files
Message-ID:  <201407091229.s69CT9K8071306@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: lev
Date: Wed Jul  9 12:29:08 2014
New Revision: 361360
URL: http://svnweb.freebsd.org/changeset/ports/361360
QAT: https://qat.redports.org/buildarchive/r361360/

Log:
   (1) Add fix to build with devel/isl 0.13
   (2) Add option PURE (default OFF) to build with all provided libraries and
       skip any external dependencies, to make complete repeatable build.

Added:
  head/devel/gcc-arm-embedded/files/extra-patch-gcc-isl-0.13-compatibility   (contents, props changed)
Modified:
  head/devel/gcc-arm-embedded/Makefile
  head/devel/gcc-arm-embedded/files/Makefile

Modified: head/devel/gcc-arm-embedded/Makefile
==============================================================================
--- head/devel/gcc-arm-embedded/Makefile	Wed Jul  9 12:12:44 2014	(r361359)
+++ head/devel/gcc-arm-embedded/Makefile	Wed Jul  9 12:29:08 2014	(r361360)
@@ -13,17 +13,22 @@ COMMENT=	Complete gcc-based toolcahin fo
 LICENSE=	GPLv2 LGPL20 LGPL21 GPLv3 LGPL3
 LICENSE_COMB=	multi
 
-LIB_DEPENDS=	libgmp.so:${PORTSDIR}/math/gmp \
-		libmpfr.so:${PORTSDIR}/math/mpfr \
-		libmpc.so:${PORTSDIR}/math/mpc \
-		libcloog-isl.so:${PORTSDIR}/math/cloog \
-		libelf.so:${PORTSDIR}/devel/libelf
-
-OPTIONS_DEFINE=	EXAMPLES HTML PDF
+OPTIONS_DEFINE=	PURE EXAMPLES HTML PDF
 OPTIONS_DEFAULT=EXAMPLES
+PURE_DESC=	Use all libraries from bundle, do not depend on anything
 HTML_DESC=	Install HTML documentation
 PDF_DESC=	Install PDF documentation (requires TeX, it is huge)
 
+PURE_EXTRA_PATCHES_OFF=	${PATCHDIR}/extra-patch-gcc-isl-0.13-compatibility
+PURE_LIB_DEPENDS_OFF=	\
+			libexpat.so:${PORTSDIR}/textproc/expat2 \
+			libgmp.so:${PORTSDIR}/math/gmp \
+			libmpfr.so:${PORTSDIR}/math/mpfr \
+			libmpc.so:${PORTSDIR}/math/mpc \
+			libisl.so:${PORTSDIR}/devel/isl \
+			libcloog-isl.so:${PORTSDIR}/math/cloog \
+			libelf.so:${PORTSDIR}/devel/libelf
+
 PDF_USE=		TEX=base:build,tex:build
 PDF_BUILD_DEPENDS=	texi2dvi:${PORTSDIR}/print/texinfo
 OPTIONS_SUB=		yes
@@ -31,6 +36,8 @@ OPTIONS_SUB=		yes
 USES=		bison compiler gmake iconv makeinfo tar:bzip2
 GNU_CONFIGURE=	yes
 
+PATCH_WRKSRC=		${WRKDIR}/${ORIGINAL_PACKAGE_NAME}
+
 BUILD_WRKSRC=	${WRKDIR}
 
 FULL_VERSION=		4_8-2014q2-20140609
@@ -50,21 +57,41 @@ PLIST_SUB+=	TARGET=${TARGET} FULL_VERSIO
 DOCS_SUFFIX=	share/doc/gcc-${TARGET}
 SRC_DIR=	${WRKDIR}/${ORIGINAL_PACKAGE_NAME}/src
 BUILD_DIR=	${WRKDIR}/build
-INTERIM_PREFIX=	${WRKDIR}/install/${PORTNAME}-${FULL_VERSION}
+INTERIM_WORLD=	${WRKDIR}/install
+INTERIM_PREFIX=	${INTERIM_WORLD}/${PORTNAME}-${FULL_VERSION}
+
+BUNDLED_LIBS=			EXPAT:gz ZLIB:bz2 LIBELF:gz \
+				GMP:bz2 MPFR:bz2 MPC:gz ISL:bz2 CLOOG:gz
+BUNDLED_VERSION_EXPAT=		2.0.1
+BUNDLED_VERSION_ZLIB=		1.2.5
+BUNDLED_VERSION_LIBELF=		0.8.13
+BUNDLED_VERSION_GMP=		4.3.2
+BUNDLED_VERSION_MPFR=		2.4.2
+BUNDLED_VERSION_MPC=		0.8.1
+BUNDLED_VERSION_ISL=		0.11.1
+BUNDLED_VERSION_CLOOG=		0.18.0
+
 
 VAR_TO_SUBMAKE=	BUILD_DIR CC CFLAGS CHOSEN_COMPILER_TYPE CONFIG_SITE \
 		CONFIGURE_MAX_CMD_LEN CP CPP CPPFLAGS CXX CXXFLAGS \
 		DOCS_SUFFIX ECHO_MSG EXAMPLESDIR FILE FIND GMAKE GREP \
-		MAKE_CMD \
-		INSTALL_MACROS INTERIM_PREFIX LD LDFLAGS LIBDIR LN LOCALBASE \
-		MAKE_JOBS_NUMBER MKDIR ORIGINAL_PACKAGE_NAME PORT_OPTIONS \
-		PREFIX RM SED SH SRC_DIR STRIP_CMD TAR TARGET WRKDIR
+		MAKE_CMD PATCH \
+		INSTALL_MACROS INTERIM_PREFIX INTERIM_WORLD LD LDFLAGS LIBDIR \
+		LN LOCALBASE MAKE_JOBS_NUMBER MKDIR ORIGINAL_PACKAGE_NAME \
+		PORT_OPTIONS PREFIX RM SED SH SRC_DIR STRIP_CMD TAR TARGET \
+		WRKDIR
 
 VAR_TO_SUBMAKE_NOEXPAND=	CONFIGURE_ENV MAKE_ENV
 
 .include <bsd.port.pre.mk>
 
 post-extract:
+.if ${PORT_OPTIONS:MPURE}
+.for L in ${BUNDLED_LIBS}
+	@${ECHO_MSG} "====>  Extracting bundled ${L:C/[:].+//:tl}"
+	@${TAR} -xf ${SRC_DIR}/${L:C/[:].+//:tl}-${BUNDLED_VERSION_${L:C/[:].+//}}.tar.${L:C/.+[:]//} -C ${SRC_DIR}
+.endfor
+.endif
 	@${ECHO_MSG} "====>  Extracting bundled binutils"
 	@${TAR} -xf ${SRC_DIR}/binutils.tar.bz2 -C ${SRC_DIR}
 	@${ECHO_MSG} "====>  Extracting bundled gcc"
@@ -88,6 +115,10 @@ do-configure:
 .for VAR in ${VAR_TO_SUBMAKE}
 	@${ECHO} '${VAR}=${${VAR}}' >> ${WRKDIR}/Makefile.inc
 .endfor
+.for L in ${BUNDLED_LIBS}
+	@${ECHO} -n 'BUNDLED_VERSION_${L:C/[:].+//}='   >> ${WRKDIR}/Makefile.inc
+	@${ECHO}    '${BUNDLED_VERSION_${L:C/[:].+//}}' >> ${WRKDIR}/Makefile.inc
+.endfor
 .for VAR in ${VAR_TO_SUBMAKE_NOEXPAND}
 	@${ECHO} -n '${VAR}='                          >> ${WRKDIR}/Makefile.inc
 	@${MAKE} .MAKE.EXPAND_VARIABLES=0 -X -V ${VAR} >> ${WRKDIR}/Makefile.inc

Modified: head/devel/gcc-arm-embedded/files/Makefile
==============================================================================
--- head/devel/gcc-arm-embedded/files/Makefile	Wed Jul  9 12:12:44 2014	(r361359)
+++ head/devel/gcc-arm-embedded/files/Makefile	Wed Jul  9 12:29:08 2014	(r361360)
@@ -8,7 +8,13 @@ PKGVERSION=	GNU Tools for ARM Embedded P
 BUILD_PREFIX=	${WRKDIR}/build
 DOC_PREFIX=	${INTERIM_PREFIX}/${DOCS_SUFFIX}
 
-LDFLAGS+=	-L${LOCALBASE}/lib
+.if ${PORT_OPTIONS:MPURE}
+WORLD_LIB=${INTERIM_WORLD}
+.else
+WORLD_LIB=${LOCALBASE}
+.endif
+
+LDFLAGS+=	-L${WORLD_LIB}/lib
 
 .if ${CHOSEN_COMPILER_TYPE} == clang
 CFLAGS+=	-Wno-error
@@ -17,6 +23,21 @@ CXXFLAGS+=	-Wno-error
 
 MISC_DOCS=	license.txt readme.txt release.txt
 
+.if ${PORT_OPTIONS:MPURE}
+PREREQUISITES=		expat \
+			zlib \
+			libelf \
+			gmp \
+			mpfr \
+			mpc \
+			isl \
+			cloog
+ISL_CHECK_VERSION=
+.else
+PREREQUISITES=
+ISL_CHECK_VERSION=	--disable-isl-version-check
+.endif
+
 ALL_BUILD=	build-binutils \
 		build-gcc-first \
 		build-newlib \
@@ -30,9 +51,141 @@ ALL_BUILD=	build-binutils \
 		strip-binaries \
 		strip-target-libraries
 
-.PHONY: ${ALL_BUILD}
+.PHONY: ${PREREQUISITES} ${ALL_BUILD}
+
+all: ${PREREQUISITES} ${ALL_BUILD}
+
+expat:
+	@${ECHO_MSG} "====>  Build expat (log file: ${WRKDIR}/expat.log)"
+	@${RM} -rf ${BUILD_PREFIX}/expat > ${WRKDIR}/expat.log 2>&1
+	@${MKDIR} ${BUILD_PREFIX}/expat >> ${WRKDIR}/expat.log 2>&1
+	@${ECHO_MSG} "=====>  Configure"
+	@cd ${BUILD_PREFIX}/expat && \
+	 ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/expat-${BUNDLED_VERSION_EXPAT}/configure \
+	 --prefix=${INTERIM_WORLD} \
+	 --disable-shared \
+	 --disable-nls >> ${WRKDIR}/expat.log 2>&1
+	@${ECHO_MSG} "=====>  Build"
+	@${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/expat all >> ${WRKDIR}/expat.log 2>&1
+	@${ECHO_MSG} "=====>  Install into intermediate directory"
+	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/expat install >> ${WRKDIR}/expat.log 2>&1
 
-all: ${ALL_BUILD}
+zlib:
+	@${ECHO_MSG} "====>  Build zlib (log file: ${WRKDIR}/zlib.log)"
+	@${RM} -rf ${BUILD_PREFIX}/zlib > ${WRKDIR}/zlib.log 2>&1
+	@${MKDIR} ${BUILD_PREFIX}/zlib >> ${WRKDIR}/zlib.log 2>&1
+	@${ECHO_MSG} "=====>  Copy to build dir"
+	@${TAR} -cf - -C ${SRC_DIR}/zlib-${BUNDLED_VERSION_ZLIB} . | ${TAR} -xf - -C ${BUILD_PREFIX}/zlib >> ${WRKDIR}/zlib.log 2>&1
+	@${ECHO_MSG} "=====>  Patch"
+	@cd ${BUILD_PREFIX}/zlib && \
+	 ${PATCH} -p1 < ${SRC_DIR}/zlib-${BUNDLED_VERSION_ZLIB}.patch >> ${WRKDIR}/zlib.log 2>&1
+	@${ECHO_MSG} "=====>  Configure"
+	@cd ${BUILD_PREFIX}/zlib && \
+	 ${MAKE_ENV} ${CONFIGURE_ENV} ./configure \
+	 --static \
+	 --prefix=${INTERIM_WORLD} >> ${WRKDIR}/zlib.log 2>&1
+	@${ECHO_MSG} "=====>  Build"
+	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/zlib >> ${WRKDIR}/zlib.log 2>&1
+	@${ECHO_MSG} "=====>  Install into intermediate directory"
+	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/zlib install >> ${WRKDIR}/zlib.log 2>&1
+
+libelf:
+	@${ECHO_MSG} "====>  Build libelf (log file: ${WRKDIR}/libelf.log)"
+	@${RM} -rf ${BUILD_PREFIX}/libelf > ${WRKDIR}/libelf.log 2>&1
+	@${MKDIR} ${BUILD_PREFIX}/libelf >> ${WRKDIR}/libelf.log 2>&1
+	@${ECHO_MSG} "=====>  Configure"
+	@cd ${BUILD_PREFIX}/libelf && \
+	 ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/libelf-${BUNDLED_VERSION_LIBELF}/configure \
+	 --prefix=${INTERIM_WORLD} \
+	 --disable-shared \
+	 --disable-nls >> ${WRKDIR}/libelf.log 2>&1
+	@${ECHO_MSG} "=====>  Build"
+	@${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/libelf all >> ${WRKDIR}/libelf.log 2>&1
+	@${ECHO_MSG} "=====>  Install into intermediate directory"
+	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/libelf install >> ${WRKDIR}/libelf.log 2>&1
+
+gmp:
+	@${ECHO_MSG} "====>  Build gmp (log file: ${WRKDIR}/gmp.log)"
+	@${RM} -rf ${BUILD_PREFIX}/gmp > ${WRKDIR}/gmp.log 2>&1
+	@${MKDIR} ${BUILD_PREFIX}/gmp >> ${WRKDIR}/gmp.log 2>&1
+	@${ECHO_MSG} "=====>  Configure"
+	@cd ${BUILD_PREFIX}/gmp && \
+	 ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/gmp-${BUNDLED_VERSION_GMP}/configure \
+	 --prefix=${INTERIM_WORLD} \
+	 --enable-cxx \
+	 --disable-shared \
+	 --disable-nls >> ${WRKDIR}/gmp.log 2>&1
+	@${ECHO_MSG} "=====>  Build"
+	@${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/gmp all >> ${WRKDIR}/gmp.log 2>&1
+	@${ECHO_MSG} "=====>  Install into intermediate directory"
+	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/gmp install >> ${WRKDIR}/gmp.log 2>&1
+
+mpfr:
+	@${ECHO_MSG} "====>  Build mpfr (log file: ${WRKDIR}/mpfr.log)"
+	@${RM} -rf ${BUILD_PREFIX}/mpfr > ${WRKDIR}/mpfr.log 2>&1
+	@${MKDIR} ${BUILD_PREFIX}/mpfr >> ${WRKDIR}/mpfr.log 2>&1
+	@${ECHO_MSG} "=====>  Configure"
+	@cd ${BUILD_PREFIX}/mpfr && \
+	 ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/mpfr-${BUNDLED_VERSION_MPFR}/configure \
+	 --prefix=${INTERIM_WORLD} \
+	 --with-gmp=${INTERIM_WORLD} \
+	 --disable-shared \
+	 --disable-nls >> ${WRKDIR}/mpfr.log 2>&1
+	@${ECHO_MSG} "=====>  Build"
+	@${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/mpfr all >> ${WRKDIR}/mpfr.log 2>&1
+	@${ECHO_MSG} "=====>  Install into intermediate directory"
+	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/mpfr install >> ${WRKDIR}/mpfr.log 2>&1
+
+mpc:
+	@${ECHO_MSG} "====>  Build mpc (log file: ${WRKDIR}/mpc.log)"
+	@${RM} -rf ${BUILD_PREFIX}/mpc > ${WRKDIR}/mpc.log 2>&1
+	@${MKDIR} ${BUILD_PREFIX}/mpc >> ${WRKDIR}/mpc.log 2>&1
+	@${ECHO_MSG} "=====>  Configure"
+	@cd ${BUILD_PREFIX}/mpc && \
+	 ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/mpc-${BUNDLED_VERSION_MPC}/configure \
+	 --prefix=${INTERIM_WORLD} \
+	 --with-gmp=${INTERIM_WORLD} \
+	 --with-mpfr=${INTERIM_WORLD} \
+	 --disable-shared \
+	 --disable-nls >> ${WRKDIR}/mpc.log 2>&1
+	@${ECHO_MSG} "=====>  Build"
+	@${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/mpc all >> ${WRKDIR}/mpc.log 2>&1
+	@${ECHO_MSG} "=====>  Install into intermediate directory"
+	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/mpc install >> ${WRKDIR}/mpc.log 2>&1
+
+isl:
+	@${ECHO_MSG} "====>  Build isl (log file: ${WRKDIR}/isl.log)"
+	@${RM} -rf ${BUILD_PREFIX}/isl > ${WRKDIR}/isl.log 2>&1
+	@${MKDIR} ${BUILD_PREFIX}/isl >> ${WRKDIR}/isl.log 2>&1
+	@${ECHO_MSG} "=====>  Configure"
+	@cd ${BUILD_PREFIX}/isl && \
+	 ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/isl-${BUNDLED_VERSION_ISL}/configure \
+	 --prefix=${INTERIM_WORLD} \
+	 --with-gmp-prefix=${INTERIM_WORLD} \
+	 --disable-shared \
+	 --disable-nls >> ${WRKDIR}/isl.log 2>&1
+	@${ECHO_MSG} "=====>  Build"
+	@${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/isl all >> ${WRKDIR}/isl.log 2>&1
+	@${ECHO_MSG} "=====>  Install into intermediate directory"
+	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/isl install >> ${WRKDIR}/isl.log 2>&1
+
+cloog:
+	@${ECHO_MSG} "====>  Build cloog (log file: ${WRKDIR}/cloog.log)"
+	@${RM} -rf ${BUILD_PREFIX}/cloog > ${WRKDIR}/cloog.log 2>&1
+	@${MKDIR} ${BUILD_PREFIX}/cloog >> ${WRKDIR}/cloog.log 2>&1
+	@${ECHO_MSG} "=====>  Configure"
+	@cd ${BUILD_PREFIX}/cloog && \
+	 ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/cloog-${BUNDLED_VERSION_CLOOG}/configure \
+	 --prefix=${INTERIM_WORLD} \
+	 --with-bits=gmp \
+	 --with-gmp-prefix=${INTERIM_WORLD} \
+	 --with-isl-prefix=${INTERIM_WORLD} \
+	 --disable-shared \
+	 --disable-nls >> ${WRKDIR}/cloog.log 2>&1
+	@${ECHO_MSG} "=====>  Build"
+	@${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/cloog all >> ${WRKDIR}/cloog.log 2>&1
+	@${ECHO_MSG} "=====>  Install into intermediate directory"
+	@${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/cloog install >> ${WRKDIR}/cloog.log 2>&1
 
 build-binutils:
 	@${ECHO_MSG} "====>  Build binutils (log file: ${WRKDIR}/binutils.log)"
@@ -87,13 +240,13 @@ build-gcc-first:
 	 --htmldir=${DOC_PREFIX}/html \
 	 --pdfdir=${DOC_PREFIX}/pdf \
 	 --libexecdir=${INTERIM_PREFIX}/lib \
-	 --with-gmp=${LOCALBASE} \
-	 --with-mpfr=${LOCALBASE} \
-	 --with-mpc=${LOCALBASE} \
-	 --with-isl=${LOCALBASE} \
-	 --disable-isl-version-check \
-	 --with-cloog=${LOCALBASE} \
-	 --with-libelf=${LOCALBASE} \
+	 --with-gmp=${WORLD_LIB} \
+	 --with-mpfr=${WORLD_LIB} \
+	 --with-mpc=${WORLD_LIB} \
+	 --with-isl=${WORLD_LIB} \
+	 ${ISL_CHECK_VERSION} \
+	 --with-cloog=${WORLD_LIB} \
+	 --with-libelf=${WORLD_LIB} \
 	 --enable-languages=c \
 	 --disable-decimal-float \
 	 --disable-libffi \
@@ -207,13 +360,13 @@ build-gcc-final:
 	 --htmldir=${DOC_PREFIX}/html \
 	 --pdfdir=${DOC_PREFIX}/pdf \
 	 --libexecdir=${INTERIM_PREFIX}/lib \
-	 --with-gmp=${LOCALBASE} \
-	 --with-mpfr=${LOCALBASE} \
-	 --with-mpc=${LOCALBASE} \
-	 --with-isl=${LOCALBASE} \
-	 --disable-isl-version-check \
-	 --with-cloog=${LOCALBASE} \
-	 --with-libelf=${LOCALBASE} \
+	 --with-gmp=${WORLD_LIB} \
+	 --with-mpfr=${WORLD_LIB} \
+	 --with-mpc=${WORLD_LIB} \
+	 --with-isl=${WORLD_LIB} \
+	 ${ISL_CHECK_VERSION} \
+	 --with-cloog=${WORLD_LIB} \
+	 --with-libelf=${WORLD_LIB} \
 	 --enable-languages=c,c++ \
 	 --enable-plugins \
 	 --disable-decimal-float \
@@ -268,7 +421,7 @@ build-gcc-plugins:
 	   src_files=$$(${FIND} $${plugin_dir} -name \*.c -or -name \*.cc) && \
 	   ${ECHO_MSG} "=====>  Build plugin $${plugin_name} from $${src_files}" && \
 	   ${ECHO_MSG} "Build plugin $${plugin_name} from $${src_files}" >> ${WRKDIR}/gcc-plugins.log && \
-	   ${CXX} ${CXXFLAGS} ${CPPFLAGS} -fPIC -fno-rtti -O2 -shared -I$${plugin_target_dir}/include -I${LOCALBASE}/include $${src_files} \
+	   ${CXX} ${CXXFLAGS} ${CPPFLAGS} -fPIC -fno-rtti -O2 -shared -I$${plugin_target_dir}/include -I${WORLD_LIB}/include $${src_files} \
 	    -o $${plugin_target_dir}/$${plugin_name}.so >> ${WRKDIR}/gcc-plugins.log 2>&1 ; \
 	 done
 
@@ -287,13 +440,13 @@ build-libstdcxx:
 	 --mandir=${DOC_PREFIX}/man \
 	 --htmldir=${DOC_PREFIX}/html \
 	 --pdfdir=${DOC_PREFIX}/pdf \
-	 --with-gmp=${LOCALBASE} \
-	 --with-mpfr=${LOCALBASE} \
-	 --with-mpc=${LOCALBASE} \
-	 --with-isl=${LOCALBASE} \
-	 --disable-isl-version-check \
-	 --with-cloog=${LOCALBASE} \
-	 --with-libelf=${LOCALBASE} \
+	 --with-gmp=${WORLD_LIB} \
+	 --with-mpfr=${WORLD_LIB} \
+	 --with-mpc=${WORLD_LIB} \
+	 --with-isl=${WORLD_LIB} \
+	 ${ISL_CHECK_VERSION} \
+	 --with-cloog=${WORLD_LIB} \
+	 --with-libelf=${WORLD_LIB} \
 	 --enable-languages=c,c++ \
 	 --disable-decimal-float \
 	 --disable-libffi \
@@ -345,7 +498,7 @@ build-gdb:
 	 --disable-nls \
 	 --disable-sim \
 	 --with-libexpat \
-	 --with-libexpat-prefix=${LOCALBASE} \
+	 --with-libexpat-prefix=${WORLD_LIB} \
 	 --with-python=no \
 	 --with-system-gdbinit=${INTERIM_PREFIX}/xxxx/${TARGET}/lib/gdbinit \
 	 --with-lzma=no \

Added: head/devel/gcc-arm-embedded/files/extra-patch-gcc-isl-0.13-compatibility
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/gcc-arm-embedded/files/extra-patch-gcc-isl-0.13-compatibility	Wed Jul  9 12:29:08 2014	(r361360)
@@ -0,0 +1,457 @@
+diff -ruN src/gcc.orig/gcc/graphite-clast-to-gimple.c src/gcc/gcc/graphite-clast-to-gimple.c
+--- src/gcc.orig/gcc/graphite-clast-to-gimple.c	2014-07-08 14:47:19.000000000 +0400
++++ src/gcc/gcc/graphite-clast-to-gimple.c	2014-07-08 14:49:57.000000000 +0400
+@@ -28,6 +28,8 @@
+ #include <isl/constraint.h>
+ #include <isl/ilp.h>
+ #include <isl/aff.h>
++#include <isl/val.h>
++#include <isl/val_gmp.h>
+ #include <cloog/cloog.h>
+ #include <cloog/isl/domain.h>
+ #endif
+@@ -851,18 +853,18 @@
+ static void
+ compute_bounds_for_param (scop_p scop, int param, mpz_t low, mpz_t up)
+ {
+-  isl_int v;
++  isl_val *v;
+   isl_aff *aff = isl_aff_zero_on_domain
+     (isl_local_space_from_space (isl_set_get_space (scop->context)));
+ 
+   aff = isl_aff_add_coefficient_si (aff, isl_dim_param, param, 1);
+ 
+-  isl_int_init (v);
+-  isl_set_min (scop->context, aff, &v);
+-  isl_int_get_gmp (v, low);
+-  isl_set_max (scop->context, aff, &v);
+-  isl_int_get_gmp (v, up);
+-  isl_int_clear (v);
++  v = isl_set_min_val (scop->context, aff);
++  isl_val_get_num_gmp (v, low);
++  isl_val_free (v);
++  v = isl_set_max_val (scop->context, aff);
++  isl_val_get_num_gmp (v, up);
++  isl_val_free (v);
+   isl_aff_free (aff);
+ }
+ 
+@@ -881,8 +883,7 @@
+   isl_set *domain;
+   isl_aff *dimension;
+   isl_local_space *local_space;
+-  isl_int isl_value;
+-  enum isl_lp_result lp_result;
++  isl_val *isl_value;
+ 
+   domain = isl_set_copy (isl_set_from_cloog_domain (loop->domain));
+   local_space = isl_local_space_from_space (isl_set_get_space (domain));
+@@ -891,17 +892,12 @@
+ 					  isl_set_dim (domain, isl_dim_set) - 1,
+ 					  1);
+ 
+-  isl_int_init (isl_value);
+-
+-  lp_result = isl_set_min (domain, dimension, &isl_value);
+-  assert (lp_result == isl_lp_ok);
+-  isl_int_get_gmp (isl_value, low);
+-
+-  lp_result = isl_set_max (domain, dimension, &isl_value);
+-  assert (lp_result == isl_lp_ok);
+-  isl_int_get_gmp (isl_value, up);
+-
+-  isl_int_clear (isl_value);
++  isl_value = isl_set_min_val (domain, dimension);
++  isl_val_get_num_gmp (isl_value, low);
++  isl_val_free (isl_value);
++  isl_value = isl_set_max_val (domain, dimension);
++  isl_val_get_num_gmp (isl_value, up);
++  isl_val_free (isl_value);
+   isl_set_free (domain);
+   isl_aff_free (dimension);
+ }
+diff -ruN src/gcc.orig/gcc/graphite-interchange.c src/gcc/gcc/graphite-interchange.c
+--- src/gcc.orig/gcc/graphite-interchange.c	2014-07-08 14:47:20.000000000 +0400
++++ src/gcc/gcc/graphite-interchange.c	2014-07-08 14:49:57.000000000 +0400
+@@ -29,6 +29,8 @@
+ #include <isl/map.h>
+ #include <isl/union_map.h>
+ #include <isl/ilp.h>
++#include <isl/val.h>
++#include <isl/val_gmp.h>
+ #include <cloog/cloog.h>
+ #include <cloog/isl/domain.h>
+ #endif
+@@ -71,13 +73,13 @@
+   isl_local_space *ls = isl_local_space_from_space (isl_map_get_space (map));
+   unsigned offset, nsubs;
+   int i;
+-  isl_int size, subsize;
++  isl_ctx *ct;
++
++  isl_val *size, *subsize, *size1;
+ 
+   res = isl_equality_alloc (ls);
+-  isl_int_init (size);
+-  isl_int_set_ui (size, 1);
+-  isl_int_init (subsize);
+-  isl_int_set_ui (subsize, 1);
++  ct = isl_local_space_get_ctx (ls);
++  size = isl_val_int_from_ui (ct, 1);
+ 
+   nsubs = isl_set_dim (pdr->extent, isl_dim_set);
+   /* -1 for the already included L dimension.  */
+@@ -90,18 +92,17 @@
+       isl_space *dc;
+       isl_aff *aff;
+ 
+-      res = isl_constraint_set_coefficient (res, isl_dim_out, offset + i, size);
+-
++      size1 = isl_val_copy (size);
++      res = isl_constraint_set_coefficient_val (res, isl_dim_out, offset + i, size);
+       dc = isl_set_get_space (pdr->extent);
+       aff = isl_aff_zero_on_domain (isl_local_space_from_space (dc));
+       aff = isl_aff_set_coefficient_si (aff, isl_dim_in, i, 1);
+-      isl_set_max (pdr->extent, aff, &subsize);
++      subsize = isl_set_max_val (pdr->extent, aff);
+       isl_aff_free (aff);
+-      isl_int_mul (size, size, subsize);
++      size = isl_val_mul (size1, subsize);
+     }
+ 
+-  isl_int_clear (subsize);
+-  isl_int_clear (size);
++  isl_val_free (size);
+ 
+   return res;
+ }
+@@ -118,7 +119,7 @@
+   isl_aff *aff;
+   isl_space *dc;
+   isl_constraint *lma, *c;
+-  isl_int islstride;
++  isl_val *islstride;
+   graphite_dim_t time_depth;
+   unsigned offset, nt;
+   unsigned i;
+@@ -231,10 +232,9 @@
+   aff = isl_aff_zero_on_domain (isl_local_space_from_space (dc));
+   aff = isl_aff_set_coefficient_si (aff, isl_dim_in, offset - 1, -1);
+   aff = isl_aff_set_coefficient_si (aff, isl_dim_in, offset + offset - 1, 1);
+-  isl_int_init (islstride);
+-  isl_set_max (set, aff, &islstride);
+-  isl_int_get_gmp (islstride, stride);
+-  isl_int_clear (islstride);
++  islstride = isl_set_max_val (set, aff);
++  isl_val_get_num_gmp (islstride, stride);
++  isl_val_free (islstride);
+   isl_aff_free (aff);
+   isl_set_free (set);
+ 
+diff -ruN src/gcc.orig/gcc/graphite-optimize-isl.c src/gcc/gcc/graphite-optimize-isl.c
+--- src/gcc.orig/gcc/graphite-optimize-isl.c	2014-07-08 14:47:20.000000000 +0400
++++ src/gcc/gcc/graphite-optimize-isl.c	2014-07-08 14:49:57.000000000 +0400
+@@ -252,6 +252,7 @@
+    DimToVectorize can be devided by VectorWidth. The default VectorWidth is
+    currently constant and not yet target specific. This function does not reason
+    about parallelism.  */
++
+ static isl_map *
+ getPrevectorMap(isl_ctx *ctx, int DimToVectorize,
+ 		int ScheduleDimensions,
+@@ -265,8 +266,9 @@
+   isl_aff *Aff;
+   int PointDimension; /* ip */
+   int TileDimension;  /* it */
+-  isl_int VectorWidthMP;
++  isl_val *VectorWidthMP;
+   int i;
++  isl_ctx *ct;
+ 
+   /* assert (0 <= DimToVectorize && DimToVectorize < ScheduleDimensions);*/
+ 
+@@ -296,10 +298,10 @@
+   Aff = isl_aff_zero_on_domain(LocalSpaceRange);
+   Aff = isl_aff_set_constant_si(Aff, VectorWidth);
+   Aff = isl_aff_set_coefficient_si(Aff, isl_dim_in, TileDimension, 1);
+-  isl_int_init(VectorWidthMP);
+-  isl_int_set_si(VectorWidthMP, VectorWidth);
+-  Aff = isl_aff_mod(Aff, VectorWidthMP);
+-  isl_int_clear(VectorWidthMP);
++
++  ct = isl_aff_get_ctx(Aff);
++  VectorWidthMP = isl_val_int_from_si(ct, VectorWidth);
++  Aff = isl_aff_mod_val(Aff, VectorWidthMP);
+   Modulo = isl_pw_aff_zero_set(isl_pw_aff_from_aff(Aff));
+   TilingMap = isl_map_intersect_range(TilingMap, Modulo);
+ 
+@@ -365,7 +367,7 @@
+ 	{
+ 	  for (i = ScheduleDimensions - 1 ;  i >= 0 ; i--)
+ 	    {
+-	      if (isl_band_member_is_zero_distance(Band, i))
++	      if (isl_band_member_is_coincident(Band, i))
+ 		{
+ 		  isl_map *TileMap;
+ 		  isl_union_map *TileUMap;
+@@ -436,6 +438,7 @@
+ {
+ 
+   isl_schedule *schedule;
++  isl_schedule_constraints *schedule_constraints;
+   isl_union_set *domain;
+   isl_union_map *validity, *proximity, *dependences;
+   isl_union_map *schedule_map;
+@@ -454,7 +457,14 @@
+   isl_options_set_schedule_maximize_band_depth(scop->ctx, 1);
+   isl_options_set_schedule_fuse(scop->ctx, ISL_SCHEDULE_FUSE_MIN);
+   isl_options_set_on_error(scop->ctx, ISL_ON_ERROR_CONTINUE);
+-  schedule = isl_union_set_compute_schedule (domain, validity, proximity);
++  schedule_constraints = isl_schedule_constraints_on_domain(domain);
++  schedule_constraints =
++      isl_schedule_constraints_set_proximity(schedule_constraints, proximity);
++  schedule_constraints = isl_schedule_constraints_set_validity(
++      schedule_constraints, isl_union_map_copy(validity));
++  schedule_constraints =
++      isl_schedule_constraints_set_coincidence(schedule_constraints, validity);
++  schedule = isl_schedule_constraints_compute_schedule(schedule_constraints);
+   isl_options_set_on_error(scop->ctx, ISL_ON_ERROR_ABORT);
+ 
+   if (!schedule)
+diff -ruN src/gcc.orig/gcc/graphite-poly.c src/gcc/gcc/graphite-poly.c
+--- src/gcc.orig/gcc/graphite-poly.c	2014-07-08 14:47:21.000000000 +0400
++++ src/gcc/gcc/graphite-poly.c	2014-07-08 14:49:57.000000000 +0400
+@@ -28,6 +28,8 @@
+ #include <isl/constraint.h>
+ #include <isl/ilp.h>
+ #include <isl/aff.h>
++#include <isl/val.h>
++#include <isl/val_gmp.h>
+ #include <cloog/cloog.h>
+ #include <cloog/isl/domain.h>
+ #endif
+@@ -1021,10 +1023,7 @@
+   isl_set *transdomain;
+   isl_space *dc;
+   isl_aff *aff;
+-  isl_int isllb, islub;
+-
+-  isl_int_init (isllb);
+-  isl_int_init (islub);
++  isl_val *isllb, *islub;
+ 
+   /* Map the iteration domain through the current scatter, and work
+      on the resulting set.  */
+@@ -1038,15 +1037,14 @@
+ 
+   /* And find the min/max for that function.  */
+   /* XXX isl check results?  */
+-  isl_set_min (transdomain, aff, &isllb);
+-  isl_set_max (transdomain, aff, &islub);
++  isllb = isl_set_min_val (transdomain, aff);
++  islub = isl_set_max_val (transdomain, aff);
+ 
+-  isl_int_sub (islub, islub, isllb);
+-  isl_int_add_ui (islub, islub, 1);
+-  isl_int_get_gmp (islub, res);
++  islub = isl_val_sub (islub, isllb);
++  islub = isl_val_add_ui (islub, 1);
++  isl_val_get_num_gmp (islub, res);
+ 
+-  isl_int_clear (isllb);
+-  isl_int_clear (islub);
++  isl_val_free (islub);
+   isl_aff_free (aff);
+   isl_set_free (transdomain);
+ }
+diff -ruN src/gcc.orig/gcc/graphite-sese-to-poly.c src/gcc/gcc/graphite-sese-to-poly.c
+--- src/gcc.orig/gcc/graphite-sese-to-poly.c	2014-07-08 14:47:19.000000000 +0400
++++ src/gcc/gcc/graphite-sese-to-poly.c	2014-07-08 14:49:57.000000000 +0400
+@@ -26,7 +26,8 @@
+ #include <isl/union_map.h>
+ #include <isl/constraint.h>
+ #include <isl/aff.h>
+-#include <cloog/cloog.h>
++#include <isl/val.h>
++#include <isl/val_gmp.h>
+ #include <cloog/cloog.h>
+ #include <cloog/isl/domain.h>
+ #endif
+@@ -46,7 +47,6 @@
+ #include "graphite-poly.h"
+ #include "graphite-sese-to-poly.h"
+ 
+-
+ /* Assigns to RES the value of the INTEGER_CST T.  */
+ 
+ static inline void
+@@ -461,13 +461,11 @@
+   int i;
+   int nb_iterators = pbb_dim_iter_domain (pbb);
+   int used_scattering_dimensions = nb_iterators * 2 + 1;
+-  isl_int val;
++  isl_val *val;
+   isl_space *dc, *dm;
+ 
+   gcc_assert (scattering_dimensions >= used_scattering_dimensions);
+ 
+-  isl_int_init (val);
+-
+   dc = isl_set_get_space (pbb->domain);
+   dm = isl_space_add_dims (isl_space_from_domain (dc),
+ 			   isl_dim_out, scattering_dimensions);
+@@ -481,12 +479,10 @@
+ 	  isl_constraint *c = isl_equality_alloc
+ 	      (isl_local_space_from_space (isl_map_get_space (pbb->schedule)));
+ 
+-	  if (0 != isl_aff_get_coefficient (static_sched, isl_dim_in,
+-					    i / 2, &val))
+-	    gcc_unreachable ();
++	  val = isl_aff_get_coefficient_val (static_sched, isl_dim_in, i / 2);
+ 
+-	  isl_int_neg (val, val);
+-	  c = isl_constraint_set_constant (c, val);
++	  val = isl_val_neg (val);
++	  c = isl_constraint_set_constant_val (c, val);
+ 	  c = isl_constraint_set_coefficient_si (c, isl_dim_out, i, 1);
+ 	  pbb->schedule = isl_map_add_constraint (pbb->schedule, c);
+ 	}
+@@ -500,8 +496,6 @@
+ 	}
+     }
+ 
+-  isl_int_clear (val);
+-
+   pbb->transformed = isl_map_copy (pbb->schedule);
+ }
+ 
+@@ -681,12 +675,12 @@
+   isl_local_space *ls = isl_local_space_from_space (isl_space_copy (space));
+   isl_aff *aff = isl_aff_zero_on_domain (ls);
+   isl_set *dom = isl_set_universe (space);
+-  isl_int v;
++  isl_val *v;
++  isl_ctx *ct;
+ 
+-  isl_int_init (v);
+-  isl_int_set_gmp (v, g);
+-  aff = isl_aff_add_constant (aff, v);
+-  isl_int_clear (v);
++  ct = isl_aff_get_ctx (aff);
++  v = isl_val_int_from_gmp (ct, g);
++  aff = isl_aff_add_constant_val (aff, v);
+ 
+   return isl_pw_aff_alloc (dom, aff);
+ }
+@@ -709,18 +703,16 @@
+ 
+ /* Compute pwaff mod 2^width.  */
+ 
++extern isl_ctx *the_isl_ctx;
++
+ static isl_pw_aff *
+ wrap (isl_pw_aff *pwaff, unsigned width)
+ {
+-  isl_int mod;
+-
+-  isl_int_init (mod);
+-  isl_int_set_si (mod, 1);
+-  isl_int_mul_2exp (mod, mod, width);
+-
+-  pwaff = isl_pw_aff_mod (pwaff, mod);
++  isl_val *mod;
+ 
+-  isl_int_clear (mod);
++  mod = isl_val_int_from_ui(the_isl_ctx, width);
++  mod = isl_val_2exp (mod);
++  pwaff = isl_pw_aff_mod_val (pwaff, mod);
+ 
+   return pwaff;
+ }
+@@ -976,11 +968,10 @@
+   isl_space *space;
+   isl_constraint *c;
+   int pos = isl_set_dim (outer, isl_dim_set);
+-  isl_int v;
++  isl_val *v;
+   mpz_t g;
+ 
+   mpz_init (g);
+-  isl_int_init (v);
+ 
+   inner = isl_set_add_dims (inner, isl_dim_set, 1);
+   space = isl_set_get_space (inner);
+@@ -998,8 +989,8 @@
+ 	  (isl_local_space_from_space(isl_space_copy (space)));
+       c = isl_constraint_set_coefficient_si (c, isl_dim_set, pos, -1);
+       tree_int_to_gmp (nb_iters, g);
+-      isl_int_set_gmp (v, g);
+-      c = isl_constraint_set_constant (c, v);
++      v = isl_val_int_from_gmp (the_isl_ctx, g);
++      c = isl_constraint_set_constant_val (c, v);
+       inner = isl_set_add_constraint (inner, c);
+     }
+ 
+@@ -1053,9 +1044,9 @@
+ 	  c = isl_inequality_alloc
+ 	      (isl_local_space_from_space (isl_space_copy (space)));
+ 	  c = isl_constraint_set_coefficient_si (c, isl_dim_set, pos, -1);
+-	  isl_int_set_gmp (v, g);
++	  v = isl_val_int_from_gmp (the_isl_ctx, g);
+ 	  mpz_clear (g);
+-	  c = isl_constraint_set_constant (c, v);
++	  c = isl_constraint_set_constant_val (c, v);
+ 	  inner = isl_set_add_constraint (inner, c);
+ 	}
+       else
+@@ -1078,7 +1069,6 @@
+ 
+   isl_set_free (outer);
+   isl_space_free (space);
+-  isl_int_clear (v);
+   mpz_clear (g);
+ }
+ 
+@@ -1342,17 +1332,15 @@
+       isl_space *space = isl_set_get_space (scop->context);
+       isl_constraint *c;
+       mpz_t g;
+-      isl_int v;
++      isl_val *v;
+ 
+       c = isl_inequality_alloc (isl_local_space_from_space (space));
+       mpz_init (g);
+-      isl_int_init (v);
+       tree_int_to_gmp (lb, g);
+-      isl_int_set_gmp (v, g);
+-      isl_int_neg (v, v);
++      v = isl_val_int_from_gmp (the_isl_ctx, g);
++      v = isl_val_neg (v);
+       mpz_clear (g);
+-      c = isl_constraint_set_constant (c, v);
+-      isl_int_clear (v);
++      c = isl_constraint_set_constant_val (c, v);
+       c = isl_constraint_set_coefficient_si (c, isl_dim_param, p, 1);
+ 
+       scop->context = isl_set_add_constraint (scop->context, c);
+@@ -1363,17 +1351,15 @@
+       isl_space *space = isl_set_get_space (scop->context);
+       isl_constraint *c;
+       mpz_t g;
+-      isl_int v;
++      isl_val *v;
+ 
+       c = isl_inequality_alloc (isl_local_space_from_space (space));
+ 
+       mpz_init (g);
+-      isl_int_init (v);
+       tree_int_to_gmp (ub, g);
+-      isl_int_set_gmp (v, g);
++      v = isl_val_int_from_gmp (the_isl_ctx, g);
+       mpz_clear (g);
+-      c = isl_constraint_set_constant (c, v);
+-      isl_int_clear (v);
++      c = isl_constraint_set_constant_val (c, v);
+       c = isl_constraint_set_coefficient_si (c, isl_dim_param, p, -1);
+ 
+       scop->context = isl_set_add_constraint (scop->context, c);



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