ports/113875: [UPDATE] lang/gnat-gcc41 has a new bootstrap compiler

Karel Miklav karel at lovetemple.net
Wed Jun 20 03:50:16 UTC 2007


>Number:         113875
>Category:       ports
>Synopsis:       [UPDATE] lang/gnat-gcc41 has a new bootstrap compiler
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Wed Jun 20 03:50:15 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     Karel Miklav
>Release:        FreeBSD 6.2-STABLE i386
>Organization:
>Environment:
System: FreeBSD tp.unitedpeople.net 6.2-STABLE FreeBSD 6.2-STABLE #0: Sun Jan 21 06:33:02 CET 2007 root at tp.unitedpeople.net:/usr/obj/usr/src/sys/TPX40 i386
	
>Description:
With this update all gnat-gcc4* ports will have a new bootstrap compiler. After that, gnat-gcc34 will be removed. Changes:

 - new bootstrap compiler
 - GCC 4.1.2 release version sources used
 - PORTREVISION bump
 - some reformating to make it look nice in vi
	
>How-To-Repeat:
	
>Fix:
diff -urN gnat-gcc41.orig/Makefile gnat-gcc41/Makefile
--- gnat-gcc41.orig/Makefile	Wed Jun 20 05:12:12 2007
+++ gnat-gcc41/Makefile	Wed Jun 20 05:11:40 2007
@@ -1,141 +1,154 @@
-# ex:ts=4
-# Ports collection makefile for:	gnat-gcc
-# Date created:						22 Jun 2006
-# Whom:								Karel Miklav <karel at lovetemple.net>
+# ex:ts=8
+#
+# Ports collection makefile for: gnat-gcc
+# Date created:		22 Jun 2006
+# Whom:			Karel Miklav <karel at lovetemple.net>
 #
 # $FreeBSD: ports/lang/gnat-gcc41/Makefile,v 1.7 2006/12/16 22:03:10 miwi Exp $
 #
 
 PORTNAME=		gnat-gcc
-PORTVERSION=	4.1.2
-PORTREVISION=	2
+PORTVERSION=		4.1.2
+PORTREVISION=		3
 CATEGORIES=		lang
-MASTER_SITES=	${MASTER_SITE_GCC}
-MASTER_SITE_SUBDIR=	snapshots/${versionstring}
-DISTFILES=		gcc-core-${versionstring}${EXTRACT_SUFX} \
-				gcc-ada-${versionstring}${EXTRACT_SUFX} \
-				gcc-testsuite-${versionstring}${EXTRACT_SUFX}
+MASTER_SITES=		GCC/releases/gcc-${PORTVERSION} \
+			CENKES:boot \
+			http://lovetemple.net/data/:boot
+DISTFILES=		gcc-core-${PORTVERSION}${EXTRACT_SUFX} \
+			gcc-ada-${PORTVERSION}${EXTRACT_SUFX} \
+			gcc-testsuite-${PORTVERSION}${EXTRACT_SUFX} \
+			gnat-gcc41-boot-${boot_stamp}.tbz:boot
 
 MAINTAINER=		karel at lovetemple.net
 COMMENT=		The GNU Ada Compiler system
 
-ONLY_FOR_ARCHS=	i386
+ONLY_FOR_ARCHS=		i386
 
 USE_BZIP2=		yes
 USE_GMAKE=		yes
 USE_ICONV=		yes
-USE_PERL5_BUILD=	yes
+USE_PERL5_BUILD=	yes # Needed for man pages.
 USE_BISON=		yes
 
 CONFLICTS=		gcc-4.1.*
 WRKSRC=			${WRKDIR}/build
 
 MAN1=			cpp${gcc_suffix}.1 \
-				gcc${gcc_suffix}.1 \
-				gcov${gcc_suffix}.1
+			gcc${gcc_suffix}.1 \
+			gcov${gcc_suffix}.1
 MAN7=			${fsf_mans:S/$/${fsf_suffix}.7/}
-NOMANCOMPRESS=	yes	# 5-cur and releng4 problems?
+NOMANCOMPRESS=		yes # XXX 5-cur and releng4 problems?
 INFO=			gcc${gcc_suffix}/cpp \
-				gcc${gcc_suffix}/cppinternals \
-				gcc${gcc_suffix}/gcc \
-				gcc${gcc_suffix}/gccinstall \
-				gcc${gcc_suffix}/gccint \
-				gcc${gcc_suffix}/gnat-style \
-				gcc${gcc_suffix}/gnat_rm \
-				gcc${gcc_suffix}/gnat_ugn_unw
+			gcc${gcc_suffix}/cppinternals \
+			gcc${gcc_suffix}/gcc \
+			gcc${gcc_suffix}/gccinstall \
+			gcc${gcc_suffix}/gccint \
+			gcc${gcc_suffix}/gnat-style \
+			gcc${gcc_suffix}/gnat_rm \
+			gcc${gcc_suffix}/gnat_ugn_unw
 
