[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Condor-devel] debian support
- Date: Wed, 25 Oct 2006 04:13:43 +0200
- From: guillaume pernot <gpernot@xxxxxxxxxxx>
- Subject: Re: [Condor-devel] debian support
hi,
Le mardi 24 octobre 2006 23:04, Peter Keller a écrit :
> Hello,
>
> On Tue, Oct 24, 2006 at 10:45:57PM +0200, guillaume pernot wrote:
> > i'll try to make is as good as possible... i'm starting with patching
glibc so
> > that it compiles with gcc-4.0.3. i will see where that may lead...
>
> If you can make that happen in a reasonable amount of time, then much
> of the difficulty of performing the full port of Condor will have been
> avoided. Then you only have to make sure the gcc and c++ runtime stuff
> still continues to work properly. If the configure script detects the
> files it needs from gcc, then probably everything will be ok. I say
> probably because doing full ports of Condor is more of a discovery
> process instead of a list of work to accomplish.
great.
the enclosed patch make it happens : it builds glibc-2.3.2.27.9.7 with
gcc-4.0.3.
there is mainly syntaxic corrections, some backports from glibc-2.4
(malloc/obstack.[ch]), a bit of autoconf and some black magic
(-fno-unit-at-a-time in glibc-2.3.2.27.9.7/csu/Makefile).
patches are applied unconditionnaly. that's bad. we should at least check for
gcc > 3.4 in build_glibc-2.3.2.27.9.7...
so, "probably everything will be ok"... (i hope so ;) )
i don't understand yet fully how condor is hooking glibc, so maybe there is
some things that don't work... usual suspect may be c_stubs/gconv_stubs.c...
i'll check further tomorrow...
enclosed patch is the full diff against condor 6.8.2
regards,
--
guillaume pernot
http://www.praksys.org - Midi-Pyrénées et Aquitaine
Membre du réseau Libre Entreprise
GPG fingerprint : D356 5318 CE52 64C9 0CEF
=== added file 'DOC'
--- DOC 1970-01-01 00:00:00 +0000
+++ DOC 2006-10-22 12:00:34 +0000
@@ -0,0 +1,7 @@
+The documentation for Condor can be found on the World Wide Web at:
+
+http://www.cs.wisc.edu/condor/manual
+
+At that web site, you will find both an on-line version of manual and
+directions for downloading your own copy in a variety of formats.
+
=== added file 'README'
--- README 1970-01-01 00:00:00 +0000
+++ README 2006-10-22 12:00:34 +0000
@@ -0,0 +1,35 @@
+README for Condor
+
+Please read the file LICENSE.TXT before proceeding. Installation and
+use of Condor is acknowledgement that you have read and agree to the
+terms listed in the LICENSE.TXT.
+
+This directory contains the following files:
+
+DOC - file containing directions for where to find the
+ Condor documentation
+INSTALL - instructions on how to install Condor on your machines
+LICENSE.TXT - by installing Condor, you agree to the contents of
+ the LICENSE.TXT file
+README - this file
+condor_configure - perl script to install and configure Condor (new method)
+condor_install - perl script to install and configure Condor (old method)
+examples - directory containing C, Fortran and C++ example
+ programs to run with Condor
+release.tar - tar file of the "release directory", which contains
+ the Condor binaries and libraries
+
+A complete manual for Condor is available on the World Wide Web at
+http://www.cs.wisc.edu/condor/manual/. You can also find various
+papers, publications and research about Condor on the web page, at
+http://www.cs.wisc.edu/condor.
+
+Source is no longer being distributed for Condor, so there are no
+instructions for compiling. Please go to the Condor home page,
+http://www.cs.wisc.edu/condor to find binaries for all major UNIX
+operating systems, Windows, and Mac OSX. If you would like source to
+Condor, please contact the Condor team directly at
+condor-admin@xxxxxxxxxxxx
+
+If you have any problems, questions, or bugs, please send them to
+condor-admin@xxxxxxxxxxxx
=== added file 'config/LINUX_DEBIAN.cf'
--- config/LINUX_DEBIAN.cf 1970-01-01 00:00:00 +0000
+++ config/LINUX_DEBIAN.cf 2006-10-24 10:13:44 +0000
@@ -0,0 +1,3 @@
+/* Things specific to LINUX_DEBIAN machines */
+
+/* GLIBC_DIR = /usr/lib */
=== added directory 'debian'
=== added file 'debian/CREDITS'
--- debian/CREDITS 1970-01-01 00:00:00 +0000
+++ debian/CREDITS 2006-09-29 11:45:53 +0000
@@ -0,0 +1,12 @@
+This software is developed by the Condor team:
+
+condor-admin@xxxxxxxxxxx
+
+Work on this package was done by:
+
+Peter Troeger <peter.troeger@xxxxxxxxxxxxxxxxxx>
+Andreas Hirczy <ahi@xxxxxxxxxxxxxxxxx>.
+
+Significant ideas and help for packaging have been contributed by:
+
+Martin v. Loewis <martin.vonloewis@xxxxxxxxxxxxxxxxxx>
=== added file 'debian/README.Debian'
--- debian/README.Debian 1970-01-01 00:00:00 +0000
+++ debian/README.Debian 2006-09-29 11:45:53 +0000
@@ -0,0 +1,18 @@
+Condor for Debian
+-----------------
+
+Since NO SOURCE CODE is currently available, this package is NON FREE
+according to the DFSG.
+
+This debian package is highly experimental, please tell us your experiences.
+
+The Debian config file template bases on condor_config.generic from the Condor package.
+Old config files in /etc/condor/ are kept in any case, so if you update your installation
+to a new version you could miss some new or changed config file parameters.
+
+The original LICENCE.TXT file is contained in the copyright file.
+
+This Debian package is based on the initial work of Andreas Hirczy <ahi@xxxxxxxxxxxxxxxxx>.
+I also would like to thank Martin v. Loewis <martin.vonloewis@xxxxxxxxxxxxxxxxxx> for his continuous support.
+
+ -- Peter Troeger <peter.troeger@xxxxxxxxxxxxxxxxxx>
=== added file 'debian/changelog'
--- debian/changelog 1970-01-01 00:00:00 +0000
+++ debian/changelog 2006-10-23 21:47:26 +0000
@@ -0,0 +1,149 @@
+condor (6.8.2-2) condor; urgency=low
+
+ * use libc shared objects
+
+ -- guillaume pernot <gpernot@xxxxxxxxxxx> Mon, 23 Oct 2006 23:47:23 +0200
+
+condor (6.8.2-1) condor; urgency=low
+
+ * initial praksys release
+
+ -- guillaume pernot <gpernot@xxxxxxxxxxx> Sun, 22 Oct 2006 12:28:10 +0200
+
+condor (6.8.1-1) unstable; urgency=low
+
+ * Update to stable upstream version 6.8.1
+
+ -- Peter Troeger <peter.troeger@xxxxxxxxxxxxxxxxxx> Thu, 3 Oct 2006 11:27:00 +0100
+
+condor (6.8.0-1) unstable; urgency=low
+
+ * Update to stable upstream version 6.8.0
+
+ -- Peter Troeger <peter.troeger@xxxxxxxxxxxxxxxxxx> Thu, 27 Jul 2006 11:27:00 +0100
+
+condor (6.7.20-1) unstable; urgency=low
+
+ * Update to experimental version 6.7.20
+
+ -- Peter Troeger <peter.troeger@xxxxxxxxxxxxxxxxxx> Tue, 27 Jun 2006 11:27:00 +0100
+
+condor (6.7.19-1) unstable; urgency=low
+
+ * Update to experimental version 6.7.19
+
+ -- Peter Troeger <peter.troeger@xxxxxxxxxxxxxxxxxx> Sat, 18 Mai 2006 11:27:00 +0100
+
+condor (6.7.17-1) unstable; urgency=low
+
+ * Update to experimental version 6.7.17
+
+ -- Peter Troeger <peter.troeger@xxxxxxxxxxxxxxxxxx> Sat, 18 Mar 2006 11:27:00 +0100
+
+condor (6.7.16-1) unstable; urgency=low
+
+ * Update to experimental version 6.7.16
+
+ -- Peter Troeger <peter.troeger@xxxxxxxxxxxxxxxxxx> Wed, 9 Feb 2006 11:27:00 +0100
+
+condor (6.7.14-1) unstable; urgency=low
+
+ * Update to experimental version 6.7.14
+
+ -- Peter Troeger <peter.troeger@xxxxxxxxxxxxxxxxxx> Wed, 19 Dec 2005 11:27:00 +0100
+
+condor (6.7.13-2) unstable; urgency=low
+
+ * Added DEBCONF query for RESERVED_MEMORY (low priority)
+
+ -- Peter Troeger <peter.troeger@xxxxxxxxxxxxxxxxxx> Wed, 17 Nov 2005 11:27:00 +0100
+
+condor (6.7.13-1) unstable; urgency=low
+
+ * Update to experimental upstream version 6.7.13
+ * Fixed build process to support ia64 release
+
+ -- Peter Troeger <peter.troeger@xxxxxxxxxxxxxxxxxx> Wed, 16 Nov 2005 11:27:00 +0100
+
+condor (6.7.12-1) unstable; urgency=low
+
+ * Update to experimental upstream version 6.7.12
+
+ -- Peter Troeger <peter.troeger@xxxxxxxxxxxxxxxxxx> Wed, 29 Sep 2005 11:27:00 +0100
+
+condor (6.7.6-1) unstable; urgency=low
+
+ * Update to experimental upstream version 6.7.6
+ * added lib/gt4 to debian/rules
+ * Adopted GT3, STORK and CREDD configuration from condor_configure
+
+ -- Peter Troeger <peter.troeger@xxxxxxxxxxxxxxxxxx> Wed, 23 Mar 2005 11:27:00 +0100
+
+condor (6.7.2-2) unstable; urgency=low
+
+ * added check to avoid the 'adduser' command when the account already exists (thanks to Dan Christensen)
+ * Condor 6.7.2 places the rsh binary in /usr/libexec, which breaks debian policy; now stored in /usr/lib/condor
+ * Corrected the rules file so that all packaging takes place in the debian/ directory, building should now work correctly
+ with an original condor tgz file
+
+ -- Peter Troeger <peter.troeger@xxxxxxxxxxxxxxxxxx> Mon, 29 Nov 2004 11:35:55 +0100
+
+condor (6.7.2-1) unstable; urgency=low
+
+ * Update to experimental upstream version 6.7.2
+
+ -- Peter Troeger <peter.troeger@xxxxxxxxxxxxxxxxxx> Thu, 7 Oct 2004 12:00:00 +0200
+
+condor (6.7.1-2) unstable; urgency=low
+
+ * Added call to condor_init for the creation of a missing local config file (Thanks to Andreas Hirczy)
+
+ -- Peter Troeger <peter.troeger@xxxxxxxxxxxxxxxxxx> Mon, 27 Sep 2004 11:35:00 +0200
+
+condor (6.7.1-1) unstable; urgency=low
+
+ * Update to experimental upstream version 6.7.1
+ * Introduction of DEBCONF configuration
+ * corrected condor system user addition and deletion
+ * integrated workaround for memory detection problem with Linux 2.6 kernel
+ * corrected soft links for condor binaries
+
+ -- Peter Troeger <peter.troeger@xxxxxxxxxxxxxxxxxx> Thu, 26 Aug 2004 21:00:00 +0200
+
+condor (6.7.0-1) unstable; urgency=low
+
+ * Maintainer change
+ * Update to experimental upstream version 6.7.0
+ * added lib/gt3 directory to debian/rules
+ * removed debian/ex.* and debian/*.ex files from source package
+ * JAR and CLASS files placed in in /usr/share/java according to Debian Java policies
+ (see http://tumu.home.mindspring.com/java/debian/policies.html)
+ * x-bit for java files removed
+ * correction of authors file (lintian error)
+ * Condor LICENCE.TXT removed, since it is contained in the copyright file (lintian error)
+ * check for condor-user home directory removed from init script, avoids error message during startup
+ * replaced all hardlinks with softlinks (lintian error)
+
+ -- Peter Troeger <peter.troeger@xxxxxxxxxxxxxxxxxx> Wed, 4 Aug 2004 13:24:44 +0200
+
+condor (6.6.3-1) unstable; urgency=low
+
+ * Update to new upstream version 6.6.3
+
+ -- Andreas Hirczy <ahi@xxxxxxxxxxxxxxxxx> Sun, 11 Apr 2004 11:33:17 +0200
+
+condor (6.6.2-1) unstable; urgency=low
+
+ * Update to new upstream version 6.6.2
+ * init skript: changed shutdown sequenze - killall
+ * cleanup: init, README.Debian postinst
+
+ -- Andreas Hirczy <ahi@xxxxxxxxxxxxxxxxx> Tue, 23 Mar 2004 19:35:02 +0100
+
+condor (6.6.1-1) unstable; urgency=low
+
+ * Initial Release.
+
+ -- Andreas Hirczy <ahi@xxxxxxxxxxxxxxxxx> Sat, 20 Mar 2004 23:10:20 +0100
+
+
=== added file 'debian/condor.init'
--- debian/condor.init 1970-01-01 00:00:00 +0000
+++ debian/condor.init 2006-09-29 11:45:53 +0000
@@ -0,0 +1,51 @@
+#! /bin/sh
+#
+# /etc/init.d/condor: start and stop the "Condor workload management system"
+
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=condor_master
+NAME=condor
+DESC=Condor
+CONF=/etc/$NAME/${NAME}_config
+
+test -f /usr/sbin/$DAEMON || exit 0
+if [ ! -f $CONF ]; then
+ echo "condor config not found: $CONF"
+ echo " please provide a configuration"
+ exit 0
+fi
+
+set -e
+
+case "$1" in
+ start)
+ echo -n "Starting $DESC: "
+ start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
+ --exec /usr/sbin/$DAEMON
+ echo "$NAME."
+ ;;
+ stop)
+ echo -n "Stopping $DESC (fast-shutdown mode): "
+ # send SIGQUIT to the condor_master, which initiates its fast
+ # shutdown method. The master itself will start sending
+ # SIGKILL to all it's children if they're not gone in 20
+ # seconds.
+ killall -QUIT $DAEMON &>/dev/null || echo -n " *not running* "
+ echo "$NAME."
+ ;;
+ reload|force-reload)
+ echo "Reloading $DESC configuration files."
+ /usr/sbin/condor_reconfig
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ *)
+ N=/etc/init.d/$NAME
+ echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
=== added file 'debian/config'
--- debian/config 1970-01-01 00:00:00 +0000
+++ debian/config 2006-10-22 15:02:29 +0000
@@ -0,0 +1,80 @@
+#!/bin/sh -e
+
+CONFIGFILE=/etc/condor/condor_config
+
+# Source debconf library
+. /usr/share/debconf/confmodule
+db_title 'Condor configuration'
+db_version 2.0
+db_capb backup
+
+# read some existing config values
+if [ -e $CONFIGFILE ]; then
+ CM=`grep -e "^[ \t]*CONDOR_HOST" $CONFIGFILE |cut -d"=" -f2|tr -d " "`
+ db_set condor/centralmanager $CM || true
+ ADMIN=`grep -e "^[ \t]*CONDOR_ADMIN" $CONFIGFILE |cut -d"=" -f2|tr -d " "`
+ db_set condor/admin $ADMIN || true
+ UIDD=`grep -e "^[ \t]*UID_DOMAIN" $CONFIGFILE |cut -d"=" -f2|tr -d " "`
+ db_set condor/uiddomain $UIDD || true
+ FSD=`grep -e "^[ \t]*FILESYSTEM_DOMAIN" $CONFIGFILE |cut -d"=" -f2|tr -d " "`
+ db_set condor/filesystemdomain $FSD || true
+ RESERVEDMEM=`grep -e "^[ \t]*RESERVED_MEMORY" $CONFIGFILE |cut -d"=" -f2|tr -d " "`
+ db_set condor/reservedmemory $RESERVEDMEM || true
+ HOSTALLOWWRITE=`grep -e "^[ \t]*HOSTALLOW_WRITE" $CONFIGFILE |cut -d"=" -f2|tr -d " "`
+ db_set condor/hostallowmrite $HOSTALLOWWRITE || true
+fi
+
+# start state machine
+STATE=1
+while [ "$STATE" != 0 -a "$STATE" != 8 ]; do
+ case "$STATE" in
+ 1)
+ db_input medium condor/personal || true
+ ;;
+ 2)
+ if [ "$ISPERSONAL" = "false" ]; then
+ db_input medium condor/daemons || true
+ fi
+ ;;
+ 3)
+ if [ "$ISPERSONAL" = "false" ]; then
+ db_input medium condor/centralmanager || true
+ fi
+ ;;
+ 4)
+ db_input medium condor/admin || true
+ ;;
+ 5)
+ if [ "$ISPERSONAL" = "false" ]; then
+ db_input medium condor/uiddomain || true
+ fi
+ ;;
+ 6)
+ if [ "$ISPERSONAL" = "false" ]; then
+ db_input medium condor/filesystemdomain || true
+ fi
+ ;;
+ 7)
+ if [ "$ISPERSONAL" = "false" ]; then
+ db_input medium condor/hostallowwrite || true
+ fi
+ ;;
+ 8)
+ db_input low condor/reservedmemory || true
+ esac
+
+ if db_go; then
+ if [ $STATE -eq 1 ]; then
+ db_get condor/personal
+ ISPERSONAL=$RET
+ fi
+ STATE=$(($STATE + 1))
+ else
+ STATE=$(($STATE - 1))
+ fi
+done
+db_stop
+
+
+
+
=== added file 'debian/control'
--- debian/control 1970-01-01 00:00:00 +0000
+++ debian/control 2006-10-22 12:01:39 +0000
@@ -0,0 +1,35 @@
+Source: condor
+Section: science
+Priority: optional
+Maintainer: guillaume pernot <gpernot@xxxxxxxxxxx>
+Build-Depends: debhelper (>> 3.0.0), po-debconf, pvm-dev, libkrb5-dev, libssl-dev, libpcre3-dev, zlib1g-dev, gsoap, gcj, g++, libstlport5-dev | libstlport4.6-dev, flex, csh, bison
+Standards-Version: 3.6.1.1
+
+Package: condor
+Architecture: any
+Depends: ${shlibs:Depends}, debconf (>= 0.5) | debconf-2.0
+Description: workload management system
+ Condor is a specialized workload management system for compute-intensive
+ jobs. Like other full-featured batch systems, Condor provides a job queueing
+ mechanism, scheduling policy, priority scheme, resource monitoring, and
+ resource management. Users submit their serial or parallel jobs to Condor,
+ Condor places them into a queue, chooses when and where to run the jobs
+ based upon a policy, carefully monitors their progress, and ultimately
+ informs the user upon completion.
+ .
+ While providing functionality similar to that of a more traditional batch
+ queueing system, Condor's novel architecture allows it to succeed in areas
+ where traditional scheduling systems fail. Condor can be used to manage a
+ cluster of dedicated compute nodes (such as a "Beowulf" cluster). In
+ addition, unique mechanisms enable Condor to effectively harness wasted CPU
+ power from otherwise idle desktop workstations. For instance, Condor can be
+ configured to only use desktop machines where the keyboard and mouse are
+ idle. Should Condor detect that a machine is no longer available (such as a
+ key press detected), in many circumstances Condor is able to transparently
+ produce a checkpoint and migrate a job to a different machine which would
+ otherwise be idle. Condor does not require a shared file system across
+ machines - if no shared file system is available, Condor can transfer the
+ job's data files on behalf of the user, or Condor may be able to
+ transparently redirect all the job's I/O requests back to the submit
+ machine. As a result, Condor can be used to seamlessly combine all of an
+ organization's computational power into one resource.
=== added file 'debian/copyright'
--- debian/copyright 1970-01-01 00:00:00 +0000
+++ debian/copyright 2006-10-22 10:29:36 +0000
@@ -0,0 +1,147 @@
+This package was initially debianized by Andreas Hirczy <ahi@xxxxxxxxxxxxx> on
+Thu, 18 Mar 2004 13:13:54 +0100 and is now maintained by Peter Troeger <peter.troeger@xxxxxxxxxxxxxxxxxx>.
+guillaume pernot <gpernot@xxxxxxxxxxx> took over packaging for build from sources.
+
+It was downloaded from <http://www.cs.wisc.edu/condor/>
+
+Upstream Authors: Condor Team <condor-admin@xxxxxxxxxxx>
+
+Copyright: <http://www.cs.wisc.edu/condor/condor-public-license.html>
+
+
+
+CONDOR PUBLIC LICENSE
+
+Version 1.1, October 30, 2003
+
+Copyright (C) 1990-2003 Condor Team, Computer Sciences Department, University
+of Wisconsin-Madison, Madison, WI. All Rights Reserved. For more information
+contact: Condor Team, Attention: Professor Miron Livny, Dept of Computer
+Sciences, 1210 W. Dayton St., Madison, WI 53706-1685, (608) 262-0856 or
+miron@xxxxxxxxxxxx
+
+This software referred to as the Condor(R) Version 6.x software ("Software")
+was developed by the Condor Project, Condor Team, Computer Sciences
+Department, University of Wisconsin-Madison, under the authority of the Board
+of Regents of the University of Wisconsin System and includes voluntary
+contributions made to the Condor Project ("Copyright Holders and Contributors
+and the University"). For more information on the Condor Project, please see
+http://www.condorproject.org/.
+
+Installation, use, reproduction, display, modification and redistribution of
+this Software, with or without modification, in source and binary forms, are
+permitted. Any exercise of rights under this license including sublicenses by
+you is subject to the following conditions:
+
+ 1. Redistributions of this Software, with or without modification, must
+ reproduce this Condor Public License in: (1) the Software, and (2) any
+ user documentation or other similar material which is provided with the
+ Software.
+
+ 2. Any user documentation included with a redistribution must include the
+ following notice:
+
+ ``This product includes software from the Condor(R) Project
+ (http://www.condorproject.org/)"
+
+ Alternatively, if that is where third-party acknowledgments normally
+ appear, this acknowledgment must be reproduced in the Software itself.
+
+ 3. Any academic report, publication, or other academic disclosure of
+ results obtained with this Software will acknowledge this Software's
+ use by an appropriate citation.
+
+ 4. The name Condor(R) is a registered trademark of the University of
+ Wisconsin-Madison. The trademark may not be used to endorse or promote
+ software, or products derived therefrom, and, other than as required by
+ section 2 and 3 above, it may not be affixed to modified
+ redistributions of this Software without the prior written approval,
+ obtainable via email to condor-admin@xxxxxxxxxxxx
+
+ 5. To the extent that patent claims licensable by the University of
+ Wisconsin-Madison are necessarily infringed by the use or sale of the
+ Software, you are granted a non-exclusive, worldwide, royalty- free
+ perpetual license under such patent claims, with the rights for you to
+ make, use, sell, offer to sell, import and otherwise transfer the
+ Software in source code and object code form and derivative works. This
+ patent license shall apply to the combination of the Software with
+ other software if, at the time the Software is added by you, such
+ addition of the Software causes such combination to be covered by such
+ patent claims. This patent license shall not apply to any other
+ combinations which include the Software. No hardware per se is licensed
+ hereunder.
+
+ If you or any subsequent sub-licensee (a ``Recipient") institutes
+ patent litigation against any entity (including a cross-claim or
+ counterclaim in a lawsuit) alleging that the Software infringes such
+ Recipient's patent(s), then such Recipient's rights granted (directly
+ or indirectly) under the patent license above shall terminate as of the
+ date such litigation is filed. All sublicenses to the Software which
+ have been properly granted prior to termination shall survive any
+ termination of said patent license, if not otherwise terminated
+ pursuant to this section.
+
+ 6. DISCLAIMER
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AND
+ THE UNIVERSITY "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY, OF SATISFACTORY QUALITY, AND FITNESS FOR A PARTICULAR
+ PURPOSE OR USE ARE DISCLAIMED. THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ AND THE UNIVERSITY MAKE NO REPRESENTATION THAT THE SOFTWARE,
+ MODIFICATIONS, ENHANCEMENTS OR DERIVATIVE WORKS THEREOF, WILL NOT
+ INFRINGE ANY PATENT, COPYRIGHT, TRADEMARK, TRADE SECRET OR OTHER
+ PROPRIETARY RIGHT.
+
+ 7. LIMITATION OF LIABILITY
+
+ THE COPYRIGHT HOLDERS AND CONTRIBUTORS AND ANY OTHER OFFICER, AGENT, OR
+ EMPLOYEE OF THE UNIVERSITY SHALL HAVE NO LIABILITY TO LICENSEE OR OTHER
+ PERSONS FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL,
+ EXEMPLARY, OR PUNITIVE DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
+ LIMITATION, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, LOSS OF USE,
+ DATA OR PROFITS, OR BUSINESS INTERRUPTION, HOWEVER CAUSED AND ON ANY
+ THEORY OF CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE), PRODUCT
+ LIABILITY OR OTHERWISE, ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+ 8. Certain uses and transfers of the Software or documentation, and/or
+ items or software incorporating the Condor Software or documentation,
+ may require a license under U.S. Export Control laws. Licensee
+ represents and warrants that all uses and transfers of the Condor
+ Software or documentation and/or any items or software incorporating
+ Condor shall be in compliance with U.S. Export Control laws, and
+ Licensee further understands that failure to comply with such export
+ control laws may result in criminal liability to Licensee under
+ U.S. laws.
+
+ 9. The Condor Team may publish revised and/or new versions of this Condor
+ Public License (``this License") from time to time. Each version will
+ be given a distinguishing version number. Once Software has been
+ published under a particular version of this License, you may always
+ continue to use it under the terms of that version. You may also choose
+ to use such Software under the terms of any subsequent version of this
+ License published by the Condor Team. No one other than the Condor Team
+ has the right to modify the terms of this License.
+
+For more information:
+
+Condor Team
+Attention: Professor Miron Livny
+7367 Computer Sciences
+1210 W. Dayton St.
+Madison, WI 53706-1685
+miron@xxxxxxxxxxx
+http://www.cs.wisc.edu/~miron/miron.html
+
+
+NOTICES
+
+ * This product includes software developed by and/or derived from the
+ Globus Project (http://www.globus.org/) to which the U.S. Government
+ retains certain rights. Copyright (c) 1999 University of Chicago and
+ The University of Southern California. All Rights Reserved.
+
+ * Some distributions of Condor include a compiled, unmodified version of
+ the GNU C library. The complete source code to GNU glibc can be found
+ at http://www.gnu.org/software/libc/.
=== added file 'debian/dirs'
--- debian/dirs 1970-01-01 00:00:00 +0000
+++ debian/dirs 2006-09-29 11:46:54 +0000
@@ -0,0 +1,6 @@
+etc/condor
+var/log/condor
+var/spool/condor
+var/spool/condor/spool
+var/spool/condor/execute
+var/spool/condor/cred
=== added file 'debian/docs'
--- debian/docs 1970-01-01 00:00:00 +0000
+++ debian/docs 2006-10-22 13:23:37 +0000
@@ -0,0 +1,3 @@
+DOC
+README
+
=== added directory 'debian/po'
=== added file 'debian/po/POTFILES.in'
--- debian/po/POTFILES.in 1970-01-01 00:00:00 +0000
+++ debian/po/POTFILES.in 2006-09-29 11:46:54 +0000
@@ -0,0 +1,1 @@
+[type: gettext/rfc822deb] templates
=== added file 'debian/po/templates.pot'
--- debian/po/templates.pot 1970-01-01 00:00:00 +0000
+++ debian/po/templates.pot 2006-10-22 15:03:21 +0000
@@ -0,0 +1,156 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: gpernot@xxxxxxxxxxx\n"
+"POT-Creation-Date: 2006-10-22 17:03+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@xxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: string
+#. Description
+#: ../templates:3
+msgid "What machine is your central manager ?"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../templates:3
+msgid ""
+"If you want to connect to an existing Condor pool, you need to enter the "
+"address of the central manager machine."
+msgstr ""
+
+#. Type: multiselect
+#. Choices
+#: ../templates:9
+msgid "Job submission, Job execution, Central manager"
+msgstr ""
+
+#. Type: multiselect
+#. Description
+#: ../templates:11
+msgid ""
+"Please configure which roles your machine should perform in your Condor pool."
+msgstr ""
+
+#. Type: multiselect
+#. Description
+#: ../templates:11
+msgid ""
+"If you want to submit jobs to an existing pool, you need to activate the "
+"\"Job submission\" option. If you want to allow jobs from a pool to be run "
+"on your local machine, you need to activate the \"Job execution\" option. A "
+"\"Central manager\" is usually only needed once in a pool."
+msgstr ""
+
+#. Type: string
+#. Default
+#: ../templates:19
+msgid "root@localhost"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../templates:20
+msgid "What is the email address of your Condor admin ?"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../templates:20
+msgid ""
+"When something goes wrong with condor at your machine, most condor daemons "
+"want to send an email with the error message."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../templates:26
+msgid "What UID_DOMAIN do you want to use ?"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../templates:26
+msgid ""
+"The UID_DOMAIN parameter is used to decide under which user to run your "
+"jobs. If the UID_DOMAIN on the submitting machine is different than the "
+"UID_DOMAIN on the machine that runs your job, then Condor will run the job "
+"as the user called 'nobody'. If the UID_DOMAIN is the same on both the "
+"submit and execute machines, then Condor will run the job as the user that "
+"submitted the job. You need to set your UID_DOMAIN to a real domain name, "
+"since Condor compares the submit machine's claimed UID_DOMAIN to its fully "
+"qualified name. When Condor sends e-mail about a job, Condor sends the e-"
+"mail to user@UID_DOMAIN. You could also enter '*' to match all domains "
+"(security hole) or leaved it undefined (all jobs run as 'nobody')."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../templates:40
+msgid "What FILESYSTEM_DOMAIN do you want to use ?"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../templates:40
+msgid ""
+"The FILESYSTEM_DOMAIN macro is an arbitrary string that is used to decide if "
+"two machines (a submitting machine and an execute machine) share a file "
+"system. Note that if you leave this parameter blank, Condor will "
+"automatically set the value to be the fully qualified hostname of the local "
+"machine. Since each machine will have a different FILESYSTEM_DOMAIN, they "
+"will not be considered to have shared file systems."
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:51
+msgid "Do you want a \"Personal Condor\" installation ?"
+msgstr ""
+
+#. Type: boolean
+#. Description
+#: ../templates:51
+msgid ""
+"If you say 'Yes', you will get a fully-functional, one-machine Condor pool "
+"on your local machine. If you want to join an existing pool or want to start "
+"a pool with more than one machine, you should say 'No' here."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../templates:58
+msgid "How much memory would you like reserved from Condor ?"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../templates:58
+msgid ""
+"By default, Condor considers all the physical memory of your machine as "
+"available to be used by Condor jobs. If this value is defined, Condor "
+"subtracts it from the amount of memory it advertises as available."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../templates:66
+msgid "Which machines has write access to your pool"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../templates:66
+msgid "Machines listed here can join your pool, submit jobs, etc..."
+msgstr ""
=== added file 'debian/postinst'
--- debian/postinst 1970-01-01 00:00:00 +0000
+++ debian/postinst 2006-09-29 11:46:54 +0000
@@ -0,0 +1,145 @@
+#! /bin/sh -e
+# postinst script for condor
+#
+# see: dh_installdeb(1)
+
+set -e
+
+
+CONFIGFILE=/etc/condor/condor_config
+FQHN=`hostname -f`
+FQDN=`hostname -d`
+
+. /usr/share/debconf/confmodule
+db_version 2.0
+
+do_configure()
+{
+ # add daemon user
+ if ! /usr/bin/getent passwd condor > /dev/null; then
+ adduser --quiet --no-create-home --system --gecos "Condor Daemon" condor
+ fi
+
+ # condor_init does not take care of the directory permissions if they exist, so we have to do it
+ chown condor /var/log/condor
+ chmod 755 /var/log/condor
+ chown -R condor /var/spool/condor
+ chmod 755 /var/spool/condor
+ chmod 1777 /var/spool/condor/execute
+ chown condor /etc/condor
+ chmod 0700 /var/spool/condor/cred
+
+ # create config file, if needed
+ if [ ! -e $CONFIGFILE ]; then
+ gunzip -c /usr/share/doc/condor/examples-conf/condor_config.debian.gz > /etc/condor/condor_config
+ fi
+
+ # store admin email address in any case
+ db_get condor/admin
+ ADMIN="$RET"
+ sed -e "s,^[ \t]*CONDOR_ADMIN[ \t]*=.*,CONDOR_ADMIN = $ADMIN," \
+ < $CONFIGFILE > $CONFIGFILE.tmp
+ mv -f $CONFIGFILE.tmp $CONFIGFILE
+
+ db_get condor/reservedmemory
+ RESERVEDMEM="$RET"
+ if [ "$RET" != "" ]
+ then
+ sed -e "s/^[ \t#]*RESERVED_MEMORY[ \t]*=.*/RESERVED_MEMORY = $RESERVEDMEM/" \
+ < $CONFIGFILE > $CONFIGFILE.tmp
+ mv -f $CONFIGFILE.tmp $CONFIGFILE
+ else
+ sed -e "s/^[ \t#]*RESERVED_MEMORY[ \t]*=.*/#RESERVED_MEMORY = 0/" \
+ < $CONFIGFILE > $CONFIGFILE.tmp
+ mv -f $CONFIGFILE.tmp $CONFIGFILE
+ fi
+
+ # configure personal condor if needed
+ db_get condor/personal
+ if [ "$RET" = "true" ]; then
+ # set personal condor parameters
+ # taken from condor_configure script, which we cannot use directly
+ sed -e "s/^[ \t]*DAEMON_LIST[ \t]*=.*/DAEMON_LIST = MASTER, COLLECTOR, NEGOTIATOR, STARTD, SCHEDD/" \
+ -e "s/^[ \t]*START[ \t]*=.*/START = TRUE/" \
+ -e "s/^[ \t]*PREEMPT[ \t]*=.*/PREEMPT = FALSE/" \
+ -e "s/^[ \t]*SUSPEND[ \t]*=.*/SUSPEND = FALSE/" \
+ -e "s/^[ \t]*VACATE[ \t]*=.*/VACATE = FALSE/" \
+ -e "s/^[ \t]*CONDOR_HOST[ \t]*=.*/CONDOR_HOST = $FQHN/" \
+ -e "s/^[ \t]*UID_DOMAIN[ \t]*=.*/UID_DOMAIN = $FQDN/" \
+ -e "s/^[ \t]*FILESYSTEM_DOMAIN[ \t]*=.*/FILESYSTEM_DOMAIN = $FQDN/" \
+ < $CONFIGFILE > $CONFIGFILE.tmp
+ mv -f $CONFIGFILE.tmp $CONFIGFILE
+
+ else
+
+ # configure normal node
+ db_get condor/daemons
+ DAEMONS=`echo $RET | sed -e "s/Job submission/SCHEDD/" \
+ -e "s/Job execution/STARTD/" \
+ -e "s/Central manager/COLLECTOR, NEGOTIATOR/" \
+ -e "s/^/MASTER, /"`
+ db_get condor/centralmanager
+ CENTRALMANAGER="$RET"
+ db_get condor/uiddomain
+ UIDDOMAIN="$RET"
+ db_get condor/filesystemdomain
+ FSDOMAIN="$RET"
+ sed -e "s/^[ \t]*START[ \t]*=.*/START = \$(UWCS_START)/" \
+ -e "s/^[ \t]*PREEMPT[ \t]*=.*/PREEMPT = \$(UWCS_PREEMPT)/" \
+ -e "s/^[ \t]*SUSPEND[ \t]*=.*/SUSPEND = \$(UWCS_SUSPEND)/" \
+ -e "s/^[ \t]*CONDOR_HOST[ \t]*=.*/CONDOR_HOST = $CENTRALMANAGER/" \
+ -e "s/^[ \t]*UID_DOMAIN[ \t]*=.*/UID_DOMAIN = $UIDDOMAIN/" \
+ -e "s/^[ \t]*FILESYSTEM_DOMAIN[ \t]*=.*/FILESYSTEM_DOMAIN = $FSDOMAIN/" \
+ -e "s/^[ \t]*DAEMON_LIST[ \t]*=.*/DAEMON_LIST = $DAEMONS/" \
+ -e "s/^[ \t]*RESERVED_MEMORY[ \t]*=.*/RESERVED_MEMORY = $RESERVEDMEM/" \
+ < $CONFIGFILE > $CONFIGFILE.tmp
+ mv -f $CONFIGFILE.tmp $CONFIGFILE
+ fi
+
+ # work around Condor memory detection bug with Linux kernel 2.6
+ # 85 is _SC_PHYS_PAGES, 30 is _SC_PAGESIZE (not available as constants in Perl)
+ case `uname -r` in
+ 2.6*)
+ AVAILMEM=`perl -e 'use POSIX;print int(POSIX::sysconf(85)*POSIX::sysconf(30)/1048576);'`
+ sed -e "s/^[ \t#]*MEMORY[ \t]*=.*/MEMORY = $AVAILMEM/" \
+ < $CONFIGFILE > $CONFIGFILE.tmp
+ mv -f $CONFIGFILE.tmp $CONFIGFILE
+ ;;
+ esac
+
+ # run condor_init to create missing files / directories
+ /usr/sbin/condor_init 1> /dev/null 2> /dev/null
+}
+
+do_start()
+{
+ /etc/init.d/condor restart
+}
+
+case "$1" in
+ configure)
+ do_configure
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ reconfigure)
+ do_configure
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+#DEBHELPER#
+
+db_stop
+exit 0
+
+
=== added file 'debian/postrm'
--- debian/postrm 1970-01-01 00:00:00 +0000
+++ debian/postrm 2006-09-29 11:46:54 +0000
@@ -0,0 +1,49 @@
+#! /bin/sh
+# postrm script for condor
+#
+# see: dh_installdeb(1)
+
+set -e
+
+. /usr/share/debconf/confmodule
+db_version 2.0
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+ ;;
+ purge)
+ deluser --quiet --system condor
+ rm -rf /etc/condor/*
+ rm -rf /var/log/condor/*
+ rm -rf /var/log/condor/.[a-z]*
+ rm -rf /var/spool/condor/*
+ rm -rf /usr/share/doc/condor/*
+ db_purge
+ ;;
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+db_stop
+
+exit 0
=== added file 'debian/rules'
--- debian/rules 1970-01-01 00:00:00 +0000
+++ debian/rules 2006-10-22 13:31:21 +0000
@@ -0,0 +1,172 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# GNU copyright 1997 to 1999 by Joey Hess.
+
+# Uncomment this to turn on verbose mode.
+export DH_VERBOSE=1
+
+# This is the debhelper compatibility version to use.
+export DH_COMPAT=4
+
+# some changed directories must be reflected in the config file
+export CONDOR_CONFIGTPL = $(CURDIR)/debian/condor/usr/share/doc/condor/examples-conf/condor_config.debian
+
+ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -g
+endif
+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
+ INSTALL_PROGRAM += -s
+endif
+
+configure: configure-stamp
+
+configure-stamp:
+ dh_testdir
+# Add here commands to configure the package.
+
+ ( cd src && ./build_init && ./configure )
+
+ touch configure-stamp
+
+
+build: build-stamp
+
+build-stamp: configure-stamp
+ dh_testdir
+
+ -$(MAKE) -C src release
+
+ touch build-stamp
+
+clean:
+ debconf-updatepo
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp configure-stamp
+
+ # Add here commands to clean up after the build process.
+ -$(MAKE) -C src clean
+ rm -rf externals/{build,triggers,install}
+
+ dh_clean
+
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+ dh_installdocs
+ dh_installexamples
+
+ install -d $(CURDIR)/debian/condor/usr/
+ cp -a src/release_dir/{etc,include,src,lib,libexec,bin,sbin,man} $(CURDIR)/debian/condor/usr/
+
+ mv $(CURDIR)/debian/condor/usr/etc/examples \
+ $(CURDIR)/debian/condor/usr/share/doc/condor/examples-conf
+ cp $(CURDIR)/debian/condor/usr/share/doc/condor/examples-conf/condor_config.generic \
+ $(CONDOR_CONFIGTPL)
+ echo MPI_CONDOR_RSH_PATH = /usr/lib/condor|cat $(CONDOR_CONFIGTPL) - > $(CONDOR_CONFIGTPL).new
+ echo STORK_MODULE_DIR = /usr/lib/condor|cat $(CONDOR_CONFIGTPL).new - > $(CONDOR_CONFIGTPL)
+ sed -e "s,\@GT3_INSTALL\@,/usr/lib/condor/gt3," \
+ < $(CURDIR)/debian/condor/usr/lib/gt3/server-config.wsdd.in \
+ > $(CURDIR)/debian/condor/usr/lib/gt3/server-config.wsdd
+ sed -e "s,\@GT3_INSTALL\@,/usr/lib/condor/gt3," \
+ < $(CURDIR)/debian/condor/usr/lib/gt3/local-server-config.wsdd.in \
+ > $(CURDIR)/debian/condor/usr/lib/gt3/local-server-config.wsdd
+
+ rm -rf $(CURDIR)/debian/condor/usr/etc
+ rm -rf $(CURDIR)/debian/condor/usr/src
+
+ install -d $(CURDIR)/debian/condor/usr/share
+ install -d $(CURDIR)/debian/condor/usr/lib/condor
+ install -d $(CURDIR)/debian/condor/usr/share/java
+ mv $(CURDIR)/debian/condor/usr/lib/*.{class,jar} \
+ $(CURDIR)/debian/condor/usr/share/java/
+ -mv $(CURDIR)/debian/condor/usr/lib/* \
+ $(CURDIR)/debian/condor/usr/lib/condor/
+ mv $(CURDIR)/debian/condor/usr/man \
+ $(CURDIR)/debian/condor/usr/share/man
+ mv $(CURDIR)/debian/condor/usr/libexec/rsh \
+ $(CURDIR)/debian/condor/usr/lib/condor/
+ chmod ugo-x $(CURDIR)/debian/condor/usr/share/java/*
+ rm -rf $(CURDIR)/debian/condor/usr/libexec
+ rm -rf $(CURDIR)/debian/condor/usr/lib/condor/real-ld
+ ln -s ld $(CURDIR)/debian/condor/usr/lib/condor/real-ld
+
+ rm -rf $(CURDIR)/debian/condor/usr/bin/condor_checkpoint
+ ln -s condor $(CURDIR)/debian/condor/usr/bin/condor_checkpoint
+ rm -rf $(CURDIR)/debian/condor/usr/bin/condor_vacate
+ ln -s condor $(CURDIR)/debian/condor/usr/bin/condor_vacate
+ rm -rf $(CURDIR)/debian/condor/usr/bin/condor_reschedule
+ ln -s condor $(CURDIR)/debian/condor/usr/bin/condor_reschedule
+
+ rm -rf $(CURDIR)/debian/condor/usr/bin/condor_hold
+ ln -s condor_rm $(CURDIR)/debian/condor/usr/bin/condor_hold
+ rm -rf $(CURDIR)/debian/condor/usr/bin/condor_release
+ ln -s condor_rm $(CURDIR)/debian/condor/usr/bin/condor_release
+ rm -rf $(CURDIR)/debian/condor/usr/bin/condor_vacate_job
+ ln -s condor_rm $(CURDIR)/debian/condor/usr/bin/condor_vacate_job
+
+ rm -rf $(CURDIR)/debian/condor/usr/sbin/condor_on
+ ln -s condor $(CURDIR)/debian/condor/usr/sbin/condor_on
+ rm -rf $(CURDIR)/debian/condor/usr/sbin/condor_off
+ ln -s condor $(CURDIR)/debian/condor/usr/sbin/condor_off
+ rm -rf $(CURDIR)/debian/condor/usr/sbin/condor_checkpoint
+ ln -s condor $(CURDIR)/debian/condor/usr/sbin/condor_checkpoint
+ rm -rf $(CURDIR)/debian/condor/usr/sbin/condor_vacate
+ ln -s condor $(CURDIR)/debian/condor/usr/sbin/condor_vacate
+ rm -rf $(CURDIR)/debian/condor/usr/sbin/condor_restart
+ ln -s condor $(CURDIR)/debian/condor/usr/sbin/condor_restart
+ rm -rf $(CURDIR)/debian/condor/usr/sbin/condor_reconfig
+ ln -s condor $(CURDIR)/debian/condor/usr/sbin/condor_reconfig
+ rm -rf $(CURDIR)/debian/condor/usr/sbin/condor_reconfig_schedd
+ ln -s condor $(CURDIR)/debian/condor/usr/sbin/condor_reconfig_schedd
+ rm -rf $(CURDIR)/debian/condor/usr/sbin/condor_reschedule
+ ln -s condor $(CURDIR)/debian/condor/usr/sbin/condor_reschedule
+ rm -rf $(CURDIR)/debian/condor/usr/sbin/condor_master_off
+ ln -s condor $(CURDIR)/debian/condor/usr/sbin/condor_master_off
+ rm -rf $(CURDIR)/debian/condor/usr/sbin/condor_gridshell
+ ln -s condor_starter $(CURDIR)/debian/condor/usr/sbin/condor_gridshell
+
+ sed -e "s,^[ \t]*LIB[ \t]*=.*,LIB = /usr/lib/condor," \
+ -e "s,^[ \t]*RELEASE_DIR[ \t]*=.*,RELEASE_DIR = /usr," \
+ -e "s,^[ \t]*LOCAL_DIR[ \t]*=.*,LOCAL_DIR = /var," \
+ -e "s,^[ \t]*LOCAL_CONFIG_FILE[ \t]*=.*,#LOCAL_CONFIG_FILE =," \
+ -e "s,^[ \t]*EXECUTE[ \t]*=.*,EXECUTE = /var/spool/condor/execute," \
+ -e "s,^[ \t]*LOCK[ \t]*=.*,LOCK = /var/lock," \
+ -e "s,^[ \t]*LOG[ \t]*=.*,LOG = /var/log/condor," \
+ -e "s,^[ \t]*SPOOL[ \t]*=.*,SPOOL = /var/spool/condor/spool," \
+ -e "s,^[ \t]*HISTORY[ \t]*=.*,HISTORY = /var/spool/condor/history," \
+ -e "s,^[ \t]*CRED_STORE_DIR[ \t]*=.*,CRED_STORE_DIR = /var/spool/condor/cred," \
+ < $(CONDOR_CONFIGTPL) > $(CONDOR_CONFIGTPL).tmp
+ mv $(CONDOR_CONFIGTPL).tmp $(CONDOR_CONFIGTPL)
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+ dh_installdebconf
+# dh_installlogrotate
+ dh_installinit
+# dh_installcron
+ dh_installman
+# dh_installinfo
+# dh_undocumented
+ dh_installchangelogs
+ dh_link
+ dh_strip
+ dh_compress
+ dh_fixperms
+# dh_makeshlibs
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
=== added file 'debian/templates'
--- debian/templates 1970-01-01 00:00:00 +0000
+++ debian/templates 2006-10-22 15:02:58 +0000
@@ -0,0 +1,68 @@
+Template: condor/centralmanager
+Type: string
+_Description: What machine is your central manager ?
+ If you want to connect to an existing Condor pool, you need to enter the
+ address of the central manager machine.
+
+Template: condor/daemons
+Type: multiselect
+_Choices: Job submission, Job execution, Central manager
+Default: Job submission, Job execution
+_Description: Please configure which roles your machine should perform in your Condor pool.
+ If you want to submit jobs to an existing pool, you need to activate the
+ "Job submission" option. If you want to allow jobs from a pool to be run
+ on your local machine, you need to activate the "Job execution" option. A
+ "Central manager" is usually only needed once in a pool.
+
+Template: condor/admin
+Type: string
+_Default: root@localhost
+_Description: What is the email address of your Condor admin ?
+ When something goes wrong with condor at your machine, most condor daemons
+ want to send an email with the error message.
+
+Template: condor/uiddomain
+Type: string
+_Description: What UID_DOMAIN do you want to use ?
+ The UID_DOMAIN parameter is used to decide under which user to run your
+ jobs. If the UID_DOMAIN on the submitting machine is different than the
+ UID_DOMAIN on the machine that runs your job, then Condor will run the job
+ as the user called 'nobody'. If the UID_DOMAIN is the same on both the
+ submit and execute machines, then Condor will run the job as the user that
+ submitted the job. You need to set your UID_DOMAIN to a real domain name,
+ since Condor compares the submit machine's claimed UID_DOMAIN to its fully
+ qualified name. When Condor sends e-mail about a job, Condor sends the
+ e-mail to user@UID_DOMAIN. You could also enter '*' to match all domains
+ (security hole) or leaved it undefined (all jobs run as 'nobody').
+
+Template: condor/filesystemdomain
+Type: string
+_Description: What FILESYSTEM_DOMAIN do you want to use ?
+ The FILESYSTEM_DOMAIN macro is an arbitrary string that is used to decide
+ if two machines (a submitting machine and an execute machine) share a file
+ system. Note that if you leave this parameter blank, Condor will
+ automatically set the value to be the fully qualified hostname of the
+ local machine. Since each machine will have a different FILESYSTEM_DOMAIN,
+ they will not be considered to have shared file systems.
+
+Template: condor/personal
+Type: boolean
+Default: false
+_Description: Do you want a "Personal Condor" installation ?
+ If you say 'Yes', you will get a fully-functional, one-machine Condor pool
+ on your local machine. If you want to join an existing pool or want to
+ start a pool with more than one machine, you should say 'No' here.
+
+Template: condor/reservedmemory
+Type: string
+_Description: How much memory would you like reserved from Condor ?
+ By default, Condor considers all the physical memory of your machine as
+ available to be used by Condor jobs. If this value is defined,
+ Condor subtracts it from the amount of memory it advertises as available.
+
+Template: condor/hostallowwrite
+Type: string
+Default: localhost
+_Description: Which machines has write access to your pool
+ Machines listed here can join your pool, submit jobs, etc...
+
=== added file 'externals/bundles/blahp/1.7.0/batch_gahp_daemon-classad.patch'
--- externals/bundles/blahp/1.7.0/batch_gahp_daemon-classad.patch 1970-01-01 00:00:00 +0000
+++ externals/bundles/blahp/1.7.0/batch_gahp_daemon-classad.patch 2006-10-19 22:08:48 +0000
@@ -0,0 +1,11 @@
+--- org.glite.ce.blahp/src/Makefile.am 2006-10-20 00:06:56.000000000 +0200
++++ org.glite.ce.blahp-patched/src/Makefile.am 2006-10-20 00:08:12.000000000 +0200
+@@ -28,7 +28,7 @@
+
+ batch_gahp_LDADD = $(CLASSAD_LIBS)
+
+-batch_gahp_daemon_LDADD = $(blahpd_LDADD)
++batch_gahp_daemon_LDADD = $(blahpd_LDADD) $(CLASSAD_LIBS)
+
+ BPRclient_SOURCES = BPRclient.c BPRcomm.c tokens.c
+
=== added file 'externals/bundles/classads/0.9.8-b3/g++4.0.patch'
--- externals/bundles/classads/0.9.8-b3/g++4.0.patch 1970-01-01 00:00:00 +0000
+++ externals/bundles/classads/0.9.8-b3/g++4.0.patch 2006-10-18 13:12:03 +0000
@@ -0,0 +1,11 @@
+--- classads-0.9.8-b3/classad_stl.h 2005-10-27 21:10:49.000000000 +0200
++++ classads-0.9.8-b3/classad_stl.h.patched 2006-10-18 15:11:26.000000000 +0200
+@@ -42,7 +42,7 @@
+
+
+ #ifdef __GNUC__
+- #if (__GNUC__ == 3 && __GNUC_MINOR__ > 0)
++ #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0))
+ #define classad_hash_map __gnu_cxx::hash_map
+ #define classad_slist __gnu_cxx::slist
+ #else
=== added file 'externals/bundles/glibc/2.3.2.27.9.7/gcc-4.0-fixes.patch'
--- externals/bundles/glibc/2.3.2.27.9.7/gcc-4.0-fixes.patch 1970-01-01 00:00:00 +0000
+++ externals/bundles/glibc/2.3.2.27.9.7/gcc-4.0-fixes.patch 2006-10-25 01:31:02 +0000
@@ -0,0 +1,2121 @@
+diff -ru glibc-2.3.2.27.9.7.orig/c_stubs/gconv_stubs.c glibc-2.3.2.27.9.7/c_stubs/gconv_stubs.c
+--- glibc-2.3.2.27.9.7.orig/c_stubs/gconv_stubs.c 2003-03-22 13:55:28.000000000 +0100
++++ glibc-2.3.2.27.9.7/c_stubs/gconv_stubs.c 2006-10-25 03:19:41.000000000 +0200
+@@ -18,7 +18,27 @@
+ Boston, MA 02111-1307, USA. */
+
+ #include <features.h>
++
++/* strange hack workaround for gcc-3.4.0. Might be a better way. */
++#define __gconv_close_transform foo__gconv_close_transform
++#define __gconv foo__gconv
++#define __gconv_find_transform foo__gconv_find_transform
++#define __gconv_open foo__gconv_open
++#define __gconv_close foo__gconv_close
++#define __gconv_release_cache foo__gconv_release_cache
++#define __gconv_release_step foo__gconv_release_step
++
+ #include <gconv_int.h>
++
++#undef __gconv_close_transform
++#undef __gconv
++#undef __gconv_find_transform
++#undef __gconv_open
++#undef __gconv_close
++#undef __gconv_release_cache
++#undef __gconv_release_step
++
++
+ #include <string.h>
+ #include <wchar.h>
+
+diff -ru glibc-2.3.2.27.9.7.orig/csu/Makefile glibc-2.3.2.27.9.7/csu/Makefile
+--- glibc-2.3.2.27.9.7.orig/csu/Makefile 2003-03-23 00:00:17.000000000 +0100
++++ glibc-2.3.2.27.9.7/csu/Makefile 2006-10-25 02:31:24.000000000 +0200
+@@ -101,7 +101,7 @@
+ $(objpfx)crt%.o: $(objpfx)crt%.S $(objpfx)defs.h
+ $(compile.S) -g0 $(ASFLAGS-.os) -o $@
+
+-CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions
++CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions -fno-unit-at-a-time
+
+ vpath initfini.c $(full_config_sysdirs)
+
+diff -ru glibc-2.3.2.27.9.7.orig/elf/dl-load.c glibc-2.3.2.27.9.7/elf/dl-load.c
+--- glibc-2.3.2.27.9.7.orig/elf/dl-load.c 2003-12-01 22:21:04.000000000 +0100
++++ glibc-2.3.2.27.9.7/elf/dl-load.c 2006-10-25 01:16:45.000000000 +0200
+@@ -1227,7 +1227,9 @@
+ }
+ else
+ /* Adjust the PT_PHDR value by the runtime load address. */
+- (ElfW(Addr)) l->l_phdr += l->l_addr;
++ /* (ElfW(Addr)) l->l_phdr += l->l_addr; */
++ l->l_phdr = (ElfW(Phdr) *) ((ElfW(Addr)) l->l_phdr + l->l_addr);
++
+ }
+
+ #ifdef USE_TLS
+@@ -1253,7 +1255,8 @@
+ }
+ }
+ else
+- (ElfW(Addr)) l->l_ld += l->l_addr;
++ /* (ElfW(Addr)) l->l_ld += l->l_addr; */
++ l->l_ld = (ElfW(Dyn) *) ((ElfW(Addr)) l->l_ld + l->l_addr);
+
+ l->l_entry += l->l_addr;
+
+diff -ru glibc-2.3.2.27.9.7.orig/elf/dl-runtime.c glibc-2.3.2.27.9.7/elf/dl-runtime.c
+--- glibc-2.3.2.27.9.7.orig/elf/dl-runtime.c 2003-02-07 20:43:36.000000000 +0100
++++ glibc-2.3.2.27.9.7/elf/dl-runtime.c 2006-10-25 02:11:37.000000000 +0200
+@@ -45,7 +45,7 @@
+ function. */
+
+ #ifndef ELF_MACHINE_NO_PLT
+-static ElfW(Addr) __attribute_used__
++ElfW(Addr) __attribute__ ((regparm (2), unused))
+ fixup (
+ # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
+ ELF_MACHINE_RUNTIME_FIXUP_ARGS,
+@@ -132,7 +132,7 @@
+
+ #if !defined PROF && !defined ELF_MACHINE_NO_PLT && !__BOUNDED_POINTERS__
+
+-static ElfW(Addr) __attribute_used__
++ElfW(Addr) __attribute__ ((regparm (3), unused))
+ profile_fixup (
+ #ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
+ ELF_MACHINE_RUNTIME_FIXUP_ARGS,
+diff -ru glibc-2.3.2.27.9.7.orig/elf/do-rel.h glibc-2.3.2.27.9.7/elf/do-rel.h
+--- glibc-2.3.2.27.9.7.orig/elf/do-rel.h 2003-01-30 18:36:34.000000000 +0100
++++ glibc-2.3.2.27.9.7/elf/do-rel.h 2006-10-25 01:24:46.000000000 +0200
+@@ -49,7 +49,7 @@
+ relocations; they should be set up to call _dl_runtime_resolve, rather
+ than fully resolved now. */
+
+-static inline void __attribute__ ((always_inline))
++auto inline void __attribute__ ((always_inline))
+ elf_dynamic_do_rel (struct link_map *map,
+ ElfW(Addr) reladdr, ElfW(Addr) relsize,
+ int lazy)
+diff -ru glibc-2.3.2.27.9.7.orig/elf/dynamic-link.h glibc-2.3.2.27.9.7/elf/dynamic-link.h
+--- glibc-2.3.2.27.9.7.orig/elf/dynamic-link.h 2003-01-30 18:36:56.000000000 +0100
++++ glibc-2.3.2.27.9.7/elf/dynamic-link.h 2006-10-25 01:25:58.000000000 +0200
+@@ -55,7 +55,12 @@
+
+ /* Read the dynamic section at DYN and fill in INFO with indices DT_*. */
+
+-static inline void __attribute__ ((unused, always_inline))
++#ifndef RESOLVE_MAP
++static
++#else
++auto
++#endif
++inline void __attribute__ ((unused, always_inline))
+ elf_get_dynamic_info (struct link_map *l)
+ {
+ ElfW(Dyn) *dyn = l->l_ld;
+diff -ru glibc-2.3.2.27.9.7.orig/iconv/gconv_open.c glibc-2.3.2.27.9.7/iconv/gconv_open.c
+--- glibc-2.3.2.27.9.7.orig/iconv/gconv_open.c 2001-11-29 05:51:58.000000000 +0100
++++ glibc-2.3.2.27.9.7/iconv/gconv_open.c 2006-10-24 22:52:34.000000000 +0200
+@@ -182,8 +182,17 @@
+ || __builtin_expect (__gconv_translit_find (runp), 0) == 0)
+ lastp = runp;
+ else
+- /* This means we haven't found the module. Remove it. */
+- (lastp == NULL ? trans : lastp->next) = runp->next;
++ {
++ /* This means we haven't found the module. Remove it. */
++ if (lastp == NULL)
++ {
++ trans = runp->next;
++ }
++ else
++ {
++ lastp->next = runp->next;
++ }
++ }
+ }
+
+ /* Allocate room for handle. */
+diff -ru glibc-2.3.2.27.9.7.orig/iconv/gconv_simple.c glibc-2.3.2.27.9.7/iconv/gconv_simple.c
+--- glibc-2.3.2.27.9.7.orig/iconv/gconv_simple.c 2003-01-16 08:19:09.000000000 +0100
++++ glibc-2.3.2.27.9.7/iconv/gconv_simple.c 2006-10-24 23:10:06.000000000 +0200
+@@ -1,5 +1,5 @@
+ /* Simple transformations functions.
+- Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc.
++ Copyright (C) 1997-2003, 2004, 2005 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1997.
+
+@@ -72,6 +72,7 @@
+
+
+ static inline int
++__attribute ((always_inline))
+ internal_ucs4_loop (struct __gconv_step *step,
+ struct __gconv_step_data *step_data,
+ const unsigned char **inptrp, const unsigned char *inend,
+@@ -86,12 +87,13 @@
+ #if __BYTE_ORDER == __LITTLE_ENDIAN
+ /* Sigh, we have to do some real work. */
+ size_t cnt;
++ uint32_t *outptr32 = (uint32_t *) outptr;
+
+ for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
+- *((uint32_t *) outptr)++ = bswap_32 (*(const uint32_t *) inptr);
++ *outptr32++ = bswap_32 (*(const uint32_t *) inptr);
+
+ *inptrp = inptr;
+- *outptrp = outptr;
++ *outptrp = (unsigned char *) outptr32;
+ #elif __BYTE_ORDER == __BIG_ENDIAN
+ /* Simply copy the data. */
+ *inptrp = inptr + n_convert * 4;
+@@ -113,6 +115,7 @@
+
+ #ifndef _STRING_ARCH_unaligned
+ static inline int
++__attribute ((always_inline))
+ internal_ucs4_loop_unaligned (struct __gconv_step *step,
+ struct __gconv_step_data *step_data,
+ const unsigned char **inptrp,
+@@ -161,6 +164,7 @@
+
+
+ static inline int
++__attribute ((always_inline))
+ internal_ucs4_loop_single (struct __gconv_step *step,
+ struct __gconv_step_data *step_data,
+ const unsigned char **inptrp,
+@@ -189,13 +193,16 @@
+ (*outptrp)[2] = state->__value.__wchb[1];
+ (*outptrp)[3] = state->__value.__wchb[0];
+
+- *outptrp += 4;
+ #elif __BYTE_ORDER == __BIG_ENDIAN
+ /* XXX unaligned */
+- *(*((uint32_t **) outptrp)++) = state->__value.__wch;
++ (*outptrp)[0] = state->__value.__wchb[0];
++ (*outptrp)[1] = state->__value.__wchb[1];
++ (*outptrp)[2] = state->__value.__wchb[2];
++ (*outptrp)[3] = state->__value.__wchb[3];
+ #else
+ # error "This endianess is not supported."
+ #endif
++ *outptrp += 4;
+
+ /* Clear the state buffer. */
+ state->__count &= ~7;
+@@ -219,6 +226,7 @@
+
+
+ static inline int
++__attribute ((always_inline))
+ ucs4_internal_loop (struct __gconv_step *step,
+ struct __gconv_step_data *step_data,
+ const unsigned char **inptrp, const unsigned char *inend,
+@@ -264,7 +272,8 @@
+ return __GCONV_ILLEGAL_INPUT;
+ }
+
+- *((uint32_t *) outptr)++ = inval;
++ *((uint32_t *) outptr) = inval;
++ outptr += sizeof (uint32_t);
+ }
+
+ *inptrp = inptr;
+@@ -283,6 +292,7 @@
+
+ #ifndef _STRING_ARCH_unaligned
+ static inline int
++__attribute ((always_inline))
+ ucs4_internal_loop_unaligned (struct __gconv_step *step,
+ struct __gconv_step_data *step_data,
+ const unsigned char **inptrp,
+@@ -352,6 +362,7 @@
+
+
+ static inline int
++__attribute ((always_inline))
+ ucs4_internal_loop_single (struct __gconv_step *step,
+ struct __gconv_step_data *step_data,
+ const unsigned char **inptrp,
+@@ -426,6 +437,7 @@
+
+
+ static inline int
++__attribute ((always_inline))
+ internal_ucs4le_loop (struct __gconv_step *step,
+ struct __gconv_step_data *step_data,
+ const unsigned char **inptrp, const unsigned char *inend,
+@@ -440,9 +452,11 @@
+ #if __BYTE_ORDER == __BIG_ENDIAN
+ /* Sigh, we have to do some real work. */
+ size_t cnt;
++ uint32_t *outptr32 = (uint32_t *) outptr;
+
+ for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
+- *((uint32_t *) outptr)++ = bswap_32 (*(const uint32_t *) inptr);
++ *outptr32++ = bswap_32 (*(const uint32_t *) inptr);
++ outptr = (unsigned char *) outptr32;
+
+ *inptrp = inptr;
+ *outptrp = outptr;
+@@ -467,6 +481,7 @@
+
+ #ifndef _STRING_ARCH_unaligned
+ static inline int
++__attribute ((always_inline))
+ internal_ucs4le_loop_unaligned (struct __gconv_step *step,
+ struct __gconv_step_data *step_data,
+ const unsigned char **inptrp,
+@@ -518,6 +533,7 @@
+
+
+ static inline int
++__attribute ((always_inline))
+ internal_ucs4le_loop_single (struct __gconv_step *step,
+ struct __gconv_step_data *step_data,
+ const unsigned char **inptrp,
+@@ -546,12 +562,17 @@
+ (*outptrp)[2] = state->__value.__wchb[1];
+ (*outptrp)[3] = state->__value.__wchb[0];
+
+- *outptrp += 4;
+ #else
+ /* XXX unaligned */
+- *(*((uint32_t **) outptrp)++) = state->__value.__wch;
++ (*outptrp)[0] = state->__value.__wchb[0];
++ (*outptrp)[1] = state->__value.__wchb[1];
++ (*outptrp)[2] = state->__value.__wchb[2];
++ (*outptrp)[3] = state->__value.__wchb[3];
++
+ #endif
+
++ *outptrp += 4;
++
+ /* Clear the state buffer. */
+ state->__count &= ~7;
+
+@@ -573,6 +594,7 @@
+
+
+ static inline int
++__attribute ((always_inline))
+ ucs4le_internal_loop (struct __gconv_step *step,
+ struct __gconv_step_data *step_data,
+ const unsigned char **inptrp, const unsigned char *inend,
+@@ -616,7 +638,8 @@
+ return __GCONV_ILLEGAL_INPUT;
+ }
+
+- *((uint32_t *) outptr)++ = inval;
++ *((uint32_t *) outptr) = inval;
++ outptr += sizeof (uint32_t);
+ }
+
+ *inptrp = inptr;
+@@ -638,6 +661,7 @@
+
+ #ifndef _STRING_ARCH_unaligned
+ static inline int
++__attribute ((always_inline))
+ ucs4le_internal_loop_unaligned (struct __gconv_step *step,
+ struct __gconv_step_data *step_data,
+ const unsigned char **inptrp,
+@@ -711,6 +735,7 @@
+
+
+ static inline int
++__attribute ((always_inline))
+ ucs4le_internal_loop_single (struct __gconv_step *step,
+ struct __gconv_step_data *step_data,
+ const unsigned char **inptrp,
+@@ -796,7 +821,8 @@
+ } \
+ else \
+ /* It's an one byte sequence. */ \
+- *((uint32_t *) outptr)++ = *inptr++; \
++ *((uint32_t *) outptr) = *inptr++; \
++ outptr += sizeof (uint32_t); \
+ }
+ #define LOOP_NEED_FLAGS
+ #include <iconv/loop.c>
+@@ -826,7 +852,8 @@
+ } \
+ else \
+ /* It's an one byte sequence. */ \
+- *outptr++ = *((const uint32_t *) inptr)++; \
++ *outptr++ = *((const uint32_t *) inptr); \
++ inptr += sizeof (uint32_t); \
+ }
+ #define LOOP_NEED_FLAGS
+ #include <iconv/loop.c>
+@@ -859,7 +886,7 @@
+ else if (__builtin_expect (wc <= 0x7fffffff, 1)) \
+ { \
+ size_t step; \
+- char *start; \
++ unsigned char *start; \
+ \
+ for (step = 2; step < 6; ++step) \
+ if ((wc & (~(uint32_t)0 << (5 * step + 1))) == 0) \
+@@ -875,13 +902,12 @@
+ start = outptr; \
+ *outptr = (unsigned char) (~0xff >> step); \
+ outptr += step; \
+- --step; \
+ do \
+ { \
+- start[step] = 0x80 | (wc & 0x3f); \
++ start[--step] = 0x80 | (wc & 0x3f); \
+ wc >>= 6; \
+ } \
+- while (--step > 0); \
++ while (step > 1); \
+ start[0] |= wc; \
+ } \
+ else \
+@@ -963,18 +989,17 @@
+ } \
+ else \
+ { \
+- int skipped; \
+- \
+ /* Search the end of this ill-formed UTF-8 character. This \
+ is the next byte with (x & 0xc0) != 0x80. */ \
+- skipped = 0; \
++ i = 0; \
+ do \
+- ++skipped; \
+- while (inptr + skipped < inend \
+- && (*(inptr + skipped) & 0xc0) == 0x80 \
+- && skipped < 5); \
++ ++i; \
++ while (inptr + i < inend \
++ && (*(inptr + i) & 0xc0) == 0x80 \
++ && i < 5); \
+ \
+- STANDARD_FROM_LOOP_ERR_HANDLER (skipped); \
++ errout: \
++ STANDARD_FROM_LOOP_ERR_HANDLER (i); \
+ } \
+ \
+ if (__builtin_expect (inptr + cnt > inend, 0)) \
+@@ -991,7 +1016,7 @@
+ break; \
+ } \
+ \
+- STANDARD_FROM_LOOP_ERR_HANDLER (i); \
++ goto errout; \
+ } \
+ \
+ /* Read the possible remaining bytes. */ \
+@@ -1013,14 +1038,15 @@
+ if (i < cnt || (cnt > 2 && (ch >> (5 * cnt - 4)) == 0)) \
+ { \
+ /* This is an illegal encoding. */ \
+- STANDARD_FROM_LOOP_ERR_HANDLER (i); \
++ goto errout; \
+ } \
+ \
+ inptr += cnt; \
+ } \
+ \
+ /* Now adjust the pointers and store the result. */ \
+- *((uint32_t *) outptr)++ = ch; \
++ *((uint32_t *) outptr) = ch; \
++ outptr += sizeof (uint32_t); \
+ }
+ #define LOOP_NEED_FLAGS
+
+@@ -1132,7 +1158,7 @@
+ #define LOOPFCT FROM_LOOP
+ #define BODY \
+ { \
+- uint16_t u1 = *((const uint16_t *) inptr); \
++ uint16_t u1 = get16 (inptr); \
+ \
+ if (__builtin_expect (u1 >= 0xd800 && u1 < 0xe000, 0)) \
+ { \
+@@ -1141,7 +1167,8 @@
+ STANDARD_FROM_LOOP_ERR_HANDLER (2); \
+ } \
+ \
+- *((uint32_t *) outptr)++ = u1; \
++ *((uint32_t *) outptr) = u1; \
++ outptr += sizeof (uint32_t); \
+ inptr += 2; \
+ }
+ #define LOOP_NEED_FLAGS
+@@ -1189,7 +1216,8 @@
+ } \
+ else \
+ { \
+- *((uint16_t *) outptr)++ = val; \
++ put16 (outptr, val); \
++ outptr += sizeof (uint16_t); \
+ inptr += 4; \
+ } \
+ }
+@@ -1214,7 +1242,7 @@
+ #define LOOPFCT FROM_LOOP
+ #define BODY \
+ { \
+- uint16_t u1 = bswap_16 (*((const uint16_t *) inptr)); \
++ uint16_t u1 = bswap_16 (get16 (inptr)); \
+ \
+ if (__builtin_expect (u1 >= 0xd800 && u1 < 0xe000, 0)) \
+ { \
+@@ -1230,7 +1258,8 @@
+ continue; \
+ } \
+ \
+- *((uint32_t *) outptr)++ = u1; \
++ *((uint32_t *) outptr) = u1; \
++ outptr += sizeof (uint32_t); \
+ inptr += 2; \
+ }
+ #define LOOP_NEED_FLAGS
+@@ -1279,7 +1308,8 @@
+ } \
+ else \
+ { \
+- *((uint16_t *) outptr)++ = bswap_16 (val); \
++ put16 (outptr, bswap_16 (val)); \
++ outptr += sizeof (uint16_t); \
+ inptr += 4; \
+ } \
+ }
+diff -ru glibc-2.3.2.27.9.7.orig/iconv/iconvconfig.c glibc-2.3.2.27.9.7/iconv/iconvconfig.c
+--- glibc-2.3.2.27.9.7.orig/iconv/iconvconfig.c 2003-01-02 21:12:03.000000000 +0100
++++ glibc-2.3.2.27.9.7/iconv/iconvconfig.c 2006-10-25 02:04:36.000000000 +0200
+@@ -1010,7 +1010,7 @@
+ char finalname[prefix_len + sizeof (GCONV_MODULES_CACHE)];
+
+ /* Function to insert the names. */
+- static void name_insert (const void *nodep, VISIT value, int level)
++ auto void name_insert (const void *nodep, VISIT value, int level)
+ {
+ struct name *name;
+ unsigned int idx;
+diff -ru glibc-2.3.2.27.9.7.orig/linuxthreads/sysdeps/i386/Makefile glibc-2.3.2.27.9.7/linuxthreads/sysdeps/i386/Makefile
+--- glibc-2.3.2.27.9.7.orig/linuxthreads/sysdeps/i386/Makefile 2002-12-28 23:06:49.000000000 +0100
++++ glibc-2.3.2.27.9.7/linuxthreads/sysdeps/i386/Makefile 2006-10-25 02:28:44.000000000 +0200
+@@ -1,7 +1,7 @@
+ ifeq ($(subdir),linuxthreads)
+ # On i686 we must avoid generating the trampoline functions generated
+ # to get the GOT pointer.
+-CFLAGS-pt-initfini.s += -march=i386 -mcpu=i386
++CFLAGS-pt-initfini.s += -march=i386 -mcpu=i386 -fno-unit-at-a-time
+
+ # Most files must not be compiled without frame pointer since we need
+ # the frame base address which is stored in %ebp unless the frame pointer
+diff -ru glibc-2.3.2.27.9.7.orig/locale/weight.h glibc-2.3.2.27.9.7/locale/weight.h
+--- glibc-2.3.2.27.9.7.orig/locale/weight.h 2001-07-06 06:55:33.000000000 +0200
++++ glibc-2.3.2.27.9.7/locale/weight.h 2006-10-25 00:16:45.000000000 +0200
+@@ -18,7 +18,8 @@
+ 02111-1307 USA. */
+
+ /* Find index of weight. */
+-static inline int32_t
++auto inline int32_t
++__attribute ((always_inline))
+ findidx (const unsigned char **cpp)
+ {
+ int_fast32_t i = table[*(*cpp)++];
+diff -ru glibc-2.3.2.27.9.7.orig/locale/weightwc.h glibc-2.3.2.27.9.7/locale/weightwc.h
+--- glibc-2.3.2.27.9.7.orig/locale/weightwc.h 2001-08-07 06:26:15.000000000 +0200
++++ glibc-2.3.2.27.9.7/locale/weightwc.h 2006-10-25 00:24:11.000000000 +0200
+@@ -18,7 +18,8 @@
+ 02111-1307 USA. */
+
+ /* Find index of weight. */
+-static inline int32_t
++auto inline int32_t
++__attribute ((always_inline))
+ findidx (const wint_t **cpp)
+ {
+ int32_t i;
+diff -ru glibc-2.3.2.27.9.7.orig/malloc/obstack.c glibc-2.3.2.27.9.7/malloc/obstack.c
+--- glibc-2.3.2.27.9.7.orig/malloc/obstack.c 2002-11-01 21:43:32.000000000 +0100
++++ glibc-2.3.2.27.9.7/malloc/obstack.c 2006-10-25 03:04:11.000000000 +0200
+@@ -1,7 +1,7 @@
+ /* obstack.c - subroutines used implicitly by object stack macros
+- Copyright (C) 1988-1994, 1996-2001, 2002 Free Software Foundation, Inc.
+- This file is part of the GNU C Library. Its master source is NOT part of
+- the C library, however. The master source lives in /gd/gnu/lib.
++ Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996, 1997, 1998,
++ 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
++ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+@@ -15,17 +15,19 @@
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+- 02111-1307 USA. */
++ Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ Boston, MA 02110-1301, USA. */
++
+
+ #ifdef HAVE_CONFIG_H
+ # include <config.h>
+ #endif
+
+ #ifdef _LIBC
+-#include <obstack.h>
++# include <obstack.h>
++# include <shlib-compat.h>
+ #else
+-#include "obstack.h"
++# include "obstack.h"
+ #endif
+
+ /* NOTE BEFORE MODIFYING THIS FILE: This version number must be
+@@ -50,28 +52,38 @@
+ # endif
+ #endif
+
+-#if defined _LIBC && defined USE_IN_LIBIO
+-# include <wchar.h>
+-#endif
++#include <stddef.h>
+
+ #ifndef ELIDE_CODE
+
+
+-# if defined __STDC__ && __STDC__
+-# define POINTER void *
+-# else
+-# define POINTER char *
++# if HAVE_INTTYPES_H
++# include <inttypes.h>
++# endif
++# if HAVE_STDINT_H || defined _LIBC
++# include <stdint.h>
+ # endif
+
+ /* Determine default alignment. */
+-struct fooalign {char x; double d;};
+-# define DEFAULT_ALIGNMENT \
+- ((PTR_INT_TYPE) ((char *) &((struct fooalign *) 0)->d - (char *) 0))
++union fooround
++{
++ uintmax_t i;
++ long double d;
++ void *p;
++};
++struct fooalign
++{
++ char c;
++ union fooround u;
++};
+ /* If malloc were really smart, it would round addresses to DEFAULT_ALIGNMENT.
+ But in fact it might be less smart and round addresses to as much as
+ DEFAULT_ROUNDING. So we prepare for it to do that. */
+-union fooround {long x; double d;};
+-# define DEFAULT_ROUNDING (sizeof (union fooround))
++enum
++ {
++ DEFAULT_ALIGNMENT = offsetof (struct fooalign, u),
++ DEFAULT_ROUNDING = sizeof (union fooround)
++ };
+
+ /* When we copy a long block of data, this is the unit to do it with.
+ On some machines, copying successive ints does not work;
+@@ -88,27 +100,27 @@
+ abort gracefully or use longjump - but shouldn't return. This
+ variable by default points to the internal function
+ `print_and_abort'. */
+-# if defined __STDC__ && __STDC__
+ static void print_and_abort (void);
+ void (*obstack_alloc_failed_handler) (void) = print_and_abort;
+-# else
+-static void print_and_abort ();
+-void (*obstack_alloc_failed_handler) () = print_and_abort;
+-# endif
+
+ /* Exit value used when `print_and_abort' is used. */
+-# if defined __GNU_LIBRARY__ || defined HAVE_STDLIB_H
+-# include <stdlib.h>
+-# endif
+-# ifndef EXIT_FAILURE
+-# define EXIT_FAILURE 1
+-# endif
++# include <stdlib.h>
++# ifdef _LIBC
+ int obstack_exit_failure = EXIT_FAILURE;
++# else
++# include "exitfail.h"
++# define obstack_exit_failure exit_failure
++# endif
+
+-/* The non-GNU-C macros copy the obstack into this global variable
+- to avoid multiple evaluation. */
+-
+-struct obstack *_obstack;
++# ifdef _LIBC
++# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)
++/* A looong time ago (before 1994, anyway; we're not sure) this global variable
++ was used by non-GNU-C macros to avoid multiple evaluation. The GNU C
++ library still exports it because somebody might use it. */
++struct obstack *_obstack_compat;
++compat_symbol (libc, _obstack_compat, _obstack, GLIBC_2_0);
++# endif
++# endif
+
+ /* Define a macro that either calls functions with the traditional malloc/free
+ calling interface, or calls functions with the mmalloc/mfree interface
+@@ -116,33 +128,18 @@
+ For free, do not use ?:, since some compilers, like the MIPS compilers,
+ do not allow (expr) ? void : void. */
+
+-# if defined __STDC__ && __STDC__
+-# define CALL_CHUNKFUN(h, size) \
++# define CALL_CHUNKFUN(h, size) \
+ (((h) -> use_extra_arg) \
+ ? (*(h)->chunkfun) ((h)->extra_arg, (size)) \
+ : (*(struct _obstack_chunk *(*) (long)) (h)->chunkfun) ((size)))
+
+-# define CALL_FREEFUN(h, old_chunk) \
++# define CALL_FREEFUN(h, old_chunk) \
+ do { \
+ if ((h) -> use_extra_arg) \
+ (*(h)->freefun) ((h)->extra_arg, (old_chunk)); \
+ else \
+ (*(void (*) (void *)) (h)->freefun) ((old_chunk)); \
+ } while (0)
+-# else
+-# define CALL_CHUNKFUN(h, size) \
+- (((h) -> use_extra_arg) \
+- ? (*(h)->chunkfun) ((h)->extra_arg, (size)) \
+- : (*(struct _obstack_chunk *(*) ()) (h)->chunkfun) ((size)))
+-
+-# define CALL_FREEFUN(h, old_chunk) \
+- do { \
+- if ((h) -> use_extra_arg) \
+- (*(h)->freefun) ((h)->extra_arg, (old_chunk)); \
+- else \
+- (*(void (*) ()) (h)->freefun) ((old_chunk)); \
+- } while (0)
+-# endif
+
+
+ /* Initialize an obstack H for use. Specify chunk size SIZE (0 means default).
+@@ -154,22 +151,15 @@
+ allocation fails. */
+
+ int
+-_obstack_begin (h, size, alignment, chunkfun, freefun)
+- struct obstack *h;
+- int size;
+- int alignment;
+-# if defined __STDC__ && __STDC__
+- POINTER (*chunkfun) (long);
+- void (*freefun) (void *);
+-# else
+- POINTER (*chunkfun) ();
+- void (*freefun) ();
+-# endif
++_obstack_begin (struct obstack *h,
++ int size, int alignment,
++ void *(*chunkfun) (long),
++ void (*freefun) (void *))
+ {
+ register struct _obstack_chunk *chunk; /* points to new chunk */
+
+ if (alignment == 0)
+- alignment = (int) DEFAULT_ALIGNMENT;
++ alignment = DEFAULT_ALIGNMENT;
+ if (size == 0)
+ /* Default size is what GNU malloc can fit in a 4096-byte block. */
+ {
+@@ -187,13 +177,8 @@
+ size = 4096 - extra;
+ }
+
+-# if defined __STDC__ && __STDC__
+ h->chunkfun = (struct _obstack_chunk * (*)(void *, long)) chunkfun;
+ h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun;
+-# else
+- h->chunkfun = (struct _obstack_chunk * (*)()) chunkfun;
+- h->freefun = freefun;
+-# endif
+ h->chunk_size = size;
+ h->alignment_mask = alignment - 1;
+ h->use_extra_arg = 0;
+@@ -201,7 +186,8 @@
+ chunk = h->chunk = CALL_CHUNKFUN (h, h -> chunk_size);
+ if (!chunk)
+ (*obstack_alloc_failed_handler) ();
+- h->next_free = h->object_base = chunk->contents;
++ h->next_free = h->object_base = __PTR_ALIGN ((char *) chunk, chunk->contents,
++ alignment - 1);
+ h->chunk_limit = chunk->limit
+ = (char *) chunk + h->chunk_size;
+ chunk->prev = 0;
+@@ -212,23 +198,15 @@
+ }
+
+ int
+-_obstack_begin_1 (h, size, alignment, chunkfun, freefun, arg)
+- struct obstack *h;
+- int size;
+- int alignment;
+-# if defined __STDC__ && __STDC__
+- POINTER (*chunkfun) (POINTER, long);
+- void (*freefun) (POINTER, POINTER);
+-# else
+- POINTER (*chunkfun) ();
+- void (*freefun) ();
+-# endif
+- POINTER arg;
++_obstack_begin_1 (struct obstack *h, int size, int alignment,
++ void *(*chunkfun) (void *, long),
++ void (*freefun) (void *, void *),
++ void *arg)
+ {
+ register struct _obstack_chunk *chunk; /* points to new chunk */
+
+ if (alignment == 0)
+- alignment = (int) DEFAULT_ALIGNMENT;
++ alignment = DEFAULT_ALIGNMENT;
+ if (size == 0)
+ /* Default size is what GNU malloc can fit in a 4096-byte block. */
+ {
+@@ -246,13 +224,8 @@
+ size = 4096 - extra;
+ }
+
+-# if defined __STDC__ && __STDC__
+ h->chunkfun = (struct _obstack_chunk * (*)(void *,long)) chunkfun;
+ h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun;
+-# else
+- h->chunkfun = (struct _obstack_chunk * (*)()) chunkfun;
+- h->freefun = freefun;
+-# endif
+ h->chunk_size = size;
+ h->alignment_mask = alignment - 1;
+ h->extra_arg = arg;
+@@ -261,7 +234,8 @@
+ chunk = h->chunk = CALL_CHUNKFUN (h, h -> chunk_size);
+ if (!chunk)
+ (*obstack_alloc_failed_handler) ();
+- h->next_free = h->object_base = chunk->contents;
++ h->next_free = h->object_base = __PTR_ALIGN ((char *) chunk, chunk->contents,
++ alignment - 1);
+ h->chunk_limit = chunk->limit
+ = (char *) chunk + h->chunk_size;
+ chunk->prev = 0;
+@@ -278,9 +252,7 @@
+ to the beginning of the new one. */
+
+ void
+-_obstack_newchunk (h, length)
+- struct obstack *h;
+- int length;
++_obstack_newchunk (struct obstack *h, int length)
+ {
+ register struct _obstack_chunk *old_chunk = h->chunk;
+ register struct _obstack_chunk *new_chunk;
+@@ -305,8 +277,7 @@
+
+ /* Compute an aligned object_base in the new chunk */
+ object_base =
+- __INT_TO_PTR ((__PTR_TO_INT (new_chunk->contents) + h->alignment_mask)
+- & ~ (h->alignment_mask));
++ __PTR_ALIGN ((char *) new_chunk, new_chunk->contents, h->alignment_mask);
+
+ /* Move the existing object to the new chunk.
+ Word at a time is fast and is safe if the object
+@@ -331,7 +302,10 @@
+ /* If the object just copied was the only data in OLD_CHUNK,
+ free that chunk and remove it from the chain.
+ But not if that chunk might contain an empty object. */
+- if (h->object_base == old_chunk->contents && ! h->maybe_empty_object)
++ if (! h->maybe_empty_object
++ && (h->object_base
++ == __PTR_ALIGN ((char *) old_chunk, old_chunk->contents,
++ h->alignment_mask)))
+ {
+ new_chunk->prev = old_chunk->prev;
+ CALL_FREEFUN (h, old_chunk);
+@@ -342,24 +316,20 @@
+ /* The new chunk certainly contains no empty object yet. */
+ h->maybe_empty_object = 0;
+ }
+-#ifdef _LIBC
++# ifdef _LIBC
+ libc_hidden_def (_obstack_newchunk)
+-#endif
++# endif
+
+ /* Return nonzero if object OBJ has been allocated from obstack H.
+ This is here for debugging.
+ If you use it in a program, you are probably losing. */
+
+-# if defined __STDC__ && __STDC__
+ /* Suppress -Wmissing-prototypes warning. We don't want to declare this in
+ obstack.h because it is just for debugging. */
+-int _obstack_allocated_p (struct obstack *h, POINTER obj);
+-# endif
++int _obstack_allocated_p (struct obstack *h, void *obj);
+
+ int
+-_obstack_allocated_p (h, obj)
+- struct obstack *h;
+- POINTER obj;
++_obstack_allocated_p (struct obstack *h, void *obj)
+ {
+ register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */
+ register struct _obstack_chunk *plp; /* point to previous chunk if any */
+@@ -368,7 +338,7 @@
+ /* We use >= rather than > since the object cannot be exactly at
+ the beginning of the chunk but might be an empty object exactly
+ at the end of an adjacent chunk. */
+- while (lp != 0 && ((POINTER) lp >= obj || (POINTER) (lp)->limit < obj))
++ while (lp != 0 && ((void *) lp >= obj || (void *) (lp)->limit < obj))
+ {
+ plp = lp->prev;
+ lp = plp;
+@@ -381,13 +351,8 @@
+
+ # undef obstack_free
+
+-/* This function has two names with identical definitions.
+- This is the first one, called from non-ANSI code. */
+-
+ void
+-_obstack_free (h, obj)
+- struct obstack *h;
+- POINTER obj;
++obstack_free (struct obstack *h, void *obj)
+ {
+ register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */
+ register struct _obstack_chunk *plp; /* point to previous chunk if any */
+@@ -396,7 +361,7 @@
+ /* We use >= because there cannot be an object at the beginning of a chunk.
+ But there can be an empty object at that address
+ at the end of another chunk. */
+- while (lp != 0 && ((POINTER) lp >= obj || (POINTER) (lp)->limit < obj))
++ while (lp != 0 && ((void *) lp >= obj || (void *) (lp)->limit < obj))
+ {
+ plp = lp->prev;
+ CALL_FREEFUN (h, lp);
+@@ -416,48 +381,14 @@
+ abort ();
+ }
+
+-/* This function is used from ANSI code. */
+-
+-#ifdef _LIBC
+-strong_alias (_obstack_free, obstack_free)
+-#else
+-
+-void
+-obstack_free (h, obj)
+- struct obstack *h;
+- POINTER obj;
+-{
+- register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */
+- register struct _obstack_chunk *plp; /* point to previous chunk if any */
+-
+- lp = h->chunk;
+- /* We use >= because there cannot be an object at the beginning of a chunk.
+- But there can be an empty object at that address
+- at the end of another chunk. */
+- while (lp != 0 && ((POINTER) lp >= obj || (POINTER) (lp)->limit < obj))
+- {
+- plp = lp->prev;
+- CALL_FREEFUN (h, lp);
+- lp = plp;
+- /* If we switch chunks, we can't tell whether the new current
+- chunk contains an empty object, so assume that it may. */
+- h->maybe_empty_object = 1;
+- }
+- if (lp)
+- {
+- h->object_base = h->next_free = (char *) (obj);
+- h->chunk_limit = lp->limit;
+- h->chunk = lp;
+- }
+- else if (obj != 0)
+- /* obj is not in any of the chunks! */
+- abort ();
+-}
+-#endif
++# ifdef _LIBC
++/* Older versions of libc used a function _obstack_free intended to be
++ called by non-GCC compilers. */
++strong_alias (obstack_free, _obstack_free)
++# endif
+
+ int
+-_obstack_memory_used (h)
+- struct obstack *h;
++_obstack_memory_used (struct obstack *h)
+ {
+ register struct _obstack_chunk* lp;
+ register int nbytes = 0;
+@@ -470,16 +401,15 @@
+ }
+
+ /* Define the error handler. */
++# ifdef _LIBC
++# include <libintl.h>
++# else
++# include "gettext.h"
++# endif
+ # ifndef _
+-# if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC
+-# include <libintl.h>
+-# ifndef _
+-# define _(Str) gettext (Str)
+-# endif
+-# else
+-# define _(Str) (Str)
+-# endif
++# define _(msgid) gettext (msgid)
+ # endif
++
+ # ifdef _LIBC
+ # include <libio/iolibio.h>
+ # endif
+@@ -493,7 +423,7 @@
+
+ static void
+ __attribute__ ((noreturn))
+-print_and_abort ()
++print_and_abort (void)
+ {
+ /* Don't change any of these strings. Yes, it would be possible to add
+ the newline to the string and use fputs or so. But this must not
+@@ -508,127 +438,5 @@
+ fprintf (stderr, "%s\n", _("memory exhausted"));
+ exit (obstack_exit_failure);
+ }
+-
+-# if 0
+-/* These are now turned off because the applications do not use it
+- and it uses bcopy via obstack_grow, which causes trouble on sysV. */
+-
+-/* Now define the functional versions of the obstack macros.
+- Define them to simply use the corresponding macros to do the job. */
+-
+-# if defined __STDC__ && __STDC__
+-/* These function definitions do not work with non-ANSI preprocessors;
+- they won't pass through the macro names in parentheses. */
+-
+-/* The function names appear in parentheses in order to prevent
+- the macro-definitions of the names from being expanded there. */
+-
+-POINTER (obstack_base) (obstack)
+- struct obstack *obstack;
+-{
+- return obstack_base (obstack);
+-}
+-
+-POINTER (obstack_next_free) (obstack)
+- struct obstack *obstack;
+-{
+- return obstack_next_free (obstack);
+-}
+-
+-int (obstack_object_size) (obstack)
+- struct obstack *obstack;
+-{
+- return obstack_object_size (obstack);
+-}
+-
+-int (obstack_room) (obstack)
+- struct obstack *obstack;
+-{
+- return obstack_room (obstack);
+-}
+-
+-int (obstack_make_room) (obstack, length)
+- struct obstack *obstack;
+- int length;
+-{
+- return obstack_make_room (obstack, length);
+-}
+-
+-void (obstack_grow) (obstack, data, length)
+- struct obstack *obstack;
+- const POINTER data;
+- int length;
+-{
+- obstack_grow (obstack, data, length);
+-}
+-
+-void (obstack_grow0) (obstack, data, length)
+- struct obstack *obstack;
+- const POINTER data;
+- int length;
+-{
+- obstack_grow0 (obstack, data, length);
+-}
+-
+-void (obstack_1grow) (obstack, character)
+- struct obstack *obstack;
+- int character;
+-{
+- obstack_1grow (obstack, character);
+-}
+-
+-void (obstack_blank) (obstack, length)
+- struct obstack *obstack;
+- int length;
+-{
+- obstack_blank (obstack, length);
+-}
+-
+-void (obstack_1grow_fast) (obstack, character)
+- struct obstack *obstack;
+- int character;
+-{
+- obstack_1grow_fast (obstack, character);
+-}
+-
+-void (obstack_blank_fast) (obstack, length)
+- struct obstack *obstack;
+- int length;
+-{
+- obstack_blank_fast (obstack, length);
+-}
+-
+-POINTER (obstack_finish) (obstack)
+- struct obstack *obstack;
+-{
+- return obstack_finish (obstack);
+-}
+-
+-POINTER (obstack_alloc) (obstack, length)
+- struct obstack *obstack;
+- int length;
+-{
+- return obstack_alloc (obstack, length);
+-}
+-
+-POINTER (obstack_copy) (obstack, address, length)
+- struct obstack *obstack;
+- const POINTER address;
+- int length;
+-{
+- return obstack_copy (obstack, address, length);
+-}
+-
+-POINTER (obstack_copy0) (obstack, address, length)
+- struct obstack *obstack;
+- const POINTER address;
+- int length;
+-{
+- return obstack_copy0 (obstack, address, length);
+-}
+-
+-# endif /* __STDC__ */
+-
+-# endif /* 0 */
+
+ #endif /* !ELIDE_CODE */
+diff -ru glibc-2.3.2.27.9.7.orig/malloc/obstack.h glibc-2.3.2.27.9.7/malloc/obstack.h
+--- glibc-2.3.2.27.9.7.orig/malloc/obstack.h 2003-01-04 22:42:30.000000000 +0100
++++ glibc-2.3.2.27.9.7/malloc/obstack.h 2006-10-25 02:59:02.000000000 +0200
+@@ -1,7 +1,7 @@
+ /* obstack.h - object stack macros
+- Copyright (C) 1988,89,90,91,92,93,94,96,97,98,99 Free Software Foundation, Inc.
+- This file is part of the GNU C Library. Its master source is NOT part of
+- the C library, however. The master source lives in /gd/gnu/lib.
++ Copyright (C) 1988-1994,1996-1999,2003,2004,2005
++ Free Software Foundation, Inc.
++ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+@@ -15,8 +15,8 @@
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+- 02111-1307 USA. */
++ Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ Boston, MA 02110-1301, USA. */
+
+ /* Summary:
+
+@@ -110,49 +110,36 @@
+ extern "C" {
+ #endif
+
+-/* We use subtraction of (char *) 0 instead of casting to int
+- because on word-addressable machines a simple cast to int
+- may ignore the byte-within-word field of the pointer. */
+-
+-#ifndef __PTR_TO_INT
+-# define __PTR_TO_INT(P) ((P) - (char *) 0)
+-#endif
+-
+-#ifndef __INT_TO_PTR
+-#if defined __STDC__ && __STDC__
+-# define __INT_TO_PTR(P) ((void *) ((P) + (char *) 0))
+-#else
+-# define __INT_TO_PTR(P) ((P) + (char *) 0)
+-#endif
+-#endif
+-
+-/* We need the type of the resulting object. If __PTRDIFF_TYPE__ is
++/* We need the type of a pointer subtraction. If __PTRDIFF_TYPE__ is
+ defined, as with GNU C, use that; that way we don't pollute the
+- namespace with <stddef.h>'s symbols. Otherwise, if <stddef.h> is
+- available, include it and use ptrdiff_t. In traditional C, long is
+- the best that we can do. */
++ namespace with <stddef.h>'s symbols. Otherwise, include <stddef.h>
++ and use ptrdiff_t. */
+
+ #ifdef __PTRDIFF_TYPE__
+ # define PTR_INT_TYPE __PTRDIFF_TYPE__
+ #else
+-# ifdef HAVE_STDDEF_H
+-# include <stddef.h>
+-# define PTR_INT_TYPE ptrdiff_t
+-# else
+-# define PTR_INT_TYPE long
+-# endif
++# include <stddef.h>
++# define PTR_INT_TYPE ptrdiff_t
+ #endif
+
+-#if defined _LIBC || defined HAVE_STRING_H
+-# include <string.h>
+-# define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
+-#else
+-# ifdef memcpy
+-# define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N))
+-# else
+-# define _obstack_memcpy(To, From, N) bcopy ((From), (To), (N))
+-# endif
+-#endif
++/* If B is the base of an object addressed by P, return the result of
++ aligning P to the next multiple of A + 1. B and P must be of type
++ char *. A + 1 must be a power of 2. */
++
++#define __BPTR_ALIGN(B, P, A) ((B) + (((P) - (B) + (A)) & ~(A)))
++
++/* Similiar to _BPTR_ALIGN (B, P, A), except optimize the common case
++ where pointers can be converted to integers, aligned as integers,
++ and converted back again. If PTR_INT_TYPE is narrower than a
++ pointer (e.g., the AS/400), play it safe and compute the alignment
++ relative to B. Otherwise, use the faster strategy of computing the
++ alignment relative to 0. */
++
++#define __PTR_ALIGN(B, P, A) \
++ __BPTR_ALIGN (sizeof (PTR_INT_TYPE) < sizeof (void *) ? (B) : (char *) 0, \
++ P, A)
++
++#include <string.h>
+
+ struct _obstack_chunk /* Lives at front of each chunk. */
+ {
+@@ -168,20 +155,18 @@
+ char *object_base; /* address of object we are building */
+ char *next_free; /* where to add next char to current object */
+ char *chunk_limit; /* address of char after current chunk */
+- PTR_INT_TYPE temp; /* Temporary for some macros. */
++ union
++ {
++ PTR_INT_TYPE tempint;
++ void *tempptr;
++ } temp; /* Temporary for some macros. */
+ int alignment_mask; /* Mask of alignment for each object. */
+-#if defined __STDC__ && __STDC__
+ /* These prototypes vary based on `use_extra_arg', and we use
+ casts to the prototypeless function type in all assignments,
+ but having prototypes here quiets -Wstrict-prototypes. */
+ struct _obstack_chunk *(*chunkfun) (void *, long);
+ void (*freefun) (void *, struct _obstack_chunk *);
+ void *extra_arg; /* first arg for chunk alloc/dealloc funcs */
+-#else
+- struct _obstack_chunk *(*chunkfun) (); /* User's fcn to allocate a chunk. */
+- void (*freefun) (); /* User's function to free a chunk. */
+- char *extra_arg; /* first arg for chunk alloc/dealloc funcs */
+-#endif
+ unsigned use_extra_arg:1; /* chunk alloc/dealloc funcs take extra arg */
+ unsigned maybe_empty_object:1;/* There is a possibility that the current
+ chunk contains a zero-length object. This
+@@ -194,77 +179,22 @@
+
+ /* Declare the external functions we use; they are in obstack.c. */
+
+-#if defined __STDC__ && __STDC__
+ extern void _obstack_newchunk (struct obstack *, int);
+-extern void _obstack_free (struct obstack *, void *);
+ extern int _obstack_begin (struct obstack *, int, int,
+ void *(*) (long), void (*) (void *));
+ extern int _obstack_begin_1 (struct obstack *, int, int,
+ void *(*) (void *, long),
+ void (*) (void *, void *), void *);
+ extern int _obstack_memory_used (struct obstack *);
+-#else
+-extern void _obstack_newchunk ();
+-extern void _obstack_free ();
+-extern int _obstack_begin ();
+-extern int _obstack_begin_1 ();
+-extern int _obstack_memory_used ();
+-#endif
+-
+-#if defined __STDC__ && __STDC__
+-
+-/* Do the function-declarations after the structs
+- but before defining the macros. */
+-
+-void obstack_init (struct obstack *obstack);
+-
+-void * obstack_alloc (struct obstack *obstack, int size);
+-
+-void * obstack_copy (struct obstack *obstack, const void *address, int size);
+-void * obstack_copy0 (struct obstack *obstack, const void *address, int size);
+
+ void obstack_free (struct obstack *obstack, void *block);
+
+-void obstack_blank (struct obstack *obstack, int size);
+-
+-void obstack_grow (struct obstack *obstack, const void *data, int size);
+-void obstack_grow0 (struct obstack *obstack, const void *data, int size);
+-
+-void obstack_1grow (struct obstack *obstack, int data_char);
+-void obstack_ptr_grow (struct obstack *obstack, const void *data);
+-void obstack_int_grow (struct obstack *obstack, int data);
+-
+-void * obstack_finish (struct obstack *obstack);
+-
+-int obstack_object_size (struct obstack *obstack);
+-
+-int obstack_room (struct obstack *obstack);
+-void obstack_make_room (struct obstack *obstack, int size);
+-void obstack_1grow_fast (struct obstack *obstack, int data_char);
+-void obstack_ptr_grow_fast (struct obstack *obstack, const void *data);
+-void obstack_int_grow_fast (struct obstack *obstack, int data);
+-void obstack_blank_fast (struct obstack *obstack, int size);
+-
+-void * obstack_base (struct obstack *obstack);
+-void * obstack_next_free (struct obstack *obstack);
+-int obstack_alignment_mask (struct obstack *obstack);
+-int obstack_chunk_size (struct obstack *obstack);
+-int obstack_memory_used (struct obstack *obstack);
+-
+-#endif /* __STDC__ */
+-
+-/* Non-ANSI C cannot really support alternative functions for these macros,
+- so we do not declare them. */
+-
++
+ /* Error handler called when `obstack_chunk_alloc' failed to allocate
+ more memory. This can be set to a user defined function which
+ should either abort gracefully or use longjump - but shouldn't
+ return. The default action is to print a message and abort. */
+-#if defined __STDC__ && __STDC__
+ extern void (*obstack_alloc_failed_handler) (void);
+-#else
+-extern void (*obstack_alloc_failed_handler) ();
+-#endif
+
+ /* Exit value used when `print_and_abort' is used. */
+ extern int obstack_exit_failure;
+@@ -273,7 +203,7 @@
+ Note that this might not be the final address of the object
+ because a new chunk might be needed to hold the final size. */
+
+-#define obstack_base(h) ((h)->object_base)
++#define obstack_base(h) ((void *) (h)->object_base)
+
+ /* Size for allocating ordinary chunks. */
+
+@@ -287,67 +217,34 @@
+
+ #define obstack_alignment_mask(h) ((h)->alignment_mask)
+
+-/* To prevent prototype warnings provide complete argument list in
+- standard C version. */
+-#if defined __STDC__ && __STDC__
+-
+-# define obstack_init(h) \
++/* To prevent prototype warnings provide complete argument list. */
++#define obstack_init(h) \
+ _obstack_begin ((h), 0, 0, \
+- (void *(*) (long)) obstack_chunk_alloc, \
++ (void *(*) (long)) obstack_chunk_alloc, \
+ (void (*) (void *)) obstack_chunk_free)
+
+-# define obstack_begin(h, size) \
++#define obstack_begin(h, size) \
+ _obstack_begin ((h), (size), 0, \
+- (void *(*) (long)) obstack_chunk_alloc, \
++ (void *(*) (long)) obstack_chunk_alloc, \
+ (void (*) (void *)) obstack_chunk_free)
+
+-# define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
++#define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
+ _obstack_begin ((h), (size), (alignment), \
+- (void *(*) (long)) (chunkfun), \
++ (void *(*) (long)) (chunkfun), \
+ (void (*) (void *)) (freefun))
+
+-# define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
++#define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
+ _obstack_begin_1 ((h), (size), (alignment), \
+ (void *(*) (void *, long)) (chunkfun), \
+ (void (*) (void *, void *)) (freefun), (arg))
+
+-# define obstack_chunkfun(h, newchunkfun) \
++#define obstack_chunkfun(h, newchunkfun) \
+ ((h) -> chunkfun = (struct _obstack_chunk *(*)(void *, long)) (newchunkfun))
+
+-# define obstack_freefun(h, newfreefun) \
++#define obstack_freefun(h, newfreefun) \
+ ((h) -> freefun = (void (*)(void *, struct _obstack_chunk *)) (newfreefun))
+
+-#else
+-
+-# define obstack_init(h) \
+- _obstack_begin ((h), 0, 0, \
+- (void *(*) ()) obstack_chunk_alloc, \
+- (void (*) ()) obstack_chunk_free)
+-
+-# define obstack_begin(h, size) \
+- _obstack_begin ((h), (size), 0, \
+- (void *(*) ()) obstack_chunk_alloc, \
+- (void (*) ()) obstack_chunk_free)
+-
+-# define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \
+- _obstack_begin ((h), (size), (alignment), \
+- (void *(*) ()) (chunkfun), \
+- (void (*) ()) (freefun))
+-
+-# define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \
+- _obstack_begin_1 ((h), (size), (alignment), \
+- (void *(*) ()) (chunkfun), \
+- (void (*) ()) (freefun), (arg))
+-
+-# define obstack_chunkfun(h, newchunkfun) \
+- ((h) -> chunkfun = (struct _obstack_chunk *(*)()) (newchunkfun))
+-
+-# define obstack_freefun(h, newfreefun) \
+- ((h) -> freefun = (void (*)()) (newfreefun))
+-
+-#endif
+-
+-#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = achar)
++#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = (achar))
+
+ #define obstack_blank_fast(h,n) ((h)->next_free += (n))
+
+@@ -368,12 +265,12 @@
+
+ # define obstack_object_size(OBSTACK) \
+ __extension__ \
+- ({ struct obstack *__o = (OBSTACK); \
++ ({ struct obstack const *__o = (OBSTACK); \
+ (unsigned) (__o->next_free - __o->object_base); })
+
+ # define obstack_room(OBSTACK) \
+ __extension__ \
+- ({ struct obstack *__o = (OBSTACK); \
++ ({ struct obstack const *__o = (OBSTACK); \
+ (unsigned) (__o->chunk_limit - __o->next_free); })
+
+ # define obstack_make_room(OBSTACK,length) \
+@@ -386,8 +283,11 @@
+
+ # define obstack_empty_p(OBSTACK) \
+ __extension__ \
+- ({ struct obstack *__o = (OBSTACK); \
+- (__o->chunk->prev == 0 && __o->next_free - __o->chunk->contents == 0); })
++ ({ struct obstack const *__o = (OBSTACK); \
++ (__o->chunk->prev == 0 \
++ && __o->next_free == __PTR_ALIGN ((char *) __o->chunk, \
++ __o->chunk->contents, \
++ __o->alignment_mask)); })
+
+ # define obstack_grow(OBSTACK,where,length) \
+ __extension__ \
+@@ -395,7 +295,7 @@
+ int __len = (length); \
+ if (__o->next_free + __len > __o->chunk_limit) \
+ _obstack_newchunk (__o, __len); \
+- _obstack_memcpy (__o->next_free, (where), __len); \
++ memcpy (__o->next_free, where, __len); \
+ __o->next_free += __len; \
+ (void) 0; })
+
+@@ -405,7 +305,7 @@
+ int __len = (length); \
+ if (__o->next_free + __len + 1 > __o->chunk_limit) \
+ _obstack_newchunk (__o, __len + 1); \
+- _obstack_memcpy (__o->next_free, (where), __len); \
++ memcpy (__o->next_free, where, __len); \
+ __o->next_free += __len; \
+ *(__o->next_free)++ = 0; \
+ (void) 0; })
+@@ -415,7 +315,7 @@
+ ({ struct obstack *__o = (OBSTACK); \
+ if (__o->next_free + 1 > __o->chunk_limit) \
+ _obstack_newchunk (__o, 1); \
+- *(__o->next_free)++ = (datum); \
++ obstack_1grow_fast (__o, datum); \
+ (void) 0; })
+
+ /* These assume that the obstack alignment is good enough for pointers
+@@ -427,22 +327,28 @@
+ ({ struct obstack *__o = (OBSTACK); \
+ if (__o->next_free + sizeof (void *) > __o->chunk_limit) \
+ _obstack_newchunk (__o, sizeof (void *)); \
+- *((void **)__o->next_free)++ = (datum); \
+- (void) 0; })
++ obstack_ptr_grow_fast (__o, datum); }) \
+
+ # define obstack_int_grow(OBSTACK,datum) \
+ __extension__ \
+ ({ struct obstack *__o = (OBSTACK); \
+ if (__o->next_free + sizeof (int) > __o->chunk_limit) \
+ _obstack_newchunk (__o, sizeof (int)); \
+- *((int *)__o->next_free)++ = (datum); \
+- (void) 0; })
++ obstack_int_grow_fast (__o, datum); })
+
+-# define obstack_ptr_grow_fast(h,aptr) \
+- (*((void **) (h)->next_free)++ = (aptr))
++# define obstack_ptr_grow_fast(OBSTACK,aptr) \
++__extension__ \
++({ struct obstack *__o1 = (OBSTACK); \
++ *(const void **) __o1->next_free = (aptr); \
++ __o1->next_free += sizeof (const void *); \
++ (void) 0; })
+
+-# define obstack_int_grow_fast(h,aint) \
+- (*((int *) (h)->next_free)++ = (aint))
++# define obstack_int_grow_fast(OBSTACK,aint) \
++__extension__ \
++({ struct obstack *__o1 = (OBSTACK); \
++ *(int *) __o1->next_free = (aint); \
++ __o1->next_free += sizeof (int); \
++ (void) 0; })
+
+ # define obstack_blank(OBSTACK,length) \
+ __extension__ \
+@@ -450,7 +356,7 @@
+ int __len = (length); \
+ if (__o->chunk_limit - __o->next_free < __len) \
+ _obstack_newchunk (__o, __len); \
+- __o->next_free += __len; \
++ obstack_blank_fast (__o, __len); \
+ (void) 0; })
+
+ # define obstack_alloc(OBSTACK,length) \
+@@ -473,21 +379,20 @@
+
+ /* The local variable is named __o1 to avoid a name conflict
+ when obstack_blank is called. */
+-# define obstack_finish(OBSTACK) \
++# define obstack_finish(OBSTACK) \
+ __extension__ \
+ ({ struct obstack *__o1 = (OBSTACK); \
+- void *value; \
+- value = (void *) __o1->object_base; \
+- if (__o1->next_free == value) \
++ void *__value = (void *) __o1->object_base; \
++ if (__o1->next_free == __value) \
+ __o1->maybe_empty_object = 1; \
+ __o1->next_free \
+- = __INT_TO_PTR ((__PTR_TO_INT (__o1->next_free)+__o1->alignment_mask)\
+- & ~ (__o1->alignment_mask)); \
++ = __PTR_ALIGN (__o1->object_base, __o1->next_free, \
++ __o1->alignment_mask); \
+ if (__o1->next_free - (char *)__o1->chunk \
+ > __o1->chunk_limit - (char *)__o1->chunk) \
+ __o1->next_free = __o1->chunk_limit; \
+ __o1->object_base = __o1->next_free; \
+- value; })
++ __value; })
+
+ # define obstack_free(OBSTACK, OBJ) \
+ __extension__ \
+@@ -506,7 +411,10 @@
+ (unsigned) ((h)->chunk_limit - (h)->next_free)
+
+ # define obstack_empty_p(h) \
+- ((h)->chunk->prev == 0 && (h)->next_free - (h)->chunk->contents == 0)
++ ((h)->chunk->prev == 0 \
++ && (h)->next_free == __PTR_ALIGN ((char *) (h)->chunk, \
++ (h)->chunk->contents, \
++ (h)->alignment_mask))
+
+ /* Note that the call to _obstack_newchunk is enclosed in (..., 0)
+ so that we can avoid having void expressions
+@@ -515,51 +423,51 @@
+ but some compilers won't accept it. */
+
+ # define obstack_make_room(h,length) \
+-( (h)->temp = (length), \
+- (((h)->next_free + (h)->temp > (h)->chunk_limit) \
+- ? (_obstack_newchunk ((h), (h)->temp), 0) : 0))
++( (h)->temp.tempint = (length), \
++ (((h)->next_free + (h)->temp.tempint > (h)->chunk_limit) \
++ ? (_obstack_newchunk ((h), (h)->temp.tempint), 0) : 0))
+
+ # define obstack_grow(h,where,length) \
+-( (h)->temp = (length), \
+- (((h)->next_free + (h)->temp > (h)->chunk_limit) \
+- ? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \
+- _obstack_memcpy ((h)->next_free, (where), (h)->temp), \
+- (h)->next_free += (h)->temp)
++( (h)->temp.tempint = (length), \
++ (((h)->next_free + (h)->temp.tempint > (h)->chunk_limit) \
++ ? (_obstack_newchunk ((h), (h)->temp.tempint), 0) : 0), \
++ memcpy ((h)->next_free, where, (h)->temp.tempint), \
++ (h)->next_free += (h)->temp.tempint)
+
+ # define obstack_grow0(h,where,length) \
+-( (h)->temp = (length), \
+- (((h)->next_free + (h)->temp + 1 > (h)->chunk_limit) \
+- ? (_obstack_newchunk ((h), (h)->temp + 1), 0) : 0), \
+- _obstack_memcpy ((h)->next_free, (where), (h)->temp), \
+- (h)->next_free += (h)->temp, \
++( (h)->temp.tempint = (length), \
++ (((h)->next_free + (h)->temp.tempint + 1 > (h)->chunk_limit) \
++ ? (_obstack_newchunk ((h), (h)->temp.tempint + 1), 0) : 0), \
++ memcpy ((h)->next_free, where, (h)->temp.tempint), \
++ (h)->next_free += (h)->temp.tempint, \
+ *((h)->next_free)++ = 0)
+
+ # define obstack_1grow(h,datum) \
+ ( (((h)->next_free + 1 > (h)->chunk_limit) \
+ ? (_obstack_newchunk ((h), 1), 0) : 0), \
+- (*((h)->next_free)++ = (datum)))
++ obstack_1grow_fast (h, datum))
+
+ # define obstack_ptr_grow(h,datum) \
+ ( (((h)->next_free + sizeof (char *) > (h)->chunk_limit) \
+ ? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0), \
+- (*((const char **) (((h)->next_free+=sizeof(char *))-sizeof(char *))) = (datum)))
++ obstack_ptr_grow_fast (h, datum))
+
+ # define obstack_int_grow(h,datum) \
+ ( (((h)->next_free + sizeof (int) > (h)->chunk_limit) \
+ ? (_obstack_newchunk ((h), sizeof (int)), 0) : 0), \
+- (*((int *) (((h)->next_free+=sizeof(int))-sizeof(int))) = (datum)))
++ obstack_int_grow_fast (h, datum))
+
+ # define obstack_ptr_grow_fast(h,aptr) \
+- (*((const char **) (h)->next_free)++ = (aptr))
++ (((const void **) ((h)->next_free += sizeof (void *)))[-1] = (aptr))
+
+ # define obstack_int_grow_fast(h,aint) \
+- (*((int *) (h)->next_free)++ = (aint))
++ (((int *) ((h)->next_free += sizeof (int)))[-1] = (aint))
+
+ # define obstack_blank(h,length) \
+-( (h)->temp = (length), \
+- (((h)->chunk_limit - (h)->next_free < (h)->temp) \
+- ? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \
+- ((h)->next_free += (h)->temp))
++( (h)->temp.tempint = (length), \
++ (((h)->chunk_limit - (h)->next_free < (h)->temp.tempint) \
++ ? (_obstack_newchunk ((h), (h)->temp.tempint), 0) : 0), \
++ obstack_blank_fast (h, (h)->temp.tempint))
+
+ # define obstack_alloc(h,length) \
+ (obstack_blank ((h), (length)), obstack_finish ((h)))
+@@ -570,35 +478,27 @@
+ # define obstack_copy0(h,where,length) \
+ (obstack_grow0 ((h), (where), (length)), obstack_finish ((h)))
+
+-# define obstack_finish(h) \
++# define obstack_finish(h) \
+ ( ((h)->next_free == (h)->object_base \
+ ? (((h)->maybe_empty_object = 1), 0) \
+ : 0), \
+- (h)->temp = __PTR_TO_INT ((h)->object_base), \
++ (h)->temp.tempptr = (h)->object_base, \
+ (h)->next_free \
+- = __INT_TO_PTR ((__PTR_TO_INT ((h)->next_free)+(h)->alignment_mask) \
+- & ~ ((h)->alignment_mask)), \
++ = __PTR_ALIGN ((h)->object_base, (h)->next_free, \
++ (h)->alignment_mask), \
+ (((h)->next_free - (char *) (h)->chunk \
+ > (h)->chunk_limit - (char *) (h)->chunk) \
+ ? ((h)->next_free = (h)->chunk_limit) : 0), \
+ (h)->object_base = (h)->next_free, \
+- __INT_TO_PTR ((h)->temp))
++ (h)->temp.tempptr)
+
+-# if defined __STDC__ && __STDC__
+-# define obstack_free(h,obj) \
+-( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \
+- (((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
+- ? (int) ((h)->next_free = (h)->object_base \
+- = (h)->temp + (char *) (h)->chunk) \
+- : (((obstack_free) ((h), (h)->temp + (char *) (h)->chunk), 0), 0)))
+-# else
+-# define obstack_free(h,obj) \
+-( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \
+- (((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
++# define obstack_free(h,obj) \
++( (h)->temp.tempint = (char *) (obj) - (char *) (h)->chunk, \
++ ((((h)->temp.tempint > 0 \
++ && (h)->temp.tempint < (h)->chunk_limit - (char *) (h)->chunk)) \
+ ? (int) ((h)->next_free = (h)->object_base \
+- = (h)->temp + (char *) (h)->chunk) \
+- : (_obstack_free ((h), (h)->temp + (char *) (h)->chunk), 0)))
+-# endif
++ = (h)->temp.tempint + (char *) (h)->chunk) \
++ : (((obstack_free) ((h), (h)->temp.tempint + (char *) (h)->chunk), 0), 0)))
+
+ #endif /* not __GNUC__ or not __STDC__ */
+
+diff -ru glibc-2.3.2.27.9.7.orig/posix/regcomp.c glibc-2.3.2.27.9.7/posix/regcomp.c
+--- glibc-2.3.2.27.9.7.orig/posix/regcomp.c 2003-02-21 02:21:03.000000000 +0100
++++ glibc-2.3.2.27.9.7/posix/regcomp.c 2006-10-25 00:28:35.000000000 +0200
+@@ -2511,7 +2511,8 @@
+ Seek the collating symbol entry correspondings to NAME.
+ Return the index of the symbol in the SYMB_TABLE. */
+
+- static inline int32_t
++ auto inline int32_t
++ __attribute ((always_inline))
+ seek_collating_symbol_entry (name, name_len)
+ const unsigned char *name;
+ size_t name_len;
+@@ -2543,7 +2544,8 @@
+ Look up the collation sequence value of BR_ELEM.
+ Return the value if succeeded, UINT_MAX otherwise. */
+
+- static inline unsigned int
++ auto inline unsigned int
++ __attribute ((always_inline))
+ lookup_collation_sequence_value (br_elem)
+ bracket_elem_t *br_elem;
+ {
+@@ -2610,7 +2612,8 @@
+ mbcset->range_ends, is a pointer argument sinse we may
+ update it. */
+
+- static inline reg_errcode_t
++ auto inline reg_errcode_t
++ __attribute ((always_inline))
+ # ifdef RE_ENABLE_I18N
+ build_range_exp (sbcset, mbcset, range_alloc, start_elem, end_elem)
+ re_charset_t *mbcset;
+@@ -2696,7 +2699,8 @@
+ COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a
+ pointer argument sinse we may update it. */
+
+- static inline reg_errcode_t
++ auto inline reg_errcode_t
++ __attribute ((always_inline))
+ # ifdef RE_ENABLE_I18N
+ build_collating_symbol (sbcset, mbcset, coll_sym_alloc, name)
+ re_charset_t *mbcset;
+diff -ru glibc-2.3.2.27.9.7.orig/stdlib/msort.c glibc-2.3.2.27.9.7/stdlib/msort.c
+--- glibc-2.3.2.27.9.7.orig/stdlib/msort.c 2002-09-24 06:20:57.000000000 +0200
++++ glibc-2.3.2.27.9.7/stdlib/msort.c 2006-10-24 23:14:30.000000000 +0200
+@@ -1,6 +1,6 @@
+ /* An alternative to qsort, with an identical interface.
+ This file is part of the GNU C Library.
+- Copyright (C) 1992,95-97,99,2000,01,02 Free Software Foundation, Inc.
++ Copyright (C) 1992,95-97,99,2000,01,02,04 Free Software Foundation, Inc.
+ Written by Mike Haertel, September 1988.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -56,12 +56,16 @@
+ if ((*cmp) (b1, b2) <= 0)
+ {
+ --n1;
+- *((op_t *) tmp)++ = *((op_t *) b1)++;
++ *((op_t *) tmp) = *((op_t *) b1);
++ tmp += sizeof (op_t);
++ b1 += sizeof (op_t);
+ }
+ else
+ {
+ --n2;
+- *((op_t *) tmp)++ = *((op_t *) b2)++;
++ *((op_t *) tmp) = *((op_t *) b2);
++ tmp += sizeof (op_t);
++ b2 += sizeof (op_t);
+ }
+ }
+ else
+diff -ru glibc-2.3.2.27.9.7.orig/sunrpc/clnt_perr.c glibc-2.3.2.27.9.7/sunrpc/clnt_perr.c
+--- glibc-2.3.2.27.9.7.orig/sunrpc/clnt_perr.c 2002-11-01 21:43:54.000000000 +0100
++++ glibc-2.3.2.27.9.7/sunrpc/clnt_perr.c 2006-10-25 00:34:25.000000000 +0200
+@@ -55,7 +55,7 @@
+ * buf variable in a few functions. Overriding a global variable
+ * with a local variable of the same name is a bad idea, anyway.
+ */
+-#define buf ((char *)RPC_THREAD_VARIABLE(clnt_perr_buf_s))
++#define buf RPC_THREAD_VARIABLE(clnt_perr_buf_s)
+ #else
+ static char *buf;
+ #endif
+diff -ru glibc-2.3.2.27.9.7.orig/sunrpc/clnt_raw.c glibc-2.3.2.27.9.7/sunrpc/clnt_raw.c
+--- glibc-2.3.2.27.9.7.orig/sunrpc/clnt_raw.c 2002-05-15 02:21:00.000000000 +0200
++++ glibc-2.3.2.27.9.7/sunrpc/clnt_raw.c 2006-10-25 00:36:36.000000000 +0200
+@@ -61,7 +61,7 @@
+ u_int mcnt;
+ };
+ #ifdef _RPC_THREAD_SAFE_
+-#define clntraw_private ((struct clntraw_private_s *)RPC_THREAD_VARIABLE(clntraw_private_s))
++#define clntraw_private RPC_THREAD_VARIABLE(clntraw_private_s)
+ #else
+ static struct clntraw_private_s *clntraw_private;
+ #endif
+diff -ru glibc-2.3.2.27.9.7.orig/sunrpc/clnt_simp.c glibc-2.3.2.27.9.7/sunrpc/clnt_simp.c
+--- glibc-2.3.2.27.9.7.orig/sunrpc/clnt_simp.c 2002-05-15 02:21:00.000000000 +0200
++++ glibc-2.3.2.27.9.7/sunrpc/clnt_simp.c 2006-10-25 00:37:57.000000000 +0200
+@@ -55,7 +55,7 @@
+ char *oldhost;
+ };
+ #ifdef _RPC_THREAD_SAFE_
+-#define callrpc_private ((struct callrpc_private_s *)RPC_THREAD_VARIABLE(callrpc_private_s))
++#define callrpc_private RPC_THREAD_VARIABLE(callrpc_private_s)
+ #else
+ static struct callrpc_private_s *callrpc_private;
+ #endif
+diff -ru glibc-2.3.2.27.9.7.orig/sunrpc/key_call.c glibc-2.3.2.27.9.7/sunrpc/key_call.c
+--- glibc-2.3.2.27.9.7.orig/sunrpc/key_call.c 2002-08-06 08:08:50.000000000 +0200
++++ glibc-2.3.2.27.9.7/sunrpc/key_call.c 2006-10-25 01:06:18.000000000 +0200
+@@ -370,7 +370,7 @@
+ uid_t uid; /* user-id at last authorization */
+ };
+ #ifdef _RPC_THREAD_SAFE_
+-#define key_call_private_main ((struct key_call_private *)RPC_THREAD_VARIABLE(key_call_private_s))
++#define key_call_private_main RPC_THREAD_VARIABLE(key_call_private_s)
+ #else
+ static struct key_call_private *key_call_private_main;
+ #endif
+diff -ru glibc-2.3.2.27.9.7.orig/sunrpc/rpc/xdr.h glibc-2.3.2.27.9.7/sunrpc/rpc/xdr.h
+--- glibc-2.3.2.27.9.7.orig/sunrpc/rpc/xdr.h 2002-12-16 03:05:49.000000000 +0100
++++ glibc-2.3.2.27.9.7/sunrpc/rpc/xdr.h 2006-10-25 00:42:41.000000000 +0200
+@@ -262,12 +262,10 @@
+ * and shouldn't be used any longer. Code which use this defines or longs
+ * in the RPC code will not work on 64bit Solaris platforms !
+ */
+-#define IXDR_GET_LONG(buf) \
+- ((long)ntohl((u_long)*__extension__((u_int32_t*)(buf))++))
+-#define IXDR_PUT_LONG(buf, v) \
+- (*__extension__((u_int32_t*)(buf))++ = (long)htonl((u_long)(v)))
+-#define IXDR_GET_U_LONG(buf) ((u_long)IXDR_GET_LONG(buf))
+-#define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG(buf, (long)(v))
++#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
++#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
++#define IXDR_GET_U_LONG(buf) ((u_long)IXDR_GET_LONG(buf))
++#define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG(buf, (long)(v))
+
+
+ #define IXDR_GET_BOOL(buf) ((bool_t)IXDR_GET_LONG(buf))
+diff -ru glibc-2.3.2.27.9.7.orig/sunrpc/svcauth_des.c glibc-2.3.2.27.9.7/sunrpc/svcauth_des.c
+--- glibc-2.3.2.27.9.7.orig/sunrpc/svcauth_des.c 2001-08-20 08:37:09.000000000 +0200
++++ glibc-2.3.2.27.9.7/sunrpc/svcauth_des.c 2006-10-25 01:11:54.000000000 +0200
+@@ -72,8 +72,8 @@
+ char *localcred; /* generic local credential */
+ };
+ #ifdef _RPC_THREAD_SAFE_
+-#define authdes_cache ((struct cache_entry *)RPC_THREAD_VARIABLE(authdes_cache_s))
+-#define authdes_lru ((int *)RPC_THREAD_VARIABLE(authdes_lru_s))
++#define authdes_cache RPC_THREAD_VARIABLE(authdes_cache_s)
++#define authdes_lru RPC_THREAD_VARIABLE(authdes_lru_s)
+ #else
+ static struct cache_entry *authdes_cache;
+ static int *authdes_lru;
+@@ -211,9 +211,9 @@
+
+ /* XXX This could be wrong, but else we have a
+ security problem */
+- if (authdes_cache[sid].rname == NULL)
++ if (((struct cache_entry *)authdes_cache)[sid].rname == NULL)
+ return AUTH_BADCRED;
+- sessionkey = &authdes_cache[sid].key;
++ sessionkey = &((struct cache_entry *)authdes_cache)[sid].key;
+ }
+
+
+@@ -281,7 +281,7 @@
+ }
+ else
+ { /* ADN_NICKNAME */
+- window = authdes_cache[sid].window;
++ window = ((struct cache_entry *)authdes_cache)[sid].window;
+ nick = 1;
+ }
+
+@@ -291,7 +291,7 @@
+ /* cached out (bad key), or garbled verifier */
+ return nick ? AUTH_REJECTEDVERF : AUTH_BADVERF;
+ }
+- if (nick && BEFORE (×tamp, &authdes_cache[sid].laststamp))
++ if (nick && BEFORE (×tamp, &((struct cache_entry *)authdes_cache)[sid].laststamp))
+ {
+ debug ("timestamp before last seen");
+ return AUTH_REJECTEDVERF; /* replay */
+@@ -347,7 +347,7 @@
+ * We succeeded, commit the data to the cache now and
+ * finish cooking the credential.
+ */
+- entry = &authdes_cache[sid];
++ entry = &((struct cache_entry *)authdes_cache)[sid];
+ entry->laststamp = timestamp;
+ cache_ref (sid);
+ if (cred->adc_namekind == ADN_FULLNAME)
+@@ -406,7 +406,7 @@
+ * Initialize the lru list
+ */
+ for (i = 0; i < AUTHDES_CACHESZ; ++i)
+- authdes_lru[i] = i;
++ ((int *)authdes_lru)[i] = i;
+ }
+
+
+@@ -416,7 +416,7 @@
+ static short
+ cache_victim (void)
+ {
+- return authdes_lru[AUTHDES_CACHESZ - 1];
++ return ((int *)authdes_lru)[AUTHDES_CACHESZ - 1];
+ }
+
+ /*
+@@ -430,12 +430,12 @@
+ register int curr;
+ register int prev;
+
+- prev = authdes_lru[0];
+- authdes_lru[0] = sid;
++ prev = ((int *)authdes_lru)[0];
++ ((int *)authdes_lru)[0] = sid;
+ for (i = 1; prev != sid; ++i)
+ {
+- curr = authdes_lru[i];
+- authdes_lru[i] = prev;
++ curr = ((int *)authdes_lru)[i];
++ ((int *)authdes_lru)[i] = prev;
+ prev = curr;
+ }
+ }
+@@ -514,11 +514,11 @@
+ debug ("invalid nickname");
+ return 0;
+ }
+- cred = (struct bsdcred *) authdes_cache[sid].localcred;
++ cred = (struct bsdcred *) ((struct cache_entry *)authdes_cache)[sid].localcred;
+ if (cred == NULL)
+ {
+ cred = (struct bsdcred *) mem_alloc (sizeof (struct bsdcred));
+- authdes_cache[sid].localcred = (char *) cred;
++ ((struct cache_entry *)authdes_cache)[sid].localcred = (char *) cred;
+ cred->grouplen = INVALID;
+ }
+ if (cred->grouplen == INVALID)
+diff -ru glibc-2.3.2.27.9.7.orig/sunrpc/svc.c glibc-2.3.2.27.9.7/sunrpc/svc.c
+--- glibc-2.3.2.27.9.7.orig/sunrpc/svc.c 2002-08-06 07:10:30.000000000 +0200
++++ glibc-2.3.2.27.9.7/sunrpc/svc.c 2006-10-25 01:03:37.000000000 +0200
+@@ -44,7 +44,7 @@
+ #include <sys/poll.h>
+
+ #ifdef _RPC_THREAD_SAFE_
+-#define xports ((SVCXPRT **)RPC_THREAD_VARIABLE(svc_xports_s))
++#define xports RPC_THREAD_VARIABLE(svc_xports_s)
+ #else
+ static SVCXPRT **xports;
+ #endif
+@@ -63,7 +63,7 @@
+ void (*sc_dispatch) (struct svc_req *, SVCXPRT *);
+ };
+ #ifdef _RPC_THREAD_SAFE_
+-#define svc_head ((struct svc_callout *)RPC_THREAD_VARIABLE(svc_head_s))
++#define svc_head RPC_THREAD_VARIABLE(svc_head_s)
+ #else
+ static struct svc_callout *svc_head;
+ #endif
+@@ -88,7 +88,7 @@
+ {
+ struct pollfd *new_svc_pollfd;
+
+- xports[sock] = xprt;
++ ((SVCXPRT **)xports)[sock] = xprt;
+ if (sock < FD_SETSIZE)
+ FD_SET (sock, &svc_fdset);
+
+@@ -124,9 +124,9 @@
+ register int sock = xprt->xp_sock;
+ register int i;
+
+- if ((sock < _rpc_dtablesize ()) && (xports[sock] == xprt))
++ if ((sock < _rpc_dtablesize ()) && (((SVCXPRT **)xports)[sock] == xprt))
+ {
+- xports[sock] = (SVCXPRT *) 0;
++ ((SVCXPRT **)xports)[sock] = (SVCXPRT *) 0;
+
+ if (sock < FD_SETSIZE)
+ FD_CLR (sock, &svc_fdset);
+@@ -391,7 +391,7 @@
+ ++fds_found;
+
+ if (p->revents & POLLNVAL)
+- xprt_unregister (xports[p->fd]);
++ xprt_unregister (((SVCXPRT **)xports)[p->fd]);
+ else
+ INTUSE(svc_getreq_common) (p->fd);
+ }
+@@ -410,7 +410,7 @@
+ msg.rm_call.cb_cred.oa_base = cred_area;
+ msg.rm_call.cb_verf.oa_base = &(cred_area[MAX_AUTH_BYTES]);
+
+- xprt = xports[fd];
++ xprt = ((SVCXPRT **)xports)[fd];
+ /* Do we control fd? */
+ if (xprt == NULL)
+ return;
+diff -ru glibc-2.3.2.27.9.7.orig/sunrpc/svc_simple.c glibc-2.3.2.27.9.7/sunrpc/svc_simple.c
+--- glibc-2.3.2.27.9.7.orig/sunrpc/svc_simple.c 2002-08-06 07:10:30.000000000 +0200
++++ glibc-2.3.2.27.9.7/sunrpc/svc_simple.c 2006-10-25 01:04:18.000000000 +0200
+@@ -61,7 +61,7 @@
+ struct proglst_ *p_nxt;
+ };
+ #ifdef _RPC_THREAD_SAFE_
+-#define proglst ((struct proglst_ *)RPC_THREAD_VARIABLE(svcsimple_proglst_s))
++#define proglst RPC_THREAD_VARIABLE(svcsimple_proglst_s)
+ #else
+ static struct proglst_ *proglst;
+ #endif
+@@ -69,7 +69,7 @@
+
+ static void universal (struct svc_req *rqstp, SVCXPRT *transp_s);
+ #ifdef _RPC_THREAD_SAFE_
+-#define transp ((SVCXPRT *)RPC_THREAD_VARIABLE(svcsimple_transp_s))
++#define transp RPC_THREAD_VARIABLE(svcsimple_transp_s)
+ #else
+ static SVCXPRT *transp;
+ #endif
+diff -ru glibc-2.3.2.27.9.7.orig/sysdeps/generic/strtoll.c glibc-2.3.2.27.9.7/sysdeps/generic/strtoll.c
+--- glibc-2.3.2.27.9.7.orig/sysdeps/generic/strtoll.c 2001-07-06 06:55:50.000000000 +0200
++++ glibc-2.3.2.27.9.7/sysdeps/generic/strtoll.c 2006-10-25 00:08:04.000000000 +0200
+@@ -30,5 +30,7 @@
+ # endif
+
+ # endif
++#ifndef USE_IN_EXTENDED_LOCALE_MODEL
+ weak_alias (strtoll, strtoq)
+ #endif
++#endif
+diff -ru glibc-2.3.2.27.9.7.orig/sysdeps/generic/strtoull.c glibc-2.3.2.27.9.7/sysdeps/generic/strtoull.c
+--- glibc-2.3.2.27.9.7.orig/sysdeps/generic/strtoull.c 2001-07-06 06:55:50.000000000 +0200
++++ glibc-2.3.2.27.9.7/sysdeps/generic/strtoull.c 2006-10-25 00:09:19.000000000 +0200
+@@ -30,5 +30,7 @@
+ # endif
+
+ # endif
++#ifndef USE_IN_EXTENDED_LOCALE_MODEL
+ weak_alias (strtoull, strtouq)
+ #endif
++#endif
+diff -ru glibc-2.3.2.27.9.7.orig/sysdeps/generic/wcstoll.c glibc-2.3.2.27.9.7/sysdeps/generic/wcstoll.c
+--- glibc-2.3.2.27.9.7.orig/sysdeps/generic/wcstoll.c 2001-07-06 06:55:50.000000000 +0200
++++ glibc-2.3.2.27.9.7/sysdeps/generic/wcstoll.c 2006-10-25 00:22:39.000000000 +0200
+@@ -21,5 +21,6 @@
+ #define QUAD 1
+
+ #include "wcstol.c"
+-
++#ifndef USE_IN_EXTENDED_LOCALE_MODEL
+ weak_alias (wcstoll, wcstoq)
++#endif
+diff -ru glibc-2.3.2.27.9.7.orig/sysdeps/generic/wcstoull.c glibc-2.3.2.27.9.7/sysdeps/generic/wcstoull.c
+--- glibc-2.3.2.27.9.7.orig/sysdeps/generic/wcstoull.c 2001-07-06 06:55:50.000000000 +0200
++++ glibc-2.3.2.27.9.7/sysdeps/generic/wcstoull.c 2006-10-25 00:22:55.000000000 +0200
+@@ -21,5 +21,6 @@
+ #define QUAD 1
+
+ #include "wcstoul.c"
+-
++#ifndef USE_IN_EXTENDED_LOCALE_MODEL
+ weak_alias (wcstoull, wcstouq)
++#endif
+diff -ru glibc-2.3.2.27.9.7.orig/sysdeps/i386/dl-machine.h glibc-2.3.2.27.9.7/sysdeps/i386/dl-machine.h
+--- glibc-2.3.2.27.9.7.orig/sysdeps/i386/dl-machine.h 2003-01-12 09:50:09.000000000 +0100
++++ glibc-2.3.2.27.9.7/sysdeps/i386/dl-machine.h 2006-10-25 02:11:53.000000000 +0200
+@@ -154,9 +154,9 @@
+ destroys the passed register information. */
+ /* GKM FIXME: Fix trampoline to pass bounds so we can do
+ without the `__unbounded' qualifier. */
+-static ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset)
++ElfW(Addr) fixup (struct link_map *__unbounded l, ElfW(Word) reloc_offset)
+ __attribute__ ((regparm (2), unused));
+-static ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
++ElfW(Addr) profile_fixup (struct link_map *l, ElfW(Word) reloc_offset,
+ ElfW(Addr) retaddr)
+ __attribute__ ((regparm (3), unused));
+ # endif
+@@ -360,7 +360,8 @@
+ /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
+ MAP is the object containing the reloc. */
+
+-static inline void
++auto inline void
++__attribute ((always_inline))
+ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
+ const Elf32_Sym *sym, const struct r_found_version *version,
+ Elf32_Addr *const reloc_addr)
+@@ -503,7 +504,8 @@
+ }
+
+ #ifndef RTLD_BOOTSTRAP
+-static inline void
++auto inline void
++__attribute__ ((always_inline))
+ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
+ const Elf32_Sym *sym, const struct r_found_version *version,
+ Elf32_Addr *const reloc_addr)
+@@ -604,7 +606,8 @@
+ }
+ #endif /* !RTLD_BOOTSTRAP */
+
+-static inline void
++auto inline void
++__attribute ((always_inline))
+ elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc,
+ Elf32_Addr *const reloc_addr)
+ {
+@@ -613,7 +616,8 @@
+ }
+
+ #ifndef RTLD_BOOTSTRAP
+-static inline void
++auto inline void
++__attribute__ ((always_inline))
+ elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
+ Elf32_Addr *const reloc_addr)
+ {
+@@ -621,7 +625,8 @@
+ }
+ #endif /* !RTLD_BOOTSTRAP */
+
+-static inline void
++auto inline void
++__attribute__ ((always_inline))
+ elf_machine_lazy_rel (struct link_map *map,
+ Elf32_Addr l_addr, const Elf32_Rel *reloc)
+ {
+@@ -642,7 +647,8 @@
+
+ #ifndef RTLD_BOOTSTRAP
+
+-static inline void
++auto inline void
++__attribute__ ((always_inline))
+ elf_machine_lazy_rela (struct link_map *map,
+ Elf32_Addr l_addr, const Elf32_Rela *reloc)
+ {
=== added file 'externals/bundles/glibc/2.3.2.27.9.7/gcc-4.0.patch'
--- externals/bundles/glibc/2.3.2.27.9.7/gcc-4.0.patch 1970-01-01 00:00:00 +0000
+++ externals/bundles/glibc/2.3.2.27.9.7/gcc-4.0.patch 2006-10-24 15:25:53 +0000
@@ -0,0 +1,12 @@
+diff -ruN glibc-2.3.2.27.9.7/configure.in glibc-2.3.2.27.9.7.patched/configure.in
+--- glibc-2.3.2.27.9.7/configure.in 2003-04-01 08:53:27.000000000 +0200
++++ glibc-2.3.2.27.9.7.patched/configure.in 2006-10-24 17:25:07.000000000 +0200
+@@ -700,7 +700,7 @@
+ # These programs are version sensitive.
+ AC_CHECK_TOOL_PREFIX
+ AC_CHECK_PROG_VER(CC, ${ac_tool_prefix}gcc ${ac_tool_prefix}cc, -v,
+- [version \([egcygnustpi-]*[0-9.]*\)], [3.[2-9]*],
++ [version \([egcygnustpi-]*[0-9.]*\)], [3.[2-9]* | 4.*],
+ critic_missing="$critic_missing gcc")
+ AC_CHECK_PROG_VER(MAKE, gnumake gmake make, --version,
+ [GNU Make[^0-9]*\([0-9][0-9.]*\)],
=== added file 'externals/bundles/pvm/3.4.2/gcc-4.0.patch'
--- externals/bundles/pvm/3.4.2/gcc-4.0.patch 1970-01-01 00:00:00 +0000
+++ externals/bundles/pvm/3.4.2/gcc-4.0.patch 2006-10-18 13:54:09 +0000
@@ -0,0 +1,63 @@
+diff -ruN pvm-3.4.2/include/pvm_global.h pvm-3.4.2.patched/include/pvm_global.h
+--- pvm-3.4.2/include/pvm_global.h 2003-09-24 18:40:35.000000000 +0200
++++ pvm-3.4.2.patched/include/pvm_global.h 2006-10-18 15:50:25.000000000 +0200
+@@ -306,10 +306,4 @@
+ extern struct pvmmclass *pvmmboxclasses; /* the mbox database */
+
+
+-/* General Trace Globals Declarations */
+-
+-extern struct Pvmtevdid pvmtevdidlist[];
+-
+-extern struct Pvmtevinfo pvmtevinfo[];
+-
+ #define OVERLOADHOST
+diff -ruN pvm-3.4.2/src/global.h pvm-3.4.2.patched/src/global.h
+--- pvm-3.4.2/src/global.h 2003-09-24 18:40:35.000000000 +0200
++++ pvm-3.4.2.patched/src/global.h 2006-10-18 15:50:25.000000000 +0200
+@@ -306,10 +306,4 @@
+ extern struct pvmmclass *pvmmboxclasses; /* the mbox database */
+
+
+-/* General Trace Globals Declarations */
+-
+-extern struct Pvmtevdid pvmtevdidlist[];
+-
+-extern struct Pvmtevinfo pvmtevinfo[];
+-
+ #define OVERLOADHOST
+diff -ruN pvm-3.4.2/src/pmsg.c pvm-3.4.2.patched/src/pmsg.c
+--- pvm-3.4.2/src/pmsg.c 1999-07-08 21:00:05.000000000 +0200
++++ pvm-3.4.2.patched/src/pmsg.c 2006-10-18 15:51:20.000000000 +0200
+@@ -151,6 +151,7 @@
+ ** **
+ ***************/
+
++extern struct Pvmtevinfo pvmtevinfo[];
+
+ /***************
+ ** Private **
+diff -ruN pvm-3.4.2/src/pvmdtev.c pvm-3.4.2.patched/src/pvmdtev.c
+--- pvm-3.4.2/src/pvmdtev.c 1998-11-20 21:06:41.000000000 +0100
++++ pvm-3.4.2.patched/src/pvmdtev.c 2006-10-18 15:51:54.000000000 +0200
+@@ -73,6 +73,8 @@
+ static int init_start = 0;
+ static int init_end = 0;
+
++extern struct Pvmtevdid pvmtevdidlist[];
++extern struct Pvmtevinfo pvmtevinfo[];
+
+ void
+ tev_init_pvmd( dst, ctx, tag )
+diff -ruN pvm-3.4.2/src/tev.c pvm-3.4.2.patched/src/tev.c
+--- pvm-3.4.2/src/tev.c 1998-11-20 21:04:18.000000000 +0100
++++ pvm-3.4.2.patched/src/tev.c 2006-10-18 15:52:18.000000000 +0200
+@@ -72,7 +72,7 @@
+ ***************/
+
+ struct pmsg *midtobuf();
+-
++extern struct Pvmtevinfo pvmtevinfo[];
+
+ /***************
+ ** Private **
=== modified file 'config/LINUX.cf'
--- config/LINUX.cf 2006-10-17 15:28:36 +0000
+++ config/LINUX.cf 2006-10-18 22:23:11 +0000
@@ -115,3 +115,7 @@
#include ArchIncludeFile
#endif
+#ifdef OSVersionIncludeFile
+#include OSVersionIncludeFile
+#endif
+
=== modified file 'config/LINUX_I386.cf'
--- config/LINUX_I386.cf 2006-10-17 15:28:36 +0000
+++ config/LINUX_I386.cf 2006-10-18 16:35:22 +0000
@@ -1,9 +1,13 @@
/* Things specific to I386_LINUX machines (all versions) */
-#ifdef IS_C_COMP_MAJOR_GCC_3
-#define ArchOptimizeFlag -mcpu=i486
+#ifdef IS_C_COMP_MAJOR_GCC_4
+# define ArchOptimizeFlag -march=i486
#else
-#define ArchOptimizeFlag -m486
+# ifdef IS_C_COMP_MAJOR_GCC_3
+# define ArchOptimizeFlag -mcpu=i486
+# else
+# define ArchOptimizeFlag -m486
+# endif
#endif
#ifdef IS_GLIBC23
=== modified file 'config/Platform.select'
--- config/Platform.select 2006-10-17 15:28:36 +0000
+++ config/Platform.select 2006-10-18 16:09:12 +0000
@@ -50,6 +50,9 @@
#elif defined( IS_LINUX )
# define PlatformIncludeFile <LINUX.cf>
+# if defined( IS_LINUX_DEBIAN )
+# define OSVersionIncludeFile <LINUX_DEBIAN.cf>
+# endif
# if defined( IS_I386 )
# define ArchIncludeFile <LINUX_I386.cf>
# elif defined( IS_ALPHA )
=== modified file 'config/configure.cf.in'
--- config/configure.cf.in 2006-10-17 15:28:36 +0000
+++ config/configure.cf.in 2006-10-18 16:24:42 +0000
@@ -42,7 +42,7 @@
CCOMPILER_ID = $(C_COMP_KIND) $(C_COMP_MAJOR) $(C_COMP_MINOR) $(C_COMP_PATCH)
/* compiler related libraries and .o files we need */
LIB_STDCPP = @lib_std_cpp@
-#if IS_C_COMP_KIND_GCC && IS_C_COMP_MAJOR_GCC_3
+#if IS_C_COMP_KIND_GCC && ( IS_C_COMP_MAJOR_GCC_3 || IS_C_COMP_MAJOR_GCC_4 )
LIB_GCC_EH = @lib_gcc_eh@
#endif
GCC_LIBC = @gcc_libc@
=== modified file 'externals/bundles/blahp/1.7.0/build_blahp-1.7.0'
--- externals/bundles/blahp/1.7.0/build_blahp-1.7.0 2006-10-17 15:28:36 +0000
+++ externals/bundles/blahp/1.7.0/build_blahp-1.7.0 2006-10-19 22:12:14 +0000
@@ -47,8 +47,12 @@
# Environment values.
patch -i version.patch -p0
+patch -i batch_gahp_daemon-classad.patch -p0
+
cd org.glite.ce.blahp
+./bootstrap
+
echo running configure
./configure --with-classads-prefix=$EXTERNALS_INSTALL_DIR/$EXT_CLASSADS_VERSION --with-globus-prefix=$EXTERNALS_INSTALL_DIR/$EXT_GLOBUS_VERSION --with-globus-nothr-flavor=$GLOBUS_FLAVOR --prefix=$PACKAGE_INSTALL_DIR/dynamic
# The configure won't find classads or globus, but the make will rebuild and
=== modified file 'externals/bundles/classads/0.9.8-b3/build_classads-0.9.8-b3'
--- externals/bundles/classads/0.9.8-b3/build_classads-0.9.8-b3 2006-10-17 15:28:36 +0000
+++ externals/bundles/classads/0.9.8-b3/build_classads-0.9.8-b3 2006-10-19 21:16:46 +0000
@@ -4,6 +4,8 @@
# It is unlikely that anyone will want to use it.
# This script is renamed to something like build_classads-0.9.7
+patch -i g++4.0.patch -p0
+
cd $PACKAGE_BUILD_DIR/$PACKAGE_NAME/
##### Configure and Build ClassAds #####
=== modified file 'externals/bundles/glibc/2.3.2.27.9.7/build_glibc-2.3.2.27.9.7'
--- externals/bundles/glibc/2.3.2.27.9.7/build_glibc-2.3.2.27.9.7 2006-10-17 15:28:36 +0000
+++ externals/bundles/glibc/2.3.2.27.9.7/build_glibc-2.3.2.27.9.7 2006-10-24 15:27:43 +0000
@@ -13,6 +13,8 @@
exit 1
fi
+autoconf
+
mkdir $PACKAGE_BUILD_DIR/${PACKAGE_NAME}-build
cd $PACKAGE_BUILD_DIR/${PACKAGE_NAME}-build
=== modified file 'src/condor_ckpt/Imakefile'
--- src/condor_ckpt/Imakefile 2006-10-17 15:28:36 +0000
+++ src/condor_ckpt/Imakefile 2006-10-18 16:11:13 +0000
@@ -126,7 +126,7 @@
/* Figure out what should be in the libc++support library, if anything */
#if DOES_CHECKPOINTING
-#if IS_C_COMP_MAJOR_GCC_3
+#if IS_C_COMP_MAJOR_GCC_3 || IS_C_COMP_MAJOR_GCC_4
# define NEEDS_CPP_SUPPORT_LIB 0
CPP_SUPPORT_LIB =
#else /* non gcc 3.x */
=== modified file 'src/condor_credd/classadUtil.C'
--- src/condor_credd/classadUtil.C 2006-10-17 15:28:36 +0000
+++ src/condor_credd/classadUtil.C 2006-10-18 23:00:09 +0000
@@ -28,13 +28,13 @@
BEGIN_NAMESPACE( classad )
-bool getOldClassAd( Stream *sock, classad::ClassAd& ad )
+bool getOldClassAd( Stream *sock, ClassAd& ad )
{
- classad::ClassAdParser parser;
+ ClassAdParser parser;
int numExprs;
string buffer;
char *tmp;
- classad::ClassAd *upd=NULL;
+ ClassAd *upd=NULL;
static char *inputLine = new char[ 10240 ];
@@ -73,7 +73,7 @@
#if 0
// put exprs into ad
- classad::ClassAd *tmpAd = new classad::ClassAd( );
+ ClassAd *tmpAd = new ClassAd( );
tmpAd->Update( *upd );
tmpAd = tmpAd->AddExplicitTargetRefs( );
#endif
@@ -86,21 +86,21 @@
return true;
}
-bool classad::putOldClassAd ( Stream *sock, classad::ClassAd& ad )
+bool putOldClassAd ( Stream *sock, ClassAd& ad )
{
- classad::ClassAdUnParser unp;
+ ClassAdUnParser unp;
string buf;
- classad::ExprTree *expr;
+ ExprTree *expr;
int numExprs=0;
- classad::ClassAdIterator itor(ad);
+ ClassAdIterator itor;
while( !itor.IsAfterLast( ) ) {
- itor.CurrentAttribute( buf, (const classad::ExprTree *)expr );
+ itor.CurrentAttribute( buf, (const ExprTree *&)expr );
if( strcasecmp( "MyType", buf.c_str( ) ) != 0 &&
strcasecmp( "TargetType", buf.c_str( ) ) != 0 ) {
numExprs++;
}
- itor.NextAttribute( buf, (const classad::ExprTree *) expr );
+ itor.NextAttribute( buf, (const ExprTree *&) expr );
}
sock->encode( );
@@ -109,8 +109,8 @@
}
for( itor.ToFirst(); !itor.IsAfterLast(); itor.NextAttribute(buf, (const
- classad::ExprTree *) expr) ) {
- itor.CurrentAttribute( buf, (const classad::ExprTree *) expr );
+ ExprTree *&) expr) ) {
+ itor.CurrentAttribute( buf, (const ExprTree *&) expr );
if( strcasecmp( "MyType", buf.c_str( ) ) == 0 ||
strcasecmp( "TargetType", buf.c_str( ) ) == 0 ) {
continue;
=== modified file 'src/condor_credd/classadUtil.h'
--- src/condor_credd/classadUtil.h 2006-10-17 15:28:36 +0000
+++ src/condor_credd/classadUtil.h 2006-10-18 22:48:24 +0000
@@ -35,8 +35,8 @@
BEGIN_NAMESPACE( classad )
-bool getOldClassAd( Stream *sock, classad::ClassAd& ad );
-bool putOldClassAd ( Stream *sock, classad::ClassAd& ad );
+bool getOldClassAd( Stream *sock, ClassAd& ad );
+bool putOldClassAd ( Stream *sock, ClassAd& ad );
END_NAMESPACE // classad
#endif // __CLASSADUTIL_H__
=== modified file 'src/condor_credd/get_cred.C'
--- src/condor_credd/get_cred.C 2006-10-17 15:28:36 +0000
+++ src/condor_credd/get_cred.C 2006-10-18 23:01:15 +0000
@@ -36,7 +36,7 @@
int cred_size = 0;
DCCredd credd(credd_sin);
- if (credd.getCredentialData (cred_name, (void*)cred_data, cred_size, errorstack)) {
+ if (credd.getCredentialData ((const char*)cred_name, (void*&)cred_data, cred_size, errorstack)) {
printf ("Received %d \n%s\n", cred_size, cred_data);
return 0;
} else {
=== modified file 'src/condor_includes/condor_sys_linux.h'
--- src/condor_includes/condor_sys_linux.h 2006-10-17 15:28:36 +0000
+++ src/condor_includes/condor_sys_linux.h 2006-10-18 20:32:35 +0000
@@ -132,7 +132,7 @@
#endif
/* swapon and swapoff prototypes */
-#if !defined(IA64) && !defined(CONDOR_PPC)
+#if !defined(IA64) && !defined(CONDOR_PPC) && !defined(LINUX)
/* there is a bug in this header file for ia64 linux, figure out what I need
out of here and prototype it manually. */
#include <linux/swap.h>
=== modified file 'src/condor_syscall_lib/Imakefile'
--- src/condor_syscall_lib/Imakefile 2006-10-17 15:28:36 +0000
+++ src/condor_syscall_lib/Imakefile 2006-10-24 07:32:02 +0000
@@ -616,8 +616,8 @@
#endif /* ! IS_CLIPPED && IS_GLIBC */
+#if ! IS_CLIPPED && (IS_C_COMP_MAJOR_GCC_3 || IS_C_COMP_MAJOR_GCC_4)
-#if ! IS_CLIPPED && IS_C_COMP_MAJOR_GCC_3
/*
Starting with gcc3, we are going to ship three internal libraries
that come with the compiler that we are going to use to replace
=== modified file 'src/condor_syscall_lib/syscall.tmpl'
--- src/condor_syscall_lib/syscall.tmpl 2006-10-17 15:28:36 +0000
+++ src/condor_syscall_lib/syscall.tmpl 2006-10-18 20:28:14 +0000
@@ -872,7 +872,7 @@
}
-# if defined( LINUX ) && !( defined( LINUX_CENTOS42 ) || defined( LINUX_CENTOS43 ) || defined( LINUX_CENTOS44 ) )
+# if defined( LINUX ) && !( defined( LINUX_CENTOS42 ) || defined( LINUX_CENTOS43 ) || defined( LINUX_CENTOS44 ) || defined(LINUX_DEBIAN) )
/* CENTOS42 uses a header files where this func is const, but
the glibc that we use with condor does not define this
function as const. So this avoids link errors. */
=== modified file 'src/condor_util_lib/stub_gen_yacc.y'
--- src/condor_util_lib/stub_gen_yacc.y 2006-10-17 15:28:36 +0000
+++ src/condor_util_lib/stub_gen_yacc.y 2006-10-18 19:44:48 +0000
@@ -55,6 +55,7 @@
int is_in, int is_out, int is_vararg );
struct node * mk_action_param_node( char *name, int is_ref, char *mult );
struct node *insert_node( struct node *list, struct node *new_elem );
+struct node *append_node( struct node *list, struct node *new_elem );
void display_node( struct node * );
void output_switch( struct node * );
void display_list( struct node * );
=== modified file 'src/configure'
--- src/configure 2006-10-17 15:28:36 +0000
+++ src/configure 2006-10-24 15:15:14 +0000
@@ -966,7 +966,7 @@
else
echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi
- cd $ac_popdir
+ cd "$ac_popdir"
done
fi
@@ -1792,11 +1792,8 @@
esac
elif test -f "/etc/debian_version" ; then
_deb_vers=`cat /etc/debian_version | sed 's/\./_/g'`;
- _cv_linux_distro="DEBIAN_`echo _deb_vers`"
- { echo "$as_me:$LINENO: WARNING: Condor is not yet ported to Debian Linux distributions" >&5
-echo "$as_me: WARNING: Condor is not yet ported to Debian Linux distributions" >&2;}
- { echo "$as_me:$LINENO: WARNING: You may have trouble building and/or packaging Condor" >&5
-echo "$as_me: WARNING: You may have trouble building and/or packaging Condor" >&2;}
+ _cv_opsys_vers="LINUX_DEBIAN"
+ _cv_linux_distro="DEBIAN"
else
{ echo "$as_me:$LINENO: WARNING: Unrecognised Linux distribution" >&5
echo "$as_me: WARNING: Unrecognised Linux distribution" >&2;}
@@ -3127,8 +3124,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3186,8 +3182,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3303,8 +3298,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3358,8 +3352,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3404,8 +3397,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3449,8 +3441,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_c_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3612,6 +3603,12 @@
CompilerMinor="3"
CompilerPatch="4"
;;
+ "3.3.5" )
+ CompilerKind="GCC"
+ CompilerMajor="3"
+ CompilerMinor="3"
+ CompilerPatch="5"
+ ;;
"3.4.2" )
CompilerKind="GCC"
CompilerMajor="3"
@@ -3642,6 +3639,18 @@
CompilerMinor="0"
CompilerPatch="1"
;;
+ "4.0.2" )
+ CompilerKind="GCC"
+ CompilerMajor="4"
+ CompilerMinor="0"
+ CompilerPatch="2"
+ ;;
+ "4.0.3" )
+ CompilerKind="GCC"
+ CompilerMajor="4"
+ CompilerMinor="0"
+ CompilerPatch="3"
+ ;;
* )
echo "$as_me:$LINENO: result: ERROR" >&5
echo "${ECHO_T}ERROR" >&6
@@ -3712,7 +3721,7 @@
fi
# this gcc3+ specific library is used for standard universe linking
-if test "X$CompilerKind" = "XGCC" && test "X$CompilerMajor" = "X3" ; then
+if test "X$CompilerKind" = "XGCC" && test "X$CompilerMajor" = "X3" -o "X$CompilerMajor" = "X4"; then
echo "$as_me:$LINENO: checking for libgcc_eh.a" >&5
echo $ECHO_N "checking for libgcc_eh.a... $ECHO_C" >&6
if test "${_cv_lib_gcc_eh+set}" = set; then
@@ -3944,8 +3953,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4003,8 +4011,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4075,8 +4082,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4120,8 +4126,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5584,8 +5589,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5651,8 +5655,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5741,8 +5744,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -6707,8 +6709,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -7029,8 +7030,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -7200,8 +7200,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -7268,8 +7267,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -7418,8 +7416,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -7568,8 +7565,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -7718,8 +7714,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -7868,8 +7863,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8018,8 +8012,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8168,8 +8161,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8318,8 +8310,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8468,8 +8459,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8618,8 +8608,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8768,8 +8757,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -8918,8 +8906,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -9072,8 +9059,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -9137,8 +9123,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -9202,8 +9187,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -9313,8 +9297,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -9411,8 +9394,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -9478,8 +9460,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -9580,8 +9561,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -9647,8 +9627,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -9756,8 +9735,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -9832,8 +9810,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -9888,8 +9865,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -9966,8 +9942,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -10022,8 +9997,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -10103,8 +10077,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -10159,8 +10132,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -10232,8 +10204,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -10282,8 +10253,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -10355,8 +10325,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -10405,8 +10374,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -10487,8 +10455,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -10550,8 +10517,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -10653,8 +10619,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -10719,8 +10684,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -10826,8 +10790,7 @@
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -11446,7 +11409,7 @@
# For now, we hardcode that non-i386/X86_64 platforms are clipped and don't
# need an external glibc for anything...
-if test "x$_cv_libc_kind" = "xGLIBC" -a \( "x$_cv_arch" = "xI386" -o "x$_cv_arch" = "xX86_64" \); then
+if test "x$_cv_libc_kind" = "xGLIBC" -a \( "x$_cv_arch" = "xI386" -o "x$_cv_arch" = "xX86_64" \) ; then
_cv_libc_full_vers="$_cv_libc_major.$_cv_libc_minor.$_cv_libc_patch"
case "$_cv_libc_full_vers" in
@@ -11650,7 +11613,7 @@
;;
"2.3.4" )
- # I'm using this here to avoid a full port of Condor to the centos 4 OS.
+ # I'm using this here to avoid a full port of Condor to the centos 4 OS.
# XXX Also, one must use gcc 3.2.2 instead of as shipped gcc 3.4.4 to
# compile this package.
echo "$as_me:$LINENO: checking glibc" >&5
@@ -11701,6 +11664,55 @@
;;
+ "2.3.6" )
+ echo "$as_me:$LINENO: checking glibc" >&5
+echo $ECHO_N "checking glibc... $ECHO_C" >&6
+ _err_msg="The requested version of glibc (glibc-2.3.2.27.9.7) does not exist in $ac_cv_externals"
+ if test ! -d "$ac_cv_externals/bundles/glibc"; then
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ { echo "$as_me:$LINENO: WARNING: $ac_cv_externals/bundles/glibc is not a directory" >&5
+echo "$as_me: WARNING: $ac_cv_externals/bundles/glibc is not a directory" >&2;}
+ { { echo "$as_me:$LINENO: error: $_err_msg" >&5
+echo "$as_me: error: $_err_msg" >&2;}
+ { (exit 1); exit 1; }; }
+
+ fi
+
+ if test ! -d "$ac_cv_externals/bundles/glibc/2.3.2.27.9.7"; then
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ { echo "$as_me:$LINENO: WARNING: $ac_cv_externals/bundles/glibc/2.3.2.27.9.7 is not a directory" >&5
+echo "$as_me: WARNING: $ac_cv_externals/bundles/glibc/2.3.2.27.9.7 is not a directory" >&2;}
+ { { echo "$as_me:$LINENO: error: $_err_msg" >&5
+echo "$as_me: error: $_err_msg" >&2;}
+ { (exit 1); exit 1; }; }
+
+ fi
+
+ if test ! -f "$ac_cv_externals/bundles/glibc/2.3.2.27.9.7/build_glibc-2.3.2.27.9.7"; then
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ { echo "$as_me:$LINENO: WARNING: $ac_cv_externals/bundles/glibc/2.3.2.27.9.7/build_glibc-2.3.2.27.9.7 does not exist" >&5
+echo "$as_me: WARNING: $ac_cv_externals/bundles/glibc/2.3.2.27.9.7/build_glibc-2.3.2.27.9.7 does not exist" >&2;}
+ { { echo "$as_me:$LINENO: error: $_err_msg" >&5
+echo "$as_me: error: $_err_msg" >&2;}
+ { (exit 1); exit 1; }; }
+
+ fi
+
+ _cv_ext_glibc_version="glibc-2.3.2.27.9.7"
+ echo "$as_me:$LINENO: result: $_cv_ext_glibc_version" >&5
+echo "${ECHO_T}$_cv_ext_glibc_version" >&6
+ ext_glibc_version=$_cv_ext_glibc_version
+
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_EXT_GLIBC 1
+_ACEOF
+
+
+ ;;
* )
echo "$as_me:$LINENO: checking glibc" >&5
echo $ECHO_N "checking glibc... $ECHO_C" >&6
@@ -13618,11 +13630,6 @@
- if test x"$ac_file" != x-; then
- { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
- rm -f "$ac_file"
- fi
# Let's still pretend it is `configure' which instantiates (i.e., don't
# use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */
@@ -13661,6 +13668,12 @@
fi;;
esac
done` || { (exit 1); exit 1; }
+
+ if test x"$ac_file" != x-; then
+ { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+ rm -f "$ac_file"
+ fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
sed "$ac_vpsub
=== modified file 'src/configure.ac'
--- src/configure.ac 2006-10-17 15:28:36 +0000
+++ src/configure.ac 2006-10-24 15:15:02 +0000
@@ -256,9 +256,8 @@
esac
elif test -f "/etc/debian_version" ; then
_deb_vers=`cat /etc/debian_version | sed 's/\./_/g'`;
- _cv_linux_distro="DEBIAN_`echo _deb_vers`"
- AC_MSG_WARN([Condor is not yet ported to Debian Linux distributions])
- AC_MSG_WARN([You may have trouble building and/or packaging Condor])
+ _cv_opsys_vers="LINUX_DEBIAN"
+ _cv_linux_distro="DEBIAN"
else
AC_MSG_WARN([Unrecognised Linux distribution])
AC_MSG_WARN([You may have trouble building and/or packaging Condor])
@@ -724,6 +723,12 @@
CompilerMinor="3"
CompilerPatch="4"
;;
+ "3.3.5" )
+ CompilerKind="GCC"
+ CompilerMajor="3"
+ CompilerMinor="3"
+ CompilerPatch="5"
+ ;;
"3.4.2" )
CompilerKind="GCC"
CompilerMajor="3"
@@ -754,6 +759,18 @@
CompilerMinor="0"
CompilerPatch="1"
;;
+ "4.0.2" )
+ CompilerKind="GCC"
+ CompilerMajor="4"
+ CompilerMinor="0"
+ CompilerPatch="2"
+ ;;
+ "4.0.3" )
+ CompilerKind="GCC"
+ CompilerMajor="4"
+ CompilerMinor="0"
+ CompilerPatch="3"
+ ;;
* )
AC_MSG_RESULT([ERROR])
AC_MSG_ERROR([Condor will not compile with gcc version $gcc_vers])
@@ -770,7 +787,7 @@
GET_GCC_VALUE([libgcc.a],[-print-libgcc-file-name],[gcc_libc])
GET_GCC_VALUE([libstdc++.a],[--print-file-name=libstdc++.a],[lib_std_cpp])
# this gcc3+ specific library is used for standard universe linking
-if test "X$CompilerKind" = "XGCC" && test "X$CompilerMajor" = "X3" ; then
+if test "X$CompilerKind" = "XGCC" && test "X$CompilerMajor" = "X3" -o "X$CompilerMajor" = "X4"; then
GET_GCC_VALUE([libgcc_eh.a],[--print-file-name=libgcc_eh.a],[lib_gcc_eh])
fi
@@ -1704,7 +1721,7 @@
# For now, we hardcode that non-i386/X86_64 platforms are clipped and don't
# need an external glibc for anything...
-if test "x$_cv_libc_kind" = "xGLIBC" -a \( "x$_cv_arch" = "xI386" -o "x$_cv_arch" = "xX86_64" \); then
+if test "x$_cv_libc_kind" = "xGLIBC" -a \( "x$_cv_arch" = "xI386" -o "x$_cv_arch" = "xX86_64" \) ; then
_cv_libc_full_vers="$_cv_libc_major.$_cv_libc_minor.$_cv_libc_patch"
case "$_cv_libc_full_vers" in
@@ -1724,11 +1741,14 @@
CONDOR_EXTERNAL_VERSION([glibc],[2.3.2.27.9.7])
;;
"2.3.4" )
- # I'm using this here to avoid a full port of Condor to the centos 4 OS.
+ # I'm using this here to avoid a full port of Condor to the centos 4 OS.
# XXX Also, one must use gcc 3.2.2 instead of as shipped gcc 3.4.4 to
# compile this package.
CONDOR_EXTERNAL_VERSION([glibc],[2.3.2.27.9.7])
;;
+ "2.3.6" )
+ CONDOR_EXTERNAL_VERSION([glibc],[2.3.2.27.9.7])
+ ;;
* )
AC_MSG_CHECKING(glibc)
AC_MSG_RESULT([ERROR])
=== modified file 'src/stork/Imakefile'
--- src/stork/Imakefile 2006-10-17 15:28:36 +0000
+++ src/stork/Imakefile 2006-10-19 07:32:37 +0000
@@ -6,7 +6,7 @@
/* Specify Stork build configuration here. */
#define WANT_STORK_API YES
#define WANT_STORK_GLOBUS YES
-#define WANT_STORK_SRB YES
+#define WANT_STORK_SRB NO
#define WANT_STORK_UNITREE YES
#define WANT_STORK_SRM_CASTOR YES
#define WANT_STORK_SRM_DCACHE YES
=== modified file 'src/stork/dap_client_interface.C'
--- src/stork/dap_client_interface.C 2006-10-17 15:28:36 +0000
+++ src/stork/dap_client_interface.C 2006-10-18 23:02:29 +0000
@@ -242,7 +242,7 @@
}
free (_request);
- sock->code ((int)cred_size);
+ sock->code ((int*)&cred_size);
if (cred_size) {
char * _cred = strdup (cred);
sock->code_bytes (_cred, cred_size);