From patchwork Sat May 21 16:33:19 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joseph Myers X-Patchwork-Id: 96699 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id EBE2BB71AD for ; Sun, 22 May 2011 02:33:41 +1000 (EST) Received: (qmail 29816 invoked by alias); 21 May 2011 16:33:39 -0000 Received: (qmail 29804 invoked by uid 22791); 21 May 2011 16:33:35 -0000 X-SWARE-Spam-Status: No, hits=-1.6 required=5.0 tests=AWL, BAYES_00, TW_BF, TW_BJ, TW_GT, TW_IB, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (38.113.113.100) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 21 May 2011 16:33:21 +0000 Received: (qmail 22936 invoked from network); 21 May 2011 16:33:20 -0000 Received: from unknown (HELO digraph.polyomino.org.uk) (joseph@127.0.0.2) by mail.codesourcery.com with ESMTPA; 21 May 2011 16:33:20 -0000 Received: from jsm28 (helo=localhost) by digraph.polyomino.org.uk with local-esmtp (Exim 4.72) (envelope-from ) id 1QNp79-0004kK-7E for gcc-patches@gcc.gnu.org; Sat, 21 May 2011 16:33:19 +0000 Date: Sat, 21 May 2011 16:33:19 +0000 (UTC) From: "Joseph S. Myers" To: gcc-patches@gcc.gnu.org Subject: Remove separate tarballs (was: Re: objc patch (was Re: Problem to install GCC 4.6.0 with Objective-C language)) In-Reply-To: <1305980537.775713961@www2.webmail.us> Message-ID: References: <1305980537.775713961@www2.webmail.us> MIME-Version: 1.0 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org On Sat, 21 May 2011, Nicola Pero wrote: > As a consequence, GTFILES is different depending on whether > ${srcdir}/gcc/cp/ exists or not. If it exists, usually the cp gtfiles > come before the objc ones (due to alphabetical ordering by the shell, > I'd guess ?), and the cp gtfiles contain c-family/c-common-objc.h, which > is then processed before objc/objc-act.h. If it doesn't exist, that > doesn't happen, and it stops working. :-( Similar issues can exist with option handling (.opt files for all languages are processed whether the languages are enabled or not, meaning the flags for an option, or its existence for any mistaken uses in language-independent code, could depend on what source directories are present). It's still desirable to avoid such unexpected dependencies, but what do people think of eliminating the separate tarballs for snapshots and 4.7 and later releases, so that people need to go to more effort to get such not-widely-tested configurations with some directories missing? I don't think the disk space reasons that may have applied for having smaller tarballs in 1997 are still particularly relevant. linux-2.6.39.tar.bz2, for example, is 76096559 bytes, bigger than gcc-4.7-20110514.tar.bz2 at 68048542 bytes, and the Linux kernel only has monolithic tarballs. 2011-05-21 Joseph Myers * gcc_release (adjust_dirs, maybe_build_tarfile): Remove. (build_tarfiles): Don't build separate files for languages and core. (build_diffs): Only build one set of diffs. (announce_snapshot): Only announce one tar file. (ADA_DIRS, CPLUSPLUS_DIRS, FORTRAN95_DIRS, GO_DIRS, JAVA_DIRS, OBJECTIVEC_DIRS, TESTSUITE_DIRS): Remove. Don't adjust names relative to WORKING_DIRECTORY. Index: gcc_release =================================================================== --- gcc_release (revision 173995) +++ gcc_release (working copy) @@ -9,7 +9,7 @@ # Contents: # Script to create a GCC release. # -# Copyright (c) 2001, 2002, 2006, 2009, 2010 Free Software Foundation. +# Copyright (c) 2001, 2002, 2006, 2009, 2010, 2011 Free Software Foundation. # # This file is part of GCC. # @@ -89,16 +89,6 @@ error "Could not change directory to $1" } -# Each of the arguments is a directory name, relative to the top -# of the source tree. Return another name for that directory, relative -# to the working directory. - -adjust_dirs() { - for x in $@; do - echo `basename ${SOURCE_DIRECTORY}`/$x - done -} - # Build the source tree that will be the basis for the release # in ${WORKING_DIRECTORY}/gcc-${RELEASE}. @@ -247,19 +237,6 @@ FILE_LIST="${FILE_LIST} ${TARFILE}" } -# Build a single tarfile if any of the directories listed exist, -# but not if none of them do (because that component doesn't exist -# on this branch). -maybe_build_tarfile() { - dest=$1 - shift - if [ $# != 0 -a -d "$1" ]; then - build_tarfile "$dest" "$@" - else - echo "Not building $dest tarfile" - fi -} - # Build the various tar files for the release. build_tarfiles() { @@ -275,24 +252,6 @@ # Build one huge tarfile for the entire distribution. build_tarfile gcc-${RELEASE} `basename ${SOURCE_DIRECTORY}` - - # Now, build one for each of the languages. - maybe_build_tarfile gcc-ada-${RELEASE} ${ADA_DIRS} - maybe_build_tarfile gcc-g++-${RELEASE} ${CPLUSPLUS_DIRS} - maybe_build_tarfile gcc-fortran-${RELEASE} ${FORTRAN95_DIRS} - maybe_build_tarfile gcc-go-${RELEASE} ${GO_DIRS} - maybe_build_tarfile gcc-java-${RELEASE} ${JAVA_DIRS} - maybe_build_tarfile gcc-objc-${RELEASE} ${OBJECTIVEC_DIRS} - maybe_build_tarfile gcc-testsuite-${RELEASE} ${TESTSUITE_DIRS} - - # The core is everything else. - EXCLUDES="" - for x in ${ADA_DIRS} ${CPLUSPLUS_DIRS} ${FORTRAN95_DIRS}\ - ${GO_DIRS} ${JAVA_DIRS} ${OBJECTIVEC_DIRS} ${TESTSUITE_DIRS}; do - EXCLUDES="${EXCLUDES} --exclude $x" - done - build_tarfile gcc-core-${RELEASE} ${EXCLUDES} \ - `basename ${SOURCE_DIRECTORY}` } # Build .gz files. @@ -310,7 +269,7 @@ old_vers=${old_file%.tar.bz2} old_vers=${old_vers#gcc-} inform "Building diffs against version $old_vers" - for f in gcc gcc-ada gcc-g++ gcc-fortran gcc-go gcc-java gcc-objc gcc-testsuite gcc-core; do + for f in gcc; do old_tar=${old_dir}/${f}-${old_vers}.tar.bz2 new_tar=${WORKING_DIRECTORY}/${f}-${RELEASE}.tar.bz2 if [ ! -e $old_tar ]; then @@ -435,15 +394,7 @@ " > ${SNAPSHOT_INDEX} - snapshot_print gcc-${RELEASE}.tar.bz2 "Complete GCC (includes all of below)" - snapshot_print gcc-core-${RELEASE}.tar.bz2 "C front end and core compiler" - snapshot_print gcc-ada-${RELEASE}.tar.bz2 "Ada front end and runtime" - snapshot_print gcc-fortran-${RELEASE}.tar.bz2 "Fortran front end and runtime" - snapshot_print gcc-g++-${RELEASE}.tar.bz2 "C++ front end and runtime" - snapshot_print gcc-go-${RELEASE}.tar.bz2 "Go front end and runtime" - snapshot_print gcc-java-${RELEASE}.tar.bz2 "Java front end and runtime" - snapshot_print gcc-objc-${RELEASE}.tar.bz2 "Objective-C front end and runtime" - snapshot_print gcc-testsuite-${RELEASE}.tar.bz2 "The GCC testsuite" + snapshot_print gcc-${RELEASE}.tar.bz2 "Complete GCC" echo \ "Diffs from "${BRANCH}"-"${LAST_DATE}" are available in the diffs/ subdirectory. @@ -543,16 +494,6 @@ # The directory that will contain the GCC sources. SOURCE_DIRECTORY="" -# The directories that should be part of the various language-specific -# tar files. These are all relative to the top of the source tree. -ADA_DIRS="gcc/ada libada gnattools" -CPLUSPLUS_DIRS="gcc/cp libstdc++-v3" -FORTRAN95_DIRS="gcc/fortran libgfortran" -GO_DIRS="gcc/go libgo libffi" -JAVA_DIRS="gcc/java libjava libffi boehm-gc" -OBJECTIVEC_DIRS="gcc/objc gcc/objcp libobjc" -TESTSUITE_DIRS="gcc/testsuite" - # Non-zero if this is the final release, rather than a prerelease. FINAL=0 @@ -690,16 +631,6 @@ WORKING_DIRECTORY="${DESTINATION}/gcc-${RELEASE}" SOURCE_DIRECTORY="${WORKING_DIRECTORY}/gcc-${RELEASE}" -# Recompute the names of all the language-specific directories, -# relative to the WORKING_DIRECTORY. -ADA_DIRS=`adjust_dirs ${ADA_DIRS}` -CPLUSPLUS_DIRS=`adjust_dirs ${CPLUSPLUS_DIRS}` -FORTRAN95_DIRS=`adjust_dirs ${FORTRAN95_DIRS}` -GO_DIRS=`adjust_dirs ${GO_DIRS}` -JAVA_DIRS=`adjust_dirs ${JAVA_DIRS}` -OBJECTIVEC_DIRS=`adjust_dirs ${OBJECTIVEC_DIRS}` -TESTSUITE_DIRS=`adjust_dirs ${TESTSUITE_DIRS}` - # Set up SVNROOT. if [ $LOCAL -eq 0 ]; then SVNROOT="svn+ssh://${SVN_USERNAME}@${SVN_SERVER}${SVN_REPOSITORY}"