Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Dec 2006 06:31:34 +0100 (CET)
From:      Karel Miklav <karel@lovetemple.net>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        Karel Miklav <karel@lovetemple.net>
Subject:   ports/106656: Patch: lang/gnat-gcc41 does not build with custom bootstrapper
Message-ID:  <200612130531.kBD5VY2P021151@tp.unitedpeople.info>
Resent-Message-ID: <200612130540.kBD5e9FY071772@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         106656
>Category:       ports
>Synopsis:       Patch: lang/gnat-gcc41 does not build with custom bootstrapper
>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 Dec 13 05:40:09 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Karel Miklav
>Release:        FreeBSD 6.2-PRERELEASE i386
>Organization:
>Environment:
System: FreeBSD tp.unitedpeople.info 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE #0: Thu Oct 12 00:18:05 CEST 2006 lino@tp.unitedpeople.info:/usr/obj/usr/src/sys/TPX40 i386
	
>Description:
Bootstrapping with a custom compiler doesn't work.
	
>How-To-Repeat:
Install lang/gnat then try to build this one.
	
>Fix:
Require the binary compiler specified in the port for bootstrapping. Summary of
changes:

 - require specified binary compiler for bootstrapping
 - use recent GCC snapshot
 - some aesthetic changes in the Makefile
 - bump PORTVERSION

The patch follows.

diff -urN /usr/ports/lang/gnat-gcc41/Makefile gnat-gcc41/Makefile
--- /usr/ports/lang/gnat-gcc41/Makefile	Tue Sep 12 12:11:39 2006
+++ gnat-gcc41/Makefile	Wed Dec 13 06:16:10 2006
@@ -8,7 +8,7 @@
 
 PORTNAME=		gnat-gcc
 PORTVERSION=	4.1.2
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=		lang
 MASTER_SITES=	${MASTER_SITE_GCC}
 MASTER_SITE_SUBDIR=	snapshots/${versionstring}
@@ -48,7 +48,7 @@
 
 .include <bsd.port.pre.mk>
 
-gcc_snapshot=	20060901
+gcc_snapshot=	20061201
 versionstring=	${PORTVERSION:C/\.[0-9]*$//}-${gcc_snapshot}
 srcdir=			${WRKDIR}/gcc-${versionstring}
 gcc_suffix=		41
@@ -79,29 +79,22 @@
 USE_LDCONFIG=	${targlib}
 
 # We need an existing GNAT compiler to bootstrap this one.
-have_gnat!=	if ${WHICH} gnatmake > /dev/null 2>&1; then \
-				${ECHO_CMD} "t"; \
-			else \
-				${ECHO_CMD} ""; \
-			fi
-.if empty(have_gnat)
 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
-.endif
 
 pre-everything::
 	@${ECHO_MSG} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} target=${CONFIGURE_TARGET}"
 
 # Append ' [FreeBSD]' to 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"
@@ -114,33 +107,35 @@
 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.
+	@# 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}; \
 	done
-	# Version FSF funding and licensing manuals.
+	@# Version FSF funding and licensing manuals.
 	for mp in ${fsf_mans}; do \
 		${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
-	# Add target libraries and include files to packaging list.
+	@# 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} ; \
+		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 ; \
+			${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.
 	${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
-	cd ${WRKDIR} ; ${SED} -i -e "/PLIST.lib/ r PLIST.lib" ${TMPPLIST}
+	@# 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 /usr/ports/lang/gnat-gcc41/distinfo gnat-gcc41/distinfo
--- /usr/ports/lang/gnat-gcc41/distinfo	Tue Sep 12 23:56:38 2006
+++ gnat-gcc41/distinfo	Wed Dec 13 06:15:46 2006
@@ -1,9 +1,9 @@
-MD5 (gcc-core-4.1-20060901.tar.bz2) = 5b8663c9b042eb5ab626d4c606924fa5
-SHA256 (gcc-core-4.1-20060901.tar.bz2) = 49bc7001a2ddf66795277adf14b129d19eff72a93e80be7e8ad6bad7d5fce2c5
-SIZE (gcc-core-4.1-20060901.tar.bz2) = 14963002
-MD5 (gcc-ada-4.1-20060901.tar.bz2) = 41eea5d77d67adeafa4462685c6262db
-SHA256 (gcc-ada-4.1-20060901.tar.bz2) = 2682cb2caecb726de5333b49f0307e7ca18c9434ff4ae38b7b6e2f8c3e4ef9ef
-SIZE (gcc-ada-4.1-20060901.tar.bz2) = 4627883
-MD5 (gcc-testsuite-4.1-20060901.tar.bz2) = a7ab2fd0c98b49c123fc9c1a12035fe7
-SHA256 (gcc-testsuite-4.1-20060901.tar.bz2) = ae7a81cc2fe55cd52d210a1793efa49b1e695eae5c9a070e7080f2447891fbe0
-SIZE (gcc-testsuite-4.1-20060901.tar.bz2) = 3571090
+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
>Release-Note:
>Audit-Trail:
>Unformatted:



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