-LATEST_LINK=	${PORTNAME}${gcc_suffix}
+LATEST_LINK=		${PORTNAME}${gcc_suffix}
 
 .include <bsd.port.pre.mk>
 
-gcc_snapshot=	20061201
-versionstring=	${PORTVERSION:C/\.[0-9]*$//}-${gcc_snapshot}
-srcdir=			${WRKDIR}/gcc-${versionstring}
+srcdir=			${WRKDIR}/gcc-${PORTVERSION}
 gcc_suffix=		41
 fsf_mans=		fsf-funding gfdl gpl
 fsf_suffix=		-${PORTNAME}${gcc_suffix}
 targlib=		${PREFIX}/lib/gcc/${CONFIGURE_TARGET}/${PORTVERSION}
+gcc_link=		${PREFIX}/bin/gcc${gcc_suffix}/gcc
+boot_stamp=		${ARCH}-freebsd-${OSREL:C/\.[0-9.]*//}
+check_target=		check # XXX
 
-PATCH_WRKSRC=	${srcdir}
+PATCH_WRKSRC=		${srcdir}
 
-GNU_CONFIGURE=	yes
+GNU_CONFIGURE=		yes
 CONFIGURE_SCRIPT=	../${srcdir:C/${WRKDIR}//}/configure
-CONFIGURE_ARGS=	--enable-languages="c,ada" \
-				--disable-nls \
-				--with-system-zlib \
-				--with-libiconv-prefix=${LOCALBASE} \
-				--program-suffix=${gcc_suffix} \
-				--bindir=${PREFIX}/bin/gcc${gcc_suffix} \
-				--libdir=${targlib} \
-				--infodir=${PREFIX}/${INFO_PATH}/gcc${gcc_suffix}
+CONFIGURE_ARGS=		--enable-languages="c,ada" \
+			--disable-nls \
+			--with-system-zlib \
+			--with-libiconv-prefix=${LOCALBASE} \
+			--program-suffix=${gcc_suffix} \
+			--bindir=${PREFIX}/bin/gcc${gcc_suffix} \
+			--libdir=${targlib} \
+			--infodir=${PREFIX}/${INFO_PATH}/gcc${gcc_suffix}
 
 ALL_TARGET=		bootstrap-lean
 MAKE_ENV+=		MAKEINFOFLAGS="--no-split" PTHREAD_LIBS=${PTHREAD_LIBS}
 
 PLIST_SUB=		GCC_VER=${PORTVERSION} \
-				GNU_HOST=${CONFIGURE_TARGET} \
-				SUFFIX=${gcc_suffix}
+			GNU_HOST=${CONFIGURE_TARGET} \
+			SUFFIX=${gcc_suffix}
+
+USE_LDCONFIG=		${targlib}
 
-USE_LDCONFIG=	${targlib}
+# Prepare environment for the bootstrap compiler.
+build_env=		CC=${WRKDIR}/boot/bin/gcc \
+			PTHREAD_LIBS=${PTHREAD_LIBS} \
+			PATH=${WRKDIR}/boot/bin:${WRKDIR}/boot/libexec:${PATH}
 
-# We need an existing GNAT compiler to bootstrap this one.
-BUILD_DEPENDS+=	${LOCALBASE}/bin/gcc34/gcc34:${PORTSDIR}/lang/gnat-gcc34
-CONFIGURE_ENV+=	PATH=${LOCALBASE}/bin/gcc34:${PATH} CC=${LOCALBASE}/bin/gcc34/gcc34
-MAKE_ENV+=		PATH=${LOCALBASE}/bin/gcc34:${PATH} CC=${LOCALBASE}/bin/gcc34/gcc34
+CONFIGURE_ENV+=		${build_env}
+MAKE_ENV+=		${build_env}
 
 pre-everything::
-	@${ECHO_MSG} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} target=${CONFIGURE_TARGET}"
+	@${ECHO_MSG} -n "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} "
+	@${ECHO_MSG}     "${OSREL} target=${CONFIGURE_TARGET}"
 
-# Append ' [FreeBSD]' to gcc version string.
+# Append ' [FreeBSD]' to the gcc version string.
 post-patch:
-	${REINPLACE_CMD} -e 's|\(const char version_string.*\)";|\1 [FreeBSD]";|' \
+	@${REINPLACE_CMD} \
+	    -e 's|\(const char version_string.*\)";|\1 [FreeBSD]";|' \
 	    ${srcdir}/gcc/version.c
 
 pre-configure:
 	cd ${srcdir} ; contrib/gcc_update --touch
-	${RM} -f ${srcdir}/gcc/*/*.info*
-	${MKDIR} ${CONFIGURE_WRKSRC}
+	@${RM} -f ${srcdir}/gcc/*/*.info*
+	@${MKDIR} ${CONFIGURE_WRKSRC}
 
 post-build:
-	@${ECHO_MSG} "Consider running 'make check' before 'make install', especially"
-	@${ECHO_MSG} "if you have not performed this build on -STABLE or -CURRENT."
-	@${ECHO_MSG} "This assumes that you have the dejagnu port installed."
+	@${ECHO_MSG} -n "Consider running 'make check' before 'make install', "
+	@${ECHO_MSG} -n "especially if you have not performed this build on "
+	@${ECHO_MSG} -n "-STABLE or -CURRENT. This assumes that you have "
+	@${ECHO_MSG}    "dejagnu and autogen ports installed."
 
 check: build
-	cd ${WRKSRC}; export RUNTESTFLAGS='--target_board ''unix{-pthread}'''; ${GMAKE} -sk check
+	cd ${WRKSRC} && \
+	export RUNTESTFLAGS='--target_board ''unix{-pthread}''' && \
+	${GMAKE} -sk ${check_target}
 
 post-install:
-	${LN} -s ${PREFIX}/bin/gcc${gcc_suffix}/gcc${gcc_suffix} \
-		${PREFIX}/bin/gcc${gcc_suffix}/gcc
-	@# Man pages can only be generated if Perl >= 5.6 is installed; fake them otherwise.
+	# Create a gcc link.
+	${RM} -f ${gcc_link}
+	${LN} -s ${PREFIX}/bin/gcc${gcc_suffix}/gcc${gcc_suffix} ${gcc_link}
+	# Man pages can only be generated if Perl >= 5.6 is installed; fake them otherwise.
 	for mp in ${_MANPAGES}; do \
-		${TEST} -e $${mp} || ${TOUCH} ${TOUCH_FLAGS} $${mp}; \
+	    ${TEST} -e $${mp} || ${TOUCH} ${TOUCH_FLAGS} $${mp}; \
 	done
-	@# Version FSF funding and licensing manuals.
+	# Version FSF funding and licensing manuals. XXX Fix before it happens!
 	for mp in ${fsf_mans}; do \
-		${MV} -f ${PREFIX}/man/man7/$${mp}.7 \
-			${PREFIX}/man/man7/$${mp}${fsf_suffix}.7; \
+	    ${MV} -f ${PREFIX}/man/man7/$${mp}.7 \
+	        ${PREFIX}/man/man7/$${mp}${fsf_suffix}.7; \
 	done
-	@# Save the runaway header.
+	# Save the runaway header.
 	${MV} -f ${PREFIX}/include/mf-runtime.h \
 	         ${targlib}/gcc/${CONFIGURE_TARGET}/${PORTVERSION}/include
-	@# Remove libtool library files.
+	# Remove libtool library files.
 	${RM} -f ${targlib}/*.la
-	@# Prepare a temporary list of installed libraries and include files.
+	# Prepare a temporary list of installed libraries and include files.
 	${RM} -f ${WRKDIR}/PLIST.lib
 	for d in ${targlib:S/^${PREFIX}\///} ${targlib:S/^${PREFIX}\///:S/lib/libexec/}; do \
-		cd ${PREFIX}; \
-		if [ -d $${d} ]; then \
-			${FIND} $${d} -type f -o -type l >>${WRKDIR}/PLIST.lib; \
-			${FIND} $${d} -type d | ${SORT} -r | ${SED} -e 's/^/@dirrm /g' >>${WRKDIR}/PLIST.lib; \
-		fi; \
+	    cd ${PREFIX}; \
+	    if [ -d $${d} ]; then \
+	        ${FIND} $${d} -type f -o -type l >>${WRKDIR}/PLIST.lib; \
+	        ${FIND} $${d} -type d | ${SORT} -r | ${SED} -e 's/^/@dirrm /g' >>${WRKDIR}/PLIST.lib; \
+	    fi; \
 	done
-	@# Following directories should be removed on deinstal if empty. Add them to the temporary list.
+	# Following directories should be removed on deinstal if empty. Add them to the temporary list.
 	${ECHO_CMD} "@unexec ${RMDIR} %D/lib/gcc/${CONFIGURE_TARGET} 2>/dev/null || true" >> ${WRKDIR}/PLIST.lib
 	${ECHO_CMD} "@unexec ${RMDIR} %D/lib/gcc 2>/dev/null || true" >> ${WRKDIR}/PLIST.lib
 	${ECHO_CMD} "@unexec ${RMDIR} %D/libexec/gcc/${CONFIGURE_TARGET} 2>/dev/null || true" >> ${WRKDIR}/PLIST.lib
 	${ECHO_CMD} "@unexec ${RMDIR} %D/libexec/gcc 2>/dev/null || true" >> ${WRKDIR}/PLIST.lib
-	@# Insert the temporary list in the packing list.
+	# Insert the temporary list in the packing list.
 	cd ${WRKDIR}; ${SED} -i -e "/PLIST.lib/ r PLIST.lib" ${TMPPLIST}
 
 .include <bsd.port.post.mk>
diff -urN gnat-gcc41.orig/distinfo gnat-gcc41/distinfo
--- gnat-gcc41.orig/distinfo	Wed Jun 20 05:12:12 2007
+++ gnat-gcc41/distinfo	Wed Jun 20 05:11:40 2007
@@ -1,9 +1,20 @@
-MD5 (gcc-core-4.1-20061201.tar.bz2) = 2fc712263dfa9c503386692664212443
-SHA256 (gcc-core-4.1-20061201.tar.bz2) = 9dbc1debe8c27f2a107f237df4080fca0a28d27089794a3a174fbee260479c02
-SIZE (gcc-core-4.1-20061201.tar.bz2) = 14905058
-MD5 (gcc-ada-4.1-20061201.tar.bz2) = af671cac304a15be3164360acdf96566
-SHA256 (gcc-ada-4.1-20061201.tar.bz2) = 347b2246249a2adfc30cd24bef14578870ad03dd03e9c71e2ae3382626540657
-SIZE (gcc-ada-4.1-20061201.tar.bz2) = 4629808
-MD5 (gcc-testsuite-4.1-20061201.tar.bz2) = 89463a383ad7be1e38a830c10696953e
-SHA256 (gcc-testsuite-4.1-20061201.tar.bz2) = ff84ba7b1a5f0b67c328c093fa172c55042e6847cd25cab3cb7d2433bd4e7bb7
-SIZE (gcc-testsuite-4.1-20061201.tar.bz2) = 3602869
+MD5 (gcc-core-4.1.2.tar.bz2) = 2af3fb599635219171c6ae1f3034888a
+SHA256 (gcc-core-4.1.2.tar.bz2) = 7be9c5df8000ae35d0928f0a254bfb5e8478cad5e5e57fd07820530c03b3711d
+SIZE (gcc-core-4.1.2.tar.bz2) = 17485561
+MD5 (gcc-ada-4.1.2.tar.bz2) = 37fe23fcc8a8388af01826ed8e64f521
+SHA256 (gcc-ada-4.1.2.tar.bz2) = 703125c4d033c666b52db2aeee0a05e3461467fe8ff6e5e588b5cdb8c6928bb0
+SIZE (gcc-ada-4.1.2.tar.bz2) = 4589609
+MD5 (gcc-testsuite-4.1.2.tar.bz2) = 4a5fb1318917233aa508ef2869ce87ee
+SHA256 (gcc-testsuite-4.1.2.tar.bz2) = 515bd9bcee7bf59a3b74133d91e3cefc6d3a80f7ec347cd94446262d25824a68
+SIZE (gcc-testsuite-4.1.2.tar.bz2) = 3604451
+MD5 (gnat-gcc41-boot-i386-freebsd-4.tbz) = a9848cbeb6a0dca57cbe312e1546b79e
+SIZE (gnat-gcc41-boot-i386-freebsd-4.tbz) = 11508394
+MD5 (gnat-gcc41-boot-i386-freebsd-5.tbz) = e439eaefcafdf6056896a16a89671a9e
+SHA256 (gnat-gcc41-boot-i386-freebsd-5.tbz) = 16b00882f06b4c3813a379ad6c089c3c70c17cdcbb4d07ca33d390c906b5dd16
+SIZE (gnat-gcc41-boot-i386-freebsd-5.tbz) = 11503432
+MD5 (gnat-gcc41-boot-i386-freebsd-6.tbz) = 155c930f11f04f04c32f5f9371649352
+SHA256 (gnat-gcc41-boot-i386-freebsd-6.tbz) = 7b3eae94a9dadf901ed55bf660f24f34ecb19f2d48245fe352a6137366dc5fac
+SIZE (gnat-gcc41-boot-i386-freebsd-6.tbz) = 11840609
+MD5 (gnat-gcc41-boot-i386-freebsd-7.tbz) = 3d35eb856a515fb2aeb665c8a81e7a95
+SHA256 (gnat-gcc41-boot-i386-freebsd-7.tbz) = e8bab1a79c372dda9abc40129c6ee8dfd72503430e865bec8396d491e78a292f
+SIZE (gnat-gcc41-boot-i386-freebsd-7.tbz) = 11606581


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list