--- glibc-2.7.orig/debian/generate-supported.mk +++ glibc-2.7/debian/generate-supported.mk @@ -0,0 +1,11 @@ +#!/usr/bin/make + +include $(IN) + +all: + rm -f $(OUT) + touch $(OUT) + for locale in $(SUPPORTED-LOCALES); do \ + [ $$locale = true ] && continue; \ + echo $$locale | sed 's,/, ,' >> $(OUT); \ + done --- glibc-2.7.orig/debian/script.in/nohwcap.sh +++ glibc-2.7/debian/script.in/nohwcap.sh @@ -0,0 +1,42 @@ + # Handle upgrades when libc-opt package has been installed. + # When a /etc/ld.so.nohwcap file exists, ld.so only use libraries + # from /lib, and ignore all optimised libraries. This file is + # inconditionaly created in the preinst script of libc. + + # Get the list of optimized packages for a given architecture + # Before removing a package from this list, make sure it appears + # in the Conflicts: line of libc. + case $(dpkg --print-architecture) in + alpha) + hwcappkgs="libc6-alphaev67" + ;; + i386) + hwcappkgs="libc6-i686 libc6-xen" + ;; + kfreebsd-i386) + hwcappkgs="libc0.1-i686" + ;; + sparc) + hwcappkgs="libc6-sparcv9 libc6-sparcv9b libc6-sparcv9v libc6-sparcv9v2 libc6-sparc64b libc6-sparc64v libc6-sparc64v2" + ;; + esac + + # We check the version between the current installed libc and + # all optimized packages (on architectures where such packages + # exists). + all_upgraded=yes + if [ -n "$hwcappkgs" ]; then + for pkg in $hwcappkgs ; do + ver=$(dpkg -l $pkg 2>/dev/null | sed -e '/^i/!d;' -e "s/^i.\s\+$pkg\s\+//;s/\s.*//g") + if [ -n "$ver" ] && [ "$ver" != "CURRENT_VER" ]; then + all_upgraded=no + fi + done + fi + + # If the versions of all optimized packages are the same as the libc + # one, we could remove /etc/ld.so.nohwcap. Otherwise, it will be removed + # when all optimized packages are upgraded or removed. + if [ "$all_upgraded" = yes ] ; then + rm -f /etc/ld.so.nohwcap + fi --- glibc-2.7.orig/debian/script.in/kernelcheck.sh +++ glibc-2.7/debian/script.in/kernelcheck.sh @@ -0,0 +1,174 @@ +linux_compare_versions () { + verA=$(($(echo "$1" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 10000 + \2 \* 100 + \3/'))) + verB=$(($(echo "$3" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 10000 + \2 \* 100 + \3/'))) + + test $verA -$2 $verB +} + +kfreebsd_compare_versions () { + verA=$(($(echo "$1" | sed 's/\([0-9]*\)\.\([0-9]*\).*/\1 \* 100 + \2/'))) + verB=$(($(echo "$3" | sed 's/\([0-9]*\)\.\([0-9]*\).*/\1 \* 100 + \2/'))) + + test $verA -$2 $verB +} + +kernel26_help() { + echo "" + echo "The installation of a 2.6 kernel _could_ ask you to install a new libc" + echo "first, this is NOT a bug, and should *NOT* be reported. In that case," + echo "please add etch sources to your /etc/apt/sources.list and run:" + echo " apt-get install -t etch linux-image-2.6" + echo "Then reboot into this new kernel, and proceed with your upgrade" +} + +exit_check () { + EXIT_CHECK + exit 1 +} + + system=`uname -s` + if [ "$system" = "Linux" ] + then + # Test to make sure z < 255, in x.y.z-n form of kernel version + # Also make sure we don't trip on x.y.zFOO-n form + #kernel_rev=$(uname -r | tr -- - . | cut -d. -f3 | tr -d '[:alpha:]') + kernel_rev=$(uname -r | sed 's/\([0-9]*\.[0-9]*\.\)\([0-9]*\)\(.*\)/\2/') + if [ "$kernel_rev" -ge 255 ] + then + echo "WARNING: Your kernel version indicates a revision number" + echo "of 255 or greater. Glibc has a number of built in" + echo "assumptions that this revision number is less than 255." + echo "If you\'ve built your own kernel, please make sure that any" + echo "custom version numbers are appended to the upstream" + echo "kernel number with a dash or some other delimiter." + + exit_check + fi + + # sanity checking for the appropriate kernel on each architecture. + realarch=`uname -m` + kernel_ver=`uname -r` + + # convert "armv4l" and similar to just "arm", and "mips64" and similar + # to just "mips" + case $realarch in + arm*) realarch="arm";; + mips*) realarch="mips";; + esac + + + # From glibc 2.3.5-7 real-i386 is dropped. + if [ "$realarch" = i386 ] + then + echo "WARNING: This machine has real i386 class processor." + echo "Debian etch and later does not support such old hardware" + echo "any longer." + echo "The reason is that \"bswap\" instruction is not supported" + echo "on i386 class processors, and some core libraries have" + echo "such instruction. You\'ll see illegal instruction error" + echo "when you upgrade your Debian system." + exit_check + fi + + # arm boxes require __ARM_NR_set_tls in the kernel to function properly. + if [ "$realarch" = arm ] + then + if linux_compare_versions "$kernel_ver" lt 2.6.12 + then + echo WARNING: This version of glibc requires that you be running + echo kernel version 2.6.12 or later. Earlier kernels contained + echo bugs that may render the system unusable if a modern version + echo of glibc is installed. + kernel26_help + exit_check + fi + fi + + # Alpha and HPPA boxes require latest fixes in the kernel to function properly. + if [ "$realarch" = parisc -o "$realarch" = alpha ] + then + if linux_compare_versions "$kernel_ver" lt 2.6.9 + then + echo WARNING: This version of glibc requires that you be running + echo kernel version 2.6.9 or later. Earlier kernels contained + echo bugs that may render the system unusable if a modern version + echo of glibc is installed. + kernel26_help + exit_check + fi + fi + + # sh4 boxes require kernel version 2.6.11 minimum + if [ "$realarch" = sh4 ] + then + if linux_compare_versions "$kernel_ver" lt 2.6.11 + then + echo WARNING: This version of glibc requires that you be running + echo kernel version 2.6.11 or later. Earlier kernels contained + echo bugs that may render the system unusable if a modern version + echo of glibc is installed. + kernel26_help + exit_check + fi + fi + + # The GNU libc requires 2.6 kernel (except on m68k) because we drop to + # support linuxthreads + if [ "$realarch" != m68k ] + then + if linux_compare_versions "$kernel_ver" lt 2.6.8 + then + echo WARNING: POSIX threads library NPTL requires kernel version + echo 2.6.8 or later. If you use a kernel 2.4, please upgrade it + echo before installing glibc. + kernel26_help + exit_check + fi + fi + + # The GNU libc is now built with --with-kernel= >= 2.4.1 on m68k + if [ "$realarch" = m68k ] + then + if linux_compare_versions "$kernel_ver" lt 2.4.1 + then + echo WARNING: This version of glibc requires that you be running + echo kernel version 2.4.1 or later. Earlier kernels contained + echo bugs that may render the system unusable if a modern version + echo of glibc is installed. + kernel26_help + exit_check + fi + fi + + # From glibc 2.6-3 SPARC V8 support is dropped. + if [ "$realarch" = sparc ] + then + # The process could be run using linux32, check for /proc. + if [ -f /proc/cpuinfo ] + then + case "$(sed '/^type/!d;s/^type.*: //g' /proc/cpuinfo)" in + sun4u) + # UltraSPARC CPU + ;; + sun4v) + # Niagara CPU + ;; + *) + echo "WARNING: This machine has a SPARC V8 or earlier class processor." + echo "Debian lenny and later does not support such old hardware" + echo "any longer." + exit_check + ;; + esac + fi + fi + elif [ $system = "GNU/kFreeBSD" ] ; then + kernel_ver=`uname -r` + if kfreebsd_compare_versions "$kernel_ver" lt 6.0 + then + echo WARNING: This version of glibc uses UMTX_OP_WAIT and UMTX_OP_WAKE + echo syscalls that are not present in the current running kernel. They + echo have been added in kFreeBSD 6.0. Your system should still work, + echo but it is recommended to upgrade to a more recent version. + fi + fi --- glibc-2.7.orig/debian/script.in/nsscheck.sh +++ glibc-2.7/debian/script.in/nsscheck.sh @@ -0,0 +1,35 @@ + echo -n "Checking for services that may need to be restarted..." + # Only get the ones that are installed, and configured + check=$(dpkg -s $check 2> /dev/null | egrep '^Package:|^Status:' | awk '{if ($1 ~ /^Package:/) { package=$2 } else if ($0 ~ /^Status: .* installed$/) { print package }}') + # some init scripts don't match the package names + check=$(echo $check | \ + sed -e's/\bapache2-common\b/apache2/g' \ + -e's/\bat\b/atd/g' \ + -e's/\bdovecot-common\b/dovecot/g' \ + -e's/\bexim4-base\b/exim4/g' \ + -e's/\blpr\b/lpd/g' \ + -e's/\blpr-ppd\b/lpd-ppd/g' \ + -e's/\bsasl2-bin\b/saslauthd/g' \ + ) + echo + echo "Checking init scripts..." + rl=$(runlevel | sed 's/.*\ //') + for service in $check; do + if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then + idl=$(ls /etc/init.d/${service} 2> /dev/null | head -n 1) + if [ -n "$idl" ] && [ -x $idl ]; then + services="$service $services" + else + echo "WARNING: init script for $service not found." + fi + else + if [ -f /usr/share/file-rc/rc ] || [ -f /usr/lib/file-rc/rc ] && [ -f /etc/runlevel.conf ]; then + idl=$(filerc $rl $service) + else + idl=$(ls /etc/rc${rl}.d/S??${service} 2> /dev/null | head -1) + fi + if [ -n "$idl" ] && [ -x $idl ]; then + services="$service $services" + fi + fi + done --- glibc-2.7.orig/debian/copyright +++ glibc-2.7/debian/copyright @@ -0,0 +1,168 @@ +This is the Debian prepackaged version of the GNU C Library version +2.6.1 + +It was put together by the GNU Libc Maintainers +from the following sources: + + + + + + + Copyright (C) 1991,92,93,94,95,96,97,98,99,2000,2001,2002,2003,2004,2005, + 2006,2007 Free Software Foundation, Inc. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + 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., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA + +On Debian systems, the complete text of the GNU Library +General Public License can be found in `/usr/share/common-licenses/LGPL-2.1'. + +Additional Details (the following is taken from `info libc +Contributors' which also contains a list of credits): + + All code incorporated from 4.4 BSD is under the following + copyright: + + Copyright (C) 1991 Regents of the University of California. + All rights reserved. + + Redistribution and use in source and binary forms, with or + without modification, are permitted provided that the + following conditions are met: + + 1. Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + + 3. Neither the name of the University nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission. + + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF + THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + OF SUCH DAMAGE. + + * The random number generation functions `random', `srandom', + `setstate' and `initstate', which are also the basis for the + `rand' and `srand' functions, were written by Earl T. Cohen for + the University of California at Berkeley and are copyrighted by the + Regents of the University of California. They have undergone minor + changes to fit into the GNU C library and to fit the ISO C + standard, but the functional code is Berkeley's. + + * The Internet resolver code is taken directly from BIND 4.9.5, + which is under both the Berkeley copyright above and also: + + Portions Copyright (C) 1993 by Digital Equipment Corporation. + + Permission to use, copy, modify, and distribute this software + for any purpose with or without fee is hereby granted, + provided that the above copyright notice and this permission + notice appear in all copies, and that the name of Digital + Equipment Corporation not be used in advertising or publicity + pertaining to distribution of the document or software + without specific, written prior permission. + + THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. + DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT CORPORATION BE + LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION + WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + * The code to support Sun RPC is taken verbatim from Sun's + RPCSRC-4.0 distribution, and is covered by this copyright: + + Copyright (C) 1984, Sun Microsystems, Inc. + + Sun RPC is a product of Sun Microsystems, Inc. and is + provided for unrestricted use provided that this legend is + included on all tape media and as a part of the software + program in whole or part. Users may copy or modify Sun RPC + without charge, but are not authorized to license or + distribute it to anyone else except as part of a product or + program developed by the user. + + SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND + INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND + FITNESS FOR A PARTICULAR PURPOSE, OR ARISING FROM A COURSE OF + DEALING, USAGE OR TRADE PRACTICE. + + Sun RPC is provided with no support and without any + obligation on the part of Sun Microsystems, Inc. to assist in + its use, correction, modification or enhancement. + + SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT + TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY + PATENTS BY SUN RPC OR ANY PART THEREOF. + + In no event will Sun Microsystems, Inc. be liable for any + lost revenue or profits or other special, indirect and + consequential damages, even if Sun has been advised of the + possibility of such damages. + + Sun Microsystems, Inc. + 2550 Garcia Avenue + Mountain View, California 94043 + + * Some of the support code for Mach is taken from Mach 3.0 by CMU, + and is under the following copyright terms: + + Mach Operating System + Copyright (C) 1991,1990,1989 Carnegie Mellon University + All Rights Reserved. + + Permission to use, copy, modify and distribute this software + and its documentation is hereby granted, provided that both + the copyright notice and this permission notice appear in all + copies of the software, derivative works or modified + versions, and any portions thereof, and that both notices + appear in supporting documentation. + + CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS + IS" CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF + ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF + THIS SOFTWARE. + + Carnegie Mellon requests users of this software to return to + + Software Distribution Coordinator + School of Computer Science + Carnegie Mellon University + Pittsburgh PA 15213-3890 + + or any improvements or + extensions that they make and grant Carnegie Mellon the + rights to redistribute these changes. --- glibc-2.7.orig/debian/compat +++ glibc-2.7/debian/compat @@ -0,0 +1 @@ +5 --- glibc-2.7.orig/debian/make-cvs-patch.sh +++ glibc-2.7/debian/make-cvs-patch.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# This script is designed to help make patches to update from the last +# release to the latest CVS. Hand it the argument of the directory from +# which to generate the diff. + +# This script is not robust. Feel free to improve it. Specifically, +# run this from the root of the package. + +# This file is in the PUBLIC DOMAIN +# written by Jeff Bailey jbailey@debian.org September 6th, 2002 + +if [ $# -ne 1 ]; then + echo "`basename $0`: script expects a CVS tree to diff against" + exit 1 +fi + +debian/rules unpack + +SRCDIR=build-tree/glibc-* + +diff -urN -x CVS -x .cvsignore -x '*texi' -x '*manual*' $SRCDIR $1 >cvs.patch + --- glibc-2.7.orig/debian/FAQ +++ glibc-2.7/debian/FAQ @@ -0,0 +1,117 @@ +Q1: Why does the Debian libc6-dev package create /usr/include/linux and +/usr/include/asm directories containing header files from a specific +kernel, instead of using the "established" convention of making those +directories into symlinks pointing to the currently installed kernel? + +A1: Occasionally, changes in the kernel headers cause problems with +the compilation of libc and of programs that use libc. To ensure that +users are not affected by these problems, we configure libc to use the +headers from a kernel that is known to work with libc and the programs +that depend on stable kernel headers. + +[Note: /usr/include/linux is now in the linux-libc-dev package.] + +Q2: What if I want to compile a program that needs a feature from a +later kernel than is used by libc? + +A2: In practice, most programs will not have this problem. However, +depending on the scope of the problem you have several options available: + +If the situation is one like "kernel driver development", where all use +of the machine for development is expected to be against a different set +of kernel headers than are supplied with the "stock" libc6-dev, rebuilding +the glibc packages against that particular kernel will create a full set of +libc6 packages that are "compliant" with the new kernel. All development +done on machines with these packages installed will be done against the +new kernel. To build libc6-dev against your particular kernel, export the +environment variable LINUX_SOURCE, set to the path to that particular kernel +source directory and then build the package. + +If you want this new glibc package to stick against further upgrades, simply +use dselect and place the packages on HOLD. This will keep them from being +upgraded against your wishes. + +If there is just one particular program/package that needs different headers, +and your kernel of choice is installed in the usual place, you can use the +-I/usr/src/linux/include option on the gcc command line, when compiling that +specific program. + +Q3: My program is trying to use a kernel header that is in libc-dev, and +it is causing problems. (or) Why are the kernel headers not the same for +all architectures in Debian, for a given version of libc-dev? + +A3: For starters, you should never use kernel headers directly from user +space programs. You cannot be guaranteed a consistent interface across +different versions of the kernel, much less across architectures (even for +the same version of kernel source). + +Kernel headers are included with libc-dev _only_ to support those headers +in libc-dev. They are not there for userspace programs to include. If you +need kernel headers, then use one of the provided kernel-headers-x.x.x +packages provided for each architectures, or include the kernel headers +(or just the parts of the headers) you need directly in your source for +compilation. Only this way can you ensure a consistent state. + +Q4: Why does Debian's glibc seem to follow the stable CVS branch? + +A4: During our development cycle we follow the stable CVS branch so that +we can cause as little disruption as possible, and catch problems easier. +Differences between minor releases of glibc are known to be very large, +contain many changes, and generally affect all architectures differently. +We sync frequently with CVS so that we can take this large amount of +changes in smaller chunks, simplifying the process, and allowing us to +communicate problems to upstream much easier. + +Q5: How to setup my own language/regional (locale) setting? + +A5: Glibc provides "locale" defined in POSIX. Locale is a framework +to switch between multiple languages for users who can select to use +their language, country, characters, collation order, etc. For +example, some program display messages in your own language, if you +set the appropriate locale. Default locale is C (or POSIX) which +behaves traditional Unix with ASCII message. For more information, +look locale (5). + +If you want to use your own locale, install "locales" package. With +debconf interface, you can setup which locale is generated, and which +locale is used in default on your machine. + +Q6: I get this message when I run a program: + ld.so: Incorrectly built binary which accesses errno or h_errno directly. + ld.so: See /usr/share/doc/libc6/FAQ.gz. +A6: + +The program is broken. It probably says "extern int errno" somewhere, +instead of including . Errno in recent glibc versions is a macro, +which calls the function __errno_location; when glibc is built with +thread-local storage enabled, there is no extern int variable named errno. +In addition, "extern int errno" is not thread-safe. + +NOTE: Currently this error message is suppressed, for the benefit of some +truly buggy programs which redirect stderr into something important, like a +network socket. + +Q7: I get this error when I compile an static linked application that's +compiled with glibc 2.2 or before: + gcc -o foo.o libbar.a + libbar.a(obj.o): In function `func(char *)': + : undefined reference to `__ctype_toupper' + +A7: +During glibc 2.3.x development, some symbols (__ctype_b, __ctype_toupper, +__ctype_tolower) are changed to hidden attributes. This means old static +linked applications/libraries built with glibc 2.2.x cannot be linked on glibc +2.3.x systems any more. + +But it made a lot of user applications unusable, we applied a workaround patch +for glibc in Sarge. Therefore your applications worked OK, and you didn't +need to consider about this problem. However, most other distros already +dropped such local modification. For that reason, we decided to drop +supporting such old static linked applications/libraries from Etch, you need +to recompile them. + +If you want to keep this workaround that was applied in Sarge for the present, +please recompile Debian glibc package with adding "glibc23-ctype-compat" line +at the end of debian/patches/00list, and install it on your local machine. +Note that we don't support this patch nowadays, please use it at your own +risk. --- glibc-2.7.orig/debian/expected_test_summary +++ glibc-2.7/debian/expected_test_summary @@ -0,0 +1,17 @@ +# format: +amd64 log-test-i686-linux-i386 4 +amd64 log-test-x86_64-linux-gnu-libc 15 +ia64 log-test-ia64-linux-gnu-libc 17 +i386 log-test-i486-linux-gnu-libc 21 +i386 log-test-i686-linux-i686 4 +i386 log-test-i686-linux-xen 4 +lpia log-test-i686-linux-gnulp-libc 15 +powerpc log-test-powerpc-linux-gnu-libc 17 +powerpc log-test-powerpc64-linux-ppc64 4 +sparc log-test-sparc-linux-gnu-libc 17 +sparc log-test-sparc64-linux-sparc64 6 +sparc log-test-sparc64b-linux-sparc64b 7 +sparc log-test-sparc64v2-linux-sparc64v2 0 +sparc log-test-sparcv9b-linux-sparcv9b 17 +sparc log-test-sparcv9v-linux-sparcv9v 0 +sparc log-test-sparcv9v2-linux-sparcv9v2 0 --- glibc-2.7.orig/debian/libc6-amd64.symbols +++ glibc-2.7/debian/libc6-amd64.symbols @@ -0,0 +1,3259 @@ +ld-linux-x86-64.so.2 libc6-amd64 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + GLIBC_2.3@GLIBC_2.3 2.3 + GLIBC_2.4@GLIBC_2.4 2.4 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + __libc_enable_secure@GLIBC_PRIVATE 2.7 + __libc_memalign@GLIBC_2.2.5 2.2.5 + __libc_stack_end@GLIBC_2.2.5 2.2.5 + __tls_get_addr@GLIBC_2.3 2.3 + _dl_allocate_tls@GLIBC_PRIVATE 2.7 + _dl_allocate_tls_init@GLIBC_PRIVATE 2.7 + _dl_argv@GLIBC_PRIVATE 2.7 + _dl_deallocate_tls@GLIBC_PRIVATE 2.7 + _dl_debug_state@GLIBC_PRIVATE 2.7 + _dl_get_tls_static_info@GLIBC_PRIVATE 2.7 + _dl_make_stack_executable@GLIBC_PRIVATE 2.7 + _dl_mcount@GLIBC_2.2.5 2.2.5 + _dl_rtld_di_serinfo@GLIBC_PRIVATE 2.7 + _dl_tls_get_addr_soft@GLIBC_PRIVATE 2.7 + _dl_tls_setup@GLIBC_PRIVATE 2.7 + _r_debug@GLIBC_2.2.5 2.2.5 + _rtld_global@GLIBC_PRIVATE 2.7 + _rtld_global_ro@GLIBC_PRIVATE 2.7 + calloc@GLIBC_2.2.5 2.2.5 + free@GLIBC_2.2.5 2.2.5 + malloc@GLIBC_2.2.5 2.2.5 + realloc@GLIBC_2.2.5 2.2.5 +libBrokenLocale.so.1 libc6-amd64 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + __ctype_get_mb_cur_max@GLIBC_2.2.5 2.2.5 +libSegFault.so libc6-amd64 #MINVER# + __invoke_dynamic_linker__@Base 2.7-9ubuntu1 +libanl.so.1 libc6-amd64 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + gai_cancel@GLIBC_2.2.5 2.2.5 + gai_error@GLIBC_2.2.5 2.2.5 + gai_suspend@GLIBC_2.2.5 2.2.5 + getaddrinfo_a@GLIBC_2.2.5 2.2.5 +libc.so.6 libc6-amd64 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + GLIBC_2.2.6@GLIBC_2.2.6 2.2.6 + GLIBC_2.3.2@GLIBC_2.3.2 2.3.2 + GLIBC_2.3.3@GLIBC_2.3.3 2.3.3 + GLIBC_2.3.4@GLIBC_2.3.4 2.3.4 + GLIBC_2.3@GLIBC_2.3 2.3 + GLIBC_2.4@GLIBC_2.4 2.4 + GLIBC_2.5@GLIBC_2.5 2.5 + GLIBC_2.6@GLIBC_2.6 2.6 + GLIBC_2.7@GLIBC_2.7 2.7 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _Exit@GLIBC_2.2.5 2.2.5 + _IO_2_1_stderr_@GLIBC_2.2.5 2.2.5 + _IO_2_1_stdin_@GLIBC_2.2.5 2.2.5 + _IO_2_1_stdout_@GLIBC_2.2.5 2.2.5 + _IO_adjust_column@GLIBC_2.2.5 2.2.5 + _IO_adjust_wcolumn@GLIBC_2.2.5 2.2.5 + _IO_default_doallocate@GLIBC_2.2.5 2.2.5 + _IO_default_finish@GLIBC_2.2.5 2.2.5 + _IO_default_pbackfail@GLIBC_2.2.5 2.2.5 + _IO_default_uflow@GLIBC_2.2.5 2.2.5 + _IO_default_xsgetn@GLIBC_2.2.5 2.2.5 + _IO_default_xsputn@GLIBC_2.2.5 2.2.5 + _IO_do_write@GLIBC_2.2.5 2.2.5 + _IO_doallocbuf@GLIBC_2.2.5 2.2.5 + _IO_fclose@GLIBC_2.2.5 2.2.5 + _IO_fdopen@GLIBC_2.2.5 2.2.5 + _IO_feof@GLIBC_2.2.5 2.2.5 + _IO_ferror@GLIBC_2.2.5 2.2.5 + _IO_fflush@GLIBC_2.2.5 2.2.5 + _IO_fgetpos64@GLIBC_2.2.5 2.2.5 + _IO_fgetpos@GLIBC_2.2.5 2.2.5 + _IO_fgets@GLIBC_2.2.5 2.2.5 + _IO_file_attach@GLIBC_2.2.5 2.2.5 + _IO_file_close@GLIBC_2.2.5 2.2.5 + _IO_file_close_it@GLIBC_2.2.5 2.2.5 + _IO_file_doallocate@GLIBC_2.2.5 2.2.5 + _IO_file_finish@GLIBC_2.2.5 2.2.5 + _IO_file_fopen@GLIBC_2.2.5 2.2.5 + _IO_file_init@GLIBC_2.2.5 2.2.5 + _IO_file_jumps@GLIBC_2.2.5 2.2.5 + _IO_file_open@GLIBC_2.2.5 2.2.5 + _IO_file_overflow@GLIBC_2.2.5 2.2.5 + _IO_file_read@GLIBC_2.2.5 2.2.5 + _IO_file_seek@GLIBC_2.2.5 2.2.5 + _IO_file_seekoff@GLIBC_2.2.5 2.2.5 + _IO_file_setbuf@GLIBC_2.2.5 2.2.5 + _IO_file_stat@GLIBC_2.2.5 2.2.5 + _IO_file_sync@GLIBC_2.2.5 2.2.5 + _IO_file_underflow@GLIBC_2.2.5 2.2.5 + _IO_file_write@GLIBC_2.2.5 2.2.5 + _IO_file_xsputn@GLIBC_2.2.5 2.2.5 + _IO_flockfile@GLIBC_2.2.5 2.2.5 + _IO_flush_all@GLIBC_2.2.5 2.2.5 + _IO_flush_all_linebuffered@GLIBC_2.2.5 2.2.5 + _IO_fopen@GLIBC_2.2.5 2.2.5 + _IO_fprintf@GLIBC_2.2.5 2.2.5 + _IO_fputs@GLIBC_2.2.5 2.2.5 + _IO_fread@GLIBC_2.2.5 2.2.5 + _IO_free_backup_area@GLIBC_2.2.5 2.2.5 + _IO_free_wbackup_area@GLIBC_2.2.5 2.2.5 + _IO_fsetpos64@GLIBC_2.2.5 2.2.5 + _IO_fsetpos@GLIBC_2.2.5 2.2.5 + _IO_ftell@GLIBC_2.2.5 2.2.5 + _IO_ftrylockfile@GLIBC_2.2.5 2.2.5 + _IO_funlockfile@GLIBC_2.2.5 2.2.5 + _IO_fwrite@GLIBC_2.2.5 2.2.5 + _IO_getc@GLIBC_2.2.5 2.2.5 + _IO_getline@GLIBC_2.2.5 2.2.5 + _IO_getline_info@GLIBC_2.2.5 2.2.5 + _IO_gets@GLIBC_2.2.5 2.2.5 + _IO_init@GLIBC_2.2.5 2.2.5 + _IO_init_marker@GLIBC_2.2.5 2.2.5 + _IO_init_wmarker@GLIBC_2.2.5 2.2.5 + _IO_iter_begin@GLIBC_2.2.5 2.2.5 + _IO_iter_end@GLIBC_2.2.5 2.2.5 + _IO_iter_file@GLIBC_2.2.5 2.2.5 + _IO_iter_next@GLIBC_2.2.5 2.2.5 + _IO_least_wmarker@GLIBC_2.2.5 2.2.5 + _IO_link_in@GLIBC_2.2.5 2.2.5 + _IO_list_all@GLIBC_2.2.5 2.2.5 + _IO_list_lock@GLIBC_2.2.5 2.2.5 + _IO_list_resetlock@GLIBC_2.2.5 2.2.5 + _IO_list_unlock@GLIBC_2.2.5 2.2.5 + _IO_marker_delta@GLIBC_2.2.5 2.2.5 + _IO_marker_difference@GLIBC_2.2.5 2.2.5 + _IO_padn@GLIBC_2.2.5 2.2.5 + _IO_peekc_locked@GLIBC_2.2.5 2.2.5 + _IO_popen@GLIBC_2.2.5 2.2.5 + _IO_printf@GLIBC_2.2.5 2.2.5 + _IO_proc_close@GLIBC_2.2.5 2.2.5 + _IO_proc_open@GLIBC_2.2.5 2.2.5 + _IO_putc@GLIBC_2.2.5 2.2.5 + _IO_puts@GLIBC_2.2.5 2.2.5 + _IO_remove_marker@GLIBC_2.2.5 2.2.5 + _IO_seekmark@GLIBC_2.2.5 2.2.5 + _IO_seekoff@GLIBC_2.2.5 2.2.5 + _IO_seekpos@GLIBC_2.2.5 2.2.5 + _IO_seekwmark@GLIBC_2.2.5 2.2.5 + _IO_setb@GLIBC_2.2.5 2.2.5 + _IO_setbuffer@GLIBC_2.2.5 2.2.5 + _IO_setvbuf@GLIBC_2.2.5 2.2.5 + _IO_sgetn@GLIBC_2.2.5 2.2.5 + _IO_sprintf@GLIBC_2.2.5 2.2.5 + _IO_sputbackc@GLIBC_2.2.5 2.2.5 + _IO_sputbackwc@GLIBC_2.2.5 2.2.5 + _IO_sscanf@GLIBC_2.2.5 2.2.5 + _IO_str_init_readonly@GLIBC_2.2.5 2.2.5 + _IO_str_init_static@GLIBC_2.2.5 2.2.5 + _IO_str_overflow@GLIBC_2.2.5 2.2.5 + _IO_str_pbackfail@GLIBC_2.2.5 2.2.5 + _IO_str_seekoff@GLIBC_2.2.5 2.2.5 + _IO_str_underflow@GLIBC_2.2.5 2.2.5 + _IO_sungetc@GLIBC_2.2.5 2.2.5 + _IO_sungetwc@GLIBC_2.2.5 2.2.5 + _IO_switch_to_get_mode@GLIBC_2.2.5 2.2.5 + _IO_switch_to_main_wget_area@GLIBC_2.2.5 2.2.5 + _IO_switch_to_wbackup_area@GLIBC_2.2.5 2.2.5 + _IO_switch_to_wget_mode@GLIBC_2.2.5 2.2.5 + _IO_un_link@GLIBC_2.2.5 2.2.5 + _IO_ungetc@GLIBC_2.2.5 2.2.5 + _IO_unsave_markers@GLIBC_2.2.5 2.2.5 + _IO_unsave_wmarkers@GLIBC_2.2.5 2.2.5 + _IO_vfprintf@GLIBC_2.2.5 2.2.5 + _IO_vfscanf@GLIBC_2.2.5 2.2.5 + _IO_vsprintf@GLIBC_2.2.5 2.2.5 + _IO_wdefault_doallocate@GLIBC_2.2.5 2.2.5 + _IO_wdefault_finish@GLIBC_2.2.5 2.2.5 + _IO_wdefault_pbackfail@GLIBC_2.2.5 2.2.5 + _IO_wdefault_uflow@GLIBC_2.2.5 2.2.5 + _IO_wdefault_xsgetn@GLIBC_2.2.5 2.2.5 + _IO_wdefault_xsputn@GLIBC_2.2.5 2.2.5 + _IO_wdo_write@GLIBC_2.2.5 2.2.5 + _IO_wdoallocbuf@GLIBC_2.2.5 2.2.5 + _IO_wfile_jumps@GLIBC_2.2.5 2.2.5 + _IO_wfile_overflow@GLIBC_2.2.5 2.2.5 + _IO_wfile_seekoff@GLIBC_2.2.5 2.2.5 + _IO_wfile_sync@GLIBC_2.2.5 2.2.5 + _IO_wfile_underflow@GLIBC_2.2.5 2.2.5 + _IO_wfile_xsputn@GLIBC_2.2.5 2.2.5 + _IO_wmarker_delta@GLIBC_2.2.5 2.2.5 + _IO_wsetb@GLIBC_2.2.5 2.2.5 + __adjtimex@GLIBC_2.2.5 2.2.5 + __after_morecore_hook@GLIBC_2.2.5 2.2.5 + __arch_prctl@GLIBC_2.2.5 2.2.5 + __argz_count@GLIBC_2.2.5 2.2.5 + __argz_next@GLIBC_2.2.5 2.2.5 + __argz_stringify@GLIBC_2.2.5 2.2.5 + __asprintf@GLIBC_2.2.5 2.2.5 + __assert@GLIBC_2.2.5 2.2.5 + __assert_fail@GLIBC_2.2.5 2.2.5 + __assert_perror_fail@GLIBC_2.2.5 2.2.5 + __backtrace@GLIBC_2.2.5 2.2.5 + __backtrace_symbols@GLIBC_2.2.5 2.2.5 + __backtrace_symbols_fd@GLIBC_2.2.5 2.2.5 + __bsd_getpgrp@GLIBC_2.2.5 2.2.5 + __bzero@GLIBC_2.2.5 2.2.5 + __check_rhosts_file@GLIBC_2.2.5 2.2.5 + __chk_fail@GLIBC_2.3.4 2.3.4 + __clone@GLIBC_2.2.5 2.2.5 + __close@GLIBC_2.2.5 2.2.5 + __cmsg_nxthdr@GLIBC_2.2.5 2.2.5 + __confstr_chk@GLIBC_2.4 2.4 + __connect@GLIBC_2.2.5 2.2.5 + __ctype32_b@GLIBC_2.2.5 2.2.5 + __ctype32_tolower@GLIBC_2.2.5 2.2.5 + __ctype32_toupper@GLIBC_2.2.5 2.2.5 + __ctype_b@GLIBC_2.2.5 2.2.5 + __ctype_b_loc@GLIBC_2.3 2.3 + __ctype_get_mb_cur_max@GLIBC_2.2.5 2.2.5 + __ctype_tolower@GLIBC_2.2.5 2.2.5 + __ctype_tolower_loc@GLIBC_2.3 2.3 + __ctype_toupper@GLIBC_2.2.5 2.2.5 + __ctype_toupper_loc@GLIBC_2.3 2.3 + __curbrk@GLIBC_2.2.5 2.2.5 + __cxa_atexit@GLIBC_2.2.5 2.2.5 + __cxa_finalize@GLIBC_2.2.5 2.2.5 + __cyg_profile_func_enter@GLIBC_2.2.5 2.2.5 + __cyg_profile_func_exit@GLIBC_2.2.5 2.2.5 + __daylight@GLIBC_2.2.5 2.2.5 + __dcgettext@GLIBC_2.2.5 2.2.5 + __default_morecore@GLIBC_2.2.5 2.2.5 + __dgettext@GLIBC_2.2.5 2.2.5 + __dup2@GLIBC_2.2.5 2.2.5 + __duplocale@GLIBC_2.2.5 2.2.5 + __endmntent@GLIBC_2.2.5 2.2.5 + __environ@GLIBC_2.2.5 2.2.5 + __errno_location@GLIBC_2.2.5 2.2.5 + __fbufsize@GLIBC_2.2.5 2.2.5 + __fcntl@GLIBC_2.2.5 2.2.5 + __ffs@GLIBC_2.2.5 2.2.5 + __fgets_chk@GLIBC_2.4 2.4 + __fgets_unlocked_chk@GLIBC_2.4 2.4 + __fgetws_chk@GLIBC_2.4 2.4 + __fgetws_unlocked_chk@GLIBC_2.4 2.4 + __finite@GLIBC_2.2.5 2.2.5 + __finitef@GLIBC_2.2.5 2.2.5 + __finitel@GLIBC_2.2.5 2.2.5 + __flbf@GLIBC_2.2.5 2.2.5 + __fork@GLIBC_2.2.5 2.2.5 + __fortify_fail@GLIBC_PRIVATE 2.7 + __fpending@GLIBC_2.2.5 2.2.5 + __fprintf_chk@GLIBC_2.3.4 2.3.4 + __fpu_control@GLIBC_2.2.5 2.2.5 + __fpurge@GLIBC_2.2.5 2.2.5 + __fread_chk@GLIBC_2.7 2.7 + __fread_unlocked_chk@GLIBC_2.7 2.7 + __freadable@GLIBC_2.2.5 2.2.5 + __freading@GLIBC_2.2.5 2.2.5 + __free_hook@GLIBC_2.2.5 2.2.5 + __freelocale@GLIBC_2.2.5 2.2.5 + __fsetlocking@GLIBC_2.2.5 2.2.5 + __fwprintf_chk@GLIBC_2.4 2.4 + __fwritable@GLIBC_2.2.5 2.2.5 + __fwriting@GLIBC_2.2.5 2.2.5 + __fxstat64@GLIBC_2.2.5 2.2.5 + __fxstat@GLIBC_2.2.5 2.2.5 + __fxstatat64@GLIBC_2.4 2.4 + __fxstatat@GLIBC_2.4 2.4 + __gai_sigqueue@GLIBC_PRIVATE 2.7 + __gconv_get_alias_db@GLIBC_PRIVATE 2.7 + __gconv_get_cache@GLIBC_PRIVATE 2.7 + __gconv_get_modules_db@GLIBC_PRIVATE 2.7 + __getcwd_chk@GLIBC_2.4 2.4 + __getdelim@GLIBC_2.2.5 2.2.5 + __getdomainname_chk@GLIBC_2.4 2.4 + __getgroups_chk@GLIBC_2.4 2.4 + __gethostname_chk@GLIBC_2.4 2.4 + __getlogin_r_chk@GLIBC_2.4 2.4 + __getmntent_r@GLIBC_2.2.5 2.2.5 + __getpagesize@GLIBC_2.2.5 2.2.5 + __getpgid@GLIBC_2.2.5 2.2.5 + __getpid@GLIBC_2.2.5 2.2.5 + __gets_chk@GLIBC_2.3.4 2.3.4 + __gettimeofday@GLIBC_2.2.5 2.2.5 + __getwd_chk@GLIBC_2.4 2.4 + __gmtime_r@GLIBC_2.2.5 2.2.5 + __h_errno_location@GLIBC_2.2.5 2.2.5 + __internal_endnetgrent@GLIBC_PRIVATE 2.7 + __internal_getnetgrent_r@GLIBC_PRIVATE 2.7 + __internal_setnetgrent@GLIBC_PRIVATE 2.7 + __isalnum_l@GLIBC_2.2.5 2.2.5 + __isalpha_l@GLIBC_2.2.5 2.2.5 + __isascii_l@GLIBC_2.2.5 2.2.5 + __isblank_l@GLIBC_2.2.5 2.2.5 + __iscntrl_l@GLIBC_2.2.5 2.2.5 + __isctype@GLIBC_2.3 2.3 + __isdigit_l@GLIBC_2.2.5 2.2.5 + __isgraph_l@GLIBC_2.2.5 2.2.5 + __isinf@GLIBC_2.2.5 2.2.5 + __isinff@GLIBC_2.2.5 2.2.5 + __isinfl@GLIBC_2.2.5 2.2.5 + __islower_l@GLIBC_2.2.5 2.2.5 + __isnan@GLIBC_2.2.5 2.2.5 + __isnanf@GLIBC_2.2.5 2.2.5 + __isnanl@GLIBC_2.2.5 2.2.5 + __isoc99_fscanf@GLIBC_2.7 2.7 + __isoc99_fwscanf@GLIBC_2.7 2.7 + __isoc99_scanf@GLIBC_2.7 2.7 + __isoc99_sscanf@GLIBC_2.7 2.7 + __isoc99_swscanf@GLIBC_2.7 2.7 + __isoc99_vfscanf@GLIBC_2.7 2.7 + __isoc99_vfwscanf@GLIBC_2.7 2.7 + __isoc99_vscanf@GLIBC_2.7 2.7 + __isoc99_vsscanf@GLIBC_2.7 2.7 + __isoc99_vswscanf@GLIBC_2.7 2.7 + __isoc99_vwscanf@GLIBC_2.7 2.7 + __isoc99_wscanf@GLIBC_2.7 2.7 + __isprint_l@GLIBC_2.2.5 2.2.5 + __ispunct_l@GLIBC_2.2.5 2.2.5 + __isspace_l@GLIBC_2.2.5 2.2.5 + __isupper_l@GLIBC_2.2.5 2.2.5 + __iswalnum_l@GLIBC_2.2.5 2.2.5 + __iswalpha_l@GLIBC_2.2.5 2.2.5 + __iswblank_l@GLIBC_2.2.5 2.2.5 + __iswcntrl_l@GLIBC_2.2.5 2.2.5 + __iswctype@GLIBC_2.2.5 2.2.5 + __iswctype_l@GLIBC_2.2.5 2.2.5 + __iswdigit_l@GLIBC_2.2.5 2.2.5 + __iswgraph_l@GLIBC_2.2.5 2.2.5 + __iswlower_l@GLIBC_2.2.5 2.2.5 + __iswprint_l@GLIBC_2.2.5 2.2.5 + __iswpunct_l@GLIBC_2.2.5 2.2.5 + __iswspace_l@GLIBC_2.2.5 2.2.5 + __iswupper_l@GLIBC_2.2.5 2.2.5 + __iswxdigit_l@GLIBC_2.2.5 2.2.5 + __isxdigit_l@GLIBC_2.2.5 2.2.5 + __ivaliduser@GLIBC_2.2.5 2.2.5 + __key_decryptsession_pk_LOCAL@GLIBC_2.2.5 2.2.5 + __key_encryptsession_pk_LOCAL@GLIBC_2.2.5 2.2.5 + __key_gendes_LOCAL@GLIBC_2.2.5 2.2.5 + __libc_allocate_rtsig@GLIBC_2.2.5 2.2.5 + __libc_allocate_rtsig_private@GLIBC_PRIVATE 2.7 + __libc_calloc@GLIBC_2.2.5 2.2.5 + __libc_current_sigrtmax@GLIBC_2.2.5 2.2.5 + __libc_current_sigrtmax_private@GLIBC_PRIVATE 2.7 + __libc_current_sigrtmin@GLIBC_2.2.5 2.2.5 + __libc_current_sigrtmin_private@GLIBC_PRIVATE 2.7 + __libc_dl_error_tsd@GLIBC_PRIVATE 2.7 + __libc_dlclose@GLIBC_PRIVATE 2.7 + __libc_dlopen_mode@GLIBC_PRIVATE 2.7 + __libc_dlsym@GLIBC_PRIVATE 2.7 + __libc_fatal@GLIBC_PRIVATE 2.7 + __libc_fork@GLIBC_PRIVATE 2.7 + __libc_free@GLIBC_2.2.5 2.2.5 + __libc_freeres@GLIBC_2.2.5 2.2.5 + __libc_init_first@GLIBC_2.2.5 2.2.5 + __libc_longjmp@GLIBC_PRIVATE 2.7 + __libc_mallinfo@GLIBC_2.2.5 2.2.5 + __libc_malloc@GLIBC_2.2.5 2.2.5 + __libc_mallopt@GLIBC_2.2.5 2.2.5 + __libc_memalign@GLIBC_2.2.5 2.2.5 + __libc_pthread_init@GLIBC_PRIVATE 2.7 + __libc_pvalloc@GLIBC_2.2.5 2.2.5 + __libc_pwrite@GLIBC_PRIVATE 2.7 + __libc_realloc@GLIBC_2.2.5 2.2.5 + __libc_sa_len@GLIBC_2.2.5 2.2.5 + __libc_siglongjmp@GLIBC_PRIVATE 2.7 + __libc_start_main@GLIBC_2.2.5 2.2.5 + __libc_system@GLIBC_PRIVATE 2.7 + __libc_thread_freeres@GLIBC_PRIVATE 2.7 + __libc_valloc@GLIBC_2.2.5 2.2.5 + __lseek@GLIBC_2.2.5 2.2.5 + __lxstat64@GLIBC_2.2.5 2.2.5 + __lxstat@GLIBC_2.2.5 2.2.5 + __malloc_hook@GLIBC_2.2.5 2.2.5 + __malloc_initialize_hook@GLIBC_2.2.5 2.2.5 + __mbrlen@GLIBC_2.2.5 2.2.5 + __mbrtowc@GLIBC_2.2.5 2.2.5 + __mbsnrtowcs_chk@GLIBC_2.4 2.4 + __mbsrtowcs_chk@GLIBC_2.4 2.4 + __mbstowcs_chk@GLIBC_2.4 2.4 + __memalign_hook@GLIBC_2.2.5 2.2.5 + __memcpy_chk@GLIBC_2.3.4 2.3.4 + __memmove_chk@GLIBC_2.3.4 2.3.4 + __mempcpy@GLIBC_2.2.5 2.2.5 + __mempcpy_chk@GLIBC_2.3.4 2.3.4 + __mempcpy_small@GLIBC_2.2.5 2.2.5 + __memset_chk@GLIBC_2.3.4 2.3.4 + __monstartup@GLIBC_2.2.5 2.2.5 + __morecore@GLIBC_2.2.5 2.2.5 + __nanosleep@GLIBC_2.2.6 2.2.6 + __newlocale@GLIBC_2.2.5 2.2.5 + __nl_langinfo_l@GLIBC_2.2.5 2.2.5 + __nss_configure_lookup@GLIBC_2.2.5 2.2.5 + __nss_database_lookup@GLIBC_2.2.5 2.2.5 + __nss_disable_nscd@GLIBC_PRIVATE 2.7 + __nss_group_lookup@GLIBC_2.2.5 2.2.5 + __nss_hostname_digits_dots@GLIBC_2.2.5 2.2.5 + __nss_hosts_lookup@GLIBC_2.2.5 2.2.5 + __nss_lookup_function@GLIBC_PRIVATE 2.7 + __nss_next@GLIBC_2.2.5 2.2.5 + __nss_passwd_lookup@GLIBC_2.2.5 2.2.5 + __nss_services_lookup@GLIBC_PRIVATE 2.7 + __open64@GLIBC_2.2.5 2.2.5 + __open64_2@GLIBC_2.7 2.7 + __open@GLIBC_2.2.5 2.2.5 + __open_2@GLIBC_2.7 2.7 + __open_catalog@GLIBC_PRIVATE 2.7 + __openat64_2@GLIBC_2.7 2.7 + __openat_2@GLIBC_2.7 2.7 + __overflow@GLIBC_2.2.5 2.2.5 + __pipe@GLIBC_2.2.5 2.2.5 + __poll@GLIBC_2.2.5 2.2.5 + __pread64@GLIBC_2.2.5 2.2.5 + __pread64_chk@GLIBC_2.4 2.4 + __pread_chk@GLIBC_2.4 2.4 + __printf_chk@GLIBC_2.3.4 2.3.4 + __printf_fp@GLIBC_2.2.5 2.2.5 + __profile_frequency@GLIBC_2.2.5 2.2.5 + __progname@GLIBC_2.2.5 2.2.5 + __progname_full@GLIBC_2.2.5 2.2.5 + __ptsname_r_chk@GLIBC_2.4 2.4 + __pwrite64@GLIBC_2.2.5 2.2.5 + __rawmemchr@GLIBC_2.2.5 2.2.5 + __rcmd_errstr@GLIBC_2.2.5 2.2.5 + __read@GLIBC_2.2.5 2.2.5 + __read_chk@GLIBC_2.4 2.4 + __readlink_chk@GLIBC_2.4 2.4 + __readlinkat_chk@GLIBC_2.5 2.5 + __realloc_hook@GLIBC_2.2.5 2.2.5 + __realpath_chk@GLIBC_2.4 2.4 + __recv_chk@GLIBC_2.4 2.4 + __recvfrom_chk@GLIBC_2.4 2.4 + __register_atfork@GLIBC_2.3.2 2.3.2 + __res_iclose@GLIBC_PRIVATE 2.7 + __res_init@GLIBC_2.2.5 2.2.5 + __res_maybe_init@GLIBC_PRIVATE 2.7 + __res_nclose@GLIBC_2.2.5 2.2.5 + __res_ninit@GLIBC_2.2.5 2.2.5 + __res_randomid@GLIBC_2.2.5 2.2.5 + __res_state@GLIBC_2.2.5 2.2.5 + __resp@GLIBC_PRIVATE 2.7 + __rpc_thread_createerr@GLIBC_2.2.5 2.2.5 + __rpc_thread_svc_fdset@GLIBC_2.2.5 2.2.5 + __rpc_thread_svc_max_pollfd@GLIBC_2.2.5 2.2.5 + __rpc_thread_svc_pollfd@GLIBC_2.2.5 2.2.5 + __sbrk@GLIBC_2.2.5 2.2.5 + __sched_cpualloc@GLIBC_2.7 2.7 + __sched_cpucount@GLIBC_2.6 2.6 + __sched_cpufree@GLIBC_2.7 2.7 + __sched_get_priority_max@GLIBC_2.2.5 2.2.5 + __sched_get_priority_min@GLIBC_2.2.5 2.2.5 + __sched_getparam@GLIBC_2.2.5 2.2.5 + __sched_getscheduler@GLIBC_2.2.5 2.2.5 + __sched_setscheduler@GLIBC_2.2.5 2.2.5 + __sched_yield@GLIBC_2.2.5 2.2.5 + __secure_getenv@GLIBC_2.2.5 2.2.5 + __select@GLIBC_2.2.5 2.2.5 + __send@GLIBC_2.2.5 2.2.5 + __setmntent@GLIBC_2.2.5 2.2.5 + __setpgid@GLIBC_2.2.5 2.2.5 + __sigaction@GLIBC_2.2.5 2.2.5 + __sigaddset@GLIBC_2.2.5 2.2.5 + __sigdelset@GLIBC_2.2.5 2.2.5 + __sigismember@GLIBC_2.2.5 2.2.5 + __signbit@GLIBC_2.2.5 2.2.5 + __signbitf@GLIBC_2.2.5 2.2.5 + __signbitl@GLIBC_2.2.5 2.2.5 + __sigpause@GLIBC_2.2.5 2.2.5 + __sigsetjmp@GLIBC_2.2.5 2.2.5 + __sigsuspend@GLIBC_2.2.5 2.2.5 + __snprintf_chk@GLIBC_2.3.4 2.3.4 + __sprintf_chk@GLIBC_2.3.4 2.3.4 + __stack_chk_fail@GLIBC_2.4 2.4 + __statfs@GLIBC_2.2.5 2.2.5 + __stpcpy@GLIBC_2.2.5 2.2.5 + __stpcpy_chk@GLIBC_2.3.4 2.3.4 + __stpcpy_small@GLIBC_2.2.5 2.2.5 + __stpncpy@GLIBC_2.2.5 2.2.5 + __stpncpy_chk@GLIBC_2.4 2.4 + __strcasecmp@GLIBC_2.2.5 2.2.5 + __strcasecmp_l@GLIBC_2.2.5 2.2.5 + __strcasestr@GLIBC_2.2.5 2.2.5 + __strcat_chk@GLIBC_2.3.4 2.3.4 + __strcoll_l@GLIBC_2.2.5 2.2.5 + __strcpy_chk@GLIBC_2.3.4 2.3.4 + __strcpy_small@GLIBC_2.2.5 2.2.5 + __strcspn_c1@GLIBC_2.2.5 2.2.5 + __strcspn_c2@GLIBC_2.2.5 2.2.5 + __strcspn_c3@GLIBC_2.2.5 2.2.5 + __strdup@GLIBC_2.2.5 2.2.5 + __strerror_r@GLIBC_2.2.5 2.2.5 + __strfmon_l@GLIBC_2.2.5 2.2.5 + __strftime_l@GLIBC_2.3 2.3 + __strncasecmp_l@GLIBC_2.2.5 2.2.5 + __strncat_chk@GLIBC_2.3.4 2.3.4 + __strncpy_chk@GLIBC_2.3.4 2.3.4 + __strndup@GLIBC_2.2.5 2.2.5 + __strpbrk_c2@GLIBC_2.2.5 2.2.5 + __strpbrk_c3@GLIBC_2.2.5 2.2.5 + __strsep_1c@GLIBC_2.2.5 2.2.5 + __strsep_2c@GLIBC_2.2.5 2.2.5 + __strsep_3c@GLIBC_2.2.5 2.2.5 + __strsep_g@GLIBC_2.2.5 2.2.5 + __strspn_c1@GLIBC_2.2.5 2.2.5 + __strspn_c2@GLIBC_2.2.5 2.2.5 + __strspn_c3@GLIBC_2.2.5 2.2.5 + __strtod_internal@GLIBC_2.2.5 2.2.5 + __strtod_l@GLIBC_2.2.5 2.2.5 + __strtof_internal@GLIBC_2.2.5 2.2.5 + __strtof_l@GLIBC_2.2.5 2.2.5 + __strtok_r@GLIBC_2.2.5 2.2.5 + __strtok_r_1c@GLIBC_2.2.5 2.2.5 + __strtol_internal@GLIBC_2.2.5 2.2.5 + __strtol_l@GLIBC_2.2.5 2.2.5 + __strtold_internal@GLIBC_2.2.5 2.2.5 + __strtold_l@GLIBC_2.2.5 2.2.5 + __strtoll_internal@GLIBC_2.2.5 2.2.5 + __strtoll_l@GLIBC_2.2.5 2.2.5 + __strtoul_internal@GLIBC_2.2.5 2.2.5 + __strtoul_l@GLIBC_2.2.5 2.2.5 + __strtoull_internal@GLIBC_2.2.5 2.2.5 + __strtoull_l@GLIBC_2.2.5 2.2.5 + __strverscmp@GLIBC_2.2.5 2.2.5 + __strxfrm_l@GLIBC_2.2.5 2.2.5 + __swprintf_chk@GLIBC_2.4 2.4 + __sysconf@GLIBC_2.2.5 2.2.5 + __sysctl@GLIBC_2.2.5 2.2.5 + __syslog_chk@GLIBC_2.4 2.4 + __sysv_signal@GLIBC_2.2.5 2.2.5 + __timezone@GLIBC_2.2.5 2.2.5 + __toascii_l@GLIBC_2.2.5 2.2.5 + __tolower_l@GLIBC_2.2.5 2.2.5 + __toupper_l@GLIBC_2.2.5 2.2.5 + __towctrans@GLIBC_2.2.5 2.2.5 + __towctrans_l@GLIBC_2.2.5 2.2.5 + __towlower_l@GLIBC_2.2.5 2.2.5 + __towupper_l@GLIBC_2.2.5 2.2.5 + __ttyname_r_chk@GLIBC_2.4 2.4 + __tzname@GLIBC_2.2.5 2.2.5 + __uflow@GLIBC_2.2.5 2.2.5 + __underflow@GLIBC_2.2.5 2.2.5 + __uselocale@GLIBC_2.3 2.3 + __vdso_clock_gettime@GLIBC_PRIVATE 2.7 + __vfork@GLIBC_2.2.5 2.2.5 + __vfprintf_chk@GLIBC_2.3.4 2.3.4 + __vfscanf@GLIBC_2.2.5 2.2.5 + __vfwprintf_chk@GLIBC_2.4 2.4 + __vprintf_chk@GLIBC_2.3.4 2.3.4 + __vsnprintf@GLIBC_2.2.5 2.2.5 + __vsnprintf_chk@GLIBC_2.3.4 2.3.4 + __vsprintf_chk@GLIBC_2.3.4 2.3.4 + __vsscanf@GLIBC_2.2.5 2.2.5 + __vswprintf_chk@GLIBC_2.4 2.4 + __vsyslog_chk@GLIBC_2.4 2.4 + __vwprintf_chk@GLIBC_2.4 2.4 + __wait@GLIBC_2.2.5 2.2.5 + __waitpid@GLIBC_2.2.5 2.2.5 + __wcpcpy_chk@GLIBC_2.4 2.4 + __wcpncpy_chk@GLIBC_2.4 2.4 + __wcrtomb_chk@GLIBC_2.4 2.4 + __wcscasecmp_l@GLIBC_2.2.5 2.2.5 + __wcscat_chk@GLIBC_2.4 2.4 + __wcscoll_l@GLIBC_2.2.5 2.2.5 + __wcscpy_chk@GLIBC_2.4 2.4 + __wcsftime_l@GLIBC_2.3 2.3 + __wcsncasecmp_l@GLIBC_2.2.5 2.2.5 + __wcsncat_chk@GLIBC_2.4 2.4 + __wcsncpy_chk@GLIBC_2.4 2.4 + __wcsnrtombs_chk@GLIBC_2.4 2.4 + __wcsrtombs_chk@GLIBC_2.4 2.4 + __wcstod_internal@GLIBC_2.2.5 2.2.5 + __wcstod_l@GLIBC_2.2.5 2.2.5 + __wcstof_internal@GLIBC_2.2.5 2.2.5 + __wcstof_l@GLIBC_2.2.5 2.2.5 + __wcstol_internal@GLIBC_2.2.5 2.2.5 + __wcstol_l@GLIBC_2.2.5 2.2.5 + __wcstold_internal@GLIBC_2.2.5 2.2.5 + __wcstold_l@GLIBC_2.2.5 2.2.5 + __wcstoll_internal@GLIBC_2.2.5 2.2.5 + __wcstoll_l@GLIBC_2.2.5 2.2.5 + __wcstombs_chk@GLIBC_2.4 2.4 + __wcstoul_internal@GLIBC_2.2.5 2.2.5 + __wcstoul_l@GLIBC_2.2.5 2.2.5 + __wcstoull_internal@GLIBC_2.2.5 2.2.5 + __wcstoull_l@GLIBC_2.2.5 2.2.5 + __wcsxfrm_l@GLIBC_2.2.5 2.2.5 + __wctomb_chk@GLIBC_2.4 2.4 + __wctrans_l@GLIBC_2.2.5 2.2.5 + __wctype_l@GLIBC_2.2.5 2.2.5 + __wmemcpy_chk@GLIBC_2.4 2.4 + __wmemmove_chk@GLIBC_2.4 2.4 + __wmempcpy_chk@GLIBC_2.4 2.4 + __wmemset_chk@GLIBC_2.4 2.4 + __woverflow@GLIBC_2.2.5 2.2.5 + __wprintf_chk@GLIBC_2.4 2.4 + __write@GLIBC_2.2.5 2.2.5 + __wuflow@GLIBC_2.2.5 2.2.5 + __wunderflow@GLIBC_2.2.5 2.2.5 + __xmknod@GLIBC_2.2.5 2.2.5 + __xmknodat@GLIBC_2.4 2.4 + __xpg_basename@GLIBC_2.2.5 2.2.5 + __xpg_sigpause@GLIBC_2.2.5 2.2.5 + __xpg_strerror_r@GLIBC_2.3.4 2.3.4 + __xstat64@GLIBC_2.2.5 2.2.5 + __xstat@GLIBC_2.2.5 2.2.5 + _authenticate@GLIBC_2.2.5 2.2.5 + _dl_addr@GLIBC_PRIVATE 2.7 + _dl_mcount_wrapper@GLIBC_2.2.5 2.2.5 + _dl_mcount_wrapper_check@GLIBC_2.2.5 2.2.5 + _dl_open_hook@GLIBC_PRIVATE 2.7 + _dl_sym@GLIBC_PRIVATE 2.7 + _dl_vsym@GLIBC_PRIVATE 2.7 + _environ@GLIBC_2.2.5 2.2.5 + _exit@GLIBC_2.2.5 2.2.5 + _flushlbf@GLIBC_2.2.5 2.2.5 + _itoa_lower_digits@GLIBC_PRIVATE 2.7 + _libc_intl_domainname@GLIBC_2.2.5 2.2.5 + _longjmp@GLIBC_2.2.5 2.2.5 + _mcleanup@GLIBC_2.2.5 2.2.5 + _mcount@GLIBC_2.2.5 2.2.5 + _nl_default_dirname@GLIBC_2.2.5 2.2.5 + _nl_domain_bindings@GLIBC_2.2.5 2.2.5 + _nl_msg_cat_cntr@GLIBC_2.2.5 2.2.5 + _nss_files_parse_grent@GLIBC_PRIVATE 2.7 + _nss_files_parse_pwent@GLIBC_PRIVATE 2.7 + _nss_files_parse_spent@GLIBC_PRIVATE 2.7 + _null_auth@GLIBC_2.2.5 2.2.5 + _obstack@GLIBC_2.2.5 2.2.5 + _obstack_allocated_p@GLIBC_2.2.5 2.2.5 + _obstack_begin@GLIBC_2.2.5 2.2.5 + _obstack_begin_1@GLIBC_2.2.5 2.2.5 + _obstack_free@GLIBC_2.2.5 2.2.5 + _obstack_memory_used@GLIBC_2.2.5 2.2.5 + _obstack_newchunk@GLIBC_2.2.5 2.2.5 + _res@GLIBC_2.2.5 2.2.5 + _res_hconf@GLIBC_2.2.5 2.2.5 + _rpc_dtablesize@GLIBC_2.2.5 2.2.5 + _seterr_reply@GLIBC_2.2.5 2.2.5 + _setjmp@GLIBC_2.2.5 2.2.5 + _sys_errlist@GLIBC_2.2.5 2.2.5 + _sys_errlist@GLIBC_2.3 2.3 + _sys_errlist@GLIBC_2.4 2.4 + _sys_nerr@GLIBC_2.2.5 2.2.5 + _sys_nerr@GLIBC_2.3 2.3 + _sys_nerr@GLIBC_2.4 2.4 + _sys_siglist@GLIBC_2.2.5 2.2.5 + _sys_siglist@GLIBC_2.3.3 2.3.3 + _tolower@GLIBC_2.2.5 2.2.5 + _toupper@GLIBC_2.2.5 2.2.5 + a64l@GLIBC_2.2.5 2.2.5 + abort@GLIBC_2.2.5 2.2.5 + abs@GLIBC_2.2.5 2.2.5 + accept@GLIBC_2.2.5 2.2.5 + access@GLIBC_2.2.5 2.2.5 + acct@GLIBC_2.2.5 2.2.5 + addmntent@GLIBC_2.2.5 2.2.5 + addseverity@GLIBC_2.2.5 2.2.5 + adjtime@GLIBC_2.2.5 2.2.5 + adjtimex@GLIBC_2.2.5 2.2.5 + advance@GLIBC_2.2.5 2.2.5 + alarm@GLIBC_2.2.5 2.2.5 + alphasort64@GLIBC_2.2.5 2.2.5 + alphasort@GLIBC_2.2.5 2.2.5 + arch_prctl@GLIBC_2.2.5 2.2.5 + argp_err_exit_status@GLIBC_2.2.5 2.2.5 + argp_error@GLIBC_2.2.5 2.2.5 + argp_failure@GLIBC_2.2.5 2.2.5 + argp_help@GLIBC_2.2.5 2.2.5 + argp_parse@GLIBC_2.2.5 2.2.5 + argp_program_bug_address@GLIBC_2.2.5 2.2.5 + argp_program_version@GLIBC_2.2.5 2.2.5 + argp_program_version_hook@GLIBC_2.2.5 2.2.5 + argp_state_help@GLIBC_2.2.5 2.2.5 + argp_usage@GLIBC_2.2.5 2.2.5 + argz_add@GLIBC_2.2.5 2.2.5 + argz_add_sep@GLIBC_2.2.5 2.2.5 + argz_append@GLIBC_2.2.5 2.2.5 + argz_count@GLIBC_2.2.5 2.2.5 + argz_create@GLIBC_2.2.5 2.2.5 + argz_create_sep@GLIBC_2.2.5 2.2.5 + argz_delete@GLIBC_2.2.5 2.2.5 + argz_extract@GLIBC_2.2.5 2.2.5 + argz_insert@GLIBC_2.2.5 2.2.5 + argz_next@GLIBC_2.2.5 2.2.5 + argz_replace@GLIBC_2.2.5 2.2.5 + argz_stringify@GLIBC_2.2.5 2.2.5 + asctime@GLIBC_2.2.5 2.2.5 + asctime_r@GLIBC_2.2.5 2.2.5 + asprintf@GLIBC_2.2.5 2.2.5 + atof@GLIBC_2.2.5 2.2.5 + atoi@GLIBC_2.2.5 2.2.5 + atol@GLIBC_2.2.5 2.2.5 + atoll@GLIBC_2.2.5 2.2.5 + authdes_create@GLIBC_2.2.5 2.2.5 + authdes_getucred@GLIBC_2.2.5 2.2.5 + authdes_pk_create@GLIBC_2.2.5 2.2.5 + authnone_create@GLIBC_2.2.5 2.2.5 + authunix_create@GLIBC_2.2.5 2.2.5 + authunix_create_default@GLIBC_2.2.5 2.2.5 + backtrace@GLIBC_2.2.5 2.2.5 + backtrace_symbols@GLIBC_2.2.5 2.2.5 + backtrace_symbols_fd@GLIBC_2.2.5 2.2.5 + basename@GLIBC_2.2.5 2.2.5 + bcmp@GLIBC_2.2.5 2.2.5 + bcopy@GLIBC_2.2.5 2.2.5 + bdflush@GLIBC_2.2.5 2.2.5 + bind@GLIBC_2.2.5 2.2.5 + bind_textdomain_codeset@GLIBC_2.2.5 2.2.5 + bindresvport@GLIBC_2.2.5 2.2.5 + bindtextdomain@GLIBC_2.2.5 2.2.5 + brk@GLIBC_2.2.5 2.2.5 + bsd_signal@GLIBC_2.2.5 2.2.5 + bsearch@GLIBC_2.2.5 2.2.5 + btowc@GLIBC_2.2.5 2.2.5 + bzero@GLIBC_2.2.5 2.2.5 + calloc@GLIBC_2.2.5 2.2.5 + callrpc@GLIBC_2.2.5 2.2.5 + canonicalize_file_name@GLIBC_2.2.5 2.2.5 + capget@GLIBC_2.2.5 2.2.5 + capset@GLIBC_2.2.5 2.2.5 + catclose@GLIBC_2.2.5 2.2.5 + catgets@GLIBC_2.2.5 2.2.5 + catopen@GLIBC_2.2.5 2.2.5 + cbc_crypt@GLIBC_2.2.5 2.2.5 + cfgetispeed@GLIBC_2.2.5 2.2.5 + cfgetospeed@GLIBC_2.2.5 2.2.5 + cfmakeraw@GLIBC_2.2.5 2.2.5 + cfree@GLIBC_2.2.5 2.2.5 + cfsetispeed@GLIBC_2.2.5 2.2.5 + cfsetospeed@GLIBC_2.2.5 2.2.5 + cfsetspeed@GLIBC_2.2.5 2.2.5 + chdir@GLIBC_2.2.5 2.2.5 + chflags@GLIBC_2.2.5 2.2.5 + chmod@GLIBC_2.2.5 2.2.5 + chown@GLIBC_2.2.5 2.2.5 + chroot@GLIBC_2.2.5 2.2.5 + clearenv@GLIBC_2.2.5 2.2.5 + clearerr@GLIBC_2.2.5 2.2.5 + clearerr_unlocked@GLIBC_2.2.5 2.2.5 + clnt_broadcast@GLIBC_2.2.5 2.2.5 + clnt_create@GLIBC_2.2.5 2.2.5 + clnt_pcreateerror@GLIBC_2.2.5 2.2.5 + clnt_perrno@GLIBC_2.2.5 2.2.5 + clnt_perror@GLIBC_2.2.5 2.2.5 + clnt_spcreateerror@GLIBC_2.2.5 2.2.5 + clnt_sperrno@GLIBC_2.2.5 2.2.5 + clnt_sperror@GLIBC_2.2.5 2.2.5 + clntraw_create@GLIBC_2.2.5 2.2.5 + clnttcp_create@GLIBC_2.2.5 2.2.5 + clntudp_bufcreate@GLIBC_2.2.5 2.2.5 + clntudp_create@GLIBC_2.2.5 2.2.5 + clntunix_create@GLIBC_2.2.5 2.2.5 + clock@GLIBC_2.2.5 2.2.5 + clone@GLIBC_2.2.5 2.2.5 + close@GLIBC_2.2.5 2.2.5 + closedir@GLIBC_2.2.5 2.2.5 + closelog@GLIBC_2.2.5 2.2.5 + confstr@GLIBC_2.2.5 2.2.5 + connect@GLIBC_2.2.5 2.2.5 + copysign@GLIBC_2.2.5 2.2.5 + copysignf@GLIBC_2.2.5 2.2.5 + copysignl@GLIBC_2.2.5 2.2.5 + creat64@GLIBC_2.2.5 2.2.5 + creat@GLIBC_2.2.5 2.2.5 + create_module@GLIBC_2.2.5 2.2.5 + ctermid@GLIBC_2.2.5 2.2.5 + ctime@GLIBC_2.2.5 2.2.5 + ctime_r@GLIBC_2.2.5 2.2.5 + cuserid@GLIBC_2.2.5 2.2.5 + daemon@GLIBC_2.2.5 2.2.5 + daylight@GLIBC_2.2.5 2.2.5 + dcgettext@GLIBC_2.2.5 2.2.5 + dcngettext@GLIBC_2.2.5 2.2.5 + delete_module@GLIBC_2.2.5 2.2.5 + des_setparity@GLIBC_2.2.5 2.2.5 + dgettext@GLIBC_2.2.5 2.2.5 + difftime@GLIBC_2.2.5 2.2.5 + dirfd@GLIBC_2.2.5 2.2.5 + dirname@GLIBC_2.2.5 2.2.5 + div@GLIBC_2.2.5 2.2.5 + dl_iterate_phdr@GLIBC_2.2.5 2.2.5 + dngettext@GLIBC_2.2.5 2.2.5 + dprintf@GLIBC_2.2.5 2.2.5 + drand48@GLIBC_2.2.5 2.2.5 + drand48_r@GLIBC_2.2.5 2.2.5 + dup2@GLIBC_2.2.5 2.2.5 + dup@GLIBC_2.2.5 2.2.5 + duplocale@GLIBC_2.3 2.3 + dysize@GLIBC_2.2.5 2.2.5 + eaccess@GLIBC_2.4 2.4 + ecb_crypt@GLIBC_2.2.5 2.2.5 + ecvt@GLIBC_2.2.5 2.2.5 + ecvt_r@GLIBC_2.2.5 2.2.5 + endaliasent@GLIBC_2.2.5 2.2.5 + endfsent@GLIBC_2.2.5 2.2.5 + endgrent@GLIBC_2.2.5 2.2.5 + endhostent@GLIBC_2.2.5 2.2.5 + endmntent@GLIBC_2.2.5 2.2.5 + endnetent@GLIBC_2.2.5 2.2.5 + endnetgrent@GLIBC_2.2.5 2.2.5 + endprotoent@GLIBC_2.2.5 2.2.5 + endpwent@GLIBC_2.2.5 2.2.5 + endrpcent@GLIBC_2.2.5 2.2.5 + endservent@GLIBC_2.2.5 2.2.5 + endspent@GLIBC_2.2.5 2.2.5 + endttyent@GLIBC_2.2.5 2.2.5 + endusershell@GLIBC_2.2.5 2.2.5 + endutent@GLIBC_2.2.5 2.2.5 + endutxent@GLIBC_2.2.5 2.2.5 + environ@GLIBC_2.2.5 2.2.5 + envz_add@GLIBC_2.2.5 2.2.5 + envz_entry@GLIBC_2.2.5 2.2.5 + envz_get@GLIBC_2.2.5 2.2.5 + envz_merge@GLIBC_2.2.5 2.2.5 + envz_remove@GLIBC_2.2.5 2.2.5 + envz_strip@GLIBC_2.2.5 2.2.5 + epoll_create@GLIBC_2.3.2 2.3.2 + epoll_ctl@GLIBC_2.3.2 2.3.2 + epoll_pwait@GLIBC_2.6 2.6 + epoll_wait@GLIBC_2.3.2 2.3.2 + erand48@GLIBC_2.2.5 2.2.5 + erand48_r@GLIBC_2.2.5 2.2.5 + err@GLIBC_2.2.5 2.2.5 + errno@GLIBC_PRIVATE 2.7 + error@GLIBC_2.2.5 2.2.5 + error_at_line@GLIBC_2.2.5 2.2.5 + error_message_count@GLIBC_2.2.5 2.2.5 + error_one_per_line@GLIBC_2.2.5 2.2.5 + error_print_progname@GLIBC_2.2.5 2.2.5 + errx@GLIBC_2.2.5 2.2.5 + ether_aton@GLIBC_2.2.5 2.2.5 + ether_aton_r@GLIBC_2.2.5 2.2.5 + ether_hostton@GLIBC_2.2.5 2.2.5 + ether_line@GLIBC_2.2.5 2.2.5 + ether_ntoa@GLIBC_2.2.5 2.2.5 + ether_ntoa_r@GLIBC_2.2.5 2.2.5 + ether_ntohost@GLIBC_2.2.5 2.2.5 + euidaccess@GLIBC_2.2.5 2.2.5 + eventfd@GLIBC_2.7 2.7 + eventfd_read@GLIBC_2.7 2.7 + eventfd_write@GLIBC_2.7 2.7 + execl@GLIBC_2.2.5 2.2.5 + execle@GLIBC_2.2.5 2.2.5 + execlp@GLIBC_2.2.5 2.2.5 + execv@GLIBC_2.2.5 2.2.5 + execve@GLIBC_2.2.5 2.2.5 + execvp@GLIBC_2.2.5 2.2.5 + exit@GLIBC_2.2.5 2.2.5 + faccessat@GLIBC_2.4 2.4 + fattach@GLIBC_2.2.5 2.2.5 + fchdir@GLIBC_2.2.5 2.2.5 + fchflags@GLIBC_2.2.5 2.2.5 + fchmod@GLIBC_2.2.5 2.2.5 + fchmodat@GLIBC_2.4 2.4 + fchown@GLIBC_2.2.5 2.2.5 + fchownat@GLIBC_2.4 2.4 + fclose@GLIBC_2.2.5 2.2.5 + fcloseall@GLIBC_2.2.5 2.2.5 + fcntl@GLIBC_2.2.5 2.2.5 + fcvt@GLIBC_2.2.5 2.2.5 + fcvt_r@GLIBC_2.2.5 2.2.5 + fdatasync@GLIBC_2.2.5 2.2.5 + fdetach@GLIBC_2.2.5 2.2.5 + fdopen@GLIBC_2.2.5 2.2.5 + fdopendir@GLIBC_2.4 2.4 + feof@GLIBC_2.2.5 2.2.5 + feof_unlocked@GLIBC_2.2.5 2.2.5 + ferror@GLIBC_2.2.5 2.2.5 + ferror_unlocked@GLIBC_2.2.5 2.2.5 + fexecve@GLIBC_2.2.5 2.2.5 + fflush@GLIBC_2.2.5 2.2.5 + fflush_unlocked@GLIBC_2.2.5 2.2.5 + ffs@GLIBC_2.2.5 2.2.5 + ffsl@GLIBC_2.2.5 2.2.5 + ffsll@GLIBC_2.2.5 2.2.5 + fgetc@GLIBC_2.2.5 2.2.5 + fgetc_unlocked@GLIBC_2.2.5 2.2.5 + fgetgrent@GLIBC_2.2.5 2.2.5 + fgetgrent_r@GLIBC_2.2.5 2.2.5 + fgetpos64@GLIBC_2.2.5 2.2.5 + fgetpos@GLIBC_2.2.5 2.2.5 + fgetpwent@GLIBC_2.2.5 2.2.5 + fgetpwent_r@GLIBC_2.2.5 2.2.5 + fgets@GLIBC_2.2.5 2.2.5 + fgets_unlocked@GLIBC_2.2.5 2.2.5 + fgetspent@GLIBC_2.2.5 2.2.5 + fgetspent_r@GLIBC_2.2.5 2.2.5 + fgetwc@GLIBC_2.2.5 2.2.5 + fgetwc_unlocked@GLIBC_2.2.5 2.2.5 + fgetws@GLIBC_2.2.5 2.2.5 + fgetws_unlocked@GLIBC_2.2.5 2.2.5 + fgetxattr@GLIBC_2.3 2.3 + fileno@GLIBC_2.2.5 2.2.5 + fileno_unlocked@GLIBC_2.2.5 2.2.5 + finite@GLIBC_2.2.5 2.2.5 + finitef@GLIBC_2.2.5 2.2.5 + finitel@GLIBC_2.2.5 2.2.5 + flistxattr@GLIBC_2.3 2.3 + flock@GLIBC_2.2.5 2.2.5 + flockfile@GLIBC_2.2.5 2.2.5 + fmemopen@GLIBC_2.2.5 2.2.5 + fmtmsg@GLIBC_2.2.5 2.2.5 + fnmatch@GLIBC_2.2.5 2.2.5 + fopen64@GLIBC_2.2.5 2.2.5 + fopen@GLIBC_2.2.5 2.2.5 + fopencookie@GLIBC_2.2.5 2.2.5 + fork@GLIBC_2.2.5 2.2.5 + fpathconf@GLIBC_2.2.5 2.2.5 + fprintf@GLIBC_2.2.5 2.2.5 + fputc@GLIBC_2.2.5 2.2.5 + fputc_unlocked@GLIBC_2.2.5 2.2.5 + fputs@GLIBC_2.2.5 2.2.5 + fputs_unlocked@GLIBC_2.2.5 2.2.5 + fputwc@GLIBC_2.2.5 2.2.5 + fputwc_unlocked@GLIBC_2.2.5 2.2.5 + fputws@GLIBC_2.2.5 2.2.5 + fputws_unlocked@GLIBC_2.2.5 2.2.5 + fread@GLIBC_2.2.5 2.2.5 + fread_unlocked@GLIBC_2.2.5 2.2.5 + free@GLIBC_2.2.5 2.2.5 + freeaddrinfo@GLIBC_2.2.5 2.2.5 + freeifaddrs@GLIBC_2.3 2.3 + freelocale@GLIBC_2.3 2.3 + fremovexattr@GLIBC_2.3 2.3 + freopen64@GLIBC_2.2.5 2.2.5 + freopen@GLIBC_2.2.5 2.2.5 + frexp@GLIBC_2.2.5 2.2.5 + frexpf@GLIBC_2.2.5 2.2.5 + frexpl@GLIBC_2.2.5 2.2.5 + fscanf@GLIBC_2.2.5 2.2.5 + fseek@GLIBC_2.2.5 2.2.5 + fseeko64@GLIBC_2.2.5 2.2.5 + fseeko@GLIBC_2.2.5 2.2.5 + fsetpos64@GLIBC_2.2.5 2.2.5 + fsetpos@GLIBC_2.2.5 2.2.5 + fsetxattr@GLIBC_2.3 2.3 + fstatfs64@GLIBC_2.2.5 2.2.5 + fstatfs@GLIBC_2.2.5 2.2.5 + fstatvfs64@GLIBC_2.2.5 2.2.5 + fstatvfs@GLIBC_2.2.5 2.2.5 + fsync@GLIBC_2.2.5 2.2.5 + ftell@GLIBC_2.2.5 2.2.5 + ftello64@GLIBC_2.2.5 2.2.5 + ftello@GLIBC_2.2.5 2.2.5 + ftime@GLIBC_2.2.5 2.2.5 + ftok@GLIBC_2.2.5 2.2.5 + ftruncate64@GLIBC_2.2.5 2.2.5 + ftruncate@GLIBC_2.2.5 2.2.5 + ftrylockfile@GLIBC_2.2.5 2.2.5 + fts_children@GLIBC_2.2.5 2.2.5 + fts_close@GLIBC_2.2.5 2.2.5 + fts_open@GLIBC_2.2.5 2.2.5 + fts_read@GLIBC_2.2.5 2.2.5 + fts_set@GLIBC_2.2.5 2.2.5 + ftw64@GLIBC_2.2.5 2.2.5 + ftw@GLIBC_2.2.5 2.2.5 + funlockfile@GLIBC_2.2.5 2.2.5 + futimens@GLIBC_2.6 2.6 + futimes@GLIBC_2.3 2.3 + futimesat@GLIBC_2.4 2.4 + fwide@GLIBC_2.2.5 2.2.5 + fwprintf@GLIBC_2.2.5 2.2.5 + fwrite@GLIBC_2.2.5 2.2.5 + fwrite_unlocked@GLIBC_2.2.5 2.2.5 + fwscanf@GLIBC_2.2.5 2.2.5 + gai_strerror@GLIBC_2.2.5 2.2.5 + gcvt@GLIBC_2.2.5 2.2.5 + get_avphys_pages@GLIBC_2.2.5 2.2.5 + get_current_dir_name@GLIBC_2.2.5 2.2.5 + get_kernel_syms@GLIBC_2.2.5 2.2.5 + get_myaddress@GLIBC_2.2.5 2.2.5 + get_nprocs@GLIBC_2.2.5 2.2.5 + get_nprocs_conf@GLIBC_2.2.5 2.2.5 + get_phys_pages@GLIBC_2.2.5 2.2.5 + getaddrinfo@GLIBC_2.2.5 2.2.5 + getaliasbyname@GLIBC_2.2.5 2.2.5 + getaliasbyname_r@GLIBC_2.2.5 2.2.5 + getaliasent@GLIBC_2.2.5 2.2.5 + getaliasent_r@GLIBC_2.2.5 2.2.5 + getc@GLIBC_2.2.5 2.2.5 + getc_unlocked@GLIBC_2.2.5 2.2.5 + getchar@GLIBC_2.2.5 2.2.5 + getchar_unlocked@GLIBC_2.2.5 2.2.5 + getcontext@GLIBC_2.2.5 2.2.5 + getcwd@GLIBC_2.2.5 2.2.5 + getdate@GLIBC_2.2.5 2.2.5 + getdate_err@GLIBC_2.2.5 2.2.5 + getdate_r@GLIBC_2.2.5 2.2.5 + getdelim@GLIBC_2.2.5 2.2.5 + getdirentries64@GLIBC_2.2.5 2.2.5 + getdirentries@GLIBC_2.2.5 2.2.5 + getdomainname@GLIBC_2.2.5 2.2.5 + getdtablesize@GLIBC_2.2.5 2.2.5 + getegid@GLIBC_2.2.5 2.2.5 + getenv@GLIBC_2.2.5 2.2.5 + geteuid@GLIBC_2.2.5 2.2.5 + getfsent@GLIBC_2.2.5 2.2.5 + getfsfile@GLIBC_2.2.5 2.2.5 + getfsspec@GLIBC_2.2.5 2.2.5 + getgid@GLIBC_2.2.5 2.2.5 + getgrent@GLIBC_2.2.5 2.2.5 + getgrent_r@GLIBC_2.2.5 2.2.5 + getgrgid@GLIBC_2.2.5 2.2.5 + getgrgid_r@GLIBC_2.2.5 2.2.5 + getgrnam@GLIBC_2.2.5 2.2.5 + getgrnam_r@GLIBC_2.2.5 2.2.5 + getgrouplist@GLIBC_2.2.5 2.2.5 + getgroups@GLIBC_2.2.5 2.2.5 + gethostbyaddr@GLIBC_2.2.5 2.2.5 + gethostbyaddr_r@GLIBC_2.2.5 2.2.5 + gethostbyname2@GLIBC_2.2.5 2.2.5 + gethostbyname2_r@GLIBC_2.2.5 2.2.5 + gethostbyname@GLIBC_2.2.5 2.2.5 + gethostbyname_r@GLIBC_2.2.5 2.2.5 + gethostent@GLIBC_2.2.5 2.2.5 + gethostent_r@GLIBC_2.2.5 2.2.5 + gethostid@GLIBC_2.2.5 2.2.5 + gethostname@GLIBC_2.2.5 2.2.5 + getifaddrs@GLIBC_2.3 2.3 + getipv4sourcefilter@GLIBC_2.3.4 2.3.4 + getitimer@GLIBC_2.2.5 2.2.5 + getline@GLIBC_2.2.5 2.2.5 + getloadavg@GLIBC_2.2.5 2.2.5 + getlogin@GLIBC_2.2.5 2.2.5 + getlogin_r@GLIBC_2.2.5 2.2.5 + getmntent@GLIBC_2.2.5 2.2.5 + getmntent_r@GLIBC_2.2.5 2.2.5 + getmsg@GLIBC_2.2.5 2.2.5 + getnameinfo@GLIBC_2.2.5 2.2.5 + getnetbyaddr@GLIBC_2.2.5 2.2.5 + getnetbyaddr_r@GLIBC_2.2.5 2.2.5 + getnetbyname@GLIBC_2.2.5 2.2.5 + getnetbyname_r@GLIBC_2.2.5 2.2.5 + getnetent@GLIBC_2.2.5 2.2.5 + getnetent_r@GLIBC_2.2.5 2.2.5 + getnetgrent@GLIBC_2.2.5 2.2.5 + getnetgrent_r@GLIBC_2.2.5 2.2.5 + getnetname@GLIBC_2.2.5 2.2.5 + getopt@GLIBC_2.2.5 2.2.5 + getopt_long@GLIBC_2.2.5 2.2.5 + getopt_long_only@GLIBC_2.2.5 2.2.5 + getpagesize@GLIBC_2.2.5 2.2.5 + getpass@GLIBC_2.2.5 2.2.5 + getpeername@GLIBC_2.2.5 2.2.5 + getpgid@GLIBC_2.2.5 2.2.5 + getpgrp@GLIBC_2.2.5 2.2.5 + getpid@GLIBC_2.2.5 2.2.5 + getpmsg@GLIBC_2.2.5 2.2.5 + getppid@GLIBC_2.2.5 2.2.5 + getpriority@GLIBC_2.2.5 2.2.5 + getprotobyname@GLIBC_2.2.5 2.2.5 + getprotobyname_r@GLIBC_2.2.5 2.2.5 + getprotobynumber@GLIBC_2.2.5 2.2.5 + getprotobynumber_r@GLIBC_2.2.5 2.2.5 + getprotoent@GLIBC_2.2.5 2.2.5 + getprotoent_r@GLIBC_2.2.5 2.2.5 + getpt@GLIBC_2.2.5 2.2.5 + getpublickey@GLIBC_2.2.5 2.2.5 + getpw@GLIBC_2.2.5 2.2.5 + getpwent@GLIBC_2.2.5 2.2.5 + getpwent_r@GLIBC_2.2.5 2.2.5 + getpwnam@GLIBC_2.2.5 2.2.5 + getpwnam_r@GLIBC_2.2.5 2.2.5 + getpwuid@GLIBC_2.2.5 2.2.5 + getpwuid_r@GLIBC_2.2.5 2.2.5 + getresgid@GLIBC_2.2.5 2.2.5 + getresuid@GLIBC_2.2.5 2.2.5 + getrlimit64@GLIBC_2.2.5 2.2.5 + getrlimit@GLIBC_2.2.5 2.2.5 + getrpcbyname@GLIBC_2.2.5 2.2.5 + getrpcbyname_r@GLIBC_2.2.5 2.2.5 + getrpcbynumber@GLIBC_2.2.5 2.2.5 + getrpcbynumber_r@GLIBC_2.2.5 2.2.5 + getrpcent@GLIBC_2.2.5 2.2.5 + getrpcent_r@GLIBC_2.2.5 2.2.5 + getrpcport@GLIBC_2.2.5 2.2.5 + getrusage@GLIBC_2.2.5 2.2.5 + gets@GLIBC_2.2.5 2.2.5 + getsecretkey@GLIBC_2.2.5 2.2.5 + getservbyname@GLIBC_2.2.5 2.2.5 + getservbyname_r@GLIBC_2.2.5 2.2.5 + getservbyport@GLIBC_2.2.5 2.2.5 + getservbyport_r@GLIBC_2.2.5 2.2.5 + getservent@GLIBC_2.2.5 2.2.5 + getservent_r@GLIBC_2.2.5 2.2.5 + getsid@GLIBC_2.2.5 2.2.5 + getsockname@GLIBC_2.2.5 2.2.5 + getsockopt@GLIBC_2.2.5 2.2.5 + getsourcefilter@GLIBC_2.3.4 2.3.4 + getspent@GLIBC_2.2.5 2.2.5 + getspent_r@GLIBC_2.2.5 2.2.5 + getspnam@GLIBC_2.2.5 2.2.5 + getspnam_r@GLIBC_2.2.5 2.2.5 + getsubopt@GLIBC_2.2.5 2.2.5 + gettext@GLIBC_2.2.5 2.2.5 + gettimeofday@GLIBC_2.2.5 2.2.5 + getttyent@GLIBC_2.2.5 2.2.5 + getttynam@GLIBC_2.2.5 2.2.5 + getuid@GLIBC_2.2.5 2.2.5 + getusershell@GLIBC_2.2.5 2.2.5 + getutent@GLIBC_2.2.5 2.2.5 + getutent_r@GLIBC_2.2.5 2.2.5 + getutid@GLIBC_2.2.5 2.2.5 + getutid_r@GLIBC_2.2.5 2.2.5 + getutline@GLIBC_2.2.5 2.2.5 + getutline_r@GLIBC_2.2.5 2.2.5 + getutmp@GLIBC_2.2.5 2.2.5 + getutmpx@GLIBC_2.2.5 2.2.5 + getutxent@GLIBC_2.2.5 2.2.5 + getutxid@GLIBC_2.2.5 2.2.5 + getutxline@GLIBC_2.2.5 2.2.5 + getw@GLIBC_2.2.5 2.2.5 + getwc@GLIBC_2.2.5 2.2.5 + getwc_unlocked@GLIBC_2.2.5 2.2.5 + getwchar@GLIBC_2.2.5 2.2.5 + getwchar_unlocked@GLIBC_2.2.5 2.2.5 + getwd@GLIBC_2.2.5 2.2.5 + getxattr@GLIBC_2.3 2.3 + glob64@GLIBC_2.2.5 2.2.5 + glob@GLIBC_2.2.5 2.2.5 + glob_pattern_p@GLIBC_2.2.5 2.2.5 + globfree64@GLIBC_2.2.5 2.2.5 + globfree@GLIBC_2.2.5 2.2.5 + gmtime@GLIBC_2.2.5 2.2.5 + gmtime_r@GLIBC_2.2.5 2.2.5 + gnu_dev_major@GLIBC_2.3.3 2.3.3 + gnu_dev_makedev@GLIBC_2.3.3 2.3.3 + gnu_dev_minor@GLIBC_2.3.3 2.3.3 + gnu_get_libc_release@GLIBC_2.2.5 2.2.5 + gnu_get_libc_version@GLIBC_2.2.5 2.2.5 + grantpt@GLIBC_2.2.5 2.2.5 + group_member@GLIBC_2.2.5 2.2.5 + gsignal@GLIBC_2.2.5 2.2.5 + gtty@GLIBC_2.2.5 2.2.5 + h_errlist@GLIBC_2.2.5 2.2.5 + h_errno@GLIBC_PRIVATE 2.7 + h_nerr@GLIBC_2.2.5 2.2.5 + hasmntopt@GLIBC_2.2.5 2.2.5 + hcreate@GLIBC_2.2.5 2.2.5 + hcreate_r@GLIBC_2.2.5 2.2.5 + hdestroy@GLIBC_2.2.5 2.2.5 + hdestroy_r@GLIBC_2.2.5 2.2.5 + herror@GLIBC_2.2.5 2.2.5 + host2netname@GLIBC_2.2.5 2.2.5 + hsearch@GLIBC_2.2.5 2.2.5 + hsearch_r@GLIBC_2.2.5 2.2.5 + hstrerror@GLIBC_2.2.5 2.2.5 + htonl@GLIBC_2.2.5 2.2.5 + htons@GLIBC_2.2.5 2.2.5 + iconv@GLIBC_2.2.5 2.2.5 + iconv_close@GLIBC_2.2.5 2.2.5 + iconv_open@GLIBC_2.2.5 2.2.5 + if_freenameindex@GLIBC_2.2.5 2.2.5 + if_indextoname@GLIBC_2.2.5 2.2.5 + if_nameindex@GLIBC_2.2.5 2.2.5 + if_nametoindex@GLIBC_2.2.5 2.2.5 + imaxabs@GLIBC_2.2.5 2.2.5 + imaxdiv@GLIBC_2.2.5 2.2.5 + in6addr_any@GLIBC_2.2.5 2.2.5 + in6addr_loopback@GLIBC_2.2.5 2.2.5 + index@GLIBC_2.2.5 2.2.5 + inet6_opt_append@GLIBC_2.5 2.5 + inet6_opt_find@GLIBC_2.5 2.5 + inet6_opt_finish@GLIBC_2.5 2.5 + inet6_opt_get_val@GLIBC_2.5 2.5 + inet6_opt_init@GLIBC_2.5 2.5 + inet6_opt_next@GLIBC_2.5 2.5 + inet6_opt_set_val@GLIBC_2.5 2.5 + inet6_option_alloc@GLIBC_2.3.3 2.3.3 + inet6_option_append@GLIBC_2.3.3 2.3.3 + inet6_option_find@GLIBC_2.3.3 2.3.3 + inet6_option_init@GLIBC_2.3.3 2.3.3 + inet6_option_next@GLIBC_2.3.3 2.3.3 + inet6_option_space@GLIBC_2.3.3 2.3.3 + inet6_rth_add@GLIBC_2.5 2.5 + inet6_rth_getaddr@GLIBC_2.5 2.5 + inet6_rth_init@GLIBC_2.5 2.5 + inet6_rth_reverse@GLIBC_2.5 2.5 + inet6_rth_segments@GLIBC_2.5 2.5 + inet6_rth_space@GLIBC_2.5 2.5 + inet_addr@GLIBC_2.2.5 2.2.5 + inet_aton@GLIBC_2.2.5 2.2.5 + inet_lnaof@GLIBC_2.2.5 2.2.5 + inet_makeaddr@GLIBC_2.2.5 2.2.5 + inet_netof@GLIBC_2.2.5 2.2.5 + inet_network@GLIBC_2.2.5 2.2.5 + inet_nsap_addr@GLIBC_2.2.5 2.2.5 + inet_nsap_ntoa@GLIBC_2.2.5 2.2.5 + inet_ntoa@GLIBC_2.2.5 2.2.5 + inet_ntop@GLIBC_2.2.5 2.2.5 + inet_pton@GLIBC_2.2.5 2.2.5 + init_module@GLIBC_2.2.5 2.2.5 + initgroups@GLIBC_2.2.5 2.2.5 + initstate@GLIBC_2.2.5 2.2.5 + initstate_r@GLIBC_2.2.5 2.2.5 + innetgr@GLIBC_2.2.5 2.2.5 + inotify_add_watch@GLIBC_2.4 2.4 + inotify_init@GLIBC_2.4 2.4 + inotify_rm_watch@GLIBC_2.4 2.4 + insque@GLIBC_2.2.5 2.2.5 + ioctl@GLIBC_2.2.5 2.2.5 + ioperm@GLIBC_2.2.5 2.2.5 + iopl@GLIBC_2.2.5 2.2.5 + iruserok@GLIBC_2.2.5 2.2.5 + iruserok_af@GLIBC_2.2.5 2.2.5 + isalnum@GLIBC_2.2.5 2.2.5 + isalnum_l@GLIBC_2.3 2.3 + isalpha@GLIBC_2.2.5 2.2.5 + isalpha_l@GLIBC_2.3 2.3 + isascii@GLIBC_2.2.5 2.2.5 + isastream@GLIBC_2.2.5 2.2.5 + isatty@GLIBC_2.2.5 2.2.5 + isblank@GLIBC_2.2.5 2.2.5 + isblank_l@GLIBC_2.3 2.3 + iscntrl@GLIBC_2.2.5 2.2.5 + iscntrl_l@GLIBC_2.3 2.3 + isctype@GLIBC_2.3 2.3 + isdigit@GLIBC_2.2.5 2.2.5 + isdigit_l@GLIBC_2.3 2.3 + isfdtype@GLIBC_2.2.5 2.2.5 + isgraph@GLIBC_2.2.5 2.2.5 + isgraph_l@GLIBC_2.3 2.3 + isinf@GLIBC_2.2.5 2.2.5 + isinff@GLIBC_2.2.5 2.2.5 + isinfl@GLIBC_2.2.5 2.2.5 + islower@GLIBC_2.2.5 2.2.5 + islower_l@GLIBC_2.3 2.3 + isnan@GLIBC_2.2.5 2.2.5 + isnanf@GLIBC_2.2.5 2.2.5 + isnanl@GLIBC_2.2.5 2.2.5 + isprint@GLIBC_2.2.5 2.2.5 + isprint_l@GLIBC_2.3 2.3 + ispunct@GLIBC_2.2.5 2.2.5 + ispunct_l@GLIBC_2.3 2.3 + isspace@GLIBC_2.2.5 2.2.5 + isspace_l@GLIBC_2.3 2.3 + isupper@GLIBC_2.2.5 2.2.5 + isupper_l@GLIBC_2.3 2.3 + iswalnum@GLIBC_2.2.5 2.2.5 + iswalnum_l@GLIBC_2.3 2.3 + iswalpha@GLIBC_2.2.5 2.2.5 + iswalpha_l@GLIBC_2.3 2.3 + iswblank@GLIBC_2.2.5 2.2.5 + iswblank_l@GLIBC_2.3 2.3 + iswcntrl@GLIBC_2.2.5 2.2.5 + iswcntrl_l@GLIBC_2.3 2.3 + iswctype@GLIBC_2.2.5 2.2.5 + iswctype_l@GLIBC_2.3 2.3 + iswdigit@GLIBC_2.2.5 2.2.5 + iswdigit_l@GLIBC_2.3 2.3 + iswgraph@GLIBC_2.2.5 2.2.5 + iswgraph_l@GLIBC_2.3 2.3 + iswlower@GLIBC_2.2.5 2.2.5 + iswlower_l@GLIBC_2.3 2.3 + iswprint@GLIBC_2.2.5 2.2.5 + iswprint_l@GLIBC_2.3 2.3 + iswpunct@GLIBC_2.2.5 2.2.5 + iswpunct_l@GLIBC_2.3 2.3 + iswspace@GLIBC_2.2.5 2.2.5 + iswspace_l@GLIBC_2.3 2.3 + iswupper@GLIBC_2.2.5 2.2.5 + iswupper_l@GLIBC_2.3 2.3 + iswxdigit@GLIBC_2.2.5 2.2.5 + iswxdigit_l@GLIBC_2.3 2.3 + isxdigit@GLIBC_2.2.5 2.2.5 + isxdigit_l@GLIBC_2.3 2.3 + jrand48@GLIBC_2.2.5 2.2.5 + jrand48_r@GLIBC_2.2.5 2.2.5 + key_decryptsession@GLIBC_2.2.5 2.2.5 + key_decryptsession_pk@GLIBC_2.2.5 2.2.5 + key_encryptsession@GLIBC_2.2.5 2.2.5 + key_encryptsession_pk@GLIBC_2.2.5 2.2.5 + key_gendes@GLIBC_2.2.5 2.2.5 + key_get_conv@GLIBC_2.2.5 2.2.5 + key_secretkey_is_set@GLIBC_2.2.5 2.2.5 + key_setnet@GLIBC_2.2.5 2.2.5 + key_setsecret@GLIBC_2.2.5 2.2.5 + kill@GLIBC_2.2.5 2.2.5 + killpg@GLIBC_2.2.5 2.2.5 + klogctl@GLIBC_2.2.5 2.2.5 + l64a@GLIBC_2.2.5 2.2.5 + labs@GLIBC_2.2.5 2.2.5 + lchmod@GLIBC_2.3.2 2.3.2 + lchown@GLIBC_2.2.5 2.2.5 + lckpwdf@GLIBC_2.2.5 2.2.5 + lcong48@GLIBC_2.2.5 2.2.5 + lcong48_r@GLIBC_2.2.5 2.2.5 + ldexp@GLIBC_2.2.5 2.2.5 + ldexpf@GLIBC_2.2.5 2.2.5 + ldexpl@GLIBC_2.2.5 2.2.5 + ldiv@GLIBC_2.2.5 2.2.5 + lfind@GLIBC_2.2.5 2.2.5 + lgetxattr@GLIBC_2.3 2.3 + link@GLIBC_2.2.5 2.2.5 + linkat@GLIBC_2.4 2.4 + listen@GLIBC_2.2.5 2.2.5 + listxattr@GLIBC_2.3 2.3 + llabs@GLIBC_2.2.5 2.2.5 + lldiv@GLIBC_2.2.5 2.2.5 + llistxattr@GLIBC_2.3 2.3 + llseek@GLIBC_2.2.5 2.2.5 + loc1@GLIBC_2.2.5 2.2.5 + loc2@GLIBC_2.2.5 2.2.5 + localeconv@GLIBC_2.2.5 2.2.5 + localtime@GLIBC_2.2.5 2.2.5 + localtime_r@GLIBC_2.2.5 2.2.5 + lockf64@GLIBC_2.2.5 2.2.5 + lockf@GLIBC_2.2.5 2.2.5 + locs@GLIBC_2.2.5 2.2.5 + longjmp@GLIBC_2.2.5 2.2.5 + lrand48@GLIBC_2.2.5 2.2.5 + lrand48_r@GLIBC_2.2.5 2.2.5 + lremovexattr@GLIBC_2.3 2.3 + lsearch@GLIBC_2.2.5 2.2.5 + lseek64@GLIBC_2.2.5 2.2.5 + lseek@GLIBC_2.2.5 2.2.5 + lsetxattr@GLIBC_2.3 2.3 + lutimes@GLIBC_2.3 2.3 + madvise@GLIBC_2.2.5 2.2.5 + makecontext@GLIBC_2.2.5 2.2.5 + mallinfo@GLIBC_2.2.5 2.2.5 + malloc@GLIBC_2.2.5 2.2.5 + malloc_get_state@GLIBC_2.2.5 2.2.5 + malloc_set_state@GLIBC_2.2.5 2.2.5 + malloc_stats@GLIBC_2.2.5 2.2.5 + malloc_trim@GLIBC_2.2.5 2.2.5 + malloc_usable_size@GLIBC_2.2.5 2.2.5 + mallopt@GLIBC_2.2.5 2.2.5 + mallwatch@GLIBC_2.2.5 2.2.5 + mblen@GLIBC_2.2.5 2.2.5 + mbrlen@GLIBC_2.2.5 2.2.5 + mbrtowc@GLIBC_2.2.5 2.2.5 + mbsinit@GLIBC_2.2.5 2.2.5 + mbsnrtowcs@GLIBC_2.2.5 2.2.5 + mbsrtowcs@GLIBC_2.2.5 2.2.5 + mbstowcs@GLIBC_2.2.5 2.2.5 + mbtowc@GLIBC_2.2.5 2.2.5 + mcheck@GLIBC_2.2.5 2.2.5 + mcheck_check_all@GLIBC_2.2.5 2.2.5 + mcheck_pedantic@GLIBC_2.2.5 2.2.5 + mcount@GLIBC_2.2.5 2.2.5 + memalign@GLIBC_2.2.5 2.2.5 + memccpy@GLIBC_2.2.5 2.2.5 + memchr@GLIBC_2.2.5 2.2.5 + memcmp@GLIBC_2.2.5 2.2.5 + memcpy@GLIBC_2.2.5 2.2.5 + memfrob@GLIBC_2.2.5 2.2.5 + memmem@GLIBC_2.2.5 2.2.5 + memmove@GLIBC_2.2.5 2.2.5 + mempcpy@GLIBC_2.2.5 2.2.5 + memrchr@GLIBC_2.2.5 2.2.5 + memset@GLIBC_2.2.5 2.2.5 + mincore@GLIBC_2.2.5 2.2.5 + mkdir@GLIBC_2.2.5 2.2.5 + mkdirat@GLIBC_2.4 2.4 + mkdtemp@GLIBC_2.2.5 2.2.5 + mkfifo@GLIBC_2.2.5 2.2.5 + mkfifoat@GLIBC_2.4 2.4 + mkostemp64@GLIBC_2.7 2.7 + mkostemp@GLIBC_2.7 2.7 + mkstemp64@GLIBC_2.2.5 2.2.5 + mkstemp@GLIBC_2.2.5 2.2.5 + mktemp@GLIBC_2.2.5 2.2.5 + mktime@GLIBC_2.2.5 2.2.5 + mlock@GLIBC_2.2.5 2.2.5 + mlockall@GLIBC_2.2.5 2.2.5 + mmap64@GLIBC_2.2.5 2.2.5 + mmap@GLIBC_2.2.5 2.2.5 + modf@GLIBC_2.2.5 2.2.5 + modff@GLIBC_2.2.5 2.2.5 + modfl@GLIBC_2.2.5 2.2.5 + modify_ldt@GLIBC_2.2.5 2.2.5 + moncontrol@GLIBC_2.2.5 2.2.5 + monstartup@GLIBC_2.2.5 2.2.5 + mount@GLIBC_2.2.5 2.2.5 + mprobe@GLIBC_2.2.5 2.2.5 + mprotect@GLIBC_2.2.5 2.2.5 + mrand48@GLIBC_2.2.5 2.2.5 + mrand48_r@GLIBC_2.2.5 2.2.5 + mremap@GLIBC_2.2.5 2.2.5 + msgctl@GLIBC_2.2.5 2.2.5 + msgget@GLIBC_2.2.5 2.2.5 + msgrcv@GLIBC_2.2.5 2.2.5 + msgsnd@GLIBC_2.2.5 2.2.5 + msync@GLIBC_2.2.5 2.2.5 + mtrace@GLIBC_2.2.5 2.2.5 + munlock@GLIBC_2.2.5 2.2.5 + munlockall@GLIBC_2.2.5 2.2.5 + munmap@GLIBC_2.2.5 2.2.5 + muntrace@GLIBC_2.2.5 2.2.5 + nanosleep@GLIBC_2.2.5 2.2.5 + netname2host@GLIBC_2.2.5 2.2.5 + netname2user@GLIBC_2.2.5 2.2.5 + newlocale@GLIBC_2.3 2.3 + nfsservctl@GLIBC_2.2.5 2.2.5 + nftw64@GLIBC_2.2.5 2.2.5 + nftw64@GLIBC_2.3.3 2.3.3 + nftw@GLIBC_2.2.5 2.2.5 + nftw@GLIBC_2.3.3 2.3.3 + ngettext@GLIBC_2.2.5 2.2.5 + nice@GLIBC_2.2.5 2.2.5 + nl_langinfo@GLIBC_2.2.5 2.2.5 + nl_langinfo_l@GLIBC_2.3 2.3 + nrand48@GLIBC_2.2.5 2.2.5 + nrand48_r@GLIBC_2.2.5 2.2.5 + ntohl@GLIBC_2.2.5 2.2.5 + ntohs@GLIBC_2.2.5 2.2.5 + ntp_adjtime@GLIBC_2.2.5 2.2.5 + ntp_gettime@GLIBC_2.2.5 2.2.5 + obstack_alloc_failed_handler@GLIBC_2.2.5 2.2.5 + obstack_exit_failure@GLIBC_2.2.5 2.2.5 + obstack_free@GLIBC_2.2.5 2.2.5 + obstack_printf@GLIBC_2.2.5 2.2.5 + obstack_vprintf@GLIBC_2.2.5 2.2.5 + on_exit@GLIBC_2.2.5 2.2.5 + open64@GLIBC_2.2.5 2.2.5 + open@GLIBC_2.2.5 2.2.5 + open_memstream@GLIBC_2.2.5 2.2.5 + open_wmemstream@GLIBC_2.4 2.4 + openat64@GLIBC_2.4 2.4 + openat@GLIBC_2.4 2.4 + opendir@GLIBC_2.2.5 2.2.5 + openlog@GLIBC_2.2.5 2.2.5 + optarg@GLIBC_2.2.5 2.2.5 + opterr@GLIBC_2.2.5 2.2.5 + optind@GLIBC_2.2.5 2.2.5 + optopt@GLIBC_2.2.5 2.2.5 + parse_printf_format@GLIBC_2.2.5 2.2.5 + passwd2des@GLIBC_2.2.5 2.2.5 + pathconf@GLIBC_2.2.5 2.2.5 + pause@GLIBC_2.2.5 2.2.5 + pclose@GLIBC_2.2.5 2.2.5 + perror@GLIBC_2.2.5 2.2.5 + personality@GLIBC_2.2.5 2.2.5 + pipe@GLIBC_2.2.5 2.2.5 + pivot_root@GLIBC_2.2.5 2.2.5 + pmap_getmaps@GLIBC_2.2.5 2.2.5 + pmap_getport@GLIBC_2.2.5 2.2.5 + pmap_rmtcall@GLIBC_2.2.5 2.2.5 + pmap_set@GLIBC_2.2.5 2.2.5 + pmap_unset@GLIBC_2.2.5 2.2.5 + poll@GLIBC_2.2.5 2.2.5 + popen@GLIBC_2.2.5 2.2.5 + posix_fadvise64@GLIBC_2.2.5 2.2.5 + posix_fadvise@GLIBC_2.2.5 2.2.5 + posix_fallocate64@GLIBC_2.2.5 2.2.5 + posix_fallocate@GLIBC_2.2.5 2.2.5 + posix_madvise@GLIBC_2.2.5 2.2.5 + posix_memalign@GLIBC_2.2.5 2.2.5 + posix_openpt@GLIBC_2.2.5 2.2.5 + posix_spawn@GLIBC_2.2.5 2.2.5 + posix_spawn_file_actions_addclose@GLIBC_2.2.5 2.2.5 + posix_spawn_file_actions_adddup2@GLIBC_2.2.5 2.2.5 + posix_spawn_file_actions_addopen@GLIBC_2.2.5 2.2.5 + posix_spawn_file_actions_destroy@GLIBC_2.2.5 2.2.5 + posix_spawn_file_actions_init@GLIBC_2.2.5 2.2.5 + posix_spawnattr_destroy@GLIBC_2.2.5 2.2.5 + posix_spawnattr_getflags@GLIBC_2.2.5 2.2.5 + posix_spawnattr_getpgroup@GLIBC_2.2.5 2.2.5 + posix_spawnattr_getschedparam@GLIBC_2.2.5 2.2.5 + posix_spawnattr_getschedpolicy@GLIBC_2.2.5 2.2.5 + posix_spawnattr_getsigdefault@GLIBC_2.2.5 2.2.5 + posix_spawnattr_getsigmask@GLIBC_2.2.5 2.2.5 + posix_spawnattr_init@GLIBC_2.2.5 2.2.5 + posix_spawnattr_setflags@GLIBC_2.2.5 2.2.5 + posix_spawnattr_setpgroup@GLIBC_2.2.5 2.2.5 + posix_spawnattr_setschedparam@GLIBC_2.2.5 2.2.5 + posix_spawnattr_setschedpolicy@GLIBC_2.2.5 2.2.5 + posix_spawnattr_setsigdefault@GLIBC_2.2.5 2.2.5 + posix_spawnattr_setsigmask@GLIBC_2.2.5 2.2.5 + posix_spawnp@GLIBC_2.2.5 2.2.5 + ppoll@GLIBC_2.4 2.4 + prctl@GLIBC_2.2.5 2.2.5 + pread64@GLIBC_2.2.5 2.2.5 + pread@GLIBC_2.2.5 2.2.5 + printf@GLIBC_2.2.5 2.2.5 + printf_size@GLIBC_2.2.5 2.2.5 + printf_size_info@GLIBC_2.2.5 2.2.5 + profil@GLIBC_2.2.5 2.2.5 + program_invocation_name@GLIBC_2.2.5 2.2.5 + program_invocation_short_name@GLIBC_2.2.5 2.2.5 + pselect@GLIBC_2.2.5 2.2.5 + psignal@GLIBC_2.2.5 2.2.5 + pthread_attr_destroy@GLIBC_2.2.5 2.2.5 + pthread_attr_getdetachstate@GLIBC_2.2.5 2.2.5 + pthread_attr_getinheritsched@GLIBC_2.2.5 2.2.5 + pthread_attr_getschedparam@GLIBC_2.2.5 2.2.5 + pthread_attr_getschedpolicy@GLIBC_2.2.5 2.2.5 + pthread_attr_getscope@GLIBC_2.2.5 2.2.5 + pthread_attr_init@GLIBC_2.2.5 2.2.5 + pthread_attr_setdetachstate@GLIBC_2.2.5 2.2.5 + pthread_attr_setinheritsched@GLIBC_2.2.5 2.2.5 + pthread_attr_setschedparam@GLIBC_2.2.5 2.2.5 + pthread_attr_setschedpolicy@GLIBC_2.2.5 2.2.5 + pthread_attr_setscope@GLIBC_2.2.5 2.2.5 + pthread_cond_broadcast@GLIBC_2.2.5 2.2.5 + pthread_cond_broadcast@GLIBC_2.3.2 2.3.2 + pthread_cond_destroy@GLIBC_2.2.5 2.2.5 + pthread_cond_destroy@GLIBC_2.3.2 2.3.2 + pthread_cond_init@GLIBC_2.2.5 2.2.5 + pthread_cond_init@GLIBC_2.3.2 2.3.2 + pthread_cond_signal@GLIBC_2.2.5 2.2.5 + pthread_cond_signal@GLIBC_2.3.2 2.3.2 + pthread_cond_timedwait@GLIBC_2.2.5 2.2.5 + pthread_cond_timedwait@GLIBC_2.3.2 2.3.2 + pthread_cond_wait@GLIBC_2.2.5 2.2.5 + pthread_cond_wait@GLIBC_2.3.2 2.3.2 + pthread_condattr_destroy@GLIBC_2.2.5 2.2.5 + pthread_condattr_init@GLIBC_2.2.5 2.2.5 + pthread_equal@GLIBC_2.2.5 2.2.5 + pthread_exit@GLIBC_2.2.5 2.2.5 + pthread_getschedparam@GLIBC_2.2.5 2.2.5 + pthread_mutex_destroy@GLIBC_2.2.5 2.2.5 + pthread_mutex_init@GLIBC_2.2.5 2.2.5 + pthread_mutex_lock@GLIBC_2.2.5 2.2.5 + pthread_mutex_unlock@GLIBC_2.2.5 2.2.5 + pthread_self@GLIBC_2.2.5 2.2.5 + pthread_setcancelstate@GLIBC_2.2.5 2.2.5 + pthread_setcanceltype@GLIBC_2.2.5 2.2.5 + pthread_setschedparam@GLIBC_2.2.5 2.2.5 + ptrace@GLIBC_2.2.5 2.2.5 + ptsname@GLIBC_2.2.5 2.2.5 + ptsname_r@GLIBC_2.2.5 2.2.5 + putc@GLIBC_2.2.5 2.2.5 + putc_unlocked@GLIBC_2.2.5 2.2.5 + putchar@GLIBC_2.2.5 2.2.5 + putchar_unlocked@GLIBC_2.2.5 2.2.5 + putenv@GLIBC_2.2.5 2.2.5 + putgrent@GLIBC_2.2.5 2.2.5 + putmsg@GLIBC_2.2.5 2.2.5 + putpmsg@GLIBC_2.2.5 2.2.5 + putpwent@GLIBC_2.2.5 2.2.5 + puts@GLIBC_2.2.5 2.2.5 + putspent@GLIBC_2.2.5 2.2.5 + pututline@GLIBC_2.2.5 2.2.5 + pututxline@GLIBC_2.2.5 2.2.5 + putw@GLIBC_2.2.5 2.2.5 + putwc@GLIBC_2.2.5 2.2.5 + putwc_unlocked@GLIBC_2.2.5 2.2.5 + putwchar@GLIBC_2.2.5 2.2.5 + putwchar_unlocked@GLIBC_2.2.5 2.2.5 + pvalloc@GLIBC_2.2.5 2.2.5 + pwrite64@GLIBC_2.2.5 2.2.5 + pwrite@GLIBC_2.2.5 2.2.5 + qecvt@GLIBC_2.2.5 2.2.5 + qecvt_r@GLIBC_2.2.5 2.2.5 + qfcvt@GLIBC_2.2.5 2.2.5 + qfcvt_r@GLIBC_2.2.5 2.2.5 + qgcvt@GLIBC_2.2.5 2.2.5 + qsort@GLIBC_2.2.5 2.2.5 + query_module@GLIBC_2.2.5 2.2.5 + quotactl@GLIBC_2.2.5 2.2.5 + raise@GLIBC_2.2.5 2.2.5 + rand@GLIBC_2.2.5 2.2.5 + rand_r@GLIBC_2.2.5 2.2.5 + random@GLIBC_2.2.5 2.2.5 + random_r@GLIBC_2.2.5 2.2.5 + rawmemchr@GLIBC_2.2.5 2.2.5 + rcmd@GLIBC_2.2.5 2.2.5 + rcmd_af@GLIBC_2.2.5 2.2.5 + re_comp@GLIBC_2.2.5 2.2.5 + re_compile_fastmap@GLIBC_2.2.5 2.2.5 + re_compile_pattern@GLIBC_2.2.5 2.2.5 + re_exec@GLIBC_2.2.5 2.2.5 + re_match@GLIBC_2.2.5 2.2.5 + re_match_2@GLIBC_2.2.5 2.2.5 + re_max_failures@GLIBC_2.2.5 2.2.5 + re_search@GLIBC_2.2.5 2.2.5 + re_search_2@GLIBC_2.2.5 2.2.5 + re_set_registers@GLIBC_2.2.5 2.2.5 + re_set_syntax@GLIBC_2.2.5 2.2.5 + re_syntax_options@GLIBC_2.2.5 2.2.5 + read@GLIBC_2.2.5 2.2.5 + readahead@GLIBC_2.3 2.3 + readdir64@GLIBC_2.2.5 2.2.5 + readdir64_r@GLIBC_2.2.5 2.2.5 + readdir@GLIBC_2.2.5 2.2.5 + readdir_r@GLIBC_2.2.5 2.2.5 + readlink@GLIBC_2.2.5 2.2.5 + readlinkat@GLIBC_2.4 2.4 + readv@GLIBC_2.2.5 2.2.5 + realloc@GLIBC_2.2.5 2.2.5 + realpath@GLIBC_2.2.5 2.2.5 + realpath@GLIBC_2.3 2.3 + reboot@GLIBC_2.2.5 2.2.5 + recv@GLIBC_2.2.5 2.2.5 + recvfrom@GLIBC_2.2.5 2.2.5 + recvmsg@GLIBC_2.2.5 2.2.5 + regcomp@GLIBC_2.2.5 2.2.5 + regerror@GLIBC_2.2.5 2.2.5 + regexec@GLIBC_2.2.5 2.2.5 + regexec@GLIBC_2.3.4 2.3.4 + regfree@GLIBC_2.2.5 2.2.5 + register_printf_function@GLIBC_2.2.5 2.2.5 + registerrpc@GLIBC_2.2.5 2.2.5 + remap_file_pages@GLIBC_2.3.3 2.3.3 + remove@GLIBC_2.2.5 2.2.5 + removexattr@GLIBC_2.3 2.3 + remque@GLIBC_2.2.5 2.2.5 + rename@GLIBC_2.2.5 2.2.5 + renameat@GLIBC_2.4 2.4 + revoke@GLIBC_2.2.5 2.2.5 + rewind@GLIBC_2.2.5 2.2.5 + rewinddir@GLIBC_2.2.5 2.2.5 + rexec@GLIBC_2.2.5 2.2.5 + rexec_af@GLIBC_2.2.5 2.2.5 + rexecoptions@GLIBC_2.2.5 2.2.5 + rindex@GLIBC_2.2.5 2.2.5 + rmdir@GLIBC_2.2.5 2.2.5 + rpc_createerr@GLIBC_2.2.5 2.2.5 + rpmatch@GLIBC_2.2.5 2.2.5 + rresvport@GLIBC_2.2.5 2.2.5 + rresvport_af@GLIBC_2.2.5 2.2.5 + rtime@GLIBC_2.2.5 2.2.5 + ruserok@GLIBC_2.2.5 2.2.5 + ruserok_af@GLIBC_2.2.5 2.2.5 + ruserpass@GLIBC_2.2.5 2.2.5 + sbrk@GLIBC_2.2.5 2.2.5 + scalbn@GLIBC_2.2.5 2.2.5 + scalbnf@GLIBC_2.2.5 2.2.5 + scalbnl@GLIBC_2.2.5 2.2.5 + scandir64@GLIBC_2.2.5 2.2.5 + scandir@GLIBC_2.2.5 2.2.5 + scanf@GLIBC_2.2.5 2.2.5 + sched_get_priority_max@GLIBC_2.2.5 2.2.5 + sched_get_priority_min@GLIBC_2.2.5 2.2.5 + sched_getaffinity@GLIBC_2.3.3 2.3.3 + sched_getaffinity@GLIBC_2.3.4 2.3.4 + sched_getcpu@GLIBC_2.6 2.6 + sched_getparam@GLIBC_2.2.5 2.2.5 + sched_getscheduler@GLIBC_2.2.5 2.2.5 + sched_rr_get_interval@GLIBC_2.2.5 2.2.5 + sched_setaffinity@GLIBC_2.3.3 2.3.3 + sched_setaffinity@GLIBC_2.3.4 2.3.4 + sched_setparam@GLIBC_2.2.5 2.2.5 + sched_setscheduler@GLIBC_2.2.5 2.2.5 + sched_yield@GLIBC_2.2.5 2.2.5 + seed48@GLIBC_2.2.5 2.2.5 + seed48_r@GLIBC_2.2.5 2.2.5 + seekdir@GLIBC_2.2.5 2.2.5 + select@GLIBC_2.2.5 2.2.5 + semctl@GLIBC_2.2.5 2.2.5 + semget@GLIBC_2.2.5 2.2.5 + semop@GLIBC_2.2.5 2.2.5 + semtimedop@GLIBC_2.3.3 2.3.3 + send@GLIBC_2.2.5 2.2.5 + sendfile64@GLIBC_2.3 2.3 + sendfile@GLIBC_2.2.5 2.2.5 + sendmsg@GLIBC_2.2.5 2.2.5 + sendto@GLIBC_2.2.5 2.2.5 + setaliasent@GLIBC_2.2.5 2.2.5 + setbuf@GLIBC_2.2.5 2.2.5 + setbuffer@GLIBC_2.2.5 2.2.5 + setcontext@GLIBC_2.2.5 2.2.5 + setdomainname@GLIBC_2.2.5 2.2.5 + setegid@GLIBC_2.2.5 2.2.5 + setenv@GLIBC_2.2.5 2.2.5 + seteuid@GLIBC_2.2.5 2.2.5 + setfsent@GLIBC_2.2.5 2.2.5 + setfsgid@GLIBC_2.2.5 2.2.5 + setfsuid@GLIBC_2.2.5 2.2.5 + setgid@GLIBC_2.2.5 2.2.5 + setgrent@GLIBC_2.2.5 2.2.5 + setgroups@GLIBC_2.2.5 2.2.5 + sethostent@GLIBC_2.2.5 2.2.5 + sethostid@GLIBC_2.2.5 2.2.5 + sethostname@GLIBC_2.2.5 2.2.5 + setipv4sourcefilter@GLIBC_2.3.4 2.3.4 + setitimer@GLIBC_2.2.5 2.2.5 + setjmp@GLIBC_2.2.5 2.2.5 + setlinebuf@GLIBC_2.2.5 2.2.5 + setlocale@GLIBC_2.2.5 2.2.5 + setlogin@GLIBC_2.2.5 2.2.5 + setlogmask@GLIBC_2.2.5 2.2.5 + setmntent@GLIBC_2.2.5 2.2.5 + setnetent@GLIBC_2.2.5 2.2.5 + setnetgrent@GLIBC_2.2.5 2.2.5 + setpgid@GLIBC_2.2.5 2.2.5 + setpgrp@GLIBC_2.2.5 2.2.5 + setpriority@GLIBC_2.2.5 2.2.5 + setprotoent@GLIBC_2.2.5 2.2.5 + setpwent@GLIBC_2.2.5 2.2.5 + setregid@GLIBC_2.2.5 2.2.5 + setresgid@GLIBC_2.2.5 2.2.5 + setresuid@GLIBC_2.2.5 2.2.5 + setreuid@GLIBC_2.2.5 2.2.5 + setrlimit64@GLIBC_2.2.5 2.2.5 + setrlimit@GLIBC_2.2.5 2.2.5 + setrpcent@GLIBC_2.2.5 2.2.5 + setservent@GLIBC_2.2.5 2.2.5 + setsid@GLIBC_2.2.5 2.2.5 + setsockopt@GLIBC_2.2.5 2.2.5 + setsourcefilter@GLIBC_2.3.4 2.3.4 + setspent@GLIBC_2.2.5 2.2.5 + setstate@GLIBC_2.2.5 2.2.5 + setstate_r@GLIBC_2.2.5 2.2.5 + settimeofday@GLIBC_2.2.5 2.2.5 + setttyent@GLIBC_2.2.5 2.2.5 + setuid@GLIBC_2.2.5 2.2.5 + setusershell@GLIBC_2.2.5 2.2.5 + setutent@GLIBC_2.2.5 2.2.5 + setutxent@GLIBC_2.2.5 2.2.5 + setvbuf@GLIBC_2.2.5 2.2.5 + setxattr@GLIBC_2.3 2.3 + sgetspent@GLIBC_2.2.5 2.2.5 + sgetspent_r@GLIBC_2.2.5 2.2.5 + shmat@GLIBC_2.2.5 2.2.5 + shmctl@GLIBC_2.2.5 2.2.5 + shmdt@GLIBC_2.2.5 2.2.5 + shmget@GLIBC_2.2.5 2.2.5 + shutdown@GLIBC_2.2.5 2.2.5 + sigaction@GLIBC_2.2.5 2.2.5 + sigaddset@GLIBC_2.2.5 2.2.5 + sigaltstack@GLIBC_2.2.5 2.2.5 + sigandset@GLIBC_2.2.5 2.2.5 + sigblock@GLIBC_2.2.5 2.2.5 + sigdelset@GLIBC_2.2.5 2.2.5 + sigemptyset@GLIBC_2.2.5 2.2.5 + sigfillset@GLIBC_2.2.5 2.2.5 + siggetmask@GLIBC_2.2.5 2.2.5 + sighold@GLIBC_2.2.5 2.2.5 + sigignore@GLIBC_2.2.5 2.2.5 + siginterrupt@GLIBC_2.2.5 2.2.5 + sigisemptyset@GLIBC_2.2.5 2.2.5 + sigismember@GLIBC_2.2.5 2.2.5 + siglongjmp@GLIBC_2.2.5 2.2.5 + signal@GLIBC_2.2.5 2.2.5 + signalfd@GLIBC_2.7 2.7 + sigorset@GLIBC_2.2.5 2.2.5 + sigpause@GLIBC_2.2.5 2.2.5 + sigpending@GLIBC_2.2.5 2.2.5 + sigprocmask@GLIBC_2.2.5 2.2.5 + sigqueue@GLIBC_2.2.5 2.2.5 + sigrelse@GLIBC_2.2.5 2.2.5 + sigreturn@GLIBC_2.2.5 2.2.5 + sigset@GLIBC_2.2.5 2.2.5 + sigsetmask@GLIBC_2.2.5 2.2.5 + sigstack@GLIBC_2.2.5 2.2.5 + sigsuspend@GLIBC_2.2.5 2.2.5 + sigtimedwait@GLIBC_2.2.5 2.2.5 + sigvec@GLIBC_2.2.5 2.2.5 + sigwait@GLIBC_2.2.5 2.2.5 + sigwaitinfo@GLIBC_2.2.5 2.2.5 + sleep@GLIBC_2.2.5 2.2.5 + snprintf@GLIBC_2.2.5 2.2.5 + sockatmark@GLIBC_2.2.5 2.2.5 + socket@GLIBC_2.2.5 2.2.5 + socketpair@GLIBC_2.2.5 2.2.5 + splice@GLIBC_2.5 2.5 + sprintf@GLIBC_2.2.5 2.2.5 + sprofil@GLIBC_2.2.5 2.2.5 + srand48@GLIBC_2.2.5 2.2.5 + srand48_r@GLIBC_2.2.5 2.2.5 + srand@GLIBC_2.2.5 2.2.5 + srandom@GLIBC_2.2.5 2.2.5 + srandom_r@GLIBC_2.2.5 2.2.5 + sscanf@GLIBC_2.2.5 2.2.5 + ssignal@GLIBC_2.2.5 2.2.5 + sstk@GLIBC_2.2.5 2.2.5 + statfs64@GLIBC_2.2.5 2.2.5 + statfs@GLIBC_2.2.5 2.2.5 + statvfs64@GLIBC_2.2.5 2.2.5 + statvfs@GLIBC_2.2.5 2.2.5 + stderr@GLIBC_2.2.5 2.2.5 + stdin@GLIBC_2.2.5 2.2.5 + stdout@GLIBC_2.2.5 2.2.5 + step@GLIBC_2.2.5 2.2.5 + stime@GLIBC_2.2.5 2.2.5 + stpcpy@GLIBC_2.2.5 2.2.5 + stpncpy@GLIBC_2.2.5 2.2.5 + strcasecmp@GLIBC_2.2.5 2.2.5 + strcasecmp_l@GLIBC_2.3 2.3 + strcasestr@GLIBC_2.2.5 2.2.5 + strcat@GLIBC_2.2.5 2.2.5 + strchr@GLIBC_2.2.5 2.2.5 + strchrnul@GLIBC_2.2.5 2.2.5 + strcmp@GLIBC_2.2.5 2.2.5 + strcoll@GLIBC_2.2.5 2.2.5 + strcoll_l@GLIBC_2.3 2.3 + strcpy@GLIBC_2.2.5 2.2.5 + strcspn@GLIBC_2.2.5 2.2.5 + strdup@GLIBC_2.2.5 2.2.5 + strerror@GLIBC_2.2.5 2.2.5 + strerror_l@GLIBC_2.6 2.6 + strerror_r@GLIBC_2.2.5 2.2.5 + strfmon@GLIBC_2.2.5 2.2.5 + strfmon_l@GLIBC_2.3 2.3 + strfry@GLIBC_2.2.5 2.2.5 + strftime@GLIBC_2.2.5 2.2.5 + strftime_l@GLIBC_2.3 2.3 + strlen@GLIBC_2.2.5 2.2.5 + strncasecmp@GLIBC_2.2.5 2.2.5 + strncasecmp_l@GLIBC_2.3 2.3 + strncat@GLIBC_2.2.5 2.2.5 + strncmp@GLIBC_2.2.5 2.2.5 + strncpy@GLIBC_2.2.5 2.2.5 + strndup@GLIBC_2.2.5 2.2.5 + strnlen@GLIBC_2.2.5 2.2.5 + strpbrk@GLIBC_2.2.5 2.2.5 + strptime@GLIBC_2.2.5 2.2.5 + strptime_l@GLIBC_2.3.2 2.3.2 + strrchr@GLIBC_2.2.5 2.2.5 + strsep@GLIBC_2.2.5 2.2.5 + strsignal@GLIBC_2.2.5 2.2.5 + strspn@GLIBC_2.2.5 2.2.5 + strstr@GLIBC_2.2.5 2.2.5 + strtod@GLIBC_2.2.5 2.2.5 + strtod_l@GLIBC_2.3 2.3 + strtof@GLIBC_2.2.5 2.2.5 + strtof_l@GLIBC_2.3 2.3 + strtoimax@GLIBC_2.2.5 2.2.5 + strtok@GLIBC_2.2.5 2.2.5 + strtok_r@GLIBC_2.2.5 2.2.5 + strtol@GLIBC_2.2.5 2.2.5 + strtol_l@GLIBC_2.3 2.3 + strtold@GLIBC_2.2.5 2.2.5 + strtold_l@GLIBC_2.3 2.3 + strtoll@GLIBC_2.2.5 2.2.5 + strtoll_l@GLIBC_2.3.3 2.3.3 + strtoq@GLIBC_2.2.5 2.2.5 + strtoul@GLIBC_2.2.5 2.2.5 + strtoul_l@GLIBC_2.3 2.3 + strtoull@GLIBC_2.2.5 2.2.5 + strtoull_l@GLIBC_2.3.3 2.3.3 + strtoumax@GLIBC_2.2.5 2.2.5 + strtouq@GLIBC_2.2.5 2.2.5 + strverscmp@GLIBC_2.2.5 2.2.5 + strxfrm@GLIBC_2.2.5 2.2.5 + strxfrm_l@GLIBC_2.3 2.3 + stty@GLIBC_2.2.5 2.2.5 + svc_exit@GLIBC_2.2.5 2.2.5 + svc_fdset@GLIBC_2.2.5 2.2.5 + svc_getreq@GLIBC_2.2.5 2.2.5 + svc_getreq_common@GLIBC_2.2.5 2.2.5 + svc_getreq_poll@GLIBC_2.2.5 2.2.5 + svc_getreqset@GLIBC_2.2.5 2.2.5 + svc_max_pollfd@GLIBC_2.2.5 2.2.5 + svc_pollfd@GLIBC_2.2.5 2.2.5 + svc_register@GLIBC_2.2.5 2.2.5 + svc_run@GLIBC_2.2.5 2.2.5 + svc_sendreply@GLIBC_2.2.5 2.2.5 + svc_unregister@GLIBC_2.2.5 2.2.5 + svcauthdes_stats@GLIBC_2.2.5 2.2.5 + svcerr_auth@GLIBC_2.2.5 2.2.5 + svcerr_decode@GLIBC_2.2.5 2.2.5 + svcerr_noproc@GLIBC_2.2.5 2.2.5 + svcerr_noprog@GLIBC_2.2.5 2.2.5 + svcerr_progvers@GLIBC_2.2.5 2.2.5 + svcerr_systemerr@GLIBC_2.2.5 2.2.5 + svcerr_weakauth@GLIBC_2.2.5 2.2.5 + svcfd_create@GLIBC_2.2.5 2.2.5 + svcraw_create@GLIBC_2.2.5 2.2.5 + svctcp_create@GLIBC_2.2.5 2.2.5 + svcudp_bufcreate@GLIBC_2.2.5 2.2.5 + svcudp_create@GLIBC_2.2.5 2.2.5 + svcudp_enablecache@GLIBC_2.2.5 2.2.5 + svcunix_create@GLIBC_2.2.5 2.2.5 + svcunixfd_create@GLIBC_2.2.5 2.2.5 + swab@GLIBC_2.2.5 2.2.5 + swapcontext@GLIBC_2.2.5 2.2.5 + swapoff@GLIBC_2.2.5 2.2.5 + swapon@GLIBC_2.2.5 2.2.5 + swprintf@GLIBC_2.2.5 2.2.5 + swscanf@GLIBC_2.2.5 2.2.5 + symlink@GLIBC_2.2.5 2.2.5 + symlinkat@GLIBC_2.4 2.4 + sync@GLIBC_2.2.5 2.2.5 + sync_file_range@GLIBC_2.6 2.6 + sys_errlist@GLIBC_2.2.5 2.2.5 + sys_errlist@GLIBC_2.3 2.3 + sys_errlist@GLIBC_2.4 2.4 + sys_nerr@GLIBC_2.2.5 2.2.5 + sys_nerr@GLIBC_2.3 2.3 + sys_nerr@GLIBC_2.4 2.4 + sys_sigabbrev@GLIBC_2.2.5 2.2.5 + sys_sigabbrev@GLIBC_2.3.3 2.3.3 + sys_siglist@GLIBC_2.2.5 2.2.5 + sys_siglist@GLIBC_2.3.3 2.3.3 + syscall@GLIBC_2.2.5 2.2.5 + sysconf@GLIBC_2.2.5 2.2.5 + sysctl@GLIBC_2.2.5 2.2.5 + sysinfo@GLIBC_2.2.5 2.2.5 + syslog@GLIBC_2.2.5 2.2.5 + system@GLIBC_2.2.5 2.2.5 + sysv_signal@GLIBC_2.2.5 2.2.5 + tcdrain@GLIBC_2.2.5 2.2.5 + tcflow@GLIBC_2.2.5 2.2.5 + tcflush@GLIBC_2.2.5 2.2.5 + tcgetattr@GLIBC_2.2.5 2.2.5 + tcgetpgrp@GLIBC_2.2.5 2.2.5 + tcgetsid@GLIBC_2.2.5 2.2.5 + tcsendbreak@GLIBC_2.2.5 2.2.5 + tcsetattr@GLIBC_2.2.5 2.2.5 + tcsetpgrp@GLIBC_2.2.5 2.2.5 + tdelete@GLIBC_2.2.5 2.2.5 + tdestroy@GLIBC_2.2.5 2.2.5 + tee@GLIBC_2.5 2.5 + telldir@GLIBC_2.2.5 2.2.5 + tempnam@GLIBC_2.2.5 2.2.5 + textdomain@GLIBC_2.2.5 2.2.5 + tfind@GLIBC_2.2.5 2.2.5 + time@GLIBC_2.2.5 2.2.5 + timegm@GLIBC_2.2.5 2.2.5 + timelocal@GLIBC_2.2.5 2.2.5 + times@GLIBC_2.2.5 2.2.5 + timezone@GLIBC_2.2.5 2.2.5 + tmpfile64@GLIBC_2.2.5 2.2.5 + tmpfile@GLIBC_2.2.5 2.2.5 + tmpnam@GLIBC_2.2.5 2.2.5 + tmpnam_r@GLIBC_2.2.5 2.2.5 + toascii@GLIBC_2.2.5 2.2.5 + tolower@GLIBC_2.2.5 2.2.5 + tolower_l@GLIBC_2.3 2.3 + toupper@GLIBC_2.2.5 2.2.5 + toupper_l@GLIBC_2.3 2.3 + towctrans@GLIBC_2.2.5 2.2.5 + towctrans_l@GLIBC_2.3 2.3 + towlower@GLIBC_2.2.5 2.2.5 + towlower_l@GLIBC_2.3 2.3 + towupper@GLIBC_2.2.5 2.2.5 + towupper_l@GLIBC_2.3 2.3 + tr_break@GLIBC_2.2.5 2.2.5 + truncate64@GLIBC_2.2.5 2.2.5 + truncate@GLIBC_2.2.5 2.2.5 + tsearch@GLIBC_2.2.5 2.2.5 + ttyname@GLIBC_2.2.5 2.2.5 + ttyname_r@GLIBC_2.2.5 2.2.5 + ttyslot@GLIBC_2.2.5 2.2.5 + twalk@GLIBC_2.2.5 2.2.5 + tzname@GLIBC_2.2.5 2.2.5 + tzset@GLIBC_2.2.5 2.2.5 + ualarm@GLIBC_2.2.5 2.2.5 + ulckpwdf@GLIBC_2.2.5 2.2.5 + ulimit@GLIBC_2.2.5 2.2.5 + umask@GLIBC_2.2.5 2.2.5 + umount2@GLIBC_2.2.5 2.2.5 + umount@GLIBC_2.2.5 2.2.5 + uname@GLIBC_2.2.5 2.2.5 + ungetc@GLIBC_2.2.5 2.2.5 + ungetwc@GLIBC_2.2.5 2.2.5 + unlink@GLIBC_2.2.5 2.2.5 + unlinkat@GLIBC_2.4 2.4 + unlockpt@GLIBC_2.2.5 2.2.5 + unsetenv@GLIBC_2.2.5 2.2.5 + unshare@GLIBC_2.4 2.4 + updwtmp@GLIBC_2.2.5 2.2.5 + updwtmpx@GLIBC_2.2.5 2.2.5 + uselib@GLIBC_2.2.5 2.2.5 + uselocale@GLIBC_2.3 2.3 + user2netname@GLIBC_2.2.5 2.2.5 + usleep@GLIBC_2.2.5 2.2.5 + ustat@GLIBC_2.2.5 2.2.5 + utime@GLIBC_2.2.5 2.2.5 + utimensat@GLIBC_2.6 2.6 + utimes@GLIBC_2.2.5 2.2.5 + utmpname@GLIBC_2.2.5 2.2.5 + utmpxname@GLIBC_2.2.5 2.2.5 + valloc@GLIBC_2.2.5 2.2.5 + vasprintf@GLIBC_2.2.5 2.2.5 + vdprintf@GLIBC_2.2.5 2.2.5 + verr@GLIBC_2.2.5 2.2.5 + verrx@GLIBC_2.2.5 2.2.5 + versionsort64@GLIBC_2.2.5 2.2.5 + versionsort@GLIBC_2.2.5 2.2.5 + vfork@GLIBC_2.2.5 2.2.5 + vfprintf@GLIBC_2.2.5 2.2.5 + vfscanf@GLIBC_2.2.5 2.2.5 + vfwprintf@GLIBC_2.2.5 2.2.5 + vfwscanf@GLIBC_2.2.5 2.2.5 + vhangup@GLIBC_2.2.5 2.2.5 + vlimit@GLIBC_2.2.5 2.2.5 + vmsplice@GLIBC_2.5 2.5 + vprintf@GLIBC_2.2.5 2.2.5 + vscanf@GLIBC_2.2.5 2.2.5 + vsnprintf@GLIBC_2.2.5 2.2.5 + vsprintf@GLIBC_2.2.5 2.2.5 + vsscanf@GLIBC_2.2.5 2.2.5 + vswprintf@GLIBC_2.2.5 2.2.5 + vswscanf@GLIBC_2.2.5 2.2.5 + vsyslog@GLIBC_2.2.5 2.2.5 + vtimes@GLIBC_2.2.5 2.2.5 + vwarn@GLIBC_2.2.5 2.2.5 + vwarnx@GLIBC_2.2.5 2.2.5 + vwprintf@GLIBC_2.2.5 2.2.5 + vwscanf@GLIBC_2.2.5 2.2.5 + wait3@GLIBC_2.2.5 2.2.5 + wait4@GLIBC_2.2.5 2.2.5 + wait@GLIBC_2.2.5 2.2.5 + waitid@GLIBC_2.2.5 2.2.5 + waitpid@GLIBC_2.2.5 2.2.5 + warn@GLIBC_2.2.5 2.2.5 + warnx@GLIBC_2.2.5 2.2.5 + wcpcpy@GLIBC_2.2.5 2.2.5 + wcpncpy@GLIBC_2.2.5 2.2.5 + wcrtomb@GLIBC_2.2.5 2.2.5 + wcscasecmp@GLIBC_2.2.5 2.2.5 + wcscasecmp_l@GLIBC_2.3 2.3 + wcscat@GLIBC_2.2.5 2.2.5 + wcschr@GLIBC_2.2.5 2.2.5 + wcschrnul@GLIBC_2.2.5 2.2.5 + wcscmp@GLIBC_2.2.5 2.2.5 + wcscoll@GLIBC_2.2.5 2.2.5 + wcscoll_l@GLIBC_2.3 2.3 + wcscpy@GLIBC_2.2.5 2.2.5 + wcscspn@GLIBC_2.2.5 2.2.5 + wcsdup@GLIBC_2.2.5 2.2.5 + wcsftime@GLIBC_2.2.5 2.2.5 + wcsftime_l@GLIBC_2.3 2.3 + wcslen@GLIBC_2.2.5 2.2.5 + wcsncasecmp@GLIBC_2.2.5 2.2.5 + wcsncasecmp_l@GLIBC_2.3 2.3 + wcsncat@GLIBC_2.2.5 2.2.5 + wcsncmp@GLIBC_2.2.5 2.2.5 + wcsncpy@GLIBC_2.2.5 2.2.5 + wcsnlen@GLIBC_2.2.5 2.2.5 + wcsnrtombs@GLIBC_2.2.5 2.2.5 + wcspbrk@GLIBC_2.2.5 2.2.5 + wcsrchr@GLIBC_2.2.5 2.2.5 + wcsrtombs@GLIBC_2.2.5 2.2.5 + wcsspn@GLIBC_2.2.5 2.2.5 + wcsstr@GLIBC_2.2.5 2.2.5 + wcstod@GLIBC_2.2.5 2.2.5 + wcstod_l@GLIBC_2.3 2.3 + wcstof@GLIBC_2.2.5 2.2.5 + wcstof_l@GLIBC_2.3 2.3 + wcstoimax@GLIBC_2.2.5 2.2.5 + wcstok@GLIBC_2.2.5 2.2.5 + wcstol@GLIBC_2.2.5 2.2.5 + wcstol_l@GLIBC_2.3 2.3 + wcstold@GLIBC_2.2.5 2.2.5 + wcstold_l@GLIBC_2.3 2.3 + wcstoll@GLIBC_2.2.5 2.2.5 + wcstoll_l@GLIBC_2.3 2.3 + wcstombs@GLIBC_2.2.5 2.2.5 + wcstoq@GLIBC_2.2.5 2.2.5 + wcstoul@GLIBC_2.2.5 2.2.5 + wcstoul_l@GLIBC_2.3 2.3 + wcstoull@GLIBC_2.2.5 2.2.5 + wcstoull_l@GLIBC_2.3 2.3 + wcstoumax@GLIBC_2.2.5 2.2.5 + wcstouq@GLIBC_2.2.5 2.2.5 + wcswcs@GLIBC_2.2.5 2.2.5 + wcswidth@GLIBC_2.2.5 2.2.5 + wcsxfrm@GLIBC_2.2.5 2.2.5 + wcsxfrm_l@GLIBC_2.3 2.3 + wctob@GLIBC_2.2.5 2.2.5 + wctomb@GLIBC_2.2.5 2.2.5 + wctrans@GLIBC_2.2.5 2.2.5 + wctrans_l@GLIBC_2.3 2.3 + wctype@GLIBC_2.2.5 2.2.5 + wctype_l@GLIBC_2.3 2.3 + wcwidth@GLIBC_2.2.5 2.2.5 + wmemchr@GLIBC_2.2.5 2.2.5 + wmemcmp@GLIBC_2.2.5 2.2.5 + wmemcpy@GLIBC_2.2.5 2.2.5 + wmemmove@GLIBC_2.2.5 2.2.5 + wmempcpy@GLIBC_2.2.5 2.2.5 + wmemset@GLIBC_2.2.5 2.2.5 + wordexp@GLIBC_2.2.5 2.2.5 + wordfree@GLIBC_2.2.5 2.2.5 + wprintf@GLIBC_2.2.5 2.2.5 + write@GLIBC_2.2.5 2.2.5 + writev@GLIBC_2.2.5 2.2.5 + wscanf@GLIBC_2.2.5 2.2.5 + xdecrypt@GLIBC_2.2.5 2.2.5 + xdr_accepted_reply@GLIBC_2.2.5 2.2.5 + xdr_array@GLIBC_2.2.5 2.2.5 + xdr_authdes_cred@GLIBC_2.2.5 2.2.5 + xdr_authdes_verf@GLIBC_2.2.5 2.2.5 + xdr_authunix_parms@GLIBC_2.2.5 2.2.5 + xdr_bool@GLIBC_2.2.5 2.2.5 + xdr_bytes@GLIBC_2.2.5 2.2.5 + xdr_callhdr@GLIBC_2.2.5 2.2.5 + xdr_callmsg@GLIBC_2.2.5 2.2.5 + xdr_char@GLIBC_2.2.5 2.2.5 + xdr_cryptkeyarg2@GLIBC_2.2.5 2.2.5 + xdr_cryptkeyarg@GLIBC_2.2.5 2.2.5 + xdr_cryptkeyres@GLIBC_2.2.5 2.2.5 + xdr_des_block@GLIBC_2.2.5 2.2.5 + xdr_double@GLIBC_2.2.5 2.2.5 + xdr_enum@GLIBC_2.2.5 2.2.5 + xdr_float@GLIBC_2.2.5 2.2.5 + xdr_free@GLIBC_2.2.5 2.2.5 + xdr_getcredres@GLIBC_2.2.5 2.2.5 + xdr_hyper@GLIBC_2.2.5 2.2.5 + xdr_int16_t@GLIBC_2.2.5 2.2.5 + xdr_int32_t@GLIBC_2.2.5 2.2.5 + xdr_int64_t@GLIBC_2.2.5 2.2.5 + xdr_int8_t@GLIBC_2.2.5 2.2.5 + xdr_int@GLIBC_2.2.5 2.2.5 + xdr_key_netstarg@GLIBC_2.2.5 2.2.5 + xdr_key_netstres@GLIBC_2.2.5 2.2.5 + xdr_keybuf@GLIBC_2.2.5 2.2.5 + xdr_keystatus@GLIBC_2.2.5 2.2.5 + xdr_long@GLIBC_2.2.5 2.2.5 + xdr_longlong_t@GLIBC_2.2.5 2.2.5 + xdr_netnamestr@GLIBC_2.2.5 2.2.5 + xdr_netobj@GLIBC_2.2.5 2.2.5 + xdr_opaque@GLIBC_2.2.5 2.2.5 + xdr_opaque_auth@GLIBC_2.2.5 2.2.5 + xdr_pmap@GLIBC_2.2.5 2.2.5 + xdr_pmaplist@GLIBC_2.2.5 2.2.5 + xdr_pointer@GLIBC_2.2.5 2.2.5 + xdr_quad_t@GLIBC_2.3.4 2.3.4 + xdr_reference@GLIBC_2.2.5 2.2.5 + xdr_rejected_reply@GLIBC_2.2.5 2.2.5 + xdr_replymsg@GLIBC_2.2.5 2.2.5 + xdr_rmtcall_args@GLIBC_2.2.5 2.2.5 + xdr_rmtcallres@GLIBC_2.2.5 2.2.5 + xdr_short@GLIBC_2.2.5 2.2.5 + xdr_sizeof@GLIBC_2.2.5 2.2.5 + xdr_string@GLIBC_2.2.5 2.2.5 + xdr_u_char@GLIBC_2.2.5 2.2.5 + xdr_u_hyper@GLIBC_2.2.5 2.2.5 + xdr_u_int@GLIBC_2.2.5 2.2.5 + xdr_u_long@GLIBC_2.2.5 2.2.5 + xdr_u_longlong_t@GLIBC_2.2.5 2.2.5 + xdr_u_quad_t@GLIBC_2.3.4 2.3.4 + xdr_u_short@GLIBC_2.2.5 2.2.5 + xdr_uint16_t@GLIBC_2.2.5 2.2.5 + xdr_uint32_t@GLIBC_2.2.5 2.2.5 + xdr_uint64_t@GLIBC_2.2.5 2.2.5 + xdr_uint8_t@GLIBC_2.2.5 2.2.5 + xdr_union@GLIBC_2.2.5 2.2.5 + xdr_unixcred@GLIBC_2.2.5 2.2.5 + xdr_vector@GLIBC_2.2.5 2.2.5 + xdr_void@GLIBC_2.2.5 2.2.5 + xdr_wrapstring@GLIBC_2.2.5 2.2.5 + xdrmem_create@GLIBC_2.2.5 2.2.5 + xdrrec_create@GLIBC_2.2.5 2.2.5 + xdrrec_endofrecord@GLIBC_2.2.5 2.2.5 + xdrrec_eof@GLIBC_2.2.5 2.2.5 + xdrrec_skiprecord@GLIBC_2.2.5 2.2.5 + xdrstdio_create@GLIBC_2.2.5 2.2.5 + xencrypt@GLIBC_2.2.5 2.2.5 + xprt_register@GLIBC_2.2.5 2.2.5 + xprt_unregister@GLIBC_2.2.5 2.2.5 +libcidn.so.1 libc6-amd64 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + idna_to_ascii_lz@GLIBC_PRIVATE 2.7 + idna_to_unicode_lzlz@GLIBC_PRIVATE 2.7 +libcrypt.so.1 libc6-amd64 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + crypt@GLIBC_2.2.5 2.2.5 + crypt_r@GLIBC_2.2.5 2.2.5 + encrypt@GLIBC_2.2.5 2.2.5 + encrypt_r@GLIBC_2.2.5 2.2.5 + fcrypt@GLIBC_2.2.5 2.2.5 + setkey@GLIBC_2.2.5 2.2.5 + setkey_r@GLIBC_2.2.5 2.2.5 +libdl.so.2 libc6-amd64 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + GLIBC_2.3.3@GLIBC_2.3.3 2.3.3 + GLIBC_2.3.4@GLIBC_2.3.4 2.3.4 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _dlfcn_hook@GLIBC_PRIVATE 2.7 + dladdr1@GLIBC_2.3.3 2.3.3 + dladdr@GLIBC_2.2.5 2.2.5 + dlclose@GLIBC_2.2.5 2.2.5 + dlerror@GLIBC_2.2.5 2.2.5 + dlinfo@GLIBC_2.3.3 2.3.3 + dlmopen@GLIBC_2.3.4 2.3.4 + dlopen@GLIBC_2.2.5 2.2.5 + dlsym@GLIBC_2.2.5 2.2.5 + dlvsym@GLIBC_2.2.5 2.2.5 +libm.so.6 libc6-amd64 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + GLIBC_2.4@GLIBC_2.4 2.4 + _LIB_VERSION@GLIBC_2.2.5 2.2.5 + __clog10@GLIBC_2.2.5 2.2.5 + __clog10f@GLIBC_2.2.5 2.2.5 + __clog10l@GLIBC_2.2.5 2.2.5 + __finite@GLIBC_2.2.5 2.2.5 + __finitef@GLIBC_2.2.5 2.2.5 + __finitel@GLIBC_2.2.5 2.2.5 + __fpclassify@GLIBC_2.2.5 2.2.5 + __fpclassifyf@GLIBC_2.2.5 2.2.5 + __fpclassifyl@GLIBC_2.2.5 2.2.5 + __signbit@GLIBC_2.2.5 2.2.5 + __signbitf@GLIBC_2.2.5 2.2.5 + __signbitl@GLIBC_2.2.5 2.2.5 + acos@GLIBC_2.2.5 2.2.5 + acosf@GLIBC_2.2.5 2.2.5 + acosh@GLIBC_2.2.5 2.2.5 + acoshf@GLIBC_2.2.5 2.2.5 + acoshl@GLIBC_2.2.5 2.2.5 + acosl@GLIBC_2.2.5 2.2.5 + asin@GLIBC_2.2.5 2.2.5 + asinf@GLIBC_2.2.5 2.2.5 + asinh@GLIBC_2.2.5 2.2.5 + asinhf@GLIBC_2.2.5 2.2.5 + asinhl@GLIBC_2.2.5 2.2.5 + asinl@GLIBC_2.2.5 2.2.5 + atan2@GLIBC_2.2.5 2.2.5 + atan2f@GLIBC_2.2.5 2.2.5 + atan2l@GLIBC_2.2.5 2.2.5 + atan@GLIBC_2.2.5 2.2.5 + atanf@GLIBC_2.2.5 2.2.5 + atanh@GLIBC_2.2.5 2.2.5 + atanhf@GLIBC_2.2.5 2.2.5 + atanhl@GLIBC_2.2.5 2.2.5 + atanl@GLIBC_2.2.5 2.2.5 + cabs@GLIBC_2.2.5 2.2.5 + cabsf@GLIBC_2.2.5 2.2.5 + cabsl@GLIBC_2.2.5 2.2.5 + cacos@GLIBC_2.2.5 2.2.5 + cacosf@GLIBC_2.2.5 2.2.5 + cacosh@GLIBC_2.2.5 2.2.5 + cacoshf@GLIBC_2.2.5 2.2.5 + cacoshl@GLIBC_2.2.5 2.2.5 + cacosl@GLIBC_2.2.5 2.2.5 + carg@GLIBC_2.2.5 2.2.5 + cargf@GLIBC_2.2.5 2.2.5 + cargl@GLIBC_2.2.5 2.2.5 + casin@GLIBC_2.2.5 2.2.5 + casinf@GLIBC_2.2.5 2.2.5 + casinh@GLIBC_2.2.5 2.2.5 + casinhf@GLIBC_2.2.5 2.2.5 + casinhl@GLIBC_2.2.5 2.2.5 + casinl@GLIBC_2.2.5 2.2.5 + catan@GLIBC_2.2.5 2.2.5 + catanf@GLIBC_2.2.5 2.2.5 + catanh@GLIBC_2.2.5 2.2.5 + catanhf@GLIBC_2.2.5 2.2.5 + catanhl@GLIBC_2.2.5 2.2.5 + catanl@GLIBC_2.2.5 2.2.5 + cbrt@GLIBC_2.2.5 2.2.5 + cbrtf@GLIBC_2.2.5 2.2.5 + cbrtl@GLIBC_2.2.5 2.2.5 + ccos@GLIBC_2.2.5 2.2.5 + ccosf@GLIBC_2.2.5 2.2.5 + ccosh@GLIBC_2.2.5 2.2.5 + ccoshf@GLIBC_2.2.5 2.2.5 + ccoshl@GLIBC_2.2.5 2.2.5 + ccosl@GLIBC_2.2.5 2.2.5 + ceil@GLIBC_2.2.5 2.2.5 + ceilf@GLIBC_2.2.5 2.2.5 + ceill@GLIBC_2.2.5 2.2.5 + cexp@GLIBC_2.2.5 2.2.5 + cexpf@GLIBC_2.2.5 2.2.5 + cexpl@GLIBC_2.2.5 2.2.5 + cimag@GLIBC_2.2.5 2.2.5 + cimagf@GLIBC_2.2.5 2.2.5 + cimagl@GLIBC_2.2.5 2.2.5 + clog10@GLIBC_2.2.5 2.2.5 + clog10f@GLIBC_2.2.5 2.2.5 + clog10l@GLIBC_2.2.5 2.2.5 + clog@GLIBC_2.2.5 2.2.5 + clogf@GLIBC_2.2.5 2.2.5 + clogl@GLIBC_2.2.5 2.2.5 + conj@GLIBC_2.2.5 2.2.5 + conjf@GLIBC_2.2.5 2.2.5 + conjl@GLIBC_2.2.5 2.2.5 + copysign@GLIBC_2.2.5 2.2.5 + copysignf@GLIBC_2.2.5 2.2.5 + copysignl@GLIBC_2.2.5 2.2.5 + cos@GLIBC_2.2.5 2.2.5 + cosf@GLIBC_2.2.5 2.2.5 + cosh@GLIBC_2.2.5 2.2.5 + coshf@GLIBC_2.2.5 2.2.5 + coshl@GLIBC_2.2.5 2.2.5 + cosl@GLIBC_2.2.5 2.2.5 + cpow@GLIBC_2.2.5 2.2.5 + cpowf@GLIBC_2.2.5 2.2.5 + cpowl@GLIBC_2.2.5 2.2.5 + cproj@GLIBC_2.2.5 2.2.5 + cprojf@GLIBC_2.2.5 2.2.5 + cprojl@GLIBC_2.2.5 2.2.5 + creal@GLIBC_2.2.5 2.2.5 + crealf@GLIBC_2.2.5 2.2.5 + creall@GLIBC_2.2.5 2.2.5 + csin@GLIBC_2.2.5 2.2.5 + csinf@GLIBC_2.2.5 2.2.5 + csinh@GLIBC_2.2.5 2.2.5 + csinhf@GLIBC_2.2.5 2.2.5 + csinhl@GLIBC_2.2.5 2.2.5 + csinl@GLIBC_2.2.5 2.2.5 + csqrt@GLIBC_2.2.5 2.2.5 + csqrtf@GLIBC_2.2.5 2.2.5 + csqrtl@GLIBC_2.2.5 2.2.5 + ctan@GLIBC_2.2.5 2.2.5 + ctanf@GLIBC_2.2.5 2.2.5 + ctanh@GLIBC_2.2.5 2.2.5 + ctanhf@GLIBC_2.2.5 2.2.5 + ctanhl@GLIBC_2.2.5 2.2.5 + ctanl@GLIBC_2.2.5 2.2.5 + drem@GLIBC_2.2.5 2.2.5 + dremf@GLIBC_2.2.5 2.2.5 + dreml@GLIBC_2.2.5 2.2.5 + erf@GLIBC_2.2.5 2.2.5 + erfc@GLIBC_2.2.5 2.2.5 + erfcf@GLIBC_2.2.5 2.2.5 + erfcl@GLIBC_2.2.5 2.2.5 + erff@GLIBC_2.2.5 2.2.5 + erfl@GLIBC_2.2.5 2.2.5 + exp10@GLIBC_2.2.5 2.2.5 + exp10f@GLIBC_2.2.5 2.2.5 + exp10l@GLIBC_2.2.5 2.2.5 + exp2@GLIBC_2.2.5 2.2.5 + exp2f@GLIBC_2.2.5 2.2.5 + exp2l@GLIBC_2.2.5 2.2.5 + exp@GLIBC_2.2.5 2.2.5 + expf@GLIBC_2.2.5 2.2.5 + expl@GLIBC_2.2.5 2.2.5 + expm1@GLIBC_2.2.5 2.2.5 + expm1f@GLIBC_2.2.5 2.2.5 + expm1l@GLIBC_2.2.5 2.2.5 + fabs@GLIBC_2.2.5 2.2.5 + fabsf@GLIBC_2.2.5 2.2.5 + fabsl@GLIBC_2.2.5 2.2.5 + fdim@GLIBC_2.2.5 2.2.5 + fdimf@GLIBC_2.2.5 2.2.5 + fdiml@GLIBC_2.2.5 2.2.5 + feclearexcept@GLIBC_2.2.5 2.2.5 + fedisableexcept@GLIBC_2.2.5 2.2.5 + feenableexcept@GLIBC_2.2.5 2.2.5 + fegetenv@GLIBC_2.2.5 2.2.5 + fegetexcept@GLIBC_2.2.5 2.2.5 + fegetexceptflag@GLIBC_2.2.5 2.2.5 + fegetround@GLIBC_2.2.5 2.2.5 + feholdexcept@GLIBC_2.2.5 2.2.5 + feraiseexcept@GLIBC_2.2.5 2.2.5 + fesetenv@GLIBC_2.2.5 2.2.5 + fesetexceptflag@GLIBC_2.2.5 2.2.5 + fesetround@GLIBC_2.2.5 2.2.5 + fetestexcept@GLIBC_2.2.5 2.2.5 + feupdateenv@GLIBC_2.2.5 2.2.5 + finite@GLIBC_2.2.5 2.2.5 + finitef@GLIBC_2.2.5 2.2.5 + finitel@GLIBC_2.2.5 2.2.5 + floor@GLIBC_2.2.5 2.2.5 + floorf@GLIBC_2.2.5 2.2.5 + floorl@GLIBC_2.2.5 2.2.5 + fma@GLIBC_2.2.5 2.2.5 + fmaf@GLIBC_2.2.5 2.2.5 + fmal@GLIBC_2.2.5 2.2.5 + fmax@GLIBC_2.2.5 2.2.5 + fmaxf@GLIBC_2.2.5 2.2.5 + fmaxl@GLIBC_2.2.5 2.2.5 + fmin@GLIBC_2.2.5 2.2.5 + fminf@GLIBC_2.2.5 2.2.5 + fminl@GLIBC_2.2.5 2.2.5 + fmod@GLIBC_2.2.5 2.2.5 + fmodf@GLIBC_2.2.5 2.2.5 + fmodl@GLIBC_2.2.5 2.2.5 + frexp@GLIBC_2.2.5 2.2.5 + frexpf@GLIBC_2.2.5 2.2.5 + frexpl@GLIBC_2.2.5 2.2.5 + gamma@GLIBC_2.2.5 2.2.5 + gammaf@GLIBC_2.2.5 2.2.5 + gammal@GLIBC_2.2.5 2.2.5 + hypot@GLIBC_2.2.5 2.2.5 + hypotf@GLIBC_2.2.5 2.2.5 + hypotl@GLIBC_2.2.5 2.2.5 + ilogb@GLIBC_2.2.5 2.2.5 + ilogbf@GLIBC_2.2.5 2.2.5 + ilogbl@GLIBC_2.2.5 2.2.5 + j0@GLIBC_2.2.5 2.2.5 + j0f@GLIBC_2.2.5 2.2.5 + j0l@GLIBC_2.2.5 2.2.5 + j1@GLIBC_2.2.5 2.2.5 + j1f@GLIBC_2.2.5 2.2.5 + j1l@GLIBC_2.2.5 2.2.5 + jn@GLIBC_2.2.5 2.2.5 + jnf@GLIBC_2.2.5 2.2.5 + jnl@GLIBC_2.2.5 2.2.5 + ldexp@GLIBC_2.2.5 2.2.5 + ldexpf@GLIBC_2.2.5 2.2.5 + ldexpl@GLIBC_2.2.5 2.2.5 + lgamma@GLIBC_2.2.5 2.2.5 + lgamma_r@GLIBC_2.2.5 2.2.5 + lgammaf@GLIBC_2.2.5 2.2.5 + lgammaf_r@GLIBC_2.2.5 2.2.5 + lgammal@GLIBC_2.2.5 2.2.5 + lgammal_r@GLIBC_2.2.5 2.2.5 + llrint@GLIBC_2.2.5 2.2.5 + llrintf@GLIBC_2.2.5 2.2.5 + llrintl@GLIBC_2.2.5 2.2.5 + llround@GLIBC_2.2.5 2.2.5 + llroundf@GLIBC_2.2.5 2.2.5 + llroundl@GLIBC_2.2.5 2.2.5 + log10@GLIBC_2.2.5 2.2.5 + log10f@GLIBC_2.2.5 2.2.5 + log10l@GLIBC_2.2.5 2.2.5 + log1p@GLIBC_2.2.5 2.2.5 + log1pf@GLIBC_2.2.5 2.2.5 + log1pl@GLIBC_2.2.5 2.2.5 + log2@GLIBC_2.2.5 2.2.5 + log2f@GLIBC_2.2.5 2.2.5 + log2l@GLIBC_2.2.5 2.2.5 + log@GLIBC_2.2.5 2.2.5 + logb@GLIBC_2.2.5 2.2.5 + logbf@GLIBC_2.2.5 2.2.5 + logbl@GLIBC_2.2.5 2.2.5 + logf@GLIBC_2.2.5 2.2.5 + logl@GLIBC_2.2.5 2.2.5 + lrint@GLIBC_2.2.5 2.2.5 + lrintf@GLIBC_2.2.5 2.2.5 + lrintl@GLIBC_2.2.5 2.2.5 + lround@GLIBC_2.2.5 2.2.5 + lroundf@GLIBC_2.2.5 2.2.5 + lroundl@GLIBC_2.2.5 2.2.5 + matherr@GLIBC_2.2.5 2.2.5 + modf@GLIBC_2.2.5 2.2.5 + modff@GLIBC_2.2.5 2.2.5 + modfl@GLIBC_2.2.5 2.2.5 + nan@GLIBC_2.2.5 2.2.5 + nanf@GLIBC_2.2.5 2.2.5 + nanl@GLIBC_2.2.5 2.2.5 + nearbyint@GLIBC_2.2.5 2.2.5 + nearbyintf@GLIBC_2.2.5 2.2.5 + nearbyintl@GLIBC_2.2.5 2.2.5 + nextafter@GLIBC_2.2.5 2.2.5 + nextafterf@GLIBC_2.2.5 2.2.5 + nextafterl@GLIBC_2.2.5 2.2.5 + nexttoward@GLIBC_2.2.5 2.2.5 + nexttowardf@GLIBC_2.2.5 2.2.5 + nexttowardl@GLIBC_2.2.5 2.2.5 + pow10@GLIBC_2.2.5 2.2.5 + pow10f@GLIBC_2.2.5 2.2.5 + pow10l@GLIBC_2.2.5 2.2.5 + pow@GLIBC_2.2.5 2.2.5 + powf@GLIBC_2.2.5 2.2.5 + powl@GLIBC_2.2.5 2.2.5 + remainder@GLIBC_2.2.5 2.2.5 + remainderf@GLIBC_2.2.5 2.2.5 + remainderl@GLIBC_2.2.5 2.2.5 + remquo@GLIBC_2.2.5 2.2.5 + remquof@GLIBC_2.2.5 2.2.5 + remquol@GLIBC_2.2.5 2.2.5 + rint@GLIBC_2.2.5 2.2.5 + rintf@GLIBC_2.2.5 2.2.5 + rintl@GLIBC_2.2.5 2.2.5 + round@GLIBC_2.2.5 2.2.5 + roundf@GLIBC_2.2.5 2.2.5 + roundl@GLIBC_2.2.5 2.2.5 + scalb@GLIBC_2.2.5 2.2.5 + scalbf@GLIBC_2.2.5 2.2.5 + scalbl@GLIBC_2.2.5 2.2.5 + scalbln@GLIBC_2.2.5 2.2.5 + scalblnf@GLIBC_2.2.5 2.2.5 + scalblnl@GLIBC_2.2.5 2.2.5 + scalbn@GLIBC_2.2.5 2.2.5 + scalbnf@GLIBC_2.2.5 2.2.5 + scalbnl@GLIBC_2.2.5 2.2.5 + signgam@GLIBC_2.2.5 2.2.5 + significand@GLIBC_2.2.5 2.2.5 + significandf@GLIBC_2.2.5 2.2.5 + significandl@GLIBC_2.2.5 2.2.5 + sin@GLIBC_2.2.5 2.2.5 + sincos@GLIBC_2.2.5 2.2.5 + sincosf@GLIBC_2.2.5 2.2.5 + sincosl@GLIBC_2.2.5 2.2.5 + sinf@GLIBC_2.2.5 2.2.5 + sinh@GLIBC_2.2.5 2.2.5 + sinhf@GLIBC_2.2.5 2.2.5 + sinhl@GLIBC_2.2.5 2.2.5 + sinl@GLIBC_2.2.5 2.2.5 + sqrt@GLIBC_2.2.5 2.2.5 + sqrtf@GLIBC_2.2.5 2.2.5 + sqrtl@GLIBC_2.2.5 2.2.5 + tan@GLIBC_2.2.5 2.2.5 + tanf@GLIBC_2.2.5 2.2.5 + tanh@GLIBC_2.2.5 2.2.5 + tanhf@GLIBC_2.2.5 2.2.5 + tanhl@GLIBC_2.2.5 2.2.5 + tanl@GLIBC_2.2.5 2.2.5 + tgamma@GLIBC_2.2.5 2.2.5 + tgammaf@GLIBC_2.2.5 2.2.5 + tgammal@GLIBC_2.2.5 2.2.5 + trunc@GLIBC_2.2.5 2.2.5 + truncf@GLIBC_2.2.5 2.2.5 + truncl@GLIBC_2.2.5 2.2.5 + y0@GLIBC_2.2.5 2.2.5 + y0f@GLIBC_2.2.5 2.2.5 + y0l@GLIBC_2.2.5 2.2.5 + y1@GLIBC_2.2.5 2.2.5 + y1f@GLIBC_2.2.5 2.2.5 + y1l@GLIBC_2.2.5 2.2.5 + yn@GLIBC_2.2.5 2.2.5 + ynf@GLIBC_2.2.5 2.2.5 + ynl@GLIBC_2.2.5 2.2.5 +libmemusage.so libc6-amd64 #MINVER# + __invoke_dynamic_linker__@Base 2.7-9ubuntu1 + calloc@Base 2.7-9ubuntu1 + free@Base 2.7-9ubuntu1 + malloc@Base 2.7-9ubuntu1 + mmap64@Base 2.7-9ubuntu1 + mmap@Base 2.7-9ubuntu1 + mremap@Base 2.7-9ubuntu1 + munmap@Base 2.7-9ubuntu1 + realloc@Base 2.7-9ubuntu1 +libnsl.so.1 libc6-amd64 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + __create_ib_request@GLIBC_PRIVATE 2.7 + __do_niscall3@GLIBC_PRIVATE 2.7 + __follow_path@GLIBC_PRIVATE 2.7 + __free_fdresult@GLIBC_2.2.5 2.2.5 + __nis_default_access@GLIBC_2.2.5 2.2.5 + __nis_default_group@GLIBC_2.2.5 2.2.5 + __nis_default_owner@GLIBC_2.2.5 2.2.5 + __nis_default_ttl@GLIBC_2.2.5 2.2.5 + __nis_finddirectory@GLIBC_2.2.5 2.2.5 + __nis_hash@GLIBC_2.2.5 2.2.5 + __nisbind_connect@GLIBC_2.2.5 2.2.5 + __nisbind_create@GLIBC_2.2.5 2.2.5 + __nisbind_destroy@GLIBC_2.2.5 2.2.5 + __nisbind_next@GLIBC_2.2.5 2.2.5 + __prepare_niscall@GLIBC_PRIVATE 2.7 + __yp_check@GLIBC_2.2.5 2.2.5 + _nsl_default_nss@GLIBC_PRIVATE 2.7 + _xdr_ib_request@GLIBC_PRIVATE 2.7 + _xdr_nis_result@GLIBC_PRIVATE 2.7 + nis_add@GLIBC_2.2.5 2.2.5 + nis_add_entry@GLIBC_2.2.5 2.2.5 + nis_addmember@GLIBC_2.2.5 2.2.5 + nis_checkpoint@GLIBC_2.2.5 2.2.5 + nis_clone_directory@GLIBC_2.2.5 2.2.5 + nis_clone_object@GLIBC_2.2.5 2.2.5 + nis_clone_result@GLIBC_2.2.5 2.2.5 + nis_creategroup@GLIBC_2.2.5 2.2.5 + nis_destroy_object@GLIBC_2.2.5 2.2.5 + nis_destroygroup@GLIBC_2.2.5 2.2.5 + nis_dir_cmp@GLIBC_2.2.5 2.2.5 + nis_domain_of@GLIBC_2.2.5 2.2.5 + nis_domain_of_r@GLIBC_2.2.5 2.2.5 + nis_first_entry@GLIBC_2.2.5 2.2.5 + nis_free_directory@GLIBC_2.2.5 2.2.5 + nis_free_object@GLIBC_2.2.5 2.2.5 + nis_free_request@GLIBC_2.2.5 2.2.5 + nis_freenames@GLIBC_2.2.5 2.2.5 + nis_freeresult@GLIBC_2.2.5 2.2.5 + nis_freeservlist@GLIBC_2.2.5 2.2.5 + nis_freetags@GLIBC_2.2.5 2.2.5 + nis_getnames@GLIBC_2.2.5 2.2.5 + nis_getservlist@GLIBC_2.2.5 2.2.5 + nis_ismember@GLIBC_2.2.5 2.2.5 + nis_leaf_of@GLIBC_2.2.5 2.2.5 + nis_leaf_of_r@GLIBC_2.2.5 2.2.5 + nis_lerror@GLIBC_2.2.5 2.2.5 + nis_list@GLIBC_2.2.5 2.2.5 + nis_local_directory@GLIBC_2.2.5 2.2.5 + nis_local_group@GLIBC_2.2.5 2.2.5 + nis_local_host@GLIBC_2.2.5 2.2.5 + nis_local_principal@GLIBC_2.2.5 2.2.5 + nis_lookup@GLIBC_2.2.5 2.2.5 + nis_mkdir@GLIBC_2.2.5 2.2.5 + nis_modify@GLIBC_2.2.5 2.2.5 + nis_modify_entry@GLIBC_2.2.5 2.2.5 + nis_name_of@GLIBC_2.2.5 2.2.5 + nis_name_of_r@GLIBC_2.2.5 2.2.5 + nis_next_entry@GLIBC_2.2.5 2.2.5 + nis_perror@GLIBC_2.2.5 2.2.5 + nis_ping@GLIBC_2.2.5 2.2.5 + nis_print_directory@GLIBC_2.2.5 2.2.5 + nis_print_entry@GLIBC_2.2.5 2.2.5 + nis_print_group@GLIBC_2.2.5 2.2.5 + nis_print_group_entry@GLIBC_2.2.5 2.2.5 + nis_print_link@GLIBC_2.2.5 2.2.5 + nis_print_object@GLIBC_2.2.5 2.2.5 + nis_print_result@GLIBC_2.2.5 2.2.5 + nis_print_rights@GLIBC_2.2.5 2.2.5 + nis_print_table@GLIBC_2.2.5 2.2.5 + nis_read_obj@GLIBC_2.2.5 2.2.5 + nis_remove@GLIBC_2.2.5 2.2.5 + nis_remove_entry@GLIBC_2.2.5 2.2.5 + nis_removemember@GLIBC_2.2.5 2.2.5 + nis_rmdir@GLIBC_2.2.5 2.2.5 + nis_servstate@GLIBC_2.2.5 2.2.5 + nis_sperrno@GLIBC_2.2.5 2.2.5 + nis_sperror@GLIBC_2.2.5 2.2.5 + nis_sperror_r@GLIBC_2.2.5 2.2.5 + nis_stats@GLIBC_2.2.5 2.2.5 + nis_verifygroup@GLIBC_2.2.5 2.2.5 + nis_write_obj@GLIBC_2.2.5 2.2.5 + readColdStartFile@GLIBC_2.2.5 2.2.5 + writeColdStartFile@GLIBC_2.2.5 2.2.5 + xdr_cback_data@GLIBC_2.2.5 2.2.5 + xdr_domainname@GLIBC_2.2.5 2.2.5 + xdr_keydat@GLIBC_2.2.5 2.2.5 + xdr_mapname@GLIBC_2.2.5 2.2.5 + xdr_obj_p@GLIBC_2.2.5 2.2.5 + xdr_peername@GLIBC_2.2.5 2.2.5 + xdr_valdat@GLIBC_2.2.5 2.2.5 + xdr_yp_buf@GLIBC_2.2.5 2.2.5 + xdr_ypall@GLIBC_2.2.5 2.2.5 + xdr_ypbind_binding@GLIBC_2.2.5 2.2.5 + xdr_ypbind_resp@GLIBC_2.2.5 2.2.5 + xdr_ypbind_resptype@GLIBC_2.2.5 2.2.5 + xdr_ypbind_setdom@GLIBC_2.2.5 2.2.5 + xdr_ypdelete_args@GLIBC_2.2.5 2.2.5 + xdr_ypmap_parms@GLIBC_2.2.5 2.2.5 + xdr_ypmaplist@GLIBC_2.2.5 2.2.5 + xdr_yppush_status@GLIBC_2.2.5 2.2.5 + xdr_yppushresp_xfr@GLIBC_2.2.5 2.2.5 + xdr_ypreq_key@GLIBC_2.2.5 2.2.5 + xdr_ypreq_nokey@GLIBC_2.2.5 2.2.5 + xdr_ypreq_xfr@GLIBC_2.2.5 2.2.5 + xdr_ypresp_all@GLIBC_2.2.5 2.2.5 + xdr_ypresp_key_val@GLIBC_2.2.5 2.2.5 + xdr_ypresp_maplist@GLIBC_2.2.5 2.2.5 + xdr_ypresp_master@GLIBC_2.2.5 2.2.5 + xdr_ypresp_order@GLIBC_2.2.5 2.2.5 + xdr_ypresp_val@GLIBC_2.2.5 2.2.5 + xdr_ypresp_xfr@GLIBC_2.2.5 2.2.5 + xdr_ypstat@GLIBC_2.2.5 2.2.5 + xdr_ypupdate_args@GLIBC_2.2.5 2.2.5 + xdr_ypxfrstat@GLIBC_2.2.5 2.2.5 + yp_all@GLIBC_2.2.5 2.2.5 + yp_bind@GLIBC_2.2.5 2.2.5 + yp_first@GLIBC_2.2.5 2.2.5 + yp_get_default_domain@GLIBC_2.2.5 2.2.5 + yp_maplist@GLIBC_2.2.5 2.2.5 + yp_master@GLIBC_2.2.5 2.2.5 + yp_match@GLIBC_2.2.5 2.2.5 + yp_next@GLIBC_2.2.5 2.2.5 + yp_order@GLIBC_2.2.5 2.2.5 + yp_unbind@GLIBC_2.2.5 2.2.5 + yp_update@GLIBC_2.2.5 2.2.5 + ypbinderr_string@GLIBC_2.2.5 2.2.5 + yperr_string@GLIBC_2.2.5 2.2.5 + ypprot_err@GLIBC_2.2.5 2.2.5 +libnss_compat.so.2 libc6-amd64 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_compat_endgrent@GLIBC_PRIVATE 2.7 + _nss_compat_endpwent@GLIBC_PRIVATE 2.7 + _nss_compat_endspent@GLIBC_PRIVATE 2.7 + _nss_compat_getgrent_r@GLIBC_PRIVATE 2.7 + _nss_compat_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_compat_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_compat_getpwent_r@GLIBC_PRIVATE 2.7 + _nss_compat_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_compat_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_compat_getspent_r@GLIBC_PRIVATE 2.7 + _nss_compat_getspnam_r@GLIBC_PRIVATE 2.7 + _nss_compat_initgroups_dyn@GLIBC_PRIVATE 2.7 + _nss_compat_setgrent@GLIBC_PRIVATE 2.7 + _nss_compat_setpwent@GLIBC_PRIVATE 2.7 + _nss_compat_setspent@GLIBC_PRIVATE 2.7 +libnss_dns.so.2 libc6-amd64 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_dns_getcanonname_r@GLIBC_PRIVATE 2.7 + _nss_dns_gethostbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_dns_gethostbyname2_r@GLIBC_PRIVATE 2.7 + _nss_dns_gethostbyname3_r@GLIBC_PRIVATE 2.7 + _nss_dns_gethostbyname_r@GLIBC_PRIVATE 2.7 + _nss_dns_getnetbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_dns_getnetbyname_r@GLIBC_PRIVATE 2.7 +libnss_files.so.2 libc6-amd64 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_files_endaliasent@GLIBC_PRIVATE 2.7 + _nss_files_endetherent@GLIBC_PRIVATE 2.7 + _nss_files_endgrent@GLIBC_PRIVATE 2.7 + _nss_files_endhostent@GLIBC_PRIVATE 2.7 + _nss_files_endnetent@GLIBC_PRIVATE 2.7 + _nss_files_endnetgrent@GLIBC_PRIVATE 2.7 + _nss_files_endprotoent@GLIBC_PRIVATE 2.7 + _nss_files_endpwent@GLIBC_PRIVATE 2.7 + _nss_files_endrpcent@GLIBC_PRIVATE 2.7 + _nss_files_endservent@GLIBC_PRIVATE 2.7 + _nss_files_endspent@GLIBC_PRIVATE 2.7 + _nss_files_getaliasbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getaliasent_r@GLIBC_PRIVATE 2.7 + _nss_files_getetherent_r@GLIBC_PRIVATE 2.7 + _nss_files_getgrent_r@GLIBC_PRIVATE 2.7 + _nss_files_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_files_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostbyname2_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostent_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostton_r@GLIBC_PRIVATE 2.7 + _nss_files_getnetbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_files_getnetbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getnetent_r@GLIBC_PRIVATE 2.7 + _nss_files_getnetgrent_r@GLIBC_PRIVATE 2.7 + _nss_files_getntohost_r@GLIBC_PRIVATE 2.7 + _nss_files_getprotobyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getprotobynumber_r@GLIBC_PRIVATE 2.7 + _nss_files_getprotoent_r@GLIBC_PRIVATE 2.7 + _nss_files_getpublickey@GLIBC_PRIVATE 2.7 + _nss_files_getpwent_r@GLIBC_PRIVATE 2.7 + _nss_files_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_files_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_files_getrpcbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getrpcbynumber_r@GLIBC_PRIVATE 2.7 + _nss_files_getrpcent_r@GLIBC_PRIVATE 2.7 + _nss_files_getsecretkey@GLIBC_PRIVATE 2.7 + _nss_files_getservbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getservbyport_r@GLIBC_PRIVATE 2.7 + _nss_files_getservent_r@GLIBC_PRIVATE 2.7 + _nss_files_getspent_r@GLIBC_PRIVATE 2.7 + _nss_files_getspnam_r@GLIBC_PRIVATE 2.7 + _nss_files_parse_etherent@GLIBC_PRIVATE 2.7 + _nss_files_parse_netent@GLIBC_PRIVATE 2.7 + _nss_files_parse_protoent@GLIBC_PRIVATE 2.7 + _nss_files_parse_rpcent@GLIBC_PRIVATE 2.7 + _nss_files_parse_servent@GLIBC_PRIVATE 2.7 + _nss_files_setaliasent@GLIBC_PRIVATE 2.7 + _nss_files_setetherent@GLIBC_PRIVATE 2.7 + _nss_files_setgrent@GLIBC_PRIVATE 2.7 + _nss_files_sethostent@GLIBC_PRIVATE 2.7 + _nss_files_setnetent@GLIBC_PRIVATE 2.7 + _nss_files_setnetgrent@GLIBC_PRIVATE 2.7 + _nss_files_setprotoent@GLIBC_PRIVATE 2.7 + _nss_files_setpwent@GLIBC_PRIVATE 2.7 + _nss_files_setrpcent@GLIBC_PRIVATE 2.7 + _nss_files_setservent@GLIBC_PRIVATE 2.7 + _nss_files_setspent@GLIBC_PRIVATE 2.7 + _nss_netgroup_parseline@GLIBC_PRIVATE 2.7 +libnss_hesiod.so.2 libc6-amd64 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_hesiod_endgrent@GLIBC_PRIVATE 2.7 + _nss_hesiod_endprotoent@GLIBC_PRIVATE 2.7 + _nss_hesiod_endpwent@GLIBC_PRIVATE 2.7 + _nss_hesiod_endservent@GLIBC_PRIVATE 2.7 + _nss_hesiod_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getprotobyname_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getprotobynumber_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getservbyname_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getservbyport_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_initgroups_dyn@GLIBC_PRIVATE 2.7 + _nss_hesiod_setgrent@GLIBC_PRIVATE 2.7 + _nss_hesiod_setprotoent@GLIBC_PRIVATE 2.7 + _nss_hesiod_setpwent@GLIBC_PRIVATE 2.7 + _nss_hesiod_setservent@GLIBC_PRIVATE 2.7 +libnss_nis.so.2 libc6-amd64 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_nis_endaliasent@GLIBC_PRIVATE 2.7 + _nss_nis_endetherent@GLIBC_PRIVATE 2.7 + _nss_nis_endgrent@GLIBC_PRIVATE 2.7 + _nss_nis_endhostent@GLIBC_PRIVATE 2.7 + _nss_nis_endnetent@GLIBC_PRIVATE 2.7 + _nss_nis_endnetgrent@GLIBC_PRIVATE 2.7 + _nss_nis_endprotoent@GLIBC_PRIVATE 2.7 + _nss_nis_endpwent@GLIBC_PRIVATE 2.7 + _nss_nis_endrpcent@GLIBC_PRIVATE 2.7 + _nss_nis_endservent@GLIBC_PRIVATE 2.7 + _nss_nis_endspent@GLIBC_PRIVATE 2.7 + _nss_nis_getaliasbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getaliasent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getetherent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getgrent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_nis_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostbyname2_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostent_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostton_r@GLIBC_PRIVATE 2.7 + _nss_nis_getnetbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_nis_getnetbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getnetent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getnetgrent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getntohost_r@GLIBC_PRIVATE 2.7 + _nss_nis_getprotobyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getprotobynumber_r@GLIBC_PRIVATE 2.7 + _nss_nis_getprotoent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getpublickey@GLIBC_PRIVATE 2.7 + _nss_nis_getpwent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_nis_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_nis_getrpcbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getrpcbynumber_r@GLIBC_PRIVATE 2.7 + _nss_nis_getrpcent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getsecretkey@GLIBC_PRIVATE 2.7 + _nss_nis_getservbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getservbyport_r@GLIBC_PRIVATE 2.7 + _nss_nis_getservent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getspent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getspnam_r@GLIBC_PRIVATE 2.7 + _nss_nis_initgroups_dyn@GLIBC_PRIVATE 2.7 + _nss_nis_netname2user@GLIBC_PRIVATE 2.7 + _nss_nis_setaliasent@GLIBC_PRIVATE 2.7 + _nss_nis_setetherent@GLIBC_PRIVATE 2.7 + _nss_nis_setgrent@GLIBC_PRIVATE 2.7 + _nss_nis_sethostent@GLIBC_PRIVATE 2.7 + _nss_nis_setnetent@GLIBC_PRIVATE 2.7 + _nss_nis_setnetgrent@GLIBC_PRIVATE 2.7 + _nss_nis_setprotoent@GLIBC_PRIVATE 2.7 + _nss_nis_setpwent@GLIBC_PRIVATE 2.7 + _nss_nis_setrpcent@GLIBC_PRIVATE 2.7 + _nss_nis_setservent@GLIBC_PRIVATE 2.7 + _nss_nis_setspent@GLIBC_PRIVATE 2.7 +libnss_nisplus.so.2 libc6-amd64 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_nisplus_endaliasent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endetherent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endgrent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endhostent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endnetent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endnetgrent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endprotoent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endpwent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endrpcent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endservent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endspent@GLIBC_PRIVATE 2.7 + _nss_nisplus_getaliasbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getaliasent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getetherent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getgrent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostbyname2_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostton_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getnetbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getnetbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getnetent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getnetgrent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getntohost_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getprotobyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getprotobynumber_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getprotoent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getpublickey@GLIBC_PRIVATE 2.7 + _nss_nisplus_getpwent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getrpcbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getrpcbynumber_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getrpcent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getsecretkey@GLIBC_PRIVATE 2.7 + _nss_nisplus_getservbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getservent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getspent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getspnam_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_initgroups_dyn@GLIBC_PRIVATE 2.7 + _nss_nisplus_netname2user@GLIBC_PRIVATE 2.7 + _nss_nisplus_setaliasent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setetherent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setgrent@GLIBC_PRIVATE 2.7 + _nss_nisplus_sethostent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setnetent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setnetgrent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setprotoent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setpwent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setrpcent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setservent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setspent@GLIBC_PRIVATE 2.7 +libpcprofile.so libc6-amd64 #MINVER# + __cyg_profile_func_enter@Base 2.7-9ubuntu1 + __cyg_profile_func_exit@Base 2.7-9ubuntu1 + __invoke_dynamic_linker__@Base 2.7-9ubuntu1 +libpthread.so.0 libc6-amd64 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + GLIBC_2.2.6@GLIBC_2.2.6 2.2.6 + GLIBC_2.3.2@GLIBC_2.3.2 2.3.2 + GLIBC_2.3.3@GLIBC_2.3.3 2.3.3 + GLIBC_2.3.4@GLIBC_2.3.4 2.3.4 + GLIBC_2.4@GLIBC_2.4 2.4 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _IO_flockfile@GLIBC_2.2.5 2.2.5 + _IO_ftrylockfile@GLIBC_2.2.5 2.2.5 + _IO_funlockfile@GLIBC_2.2.5 2.2.5 + __close@GLIBC_2.2.5 2.2.5 + __connect@GLIBC_2.2.5 2.2.5 + __errno_location@GLIBC_2.2.5 2.2.5 + __fcntl@GLIBC_2.2.5 2.2.5 + __fork@GLIBC_2.2.5 2.2.5 + __h_errno_location@GLIBC_2.2.5 2.2.5 + __libc_allocate_rtsig@GLIBC_2.2.5 2.2.5 + __libc_current_sigrtmax@GLIBC_2.2.5 2.2.5 + __libc_current_sigrtmin@GLIBC_2.2.5 2.2.5 + __lseek@GLIBC_2.2.5 2.2.5 + __nanosleep@GLIBC_2.2.6 2.2.6 + __open64@GLIBC_2.2.5 2.2.5 + __open@GLIBC_2.2.5 2.2.5 + __pread64@GLIBC_2.2.5 2.2.5 + __pthread_cleanup_routine@GLIBC_2.3.3 2.3.3 + __pthread_clock_gettime@GLIBC_PRIVATE 2.7 + __pthread_clock_settime@GLIBC_PRIVATE 2.7 + __pthread_getspecific@GLIBC_2.2.5 2.2.5 + __pthread_initialize_minimal@GLIBC_PRIVATE 2.7 + __pthread_key_create@GLIBC_2.2.5 2.2.5 + __pthread_mutex_destroy@GLIBC_2.2.5 2.2.5 + __pthread_mutex_init@GLIBC_2.2.5 2.2.5 + __pthread_mutex_lock@GLIBC_2.2.5 2.2.5 + __pthread_mutex_trylock@GLIBC_2.2.5 2.2.5 + __pthread_mutex_unlock@GLIBC_2.2.5 2.2.5 + __pthread_mutexattr_destroy@GLIBC_2.2.5 2.2.5 + __pthread_mutexattr_init@GLIBC_2.2.5 2.2.5 + __pthread_mutexattr_settype@GLIBC_2.2.5 2.2.5 + __pthread_once@GLIBC_2.2.5 2.2.5 + __pthread_register_cancel@GLIBC_2.3.3 2.3.3 + __pthread_register_cancel_defer@GLIBC_2.3.3 2.3.3 + __pthread_rwlock_destroy@GLIBC_2.2.5 2.2.5 + __pthread_rwlock_init@GLIBC_2.2.5 2.2.5 + __pthread_rwlock_rdlock@GLIBC_2.2.5 2.2.5 + __pthread_rwlock_tryrdlock@GLIBC_2.2.5 2.2.5 + __pthread_rwlock_trywrlock@GLIBC_2.2.5 2.2.5 + __pthread_rwlock_unlock@GLIBC_2.2.5 2.2.5 + __pthread_rwlock_wrlock@GLIBC_2.2.5 2.2.5 + __pthread_setspecific@GLIBC_2.2.5 2.2.5 + __pthread_unregister_cancel@GLIBC_2.3.3 2.3.3 + __pthread_unregister_cancel_restore@GLIBC_2.3.3 2.3.3 + __pthread_unwind@GLIBC_PRIVATE 2.7 + __pthread_unwind_next@GLIBC_2.3.3 2.3.3 + __pwrite64@GLIBC_2.2.5 2.2.5 + __read@GLIBC_2.2.5 2.2.5 + __res_state@GLIBC_2.2.5 2.2.5 + __send@GLIBC_2.2.5 2.2.5 + __sigaction@GLIBC_2.2.5 2.2.5 + __vfork@GLIBC_2.2.5 2.2.5 + __wait@GLIBC_2.2.5 2.2.5 + __write@GLIBC_2.2.5 2.2.5 + _pthread_cleanup_pop@GLIBC_2.2.5 2.2.5 + _pthread_cleanup_pop_restore@GLIBC_2.2.5 2.2.5 + _pthread_cleanup_push@GLIBC_2.2.5 2.2.5 + _pthread_cleanup_push_defer@GLIBC_2.2.5 2.2.5 + accept@GLIBC_2.2.5 2.2.5 + close@GLIBC_2.2.5 2.2.5 + connect@GLIBC_2.2.5 2.2.5 + fcntl@GLIBC_2.2.5 2.2.5 + flockfile@GLIBC_2.2.5 2.2.5 + fork@GLIBC_2.2.5 2.2.5 + fsync@GLIBC_2.2.5 2.2.5 + ftrylockfile@GLIBC_2.2.5 2.2.5 + funlockfile@GLIBC_2.2.5 2.2.5 + longjmp@GLIBC_2.2.5 2.2.5 + lseek64@GLIBC_2.2.5 2.2.5 + lseek@GLIBC_2.2.5 2.2.5 + msync@GLIBC_2.2.5 2.2.5 + nanosleep@GLIBC_2.2.5 2.2.5 + open64@GLIBC_2.2.5 2.2.5 + open@GLIBC_2.2.5 2.2.5 + pause@GLIBC_2.2.5 2.2.5 + pread64@GLIBC_2.2.5 2.2.5 + pread@GLIBC_2.2.5 2.2.5 + pthread_atfork@GLIBC_2.2.5 2.2.5 + pthread_attr_destroy@GLIBC_2.2.5 2.2.5 + pthread_attr_getaffinity_np@GLIBC_2.3.3 2.3.3 + pthread_attr_getaffinity_np@GLIBC_2.3.4 2.3.4 + pthread_attr_getdetachstate@GLIBC_2.2.5 2.2.5 + pthread_attr_getguardsize@GLIBC_2.2.5 2.2.5 + pthread_attr_getinheritsched@GLIBC_2.2.5 2.2.5 + pthread_attr_getschedparam@GLIBC_2.2.5 2.2.5 + pthread_attr_getschedpolicy@GLIBC_2.2.5 2.2.5 + pthread_attr_getscope@GLIBC_2.2.5 2.2.5 + pthread_attr_getstack@GLIBC_2.2.5 2.2.5 + pthread_attr_getstackaddr@GLIBC_2.2.5 2.2.5 + pthread_attr_getstacksize@GLIBC_2.2.5 2.2.5 + pthread_attr_init@GLIBC_2.2.5 2.2.5 + pthread_attr_setaffinity_np@GLIBC_2.3.3 2.3.3 + pthread_attr_setaffinity_np@GLIBC_2.3.4 2.3.4 + pthread_attr_setdetachstate@GLIBC_2.2.5 2.2.5 + pthread_attr_setguardsize@GLIBC_2.2.5 2.2.5 + pthread_attr_setinheritsched@GLIBC_2.2.5 2.2.5 + pthread_attr_setschedparam@GLIBC_2.2.5 2.2.5 + pthread_attr_setschedpolicy@GLIBC_2.2.5 2.2.5 + pthread_attr_setscope@GLIBC_2.2.5 2.2.5 + pthread_attr_setstack@GLIBC_2.2.5 2.2.5 + pthread_attr_setstackaddr@GLIBC_2.2.5 2.2.5 + pthread_attr_setstacksize@GLIBC_2.2.5 2.2.5 + pthread_barrier_destroy@GLIBC_2.2.5 2.2.5 + pthread_barrier_init@GLIBC_2.2.5 2.2.5 + pthread_barrier_wait@GLIBC_2.2.5 2.2.5 + pthread_barrierattr_destroy@GLIBC_2.2.5 2.2.5 + pthread_barrierattr_getpshared@GLIBC_2.3.3 2.3.3 + pthread_barrierattr_init@GLIBC_2.2.5 2.2.5 + pthread_barrierattr_setpshared@GLIBC_2.2.5 2.2.5 + pthread_cancel@GLIBC_2.2.5 2.2.5 + pthread_cond_broadcast@GLIBC_2.2.5 2.2.5 + pthread_cond_broadcast@GLIBC_2.3.2 2.3.2 + pthread_cond_destroy@GLIBC_2.2.5 2.2.5 + pthread_cond_destroy@GLIBC_2.3.2 2.3.2 + pthread_cond_init@GLIBC_2.2.5 2.2.5 + pthread_cond_init@GLIBC_2.3.2 2.3.2 + pthread_cond_signal@GLIBC_2.2.5 2.2.5 + pthread_cond_signal@GLIBC_2.3.2 2.3.2 + pthread_cond_timedwait@GLIBC_2.2.5 2.2.5 + pthread_cond_timedwait@GLIBC_2.3.2 2.3.2 + pthread_cond_wait@GLIBC_2.2.5 2.2.5 + pthread_cond_wait@GLIBC_2.3.2 2.3.2 + pthread_condattr_destroy@GLIBC_2.2.5 2.2.5 + pthread_condattr_getclock@GLIBC_2.3.3 2.3.3 + pthread_condattr_getpshared@GLIBC_2.2.5 2.2.5 + pthread_condattr_init@GLIBC_2.2.5 2.2.5 + pthread_condattr_setclock@GLIBC_2.3.3 2.3.3 + pthread_condattr_setpshared@GLIBC_2.2.5 2.2.5 + pthread_create@GLIBC_2.2.5 2.2.5 + pthread_detach@GLIBC_2.2.5 2.2.5 + pthread_equal@GLIBC_2.2.5 2.2.5 + pthread_exit@GLIBC_2.2.5 2.2.5 + pthread_getaffinity_np@GLIBC_2.3.3 2.3.3 + pthread_getaffinity_np@GLIBC_2.3.4 2.3.4 + pthread_getattr_np@GLIBC_2.2.5 2.2.5 + pthread_getconcurrency@GLIBC_2.2.5 2.2.5 + pthread_getcpuclockid@GLIBC_2.2.5 2.2.5 + pthread_getschedparam@GLIBC_2.2.5 2.2.5 + pthread_getspecific@GLIBC_2.2.5 2.2.5 + pthread_join@GLIBC_2.2.5 2.2.5 + pthread_key_create@GLIBC_2.2.5 2.2.5 + pthread_key_delete@GLIBC_2.2.5 2.2.5 + pthread_kill@GLIBC_2.2.5 2.2.5 + pthread_kill_other_threads_np@GLIBC_2.2.5 2.2.5 + pthread_mutex_consistent_np@GLIBC_2.4 2.4 + pthread_mutex_destroy@GLIBC_2.2.5 2.2.5 + pthread_mutex_getprioceiling@GLIBC_2.4 2.4 + pthread_mutex_init@GLIBC_2.2.5 2.2.5 + pthread_mutex_lock@GLIBC_2.2.5 2.2.5 + pthread_mutex_setprioceiling@GLIBC_2.4 2.4 + pthread_mutex_timedlock@GLIBC_2.2.5 2.2.5 + pthread_mutex_trylock@GLIBC_2.2.5 2.2.5 + pthread_mutex_unlock@GLIBC_2.2.5 2.2.5 + pthread_mutexattr_destroy@GLIBC_2.2.5 2.2.5 + pthread_mutexattr_getkind_np@GLIBC_2.2.5 2.2.5 + pthread_mutexattr_getprioceiling@GLIBC_2.4 2.4 + pthread_mutexattr_getprotocol@GLIBC_2.4 2.4 + pthread_mutexattr_getpshared@GLIBC_2.2.5 2.2.5 + pthread_mutexattr_getrobust_np@GLIBC_2.4 2.4 + pthread_mutexattr_gettype@GLIBC_2.2.5 2.2.5 + pthread_mutexattr_init@GLIBC_2.2.5 2.2.5 + pthread_mutexattr_setkind_np@GLIBC_2.2.5 2.2.5 + pthread_mutexattr_setprioceiling@GLIBC_2.4 2.4 + pthread_mutexattr_setprotocol@GLIBC_2.4 2.4 + pthread_mutexattr_setpshared@GLIBC_2.2.5 2.2.5 + pthread_mutexattr_setrobust_np@GLIBC_2.4 2.4 + pthread_mutexattr_settype@GLIBC_2.2.5 2.2.5 + pthread_once@GLIBC_2.2.5 2.2.5 + pthread_rwlock_destroy@GLIBC_2.2.5 2.2.5 + pthread_rwlock_init@GLIBC_2.2.5 2.2.5 + pthread_rwlock_rdlock@GLIBC_2.2.5 2.2.5 + pthread_rwlock_timedrdlock@GLIBC_2.2.5 2.2.5 + pthread_rwlock_timedwrlock@GLIBC_2.2.5 2.2.5 + pthread_rwlock_tryrdlock@GLIBC_2.2.5 2.2.5 + pthread_rwlock_trywrlock@GLIBC_2.2.5 2.2.5 + pthread_rwlock_unlock@GLIBC_2.2.5 2.2.5 + pthread_rwlock_wrlock@GLIBC_2.2.5 2.2.5 + pthread_rwlockattr_destroy@GLIBC_2.2.5 2.2.5 + pthread_rwlockattr_getkind_np@GLIBC_2.2.5 2.2.5 + pthread_rwlockattr_getpshared@GLIBC_2.2.5 2.2.5 + pthread_rwlockattr_init@GLIBC_2.2.5 2.2.5 + pthread_rwlockattr_setkind_np@GLIBC_2.2.5 2.2.5 + pthread_rwlockattr_setpshared@GLIBC_2.2.5 2.2.5 + pthread_self@GLIBC_2.2.5 2.2.5 + pthread_setaffinity_np@GLIBC_2.3.3 2.3.3 + pthread_setaffinity_np@GLIBC_2.3.4 2.3.4 + pthread_setcancelstate@GLIBC_2.2.5 2.2.5 + pthread_setcanceltype@GLIBC_2.2.5 2.2.5 + pthread_setconcurrency@GLIBC_2.2.5 2.2.5 + pthread_setschedparam@GLIBC_2.2.5 2.2.5 + pthread_setschedprio@GLIBC_2.3.4 2.3.4 + pthread_setspecific@GLIBC_2.2.5 2.2.5 + pthread_sigmask@GLIBC_2.2.5 2.2.5 + pthread_spin_destroy@GLIBC_2.2.5 2.2.5 + pthread_spin_init@GLIBC_2.2.5 2.2.5 + pthread_spin_lock@GLIBC_2.2.5 2.2.5 + pthread_spin_trylock@GLIBC_2.2.5 2.2.5 + pthread_spin_unlock@GLIBC_2.2.5 2.2.5 + pthread_testcancel@GLIBC_2.2.5 2.2.5 + pthread_timedjoin_np@GLIBC_2.3.3 2.3.3 + pthread_tryjoin_np@GLIBC_2.3.3 2.3.3 + pthread_yield@GLIBC_2.2.5 2.2.5 + pwrite64@GLIBC_2.2.5 2.2.5 + pwrite@GLIBC_2.2.5 2.2.5 + raise@GLIBC_2.2.5 2.2.5 + read@GLIBC_2.2.5 2.2.5 + recv@GLIBC_2.2.5 2.2.5 + recvfrom@GLIBC_2.2.5 2.2.5 + recvmsg@GLIBC_2.2.5 2.2.5 + sem_close@GLIBC_2.2.5 2.2.5 + sem_destroy@GLIBC_2.2.5 2.2.5 + sem_getvalue@GLIBC_2.2.5 2.2.5 + sem_init@GLIBC_2.2.5 2.2.5 + sem_open@GLIBC_2.2.5 2.2.5 + sem_post@GLIBC_2.2.5 2.2.5 + sem_timedwait@GLIBC_2.2.5 2.2.5 + sem_trywait@GLIBC_2.2.5 2.2.5 + sem_unlink@GLIBC_2.2.5 2.2.5 + sem_wait@GLIBC_2.2.5 2.2.5 + send@GLIBC_2.2.5 2.2.5 + sendmsg@GLIBC_2.2.5 2.2.5 + sendto@GLIBC_2.2.5 2.2.5 + sigaction@GLIBC_2.2.5 2.2.5 + siglongjmp@GLIBC_2.2.5 2.2.5 + sigwait@GLIBC_2.2.5 2.2.5 + system@GLIBC_2.2.5 2.2.5 + tcdrain@GLIBC_2.2.5 2.2.5 + vfork@GLIBC_2.2.5 2.2.5 + wait@GLIBC_2.2.5 2.2.5 + waitpid@GLIBC_2.2.5 2.2.5 + write@GLIBC_2.2.5 2.2.5 +libresolv.so.2 libc6-amd64 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + GLIBC_2.3.2@GLIBC_2.3.2 2.3.2 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + __b64_ntop@GLIBC_2.2.5 2.2.5 + __b64_pton@GLIBC_2.2.5 2.2.5 + __dn_comp@GLIBC_2.2.5 2.2.5 + __dn_count_labels@GLIBC_2.2.5 2.2.5 + __dn_expand@GLIBC_2.2.5 2.2.5 + __dn_skipname@GLIBC_2.2.5 2.2.5 + __fp_nquery@GLIBC_2.2.5 2.2.5 + __fp_query@GLIBC_2.2.5 2.2.5 + __fp_resstat@GLIBC_2.2.5 2.2.5 + __hostalias@GLIBC_2.2.5 2.2.5 + __libc_res_nquery@GLIBC_PRIVATE 2.7 + __libc_res_nsearch@GLIBC_PRIVATE 2.7 + __loc_aton@GLIBC_2.2.5 2.2.5 + __loc_ntoa@GLIBC_2.2.5 2.2.5 + __ns_get16@GLIBC_PRIVATE 2.7 + __ns_get32@GLIBC_PRIVATE 2.7 + __ns_name_ntop@GLIBC_PRIVATE 2.7 + __ns_name_unpack@GLIBC_PRIVATE 2.7 + __p_cdname@GLIBC_2.2.5 2.2.5 + __p_cdnname@GLIBC_2.2.5 2.2.5 + __p_class@GLIBC_2.2.5 2.2.5 + __p_class_syms@GLIBC_2.2.5 2.2.5 + __p_fqname@GLIBC_2.2.5 2.2.5 + __p_fqnname@GLIBC_2.2.5 2.2.5 + __p_option@GLIBC_2.2.5 2.2.5 + __p_query@GLIBC_2.2.5 2.2.5 + __p_rcode@GLIBC_2.3.2 2.3.2 + __p_secstodate@GLIBC_2.2.5 2.2.5 + __p_time@GLIBC_2.2.5 2.2.5 + __p_type@GLIBC_2.2.5 2.2.5 + __p_type_syms@GLIBC_2.2.5 2.2.5 + __putlong@GLIBC_2.2.5 2.2.5 + __putshort@GLIBC_2.2.5 2.2.5 + __res_close@GLIBC_2.2.5 2.2.5 + __res_dnok@GLIBC_2.2.5 2.2.5 + __res_hnok@GLIBC_2.2.5 2.2.5 + __res_hostalias@GLIBC_2.2.5 2.2.5 + __res_isourserver@GLIBC_2.2.5 2.2.5 + __res_mailok@GLIBC_2.2.5 2.2.5 + __res_mkquery@GLIBC_2.2.5 2.2.5 + __res_nameinquery@GLIBC_2.2.5 2.2.5 + __res_nmkquery@GLIBC_2.2.5 2.2.5 + __res_nquery@GLIBC_2.2.5 2.2.5 + __res_nquerydomain@GLIBC_2.2.5 2.2.5 + __res_nsearch@GLIBC_2.2.5 2.2.5 + __res_nsend@GLIBC_2.2.5 2.2.5 + __res_ownok@GLIBC_2.2.5 2.2.5 + __res_queriesmatch@GLIBC_2.2.5 2.2.5 + __res_query@GLIBC_2.2.5 2.2.5 + __res_querydomain@GLIBC_2.2.5 2.2.5 + __res_search@GLIBC_2.2.5 2.2.5 + __res_send@GLIBC_2.2.5 2.2.5 + __sym_ntop@GLIBC_2.2.5 2.2.5 + __sym_ntos@GLIBC_2.2.5 2.2.5 + __sym_ston@GLIBC_2.2.5 2.2.5 + _gethtbyaddr@GLIBC_2.2.5 2.2.5 + _gethtbyname2@GLIBC_2.2.5 2.2.5 + _gethtbyname@GLIBC_2.2.5 2.2.5 + _gethtent@GLIBC_2.2.5 2.2.5 + _getlong@GLIBC_2.2.5 2.2.5 + _getshort@GLIBC_2.2.5 2.2.5 + _res_opcodes@GLIBC_2.2.5 2.2.5 + _sethtent@GLIBC_2.2.5 2.2.5 + inet_net_ntop@GLIBC_2.2.5 2.2.5 + inet_net_pton@GLIBC_2.2.5 2.2.5 + inet_neta@GLIBC_2.2.5 2.2.5 + res_gethostbyaddr@GLIBC_2.2.5 2.2.5 + res_gethostbyname2@GLIBC_2.2.5 2.2.5 + res_gethostbyname@GLIBC_2.2.5 2.2.5 + res_send_setqhook@GLIBC_2.2.5 2.2.5 + res_send_setrhook@GLIBC_2.2.5 2.2.5 +librt.so.1 libc6-amd64 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + GLIBC_2.3.3@GLIBC_2.3.3 2.3.3 + GLIBC_2.3.4@GLIBC_2.3.4 2.3.4 + GLIBC_2.4@GLIBC_2.4 2.4 + GLIBC_2.7@GLIBC_2.7 2.7 + __mq_open_2@GLIBC_2.7 2.7 + aio_cancel64@GLIBC_2.2.5 2.2.5 + aio_cancel@GLIBC_2.2.5 2.2.5 + aio_error64@GLIBC_2.2.5 2.2.5 + aio_error@GLIBC_2.2.5 2.2.5 + aio_fsync64@GLIBC_2.2.5 2.2.5 + aio_fsync@GLIBC_2.2.5 2.2.5 + aio_init@GLIBC_2.2.5 2.2.5 + aio_read64@GLIBC_2.2.5 2.2.5 + aio_read@GLIBC_2.2.5 2.2.5 + aio_return64@GLIBC_2.2.5 2.2.5 + aio_return@GLIBC_2.2.5 2.2.5 + aio_suspend64@GLIBC_2.2.5 2.2.5 + aio_suspend@GLIBC_2.2.5 2.2.5 + aio_write64@GLIBC_2.2.5 2.2.5 + aio_write@GLIBC_2.2.5 2.2.5 + clock_getcpuclockid@GLIBC_2.2.5 2.2.5 + clock_getres@GLIBC_2.2.5 2.2.5 + clock_gettime@GLIBC_2.2.5 2.2.5 + clock_nanosleep@GLIBC_2.2.5 2.2.5 + clock_settime@GLIBC_2.2.5 2.2.5 + lio_listio64@GLIBC_2.2.5 2.2.5 + lio_listio64@GLIBC_2.4 2.4 + lio_listio@GLIBC_2.2.5 2.2.5 + lio_listio@GLIBC_2.4 2.4 + mq_close@GLIBC_2.3.4 2.3.4 + mq_getattr@GLIBC_2.3.4 2.3.4 + mq_notify@GLIBC_2.3.4 2.3.4 + mq_open@GLIBC_2.3.4 2.3.4 + mq_receive@GLIBC_2.3.4 2.3.4 + mq_send@GLIBC_2.3.4 2.3.4 + mq_setattr@GLIBC_2.3.4 2.3.4 + mq_timedreceive@GLIBC_2.3.4 2.3.4 + mq_timedsend@GLIBC_2.3.4 2.3.4 + mq_unlink@GLIBC_2.3.4 2.3.4 + shm_open@GLIBC_2.2.5 2.2.5 + shm_unlink@GLIBC_2.2.5 2.2.5 + timer_create@GLIBC_2.2.5 2.2.5 + timer_create@GLIBC_2.3.3 2.3.3 + timer_delete@GLIBC_2.2.5 2.2.5 + timer_delete@GLIBC_2.3.3 2.3.3 + timer_getoverrun@GLIBC_2.2.5 2.2.5 + timer_getoverrun@GLIBC_2.3.3 2.3.3 + timer_gettime@GLIBC_2.2.5 2.2.5 + timer_gettime@GLIBC_2.3.3 2.3.3 + timer_settime@GLIBC_2.2.5 2.2.5 + timer_settime@GLIBC_2.3.3 2.3.3 +libthread_db.so.1 libc6-amd64 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + GLIBC_2.3.3@GLIBC_2.3.3 2.3.3 + GLIBC_2.3@GLIBC_2.3 2.3 + td_init@GLIBC_2.2.5 2.2.5 + td_log@GLIBC_2.2.5 2.2.5 + td_symbol_list@GLIBC_2.2.5 2.2.5 + td_ta_clear_event@GLIBC_2.2.5 2.2.5 + td_ta_delete@GLIBC_2.2.5 2.2.5 + td_ta_enable_stats@GLIBC_2.2.5 2.2.5 + td_ta_event_addr@GLIBC_2.2.5 2.2.5 + td_ta_event_getmsg@GLIBC_2.2.5 2.2.5 + td_ta_get_nthreads@GLIBC_2.2.5 2.2.5 + td_ta_get_ph@GLIBC_2.2.5 2.2.5 + td_ta_get_stats@GLIBC_2.2.5 2.2.5 + td_ta_map_id2thr@GLIBC_2.2.5 2.2.5 + td_ta_map_lwp2thr@GLIBC_2.2.5 2.2.5 + td_ta_new@GLIBC_2.2.5 2.2.5 + td_ta_reset_stats@GLIBC_2.2.5 2.2.5 + td_ta_set_event@GLIBC_2.2.5 2.2.5 + td_ta_setconcurrency@GLIBC_2.2.5 2.2.5 + td_ta_thr_iter@GLIBC_2.2.5 2.2.5 + td_ta_tsd_iter@GLIBC_2.2.5 2.2.5 + td_thr_clear_event@GLIBC_2.2.5 2.2.5 + td_thr_dbresume@GLIBC_2.2.5 2.2.5 + td_thr_dbsuspend@GLIBC_2.2.5 2.2.5 + td_thr_event_enable@GLIBC_2.2.5 2.2.5 + td_thr_event_getmsg@GLIBC_2.2.5 2.2.5 + td_thr_get_info@GLIBC_2.2.5 2.2.5 + td_thr_getfpregs@GLIBC_2.2.5 2.2.5 + td_thr_getgregs@GLIBC_2.2.5 2.2.5 + td_thr_getxregs@GLIBC_2.2.5 2.2.5 + td_thr_getxregsize@GLIBC_2.2.5 2.2.5 + td_thr_set_event@GLIBC_2.2.5 2.2.5 + td_thr_setfpregs@GLIBC_2.2.5 2.2.5 + td_thr_setgregs@GLIBC_2.2.5 2.2.5 + td_thr_setprio@GLIBC_2.2.5 2.2.5 + td_thr_setsigpending@GLIBC_2.2.5 2.2.5 + td_thr_setxregs@GLIBC_2.2.5 2.2.5 + td_thr_sigsetmask@GLIBC_2.2.5 2.2.5 + td_thr_tls_get_addr@GLIBC_2.3 2.3 + td_thr_tlsbase@GLIBC_2.3.3 2.3.3 + td_thr_tsd@GLIBC_2.2.5 2.2.5 + td_thr_validate@GLIBC_2.2.5 2.2.5 +libutil.so.1 libc6-amd64 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + forkpty@GLIBC_2.2.5 2.2.5 + login@GLIBC_2.2.5 2.2.5 + login_tty@GLIBC_2.2.5 2.2.5 + logout@GLIBC_2.2.5 2.2.5 + logwtmp@GLIBC_2.2.5 2.2.5 + openpty@GLIBC_2.2.5 2.2.5 --- glibc-2.7.orig/debian/libc6.symbols.amd64 +++ glibc-2.7/debian/libc6.symbols.amd64 @@ -0,0 +1,3259 @@ +ld-linux-x86-64.so.2 libc6 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + GLIBC_2.3@GLIBC_2.3 2.3 + GLIBC_2.4@GLIBC_2.4 2.4 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + __libc_enable_secure@GLIBC_PRIVATE 2.7 + __libc_memalign@GLIBC_2.2.5 2.2.5 + __libc_stack_end@GLIBC_2.2.5 2.2.5 + __tls_get_addr@GLIBC_2.3 2.3 + _dl_allocate_tls@GLIBC_PRIVATE 2.7 + _dl_allocate_tls_init@GLIBC_PRIVATE 2.7 + _dl_argv@GLIBC_PRIVATE 2.7 + _dl_deallocate_tls@GLIBC_PRIVATE 2.7 + _dl_debug_state@GLIBC_PRIVATE 2.7 + _dl_get_tls_static_info@GLIBC_PRIVATE 2.7 + _dl_make_stack_executable@GLIBC_PRIVATE 2.7 + _dl_mcount@GLIBC_2.2.5 2.2.5 + _dl_rtld_di_serinfo@GLIBC_PRIVATE 2.7 + _dl_tls_get_addr_soft@GLIBC_PRIVATE 2.7 + _dl_tls_setup@GLIBC_PRIVATE 2.7 + _r_debug@GLIBC_2.2.5 2.2.5 + _rtld_global@GLIBC_PRIVATE 2.7 + _rtld_global_ro@GLIBC_PRIVATE 2.7 + calloc@GLIBC_2.2.5 2.2.5 + free@GLIBC_2.2.5 2.2.5 + malloc@GLIBC_2.2.5 2.2.5 + realloc@GLIBC_2.2.5 2.2.5 +libBrokenLocale.so.1 libc6 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + __ctype_get_mb_cur_max@GLIBC_2.2.5 2.2.5 +libSegFault.so libc6 #MINVER# + __invoke_dynamic_linker__@Base 2.7-9ubuntu1 +libanl.so.1 libc6 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + gai_cancel@GLIBC_2.2.5 2.2.5 + gai_error@GLIBC_2.2.5 2.2.5 + gai_suspend@GLIBC_2.2.5 2.2.5 + getaddrinfo_a@GLIBC_2.2.5 2.2.5 +libc.so.6 libc6 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + GLIBC_2.2.6@GLIBC_2.2.6 2.2.6 + GLIBC_2.3.2@GLIBC_2.3.2 2.3.2 + GLIBC_2.3.3@GLIBC_2.3.3 2.3.3 + GLIBC_2.3.4@GLIBC_2.3.4 2.3.4 + GLIBC_2.3@GLIBC_2.3 2.3 + GLIBC_2.4@GLIBC_2.4 2.4 + GLIBC_2.5@GLIBC_2.5 2.5 + GLIBC_2.6@GLIBC_2.6 2.6 + GLIBC_2.7@GLIBC_2.7 2.7 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _Exit@GLIBC_2.2.5 2.2.5 + _IO_2_1_stderr_@GLIBC_2.2.5 2.2.5 + _IO_2_1_stdin_@GLIBC_2.2.5 2.2.5 + _IO_2_1_stdout_@GLIBC_2.2.5 2.2.5 + _IO_adjust_column@GLIBC_2.2.5 2.2.5 + _IO_adjust_wcolumn@GLIBC_2.2.5 2.2.5 + _IO_default_doallocate@GLIBC_2.2.5 2.2.5 + _IO_default_finish@GLIBC_2.2.5 2.2.5 + _IO_default_pbackfail@GLIBC_2.2.5 2.2.5 + _IO_default_uflow@GLIBC_2.2.5 2.2.5 + _IO_default_xsgetn@GLIBC_2.2.5 2.2.5 + _IO_default_xsputn@GLIBC_2.2.5 2.2.5 + _IO_do_write@GLIBC_2.2.5 2.2.5 + _IO_doallocbuf@GLIBC_2.2.5 2.2.5 + _IO_fclose@GLIBC_2.2.5 2.2.5 + _IO_fdopen@GLIBC_2.2.5 2.2.5 + _IO_feof@GLIBC_2.2.5 2.2.5 + _IO_ferror@GLIBC_2.2.5 2.2.5 + _IO_fflush@GLIBC_2.2.5 2.2.5 + _IO_fgetpos64@GLIBC_2.2.5 2.2.5 + _IO_fgetpos@GLIBC_2.2.5 2.2.5 + _IO_fgets@GLIBC_2.2.5 2.2.5 + _IO_file_attach@GLIBC_2.2.5 2.2.5 + _IO_file_close@GLIBC_2.2.5 2.2.5 + _IO_file_close_it@GLIBC_2.2.5 2.2.5 + _IO_file_doallocate@GLIBC_2.2.5 2.2.5 + _IO_file_finish@GLIBC_2.2.5 2.2.5 + _IO_file_fopen@GLIBC_2.2.5 2.2.5 + _IO_file_init@GLIBC_2.2.5 2.2.5 + _IO_file_jumps@GLIBC_2.2.5 2.2.5 + _IO_file_open@GLIBC_2.2.5 2.2.5 + _IO_file_overflow@GLIBC_2.2.5 2.2.5 + _IO_file_read@GLIBC_2.2.5 2.2.5 + _IO_file_seek@GLIBC_2.2.5 2.2.5 + _IO_file_seekoff@GLIBC_2.2.5 2.2.5 + _IO_file_setbuf@GLIBC_2.2.5 2.2.5 + _IO_file_stat@GLIBC_2.2.5 2.2.5 + _IO_file_sync@GLIBC_2.2.5 2.2.5 + _IO_file_underflow@GLIBC_2.2.5 2.2.5 + _IO_file_write@GLIBC_2.2.5 2.2.5 + _IO_file_xsputn@GLIBC_2.2.5 2.2.5 + _IO_flockfile@GLIBC_2.2.5 2.2.5 + _IO_flush_all@GLIBC_2.2.5 2.2.5 + _IO_flush_all_linebuffered@GLIBC_2.2.5 2.2.5 + _IO_fopen@GLIBC_2.2.5 2.2.5 + _IO_fprintf@GLIBC_2.2.5 2.2.5 + _IO_fputs@GLIBC_2.2.5 2.2.5 + _IO_fread@GLIBC_2.2.5 2.2.5 + _IO_free_backup_area@GLIBC_2.2.5 2.2.5 + _IO_free_wbackup_area@GLIBC_2.2.5 2.2.5 + _IO_fsetpos64@GLIBC_2.2.5 2.2.5 + _IO_fsetpos@GLIBC_2.2.5 2.2.5 + _IO_ftell@GLIBC_2.2.5 2.2.5 + _IO_ftrylockfile@GLIBC_2.2.5 2.2.5 + _IO_funlockfile@GLIBC_2.2.5 2.2.5 + _IO_fwrite@GLIBC_2.2.5 2.2.5 + _IO_getc@GLIBC_2.2.5 2.2.5 + _IO_getline@GLIBC_2.2.5 2.2.5 + _IO_getline_info@GLIBC_2.2.5 2.2.5 + _IO_gets@GLIBC_2.2.5 2.2.5 + _IO_init@GLIBC_2.2.5 2.2.5 + _IO_init_marker@GLIBC_2.2.5 2.2.5 + _IO_init_wmarker@GLIBC_2.2.5 2.2.5 + _IO_iter_begin@GLIBC_2.2.5 2.2.5 + _IO_iter_end@GLIBC_2.2.5 2.2.5 + _IO_iter_file@GLIBC_2.2.5 2.2.5 + _IO_iter_next@GLIBC_2.2.5 2.2.5 + _IO_least_wmarker@GLIBC_2.2.5 2.2.5 + _IO_link_in@GLIBC_2.2.5 2.2.5 + _IO_list_all@GLIBC_2.2.5 2.2.5 + _IO_list_lock@GLIBC_2.2.5 2.2.5 + _IO_list_resetlock@GLIBC_2.2.5 2.2.5 + _IO_list_unlock@GLIBC_2.2.5 2.2.5 + _IO_marker_delta@GLIBC_2.2.5 2.2.5 + _IO_marker_difference@GLIBC_2.2.5 2.2.5 + _IO_padn@GLIBC_2.2.5 2.2.5 + _IO_peekc_locked@GLIBC_2.2.5 2.2.5 + _IO_popen@GLIBC_2.2.5 2.2.5 + _IO_printf@GLIBC_2.2.5 2.2.5 + _IO_proc_close@GLIBC_2.2.5 2.2.5 + _IO_proc_open@GLIBC_2.2.5 2.2.5 + _IO_putc@GLIBC_2.2.5 2.2.5 + _IO_puts@GLIBC_2.2.5 2.2.5 + _IO_remove_marker@GLIBC_2.2.5 2.2.5 + _IO_seekmark@GLIBC_2.2.5 2.2.5 + _IO_seekoff@GLIBC_2.2.5 2.2.5 + _IO_seekpos@GLIBC_2.2.5 2.2.5 + _IO_seekwmark@GLIBC_2.2.5 2.2.5 + _IO_setb@GLIBC_2.2.5 2.2.5 + _IO_setbuffer@GLIBC_2.2.5 2.2.5 + _IO_setvbuf@GLIBC_2.2.5 2.2.5 + _IO_sgetn@GLIBC_2.2.5 2.2.5 + _IO_sprintf@GLIBC_2.2.5 2.2.5 + _IO_sputbackc@GLIBC_2.2.5 2.2.5 + _IO_sputbackwc@GLIBC_2.2.5 2.2.5 + _IO_sscanf@GLIBC_2.2.5 2.2.5 + _IO_str_init_readonly@GLIBC_2.2.5 2.2.5 + _IO_str_init_static@GLIBC_2.2.5 2.2.5 + _IO_str_overflow@GLIBC_2.2.5 2.2.5 + _IO_str_pbackfail@GLIBC_2.2.5 2.2.5 + _IO_str_seekoff@GLIBC_2.2.5 2.2.5 + _IO_str_underflow@GLIBC_2.2.5 2.2.5 + _IO_sungetc@GLIBC_2.2.5 2.2.5 + _IO_sungetwc@GLIBC_2.2.5 2.2.5 + _IO_switch_to_get_mode@GLIBC_2.2.5 2.2.5 + _IO_switch_to_main_wget_area@GLIBC_2.2.5 2.2.5 + _IO_switch_to_wbackup_area@GLIBC_2.2.5 2.2.5 + _IO_switch_to_wget_mode@GLIBC_2.2.5 2.2.5 + _IO_un_link@GLIBC_2.2.5 2.2.5 + _IO_ungetc@GLIBC_2.2.5 2.2.5 + _IO_unsave_markers@GLIBC_2.2.5 2.2.5 + _IO_unsave_wmarkers@GLIBC_2.2.5 2.2.5 + _IO_vfprintf@GLIBC_2.2.5 2.2.5 + _IO_vfscanf@GLIBC_2.2.5 2.2.5 + _IO_vsprintf@GLIBC_2.2.5 2.2.5 + _IO_wdefault_doallocate@GLIBC_2.2.5 2.2.5 + _IO_wdefault_finish@GLIBC_2.2.5 2.2.5 + _IO_wdefault_pbackfail@GLIBC_2.2.5 2.2.5 + _IO_wdefault_uflow@GLIBC_2.2.5 2.2.5 + _IO_wdefault_xsgetn@GLIBC_2.2.5 2.2.5 + _IO_wdefault_xsputn@GLIBC_2.2.5 2.2.5 + _IO_wdo_write@GLIBC_2.2.5 2.2.5 + _IO_wdoallocbuf@GLIBC_2.2.5 2.2.5 + _IO_wfile_jumps@GLIBC_2.2.5 2.2.5 + _IO_wfile_overflow@GLIBC_2.2.5 2.2.5 + _IO_wfile_seekoff@GLIBC_2.2.5 2.2.5 + _IO_wfile_sync@GLIBC_2.2.5 2.2.5 + _IO_wfile_underflow@GLIBC_2.2.5 2.2.5 + _IO_wfile_xsputn@GLIBC_2.2.5 2.2.5 + _IO_wmarker_delta@GLIBC_2.2.5 2.2.5 + _IO_wsetb@GLIBC_2.2.5 2.2.5 + __adjtimex@GLIBC_2.2.5 2.2.5 + __after_morecore_hook@GLIBC_2.2.5 2.2.5 + __arch_prctl@GLIBC_2.2.5 2.2.5 + __argz_count@GLIBC_2.2.5 2.2.5 + __argz_next@GLIBC_2.2.5 2.2.5 + __argz_stringify@GLIBC_2.2.5 2.2.5 + __asprintf@GLIBC_2.2.5 2.2.5 + __assert@GLIBC_2.2.5 2.2.5 + __assert_fail@GLIBC_2.2.5 2.2.5 + __assert_perror_fail@GLIBC_2.2.5 2.2.5 + __backtrace@GLIBC_2.2.5 2.2.5 + __backtrace_symbols@GLIBC_2.2.5 2.2.5 + __backtrace_symbols_fd@GLIBC_2.2.5 2.2.5 + __bsd_getpgrp@GLIBC_2.2.5 2.2.5 + __bzero@GLIBC_2.2.5 2.2.5 + __check_rhosts_file@GLIBC_2.2.5 2.2.5 + __chk_fail@GLIBC_2.3.4 2.3.4 + __clone@GLIBC_2.2.5 2.2.5 + __close@GLIBC_2.2.5 2.2.5 + __cmsg_nxthdr@GLIBC_2.2.5 2.2.5 + __confstr_chk@GLIBC_2.4 2.4 + __connect@GLIBC_2.2.5 2.2.5 + __ctype32_b@GLIBC_2.2.5 2.2.5 + __ctype32_tolower@GLIBC_2.2.5 2.2.5 + __ctype32_toupper@GLIBC_2.2.5 2.2.5 + __ctype_b@GLIBC_2.2.5 2.2.5 + __ctype_b_loc@GLIBC_2.3 2.3 + __ctype_get_mb_cur_max@GLIBC_2.2.5 2.2.5 + __ctype_tolower@GLIBC_2.2.5 2.2.5 + __ctype_tolower_loc@GLIBC_2.3 2.3 + __ctype_toupper@GLIBC_2.2.5 2.2.5 + __ctype_toupper_loc@GLIBC_2.3 2.3 + __curbrk@GLIBC_2.2.5 2.2.5 + __cxa_atexit@GLIBC_2.2.5 2.2.5 + __cxa_finalize@GLIBC_2.2.5 2.2.5 + __cyg_profile_func_enter@GLIBC_2.2.5 2.2.5 + __cyg_profile_func_exit@GLIBC_2.2.5 2.2.5 + __daylight@GLIBC_2.2.5 2.2.5 + __dcgettext@GLIBC_2.2.5 2.2.5 + __default_morecore@GLIBC_2.2.5 2.2.5 + __dgettext@GLIBC_2.2.5 2.2.5 + __dup2@GLIBC_2.2.5 2.2.5 + __duplocale@GLIBC_2.2.5 2.2.5 + __endmntent@GLIBC_2.2.5 2.2.5 + __environ@GLIBC_2.2.5 2.2.5 + __errno_location@GLIBC_2.2.5 2.2.5 + __fbufsize@GLIBC_2.2.5 2.2.5 + __fcntl@GLIBC_2.2.5 2.2.5 + __ffs@GLIBC_2.2.5 2.2.5 + __fgets_chk@GLIBC_2.4 2.4 + __fgets_unlocked_chk@GLIBC_2.4 2.4 + __fgetws_chk@GLIBC_2.4 2.4 + __fgetws_unlocked_chk@GLIBC_2.4 2.4 + __finite@GLIBC_2.2.5 2.2.5 + __finitef@GLIBC_2.2.5 2.2.5 + __finitel@GLIBC_2.2.5 2.2.5 + __flbf@GLIBC_2.2.5 2.2.5 + __fork@GLIBC_2.2.5 2.2.5 + __fortify_fail@GLIBC_PRIVATE 2.7 + __fpending@GLIBC_2.2.5 2.2.5 + __fprintf_chk@GLIBC_2.3.4 2.3.4 + __fpu_control@GLIBC_2.2.5 2.2.5 + __fpurge@GLIBC_2.2.5 2.2.5 + __fread_chk@GLIBC_2.7 2.7 + __fread_unlocked_chk@GLIBC_2.7 2.7 + __freadable@GLIBC_2.2.5 2.2.5 + __freading@GLIBC_2.2.5 2.2.5 + __free_hook@GLIBC_2.2.5 2.2.5 + __freelocale@GLIBC_2.2.5 2.2.5 + __fsetlocking@GLIBC_2.2.5 2.2.5 + __fwprintf_chk@GLIBC_2.4 2.4 + __fwritable@GLIBC_2.2.5 2.2.5 + __fwriting@GLIBC_2.2.5 2.2.5 + __fxstat64@GLIBC_2.2.5 2.2.5 + __fxstat@GLIBC_2.2.5 2.2.5 + __fxstatat64@GLIBC_2.4 2.4 + __fxstatat@GLIBC_2.4 2.4 + __gai_sigqueue@GLIBC_PRIVATE 2.7 + __gconv_get_alias_db@GLIBC_PRIVATE 2.7 + __gconv_get_cache@GLIBC_PRIVATE 2.7 + __gconv_get_modules_db@GLIBC_PRIVATE 2.7 + __getcwd_chk@GLIBC_2.4 2.4 + __getdelim@GLIBC_2.2.5 2.2.5 + __getdomainname_chk@GLIBC_2.4 2.4 + __getgroups_chk@GLIBC_2.4 2.4 + __gethostname_chk@GLIBC_2.4 2.4 + __getlogin_r_chk@GLIBC_2.4 2.4 + __getmntent_r@GLIBC_2.2.5 2.2.5 + __getpagesize@GLIBC_2.2.5 2.2.5 + __getpgid@GLIBC_2.2.5 2.2.5 + __getpid@GLIBC_2.2.5 2.2.5 + __gets_chk@GLIBC_2.3.4 2.3.4 + __gettimeofday@GLIBC_2.2.5 2.2.5 + __getwd_chk@GLIBC_2.4 2.4 + __gmtime_r@GLIBC_2.2.5 2.2.5 + __h_errno_location@GLIBC_2.2.5 2.2.5 + __internal_endnetgrent@GLIBC_PRIVATE 2.7 + __internal_getnetgrent_r@GLIBC_PRIVATE 2.7 + __internal_setnetgrent@GLIBC_PRIVATE 2.7 + __isalnum_l@GLIBC_2.2.5 2.2.5 + __isalpha_l@GLIBC_2.2.5 2.2.5 + __isascii_l@GLIBC_2.2.5 2.2.5 + __isblank_l@GLIBC_2.2.5 2.2.5 + __iscntrl_l@GLIBC_2.2.5 2.2.5 + __isctype@GLIBC_2.3 2.3 + __isdigit_l@GLIBC_2.2.5 2.2.5 + __isgraph_l@GLIBC_2.2.5 2.2.5 + __isinf@GLIBC_2.2.5 2.2.5 + __isinff@GLIBC_2.2.5 2.2.5 + __isinfl@GLIBC_2.2.5 2.2.5 + __islower_l@GLIBC_2.2.5 2.2.5 + __isnan@GLIBC_2.2.5 2.2.5 + __isnanf@GLIBC_2.2.5 2.2.5 + __isnanl@GLIBC_2.2.5 2.2.5 + __isoc99_fscanf@GLIBC_2.7 2.7 + __isoc99_fwscanf@GLIBC_2.7 2.7 + __isoc99_scanf@GLIBC_2.7 2.7 + __isoc99_sscanf@GLIBC_2.7 2.7 + __isoc99_swscanf@GLIBC_2.7 2.7 + __isoc99_vfscanf@GLIBC_2.7 2.7 + __isoc99_vfwscanf@GLIBC_2.7 2.7 + __isoc99_vscanf@GLIBC_2.7 2.7 + __isoc99_vsscanf@GLIBC_2.7 2.7 + __isoc99_vswscanf@GLIBC_2.7 2.7 + __isoc99_vwscanf@GLIBC_2.7 2.7 + __isoc99_wscanf@GLIBC_2.7 2.7 + __isprint_l@GLIBC_2.2.5 2.2.5 + __ispunct_l@GLIBC_2.2.5 2.2.5 + __isspace_l@GLIBC_2.2.5 2.2.5 + __isupper_l@GLIBC_2.2.5 2.2.5 + __iswalnum_l@GLIBC_2.2.5 2.2.5 + __iswalpha_l@GLIBC_2.2.5 2.2.5 + __iswblank_l@GLIBC_2.2.5 2.2.5 + __iswcntrl_l@GLIBC_2.2.5 2.2.5 + __iswctype@GLIBC_2.2.5 2.2.5 + __iswctype_l@GLIBC_2.2.5 2.2.5 + __iswdigit_l@GLIBC_2.2.5 2.2.5 + __iswgraph_l@GLIBC_2.2.5 2.2.5 + __iswlower_l@GLIBC_2.2.5 2.2.5 + __iswprint_l@GLIBC_2.2.5 2.2.5 + __iswpunct_l@GLIBC_2.2.5 2.2.5 + __iswspace_l@GLIBC_2.2.5 2.2.5 + __iswupper_l@GLIBC_2.2.5 2.2.5 + __iswxdigit_l@GLIBC_2.2.5 2.2.5 + __isxdigit_l@GLIBC_2.2.5 2.2.5 + __ivaliduser@GLIBC_2.2.5 2.2.5 + __key_decryptsession_pk_LOCAL@GLIBC_2.2.5 2.2.5 + __key_encryptsession_pk_LOCAL@GLIBC_2.2.5 2.2.5 + __key_gendes_LOCAL@GLIBC_2.2.5 2.2.5 + __libc_allocate_rtsig@GLIBC_2.2.5 2.2.5 + __libc_allocate_rtsig_private@GLIBC_PRIVATE 2.7 + __libc_calloc@GLIBC_2.2.5 2.2.5 + __libc_current_sigrtmax@GLIBC_2.2.5 2.2.5 + __libc_current_sigrtmax_private@GLIBC_PRIVATE 2.7 + __libc_current_sigrtmin@GLIBC_2.2.5 2.2.5 + __libc_current_sigrtmin_private@GLIBC_PRIVATE 2.7 + __libc_dl_error_tsd@GLIBC_PRIVATE 2.7 + __libc_dlclose@GLIBC_PRIVATE 2.7 + __libc_dlopen_mode@GLIBC_PRIVATE 2.7 + __libc_dlsym@GLIBC_PRIVATE 2.7 + __libc_fatal@GLIBC_PRIVATE 2.7 + __libc_fork@GLIBC_PRIVATE 2.7 + __libc_free@GLIBC_2.2.5 2.2.5 + __libc_freeres@GLIBC_2.2.5 2.2.5 + __libc_init_first@GLIBC_2.2.5 2.2.5 + __libc_longjmp@GLIBC_PRIVATE 2.7 + __libc_mallinfo@GLIBC_2.2.5 2.2.5 + __libc_malloc@GLIBC_2.2.5 2.2.5 + __libc_mallopt@GLIBC_2.2.5 2.2.5 + __libc_memalign@GLIBC_2.2.5 2.2.5 + __libc_pthread_init@GLIBC_PRIVATE 2.7 + __libc_pvalloc@GLIBC_2.2.5 2.2.5 + __libc_pwrite@GLIBC_PRIVATE 2.7 + __libc_realloc@GLIBC_2.2.5 2.2.5 + __libc_sa_len@GLIBC_2.2.5 2.2.5 + __libc_siglongjmp@GLIBC_PRIVATE 2.7 + __libc_start_main@GLIBC_2.2.5 2.2.5 + __libc_system@GLIBC_PRIVATE 2.7 + __libc_thread_freeres@GLIBC_PRIVATE 2.7 + __libc_valloc@GLIBC_2.2.5 2.2.5 + __lseek@GLIBC_2.2.5 2.2.5 + __lxstat64@GLIBC_2.2.5 2.2.5 + __lxstat@GLIBC_2.2.5 2.2.5 + __malloc_hook@GLIBC_2.2.5 2.2.5 + __malloc_initialize_hook@GLIBC_2.2.5 2.2.5 + __mbrlen@GLIBC_2.2.5 2.2.5 + __mbrtowc@GLIBC_2.2.5 2.2.5 + __mbsnrtowcs_chk@GLIBC_2.4 2.4 + __mbsrtowcs_chk@GLIBC_2.4 2.4 + __mbstowcs_chk@GLIBC_2.4 2.4 + __memalign_hook@GLIBC_2.2.5 2.2.5 + __memcpy_chk@GLIBC_2.3.4 2.3.4 + __memmove_chk@GLIBC_2.3.4 2.3.4 + __mempcpy@GLIBC_2.2.5 2.2.5 + __mempcpy_chk@GLIBC_2.3.4 2.3.4 + __mempcpy_small@GLIBC_2.2.5 2.2.5 + __memset_chk@GLIBC_2.3.4 2.3.4 + __monstartup@GLIBC_2.2.5 2.2.5 + __morecore@GLIBC_2.2.5 2.2.5 + __nanosleep@GLIBC_2.2.6 2.2.6 + __newlocale@GLIBC_2.2.5 2.2.5 + __nl_langinfo_l@GLIBC_2.2.5 2.2.5 + __nss_configure_lookup@GLIBC_2.2.5 2.2.5 + __nss_database_lookup@GLIBC_2.2.5 2.2.5 + __nss_disable_nscd@GLIBC_PRIVATE 2.7 + __nss_group_lookup@GLIBC_2.2.5 2.2.5 + __nss_hostname_digits_dots@GLIBC_2.2.5 2.2.5 + __nss_hosts_lookup@GLIBC_2.2.5 2.2.5 + __nss_lookup_function@GLIBC_PRIVATE 2.7 + __nss_next@GLIBC_2.2.5 2.2.5 + __nss_passwd_lookup@GLIBC_2.2.5 2.2.5 + __nss_services_lookup@GLIBC_PRIVATE 2.7 + __open64@GLIBC_2.2.5 2.2.5 + __open64_2@GLIBC_2.7 2.7 + __open@GLIBC_2.2.5 2.2.5 + __open_2@GLIBC_2.7 2.7 + __open_catalog@GLIBC_PRIVATE 2.7 + __openat64_2@GLIBC_2.7 2.7 + __openat_2@GLIBC_2.7 2.7 + __overflow@GLIBC_2.2.5 2.2.5 + __pipe@GLIBC_2.2.5 2.2.5 + __poll@GLIBC_2.2.5 2.2.5 + __pread64@GLIBC_2.2.5 2.2.5 + __pread64_chk@GLIBC_2.4 2.4 + __pread_chk@GLIBC_2.4 2.4 + __printf_chk@GLIBC_2.3.4 2.3.4 + __printf_fp@GLIBC_2.2.5 2.2.5 + __profile_frequency@GLIBC_2.2.5 2.2.5 + __progname@GLIBC_2.2.5 2.2.5 + __progname_full@GLIBC_2.2.5 2.2.5 + __ptsname_r_chk@GLIBC_2.4 2.4 + __pwrite64@GLIBC_2.2.5 2.2.5 + __rawmemchr@GLIBC_2.2.5 2.2.5 + __rcmd_errstr@GLIBC_2.2.5 2.2.5 + __read@GLIBC_2.2.5 2.2.5 + __read_chk@GLIBC_2.4 2.4 + __readlink_chk@GLIBC_2.4 2.4 + __readlinkat_chk@GLIBC_2.5 2.5 + __realloc_hook@GLIBC_2.2.5 2.2.5 + __realpath_chk@GLIBC_2.4 2.4 + __recv_chk@GLIBC_2.4 2.4 + __recvfrom_chk@GLIBC_2.4 2.4 + __register_atfork@GLIBC_2.3.2 2.3.2 + __res_iclose@GLIBC_PRIVATE 2.7 + __res_init@GLIBC_2.2.5 2.2.5 + __res_maybe_init@GLIBC_PRIVATE 2.7 + __res_nclose@GLIBC_2.2.5 2.2.5 + __res_ninit@GLIBC_2.2.5 2.2.5 + __res_randomid@GLIBC_2.2.5 2.2.5 + __res_state@GLIBC_2.2.5 2.2.5 + __resp@GLIBC_PRIVATE 2.7 + __rpc_thread_createerr@GLIBC_2.2.5 2.2.5 + __rpc_thread_svc_fdset@GLIBC_2.2.5 2.2.5 + __rpc_thread_svc_max_pollfd@GLIBC_2.2.5 2.2.5 + __rpc_thread_svc_pollfd@GLIBC_2.2.5 2.2.5 + __sbrk@GLIBC_2.2.5 2.2.5 + __sched_cpualloc@GLIBC_2.7 2.7 + __sched_cpucount@GLIBC_2.6 2.6 + __sched_cpufree@GLIBC_2.7 2.7 + __sched_get_priority_max@GLIBC_2.2.5 2.2.5 + __sched_get_priority_min@GLIBC_2.2.5 2.2.5 + __sched_getparam@GLIBC_2.2.5 2.2.5 + __sched_getscheduler@GLIBC_2.2.5 2.2.5 + __sched_setscheduler@GLIBC_2.2.5 2.2.5 + __sched_yield@GLIBC_2.2.5 2.2.5 + __secure_getenv@GLIBC_2.2.5 2.2.5 + __select@GLIBC_2.2.5 2.2.5 + __send@GLIBC_2.2.5 2.2.5 + __setmntent@GLIBC_2.2.5 2.2.5 + __setpgid@GLIBC_2.2.5 2.2.5 + __sigaction@GLIBC_2.2.5 2.2.5 + __sigaddset@GLIBC_2.2.5 2.2.5 + __sigdelset@GLIBC_2.2.5 2.2.5 + __sigismember@GLIBC_2.2.5 2.2.5 + __signbit@GLIBC_2.2.5 2.2.5 + __signbitf@GLIBC_2.2.5 2.2.5 + __signbitl@GLIBC_2.2.5 2.2.5 + __sigpause@GLIBC_2.2.5 2.2.5 + __sigsetjmp@GLIBC_2.2.5 2.2.5 + __sigsuspend@GLIBC_2.2.5 2.2.5 + __snprintf_chk@GLIBC_2.3.4 2.3.4 + __sprintf_chk@GLIBC_2.3.4 2.3.4 + __stack_chk_fail@GLIBC_2.4 2.4 + __statfs@GLIBC_2.2.5 2.2.5 + __stpcpy@GLIBC_2.2.5 2.2.5 + __stpcpy_chk@GLIBC_2.3.4 2.3.4 + __stpcpy_small@GLIBC_2.2.5 2.2.5 + __stpncpy@GLIBC_2.2.5 2.2.5 + __stpncpy_chk@GLIBC_2.4 2.4 + __strcasecmp@GLIBC_2.2.5 2.2.5 + __strcasecmp_l@GLIBC_2.2.5 2.2.5 + __strcasestr@GLIBC_2.2.5 2.2.5 + __strcat_chk@GLIBC_2.3.4 2.3.4 + __strcoll_l@GLIBC_2.2.5 2.2.5 + __strcpy_chk@GLIBC_2.3.4 2.3.4 + __strcpy_small@GLIBC_2.2.5 2.2.5 + __strcspn_c1@GLIBC_2.2.5 2.2.5 + __strcspn_c2@GLIBC_2.2.5 2.2.5 + __strcspn_c3@GLIBC_2.2.5 2.2.5 + __strdup@GLIBC_2.2.5 2.2.5 + __strerror_r@GLIBC_2.2.5 2.2.5 + __strfmon_l@GLIBC_2.2.5 2.2.5 + __strftime_l@GLIBC_2.3 2.3 + __strncasecmp_l@GLIBC_2.2.5 2.2.5 + __strncat_chk@GLIBC_2.3.4 2.3.4 + __strncpy_chk@GLIBC_2.3.4 2.3.4 + __strndup@GLIBC_2.2.5 2.2.5 + __strpbrk_c2@GLIBC_2.2.5 2.2.5 + __strpbrk_c3@GLIBC_2.2.5 2.2.5 + __strsep_1c@GLIBC_2.2.5 2.2.5 + __strsep_2c@GLIBC_2.2.5 2.2.5 + __strsep_3c@GLIBC_2.2.5 2.2.5 + __strsep_g@GLIBC_2.2.5 2.2.5 + __strspn_c1@GLIBC_2.2.5 2.2.5 + __strspn_c2@GLIBC_2.2.5 2.2.5 + __strspn_c3@GLIBC_2.2.5 2.2.5 + __strtod_internal@GLIBC_2.2.5 2.2.5 + __strtod_l@GLIBC_2.2.5 2.2.5 + __strtof_internal@GLIBC_2.2.5 2.2.5 + __strtof_l@GLIBC_2.2.5 2.2.5 + __strtok_r@GLIBC_2.2.5 2.2.5 + __strtok_r_1c@GLIBC_2.2.5 2.2.5 + __strtol_internal@GLIBC_2.2.5 2.2.5 + __strtol_l@GLIBC_2.2.5 2.2.5 + __strtold_internal@GLIBC_2.2.5 2.2.5 + __strtold_l@GLIBC_2.2.5 2.2.5 + __strtoll_internal@GLIBC_2.2.5 2.2.5 + __strtoll_l@GLIBC_2.2.5 2.2.5 + __strtoul_internal@GLIBC_2.2.5 2.2.5 + __strtoul_l@GLIBC_2.2.5 2.2.5 + __strtoull_internal@GLIBC_2.2.5 2.2.5 + __strtoull_l@GLIBC_2.2.5 2.2.5 + __strverscmp@GLIBC_2.2.5 2.2.5 + __strxfrm_l@GLIBC_2.2.5 2.2.5 + __swprintf_chk@GLIBC_2.4 2.4 + __sysconf@GLIBC_2.2.5 2.2.5 + __sysctl@GLIBC_2.2.5 2.2.5 + __syslog_chk@GLIBC_2.4 2.4 + __sysv_signal@GLIBC_2.2.5 2.2.5 + __timezone@GLIBC_2.2.5 2.2.5 + __toascii_l@GLIBC_2.2.5 2.2.5 + __tolower_l@GLIBC_2.2.5 2.2.5 + __toupper_l@GLIBC_2.2.5 2.2.5 + __towctrans@GLIBC_2.2.5 2.2.5 + __towctrans_l@GLIBC_2.2.5 2.2.5 + __towlower_l@GLIBC_2.2.5 2.2.5 + __towupper_l@GLIBC_2.2.5 2.2.5 + __ttyname_r_chk@GLIBC_2.4 2.4 + __tzname@GLIBC_2.2.5 2.2.5 + __uflow@GLIBC_2.2.5 2.2.5 + __underflow@GLIBC_2.2.5 2.2.5 + __uselocale@GLIBC_2.3 2.3 + __vdso_clock_gettime@GLIBC_PRIVATE 2.7 + __vfork@GLIBC_2.2.5 2.2.5 + __vfprintf_chk@GLIBC_2.3.4 2.3.4 + __vfscanf@GLIBC_2.2.5 2.2.5 + __vfwprintf_chk@GLIBC_2.4 2.4 + __vprintf_chk@GLIBC_2.3.4 2.3.4 + __vsnprintf@GLIBC_2.2.5 2.2.5 + __vsnprintf_chk@GLIBC_2.3.4 2.3.4 + __vsprintf_chk@GLIBC_2.3.4 2.3.4 + __vsscanf@GLIBC_2.2.5 2.2.5 + __vswprintf_chk@GLIBC_2.4 2.4 + __vsyslog_chk@GLIBC_2.4 2.4 + __vwprintf_chk@GLIBC_2.4 2.4 + __wait@GLIBC_2.2.5 2.2.5 + __waitpid@GLIBC_2.2.5 2.2.5 + __wcpcpy_chk@GLIBC_2.4 2.4 + __wcpncpy_chk@GLIBC_2.4 2.4 + __wcrtomb_chk@GLIBC_2.4 2.4 + __wcscasecmp_l@GLIBC_2.2.5 2.2.5 + __wcscat_chk@GLIBC_2.4 2.4 + __wcscoll_l@GLIBC_2.2.5 2.2.5 + __wcscpy_chk@GLIBC_2.4 2.4 + __wcsftime_l@GLIBC_2.3 2.3 + __wcsncasecmp_l@GLIBC_2.2.5 2.2.5 + __wcsncat_chk@GLIBC_2.4 2.4 + __wcsncpy_chk@GLIBC_2.4 2.4 + __wcsnrtombs_chk@GLIBC_2.4 2.4 + __wcsrtombs_chk@GLIBC_2.4 2.4 + __wcstod_internal@GLIBC_2.2.5 2.2.5 + __wcstod_l@GLIBC_2.2.5 2.2.5 + __wcstof_internal@GLIBC_2.2.5 2.2.5 + __wcstof_l@GLIBC_2.2.5 2.2.5 + __wcstol_internal@GLIBC_2.2.5 2.2.5 + __wcstol_l@GLIBC_2.2.5 2.2.5 + __wcstold_internal@GLIBC_2.2.5 2.2.5 + __wcstold_l@GLIBC_2.2.5 2.2.5 + __wcstoll_internal@GLIBC_2.2.5 2.2.5 + __wcstoll_l@GLIBC_2.2.5 2.2.5 + __wcstombs_chk@GLIBC_2.4 2.4 + __wcstoul_internal@GLIBC_2.2.5 2.2.5 + __wcstoul_l@GLIBC_2.2.5 2.2.5 + __wcstoull_internal@GLIBC_2.2.5 2.2.5 + __wcstoull_l@GLIBC_2.2.5 2.2.5 + __wcsxfrm_l@GLIBC_2.2.5 2.2.5 + __wctomb_chk@GLIBC_2.4 2.4 + __wctrans_l@GLIBC_2.2.5 2.2.5 + __wctype_l@GLIBC_2.2.5 2.2.5 + __wmemcpy_chk@GLIBC_2.4 2.4 + __wmemmove_chk@GLIBC_2.4 2.4 + __wmempcpy_chk@GLIBC_2.4 2.4 + __wmemset_chk@GLIBC_2.4 2.4 + __woverflow@GLIBC_2.2.5 2.2.5 + __wprintf_chk@GLIBC_2.4 2.4 + __write@GLIBC_2.2.5 2.2.5 + __wuflow@GLIBC_2.2.5 2.2.5 + __wunderflow@GLIBC_2.2.5 2.2.5 + __xmknod@GLIBC_2.2.5 2.2.5 + __xmknodat@GLIBC_2.4 2.4 + __xpg_basename@GLIBC_2.2.5 2.2.5 + __xpg_sigpause@GLIBC_2.2.5 2.2.5 + __xpg_strerror_r@GLIBC_2.3.4 2.3.4 + __xstat64@GLIBC_2.2.5 2.2.5 + __xstat@GLIBC_2.2.5 2.2.5 + _authenticate@GLIBC_2.2.5 2.2.5 + _dl_addr@GLIBC_PRIVATE 2.7 + _dl_mcount_wrapper@GLIBC_2.2.5 2.2.5 + _dl_mcount_wrapper_check@GLIBC_2.2.5 2.2.5 + _dl_open_hook@GLIBC_PRIVATE 2.7 + _dl_sym@GLIBC_PRIVATE 2.7 + _dl_vsym@GLIBC_PRIVATE 2.7 + _environ@GLIBC_2.2.5 2.2.5 + _exit@GLIBC_2.2.5 2.2.5 + _flushlbf@GLIBC_2.2.5 2.2.5 + _itoa_lower_digits@GLIBC_PRIVATE 2.7 + _libc_intl_domainname@GLIBC_2.2.5 2.2.5 + _longjmp@GLIBC_2.2.5 2.2.5 + _mcleanup@GLIBC_2.2.5 2.2.5 + _mcount@GLIBC_2.2.5 2.2.5 + _nl_default_dirname@GLIBC_2.2.5 2.2.5 + _nl_domain_bindings@GLIBC_2.2.5 2.2.5 + _nl_msg_cat_cntr@GLIBC_2.2.5 2.2.5 + _nss_files_parse_grent@GLIBC_PRIVATE 2.7 + _nss_files_parse_pwent@GLIBC_PRIVATE 2.7 + _nss_files_parse_spent@GLIBC_PRIVATE 2.7 + _null_auth@GLIBC_2.2.5 2.2.5 + _obstack@GLIBC_2.2.5 2.2.5 + _obstack_allocated_p@GLIBC_2.2.5 2.2.5 + _obstack_begin@GLIBC_2.2.5 2.2.5 + _obstack_begin_1@GLIBC_2.2.5 2.2.5 + _obstack_free@GLIBC_2.2.5 2.2.5 + _obstack_memory_used@GLIBC_2.2.5 2.2.5 + _obstack_newchunk@GLIBC_2.2.5 2.2.5 + _res@GLIBC_2.2.5 2.2.5 + _res_hconf@GLIBC_2.2.5 2.2.5 + _rpc_dtablesize@GLIBC_2.2.5 2.2.5 + _seterr_reply@GLIBC_2.2.5 2.2.5 + _setjmp@GLIBC_2.2.5 2.2.5 + _sys_errlist@GLIBC_2.2.5 2.2.5 + _sys_errlist@GLIBC_2.3 2.3 + _sys_errlist@GLIBC_2.4 2.4 + _sys_nerr@GLIBC_2.2.5 2.2.5 + _sys_nerr@GLIBC_2.3 2.3 + _sys_nerr@GLIBC_2.4 2.4 + _sys_siglist@GLIBC_2.2.5 2.2.5 + _sys_siglist@GLIBC_2.3.3 2.3.3 + _tolower@GLIBC_2.2.5 2.2.5 + _toupper@GLIBC_2.2.5 2.2.5 + a64l@GLIBC_2.2.5 2.2.5 + abort@GLIBC_2.2.5 2.2.5 + abs@GLIBC_2.2.5 2.2.5 + accept@GLIBC_2.2.5 2.2.5 + access@GLIBC_2.2.5 2.2.5 + acct@GLIBC_2.2.5 2.2.5 + addmntent@GLIBC_2.2.5 2.2.5 + addseverity@GLIBC_2.2.5 2.2.5 + adjtime@GLIBC_2.2.5 2.2.5 + adjtimex@GLIBC_2.2.5 2.2.5 + advance@GLIBC_2.2.5 2.2.5 + alarm@GLIBC_2.2.5 2.2.5 + alphasort64@GLIBC_2.2.5 2.2.5 + alphasort@GLIBC_2.2.5 2.2.5 + arch_prctl@GLIBC_2.2.5 2.2.5 + argp_err_exit_status@GLIBC_2.2.5 2.2.5 + argp_error@GLIBC_2.2.5 2.2.5 + argp_failure@GLIBC_2.2.5 2.2.5 + argp_help@GLIBC_2.2.5 2.2.5 + argp_parse@GLIBC_2.2.5 2.2.5 + argp_program_bug_address@GLIBC_2.2.5 2.2.5 + argp_program_version@GLIBC_2.2.5 2.2.5 + argp_program_version_hook@GLIBC_2.2.5 2.2.5 + argp_state_help@GLIBC_2.2.5 2.2.5 + argp_usage@GLIBC_2.2.5 2.2.5 + argz_add@GLIBC_2.2.5 2.2.5 + argz_add_sep@GLIBC_2.2.5 2.2.5 + argz_append@GLIBC_2.2.5 2.2.5 + argz_count@GLIBC_2.2.5 2.2.5 + argz_create@GLIBC_2.2.5 2.2.5 + argz_create_sep@GLIBC_2.2.5 2.2.5 + argz_delete@GLIBC_2.2.5 2.2.5 + argz_extract@GLIBC_2.2.5 2.2.5 + argz_insert@GLIBC_2.2.5 2.2.5 + argz_next@GLIBC_2.2.5 2.2.5 + argz_replace@GLIBC_2.2.5 2.2.5 + argz_stringify@GLIBC_2.2.5 2.2.5 + asctime@GLIBC_2.2.5 2.2.5 + asctime_r@GLIBC_2.2.5 2.2.5 + asprintf@GLIBC_2.2.5 2.2.5 + atof@GLIBC_2.2.5 2.2.5 + atoi@GLIBC_2.2.5 2.2.5 + atol@GLIBC_2.2.5 2.2.5 + atoll@GLIBC_2.2.5 2.2.5 + authdes_create@GLIBC_2.2.5 2.2.5 + authdes_getucred@GLIBC_2.2.5 2.2.5 + authdes_pk_create@GLIBC_2.2.5 2.2.5 + authnone_create@GLIBC_2.2.5 2.2.5 + authunix_create@GLIBC_2.2.5 2.2.5 + authunix_create_default@GLIBC_2.2.5 2.2.5 + backtrace@GLIBC_2.2.5 2.2.5 + backtrace_symbols@GLIBC_2.2.5 2.2.5 + backtrace_symbols_fd@GLIBC_2.2.5 2.2.5 + basename@GLIBC_2.2.5 2.2.5 + bcmp@GLIBC_2.2.5 2.2.5 + bcopy@GLIBC_2.2.5 2.2.5 + bdflush@GLIBC_2.2.5 2.2.5 + bind@GLIBC_2.2.5 2.2.5 + bind_textdomain_codeset@GLIBC_2.2.5 2.2.5 + bindresvport@GLIBC_2.2.5 2.2.5 + bindtextdomain@GLIBC_2.2.5 2.2.5 + brk@GLIBC_2.2.5 2.2.5 + bsd_signal@GLIBC_2.2.5 2.2.5 + bsearch@GLIBC_2.2.5 2.2.5 + btowc@GLIBC_2.2.5 2.2.5 + bzero@GLIBC_2.2.5 2.2.5 + calloc@GLIBC_2.2.5 2.2.5 + callrpc@GLIBC_2.2.5 2.2.5 + canonicalize_file_name@GLIBC_2.2.5 2.2.5 + capget@GLIBC_2.2.5 2.2.5 + capset@GLIBC_2.2.5 2.2.5 + catclose@GLIBC_2.2.5 2.2.5 + catgets@GLIBC_2.2.5 2.2.5 + catopen@GLIBC_2.2.5 2.2.5 + cbc_crypt@GLIBC_2.2.5 2.2.5 + cfgetispeed@GLIBC_2.2.5 2.2.5 + cfgetospeed@GLIBC_2.2.5 2.2.5 + cfmakeraw@GLIBC_2.2.5 2.2.5 + cfree@GLIBC_2.2.5 2.2.5 + cfsetispeed@GLIBC_2.2.5 2.2.5 + cfsetospeed@GLIBC_2.2.5 2.2.5 + cfsetspeed@GLIBC_2.2.5 2.2.5 + chdir@GLIBC_2.2.5 2.2.5 + chflags@GLIBC_2.2.5 2.2.5 + chmod@GLIBC_2.2.5 2.2.5 + chown@GLIBC_2.2.5 2.2.5 + chroot@GLIBC_2.2.5 2.2.5 + clearenv@GLIBC_2.2.5 2.2.5 + clearerr@GLIBC_2.2.5 2.2.5 + clearerr_unlocked@GLIBC_2.2.5 2.2.5 + clnt_broadcast@GLIBC_2.2.5 2.2.5 + clnt_create@GLIBC_2.2.5 2.2.5 + clnt_pcreateerror@GLIBC_2.2.5 2.2.5 + clnt_perrno@GLIBC_2.2.5 2.2.5 + clnt_perror@GLIBC_2.2.5 2.2.5 + clnt_spcreateerror@GLIBC_2.2.5 2.2.5 + clnt_sperrno@GLIBC_2.2.5 2.2.5 + clnt_sperror@GLIBC_2.2.5 2.2.5 + clntraw_create@GLIBC_2.2.5 2.2.5 + clnttcp_create@GLIBC_2.2.5 2.2.5 + clntudp_bufcreate@GLIBC_2.2.5 2.2.5 + clntudp_create@GLIBC_2.2.5 2.2.5 + clntunix_create@GLIBC_2.2.5 2.2.5 + clock@GLIBC_2.2.5 2.2.5 + clone@GLIBC_2.2.5 2.2.5 + close@GLIBC_2.2.5 2.2.5 + closedir@GLIBC_2.2.5 2.2.5 + closelog@GLIBC_2.2.5 2.2.5 + confstr@GLIBC_2.2.5 2.2.5 + connect@GLIBC_2.2.5 2.2.5 + copysign@GLIBC_2.2.5 2.2.5 + copysignf@GLIBC_2.2.5 2.2.5 + copysignl@GLIBC_2.2.5 2.2.5 + creat64@GLIBC_2.2.5 2.2.5 + creat@GLIBC_2.2.5 2.2.5 + create_module@GLIBC_2.2.5 2.2.5 + ctermid@GLIBC_2.2.5 2.2.5 + ctime@GLIBC_2.2.5 2.2.5 + ctime_r@GLIBC_2.2.5 2.2.5 + cuserid@GLIBC_2.2.5 2.2.5 + daemon@GLIBC_2.2.5 2.2.5 + daylight@GLIBC_2.2.5 2.2.5 + dcgettext@GLIBC_2.2.5 2.2.5 + dcngettext@GLIBC_2.2.5 2.2.5 + delete_module@GLIBC_2.2.5 2.2.5 + des_setparity@GLIBC_2.2.5 2.2.5 + dgettext@GLIBC_2.2.5 2.2.5 + difftime@GLIBC_2.2.5 2.2.5 + dirfd@GLIBC_2.2.5 2.2.5 + dirname@GLIBC_2.2.5 2.2.5 + div@GLIBC_2.2.5 2.2.5 + dl_iterate_phdr@GLIBC_2.2.5 2.2.5 + dngettext@GLIBC_2.2.5 2.2.5 + dprintf@GLIBC_2.2.5 2.2.5 + drand48@GLIBC_2.2.5 2.2.5 + drand48_r@GLIBC_2.2.5 2.2.5 + dup2@GLIBC_2.2.5 2.2.5 + dup@GLIBC_2.2.5 2.2.5 + duplocale@GLIBC_2.3 2.3 + dysize@GLIBC_2.2.5 2.2.5 + eaccess@GLIBC_2.4 2.4 + ecb_crypt@GLIBC_2.2.5 2.2.5 + ecvt@GLIBC_2.2.5 2.2.5 + ecvt_r@GLIBC_2.2.5 2.2.5 + endaliasent@GLIBC_2.2.5 2.2.5 + endfsent@GLIBC_2.2.5 2.2.5 + endgrent@GLIBC_2.2.5 2.2.5 + endhostent@GLIBC_2.2.5 2.2.5 + endmntent@GLIBC_2.2.5 2.2.5 + endnetent@GLIBC_2.2.5 2.2.5 + endnetgrent@GLIBC_2.2.5 2.2.5 + endprotoent@GLIBC_2.2.5 2.2.5 + endpwent@GLIBC_2.2.5 2.2.5 + endrpcent@GLIBC_2.2.5 2.2.5 + endservent@GLIBC_2.2.5 2.2.5 + endspent@GLIBC_2.2.5 2.2.5 + endttyent@GLIBC_2.2.5 2.2.5 + endusershell@GLIBC_2.2.5 2.2.5 + endutent@GLIBC_2.2.5 2.2.5 + endutxent@GLIBC_2.2.5 2.2.5 + environ@GLIBC_2.2.5 2.2.5 + envz_add@GLIBC_2.2.5 2.2.5 + envz_entry@GLIBC_2.2.5 2.2.5 + envz_get@GLIBC_2.2.5 2.2.5 + envz_merge@GLIBC_2.2.5 2.2.5 + envz_remove@GLIBC_2.2.5 2.2.5 + envz_strip@GLIBC_2.2.5 2.2.5 + epoll_create@GLIBC_2.3.2 2.3.2 + epoll_ctl@GLIBC_2.3.2 2.3.2 + epoll_pwait@GLIBC_2.6 2.6 + epoll_wait@GLIBC_2.3.2 2.3.2 + erand48@GLIBC_2.2.5 2.2.5 + erand48_r@GLIBC_2.2.5 2.2.5 + err@GLIBC_2.2.5 2.2.5 + errno@GLIBC_PRIVATE 2.7 + error@GLIBC_2.2.5 2.2.5 + error_at_line@GLIBC_2.2.5 2.2.5 + error_message_count@GLIBC_2.2.5 2.2.5 + error_one_per_line@GLIBC_2.2.5 2.2.5 + error_print_progname@GLIBC_2.2.5 2.2.5 + errx@GLIBC_2.2.5 2.2.5 + ether_aton@GLIBC_2.2.5 2.2.5 + ether_aton_r@GLIBC_2.2.5 2.2.5 + ether_hostton@GLIBC_2.2.5 2.2.5 + ether_line@GLIBC_2.2.5 2.2.5 + ether_ntoa@GLIBC_2.2.5 2.2.5 + ether_ntoa_r@GLIBC_2.2.5 2.2.5 + ether_ntohost@GLIBC_2.2.5 2.2.5 + euidaccess@GLIBC_2.2.5 2.2.5 + eventfd@GLIBC_2.7 2.7 + eventfd_read@GLIBC_2.7 2.7 + eventfd_write@GLIBC_2.7 2.7 + execl@GLIBC_2.2.5 2.2.5 + execle@GLIBC_2.2.5 2.2.5 + execlp@GLIBC_2.2.5 2.2.5 + execv@GLIBC_2.2.5 2.2.5 + execve@GLIBC_2.2.5 2.2.5 + execvp@GLIBC_2.2.5 2.2.5 + exit@GLIBC_2.2.5 2.2.5 + faccessat@GLIBC_2.4 2.4 + fattach@GLIBC_2.2.5 2.2.5 + fchdir@GLIBC_2.2.5 2.2.5 + fchflags@GLIBC_2.2.5 2.2.5 + fchmod@GLIBC_2.2.5 2.2.5 + fchmodat@GLIBC_2.4 2.4 + fchown@GLIBC_2.2.5 2.2.5 + fchownat@GLIBC_2.4 2.4 + fclose@GLIBC_2.2.5 2.2.5 + fcloseall@GLIBC_2.2.5 2.2.5 + fcntl@GLIBC_2.2.5 2.2.5 + fcvt@GLIBC_2.2.5 2.2.5 + fcvt_r@GLIBC_2.2.5 2.2.5 + fdatasync@GLIBC_2.2.5 2.2.5 + fdetach@GLIBC_2.2.5 2.2.5 + fdopen@GLIBC_2.2.5 2.2.5 + fdopendir@GLIBC_2.4 2.4 + feof@GLIBC_2.2.5 2.2.5 + feof_unlocked@GLIBC_2.2.5 2.2.5 + ferror@GLIBC_2.2.5 2.2.5 + ferror_unlocked@GLIBC_2.2.5 2.2.5 + fexecve@GLIBC_2.2.5 2.2.5 + fflush@GLIBC_2.2.5 2.2.5 + fflush_unlocked@GLIBC_2.2.5 2.2.5 + ffs@GLIBC_2.2.5 2.2.5 + ffsl@GLIBC_2.2.5 2.2.5 + ffsll@GLIBC_2.2.5 2.2.5 + fgetc@GLIBC_2.2.5 2.2.5 + fgetc_unlocked@GLIBC_2.2.5 2.2.5 + fgetgrent@GLIBC_2.2.5 2.2.5 + fgetgrent_r@GLIBC_2.2.5 2.2.5 + fgetpos64@GLIBC_2.2.5 2.2.5 + fgetpos@GLIBC_2.2.5 2.2.5 + fgetpwent@GLIBC_2.2.5 2.2.5 + fgetpwent_r@GLIBC_2.2.5 2.2.5 + fgets@GLIBC_2.2.5 2.2.5 + fgets_unlocked@GLIBC_2.2.5 2.2.5 + fgetspent@GLIBC_2.2.5 2.2.5 + fgetspent_r@GLIBC_2.2.5 2.2.5 + fgetwc@GLIBC_2.2.5 2.2.5 + fgetwc_unlocked@GLIBC_2.2.5 2.2.5 + fgetws@GLIBC_2.2.5 2.2.5 + fgetws_unlocked@GLIBC_2.2.5 2.2.5 + fgetxattr@GLIBC_2.3 2.3 + fileno@GLIBC_2.2.5 2.2.5 + fileno_unlocked@GLIBC_2.2.5 2.2.5 + finite@GLIBC_2.2.5 2.2.5 + finitef@GLIBC_2.2.5 2.2.5 + finitel@GLIBC_2.2.5 2.2.5 + flistxattr@GLIBC_2.3 2.3 + flock@GLIBC_2.2.5 2.2.5 + flockfile@GLIBC_2.2.5 2.2.5 + fmemopen@GLIBC_2.2.5 2.2.5 + fmtmsg@GLIBC_2.2.5 2.2.5 + fnmatch@GLIBC_2.2.5 2.2.5 + fopen64@GLIBC_2.2.5 2.2.5 + fopen@GLIBC_2.2.5 2.2.5 + fopencookie@GLIBC_2.2.5 2.2.5 + fork@GLIBC_2.2.5 2.2.5 + fpathconf@GLIBC_2.2.5 2.2.5 + fprintf@GLIBC_2.2.5 2.2.5 + fputc@GLIBC_2.2.5 2.2.5 + fputc_unlocked@GLIBC_2.2.5 2.2.5 + fputs@GLIBC_2.2.5 2.2.5 + fputs_unlocked@GLIBC_2.2.5 2.2.5 + fputwc@GLIBC_2.2.5 2.2.5 + fputwc_unlocked@GLIBC_2.2.5 2.2.5 + fputws@GLIBC_2.2.5 2.2.5 + fputws_unlocked@GLIBC_2.2.5 2.2.5 + fread@GLIBC_2.2.5 2.2.5 + fread_unlocked@GLIBC_2.2.5 2.2.5 + free@GLIBC_2.2.5 2.2.5 + freeaddrinfo@GLIBC_2.2.5 2.2.5 + freeifaddrs@GLIBC_2.3 2.3 + freelocale@GLIBC_2.3 2.3 + fremovexattr@GLIBC_2.3 2.3 + freopen64@GLIBC_2.2.5 2.2.5 + freopen@GLIBC_2.2.5 2.2.5 + frexp@GLIBC_2.2.5 2.2.5 + frexpf@GLIBC_2.2.5 2.2.5 + frexpl@GLIBC_2.2.5 2.2.5 + fscanf@GLIBC_2.2.5 2.2.5 + fseek@GLIBC_2.2.5 2.2.5 + fseeko64@GLIBC_2.2.5 2.2.5 + fseeko@GLIBC_2.2.5 2.2.5 + fsetpos64@GLIBC_2.2.5 2.2.5 + fsetpos@GLIBC_2.2.5 2.2.5 + fsetxattr@GLIBC_2.3 2.3 + fstatfs64@GLIBC_2.2.5 2.2.5 + fstatfs@GLIBC_2.2.5 2.2.5 + fstatvfs64@GLIBC_2.2.5 2.2.5 + fstatvfs@GLIBC_2.2.5 2.2.5 + fsync@GLIBC_2.2.5 2.2.5 + ftell@GLIBC_2.2.5 2.2.5 + ftello64@GLIBC_2.2.5 2.2.5 + ftello@GLIBC_2.2.5 2.2.5 + ftime@GLIBC_2.2.5 2.2.5 + ftok@GLIBC_2.2.5 2.2.5 + ftruncate64@GLIBC_2.2.5 2.2.5 + ftruncate@GLIBC_2.2.5 2.2.5 + ftrylockfile@GLIBC_2.2.5 2.2.5 + fts_children@GLIBC_2.2.5 2.2.5 + fts_close@GLIBC_2.2.5 2.2.5 + fts_open@GLIBC_2.2.5 2.2.5 + fts_read@GLIBC_2.2.5 2.2.5 + fts_set@GLIBC_2.2.5 2.2.5 + ftw64@GLIBC_2.2.5 2.2.5 + ftw@GLIBC_2.2.5 2.2.5 + funlockfile@GLIBC_2.2.5 2.2.5 + futimens@GLIBC_2.6 2.6 + futimes@GLIBC_2.3 2.3 + futimesat@GLIBC_2.4 2.4 + fwide@GLIBC_2.2.5 2.2.5 + fwprintf@GLIBC_2.2.5 2.2.5 + fwrite@GLIBC_2.2.5 2.2.5 + fwrite_unlocked@GLIBC_2.2.5 2.2.5 + fwscanf@GLIBC_2.2.5 2.2.5 + gai_strerror@GLIBC_2.2.5 2.2.5 + gcvt@GLIBC_2.2.5 2.2.5 + get_avphys_pages@GLIBC_2.2.5 2.2.5 + get_current_dir_name@GLIBC_2.2.5 2.2.5 + get_kernel_syms@GLIBC_2.2.5 2.2.5 + get_myaddress@GLIBC_2.2.5 2.2.5 + get_nprocs@GLIBC_2.2.5 2.2.5 + get_nprocs_conf@GLIBC_2.2.5 2.2.5 + get_phys_pages@GLIBC_2.2.5 2.2.5 + getaddrinfo@GLIBC_2.2.5 2.2.5 + getaliasbyname@GLIBC_2.2.5 2.2.5 + getaliasbyname_r@GLIBC_2.2.5 2.2.5 + getaliasent@GLIBC_2.2.5 2.2.5 + getaliasent_r@GLIBC_2.2.5 2.2.5 + getc@GLIBC_2.2.5 2.2.5 + getc_unlocked@GLIBC_2.2.5 2.2.5 + getchar@GLIBC_2.2.5 2.2.5 + getchar_unlocked@GLIBC_2.2.5 2.2.5 + getcontext@GLIBC_2.2.5 2.2.5 + getcwd@GLIBC_2.2.5 2.2.5 + getdate@GLIBC_2.2.5 2.2.5 + getdate_err@GLIBC_2.2.5 2.2.5 + getdate_r@GLIBC_2.2.5 2.2.5 + getdelim@GLIBC_2.2.5 2.2.5 + getdirentries64@GLIBC_2.2.5 2.2.5 + getdirentries@GLIBC_2.2.5 2.2.5 + getdomainname@GLIBC_2.2.5 2.2.5 + getdtablesize@GLIBC_2.2.5 2.2.5 + getegid@GLIBC_2.2.5 2.2.5 + getenv@GLIBC_2.2.5 2.2.5 + geteuid@GLIBC_2.2.5 2.2.5 + getfsent@GLIBC_2.2.5 2.2.5 + getfsfile@GLIBC_2.2.5 2.2.5 + getfsspec@GLIBC_2.2.5 2.2.5 + getgid@GLIBC_2.2.5 2.2.5 + getgrent@GLIBC_2.2.5 2.2.5 + getgrent_r@GLIBC_2.2.5 2.2.5 + getgrgid@GLIBC_2.2.5 2.2.5 + getgrgid_r@GLIBC_2.2.5 2.2.5 + getgrnam@GLIBC_2.2.5 2.2.5 + getgrnam_r@GLIBC_2.2.5 2.2.5 + getgrouplist@GLIBC_2.2.5 2.2.5 + getgroups@GLIBC_2.2.5 2.2.5 + gethostbyaddr@GLIBC_2.2.5 2.2.5 + gethostbyaddr_r@GLIBC_2.2.5 2.2.5 + gethostbyname2@GLIBC_2.2.5 2.2.5 + gethostbyname2_r@GLIBC_2.2.5 2.2.5 + gethostbyname@GLIBC_2.2.5 2.2.5 + gethostbyname_r@GLIBC_2.2.5 2.2.5 + gethostent@GLIBC_2.2.5 2.2.5 + gethostent_r@GLIBC_2.2.5 2.2.5 + gethostid@GLIBC_2.2.5 2.2.5 + gethostname@GLIBC_2.2.5 2.2.5 + getifaddrs@GLIBC_2.3 2.3 + getipv4sourcefilter@GLIBC_2.3.4 2.3.4 + getitimer@GLIBC_2.2.5 2.2.5 + getline@GLIBC_2.2.5 2.2.5 + getloadavg@GLIBC_2.2.5 2.2.5 + getlogin@GLIBC_2.2.5 2.2.5 + getlogin_r@GLIBC_2.2.5 2.2.5 + getmntent@GLIBC_2.2.5 2.2.5 + getmntent_r@GLIBC_2.2.5 2.2.5 + getmsg@GLIBC_2.2.5 2.2.5 + getnameinfo@GLIBC_2.2.5 2.2.5 + getnetbyaddr@GLIBC_2.2.5 2.2.5 + getnetbyaddr_r@GLIBC_2.2.5 2.2.5 + getnetbyname@GLIBC_2.2.5 2.2.5 + getnetbyname_r@GLIBC_2.2.5 2.2.5 + getnetent@GLIBC_2.2.5 2.2.5 + getnetent_r@GLIBC_2.2.5 2.2.5 + getnetgrent@GLIBC_2.2.5 2.2.5 + getnetgrent_r@GLIBC_2.2.5 2.2.5 + getnetname@GLIBC_2.2.5 2.2.5 + getopt@GLIBC_2.2.5 2.2.5 + getopt_long@GLIBC_2.2.5 2.2.5 + getopt_long_only@GLIBC_2.2.5 2.2.5 + getpagesize@GLIBC_2.2.5 2.2.5 + getpass@GLIBC_2.2.5 2.2.5 + getpeername@GLIBC_2.2.5 2.2.5 + getpgid@GLIBC_2.2.5 2.2.5 + getpgrp@GLIBC_2.2.5 2.2.5 + getpid@GLIBC_2.2.5 2.2.5 + getpmsg@GLIBC_2.2.5 2.2.5 + getppid@GLIBC_2.2.5 2.2.5 + getpriority@GLIBC_2.2.5 2.2.5 + getprotobyname@GLIBC_2.2.5 2.2.5 + getprotobyname_r@GLIBC_2.2.5 2.2.5 + getprotobynumber@GLIBC_2.2.5 2.2.5 + getprotobynumber_r@GLIBC_2.2.5 2.2.5 + getprotoent@GLIBC_2.2.5 2.2.5 + getprotoent_r@GLIBC_2.2.5 2.2.5 + getpt@GLIBC_2.2.5 2.2.5 + getpublickey@GLIBC_2.2.5 2.2.5 + getpw@GLIBC_2.2.5 2.2.5 + getpwent@GLIBC_2.2.5 2.2.5 + getpwent_r@GLIBC_2.2.5 2.2.5 + getpwnam@GLIBC_2.2.5 2.2.5 + getpwnam_r@GLIBC_2.2.5 2.2.5 + getpwuid@GLIBC_2.2.5 2.2.5 + getpwuid_r@GLIBC_2.2.5 2.2.5 + getresgid@GLIBC_2.2.5 2.2.5 + getresuid@GLIBC_2.2.5 2.2.5 + getrlimit64@GLIBC_2.2.5 2.2.5 + getrlimit@GLIBC_2.2.5 2.2.5 + getrpcbyname@GLIBC_2.2.5 2.2.5 + getrpcbyname_r@GLIBC_2.2.5 2.2.5 + getrpcbynumber@GLIBC_2.2.5 2.2.5 + getrpcbynumber_r@GLIBC_2.2.5 2.2.5 + getrpcent@GLIBC_2.2.5 2.2.5 + getrpcent_r@GLIBC_2.2.5 2.2.5 + getrpcport@GLIBC_2.2.5 2.2.5 + getrusage@GLIBC_2.2.5 2.2.5 + gets@GLIBC_2.2.5 2.2.5 + getsecretkey@GLIBC_2.2.5 2.2.5 + getservbyname@GLIBC_2.2.5 2.2.5 + getservbyname_r@GLIBC_2.2.5 2.2.5 + getservbyport@GLIBC_2.2.5 2.2.5 + getservbyport_r@GLIBC_2.2.5 2.2.5 + getservent@GLIBC_2.2.5 2.2.5 + getservent_r@GLIBC_2.2.5 2.2.5 + getsid@GLIBC_2.2.5 2.2.5 + getsockname@GLIBC_2.2.5 2.2.5 + getsockopt@GLIBC_2.2.5 2.2.5 + getsourcefilter@GLIBC_2.3.4 2.3.4 + getspent@GLIBC_2.2.5 2.2.5 + getspent_r@GLIBC_2.2.5 2.2.5 + getspnam@GLIBC_2.2.5 2.2.5 + getspnam_r@GLIBC_2.2.5 2.2.5 + getsubopt@GLIBC_2.2.5 2.2.5 + gettext@GLIBC_2.2.5 2.2.5 + gettimeofday@GLIBC_2.2.5 2.2.5 + getttyent@GLIBC_2.2.5 2.2.5 + getttynam@GLIBC_2.2.5 2.2.5 + getuid@GLIBC_2.2.5 2.2.5 + getusershell@GLIBC_2.2.5 2.2.5 + getutent@GLIBC_2.2.5 2.2.5 + getutent_r@GLIBC_2.2.5 2.2.5 + getutid@GLIBC_2.2.5 2.2.5 + getutid_r@GLIBC_2.2.5 2.2.5 + getutline@GLIBC_2.2.5 2.2.5 + getutline_r@GLIBC_2.2.5 2.2.5 + getutmp@GLIBC_2.2.5 2.2.5 + getutmpx@GLIBC_2.2.5 2.2.5 + getutxent@GLIBC_2.2.5 2.2.5 + getutxid@GLIBC_2.2.5 2.2.5 + getutxline@GLIBC_2.2.5 2.2.5 + getw@GLIBC_2.2.5 2.2.5 + getwc@GLIBC_2.2.5 2.2.5 + getwc_unlocked@GLIBC_2.2.5 2.2.5 + getwchar@GLIBC_2.2.5 2.2.5 + getwchar_unlocked@GLIBC_2.2.5 2.2.5 + getwd@GLIBC_2.2.5 2.2.5 + getxattr@GLIBC_2.3 2.3 + glob64@GLIBC_2.2.5 2.2.5 + glob@GLIBC_2.2.5 2.2.5 + glob_pattern_p@GLIBC_2.2.5 2.2.5 + globfree64@GLIBC_2.2.5 2.2.5 + globfree@GLIBC_2.2.5 2.2.5 + gmtime@GLIBC_2.2.5 2.2.5 + gmtime_r@GLIBC_2.2.5 2.2.5 + gnu_dev_major@GLIBC_2.3.3 2.3.3 + gnu_dev_makedev@GLIBC_2.3.3 2.3.3 + gnu_dev_minor@GLIBC_2.3.3 2.3.3 + gnu_get_libc_release@GLIBC_2.2.5 2.2.5 + gnu_get_libc_version@GLIBC_2.2.5 2.2.5 + grantpt@GLIBC_2.2.5 2.2.5 + group_member@GLIBC_2.2.5 2.2.5 + gsignal@GLIBC_2.2.5 2.2.5 + gtty@GLIBC_2.2.5 2.2.5 + h_errlist@GLIBC_2.2.5 2.2.5 + h_errno@GLIBC_PRIVATE 2.7 + h_nerr@GLIBC_2.2.5 2.2.5 + hasmntopt@GLIBC_2.2.5 2.2.5 + hcreate@GLIBC_2.2.5 2.2.5 + hcreate_r@GLIBC_2.2.5 2.2.5 + hdestroy@GLIBC_2.2.5 2.2.5 + hdestroy_r@GLIBC_2.2.5 2.2.5 + herror@GLIBC_2.2.5 2.2.5 + host2netname@GLIBC_2.2.5 2.2.5 + hsearch@GLIBC_2.2.5 2.2.5 + hsearch_r@GLIBC_2.2.5 2.2.5 + hstrerror@GLIBC_2.2.5 2.2.5 + htonl@GLIBC_2.2.5 2.2.5 + htons@GLIBC_2.2.5 2.2.5 + iconv@GLIBC_2.2.5 2.2.5 + iconv_close@GLIBC_2.2.5 2.2.5 + iconv_open@GLIBC_2.2.5 2.2.5 + if_freenameindex@GLIBC_2.2.5 2.2.5 + if_indextoname@GLIBC_2.2.5 2.2.5 + if_nameindex@GLIBC_2.2.5 2.2.5 + if_nametoindex@GLIBC_2.2.5 2.2.5 + imaxabs@GLIBC_2.2.5 2.2.5 + imaxdiv@GLIBC_2.2.5 2.2.5 + in6addr_any@GLIBC_2.2.5 2.2.5 + in6addr_loopback@GLIBC_2.2.5 2.2.5 + index@GLIBC_2.2.5 2.2.5 + inet6_opt_append@GLIBC_2.5 2.5 + inet6_opt_find@GLIBC_2.5 2.5 + inet6_opt_finish@GLIBC_2.5 2.5 + inet6_opt_get_val@GLIBC_2.5 2.5 + inet6_opt_init@GLIBC_2.5 2.5 + inet6_opt_next@GLIBC_2.5 2.5 + inet6_opt_set_val@GLIBC_2.5 2.5 + inet6_option_alloc@GLIBC_2.3.3 2.3.3 + inet6_option_append@GLIBC_2.3.3 2.3.3 + inet6_option_find@GLIBC_2.3.3 2.3.3 + inet6_option_init@GLIBC_2.3.3 2.3.3 + inet6_option_next@GLIBC_2.3.3 2.3.3 + inet6_option_space@GLIBC_2.3.3 2.3.3 + inet6_rth_add@GLIBC_2.5 2.5 + inet6_rth_getaddr@GLIBC_2.5 2.5 + inet6_rth_init@GLIBC_2.5 2.5 + inet6_rth_reverse@GLIBC_2.5 2.5 + inet6_rth_segments@GLIBC_2.5 2.5 + inet6_rth_space@GLIBC_2.5 2.5 + inet_addr@GLIBC_2.2.5 2.2.5 + inet_aton@GLIBC_2.2.5 2.2.5 + inet_lnaof@GLIBC_2.2.5 2.2.5 + inet_makeaddr@GLIBC_2.2.5 2.2.5 + inet_netof@GLIBC_2.2.5 2.2.5 + inet_network@GLIBC_2.2.5 2.2.5 + inet_nsap_addr@GLIBC_2.2.5 2.2.5 + inet_nsap_ntoa@GLIBC_2.2.5 2.2.5 + inet_ntoa@GLIBC_2.2.5 2.2.5 + inet_ntop@GLIBC_2.2.5 2.2.5 + inet_pton@GLIBC_2.2.5 2.2.5 + init_module@GLIBC_2.2.5 2.2.5 + initgroups@GLIBC_2.2.5 2.2.5 + initstate@GLIBC_2.2.5 2.2.5 + initstate_r@GLIBC_2.2.5 2.2.5 + innetgr@GLIBC_2.2.5 2.2.5 + inotify_add_watch@GLIBC_2.4 2.4 + inotify_init@GLIBC_2.4 2.4 + inotify_rm_watch@GLIBC_2.4 2.4 + insque@GLIBC_2.2.5 2.2.5 + ioctl@GLIBC_2.2.5 2.2.5 + ioperm@GLIBC_2.2.5 2.2.5 + iopl@GLIBC_2.2.5 2.2.5 + iruserok@GLIBC_2.2.5 2.2.5 + iruserok_af@GLIBC_2.2.5 2.2.5 + isalnum@GLIBC_2.2.5 2.2.5 + isalnum_l@GLIBC_2.3 2.3 + isalpha@GLIBC_2.2.5 2.2.5 + isalpha_l@GLIBC_2.3 2.3 + isascii@GLIBC_2.2.5 2.2.5 + isastream@GLIBC_2.2.5 2.2.5 + isatty@GLIBC_2.2.5 2.2.5 + isblank@GLIBC_2.2.5 2.2.5 + isblank_l@GLIBC_2.3 2.3 + iscntrl@GLIBC_2.2.5 2.2.5 + iscntrl_l@GLIBC_2.3 2.3 + isctype@GLIBC_2.3 2.3 + isdigit@GLIBC_2.2.5 2.2.5 + isdigit_l@GLIBC_2.3 2.3 + isfdtype@GLIBC_2.2.5 2.2.5 + isgraph@GLIBC_2.2.5 2.2.5 + isgraph_l@GLIBC_2.3 2.3 + isinf@GLIBC_2.2.5 2.2.5 + isinff@GLIBC_2.2.5 2.2.5 + isinfl@GLIBC_2.2.5 2.2.5 + islower@GLIBC_2.2.5 2.2.5 + islower_l@GLIBC_2.3 2.3 + isnan@GLIBC_2.2.5 2.2.5 + isnanf@GLIBC_2.2.5 2.2.5 + isnanl@GLIBC_2.2.5 2.2.5 + isprint@GLIBC_2.2.5 2.2.5 + isprint_l@GLIBC_2.3 2.3 + ispunct@GLIBC_2.2.5 2.2.5 + ispunct_l@GLIBC_2.3 2.3 + isspace@GLIBC_2.2.5 2.2.5 + isspace_l@GLIBC_2.3 2.3 + isupper@GLIBC_2.2.5 2.2.5 + isupper_l@GLIBC_2.3 2.3 + iswalnum@GLIBC_2.2.5 2.2.5 + iswalnum_l@GLIBC_2.3 2.3 + iswalpha@GLIBC_2.2.5 2.2.5 + iswalpha_l@GLIBC_2.3 2.3 + iswblank@GLIBC_2.2.5 2.2.5 + iswblank_l@GLIBC_2.3 2.3 + iswcntrl@GLIBC_2.2.5 2.2.5 + iswcntrl_l@GLIBC_2.3 2.3 + iswctype@GLIBC_2.2.5 2.2.5 + iswctype_l@GLIBC_2.3 2.3 + iswdigit@GLIBC_2.2.5 2.2.5 + iswdigit_l@GLIBC_2.3 2.3 + iswgraph@GLIBC_2.2.5 2.2.5 + iswgraph_l@GLIBC_2.3 2.3 + iswlower@GLIBC_2.2.5 2.2.5 + iswlower_l@GLIBC_2.3 2.3 + iswprint@GLIBC_2.2.5 2.2.5 + iswprint_l@GLIBC_2.3 2.3 + iswpunct@GLIBC_2.2.5 2.2.5 + iswpunct_l@GLIBC_2.3 2.3 + iswspace@GLIBC_2.2.5 2.2.5 + iswspace_l@GLIBC_2.3 2.3 + iswupper@GLIBC_2.2.5 2.2.5 + iswupper_l@GLIBC_2.3 2.3 + iswxdigit@GLIBC_2.2.5 2.2.5 + iswxdigit_l@GLIBC_2.3 2.3 + isxdigit@GLIBC_2.2.5 2.2.5 + isxdigit_l@GLIBC_2.3 2.3 + jrand48@GLIBC_2.2.5 2.2.5 + jrand48_r@GLIBC_2.2.5 2.2.5 + key_decryptsession@GLIBC_2.2.5 2.2.5 + key_decryptsession_pk@GLIBC_2.2.5 2.2.5 + key_encryptsession@GLIBC_2.2.5 2.2.5 + key_encryptsession_pk@GLIBC_2.2.5 2.2.5 + key_gendes@GLIBC_2.2.5 2.2.5 + key_get_conv@GLIBC_2.2.5 2.2.5 + key_secretkey_is_set@GLIBC_2.2.5 2.2.5 + key_setnet@GLIBC_2.2.5 2.2.5 + key_setsecret@GLIBC_2.2.5 2.2.5 + kill@GLIBC_2.2.5 2.2.5 + killpg@GLIBC_2.2.5 2.2.5 + klogctl@GLIBC_2.2.5 2.2.5 + l64a@GLIBC_2.2.5 2.2.5 + labs@GLIBC_2.2.5 2.2.5 + lchmod@GLIBC_2.3.2 2.3.2 + lchown@GLIBC_2.2.5 2.2.5 + lckpwdf@GLIBC_2.2.5 2.2.5 + lcong48@GLIBC_2.2.5 2.2.5 + lcong48_r@GLIBC_2.2.5 2.2.5 + ldexp@GLIBC_2.2.5 2.2.5 + ldexpf@GLIBC_2.2.5 2.2.5 + ldexpl@GLIBC_2.2.5 2.2.5 + ldiv@GLIBC_2.2.5 2.2.5 + lfind@GLIBC_2.2.5 2.2.5 + lgetxattr@GLIBC_2.3 2.3 + link@GLIBC_2.2.5 2.2.5 + linkat@GLIBC_2.4 2.4 + listen@GLIBC_2.2.5 2.2.5 + listxattr@GLIBC_2.3 2.3 + llabs@GLIBC_2.2.5 2.2.5 + lldiv@GLIBC_2.2.5 2.2.5 + llistxattr@GLIBC_2.3 2.3 + llseek@GLIBC_2.2.5 2.2.5 + loc1@GLIBC_2.2.5 2.2.5 + loc2@GLIBC_2.2.5 2.2.5 + localeconv@GLIBC_2.2.5 2.2.5 + localtime@GLIBC_2.2.5 2.2.5 + localtime_r@GLIBC_2.2.5 2.2.5 + lockf64@GLIBC_2.2.5 2.2.5 + lockf@GLIBC_2.2.5 2.2.5 + locs@GLIBC_2.2.5 2.2.5 + longjmp@GLIBC_2.2.5 2.2.5 + lrand48@GLIBC_2.2.5 2.2.5 + lrand48_r@GLIBC_2.2.5 2.2.5 + lremovexattr@GLIBC_2.3 2.3 + lsearch@GLIBC_2.2.5 2.2.5 + lseek64@GLIBC_2.2.5 2.2.5 + lseek@GLIBC_2.2.5 2.2.5 + lsetxattr@GLIBC_2.3 2.3 + lutimes@GLIBC_2.3 2.3 + madvise@GLIBC_2.2.5 2.2.5 + makecontext@GLIBC_2.2.5 2.2.5 + mallinfo@GLIBC_2.2.5 2.2.5 + malloc@GLIBC_2.2.5 2.2.5 + malloc_get_state@GLIBC_2.2.5 2.2.5 + malloc_set_state@GLIBC_2.2.5 2.2.5 + malloc_stats@GLIBC_2.2.5 2.2.5 + malloc_trim@GLIBC_2.2.5 2.2.5 + malloc_usable_size@GLIBC_2.2.5 2.2.5 + mallopt@GLIBC_2.2.5 2.2.5 + mallwatch@GLIBC_2.2.5 2.2.5 + mblen@GLIBC_2.2.5 2.2.5 + mbrlen@GLIBC_2.2.5 2.2.5 + mbrtowc@GLIBC_2.2.5 2.2.5 + mbsinit@GLIBC_2.2.5 2.2.5 + mbsnrtowcs@GLIBC_2.2.5 2.2.5 + mbsrtowcs@GLIBC_2.2.5 2.2.5 + mbstowcs@GLIBC_2.2.5 2.2.5 + mbtowc@GLIBC_2.2.5 2.2.5 + mcheck@GLIBC_2.2.5 2.2.5 + mcheck_check_all@GLIBC_2.2.5 2.2.5 + mcheck_pedantic@GLIBC_2.2.5 2.2.5 + mcount@GLIBC_2.2.5 2.2.5 + memalign@GLIBC_2.2.5 2.2.5 + memccpy@GLIBC_2.2.5 2.2.5 + memchr@GLIBC_2.2.5 2.2.5 + memcmp@GLIBC_2.2.5 2.2.5 + memcpy@GLIBC_2.2.5 2.2.5 + memfrob@GLIBC_2.2.5 2.2.5 + memmem@GLIBC_2.2.5 2.2.5 + memmove@GLIBC_2.2.5 2.2.5 + mempcpy@GLIBC_2.2.5 2.2.5 + memrchr@GLIBC_2.2.5 2.2.5 + memset@GLIBC_2.2.5 2.2.5 + mincore@GLIBC_2.2.5 2.2.5 + mkdir@GLIBC_2.2.5 2.2.5 + mkdirat@GLIBC_2.4 2.4 + mkdtemp@GLIBC_2.2.5 2.2.5 + mkfifo@GLIBC_2.2.5 2.2.5 + mkfifoat@GLIBC_2.4 2.4 + mkostemp64@GLIBC_2.7 2.7 + mkostemp@GLIBC_2.7 2.7 + mkstemp64@GLIBC_2.2.5 2.2.5 + mkstemp@GLIBC_2.2.5 2.2.5 + mktemp@GLIBC_2.2.5 2.2.5 + mktime@GLIBC_2.2.5 2.2.5 + mlock@GLIBC_2.2.5 2.2.5 + mlockall@GLIBC_2.2.5 2.2.5 + mmap64@GLIBC_2.2.5 2.2.5 + mmap@GLIBC_2.2.5 2.2.5 + modf@GLIBC_2.2.5 2.2.5 + modff@GLIBC_2.2.5 2.2.5 + modfl@GLIBC_2.2.5 2.2.5 + modify_ldt@GLIBC_2.2.5 2.2.5 + moncontrol@GLIBC_2.2.5 2.2.5 + monstartup@GLIBC_2.2.5 2.2.5 + mount@GLIBC_2.2.5 2.2.5 + mprobe@GLIBC_2.2.5 2.2.5 + mprotect@GLIBC_2.2.5 2.2.5 + mrand48@GLIBC_2.2.5 2.2.5 + mrand48_r@GLIBC_2.2.5 2.2.5 + mremap@GLIBC_2.2.5 2.2.5 + msgctl@GLIBC_2.2.5 2.2.5 + msgget@GLIBC_2.2.5 2.2.5 + msgrcv@GLIBC_2.2.5 2.2.5 + msgsnd@GLIBC_2.2.5 2.2.5 + msync@GLIBC_2.2.5 2.2.5 + mtrace@GLIBC_2.2.5 2.2.5 + munlock@GLIBC_2.2.5 2.2.5 + munlockall@GLIBC_2.2.5 2.2.5 + munmap@GLIBC_2.2.5 2.2.5 + muntrace@GLIBC_2.2.5 2.2.5 + nanosleep@GLIBC_2.2.5 2.2.5 + netname2host@GLIBC_2.2.5 2.2.5 + netname2user@GLIBC_2.2.5 2.2.5 + newlocale@GLIBC_2.3 2.3 + nfsservctl@GLIBC_2.2.5 2.2.5 + nftw64@GLIBC_2.2.5 2.2.5 + nftw64@GLIBC_2.3.3 2.3.3 + nftw@GLIBC_2.2.5 2.2.5 + nftw@GLIBC_2.3.3 2.3.3 + ngettext@GLIBC_2.2.5 2.2.5 + nice@GLIBC_2.2.5 2.2.5 + nl_langinfo@GLIBC_2.2.5 2.2.5 + nl_langinfo_l@GLIBC_2.3 2.3 + nrand48@GLIBC_2.2.5 2.2.5 + nrand48_r@GLIBC_2.2.5 2.2.5 + ntohl@GLIBC_2.2.5 2.2.5 + ntohs@GLIBC_2.2.5 2.2.5 + ntp_adjtime@GLIBC_2.2.5 2.2.5 + ntp_gettime@GLIBC_2.2.5 2.2.5 + obstack_alloc_failed_handler@GLIBC_2.2.5 2.2.5 + obstack_exit_failure@GLIBC_2.2.5 2.2.5 + obstack_free@GLIBC_2.2.5 2.2.5 + obstack_printf@GLIBC_2.2.5 2.2.5 + obstack_vprintf@GLIBC_2.2.5 2.2.5 + on_exit@GLIBC_2.2.5 2.2.5 + open64@GLIBC_2.2.5 2.2.5 + open@GLIBC_2.2.5 2.2.5 + open_memstream@GLIBC_2.2.5 2.2.5 + open_wmemstream@GLIBC_2.4 2.4 + openat64@GLIBC_2.4 2.4 + openat@GLIBC_2.4 2.4 + opendir@GLIBC_2.2.5 2.2.5 + openlog@GLIBC_2.2.5 2.2.5 + optarg@GLIBC_2.2.5 2.2.5 + opterr@GLIBC_2.2.5 2.2.5 + optind@GLIBC_2.2.5 2.2.5 + optopt@GLIBC_2.2.5 2.2.5 + parse_printf_format@GLIBC_2.2.5 2.2.5 + passwd2des@GLIBC_2.2.5 2.2.5 + pathconf@GLIBC_2.2.5 2.2.5 + pause@GLIBC_2.2.5 2.2.5 + pclose@GLIBC_2.2.5 2.2.5 + perror@GLIBC_2.2.5 2.2.5 + personality@GLIBC_2.2.5 2.2.5 + pipe@GLIBC_2.2.5 2.2.5 + pivot_root@GLIBC_2.2.5 2.2.5 + pmap_getmaps@GLIBC_2.2.5 2.2.5 + pmap_getport@GLIBC_2.2.5 2.2.5 + pmap_rmtcall@GLIBC_2.2.5 2.2.5 + pmap_set@GLIBC_2.2.5 2.2.5 + pmap_unset@GLIBC_2.2.5 2.2.5 + poll@GLIBC_2.2.5 2.2.5 + popen@GLIBC_2.2.5 2.2.5 + posix_fadvise64@GLIBC_2.2.5 2.2.5 + posix_fadvise@GLIBC_2.2.5 2.2.5 + posix_fallocate64@GLIBC_2.2.5 2.2.5 + posix_fallocate@GLIBC_2.2.5 2.2.5 + posix_madvise@GLIBC_2.2.5 2.2.5 + posix_memalign@GLIBC_2.2.5 2.2.5 + posix_openpt@GLIBC_2.2.5 2.2.5 + posix_spawn@GLIBC_2.2.5 2.2.5 + posix_spawn_file_actions_addclose@GLIBC_2.2.5 2.2.5 + posix_spawn_file_actions_adddup2@GLIBC_2.2.5 2.2.5 + posix_spawn_file_actions_addopen@GLIBC_2.2.5 2.2.5 + posix_spawn_file_actions_destroy@GLIBC_2.2.5 2.2.5 + posix_spawn_file_actions_init@GLIBC_2.2.5 2.2.5 + posix_spawnattr_destroy@GLIBC_2.2.5 2.2.5 + posix_spawnattr_getflags@GLIBC_2.2.5 2.2.5 + posix_spawnattr_getpgroup@GLIBC_2.2.5 2.2.5 + posix_spawnattr_getschedparam@GLIBC_2.2.5 2.2.5 + posix_spawnattr_getschedpolicy@GLIBC_2.2.5 2.2.5 + posix_spawnattr_getsigdefault@GLIBC_2.2.5 2.2.5 + posix_spawnattr_getsigmask@GLIBC_2.2.5 2.2.5 + posix_spawnattr_init@GLIBC_2.2.5 2.2.5 + posix_spawnattr_setflags@GLIBC_2.2.5 2.2.5 + posix_spawnattr_setpgroup@GLIBC_2.2.5 2.2.5 + posix_spawnattr_setschedparam@GLIBC_2.2.5 2.2.5 + posix_spawnattr_setschedpolicy@GLIBC_2.2.5 2.2.5 + posix_spawnattr_setsigdefault@GLIBC_2.2.5 2.2.5 + posix_spawnattr_setsigmask@GLIBC_2.2.5 2.2.5 + posix_spawnp@GLIBC_2.2.5 2.2.5 + ppoll@GLIBC_2.4 2.4 + prctl@GLIBC_2.2.5 2.2.5 + pread64@GLIBC_2.2.5 2.2.5 + pread@GLIBC_2.2.5 2.2.5 + printf@GLIBC_2.2.5 2.2.5 + printf_size@GLIBC_2.2.5 2.2.5 + printf_size_info@GLIBC_2.2.5 2.2.5 + profil@GLIBC_2.2.5 2.2.5 + program_invocation_name@GLIBC_2.2.5 2.2.5 + program_invocation_short_name@GLIBC_2.2.5 2.2.5 + pselect@GLIBC_2.2.5 2.2.5 + psignal@GLIBC_2.2.5 2.2.5 + pthread_attr_destroy@GLIBC_2.2.5 2.2.5 + pthread_attr_getdetachstate@GLIBC_2.2.5 2.2.5 + pthread_attr_getinheritsched@GLIBC_2.2.5 2.2.5 + pthread_attr_getschedparam@GLIBC_2.2.5 2.2.5 + pthread_attr_getschedpolicy@GLIBC_2.2.5 2.2.5 + pthread_attr_getscope@GLIBC_2.2.5 2.2.5 + pthread_attr_init@GLIBC_2.2.5 2.2.5 + pthread_attr_setdetachstate@GLIBC_2.2.5 2.2.5 + pthread_attr_setinheritsched@GLIBC_2.2.5 2.2.5 + pthread_attr_setschedparam@GLIBC_2.2.5 2.2.5 + pthread_attr_setschedpolicy@GLIBC_2.2.5 2.2.5 + pthread_attr_setscope@GLIBC_2.2.5 2.2.5 + pthread_cond_broadcast@GLIBC_2.2.5 2.2.5 + pthread_cond_broadcast@GLIBC_2.3.2 2.3.2 + pthread_cond_destroy@GLIBC_2.2.5 2.2.5 + pthread_cond_destroy@GLIBC_2.3.2 2.3.2 + pthread_cond_init@GLIBC_2.2.5 2.2.5 + pthread_cond_init@GLIBC_2.3.2 2.3.2 + pthread_cond_signal@GLIBC_2.2.5 2.2.5 + pthread_cond_signal@GLIBC_2.3.2 2.3.2 + pthread_cond_timedwait@GLIBC_2.2.5 2.2.5 + pthread_cond_timedwait@GLIBC_2.3.2 2.3.2 + pthread_cond_wait@GLIBC_2.2.5 2.2.5 + pthread_cond_wait@GLIBC_2.3.2 2.3.2 + pthread_condattr_destroy@GLIBC_2.2.5 2.2.5 + pthread_condattr_init@GLIBC_2.2.5 2.2.5 + pthread_equal@GLIBC_2.2.5 2.2.5 + pthread_exit@GLIBC_2.2.5 2.2.5 + pthread_getschedparam@GLIBC_2.2.5 2.2.5 + pthread_mutex_destroy@GLIBC_2.2.5 2.2.5 + pthread_mutex_init@GLIBC_2.2.5 2.2.5 + pthread_mutex_lock@GLIBC_2.2.5 2.2.5 + pthread_mutex_unlock@GLIBC_2.2.5 2.2.5 + pthread_self@GLIBC_2.2.5 2.2.5 + pthread_setcancelstate@GLIBC_2.2.5 2.2.5 + pthread_setcanceltype@GLIBC_2.2.5 2.2.5 + pthread_setschedparam@GLIBC_2.2.5 2.2.5 + ptrace@GLIBC_2.2.5 2.2.5 + ptsname@GLIBC_2.2.5 2.2.5 + ptsname_r@GLIBC_2.2.5 2.2.5 + putc@GLIBC_2.2.5 2.2.5 + putc_unlocked@GLIBC_2.2.5 2.2.5 + putchar@GLIBC_2.2.5 2.2.5 + putchar_unlocked@GLIBC_2.2.5 2.2.5 + putenv@GLIBC_2.2.5 2.2.5 + putgrent@GLIBC_2.2.5 2.2.5 + putmsg@GLIBC_2.2.5 2.2.5 + putpmsg@GLIBC_2.2.5 2.2.5 + putpwent@GLIBC_2.2.5 2.2.5 + puts@GLIBC_2.2.5 2.2.5 + putspent@GLIBC_2.2.5 2.2.5 + pututline@GLIBC_2.2.5 2.2.5 + pututxline@GLIBC_2.2.5 2.2.5 + putw@GLIBC_2.2.5 2.2.5 + putwc@GLIBC_2.2.5 2.2.5 + putwc_unlocked@GLIBC_2.2.5 2.2.5 + putwchar@GLIBC_2.2.5 2.2.5 + putwchar_unlocked@GLIBC_2.2.5 2.2.5 + pvalloc@GLIBC_2.2.5 2.2.5 + pwrite64@GLIBC_2.2.5 2.2.5 + pwrite@GLIBC_2.2.5 2.2.5 + qecvt@GLIBC_2.2.5 2.2.5 + qecvt_r@GLIBC_2.2.5 2.2.5 + qfcvt@GLIBC_2.2.5 2.2.5 + qfcvt_r@GLIBC_2.2.5 2.2.5 + qgcvt@GLIBC_2.2.5 2.2.5 + qsort@GLIBC_2.2.5 2.2.5 + query_module@GLIBC_2.2.5 2.2.5 + quotactl@GLIBC_2.2.5 2.2.5 + raise@GLIBC_2.2.5 2.2.5 + rand@GLIBC_2.2.5 2.2.5 + rand_r@GLIBC_2.2.5 2.2.5 + random@GLIBC_2.2.5 2.2.5 + random_r@GLIBC_2.2.5 2.2.5 + rawmemchr@GLIBC_2.2.5 2.2.5 + rcmd@GLIBC_2.2.5 2.2.5 + rcmd_af@GLIBC_2.2.5 2.2.5 + re_comp@GLIBC_2.2.5 2.2.5 + re_compile_fastmap@GLIBC_2.2.5 2.2.5 + re_compile_pattern@GLIBC_2.2.5 2.2.5 + re_exec@GLIBC_2.2.5 2.2.5 + re_match@GLIBC_2.2.5 2.2.5 + re_match_2@GLIBC_2.2.5 2.2.5 + re_max_failures@GLIBC_2.2.5 2.2.5 + re_search@GLIBC_2.2.5 2.2.5 + re_search_2@GLIBC_2.2.5 2.2.5 + re_set_registers@GLIBC_2.2.5 2.2.5 + re_set_syntax@GLIBC_2.2.5 2.2.5 + re_syntax_options@GLIBC_2.2.5 2.2.5 + read@GLIBC_2.2.5 2.2.5 + readahead@GLIBC_2.3 2.3 + readdir64@GLIBC_2.2.5 2.2.5 + readdir64_r@GLIBC_2.2.5 2.2.5 + readdir@GLIBC_2.2.5 2.2.5 + readdir_r@GLIBC_2.2.5 2.2.5 + readlink@GLIBC_2.2.5 2.2.5 + readlinkat@GLIBC_2.4 2.4 + readv@GLIBC_2.2.5 2.2.5 + realloc@GLIBC_2.2.5 2.2.5 + realpath@GLIBC_2.2.5 2.2.5 + realpath@GLIBC_2.3 2.3 + reboot@GLIBC_2.2.5 2.2.5 + recv@GLIBC_2.2.5 2.2.5 + recvfrom@GLIBC_2.2.5 2.2.5 + recvmsg@GLIBC_2.2.5 2.2.5 + regcomp@GLIBC_2.2.5 2.2.5 + regerror@GLIBC_2.2.5 2.2.5 + regexec@GLIBC_2.2.5 2.2.5 + regexec@GLIBC_2.3.4 2.3.4 + regfree@GLIBC_2.2.5 2.2.5 + register_printf_function@GLIBC_2.2.5 2.2.5 + registerrpc@GLIBC_2.2.5 2.2.5 + remap_file_pages@GLIBC_2.3.3 2.3.3 + remove@GLIBC_2.2.5 2.2.5 + removexattr@GLIBC_2.3 2.3 + remque@GLIBC_2.2.5 2.2.5 + rename@GLIBC_2.2.5 2.2.5 + renameat@GLIBC_2.4 2.4 + revoke@GLIBC_2.2.5 2.2.5 + rewind@GLIBC_2.2.5 2.2.5 + rewinddir@GLIBC_2.2.5 2.2.5 + rexec@GLIBC_2.2.5 2.2.5 + rexec_af@GLIBC_2.2.5 2.2.5 + rexecoptions@GLIBC_2.2.5 2.2.5 + rindex@GLIBC_2.2.5 2.2.5 + rmdir@GLIBC_2.2.5 2.2.5 + rpc_createerr@GLIBC_2.2.5 2.2.5 + rpmatch@GLIBC_2.2.5 2.2.5 + rresvport@GLIBC_2.2.5 2.2.5 + rresvport_af@GLIBC_2.2.5 2.2.5 + rtime@GLIBC_2.2.5 2.2.5 + ruserok@GLIBC_2.2.5 2.2.5 + ruserok_af@GLIBC_2.2.5 2.2.5 + ruserpass@GLIBC_2.2.5 2.2.5 + sbrk@GLIBC_2.2.5 2.2.5 + scalbn@GLIBC_2.2.5 2.2.5 + scalbnf@GLIBC_2.2.5 2.2.5 + scalbnl@GLIBC_2.2.5 2.2.5 + scandir64@GLIBC_2.2.5 2.2.5 + scandir@GLIBC_2.2.5 2.2.5 + scanf@GLIBC_2.2.5 2.2.5 + sched_get_priority_max@GLIBC_2.2.5 2.2.5 + sched_get_priority_min@GLIBC_2.2.5 2.2.5 + sched_getaffinity@GLIBC_2.3.3 2.3.3 + sched_getaffinity@GLIBC_2.3.4 2.3.4 + sched_getcpu@GLIBC_2.6 2.6 + sched_getparam@GLIBC_2.2.5 2.2.5 + sched_getscheduler@GLIBC_2.2.5 2.2.5 + sched_rr_get_interval@GLIBC_2.2.5 2.2.5 + sched_setaffinity@GLIBC_2.3.3 2.3.3 + sched_setaffinity@GLIBC_2.3.4 2.3.4 + sched_setparam@GLIBC_2.2.5 2.2.5 + sched_setscheduler@GLIBC_2.2.5 2.2.5 + sched_yield@GLIBC_2.2.5 2.2.5 + seed48@GLIBC_2.2.5 2.2.5 + seed48_r@GLIBC_2.2.5 2.2.5 + seekdir@GLIBC_2.2.5 2.2.5 + select@GLIBC_2.2.5 2.2.5 + semctl@GLIBC_2.2.5 2.2.5 + semget@GLIBC_2.2.5 2.2.5 + semop@GLIBC_2.2.5 2.2.5 + semtimedop@GLIBC_2.3.3 2.3.3 + send@GLIBC_2.2.5 2.2.5 + sendfile64@GLIBC_2.3 2.3 + sendfile@GLIBC_2.2.5 2.2.5 + sendmsg@GLIBC_2.2.5 2.2.5 + sendto@GLIBC_2.2.5 2.2.5 + setaliasent@GLIBC_2.2.5 2.2.5 + setbuf@GLIBC_2.2.5 2.2.5 + setbuffer@GLIBC_2.2.5 2.2.5 + setcontext@GLIBC_2.2.5 2.2.5 + setdomainname@GLIBC_2.2.5 2.2.5 + setegid@GLIBC_2.2.5 2.2.5 + setenv@GLIBC_2.2.5 2.2.5 + seteuid@GLIBC_2.2.5 2.2.5 + setfsent@GLIBC_2.2.5 2.2.5 + setfsgid@GLIBC_2.2.5 2.2.5 + setfsuid@GLIBC_2.2.5 2.2.5 + setgid@GLIBC_2.2.5 2.2.5 + setgrent@GLIBC_2.2.5 2.2.5 + setgroups@GLIBC_2.2.5 2.2.5 + sethostent@GLIBC_2.2.5 2.2.5 + sethostid@GLIBC_2.2.5 2.2.5 + sethostname@GLIBC_2.2.5 2.2.5 + setipv4sourcefilter@GLIBC_2.3.4 2.3.4 + setitimer@GLIBC_2.2.5 2.2.5 + setjmp@GLIBC_2.2.5 2.2.5 + setlinebuf@GLIBC_2.2.5 2.2.5 + setlocale@GLIBC_2.2.5 2.2.5 + setlogin@GLIBC_2.2.5 2.2.5 + setlogmask@GLIBC_2.2.5 2.2.5 + setmntent@GLIBC_2.2.5 2.2.5 + setnetent@GLIBC_2.2.5 2.2.5 + setnetgrent@GLIBC_2.2.5 2.2.5 + setpgid@GLIBC_2.2.5 2.2.5 + setpgrp@GLIBC_2.2.5 2.2.5 + setpriority@GLIBC_2.2.5 2.2.5 + setprotoent@GLIBC_2.2.5 2.2.5 + setpwent@GLIBC_2.2.5 2.2.5 + setregid@GLIBC_2.2.5 2.2.5 + setresgid@GLIBC_2.2.5 2.2.5 + setresuid@GLIBC_2.2.5 2.2.5 + setreuid@GLIBC_2.2.5 2.2.5 + setrlimit64@GLIBC_2.2.5 2.2.5 + setrlimit@GLIBC_2.2.5 2.2.5 + setrpcent@GLIBC_2.2.5 2.2.5 + setservent@GLIBC_2.2.5 2.2.5 + setsid@GLIBC_2.2.5 2.2.5 + setsockopt@GLIBC_2.2.5 2.2.5 + setsourcefilter@GLIBC_2.3.4 2.3.4 + setspent@GLIBC_2.2.5 2.2.5 + setstate@GLIBC_2.2.5 2.2.5 + setstate_r@GLIBC_2.2.5 2.2.5 + settimeofday@GLIBC_2.2.5 2.2.5 + setttyent@GLIBC_2.2.5 2.2.5 + setuid@GLIBC_2.2.5 2.2.5 + setusershell@GLIBC_2.2.5 2.2.5 + setutent@GLIBC_2.2.5 2.2.5 + setutxent@GLIBC_2.2.5 2.2.5 + setvbuf@GLIBC_2.2.5 2.2.5 + setxattr@GLIBC_2.3 2.3 + sgetspent@GLIBC_2.2.5 2.2.5 + sgetspent_r@GLIBC_2.2.5 2.2.5 + shmat@GLIBC_2.2.5 2.2.5 + shmctl@GLIBC_2.2.5 2.2.5 + shmdt@GLIBC_2.2.5 2.2.5 + shmget@GLIBC_2.2.5 2.2.5 + shutdown@GLIBC_2.2.5 2.2.5 + sigaction@GLIBC_2.2.5 2.2.5 + sigaddset@GLIBC_2.2.5 2.2.5 + sigaltstack@GLIBC_2.2.5 2.2.5 + sigandset@GLIBC_2.2.5 2.2.5 + sigblock@GLIBC_2.2.5 2.2.5 + sigdelset@GLIBC_2.2.5 2.2.5 + sigemptyset@GLIBC_2.2.5 2.2.5 + sigfillset@GLIBC_2.2.5 2.2.5 + siggetmask@GLIBC_2.2.5 2.2.5 + sighold@GLIBC_2.2.5 2.2.5 + sigignore@GLIBC_2.2.5 2.2.5 + siginterrupt@GLIBC_2.2.5 2.2.5 + sigisemptyset@GLIBC_2.2.5 2.2.5 + sigismember@GLIBC_2.2.5 2.2.5 + siglongjmp@GLIBC_2.2.5 2.2.5 + signal@GLIBC_2.2.5 2.2.5 + signalfd@GLIBC_2.7 2.7 + sigorset@GLIBC_2.2.5 2.2.5 + sigpause@GLIBC_2.2.5 2.2.5 + sigpending@GLIBC_2.2.5 2.2.5 + sigprocmask@GLIBC_2.2.5 2.2.5 + sigqueue@GLIBC_2.2.5 2.2.5 + sigrelse@GLIBC_2.2.5 2.2.5 + sigreturn@GLIBC_2.2.5 2.2.5 + sigset@GLIBC_2.2.5 2.2.5 + sigsetmask@GLIBC_2.2.5 2.2.5 + sigstack@GLIBC_2.2.5 2.2.5 + sigsuspend@GLIBC_2.2.5 2.2.5 + sigtimedwait@GLIBC_2.2.5 2.2.5 + sigvec@GLIBC_2.2.5 2.2.5 + sigwait@GLIBC_2.2.5 2.2.5 + sigwaitinfo@GLIBC_2.2.5 2.2.5 + sleep@GLIBC_2.2.5 2.2.5 + snprintf@GLIBC_2.2.5 2.2.5 + sockatmark@GLIBC_2.2.5 2.2.5 + socket@GLIBC_2.2.5 2.2.5 + socketpair@GLIBC_2.2.5 2.2.5 + splice@GLIBC_2.5 2.5 + sprintf@GLIBC_2.2.5 2.2.5 + sprofil@GLIBC_2.2.5 2.2.5 + srand48@GLIBC_2.2.5 2.2.5 + srand48_r@GLIBC_2.2.5 2.2.5 + srand@GLIBC_2.2.5 2.2.5 + srandom@GLIBC_2.2.5 2.2.5 + srandom_r@GLIBC_2.2.5 2.2.5 + sscanf@GLIBC_2.2.5 2.2.5 + ssignal@GLIBC_2.2.5 2.2.5 + sstk@GLIBC_2.2.5 2.2.5 + statfs64@GLIBC_2.2.5 2.2.5 + statfs@GLIBC_2.2.5 2.2.5 + statvfs64@GLIBC_2.2.5 2.2.5 + statvfs@GLIBC_2.2.5 2.2.5 + stderr@GLIBC_2.2.5 2.2.5 + stdin@GLIBC_2.2.5 2.2.5 + stdout@GLIBC_2.2.5 2.2.5 + step@GLIBC_2.2.5 2.2.5 + stime@GLIBC_2.2.5 2.2.5 + stpcpy@GLIBC_2.2.5 2.2.5 + stpncpy@GLIBC_2.2.5 2.2.5 + strcasecmp@GLIBC_2.2.5 2.2.5 + strcasecmp_l@GLIBC_2.3 2.3 + strcasestr@GLIBC_2.2.5 2.2.5 + strcat@GLIBC_2.2.5 2.2.5 + strchr@GLIBC_2.2.5 2.2.5 + strchrnul@GLIBC_2.2.5 2.2.5 + strcmp@GLIBC_2.2.5 2.2.5 + strcoll@GLIBC_2.2.5 2.2.5 + strcoll_l@GLIBC_2.3 2.3 + strcpy@GLIBC_2.2.5 2.2.5 + strcspn@GLIBC_2.2.5 2.2.5 + strdup@GLIBC_2.2.5 2.2.5 + strerror@GLIBC_2.2.5 2.2.5 + strerror_l@GLIBC_2.6 2.6 + strerror_r@GLIBC_2.2.5 2.2.5 + strfmon@GLIBC_2.2.5 2.2.5 + strfmon_l@GLIBC_2.3 2.3 + strfry@GLIBC_2.2.5 2.2.5 + strftime@GLIBC_2.2.5 2.2.5 + strftime_l@GLIBC_2.3 2.3 + strlen@GLIBC_2.2.5 2.2.5 + strncasecmp@GLIBC_2.2.5 2.2.5 + strncasecmp_l@GLIBC_2.3 2.3 + strncat@GLIBC_2.2.5 2.2.5 + strncmp@GLIBC_2.2.5 2.2.5 + strncpy@GLIBC_2.2.5 2.2.5 + strndup@GLIBC_2.2.5 2.2.5 + strnlen@GLIBC_2.2.5 2.2.5 + strpbrk@GLIBC_2.2.5 2.2.5 + strptime@GLIBC_2.2.5 2.2.5 + strptime_l@GLIBC_2.3.2 2.3.2 + strrchr@GLIBC_2.2.5 2.2.5 + strsep@GLIBC_2.2.5 2.2.5 + strsignal@GLIBC_2.2.5 2.2.5 + strspn@GLIBC_2.2.5 2.2.5 + strstr@GLIBC_2.2.5 2.2.5 + strtod@GLIBC_2.2.5 2.2.5 + strtod_l@GLIBC_2.3 2.3 + strtof@GLIBC_2.2.5 2.2.5 + strtof_l@GLIBC_2.3 2.3 + strtoimax@GLIBC_2.2.5 2.2.5 + strtok@GLIBC_2.2.5 2.2.5 + strtok_r@GLIBC_2.2.5 2.2.5 + strtol@GLIBC_2.2.5 2.2.5 + strtol_l@GLIBC_2.3 2.3 + strtold@GLIBC_2.2.5 2.2.5 + strtold_l@GLIBC_2.3 2.3 + strtoll@GLIBC_2.2.5 2.2.5 + strtoll_l@GLIBC_2.3.3 2.3.3 + strtoq@GLIBC_2.2.5 2.2.5 + strtoul@GLIBC_2.2.5 2.2.5 + strtoul_l@GLIBC_2.3 2.3 + strtoull@GLIBC_2.2.5 2.2.5 + strtoull_l@GLIBC_2.3.3 2.3.3 + strtoumax@GLIBC_2.2.5 2.2.5 + strtouq@GLIBC_2.2.5 2.2.5 + strverscmp@GLIBC_2.2.5 2.2.5 + strxfrm@GLIBC_2.2.5 2.2.5 + strxfrm_l@GLIBC_2.3 2.3 + stty@GLIBC_2.2.5 2.2.5 + svc_exit@GLIBC_2.2.5 2.2.5 + svc_fdset@GLIBC_2.2.5 2.2.5 + svc_getreq@GLIBC_2.2.5 2.2.5 + svc_getreq_common@GLIBC_2.2.5 2.2.5 + svc_getreq_poll@GLIBC_2.2.5 2.2.5 + svc_getreqset@GLIBC_2.2.5 2.2.5 + svc_max_pollfd@GLIBC_2.2.5 2.2.5 + svc_pollfd@GLIBC_2.2.5 2.2.5 + svc_register@GLIBC_2.2.5 2.2.5 + svc_run@GLIBC_2.2.5 2.2.5 + svc_sendreply@GLIBC_2.2.5 2.2.5 + svc_unregister@GLIBC_2.2.5 2.2.5 + svcauthdes_stats@GLIBC_2.2.5 2.2.5 + svcerr_auth@GLIBC_2.2.5 2.2.5 + svcerr_decode@GLIBC_2.2.5 2.2.5 + svcerr_noproc@GLIBC_2.2.5 2.2.5 + svcerr_noprog@GLIBC_2.2.5 2.2.5 + svcerr_progvers@GLIBC_2.2.5 2.2.5 + svcerr_systemerr@GLIBC_2.2.5 2.2.5 + svcerr_weakauth@GLIBC_2.2.5 2.2.5 + svcfd_create@GLIBC_2.2.5 2.2.5 + svcraw_create@GLIBC_2.2.5 2.2.5 + svctcp_create@GLIBC_2.2.5 2.2.5 + svcudp_bufcreate@GLIBC_2.2.5 2.2.5 + svcudp_create@GLIBC_2.2.5 2.2.5 + svcudp_enablecache@GLIBC_2.2.5 2.2.5 + svcunix_create@GLIBC_2.2.5 2.2.5 + svcunixfd_create@GLIBC_2.2.5 2.2.5 + swab@GLIBC_2.2.5 2.2.5 + swapcontext@GLIBC_2.2.5 2.2.5 + swapoff@GLIBC_2.2.5 2.2.5 + swapon@GLIBC_2.2.5 2.2.5 + swprintf@GLIBC_2.2.5 2.2.5 + swscanf@GLIBC_2.2.5 2.2.5 + symlink@GLIBC_2.2.5 2.2.5 + symlinkat@GLIBC_2.4 2.4 + sync@GLIBC_2.2.5 2.2.5 + sync_file_range@GLIBC_2.6 2.6 + sys_errlist@GLIBC_2.2.5 2.2.5 + sys_errlist@GLIBC_2.3 2.3 + sys_errlist@GLIBC_2.4 2.4 + sys_nerr@GLIBC_2.2.5 2.2.5 + sys_nerr@GLIBC_2.3 2.3 + sys_nerr@GLIBC_2.4 2.4 + sys_sigabbrev@GLIBC_2.2.5 2.2.5 + sys_sigabbrev@GLIBC_2.3.3 2.3.3 + sys_siglist@GLIBC_2.2.5 2.2.5 + sys_siglist@GLIBC_2.3.3 2.3.3 + syscall@GLIBC_2.2.5 2.2.5 + sysconf@GLIBC_2.2.5 2.2.5 + sysctl@GLIBC_2.2.5 2.2.5 + sysinfo@GLIBC_2.2.5 2.2.5 + syslog@GLIBC_2.2.5 2.2.5 + system@GLIBC_2.2.5 2.2.5 + sysv_signal@GLIBC_2.2.5 2.2.5 + tcdrain@GLIBC_2.2.5 2.2.5 + tcflow@GLIBC_2.2.5 2.2.5 + tcflush@GLIBC_2.2.5 2.2.5 + tcgetattr@GLIBC_2.2.5 2.2.5 + tcgetpgrp@GLIBC_2.2.5 2.2.5 + tcgetsid@GLIBC_2.2.5 2.2.5 + tcsendbreak@GLIBC_2.2.5 2.2.5 + tcsetattr@GLIBC_2.2.5 2.2.5 + tcsetpgrp@GLIBC_2.2.5 2.2.5 + tdelete@GLIBC_2.2.5 2.2.5 + tdestroy@GLIBC_2.2.5 2.2.5 + tee@GLIBC_2.5 2.5 + telldir@GLIBC_2.2.5 2.2.5 + tempnam@GLIBC_2.2.5 2.2.5 + textdomain@GLIBC_2.2.5 2.2.5 + tfind@GLIBC_2.2.5 2.2.5 + time@GLIBC_2.2.5 2.2.5 + timegm@GLIBC_2.2.5 2.2.5 + timelocal@GLIBC_2.2.5 2.2.5 + times@GLIBC_2.2.5 2.2.5 + timezone@GLIBC_2.2.5 2.2.5 + tmpfile64@GLIBC_2.2.5 2.2.5 + tmpfile@GLIBC_2.2.5 2.2.5 + tmpnam@GLIBC_2.2.5 2.2.5 + tmpnam_r@GLIBC_2.2.5 2.2.5 + toascii@GLIBC_2.2.5 2.2.5 + tolower@GLIBC_2.2.5 2.2.5 + tolower_l@GLIBC_2.3 2.3 + toupper@GLIBC_2.2.5 2.2.5 + toupper_l@GLIBC_2.3 2.3 + towctrans@GLIBC_2.2.5 2.2.5 + towctrans_l@GLIBC_2.3 2.3 + towlower@GLIBC_2.2.5 2.2.5 + towlower_l@GLIBC_2.3 2.3 + towupper@GLIBC_2.2.5 2.2.5 + towupper_l@GLIBC_2.3 2.3 + tr_break@GLIBC_2.2.5 2.2.5 + truncate64@GLIBC_2.2.5 2.2.5 + truncate@GLIBC_2.2.5 2.2.5 + tsearch@GLIBC_2.2.5 2.2.5 + ttyname@GLIBC_2.2.5 2.2.5 + ttyname_r@GLIBC_2.2.5 2.2.5 + ttyslot@GLIBC_2.2.5 2.2.5 + twalk@GLIBC_2.2.5 2.2.5 + tzname@GLIBC_2.2.5 2.2.5 + tzset@GLIBC_2.2.5 2.2.5 + ualarm@GLIBC_2.2.5 2.2.5 + ulckpwdf@GLIBC_2.2.5 2.2.5 + ulimit@GLIBC_2.2.5 2.2.5 + umask@GLIBC_2.2.5 2.2.5 + umount2@GLIBC_2.2.5 2.2.5 + umount@GLIBC_2.2.5 2.2.5 + uname@GLIBC_2.2.5 2.2.5 + ungetc@GLIBC_2.2.5 2.2.5 + ungetwc@GLIBC_2.2.5 2.2.5 + unlink@GLIBC_2.2.5 2.2.5 + unlinkat@GLIBC_2.4 2.4 + unlockpt@GLIBC_2.2.5 2.2.5 + unsetenv@GLIBC_2.2.5 2.2.5 + unshare@GLIBC_2.4 2.4 + updwtmp@GLIBC_2.2.5 2.2.5 + updwtmpx@GLIBC_2.2.5 2.2.5 + uselib@GLIBC_2.2.5 2.2.5 + uselocale@GLIBC_2.3 2.3 + user2netname@GLIBC_2.2.5 2.2.5 + usleep@GLIBC_2.2.5 2.2.5 + ustat@GLIBC_2.2.5 2.2.5 + utime@GLIBC_2.2.5 2.2.5 + utimensat@GLIBC_2.6 2.6 + utimes@GLIBC_2.2.5 2.2.5 + utmpname@GLIBC_2.2.5 2.2.5 + utmpxname@GLIBC_2.2.5 2.2.5 + valloc@GLIBC_2.2.5 2.2.5 + vasprintf@GLIBC_2.2.5 2.2.5 + vdprintf@GLIBC_2.2.5 2.2.5 + verr@GLIBC_2.2.5 2.2.5 + verrx@GLIBC_2.2.5 2.2.5 + versionsort64@GLIBC_2.2.5 2.2.5 + versionsort@GLIBC_2.2.5 2.2.5 + vfork@GLIBC_2.2.5 2.2.5 + vfprintf@GLIBC_2.2.5 2.2.5 + vfscanf@GLIBC_2.2.5 2.2.5 + vfwprintf@GLIBC_2.2.5 2.2.5 + vfwscanf@GLIBC_2.2.5 2.2.5 + vhangup@GLIBC_2.2.5 2.2.5 + vlimit@GLIBC_2.2.5 2.2.5 + vmsplice@GLIBC_2.5 2.5 + vprintf@GLIBC_2.2.5 2.2.5 + vscanf@GLIBC_2.2.5 2.2.5 + vsnprintf@GLIBC_2.2.5 2.2.5 + vsprintf@GLIBC_2.2.5 2.2.5 + vsscanf@GLIBC_2.2.5 2.2.5 + vswprintf@GLIBC_2.2.5 2.2.5 + vswscanf@GLIBC_2.2.5 2.2.5 + vsyslog@GLIBC_2.2.5 2.2.5 + vtimes@GLIBC_2.2.5 2.2.5 + vwarn@GLIBC_2.2.5 2.2.5 + vwarnx@GLIBC_2.2.5 2.2.5 + vwprintf@GLIBC_2.2.5 2.2.5 + vwscanf@GLIBC_2.2.5 2.2.5 + wait3@GLIBC_2.2.5 2.2.5 + wait4@GLIBC_2.2.5 2.2.5 + wait@GLIBC_2.2.5 2.2.5 + waitid@GLIBC_2.2.5 2.2.5 + waitpid@GLIBC_2.2.5 2.2.5 + warn@GLIBC_2.2.5 2.2.5 + warnx@GLIBC_2.2.5 2.2.5 + wcpcpy@GLIBC_2.2.5 2.2.5 + wcpncpy@GLIBC_2.2.5 2.2.5 + wcrtomb@GLIBC_2.2.5 2.2.5 + wcscasecmp@GLIBC_2.2.5 2.2.5 + wcscasecmp_l@GLIBC_2.3 2.3 + wcscat@GLIBC_2.2.5 2.2.5 + wcschr@GLIBC_2.2.5 2.2.5 + wcschrnul@GLIBC_2.2.5 2.2.5 + wcscmp@GLIBC_2.2.5 2.2.5 + wcscoll@GLIBC_2.2.5 2.2.5 + wcscoll_l@GLIBC_2.3 2.3 + wcscpy@GLIBC_2.2.5 2.2.5 + wcscspn@GLIBC_2.2.5 2.2.5 + wcsdup@GLIBC_2.2.5 2.2.5 + wcsftime@GLIBC_2.2.5 2.2.5 + wcsftime_l@GLIBC_2.3 2.3 + wcslen@GLIBC_2.2.5 2.2.5 + wcsncasecmp@GLIBC_2.2.5 2.2.5 + wcsncasecmp_l@GLIBC_2.3 2.3 + wcsncat@GLIBC_2.2.5 2.2.5 + wcsncmp@GLIBC_2.2.5 2.2.5 + wcsncpy@GLIBC_2.2.5 2.2.5 + wcsnlen@GLIBC_2.2.5 2.2.5 + wcsnrtombs@GLIBC_2.2.5 2.2.5 + wcspbrk@GLIBC_2.2.5 2.2.5 + wcsrchr@GLIBC_2.2.5 2.2.5 + wcsrtombs@GLIBC_2.2.5 2.2.5 + wcsspn@GLIBC_2.2.5 2.2.5 + wcsstr@GLIBC_2.2.5 2.2.5 + wcstod@GLIBC_2.2.5 2.2.5 + wcstod_l@GLIBC_2.3 2.3 + wcstof@GLIBC_2.2.5 2.2.5 + wcstof_l@GLIBC_2.3 2.3 + wcstoimax@GLIBC_2.2.5 2.2.5 + wcstok@GLIBC_2.2.5 2.2.5 + wcstol@GLIBC_2.2.5 2.2.5 + wcstol_l@GLIBC_2.3 2.3 + wcstold@GLIBC_2.2.5 2.2.5 + wcstold_l@GLIBC_2.3 2.3 + wcstoll@GLIBC_2.2.5 2.2.5 + wcstoll_l@GLIBC_2.3 2.3 + wcstombs@GLIBC_2.2.5 2.2.5 + wcstoq@GLIBC_2.2.5 2.2.5 + wcstoul@GLIBC_2.2.5 2.2.5 + wcstoul_l@GLIBC_2.3 2.3 + wcstoull@GLIBC_2.2.5 2.2.5 + wcstoull_l@GLIBC_2.3 2.3 + wcstoumax@GLIBC_2.2.5 2.2.5 + wcstouq@GLIBC_2.2.5 2.2.5 + wcswcs@GLIBC_2.2.5 2.2.5 + wcswidth@GLIBC_2.2.5 2.2.5 + wcsxfrm@GLIBC_2.2.5 2.2.5 + wcsxfrm_l@GLIBC_2.3 2.3 + wctob@GLIBC_2.2.5 2.2.5 + wctomb@GLIBC_2.2.5 2.2.5 + wctrans@GLIBC_2.2.5 2.2.5 + wctrans_l@GLIBC_2.3 2.3 + wctype@GLIBC_2.2.5 2.2.5 + wctype_l@GLIBC_2.3 2.3 + wcwidth@GLIBC_2.2.5 2.2.5 + wmemchr@GLIBC_2.2.5 2.2.5 + wmemcmp@GLIBC_2.2.5 2.2.5 + wmemcpy@GLIBC_2.2.5 2.2.5 + wmemmove@GLIBC_2.2.5 2.2.5 + wmempcpy@GLIBC_2.2.5 2.2.5 + wmemset@GLIBC_2.2.5 2.2.5 + wordexp@GLIBC_2.2.5 2.2.5 + wordfree@GLIBC_2.2.5 2.2.5 + wprintf@GLIBC_2.2.5 2.2.5 + write@GLIBC_2.2.5 2.2.5 + writev@GLIBC_2.2.5 2.2.5 + wscanf@GLIBC_2.2.5 2.2.5 + xdecrypt@GLIBC_2.2.5 2.2.5 + xdr_accepted_reply@GLIBC_2.2.5 2.2.5 + xdr_array@GLIBC_2.2.5 2.2.5 + xdr_authdes_cred@GLIBC_2.2.5 2.2.5 + xdr_authdes_verf@GLIBC_2.2.5 2.2.5 + xdr_authunix_parms@GLIBC_2.2.5 2.2.5 + xdr_bool@GLIBC_2.2.5 2.2.5 + xdr_bytes@GLIBC_2.2.5 2.2.5 + xdr_callhdr@GLIBC_2.2.5 2.2.5 + xdr_callmsg@GLIBC_2.2.5 2.2.5 + xdr_char@GLIBC_2.2.5 2.2.5 + xdr_cryptkeyarg2@GLIBC_2.2.5 2.2.5 + xdr_cryptkeyarg@GLIBC_2.2.5 2.2.5 + xdr_cryptkeyres@GLIBC_2.2.5 2.2.5 + xdr_des_block@GLIBC_2.2.5 2.2.5 + xdr_double@GLIBC_2.2.5 2.2.5 + xdr_enum@GLIBC_2.2.5 2.2.5 + xdr_float@GLIBC_2.2.5 2.2.5 + xdr_free@GLIBC_2.2.5 2.2.5 + xdr_getcredres@GLIBC_2.2.5 2.2.5 + xdr_hyper@GLIBC_2.2.5 2.2.5 + xdr_int16_t@GLIBC_2.2.5 2.2.5 + xdr_int32_t@GLIBC_2.2.5 2.2.5 + xdr_int64_t@GLIBC_2.2.5 2.2.5 + xdr_int8_t@GLIBC_2.2.5 2.2.5 + xdr_int@GLIBC_2.2.5 2.2.5 + xdr_key_netstarg@GLIBC_2.2.5 2.2.5 + xdr_key_netstres@GLIBC_2.2.5 2.2.5 + xdr_keybuf@GLIBC_2.2.5 2.2.5 + xdr_keystatus@GLIBC_2.2.5 2.2.5 + xdr_long@GLIBC_2.2.5 2.2.5 + xdr_longlong_t@GLIBC_2.2.5 2.2.5 + xdr_netnamestr@GLIBC_2.2.5 2.2.5 + xdr_netobj@GLIBC_2.2.5 2.2.5 + xdr_opaque@GLIBC_2.2.5 2.2.5 + xdr_opaque_auth@GLIBC_2.2.5 2.2.5 + xdr_pmap@GLIBC_2.2.5 2.2.5 + xdr_pmaplist@GLIBC_2.2.5 2.2.5 + xdr_pointer@GLIBC_2.2.5 2.2.5 + xdr_quad_t@GLIBC_2.3.4 2.3.4 + xdr_reference@GLIBC_2.2.5 2.2.5 + xdr_rejected_reply@GLIBC_2.2.5 2.2.5 + xdr_replymsg@GLIBC_2.2.5 2.2.5 + xdr_rmtcall_args@GLIBC_2.2.5 2.2.5 + xdr_rmtcallres@GLIBC_2.2.5 2.2.5 + xdr_short@GLIBC_2.2.5 2.2.5 + xdr_sizeof@GLIBC_2.2.5 2.2.5 + xdr_string@GLIBC_2.2.5 2.2.5 + xdr_u_char@GLIBC_2.2.5 2.2.5 + xdr_u_hyper@GLIBC_2.2.5 2.2.5 + xdr_u_int@GLIBC_2.2.5 2.2.5 + xdr_u_long@GLIBC_2.2.5 2.2.5 + xdr_u_longlong_t@GLIBC_2.2.5 2.2.5 + xdr_u_quad_t@GLIBC_2.3.4 2.3.4 + xdr_u_short@GLIBC_2.2.5 2.2.5 + xdr_uint16_t@GLIBC_2.2.5 2.2.5 + xdr_uint32_t@GLIBC_2.2.5 2.2.5 + xdr_uint64_t@GLIBC_2.2.5 2.2.5 + xdr_uint8_t@GLIBC_2.2.5 2.2.5 + xdr_union@GLIBC_2.2.5 2.2.5 + xdr_unixcred@GLIBC_2.2.5 2.2.5 + xdr_vector@GLIBC_2.2.5 2.2.5 + xdr_void@GLIBC_2.2.5 2.2.5 + xdr_wrapstring@GLIBC_2.2.5 2.2.5 + xdrmem_create@GLIBC_2.2.5 2.2.5 + xdrrec_create@GLIBC_2.2.5 2.2.5 + xdrrec_endofrecord@GLIBC_2.2.5 2.2.5 + xdrrec_eof@GLIBC_2.2.5 2.2.5 + xdrrec_skiprecord@GLIBC_2.2.5 2.2.5 + xdrstdio_create@GLIBC_2.2.5 2.2.5 + xencrypt@GLIBC_2.2.5 2.2.5 + xprt_register@GLIBC_2.2.5 2.2.5 + xprt_unregister@GLIBC_2.2.5 2.2.5 +libcidn.so.1 libc6 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + idna_to_ascii_lz@GLIBC_PRIVATE 2.7 + idna_to_unicode_lzlz@GLIBC_PRIVATE 2.7 +libcrypt.so.1 libc6 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + crypt@GLIBC_2.2.5 2.2.5 + crypt_r@GLIBC_2.2.5 2.2.5 + encrypt@GLIBC_2.2.5 2.2.5 + encrypt_r@GLIBC_2.2.5 2.2.5 + fcrypt@GLIBC_2.2.5 2.2.5 + setkey@GLIBC_2.2.5 2.2.5 + setkey_r@GLIBC_2.2.5 2.2.5 +libdl.so.2 libc6 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + GLIBC_2.3.3@GLIBC_2.3.3 2.3.3 + GLIBC_2.3.4@GLIBC_2.3.4 2.3.4 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _dlfcn_hook@GLIBC_PRIVATE 2.7 + dladdr1@GLIBC_2.3.3 2.3.3 + dladdr@GLIBC_2.2.5 2.2.5 + dlclose@GLIBC_2.2.5 2.2.5 + dlerror@GLIBC_2.2.5 2.2.5 + dlinfo@GLIBC_2.3.3 2.3.3 + dlmopen@GLIBC_2.3.4 2.3.4 + dlopen@GLIBC_2.2.5 2.2.5 + dlsym@GLIBC_2.2.5 2.2.5 + dlvsym@GLIBC_2.2.5 2.2.5 +libm.so.6 libc6 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + GLIBC_2.4@GLIBC_2.4 2.4 + _LIB_VERSION@GLIBC_2.2.5 2.2.5 + __clog10@GLIBC_2.2.5 2.2.5 + __clog10f@GLIBC_2.2.5 2.2.5 + __clog10l@GLIBC_2.2.5 2.2.5 + __finite@GLIBC_2.2.5 2.2.5 + __finitef@GLIBC_2.2.5 2.2.5 + __finitel@GLIBC_2.2.5 2.2.5 + __fpclassify@GLIBC_2.2.5 2.2.5 + __fpclassifyf@GLIBC_2.2.5 2.2.5 + __fpclassifyl@GLIBC_2.2.5 2.2.5 + __signbit@GLIBC_2.2.5 2.2.5 + __signbitf@GLIBC_2.2.5 2.2.5 + __signbitl@GLIBC_2.2.5 2.2.5 + acos@GLIBC_2.2.5 2.2.5 + acosf@GLIBC_2.2.5 2.2.5 + acosh@GLIBC_2.2.5 2.2.5 + acoshf@GLIBC_2.2.5 2.2.5 + acoshl@GLIBC_2.2.5 2.2.5 + acosl@GLIBC_2.2.5 2.2.5 + asin@GLIBC_2.2.5 2.2.5 + asinf@GLIBC_2.2.5 2.2.5 + asinh@GLIBC_2.2.5 2.2.5 + asinhf@GLIBC_2.2.5 2.2.5 + asinhl@GLIBC_2.2.5 2.2.5 + asinl@GLIBC_2.2.5 2.2.5 + atan2@GLIBC_2.2.5 2.2.5 + atan2f@GLIBC_2.2.5 2.2.5 + atan2l@GLIBC_2.2.5 2.2.5 + atan@GLIBC_2.2.5 2.2.5 + atanf@GLIBC_2.2.5 2.2.5 + atanh@GLIBC_2.2.5 2.2.5 + atanhf@GLIBC_2.2.5 2.2.5 + atanhl@GLIBC_2.2.5 2.2.5 + atanl@GLIBC_2.2.5 2.2.5 + cabs@GLIBC_2.2.5 2.2.5 + cabsf@GLIBC_2.2.5 2.2.5 + cabsl@GLIBC_2.2.5 2.2.5 + cacos@GLIBC_2.2.5 2.2.5 + cacosf@GLIBC_2.2.5 2.2.5 + cacosh@GLIBC_2.2.5 2.2.5 + cacoshf@GLIBC_2.2.5 2.2.5 + cacoshl@GLIBC_2.2.5 2.2.5 + cacosl@GLIBC_2.2.5 2.2.5 + carg@GLIBC_2.2.5 2.2.5 + cargf@GLIBC_2.2.5 2.2.5 + cargl@GLIBC_2.2.5 2.2.5 + casin@GLIBC_2.2.5 2.2.5 + casinf@GLIBC_2.2.5 2.2.5 + casinh@GLIBC_2.2.5 2.2.5 + casinhf@GLIBC_2.2.5 2.2.5 + casinhl@GLIBC_2.2.5 2.2.5 + casinl@GLIBC_2.2.5 2.2.5 + catan@GLIBC_2.2.5 2.2.5 + catanf@GLIBC_2.2.5 2.2.5 + catanh@GLIBC_2.2.5 2.2.5 + catanhf@GLIBC_2.2.5 2.2.5 + catanhl@GLIBC_2.2.5 2.2.5 + catanl@GLIBC_2.2.5 2.2.5 + cbrt@GLIBC_2.2.5 2.2.5 + cbrtf@GLIBC_2.2.5 2.2.5 + cbrtl@GLIBC_2.2.5 2.2.5 + ccos@GLIBC_2.2.5 2.2.5 + ccosf@GLIBC_2.2.5 2.2.5 + ccosh@GLIBC_2.2.5 2.2.5 + ccoshf@GLIBC_2.2.5 2.2.5 + ccoshl@GLIBC_2.2.5 2.2.5 + ccosl@GLIBC_2.2.5 2.2.5 + ceil@GLIBC_2.2.5 2.2.5 + ceilf@GLIBC_2.2.5 2.2.5 + ceill@GLIBC_2.2.5 2.2.5 + cexp@GLIBC_2.2.5 2.2.5 + cexpf@GLIBC_2.2.5 2.2.5 + cexpl@GLIBC_2.2.5 2.2.5 + cimag@GLIBC_2.2.5 2.2.5 + cimagf@GLIBC_2.2.5 2.2.5 + cimagl@GLIBC_2.2.5 2.2.5 + clog10@GLIBC_2.2.5 2.2.5 + clog10f@GLIBC_2.2.5 2.2.5 + clog10l@GLIBC_2.2.5 2.2.5 + clog@GLIBC_2.2.5 2.2.5 + clogf@GLIBC_2.2.5 2.2.5 + clogl@GLIBC_2.2.5 2.2.5 + conj@GLIBC_2.2.5 2.2.5 + conjf@GLIBC_2.2.5 2.2.5 + conjl@GLIBC_2.2.5 2.2.5 + copysign@GLIBC_2.2.5 2.2.5 + copysignf@GLIBC_2.2.5 2.2.5 + copysignl@GLIBC_2.2.5 2.2.5 + cos@GLIBC_2.2.5 2.2.5 + cosf@GLIBC_2.2.5 2.2.5 + cosh@GLIBC_2.2.5 2.2.5 + coshf@GLIBC_2.2.5 2.2.5 + coshl@GLIBC_2.2.5 2.2.5 + cosl@GLIBC_2.2.5 2.2.5 + cpow@GLIBC_2.2.5 2.2.5 + cpowf@GLIBC_2.2.5 2.2.5 + cpowl@GLIBC_2.2.5 2.2.5 + cproj@GLIBC_2.2.5 2.2.5 + cprojf@GLIBC_2.2.5 2.2.5 + cprojl@GLIBC_2.2.5 2.2.5 + creal@GLIBC_2.2.5 2.2.5 + crealf@GLIBC_2.2.5 2.2.5 + creall@GLIBC_2.2.5 2.2.5 + csin@GLIBC_2.2.5 2.2.5 + csinf@GLIBC_2.2.5 2.2.5 + csinh@GLIBC_2.2.5 2.2.5 + csinhf@GLIBC_2.2.5 2.2.5 + csinhl@GLIBC_2.2.5 2.2.5 + csinl@GLIBC_2.2.5 2.2.5 + csqrt@GLIBC_2.2.5 2.2.5 + csqrtf@GLIBC_2.2.5 2.2.5 + csqrtl@GLIBC_2.2.5 2.2.5 + ctan@GLIBC_2.2.5 2.2.5 + ctanf@GLIBC_2.2.5 2.2.5 + ctanh@GLIBC_2.2.5 2.2.5 + ctanhf@GLIBC_2.2.5 2.2.5 + ctanhl@GLIBC_2.2.5 2.2.5 + ctanl@GLIBC_2.2.5 2.2.5 + drem@GLIBC_2.2.5 2.2.5 + dremf@GLIBC_2.2.5 2.2.5 + dreml@GLIBC_2.2.5 2.2.5 + erf@GLIBC_2.2.5 2.2.5 + erfc@GLIBC_2.2.5 2.2.5 + erfcf@GLIBC_2.2.5 2.2.5 + erfcl@GLIBC_2.2.5 2.2.5 + erff@GLIBC_2.2.5 2.2.5 + erfl@GLIBC_2.2.5 2.2.5 + exp10@GLIBC_2.2.5 2.2.5 + exp10f@GLIBC_2.2.5 2.2.5 + exp10l@GLIBC_2.2.5 2.2.5 + exp2@GLIBC_2.2.5 2.2.5 + exp2f@GLIBC_2.2.5 2.2.5 + exp2l@GLIBC_2.2.5 2.2.5 + exp@GLIBC_2.2.5 2.2.5 + expf@GLIBC_2.2.5 2.2.5 + expl@GLIBC_2.2.5 2.2.5 + expm1@GLIBC_2.2.5 2.2.5 + expm1f@GLIBC_2.2.5 2.2.5 + expm1l@GLIBC_2.2.5 2.2.5 + fabs@GLIBC_2.2.5 2.2.5 + fabsf@GLIBC_2.2.5 2.2.5 + fabsl@GLIBC_2.2.5 2.2.5 + fdim@GLIBC_2.2.5 2.2.5 + fdimf@GLIBC_2.2.5 2.2.5 + fdiml@GLIBC_2.2.5 2.2.5 + feclearexcept@GLIBC_2.2.5 2.2.5 + fedisableexcept@GLIBC_2.2.5 2.2.5 + feenableexcept@GLIBC_2.2.5 2.2.5 + fegetenv@GLIBC_2.2.5 2.2.5 + fegetexcept@GLIBC_2.2.5 2.2.5 + fegetexceptflag@GLIBC_2.2.5 2.2.5 + fegetround@GLIBC_2.2.5 2.2.5 + feholdexcept@GLIBC_2.2.5 2.2.5 + feraiseexcept@GLIBC_2.2.5 2.2.5 + fesetenv@GLIBC_2.2.5 2.2.5 + fesetexceptflag@GLIBC_2.2.5 2.2.5 + fesetround@GLIBC_2.2.5 2.2.5 + fetestexcept@GLIBC_2.2.5 2.2.5 + feupdateenv@GLIBC_2.2.5 2.2.5 + finite@GLIBC_2.2.5 2.2.5 + finitef@GLIBC_2.2.5 2.2.5 + finitel@GLIBC_2.2.5 2.2.5 + floor@GLIBC_2.2.5 2.2.5 + floorf@GLIBC_2.2.5 2.2.5 + floorl@GLIBC_2.2.5 2.2.5 + fma@GLIBC_2.2.5 2.2.5 + fmaf@GLIBC_2.2.5 2.2.5 + fmal@GLIBC_2.2.5 2.2.5 + fmax@GLIBC_2.2.5 2.2.5 + fmaxf@GLIBC_2.2.5 2.2.5 + fmaxl@GLIBC_2.2.5 2.2.5 + fmin@GLIBC_2.2.5 2.2.5 + fminf@GLIBC_2.2.5 2.2.5 + fminl@GLIBC_2.2.5 2.2.5 + fmod@GLIBC_2.2.5 2.2.5 + fmodf@GLIBC_2.2.5 2.2.5 + fmodl@GLIBC_2.2.5 2.2.5 + frexp@GLIBC_2.2.5 2.2.5 + frexpf@GLIBC_2.2.5 2.2.5 + frexpl@GLIBC_2.2.5 2.2.5 + gamma@GLIBC_2.2.5 2.2.5 + gammaf@GLIBC_2.2.5 2.2.5 + gammal@GLIBC_2.2.5 2.2.5 + hypot@GLIBC_2.2.5 2.2.5 + hypotf@GLIBC_2.2.5 2.2.5 + hypotl@GLIBC_2.2.5 2.2.5 + ilogb@GLIBC_2.2.5 2.2.5 + ilogbf@GLIBC_2.2.5 2.2.5 + ilogbl@GLIBC_2.2.5 2.2.5 + j0@GLIBC_2.2.5 2.2.5 + j0f@GLIBC_2.2.5 2.2.5 + j0l@GLIBC_2.2.5 2.2.5 + j1@GLIBC_2.2.5 2.2.5 + j1f@GLIBC_2.2.5 2.2.5 + j1l@GLIBC_2.2.5 2.2.5 + jn@GLIBC_2.2.5 2.2.5 + jnf@GLIBC_2.2.5 2.2.5 + jnl@GLIBC_2.2.5 2.2.5 + ldexp@GLIBC_2.2.5 2.2.5 + ldexpf@GLIBC_2.2.5 2.2.5 + ldexpl@GLIBC_2.2.5 2.2.5 + lgamma@GLIBC_2.2.5 2.2.5 + lgamma_r@GLIBC_2.2.5 2.2.5 + lgammaf@GLIBC_2.2.5 2.2.5 + lgammaf_r@GLIBC_2.2.5 2.2.5 + lgammal@GLIBC_2.2.5 2.2.5 + lgammal_r@GLIBC_2.2.5 2.2.5 + llrint@GLIBC_2.2.5 2.2.5 + llrintf@GLIBC_2.2.5 2.2.5 + llrintl@GLIBC_2.2.5 2.2.5 + llround@GLIBC_2.2.5 2.2.5 + llroundf@GLIBC_2.2.5 2.2.5 + llroundl@GLIBC_2.2.5 2.2.5 + log10@GLIBC_2.2.5 2.2.5 + log10f@GLIBC_2.2.5 2.2.5 + log10l@GLIBC_2.2.5 2.2.5 + log1p@GLIBC_2.2.5 2.2.5 + log1pf@GLIBC_2.2.5 2.2.5 + log1pl@GLIBC_2.2.5 2.2.5 + log2@GLIBC_2.2.5 2.2.5 + log2f@GLIBC_2.2.5 2.2.5 + log2l@GLIBC_2.2.5 2.2.5 + log@GLIBC_2.2.5 2.2.5 + logb@GLIBC_2.2.5 2.2.5 + logbf@GLIBC_2.2.5 2.2.5 + logbl@GLIBC_2.2.5 2.2.5 + logf@GLIBC_2.2.5 2.2.5 + logl@GLIBC_2.2.5 2.2.5 + lrint@GLIBC_2.2.5 2.2.5 + lrintf@GLIBC_2.2.5 2.2.5 + lrintl@GLIBC_2.2.5 2.2.5 + lround@GLIBC_2.2.5 2.2.5 + lroundf@GLIBC_2.2.5 2.2.5 + lroundl@GLIBC_2.2.5 2.2.5 + matherr@GLIBC_2.2.5 2.2.5 + modf@GLIBC_2.2.5 2.2.5 + modff@GLIBC_2.2.5 2.2.5 + modfl@GLIBC_2.2.5 2.2.5 + nan@GLIBC_2.2.5 2.2.5 + nanf@GLIBC_2.2.5 2.2.5 + nanl@GLIBC_2.2.5 2.2.5 + nearbyint@GLIBC_2.2.5 2.2.5 + nearbyintf@GLIBC_2.2.5 2.2.5 + nearbyintl@GLIBC_2.2.5 2.2.5 + nextafter@GLIBC_2.2.5 2.2.5 + nextafterf@GLIBC_2.2.5 2.2.5 + nextafterl@GLIBC_2.2.5 2.2.5 + nexttoward@GLIBC_2.2.5 2.2.5 + nexttowardf@GLIBC_2.2.5 2.2.5 + nexttowardl@GLIBC_2.2.5 2.2.5 + pow10@GLIBC_2.2.5 2.2.5 + pow10f@GLIBC_2.2.5 2.2.5 + pow10l@GLIBC_2.2.5 2.2.5 + pow@GLIBC_2.2.5 2.2.5 + powf@GLIBC_2.2.5 2.2.5 + powl@GLIBC_2.2.5 2.2.5 + remainder@GLIBC_2.2.5 2.2.5 + remainderf@GLIBC_2.2.5 2.2.5 + remainderl@GLIBC_2.2.5 2.2.5 + remquo@GLIBC_2.2.5 2.2.5 + remquof@GLIBC_2.2.5 2.2.5 + remquol@GLIBC_2.2.5 2.2.5 + rint@GLIBC_2.2.5 2.2.5 + rintf@GLIBC_2.2.5 2.2.5 + rintl@GLIBC_2.2.5 2.2.5 + round@GLIBC_2.2.5 2.2.5 + roundf@GLIBC_2.2.5 2.2.5 + roundl@GLIBC_2.2.5 2.2.5 + scalb@GLIBC_2.2.5 2.2.5 + scalbf@GLIBC_2.2.5 2.2.5 + scalbl@GLIBC_2.2.5 2.2.5 + scalbln@GLIBC_2.2.5 2.2.5 + scalblnf@GLIBC_2.2.5 2.2.5 + scalblnl@GLIBC_2.2.5 2.2.5 + scalbn@GLIBC_2.2.5 2.2.5 + scalbnf@GLIBC_2.2.5 2.2.5 + scalbnl@GLIBC_2.2.5 2.2.5 + signgam@GLIBC_2.2.5 2.2.5 + significand@GLIBC_2.2.5 2.2.5 + significandf@GLIBC_2.2.5 2.2.5 + significandl@GLIBC_2.2.5 2.2.5 + sin@GLIBC_2.2.5 2.2.5 + sincos@GLIBC_2.2.5 2.2.5 + sincosf@GLIBC_2.2.5 2.2.5 + sincosl@GLIBC_2.2.5 2.2.5 + sinf@GLIBC_2.2.5 2.2.5 + sinh@GLIBC_2.2.5 2.2.5 + sinhf@GLIBC_2.2.5 2.2.5 + sinhl@GLIBC_2.2.5 2.2.5 + sinl@GLIBC_2.2.5 2.2.5 + sqrt@GLIBC_2.2.5 2.2.5 + sqrtf@GLIBC_2.2.5 2.2.5 + sqrtl@GLIBC_2.2.5 2.2.5 + tan@GLIBC_2.2.5 2.2.5 + tanf@GLIBC_2.2.5 2.2.5 + tanh@GLIBC_2.2.5 2.2.5 + tanhf@GLIBC_2.2.5 2.2.5 + tanhl@GLIBC_2.2.5 2.2.5 + tanl@GLIBC_2.2.5 2.2.5 + tgamma@GLIBC_2.2.5 2.2.5 + tgammaf@GLIBC_2.2.5 2.2.5 + tgammal@GLIBC_2.2.5 2.2.5 + trunc@GLIBC_2.2.5 2.2.5 + truncf@GLIBC_2.2.5 2.2.5 + truncl@GLIBC_2.2.5 2.2.5 + y0@GLIBC_2.2.5 2.2.5 + y0f@GLIBC_2.2.5 2.2.5 + y0l@GLIBC_2.2.5 2.2.5 + y1@GLIBC_2.2.5 2.2.5 + y1f@GLIBC_2.2.5 2.2.5 + y1l@GLIBC_2.2.5 2.2.5 + yn@GLIBC_2.2.5 2.2.5 + ynf@GLIBC_2.2.5 2.2.5 + ynl@GLIBC_2.2.5 2.2.5 +libmemusage.so libc6 #MINVER# + __invoke_dynamic_linker__@Base 2.7-9ubuntu1 + calloc@Base 2.7-9ubuntu1 + free@Base 2.7-9ubuntu1 + malloc@Base 2.7-9ubuntu1 + mmap64@Base 2.7-9ubuntu1 + mmap@Base 2.7-9ubuntu1 + mremap@Base 2.7-9ubuntu1 + munmap@Base 2.7-9ubuntu1 + realloc@Base 2.7-9ubuntu1 +libnsl.so.1 libc6 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + __create_ib_request@GLIBC_PRIVATE 2.7 + __do_niscall3@GLIBC_PRIVATE 2.7 + __follow_path@GLIBC_PRIVATE 2.7 + __free_fdresult@GLIBC_2.2.5 2.2.5 + __nis_default_access@GLIBC_2.2.5 2.2.5 + __nis_default_group@GLIBC_2.2.5 2.2.5 + __nis_default_owner@GLIBC_2.2.5 2.2.5 + __nis_default_ttl@GLIBC_2.2.5 2.2.5 + __nis_finddirectory@GLIBC_2.2.5 2.2.5 + __nis_hash@GLIBC_2.2.5 2.2.5 + __nisbind_connect@GLIBC_2.2.5 2.2.5 + __nisbind_create@GLIBC_2.2.5 2.2.5 + __nisbind_destroy@GLIBC_2.2.5 2.2.5 + __nisbind_next@GLIBC_2.2.5 2.2.5 + __prepare_niscall@GLIBC_PRIVATE 2.7 + __yp_check@GLIBC_2.2.5 2.2.5 + _nsl_default_nss@GLIBC_PRIVATE 2.7 + _xdr_ib_request@GLIBC_PRIVATE 2.7 + _xdr_nis_result@GLIBC_PRIVATE 2.7 + nis_add@GLIBC_2.2.5 2.2.5 + nis_add_entry@GLIBC_2.2.5 2.2.5 + nis_addmember@GLIBC_2.2.5 2.2.5 + nis_checkpoint@GLIBC_2.2.5 2.2.5 + nis_clone_directory@GLIBC_2.2.5 2.2.5 + nis_clone_object@GLIBC_2.2.5 2.2.5 + nis_clone_result@GLIBC_2.2.5 2.2.5 + nis_creategroup@GLIBC_2.2.5 2.2.5 + nis_destroy_object@GLIBC_2.2.5 2.2.5 + nis_destroygroup@GLIBC_2.2.5 2.2.5 + nis_dir_cmp@GLIBC_2.2.5 2.2.5 + nis_domain_of@GLIBC_2.2.5 2.2.5 + nis_domain_of_r@GLIBC_2.2.5 2.2.5 + nis_first_entry@GLIBC_2.2.5 2.2.5 + nis_free_directory@GLIBC_2.2.5 2.2.5 + nis_free_object@GLIBC_2.2.5 2.2.5 + nis_free_request@GLIBC_2.2.5 2.2.5 + nis_freenames@GLIBC_2.2.5 2.2.5 + nis_freeresult@GLIBC_2.2.5 2.2.5 + nis_freeservlist@GLIBC_2.2.5 2.2.5 + nis_freetags@GLIBC_2.2.5 2.2.5 + nis_getnames@GLIBC_2.2.5 2.2.5 + nis_getservlist@GLIBC_2.2.5 2.2.5 + nis_ismember@GLIBC_2.2.5 2.2.5 + nis_leaf_of@GLIBC_2.2.5 2.2.5 + nis_leaf_of_r@GLIBC_2.2.5 2.2.5 + nis_lerror@GLIBC_2.2.5 2.2.5 + nis_list@GLIBC_2.2.5 2.2.5 + nis_local_directory@GLIBC_2.2.5 2.2.5 + nis_local_group@GLIBC_2.2.5 2.2.5 + nis_local_host@GLIBC_2.2.5 2.2.5 + nis_local_principal@GLIBC_2.2.5 2.2.5 + nis_lookup@GLIBC_2.2.5 2.2.5 + nis_mkdir@GLIBC_2.2.5 2.2.5 + nis_modify@GLIBC_2.2.5 2.2.5 + nis_modify_entry@GLIBC_2.2.5 2.2.5 + nis_name_of@GLIBC_2.2.5 2.2.5 + nis_name_of_r@GLIBC_2.2.5 2.2.5 + nis_next_entry@GLIBC_2.2.5 2.2.5 + nis_perror@GLIBC_2.2.5 2.2.5 + nis_ping@GLIBC_2.2.5 2.2.5 + nis_print_directory@GLIBC_2.2.5 2.2.5 + nis_print_entry@GLIBC_2.2.5 2.2.5 + nis_print_group@GLIBC_2.2.5 2.2.5 + nis_print_group_entry@GLIBC_2.2.5 2.2.5 + nis_print_link@GLIBC_2.2.5 2.2.5 + nis_print_object@GLIBC_2.2.5 2.2.5 + nis_print_result@GLIBC_2.2.5 2.2.5 + nis_print_rights@GLIBC_2.2.5 2.2.5 + nis_print_table@GLIBC_2.2.5 2.2.5 + nis_read_obj@GLIBC_2.2.5 2.2.5 + nis_remove@GLIBC_2.2.5 2.2.5 + nis_remove_entry@GLIBC_2.2.5 2.2.5 + nis_removemember@GLIBC_2.2.5 2.2.5 + nis_rmdir@GLIBC_2.2.5 2.2.5 + nis_servstate@GLIBC_2.2.5 2.2.5 + nis_sperrno@GLIBC_2.2.5 2.2.5 + nis_sperror@GLIBC_2.2.5 2.2.5 + nis_sperror_r@GLIBC_2.2.5 2.2.5 + nis_stats@GLIBC_2.2.5 2.2.5 + nis_verifygroup@GLIBC_2.2.5 2.2.5 + nis_write_obj@GLIBC_2.2.5 2.2.5 + readColdStartFile@GLIBC_2.2.5 2.2.5 + writeColdStartFile@GLIBC_2.2.5 2.2.5 + xdr_cback_data@GLIBC_2.2.5 2.2.5 + xdr_domainname@GLIBC_2.2.5 2.2.5 + xdr_keydat@GLIBC_2.2.5 2.2.5 + xdr_mapname@GLIBC_2.2.5 2.2.5 + xdr_obj_p@GLIBC_2.2.5 2.2.5 + xdr_peername@GLIBC_2.2.5 2.2.5 + xdr_valdat@GLIBC_2.2.5 2.2.5 + xdr_yp_buf@GLIBC_2.2.5 2.2.5 + xdr_ypall@GLIBC_2.2.5 2.2.5 + xdr_ypbind_binding@GLIBC_2.2.5 2.2.5 + xdr_ypbind_resp@GLIBC_2.2.5 2.2.5 + xdr_ypbind_resptype@GLIBC_2.2.5 2.2.5 + xdr_ypbind_setdom@GLIBC_2.2.5 2.2.5 + xdr_ypdelete_args@GLIBC_2.2.5 2.2.5 + xdr_ypmap_parms@GLIBC_2.2.5 2.2.5 + xdr_ypmaplist@GLIBC_2.2.5 2.2.5 + xdr_yppush_status@GLIBC_2.2.5 2.2.5 + xdr_yppushresp_xfr@GLIBC_2.2.5 2.2.5 + xdr_ypreq_key@GLIBC_2.2.5 2.2.5 + xdr_ypreq_nokey@GLIBC_2.2.5 2.2.5 + xdr_ypreq_xfr@GLIBC_2.2.5 2.2.5 + xdr_ypresp_all@GLIBC_2.2.5 2.2.5 + xdr_ypresp_key_val@GLIBC_2.2.5 2.2.5 + xdr_ypresp_maplist@GLIBC_2.2.5 2.2.5 + xdr_ypresp_master@GLIBC_2.2.5 2.2.5 + xdr_ypresp_order@GLIBC_2.2.5 2.2.5 + xdr_ypresp_val@GLIBC_2.2.5 2.2.5 + xdr_ypresp_xfr@GLIBC_2.2.5 2.2.5 + xdr_ypstat@GLIBC_2.2.5 2.2.5 + xdr_ypupdate_args@GLIBC_2.2.5 2.2.5 + xdr_ypxfrstat@GLIBC_2.2.5 2.2.5 + yp_all@GLIBC_2.2.5 2.2.5 + yp_bind@GLIBC_2.2.5 2.2.5 + yp_first@GLIBC_2.2.5 2.2.5 + yp_get_default_domain@GLIBC_2.2.5 2.2.5 + yp_maplist@GLIBC_2.2.5 2.2.5 + yp_master@GLIBC_2.2.5 2.2.5 + yp_match@GLIBC_2.2.5 2.2.5 + yp_next@GLIBC_2.2.5 2.2.5 + yp_order@GLIBC_2.2.5 2.2.5 + yp_unbind@GLIBC_2.2.5 2.2.5 + yp_update@GLIBC_2.2.5 2.2.5 + ypbinderr_string@GLIBC_2.2.5 2.2.5 + yperr_string@GLIBC_2.2.5 2.2.5 + ypprot_err@GLIBC_2.2.5 2.2.5 +libnss_compat.so.2 libc6 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_compat_endgrent@GLIBC_PRIVATE 2.7 + _nss_compat_endpwent@GLIBC_PRIVATE 2.7 + _nss_compat_endspent@GLIBC_PRIVATE 2.7 + _nss_compat_getgrent_r@GLIBC_PRIVATE 2.7 + _nss_compat_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_compat_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_compat_getpwent_r@GLIBC_PRIVATE 2.7 + _nss_compat_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_compat_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_compat_getspent_r@GLIBC_PRIVATE 2.7 + _nss_compat_getspnam_r@GLIBC_PRIVATE 2.7 + _nss_compat_initgroups_dyn@GLIBC_PRIVATE 2.7 + _nss_compat_setgrent@GLIBC_PRIVATE 2.7 + _nss_compat_setpwent@GLIBC_PRIVATE 2.7 + _nss_compat_setspent@GLIBC_PRIVATE 2.7 +libnss_dns.so.2 libc6 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_dns_getcanonname_r@GLIBC_PRIVATE 2.7 + _nss_dns_gethostbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_dns_gethostbyname2_r@GLIBC_PRIVATE 2.7 + _nss_dns_gethostbyname3_r@GLIBC_PRIVATE 2.7 + _nss_dns_gethostbyname_r@GLIBC_PRIVATE 2.7 + _nss_dns_getnetbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_dns_getnetbyname_r@GLIBC_PRIVATE 2.7 +libnss_files.so.2 libc6 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_files_endaliasent@GLIBC_PRIVATE 2.7 + _nss_files_endetherent@GLIBC_PRIVATE 2.7 + _nss_files_endgrent@GLIBC_PRIVATE 2.7 + _nss_files_endhostent@GLIBC_PRIVATE 2.7 + _nss_files_endnetent@GLIBC_PRIVATE 2.7 + _nss_files_endnetgrent@GLIBC_PRIVATE 2.7 + _nss_files_endprotoent@GLIBC_PRIVATE 2.7 + _nss_files_endpwent@GLIBC_PRIVATE 2.7 + _nss_files_endrpcent@GLIBC_PRIVATE 2.7 + _nss_files_endservent@GLIBC_PRIVATE 2.7 + _nss_files_endspent@GLIBC_PRIVATE 2.7 + _nss_files_getaliasbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getaliasent_r@GLIBC_PRIVATE 2.7 + _nss_files_getetherent_r@GLIBC_PRIVATE 2.7 + _nss_files_getgrent_r@GLIBC_PRIVATE 2.7 + _nss_files_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_files_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostbyname2_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostent_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostton_r@GLIBC_PRIVATE 2.7 + _nss_files_getnetbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_files_getnetbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getnetent_r@GLIBC_PRIVATE 2.7 + _nss_files_getnetgrent_r@GLIBC_PRIVATE 2.7 + _nss_files_getntohost_r@GLIBC_PRIVATE 2.7 + _nss_files_getprotobyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getprotobynumber_r@GLIBC_PRIVATE 2.7 + _nss_files_getprotoent_r@GLIBC_PRIVATE 2.7 + _nss_files_getpublickey@GLIBC_PRIVATE 2.7 + _nss_files_getpwent_r@GLIBC_PRIVATE 2.7 + _nss_files_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_files_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_files_getrpcbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getrpcbynumber_r@GLIBC_PRIVATE 2.7 + _nss_files_getrpcent_r@GLIBC_PRIVATE 2.7 + _nss_files_getsecretkey@GLIBC_PRIVATE 2.7 + _nss_files_getservbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getservbyport_r@GLIBC_PRIVATE 2.7 + _nss_files_getservent_r@GLIBC_PRIVATE 2.7 + _nss_files_getspent_r@GLIBC_PRIVATE 2.7 + _nss_files_getspnam_r@GLIBC_PRIVATE 2.7 + _nss_files_parse_etherent@GLIBC_PRIVATE 2.7 + _nss_files_parse_netent@GLIBC_PRIVATE 2.7 + _nss_files_parse_protoent@GLIBC_PRIVATE 2.7 + _nss_files_parse_rpcent@GLIBC_PRIVATE 2.7 + _nss_files_parse_servent@GLIBC_PRIVATE 2.7 + _nss_files_setaliasent@GLIBC_PRIVATE 2.7 + _nss_files_setetherent@GLIBC_PRIVATE 2.7 + _nss_files_setgrent@GLIBC_PRIVATE 2.7 + _nss_files_sethostent@GLIBC_PRIVATE 2.7 + _nss_files_setnetent@GLIBC_PRIVATE 2.7 + _nss_files_setnetgrent@GLIBC_PRIVATE 2.7 + _nss_files_setprotoent@GLIBC_PRIVATE 2.7 + _nss_files_setpwent@GLIBC_PRIVATE 2.7 + _nss_files_setrpcent@GLIBC_PRIVATE 2.7 + _nss_files_setservent@GLIBC_PRIVATE 2.7 + _nss_files_setspent@GLIBC_PRIVATE 2.7 + _nss_netgroup_parseline@GLIBC_PRIVATE 2.7 +libnss_hesiod.so.2 libc6 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_hesiod_endgrent@GLIBC_PRIVATE 2.7 + _nss_hesiod_endprotoent@GLIBC_PRIVATE 2.7 + _nss_hesiod_endpwent@GLIBC_PRIVATE 2.7 + _nss_hesiod_endservent@GLIBC_PRIVATE 2.7 + _nss_hesiod_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getprotobyname_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getprotobynumber_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getservbyname_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getservbyport_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_initgroups_dyn@GLIBC_PRIVATE 2.7 + _nss_hesiod_setgrent@GLIBC_PRIVATE 2.7 + _nss_hesiod_setprotoent@GLIBC_PRIVATE 2.7 + _nss_hesiod_setpwent@GLIBC_PRIVATE 2.7 + _nss_hesiod_setservent@GLIBC_PRIVATE 2.7 +libnss_nis.so.2 libc6 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_nis_endaliasent@GLIBC_PRIVATE 2.7 + _nss_nis_endetherent@GLIBC_PRIVATE 2.7 + _nss_nis_endgrent@GLIBC_PRIVATE 2.7 + _nss_nis_endhostent@GLIBC_PRIVATE 2.7 + _nss_nis_endnetent@GLIBC_PRIVATE 2.7 + _nss_nis_endnetgrent@GLIBC_PRIVATE 2.7 + _nss_nis_endprotoent@GLIBC_PRIVATE 2.7 + _nss_nis_endpwent@GLIBC_PRIVATE 2.7 + _nss_nis_endrpcent@GLIBC_PRIVATE 2.7 + _nss_nis_endservent@GLIBC_PRIVATE 2.7 + _nss_nis_endspent@GLIBC_PRIVATE 2.7 + _nss_nis_getaliasbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getaliasent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getetherent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getgrent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_nis_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostbyname2_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostent_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostton_r@GLIBC_PRIVATE 2.7 + _nss_nis_getnetbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_nis_getnetbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getnetent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getnetgrent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getntohost_r@GLIBC_PRIVATE 2.7 + _nss_nis_getprotobyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getprotobynumber_r@GLIBC_PRIVATE 2.7 + _nss_nis_getprotoent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getpublickey@GLIBC_PRIVATE 2.7 + _nss_nis_getpwent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_nis_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_nis_getrpcbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getrpcbynumber_r@GLIBC_PRIVATE 2.7 + _nss_nis_getrpcent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getsecretkey@GLIBC_PRIVATE 2.7 + _nss_nis_getservbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getservbyport_r@GLIBC_PRIVATE 2.7 + _nss_nis_getservent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getspent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getspnam_r@GLIBC_PRIVATE 2.7 + _nss_nis_initgroups_dyn@GLIBC_PRIVATE 2.7 + _nss_nis_netname2user@GLIBC_PRIVATE 2.7 + _nss_nis_setaliasent@GLIBC_PRIVATE 2.7 + _nss_nis_setetherent@GLIBC_PRIVATE 2.7 + _nss_nis_setgrent@GLIBC_PRIVATE 2.7 + _nss_nis_sethostent@GLIBC_PRIVATE 2.7 + _nss_nis_setnetent@GLIBC_PRIVATE 2.7 + _nss_nis_setnetgrent@GLIBC_PRIVATE 2.7 + _nss_nis_setprotoent@GLIBC_PRIVATE 2.7 + _nss_nis_setpwent@GLIBC_PRIVATE 2.7 + _nss_nis_setrpcent@GLIBC_PRIVATE 2.7 + _nss_nis_setservent@GLIBC_PRIVATE 2.7 + _nss_nis_setspent@GLIBC_PRIVATE 2.7 +libnss_nisplus.so.2 libc6 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_nisplus_endaliasent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endetherent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endgrent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endhostent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endnetent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endnetgrent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endprotoent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endpwent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endrpcent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endservent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endspent@GLIBC_PRIVATE 2.7 + _nss_nisplus_getaliasbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getaliasent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getetherent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getgrent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostbyname2_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostton_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getnetbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getnetbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getnetent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getnetgrent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getntohost_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getprotobyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getprotobynumber_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getprotoent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getpublickey@GLIBC_PRIVATE 2.7 + _nss_nisplus_getpwent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getrpcbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getrpcbynumber_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getrpcent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getsecretkey@GLIBC_PRIVATE 2.7 + _nss_nisplus_getservbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getservent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getspent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getspnam_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_initgroups_dyn@GLIBC_PRIVATE 2.7 + _nss_nisplus_netname2user@GLIBC_PRIVATE 2.7 + _nss_nisplus_setaliasent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setetherent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setgrent@GLIBC_PRIVATE 2.7 + _nss_nisplus_sethostent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setnetent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setnetgrent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setprotoent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setpwent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setrpcent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setservent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setspent@GLIBC_PRIVATE 2.7 +libpcprofile.so libc6 #MINVER# + __cyg_profile_func_enter@Base 2.7-9ubuntu1 + __cyg_profile_func_exit@Base 2.7-9ubuntu1 + __invoke_dynamic_linker__@Base 2.7-9ubuntu1 +libpthread.so.0 libc6 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + GLIBC_2.2.6@GLIBC_2.2.6 2.2.6 + GLIBC_2.3.2@GLIBC_2.3.2 2.3.2 + GLIBC_2.3.3@GLIBC_2.3.3 2.3.3 + GLIBC_2.3.4@GLIBC_2.3.4 2.3.4 + GLIBC_2.4@GLIBC_2.4 2.4 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _IO_flockfile@GLIBC_2.2.5 2.2.5 + _IO_ftrylockfile@GLIBC_2.2.5 2.2.5 + _IO_funlockfile@GLIBC_2.2.5 2.2.5 + __close@GLIBC_2.2.5 2.2.5 + __connect@GLIBC_2.2.5 2.2.5 + __errno_location@GLIBC_2.2.5 2.2.5 + __fcntl@GLIBC_2.2.5 2.2.5 + __fork@GLIBC_2.2.5 2.2.5 + __h_errno_location@GLIBC_2.2.5 2.2.5 + __libc_allocate_rtsig@GLIBC_2.2.5 2.2.5 + __libc_current_sigrtmax@GLIBC_2.2.5 2.2.5 + __libc_current_sigrtmin@GLIBC_2.2.5 2.2.5 + __lseek@GLIBC_2.2.5 2.2.5 + __nanosleep@GLIBC_2.2.6 2.2.6 + __open64@GLIBC_2.2.5 2.2.5 + __open@GLIBC_2.2.5 2.2.5 + __pread64@GLIBC_2.2.5 2.2.5 + __pthread_cleanup_routine@GLIBC_2.3.3 2.3.3 + __pthread_clock_gettime@GLIBC_PRIVATE 2.7 + __pthread_clock_settime@GLIBC_PRIVATE 2.7 + __pthread_getspecific@GLIBC_2.2.5 2.2.5 + __pthread_initialize_minimal@GLIBC_PRIVATE 2.7 + __pthread_key_create@GLIBC_2.2.5 2.2.5 + __pthread_mutex_destroy@GLIBC_2.2.5 2.2.5 + __pthread_mutex_init@GLIBC_2.2.5 2.2.5 + __pthread_mutex_lock@GLIBC_2.2.5 2.2.5 + __pthread_mutex_trylock@GLIBC_2.2.5 2.2.5 + __pthread_mutex_unlock@GLIBC_2.2.5 2.2.5 + __pthread_mutexattr_destroy@GLIBC_2.2.5 2.2.5 + __pthread_mutexattr_init@GLIBC_2.2.5 2.2.5 + __pthread_mutexattr_settype@GLIBC_2.2.5 2.2.5 + __pthread_once@GLIBC_2.2.5 2.2.5 + __pthread_register_cancel@GLIBC_2.3.3 2.3.3 + __pthread_register_cancel_defer@GLIBC_2.3.3 2.3.3 + __pthread_rwlock_destroy@GLIBC_2.2.5 2.2.5 + __pthread_rwlock_init@GLIBC_2.2.5 2.2.5 + __pthread_rwlock_rdlock@GLIBC_2.2.5 2.2.5 + __pthread_rwlock_tryrdlock@GLIBC_2.2.5 2.2.5 + __pthread_rwlock_trywrlock@GLIBC_2.2.5 2.2.5 + __pthread_rwlock_unlock@GLIBC_2.2.5 2.2.5 + __pthread_rwlock_wrlock@GLIBC_2.2.5 2.2.5 + __pthread_setspecific@GLIBC_2.2.5 2.2.5 + __pthread_unregister_cancel@GLIBC_2.3.3 2.3.3 + __pthread_unregister_cancel_restore@GLIBC_2.3.3 2.3.3 + __pthread_unwind@GLIBC_PRIVATE 2.7 + __pthread_unwind_next@GLIBC_2.3.3 2.3.3 + __pwrite64@GLIBC_2.2.5 2.2.5 + __read@GLIBC_2.2.5 2.2.5 + __res_state@GLIBC_2.2.5 2.2.5 + __send@GLIBC_2.2.5 2.2.5 + __sigaction@GLIBC_2.2.5 2.2.5 + __vfork@GLIBC_2.2.5 2.2.5 + __wait@GLIBC_2.2.5 2.2.5 + __write@GLIBC_2.2.5 2.2.5 + _pthread_cleanup_pop@GLIBC_2.2.5 2.2.5 + _pthread_cleanup_pop_restore@GLIBC_2.2.5 2.2.5 + _pthread_cleanup_push@GLIBC_2.2.5 2.2.5 + _pthread_cleanup_push_defer@GLIBC_2.2.5 2.2.5 + accept@GLIBC_2.2.5 2.2.5 + close@GLIBC_2.2.5 2.2.5 + connect@GLIBC_2.2.5 2.2.5 + fcntl@GLIBC_2.2.5 2.2.5 + flockfile@GLIBC_2.2.5 2.2.5 + fork@GLIBC_2.2.5 2.2.5 + fsync@GLIBC_2.2.5 2.2.5 + ftrylockfile@GLIBC_2.2.5 2.2.5 + funlockfile@GLIBC_2.2.5 2.2.5 + longjmp@GLIBC_2.2.5 2.2.5 + lseek64@GLIBC_2.2.5 2.2.5 + lseek@GLIBC_2.2.5 2.2.5 + msync@GLIBC_2.2.5 2.2.5 + nanosleep@GLIBC_2.2.5 2.2.5 + open64@GLIBC_2.2.5 2.2.5 + open@GLIBC_2.2.5 2.2.5 + pause@GLIBC_2.2.5 2.2.5 + pread64@GLIBC_2.2.5 2.2.5 + pread@GLIBC_2.2.5 2.2.5 + pthread_atfork@GLIBC_2.2.5 2.2.5 + pthread_attr_destroy@GLIBC_2.2.5 2.2.5 + pthread_attr_getaffinity_np@GLIBC_2.3.3 2.3.3 + pthread_attr_getaffinity_np@GLIBC_2.3.4 2.3.4 + pthread_attr_getdetachstate@GLIBC_2.2.5 2.2.5 + pthread_attr_getguardsize@GLIBC_2.2.5 2.2.5 + pthread_attr_getinheritsched@GLIBC_2.2.5 2.2.5 + pthread_attr_getschedparam@GLIBC_2.2.5 2.2.5 + pthread_attr_getschedpolicy@GLIBC_2.2.5 2.2.5 + pthread_attr_getscope@GLIBC_2.2.5 2.2.5 + pthread_attr_getstack@GLIBC_2.2.5 2.2.5 + pthread_attr_getstackaddr@GLIBC_2.2.5 2.2.5 + pthread_attr_getstacksize@GLIBC_2.2.5 2.2.5 + pthread_attr_init@GLIBC_2.2.5 2.2.5 + pthread_attr_setaffinity_np@GLIBC_2.3.3 2.3.3 + pthread_attr_setaffinity_np@GLIBC_2.3.4 2.3.4 + pthread_attr_setdetachstate@GLIBC_2.2.5 2.2.5 + pthread_attr_setguardsize@GLIBC_2.2.5 2.2.5 + pthread_attr_setinheritsched@GLIBC_2.2.5 2.2.5 + pthread_attr_setschedparam@GLIBC_2.2.5 2.2.5 + pthread_attr_setschedpolicy@GLIBC_2.2.5 2.2.5 + pthread_attr_setscope@GLIBC_2.2.5 2.2.5 + pthread_attr_setstack@GLIBC_2.2.5 2.2.5 + pthread_attr_setstackaddr@GLIBC_2.2.5 2.2.5 + pthread_attr_setstacksize@GLIBC_2.2.5 2.2.5 + pthread_barrier_destroy@GLIBC_2.2.5 2.2.5 + pthread_barrier_init@GLIBC_2.2.5 2.2.5 + pthread_barrier_wait@GLIBC_2.2.5 2.2.5 + pthread_barrierattr_destroy@GLIBC_2.2.5 2.2.5 + pthread_barrierattr_getpshared@GLIBC_2.3.3 2.3.3 + pthread_barrierattr_init@GLIBC_2.2.5 2.2.5 + pthread_barrierattr_setpshared@GLIBC_2.2.5 2.2.5 + pthread_cancel@GLIBC_2.2.5 2.2.5 + pthread_cond_broadcast@GLIBC_2.2.5 2.2.5 + pthread_cond_broadcast@GLIBC_2.3.2 2.3.2 + pthread_cond_destroy@GLIBC_2.2.5 2.2.5 + pthread_cond_destroy@GLIBC_2.3.2 2.3.2 + pthread_cond_init@GLIBC_2.2.5 2.2.5 + pthread_cond_init@GLIBC_2.3.2 2.3.2 + pthread_cond_signal@GLIBC_2.2.5 2.2.5 + pthread_cond_signal@GLIBC_2.3.2 2.3.2 + pthread_cond_timedwait@GLIBC_2.2.5 2.2.5 + pthread_cond_timedwait@GLIBC_2.3.2 2.3.2 + pthread_cond_wait@GLIBC_2.2.5 2.2.5 + pthread_cond_wait@GLIBC_2.3.2 2.3.2 + pthread_condattr_destroy@GLIBC_2.2.5 2.2.5 + pthread_condattr_getclock@GLIBC_2.3.3 2.3.3 + pthread_condattr_getpshared@GLIBC_2.2.5 2.2.5 + pthread_condattr_init@GLIBC_2.2.5 2.2.5 + pthread_condattr_setclock@GLIBC_2.3.3 2.3.3 + pthread_condattr_setpshared@GLIBC_2.2.5 2.2.5 + pthread_create@GLIBC_2.2.5 2.2.5 + pthread_detach@GLIBC_2.2.5 2.2.5 + pthread_equal@GLIBC_2.2.5 2.2.5 + pthread_exit@GLIBC_2.2.5 2.2.5 + pthread_getaffinity_np@GLIBC_2.3.3 2.3.3 + pthread_getaffinity_np@GLIBC_2.3.4 2.3.4 + pthread_getattr_np@GLIBC_2.2.5 2.2.5 + pthread_getconcurrency@GLIBC_2.2.5 2.2.5 + pthread_getcpuclockid@GLIBC_2.2.5 2.2.5 + pthread_getschedparam@GLIBC_2.2.5 2.2.5 + pthread_getspecific@GLIBC_2.2.5 2.2.5 + pthread_join@GLIBC_2.2.5 2.2.5 + pthread_key_create@GLIBC_2.2.5 2.2.5 + pthread_key_delete@GLIBC_2.2.5 2.2.5 + pthread_kill@GLIBC_2.2.5 2.2.5 + pthread_kill_other_threads_np@GLIBC_2.2.5 2.2.5 + pthread_mutex_consistent_np@GLIBC_2.4 2.4 + pthread_mutex_destroy@GLIBC_2.2.5 2.2.5 + pthread_mutex_getprioceiling@GLIBC_2.4 2.4 + pthread_mutex_init@GLIBC_2.2.5 2.2.5 + pthread_mutex_lock@GLIBC_2.2.5 2.2.5 + pthread_mutex_setprioceiling@GLIBC_2.4 2.4 + pthread_mutex_timedlock@GLIBC_2.2.5 2.2.5 + pthread_mutex_trylock@GLIBC_2.2.5 2.2.5 + pthread_mutex_unlock@GLIBC_2.2.5 2.2.5 + pthread_mutexattr_destroy@GLIBC_2.2.5 2.2.5 + pthread_mutexattr_getkind_np@GLIBC_2.2.5 2.2.5 + pthread_mutexattr_getprioceiling@GLIBC_2.4 2.4 + pthread_mutexattr_getprotocol@GLIBC_2.4 2.4 + pthread_mutexattr_getpshared@GLIBC_2.2.5 2.2.5 + pthread_mutexattr_getrobust_np@GLIBC_2.4 2.4 + pthread_mutexattr_gettype@GLIBC_2.2.5 2.2.5 + pthread_mutexattr_init@GLIBC_2.2.5 2.2.5 + pthread_mutexattr_setkind_np@GLIBC_2.2.5 2.2.5 + pthread_mutexattr_setprioceiling@GLIBC_2.4 2.4 + pthread_mutexattr_setprotocol@GLIBC_2.4 2.4 + pthread_mutexattr_setpshared@GLIBC_2.2.5 2.2.5 + pthread_mutexattr_setrobust_np@GLIBC_2.4 2.4 + pthread_mutexattr_settype@GLIBC_2.2.5 2.2.5 + pthread_once@GLIBC_2.2.5 2.2.5 + pthread_rwlock_destroy@GLIBC_2.2.5 2.2.5 + pthread_rwlock_init@GLIBC_2.2.5 2.2.5 + pthread_rwlock_rdlock@GLIBC_2.2.5 2.2.5 + pthread_rwlock_timedrdlock@GLIBC_2.2.5 2.2.5 + pthread_rwlock_timedwrlock@GLIBC_2.2.5 2.2.5 + pthread_rwlock_tryrdlock@GLIBC_2.2.5 2.2.5 + pthread_rwlock_trywrlock@GLIBC_2.2.5 2.2.5 + pthread_rwlock_unlock@GLIBC_2.2.5 2.2.5 + pthread_rwlock_wrlock@GLIBC_2.2.5 2.2.5 + pthread_rwlockattr_destroy@GLIBC_2.2.5 2.2.5 + pthread_rwlockattr_getkind_np@GLIBC_2.2.5 2.2.5 + pthread_rwlockattr_getpshared@GLIBC_2.2.5 2.2.5 + pthread_rwlockattr_init@GLIBC_2.2.5 2.2.5 + pthread_rwlockattr_setkind_np@GLIBC_2.2.5 2.2.5 + pthread_rwlockattr_setpshared@GLIBC_2.2.5 2.2.5 + pthread_self@GLIBC_2.2.5 2.2.5 + pthread_setaffinity_np@GLIBC_2.3.3 2.3.3 + pthread_setaffinity_np@GLIBC_2.3.4 2.3.4 + pthread_setcancelstate@GLIBC_2.2.5 2.2.5 + pthread_setcanceltype@GLIBC_2.2.5 2.2.5 + pthread_setconcurrency@GLIBC_2.2.5 2.2.5 + pthread_setschedparam@GLIBC_2.2.5 2.2.5 + pthread_setschedprio@GLIBC_2.3.4 2.3.4 + pthread_setspecific@GLIBC_2.2.5 2.2.5 + pthread_sigmask@GLIBC_2.2.5 2.2.5 + pthread_spin_destroy@GLIBC_2.2.5 2.2.5 + pthread_spin_init@GLIBC_2.2.5 2.2.5 + pthread_spin_lock@GLIBC_2.2.5 2.2.5 + pthread_spin_trylock@GLIBC_2.2.5 2.2.5 + pthread_spin_unlock@GLIBC_2.2.5 2.2.5 + pthread_testcancel@GLIBC_2.2.5 2.2.5 + pthread_timedjoin_np@GLIBC_2.3.3 2.3.3 + pthread_tryjoin_np@GLIBC_2.3.3 2.3.3 + pthread_yield@GLIBC_2.2.5 2.2.5 + pwrite64@GLIBC_2.2.5 2.2.5 + pwrite@GLIBC_2.2.5 2.2.5 + raise@GLIBC_2.2.5 2.2.5 + read@GLIBC_2.2.5 2.2.5 + recv@GLIBC_2.2.5 2.2.5 + recvfrom@GLIBC_2.2.5 2.2.5 + recvmsg@GLIBC_2.2.5 2.2.5 + sem_close@GLIBC_2.2.5 2.2.5 + sem_destroy@GLIBC_2.2.5 2.2.5 + sem_getvalue@GLIBC_2.2.5 2.2.5 + sem_init@GLIBC_2.2.5 2.2.5 + sem_open@GLIBC_2.2.5 2.2.5 + sem_post@GLIBC_2.2.5 2.2.5 + sem_timedwait@GLIBC_2.2.5 2.2.5 + sem_trywait@GLIBC_2.2.5 2.2.5 + sem_unlink@GLIBC_2.2.5 2.2.5 + sem_wait@GLIBC_2.2.5 2.2.5 + send@GLIBC_2.2.5 2.2.5 + sendmsg@GLIBC_2.2.5 2.2.5 + sendto@GLIBC_2.2.5 2.2.5 + sigaction@GLIBC_2.2.5 2.2.5 + siglongjmp@GLIBC_2.2.5 2.2.5 + sigwait@GLIBC_2.2.5 2.2.5 + system@GLIBC_2.2.5 2.2.5 + tcdrain@GLIBC_2.2.5 2.2.5 + vfork@GLIBC_2.2.5 2.2.5 + wait@GLIBC_2.2.5 2.2.5 + waitpid@GLIBC_2.2.5 2.2.5 + write@GLIBC_2.2.5 2.2.5 +libresolv.so.2 libc6 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + GLIBC_2.3.2@GLIBC_2.3.2 2.3.2 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + __b64_ntop@GLIBC_2.2.5 2.2.5 + __b64_pton@GLIBC_2.2.5 2.2.5 + __dn_comp@GLIBC_2.2.5 2.2.5 + __dn_count_labels@GLIBC_2.2.5 2.2.5 + __dn_expand@GLIBC_2.2.5 2.2.5 + __dn_skipname@GLIBC_2.2.5 2.2.5 + __fp_nquery@GLIBC_2.2.5 2.2.5 + __fp_query@GLIBC_2.2.5 2.2.5 + __fp_resstat@GLIBC_2.2.5 2.2.5 + __hostalias@GLIBC_2.2.5 2.2.5 + __libc_res_nquery@GLIBC_PRIVATE 2.7 + __libc_res_nsearch@GLIBC_PRIVATE 2.7 + __loc_aton@GLIBC_2.2.5 2.2.5 + __loc_ntoa@GLIBC_2.2.5 2.2.5 + __ns_get16@GLIBC_PRIVATE 2.7 + __ns_get32@GLIBC_PRIVATE 2.7 + __ns_name_ntop@GLIBC_PRIVATE 2.7 + __ns_name_unpack@GLIBC_PRIVATE 2.7 + __p_cdname@GLIBC_2.2.5 2.2.5 + __p_cdnname@GLIBC_2.2.5 2.2.5 + __p_class@GLIBC_2.2.5 2.2.5 + __p_class_syms@GLIBC_2.2.5 2.2.5 + __p_fqname@GLIBC_2.2.5 2.2.5 + __p_fqnname@GLIBC_2.2.5 2.2.5 + __p_option@GLIBC_2.2.5 2.2.5 + __p_query@GLIBC_2.2.5 2.2.5 + __p_rcode@GLIBC_2.3.2 2.3.2 + __p_secstodate@GLIBC_2.2.5 2.2.5 + __p_time@GLIBC_2.2.5 2.2.5 + __p_type@GLIBC_2.2.5 2.2.5 + __p_type_syms@GLIBC_2.2.5 2.2.5 + __putlong@GLIBC_2.2.5 2.2.5 + __putshort@GLIBC_2.2.5 2.2.5 + __res_close@GLIBC_2.2.5 2.2.5 + __res_dnok@GLIBC_2.2.5 2.2.5 + __res_hnok@GLIBC_2.2.5 2.2.5 + __res_hostalias@GLIBC_2.2.5 2.2.5 + __res_isourserver@GLIBC_2.2.5 2.2.5 + __res_mailok@GLIBC_2.2.5 2.2.5 + __res_mkquery@GLIBC_2.2.5 2.2.5 + __res_nameinquery@GLIBC_2.2.5 2.2.5 + __res_nmkquery@GLIBC_2.2.5 2.2.5 + __res_nquery@GLIBC_2.2.5 2.2.5 + __res_nquerydomain@GLIBC_2.2.5 2.2.5 + __res_nsearch@GLIBC_2.2.5 2.2.5 + __res_nsend@GLIBC_2.2.5 2.2.5 + __res_ownok@GLIBC_2.2.5 2.2.5 + __res_queriesmatch@GLIBC_2.2.5 2.2.5 + __res_query@GLIBC_2.2.5 2.2.5 + __res_querydomain@GLIBC_2.2.5 2.2.5 + __res_search@GLIBC_2.2.5 2.2.5 + __res_send@GLIBC_2.2.5 2.2.5 + __sym_ntop@GLIBC_2.2.5 2.2.5 + __sym_ntos@GLIBC_2.2.5 2.2.5 + __sym_ston@GLIBC_2.2.5 2.2.5 + _gethtbyaddr@GLIBC_2.2.5 2.2.5 + _gethtbyname2@GLIBC_2.2.5 2.2.5 + _gethtbyname@GLIBC_2.2.5 2.2.5 + _gethtent@GLIBC_2.2.5 2.2.5 + _getlong@GLIBC_2.2.5 2.2.5 + _getshort@GLIBC_2.2.5 2.2.5 + _res_opcodes@GLIBC_2.2.5 2.2.5 + _sethtent@GLIBC_2.2.5 2.2.5 + inet_net_ntop@GLIBC_2.2.5 2.2.5 + inet_net_pton@GLIBC_2.2.5 2.2.5 + inet_neta@GLIBC_2.2.5 2.2.5 + res_gethostbyaddr@GLIBC_2.2.5 2.2.5 + res_gethostbyname2@GLIBC_2.2.5 2.2.5 + res_gethostbyname@GLIBC_2.2.5 2.2.5 + res_send_setqhook@GLIBC_2.2.5 2.2.5 + res_send_setrhook@GLIBC_2.2.5 2.2.5 +librt.so.1 libc6 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + GLIBC_2.3.3@GLIBC_2.3.3 2.3.3 + GLIBC_2.3.4@GLIBC_2.3.4 2.3.4 + GLIBC_2.4@GLIBC_2.4 2.4 + GLIBC_2.7@GLIBC_2.7 2.7 + __mq_open_2@GLIBC_2.7 2.7 + aio_cancel64@GLIBC_2.2.5 2.2.5 + aio_cancel@GLIBC_2.2.5 2.2.5 + aio_error64@GLIBC_2.2.5 2.2.5 + aio_error@GLIBC_2.2.5 2.2.5 + aio_fsync64@GLIBC_2.2.5 2.2.5 + aio_fsync@GLIBC_2.2.5 2.2.5 + aio_init@GLIBC_2.2.5 2.2.5 + aio_read64@GLIBC_2.2.5 2.2.5 + aio_read@GLIBC_2.2.5 2.2.5 + aio_return64@GLIBC_2.2.5 2.2.5 + aio_return@GLIBC_2.2.5 2.2.5 + aio_suspend64@GLIBC_2.2.5 2.2.5 + aio_suspend@GLIBC_2.2.5 2.2.5 + aio_write64@GLIBC_2.2.5 2.2.5 + aio_write@GLIBC_2.2.5 2.2.5 + clock_getcpuclockid@GLIBC_2.2.5 2.2.5 + clock_getres@GLIBC_2.2.5 2.2.5 + clock_gettime@GLIBC_2.2.5 2.2.5 + clock_nanosleep@GLIBC_2.2.5 2.2.5 + clock_settime@GLIBC_2.2.5 2.2.5 + lio_listio64@GLIBC_2.2.5 2.2.5 + lio_listio64@GLIBC_2.4 2.4 + lio_listio@GLIBC_2.2.5 2.2.5 + lio_listio@GLIBC_2.4 2.4 + mq_close@GLIBC_2.3.4 2.3.4 + mq_getattr@GLIBC_2.3.4 2.3.4 + mq_notify@GLIBC_2.3.4 2.3.4 + mq_open@GLIBC_2.3.4 2.3.4 + mq_receive@GLIBC_2.3.4 2.3.4 + mq_send@GLIBC_2.3.4 2.3.4 + mq_setattr@GLIBC_2.3.4 2.3.4 + mq_timedreceive@GLIBC_2.3.4 2.3.4 + mq_timedsend@GLIBC_2.3.4 2.3.4 + mq_unlink@GLIBC_2.3.4 2.3.4 + shm_open@GLIBC_2.2.5 2.2.5 + shm_unlink@GLIBC_2.2.5 2.2.5 + timer_create@GLIBC_2.2.5 2.2.5 + timer_create@GLIBC_2.3.3 2.3.3 + timer_delete@GLIBC_2.2.5 2.2.5 + timer_delete@GLIBC_2.3.3 2.3.3 + timer_getoverrun@GLIBC_2.2.5 2.2.5 + timer_getoverrun@GLIBC_2.3.3 2.3.3 + timer_gettime@GLIBC_2.2.5 2.2.5 + timer_gettime@GLIBC_2.3.3 2.3.3 + timer_settime@GLIBC_2.2.5 2.2.5 + timer_settime@GLIBC_2.3.3 2.3.3 +libthread_db.so.1 libc6 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + GLIBC_2.3.3@GLIBC_2.3.3 2.3.3 + GLIBC_2.3@GLIBC_2.3 2.3 + td_init@GLIBC_2.2.5 2.2.5 + td_log@GLIBC_2.2.5 2.2.5 + td_symbol_list@GLIBC_2.2.5 2.2.5 + td_ta_clear_event@GLIBC_2.2.5 2.2.5 + td_ta_delete@GLIBC_2.2.5 2.2.5 + td_ta_enable_stats@GLIBC_2.2.5 2.2.5 + td_ta_event_addr@GLIBC_2.2.5 2.2.5 + td_ta_event_getmsg@GLIBC_2.2.5 2.2.5 + td_ta_get_nthreads@GLIBC_2.2.5 2.2.5 + td_ta_get_ph@GLIBC_2.2.5 2.2.5 + td_ta_get_stats@GLIBC_2.2.5 2.2.5 + td_ta_map_id2thr@GLIBC_2.2.5 2.2.5 + td_ta_map_lwp2thr@GLIBC_2.2.5 2.2.5 + td_ta_new@GLIBC_2.2.5 2.2.5 + td_ta_reset_stats@GLIBC_2.2.5 2.2.5 + td_ta_set_event@GLIBC_2.2.5 2.2.5 + td_ta_setconcurrency@GLIBC_2.2.5 2.2.5 + td_ta_thr_iter@GLIBC_2.2.5 2.2.5 + td_ta_tsd_iter@GLIBC_2.2.5 2.2.5 + td_thr_clear_event@GLIBC_2.2.5 2.2.5 + td_thr_dbresume@GLIBC_2.2.5 2.2.5 + td_thr_dbsuspend@GLIBC_2.2.5 2.2.5 + td_thr_event_enable@GLIBC_2.2.5 2.2.5 + td_thr_event_getmsg@GLIBC_2.2.5 2.2.5 + td_thr_get_info@GLIBC_2.2.5 2.2.5 + td_thr_getfpregs@GLIBC_2.2.5 2.2.5 + td_thr_getgregs@GLIBC_2.2.5 2.2.5 + td_thr_getxregs@GLIBC_2.2.5 2.2.5 + td_thr_getxregsize@GLIBC_2.2.5 2.2.5 + td_thr_set_event@GLIBC_2.2.5 2.2.5 + td_thr_setfpregs@GLIBC_2.2.5 2.2.5 + td_thr_setgregs@GLIBC_2.2.5 2.2.5 + td_thr_setprio@GLIBC_2.2.5 2.2.5 + td_thr_setsigpending@GLIBC_2.2.5 2.2.5 + td_thr_setxregs@GLIBC_2.2.5 2.2.5 + td_thr_sigsetmask@GLIBC_2.2.5 2.2.5 + td_thr_tls_get_addr@GLIBC_2.3 2.3 + td_thr_tlsbase@GLIBC_2.3.3 2.3.3 + td_thr_tsd@GLIBC_2.2.5 2.2.5 + td_thr_validate@GLIBC_2.2.5 2.2.5 +libutil.so.1 libc6 #MINVER# + GLIBC_2.2.5@GLIBC_2.2.5 2.2.5 + forkpty@GLIBC_2.2.5 2.2.5 + login@GLIBC_2.2.5 2.2.5 + login_tty@GLIBC_2.2.5 2.2.5 + logout@GLIBC_2.2.5 2.2.5 + logwtmp@GLIBC_2.2.5 2.2.5 + openpty@GLIBC_2.2.5 2.2.5 --- glibc-2.7.orig/debian/TODO +++ glibc-2.7/debian/TODO @@ -0,0 +1,34 @@ +Outstanding concerns +==================== + + - no entry + +TODO +==== + +* General: + + - Make sure that prep.sh and version aren't in the root of the source + package. + +* libc: + - Only add some libraries to the optimized packages instead of all of them? + - Add patch to display (or ignore) linux-gate.so.1 in ldd. + - Check dpkg-shlibdeps for linux-gate.so.1 handling. + - Don't do make install for libc6-i686 if we aren't going to use the + results - it's very slow. + - Add alpha EV67 opt package support (#229251). + +* libc-dev: + + - What do we do for headers on 32/64 systems? Do we generate + #if wrappers for /usr/include? This looks like a non-issue since + only asm needs it. + +* locales: + + - locales debconf template is a bit difficult for newbie users. + Using localedata/locales/*, it can be readable. For example, + "ja_JP" -> "Japanese", "Japan". + + --- glibc-2.7.orig/debian/po/fr.po +++ glibc-2.7/debian/po/fr.po @@ -0,0 +1,211 @@ +# translation of fr.po to French +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# Christian Perrier , 2007, 2008. +# Denis Barbier 2001-2006. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2008-02-27 08:29+0100\n" +"Last-Translator: Christian Perrier \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Tous les choix possibles" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Jeux de paramètres régionaux à créer :" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Les jeux de paramètres régionaux (aussi appelés « locales ») permettent de " +"gérer des langues multiples et offrent aux utilisateurs la possibilité de " +"choisir la langue, le pays, le jeu de caractères, l'ordre de tri, etc." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Veuillez choisir les paramètres régionaux à créer. Des paramètres régionaux " +"utilisant l'encodage UTF-8 devraient être le choix par défaut, notamment " +"pour de nouvelles installations. Les autres jeux de caractères peuvent être " +"utiles pour conserver la compatibilité avec d'anciens systèmes ou logiciels." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Aucun" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Jeu de paramètres régionaux actif par défaut :" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"De nombreux paquets utilisent le mécanisme de localisation pour afficher les " +"messages destinés aux utilisateurs dans la langue adéquate. Vous pouvez " +"changer la valeur par défaut de l'ensemble du système pour utiliser un des " +"jeux de paramètres régionaux qui seront créés." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Veuillez noter que cette valeur modifiera la langue utilisée par le système. " +"Si l'environnement est multi-utilisateurs et que certains utilisateurs ne " +"parlent pas votre langue, ils risquent d'avoir des difficultés." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Faut-il mettre à jour le paquet glibc maintenant ?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +#| msgid "" +#| "Running services and programs that are using NSS need to be restarted, " +#| "otherwise they might not be able to do lookup or authentication any more " +#| "(for services such as ssh, this can affect your ability to login). Please " +#| "review the following space-separated list of init.d scripts for services " +#| "to be restarted now, and correct it if needed." +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Les services et programmes qui utilisent NSS (« Name Service Switch ») " +"doivent être redémarrés car leur système d'authentification risque de ne " +"plus fonctionner. Il est possible de redémarrer certains services (comme SSH " +"ou telnetd) pendant l'installation, mais d'autres ne peuvent l'être " +"automatiquement. Il est notamment indispensable d'arrêter et redémarrer " +"manuellement xdm car un redémarrage automatique pourrait interrompre une " +"session X11 active." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Les services identifiés comme devant être redémarrés et qui doivent être " +"arrêtés avant la mise à jour sont les suivants : ${services}." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Si vous préférez interrompre la mise à jour maintenant et la reprendre plus " +"tard, ne choisissez pas cette option." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Services à redémarrer lors de la mise à jour de la bibliothèque C :" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Les services et programmes qui utilisent NSS (« Name Service Switch ») " +"doivent être redémarrés car leur système d'authentification risque de ne " +"plus fonctionner (pour des services comme SSH, cela peut empêcher les " +"connexions). Veuillez contrôler et éventuellement corriger la liste des " +"services qui seront redémarrés maintenant (identifiés par le nom de leur " +"script de démarrage)." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Veuillez noter que le redémarrage de telnetd ou sshd n'affectera pas les " +"connexions existantes." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Échec du redémarrage de certains services" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Les services suivants n'ont pas pu être redémarrés lors de la mise à jour de " +"la bibliothèque C :" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Il est nécessaire de les redémarrer vous-même avec la commande « /etc/init.d/" +" start »." --- glibc-2.7.orig/debian/po/pt_BR.po +++ glibc-2.7/debian/po/pt_BR.po @@ -0,0 +1,195 @@ +# Brazilian Portuguese translation (glibc) +# Copyright (C) 2007 THE glibc'S COPYRIGHT HOLDER +# This file is distributed under the same license as the glibc package. +# Felipe Augusto van de Wiel (faw) , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: libc6\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2007-09-09 20:29-0300\n" +"Last-Translator: Felipe Augusto van de Wiel (faw) \n" +"Language-Team: l10n portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"pt_BR utf-8\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Todos os \"locales\"" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "\"Locales\" a serem gerados:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Locales são uma infra-estrutura para alternar entre múltiplos idiomas e " +"permite aos usuários utilizar o seu idioma, país, caracteres, ordem de " +"colação, etc." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Por favor, escolha quais locales serão gerados. Locales UTF-8 deveriam ser " +"escolhidos por padrão, particularmente para novas instalações. Outros " +"conjuntos de caracteres podem ser úteis para compatibilidade com sistemas e " +"softwares antigos." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Nenhum" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Locale padrão para o ambiente do sistema:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Muitos pacotes no Debian usam locales para exibir texto aos usuários no " +"idioma correto. Você pode escolher um locale padrão para o sistema a partir " +"dos locales gerados." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Isto selecionará o idioma padrão para o sistema inteiro. Se este sistema é " +"um sistema multiusuário no qual nem todos os usuários são capazes de falar o " +"idioma padrão, eles vão enfrentar dificuldades." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +#, fuzzy +#| msgid "" +#| "Running services and programs that are using NSS need to be restarted, " +#| "otherwise they might not be able to do lookup or authentication any more " +#| "(for services such as ssh, this can affect your ability to login). Please " +#| "review the following space-separated list of init.d scripts for services " +#| "to be restarted now, and correct it if needed." +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Serviços em execução e programas que usam NSS precisam ser reiniciados, caso " +"contrário eles podem não ser capazes de realizar consultas ou autenticação " +"(para serviços como ssh, isto pode afetar sua habilidade de fazer login). " +"Por favor, reveja a seguinte lista separada por espaços de scripts init.d " +"que serão reiniciados agora, e corrija se necessário." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" +"Serviços para reiniciar por causa da atualização da biblioteca GNU libc:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Serviços em execução e programas que usam NSS precisam ser reiniciados, caso " +"contrário eles podem não ser capazes de realizar consultas ou autenticação " +"(para serviços como ssh, isto pode afetar sua habilidade de fazer login). " +"Por favor, reveja a seguinte lista separada por espaços de scripts init.d " +"que serão reiniciados agora, e corrija se necessário." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Nota: reiniciar sshd/telnetd não deveria afetar quaisquer conexões " +"existentes." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" +"Falha ao reiniciar alguns serviços por causa da atualização da GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Os seguintes serviços não puderam ser reiniciados por causa da atualização " +"da biblioteca GNU libc:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Você terá que iniciar esses serviços manualmente executando '/etc/init.d/" +" start'." --- glibc-2.7.orig/debian/po/es.po +++ glibc-2.7/debian/po/es.po @@ -0,0 +1,210 @@ +# glibc debconf translation to spanish +# Copyright (C) 2003, 2006, 2007, 2008 Software in the Public Interest +# This file is distributed under the same license as the glibc package. +# +# Changes: +# - Initial translation +# Carlos Valdivia Yagüe , 2003 +# - Revisions: +# Carlos Valdivia Yagüe , 2006, 2007, 2008 +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc 2.7-9\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2007-09-10 12:30+0200\n" +"Last-Translator: Carlos Valdivia Yagüe \n" +"Language-Team: Debian L10n Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Todos los «locales»" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Seleccione los «locales» que desea generar:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Los «locales» son un sistema para cambiar entre varios idiomas y permite a " +"los usuarios utilizar su idioma, país, juego de caracteres, ordenación " +"alfanumérica, etc." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Por favor, elija qué «locales» desea generar. Se recomiendan los «locales» UTF-" +"8, especialmente para instalaciones nuevas. Otros juegos de caracteres " +"pueden resultar útiles por compatibilidad con sistemas y software antiguo." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Ninguno" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "¿Cuál quiere que sea el «locale» predeterminado del sistema?" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Muchos paquetes en Debian utilizan «locales» para mostrar el texto en el " +"idioma de los usuarios. Puede elegir la opción predeterminada de entre los " +"«locales» que ha generado." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Esto seleccionará el idioma predeterminado de todo el sistema. Si se trata " +"de un sistema con varios usuarios en el que no todos hablan el idioma " +"elegido, pueden tener problemas." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "¿Quiere actualizar glibc ahora?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Los servicios y programas en ejecución que utilicen NSS necesitan " +"reiniciarse, o por el contrario puede que ya no sean capaces de realizar " +"búsquedas o autenticación. El proceso de instalación puede reiniciar " +"algunos servicios (tales como ssh o telnetd), pero otros programas no pueden " +"reiniciarse automáticamente. Uno de dichos programas que necesitan ser " +"parados manualmente y reiniciados tras la actualización de glibc es xdm, " +"puesto que un reinicio automático podría desconectar sus sesiones X11 " +"activas." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Este programa detectó los siguientes servicios instalados que deben ser" +"parados antes de la actualización: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Si desea interrumpir la actualización y continuar más tarde, conteste «No» " +"a continuación." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Servicios a reiniciar para la actualización de GNU libc:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Los servicios y programas en ejecución que utilicen NSS necesitan " +"reiniciarse, o por el contrario puede que ya no sean capaces de realizar " +"búsquedas o autenticación (para servicios como ssh, esto puede evitar " +"afectar a su capacidad para ingresar en el sistema). Por favor, revise la " +"siguiente lista de scripts de init.d, separada por espacios, de los " +"servicios a reiniciar ahora, y corríjala si es necesario." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Aviso: reiniciar sshd/telnetd no debería afectar a las conexiones activas." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Fallo al reiniciar algunos servicios para la actualización de GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Los siguientes servicios no pudieron reiniciarse para la actualización de " +"GNU libc." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Tendrá que iniciarlos manualmente ejecutando «/etc/init.d/ start»." + +#~ msgid "${services}" +#~ msgstr "${services}" --- glibc-2.7.orig/debian/po/hu.po +++ glibc-2.7/debian/po/hu.po @@ -0,0 +1,166 @@ +msgid "" +msgstr "" +"Project-Id-Version: glibc\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2007-04-20 10:55+0100\n" +"Last-Translator: SZERVÃC Attila \n" +"Language-Team: Hungarian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Poedit-Language: Hungarian\n" +"X-Poedit-Country: HUNGARY\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Minden helyi beállítás" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Létrehozandó helyi beállítások:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"A helyi beállítások (locales) egy nyelveket váltó keretrendszer, mely " +"lehetÅ‘vé teszi, hogy a felhasználó saját nyelvét, országát, karaktereit " +"használhassa." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Válaszd ki, milyen helyi beállításokat hozzunk létre. UTF-8 helyi " +"beállításokat érdemes alapértelmezetten választani. Más karakter-készletek " +"elavult rendszerekhez és szoftverekhez való kapcsolódáskor lehetnek jók." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Semmi" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "A rendszer alap helyi beállítása:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"A Debian számos csomagja helyi beállításokat használ a szövegek a " +"felhasználó számára megfelelÅ‘ nyelvű megjelenítésére . Választhatsz egy " +"alapértelmezett." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Ez kiválasztja az egész rendszer alapértelmezett nyelvét. Több nyelvű " +"rendszeren, ahol nem minden felhasználó beszéli az alapértelmezett nyelvet " +"további beállítások kellenek." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" --- glibc-2.7.orig/debian/po/uk.po +++ glibc-2.7/debian/po/uk.po @@ -0,0 +1,197 @@ +# translation of uk.po to Ukrainian +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files. +# +# Eugeniy Meshcheryakov , 2004, 2006. +msgid "" +msgstr "" +"Project-Id-Version: uk\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2006-02-21 10:12+0200\n" +"Last-Translator: Eugeniy Meshcheryakov \n" +"Language-Team: Ukrainian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.2\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" +"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Ð’ÑÑ– локалі" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Локалі Ñкі потрібно згенерувати:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +#, fuzzy +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Локаль -- це механізм, що дозволÑÑ” перемикатиÑÑ Ð¼Ñ–Ð¶ кількома мовами Ð´Ð»Ñ " +"кориÑтувачів, Ñкі можуть викориÑтовувати Ñвою мову, країну, Ñимволи порÑдок " +"ÑÐ¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ– Ñ‚.п." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Ðе вÑтановлювати" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Локаль за замовчаннÑм в ÑиÑтемному оточенні:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +#, fuzzy +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Ð’ Debian багато пакунків викориÑтовують локалі Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÑту на " +"вибраній кориÑтувачем мові. Якщо ваша рідна мова не англійÑька, то ви можете " +"змінити локаль за замовчаннÑм. СпиÑок Ñкладений із локалей Ñкі ви вирішили " +"згенерувати." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +#, fuzzy +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Примітка: цей пункт вибирає мову Ð´Ð»Ñ Ð²Ñієї ÑиÑтеми. Якщо в вашій ÑиÑтемі " +"працюють декілька кориÑтувачів, Ñкі не розмовлÑÑŽÑ‚ÑŒ мовою, Ñку ви вибрали, то " +"вони можуть зіткнутиÑÑ Ñ–Ð· труднощами, Ñ– тому, можливо, вам краще не " +"вÑтановлювати локаль за замовчаннÑм." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" + +#~ msgid "" +#~ "Choose which locales to generate. The selection will be saved to `/etc/" +#~ "locale.gen', which you can also edit manually (you need to run `locale-" +#~ "gen' afterwards)." +#~ msgstr "" +#~ "Вкажіть, Ñкі локалі потрібно Ñтворити. Ваш вибір буде збережений у файлі " +#~ "\"/etc/locale.gen\", Ñкий ви також можете редагувати вручну (піÑÐ»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ " +#~ "потрібно запуÑкати \"locale-gen\")." + +#~ msgid "" +#~ "When `All locales' is selected, /etc/locale.gen will be set as a symlink " +#~ "to /usr/share/i18n/SUPPORTED." +#~ msgstr "" +#~ "Коли обрано „ВÑÑ– локалі“, /etc/locale.gen буде Ñимвольним поÑиланнÑм на /" +#~ "usr/share/i18n/SUPPORTED." --- glibc-2.7.orig/debian/po/ko.po +++ glibc-2.7/debian/po/ko.po @@ -0,0 +1,187 @@ +# Korean translations for glibc package +# glibc íŒ¨í‚¤ì§€ì— ëŒ€í•œ 한국어 번역문. +# Copyright (C) 2007 THE glibc'S COPYRIGHT HOLDER +# This file is distributed under the same license as the glibc package. +# Sunjae Park , 2007 - 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2008-03-02 20:33-0500\n" +"Last-Translator: Sunjae Park \n" +"Language-Team: Korean \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "모든 로케ì¼" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "ìƒì„±í•  ë¡œì¼€ì¼ ëª©ë¡:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"로케ì¼ì´ëž€ 여러 언어 중ì—ì„œ ì„ íƒí•˜ì—¬ 사용ìžë“¤ì´ ìžì‹ ì˜ 언어, êµ­ê°€, 문ìž, ì •ë ¬" +"순서 ë“±ì„ ì‚¬ìš©í•  수 있ë„ë¡ í•´ì£¼ëŠ” 구성틀입니다." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"ìƒì„±í•˜ê³ ìž 하는 로케ì¼ì„ ì„ íƒí•˜ì—¬ 주십시오. 기본ì ìœ¼ë¡œëŠ” UTF-8 로케ì¼ì„ ì„ íƒ" +"하시고, 특히 새로 설치하는 시스템ì—서는 ë”ë”ìš± ì´ë¥¼ ì„ íƒí•˜ì‹­ì‹œì˜¤. 기존 시스템" +"ì´ë‚˜ ì†Œí”„íŠ¸ì›¨ì–´ì™€ì˜ ì—­í˜¸í™˜ì„±ì„ ìœ„í•´ì„œëŠ” 다른 ë¬¸ì œì…‹ì„ ì„ íƒí•˜ì…”ë„ ë©ë‹ˆë‹¤." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "ì—†ìŒ" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "시스템 í™˜ê²½ì˜ ê¸°ë³¸ 로케ì¼:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"ë°ë¹„ì•ˆì— ìžˆëŠ” ë§Žì€ ê¾¸ëŸ¬ë¯¸ë“¤ì€ ì‚¬ìš©ìžì—게 맞는 언어로 출력하기 위해 로케ì¼ì„ " +"사용합니다. ìƒì„±ëœ ë¡œì¼€ì¼ ì¤‘ì—ì„œ ì‹œìŠ¤í…œì˜ ê¸°ë³¸ 로케ì¼ë¡œ 사용할 로케ì¼ì„ ì„ íƒ" +"하실 수 있습니다." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"ì´ ì„ íƒì€ 시스템 ì „ì²´ì˜ ê¸°ë³¸ 언어를 결정합니다. 기본 언어를 사용할 수 없는 사" +"ìš©ìžë„ 있는 복수 ì‚¬ìš©ìž ì‹œìŠ¤í…œì¼ ê²½ìš°ì—는 ê·¸ 사용ìžë“¤ì´ 시스템 ì‚¬ìš©ì— ì–´ë ¤ì›€" +"ì„ ê²ªìœ¼ì‹¤ 수 있습니다." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "지금 glibc를 업그레ì´ë“œ 하시겠습니까?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"NSS를 ì‚¬ìš©ì¤‘ì¸ ì„œë¹„ìŠ¤ì™€ í”„ë¡œê·¸ëž¨ë“¤ì„ ë‹¤ì‹œ 시작시키지 않으면 ìƒ‰ì¸ ìž‘ì—…ì´ë‚˜ ì¸ì¦ " +"ìž‘ì—…ì„ ë” ì´ìƒ 사용할 수 없게 ë©ë‹ˆë‹¤. sshì´ë‚˜ telnetd ë“±ì˜ ì„œë¹„ìŠ¤ë“¤ ì¼ë¶€ëŠ” 설치 " +"ê³¼ì •ì´ ë‹¤ì‹œ ì‹œìž‘ì„ ì‹œí‚µë‹ˆë‹¤ë§Œ, ìžë™ìœ¼ë¡œ 다시 시작시키지 못하는 í”„ë¡œê·¸ëž¨ë„ ìžˆ" +"습니다. glibc 업그레ì´ë“œ 후 사용ìžê°€ ì§ì ‘ 다시 정지시킨 후 다시 시작시켜야 하는 " +"대표ì ì¸ 프로그램으로 xdmì´ ìžˆìŠµë‹ˆë‹¤. ìžë™ìœ¼ë¡œ 다시 ì‹œìž‘ì„ ì‹œí‚¤ë©´ ì‚¬ìš©ì¤‘ì¸ X11 " +"ì„¸ì…˜ì„ ì¤‘ì§€ì‹œí‚¬ 수 있기 때문입니다." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"업그레ì´ë“œ 하기 ì „ì— ë©ˆì¶°ì•¼ 하는 ë‹¤ìŒ ì„œë¹„ìŠ¤ë“¤ì„ ìŠ¤í¬ë¦½íŠ¸ê°€ ê°ì§€í–ˆìŠµë‹ˆë‹¤: " +"${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"업그레ì´ë“œë¥¼ ì¼ë‹¨ 중지시키고 ë‚˜ì¤‘ì— ê³„ì†í•˜ì‹œë ¤ë©´ ë‹¤ìŒ ì§ˆë¬¸ì— Noë¼ê³  답해주시기 " +"ë°”ëžë‹ˆë‹¤." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "GNU libc ë¼ì´ë¸ŒëŸ¬ë¦¬ 업그레ì´ë“œë¡œ ì¸í•´ 다시 시작시킬 서비스 목ë¡:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"NSS를 ì‚¬ìš©ì¤‘ì¸ ì„œë¹„ìŠ¤ì™€ í”„ë¡œê·¸ëž¨ë“¤ì„ ë‹¤ì‹œ 시작시키지 않으면 ìƒ‰ì¸ ìž‘ì—…ì´ë‚˜ ì¸ì¦ " +"ìž‘ì—…ì„ ë” ì´ìƒ 사용할 수 없게 ë©ë‹ˆë‹¤(ssh와 ê°™ì€ ì„œë¹„ìŠ¤ì˜ ê²½ìš° 로그ì¸ì— ì˜í–¥ì„ " +"줄 수 있습니다). 다시 시작시킬 init.d 스í¬ë¦½íŠ¸ 서비스를 빈칸으로 연결시킨 " +"ì´ ëª©ë¡ì„ 검토하여 필요한 경우 수정해주십시오." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"참고: sshd/telnetd를 다시 시작시키ë”ë¼ë„ 기존 ì—°ê²°ì—는 ì˜í–¥ì´ ì—†ì„ ê²ƒìž…ë‹ˆë‹¤." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "GNU libc 업그레ì´ë“œë¡œ ì¸í•œ 서비스 다시 ì‹œìž‘ì— ì‹¤íŒ¨" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"ë‹¤ìŒ ì„œë¹„ìŠ¤ë“¤ì€ GNU libc ë¼ì´ë¸ŒëŸ¬ë¦¬ 업그레ì´ë“œë¡œ ì¸í•œ 다시 ì‹œìž‘ì— ì‹¤íŒ¨" +"하였습니다:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"ì´ ì„œë¹„ìŠ¤ë“¤ì€ '/etc/init.d/ start'ë¡œ ì§ì ‘ 다시 시작시키셔야 합니다." --- glibc-2.7.orig/debian/po/ca.po +++ glibc-2.7/debian/po/ca.po @@ -0,0 +1,186 @@ +# Catalan translations for glibc package. +# Copyright (C) 2002, 2007, 2008 GNU Libc Maintainers. +# This file is distributed under the same license as the glibc package. +# +# Jordi Mallach , 2002, 2008. +# Jordà Polo , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: 2.7-9\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2008-02-27 01:25+0100\n" +"Last-Translator: Jordi Mallach \n" +"Language-Team: Català \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Tots els locales" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Locales a generar:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Locales és un entorn que permet que els usuaris canviïn l'idioma, el país, " +"els caràcters, la classificació alfabètica, etc." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Si us plau, trieu els locales que vulgueu generar. Els locales UTF-8 haurien " +"de ser l'opció predeterminada, especialment en noves instal·lacions. Altres " +"jocs de caràcters us poden ser útils per motius de compatibilitat amb " +"sistemes i programari antic." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Cap" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Locale predeterminat del sistema:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"A Debian, molts paquets fan servir els locales per mostrar el text en " +"l'idioma dels usuaris. Podeu canviar el locale predeterminat del sistema " +"triant entre els locales generats." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Amb aquesta opció seleccioneu l'idioma predeterminat de tot el sistema. Si " +"aquest és un entorn multiusuari on no tothom parla la mateixa llengua, " +"alguns usuaris poden tindre dificultats." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Voleu actualitzar la glibc ara?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "És necessari tornar a iniciar els serveis i programes que utilitzen NSS, ja que si no es fa això podrien deixar de poder fer cerques o autenticacions. El procés d'instal·lació pot tornar a iniciar alguns serveis (com l'ssh o el telnetd), però altres programes no es poden tornar a iniciar automàticament. Un programa que necessita una parada i inici manual després de l'actualització de la glibc és l'xdm, ja que un reinici automàtic podria desconnectar les vostres sessions X11 actives." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "Aquest script ha detectat els següents serveis instal·lats que s'haurien de parar abans de l'actualització: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "Si voleu interrompre ara l'actualització i continuar més tard, contesteu negativament la següent pregunta." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Serveis a reiniciar per l'actualització de la biblioteca GNU libc:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "És necessari tornar a iniciar els serveis i programes que utilitzen NSS, ja que si no es fa això podrien deixar de poder fer cerques o autenticacions (per a serveis com l'ssh, això pot afectar la vostra capacitat per a entrar al sistema). Comproveu la següent llista separada per comes de scripts d'init.d amb serveis que s'han de tornar a iniciar ara, i corregiu-la si és necessari." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "Nota: reiniciar l'ssh/telnetd no hauria d'afectar cap connexió existent." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "No s'ha pogut reiniciar alguns serveis per a l'actualització de GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "No s'ha pogut reiniciar els serveis següents per a l'actualització de la biblioteca GNU libc:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "Haureu d'iniciar aquests serveis manualment executant «/etc/init.d/ start»." + +#~ msgid "" +#~ "Choose which locales to generate. The selection will be saved to `/etc/" +#~ "locale.gen', which you can also edit manually (you need to run `locale-" +#~ "gen' afterwards)." +#~ msgstr "" +#~ "Trieu els locales que vulgueu generar. La selecció es desarà al fitxer «/" +#~ "etc/locale.gen», que també podeu editar manualment (si ho feu, recordeu " +#~ "que cal executar «locale-gen» tot seguit)." + +#~ msgid "" +#~ "When `All locales' is selected, /etc/locale.gen will be set as a symlink " +#~ "to /usr/share/i18n/SUPPORTED." +#~ msgstr "" +#~ "Si seleccioneu «Tots els locales», s'establirà un enllaç simbòlic de /etc/" +#~ "locale.gen a /usr/share/i18n/SUPPORTED." --- glibc-2.7.orig/debian/po/cs.po +++ glibc-2.7/debian/po/cs.po @@ -0,0 +1,198 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2008-03-02 10:39+0100\n" +"Last-Translator: Miroslav Kure \n" +"Language-Team: Czech \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "VÅ¡echny locales" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Locales, které se mají vygenerovat:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Locales je systém pro pÅ™epínání mezi různými jazyky. Uživatelé si pak mohou " +"zvolit svůj jazyk, zemi, znaky, způsob porovnávání, atd." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Vyberte, které locales se mají vygenerovat. PÅ™ednostnÄ› byste mÄ›li vybírat " +"locales v kódování UTF-8 (obzvláštÄ› u nových instalací). Ostatní znakové " +"sady jsou užiteÄné pro zpÄ›tnou kompatibilitu se staršími systémy a programy." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Žádné" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Výchozí locale pro tento systém:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Mnoho balíků v Debianu používá locales k zobrazení textu ve správném jazyce. " +"Z vygenerovaných locales si můžete vybrat to, které bude v systému použito " +"jako výchozí." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Tímto vyberete výchozí jazyk pro celý systém. Pokud se na poÄítaÄ pÅ™ihlaÅ¡ují " +"i uživatelé nemluvící vybraným jazykem, zaznamenají jisté problémy." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Chcete nyní aktualizovat glibc?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +#| msgid "" +#| "Running services and programs that are using NSS need to be restarted, " +#| "otherwise they might not be able to do lookup or authentication any more " +#| "(for services such as ssh, this can affect your ability to login). Please " +#| "review the following space-separated list of init.d scripts for services " +#| "to be restarted now, and correct it if needed." +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Běžící služby a programy využívající NSS se musí restartovat, protože jinak " +"se může stát, že nebudou moci vyhledávat v systémových databázích nebo " +"ověřovat uživatele. InstalaÄní proces umí restartovat nÄ›které služby (napÅ™. " +"ssh nebo telnetd) automaticky, ale jiné musíte restartovat ruÄnÄ›. Jednou " +"takovou službou, kterou je tÅ™eba po aktualizaci glibc ruÄnÄ› zastavit a znovu " +"spustit, je xdm. Automatický restart totiž může odpojit aktivní sezení X11." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Instalace rozpoznala následující nainstalované služby, které je tÅ™eba pÅ™ed " +"aktualizací zastavit: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Chcete-li nyní aktualizaci pÅ™eruÅ¡it a pokraÄovat pozdÄ›ji, odpovÄ›zte na otázku " +"zápornÄ›." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Služby, které se mají restartovat po aktualizaci knihovny GNU libc:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Běžící služby a programy využívající NSS se musí restartovat, protože jinak " +"se může stát, že nebudou moci vyhledávat v systémových databázích nebo " +"ověřovat uživatele. (U služeb typu ssh to může ovlivnit možnost pÅ™ihlášení " +"se.) Zkontrolujte prosím následující mezerami oddÄ›lený seznam služeb, které " +"se mají restartovat a v případÄ› potÅ™eby jej opravte. Služby jsou v seznamu " +"zastoupeny svými init.d skripty." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "Poznámka: restart sshd/telnetd by nemÄ›l ovlivnit probíhající spojení." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Chyba pÅ™i restartu nÄ›kterých služeb bÄ›hem aktualizace GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Následující služby nemohly být bÄ›hem aktualizace knihovny GNU libc " +"restartovány:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "Budete je muset spustit ruÄnÄ› příkazem „/etc/init.d/ start“." --- glibc-2.7.orig/debian/po/eu.po +++ glibc-2.7/debian/po/eu.po @@ -0,0 +1,189 @@ +# translation of glibc 2.6.1-3 debconf to basque +# Piarres Beobide , 2006. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +msgid "" +msgstr "" +"Project-Id-Version: eu\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2007-09-11 09:57+0100\n" +"Last-Translator: Piarres Beobide \n" +"Language-Team: librezale \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "locale guztiak" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Sortu behar diren locale-ak:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Locale-ak hizkuntza anitz artean aldatzeko ingurugiroa da erabiltzaileek " +"beren hizkuntza, herrialdea, karaktere-jokoa erabiltzeko gaitasuna ematen " +"dute" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Mesedez zein locale sortuko diren hautatu. Lehenespen bezala UTF-8 locale-ak " +"hautau beharko lirateke, bereiziki instalazio berri batetan. Beste karaktere " +"joko batzuek sortzea erabilgarri izan liteke sistema eta software " +"zaharragoekin bateragarritasuna mantentzeko" + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Batez" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Sistema inguruneko locale lehenetsia:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Debian pakete anitzek locale-ak erabiltzen dituzte erabiltzaileari dagokion " +"hizkuntzan testuak bistaratzeko. Locale lehenetsia sortutako locale-en " +"artean hautatu dezakezu." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Honek zure sistemako hizkuntza aukeratuko du. Hautatutako hizkuntza denek " +"erabiltzen ez duten erabiltzaile anitzeko sistema bat bada, agian " +"erabiltzaile horiek arazoetan aurki daitezke." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Glibc orain bertsio-berritu nahi al duzu?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"NSS erabiltzen duten abiaraziriko programa eta zerbitzuak berrabiarazi egin " +"behar dira, bestela hauek ez dira bilaketak egin edo autentifikatzeko gai " +"izango (ssh bezalako zerbitzuentzat, saio hasteko ahalmenean eragin dezake). " +"Mesedez gainbegiratu berrabiaraziko diren zerbitzuen init.d script-en zuriunez " +"bereiziriko zerrenda eta zuzendu behar izanez gero." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Skript honek bertsio-berritzea egin aurretik gelditu behar diren instalaturiko " +"hurrengo zerbitzu hauek aurkitu ditu: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Bertsio-berritzea etzaeratu eta berandua jarraitu nahi izanez gero, ez erantzun " +"behekaldeko galderari." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "GNU libc liburutegi eguneraketan berrabiarazi behar diren zerbitzuak:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"NSS erabiltzen duten abiaraziriko programa eta zerbitzuak berrabiarazi egin " +"behar dira, besteka hauek ez dira bilaketak egin edo autentifikatzeko gai " +"izango (ssh bezalako zerbitzuentzat, saio hasteko ahalmenean eragin dezake). " +"Mesedez gainbegiratu berrabiaraziko diren zerbitzuen init.d script-en gakoz " +"bereiziriko zerrenda eta zuzendu behar izanen gero." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Oharra: sshd/telnetd berrabiarazteak ez luke sorturik dauden konexioetan " +"eragin beharko." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Huts GNU glibc bertsio berritzerkoan zenbait zerbitzu berrabiaraztean" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Hurrengo zerbitzuak ezin izan dira berrabiarazi GNU glibc liburutegi bertsio " +"berritzerako:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Hauek eskuz abiarazi beharko dituzu '/etc/init.d/ start' eginaz." --- glibc-2.7.orig/debian/po/el.po +++ glibc-2.7/debian/po/el.po @@ -0,0 +1,194 @@ +# translation of el.po to Greek +# translation of templates.po to Greek +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files. +# Konstantinos Margaritis , 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: el\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2004-01-21 22:44EEST\n" +"Last-Translator: Konstantinos Margaritis \n" +"Language-Team: Greek \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.0.2\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +#, fuzzy +msgid "Locales to be generated:" +msgstr "Επιλέξτε τα γλωσσικά πεÏιβάλλοντα που θέλετε να δημιουÏγηθοÏν." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +#, fuzzy +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Το γλωσσικό πεÏιβάλλον (locale) είναι ένα πλαίσιο υποστήÏιξης εναλλαγής " +"πολλαπλών γλωσσών, ώστε οι χÏήστες να μποÏοÏν να χÏησιμοποιοÏν τη γλώσσα " +"τους, με όλα τα συνεπακόλουθα, χαÏακτήÏες, νόμισμα, τοπικές Ïυθμίσεις, κλπ." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Κανένα" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +#, fuzzy +msgid "Default locale for the system environment:" +msgstr "Ποιο γλωσσικό πεÏιβάλλον επιθυμείτε ως Ï€ÏοκαθοÏισμένο για το σÏστημα;" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +#, fuzzy +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Πολλά πακέτα στο Debiaν χÏησιμοποιοÏν τη δυνατότητα των γλωσσικών " +"πεÏιβάλλοντων για να εμφανίζουν κείμενο στην επιλεγμένη γλώσσα του κάθε " +"χÏήστη. ΜποÏείτε να αλλάξετε το Ï€ÏοκαθοÏισμένο γλωσσικό πεÏιβάλλον αν η " +"Αγγλική δεν είναι η μητÏική σας γλώσσα. Αυτές οι επιλογές βασίζονται στα " +"γλωσσικά πεÏιβάλλοντα που επιλέξατε να δημιουÏγηθοÏν." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +#, fuzzy +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Σημείωση: Αυτή η επιλογή θα επιλέξει τη γλώσσα για ολόκληÏο το σÏστημά σας. " +"Αν έχετε ένα πολυχÏηστικό σÏστημα, στο οποίο οι χÏήστες δε μιλοÏν όλοι την " +"γλώσσα που εσείς επιλέξατε, τότε πιθανόν να συναντήσουν δυσκολίες και για το " +"λόγο αυτό ίσως να μη Ï€Ïέπει να οÏίσετε ένα Ï€ÏοκαθοÏισμένο γλωσσικό " +"πεÏιβάλλον." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" + +#~ msgid "" +#~ "Choose which locales to generate. The selection will be saved to `/etc/" +#~ "locale.gen', which you can also edit manually (you need to run `locale-" +#~ "gen' afterwards)." +#~ msgstr "" +#~ "Επιλέξτε ποια γλωσσικά πεÏιβάλλοντα θέλετε να δημιουÏγηθοÏν. Η επιλογή " +#~ "θα αποθηκευτεί στο αÏχείο '/etc/locale.gen', το οποίο μποÏείτε να " +#~ "επεξεÏγαστείτε και χειÏοκίνητα (έπειτα θα Ï€Ïέπει να εκτελέσετε την εντολή " +#~ "'locale-gen')." --- glibc-2.7.orig/debian/po/ml.po +++ glibc-2.7/debian/po/ml.po @@ -0,0 +1,172 @@ +# Translation of glibc debconf template. +# Copyright (C) 2007 Free Software Foundation, Inc +# This file is distributed under the same license as the glibc package. +# അനൂപàµ|Anoop പി|P , ലാലàµ|Lalu കെആരàµâ€|KR , സജീവàµ|Sajeev പിആരàµâ€|PR, 2007 +# +msgid "" +msgstr "" +"Project-Id-Version: Glibc 2007_05_26\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2007-05-26 15:09+0530\n" +"Last-Translator: അനൂപàµ|Anoop പി|P , ലാലàµ|Lalu കെആരàµâ€|KR " +",സജീവൠ|Sajeev പിആരàµâ€|PR \n" +"Language-Team: Swathanthra|à´¸àµà´µà´¤à´¨àµà´¤àµà´° Malayalam|മലയാളം Computing|à´•à´®àµà´ªàµà´¯àµ‚à´Ÿàµà´Ÿà´¿à´™àµà´™àµ \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-Language: Malayalam\n" +"X-Poedit-Country: INDIA\n" +"X-Poedit-SearchPath-0: /home/mobin\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "à´Žà´²àµà´²à´¾ ലൊകàµà´•àµ‡à´²àµà´•à´³àµà´‚" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "സൃഷàµà´Ÿà´¿à´•àµà´•à´ªàµà´ªàµ†à´Ÿàµ‡à´£àµà´Ÿ ലൊകàµà´•àµ‡à´²àµà´•à´³àµâ€:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"വിവിധ ഭാഷകളിലàµâ€ നിനàµà´¨àµ à´¸àµà´µà´¨àµà´¤à´‚ ഭാഷ, രാജàµà´¯à´‚, à´…à´•àµà´·à´°à´™àµà´™à´³àµâ€, à´…à´•àµà´·à´°à´•àµà´°à´®à´‚ à´®àµà´¤à´²à´¾à´¯à´µ ഉപയോഗികàµà´•à´¾à´¨à´¾à´¯à´¿ " +"ഉപയോകàµà´¤à´¾à´•àµà´•à´³àµ† സഹായികàµà´•àµà´¨àµà´¨ à´šà´Ÿàµà´Ÿà´•àµà´•àµ‚à´Ÿàµà´•à´³à´¾à´£àµ ലൊകàµà´•àµ‡à´²àµà´•à´³àµâ€." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"ദയവായി സൃഷàµà´Ÿà´¿à´•àµà´•àµ‡à´£àµà´Ÿ ലൊകàµà´•àµ‡à´²àµà´•à´³àµâ€ തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´•. à´ªàµà´¤à´¿à´¯ ഇനàµâ€à´¸àµà´±àµà´±à´¾à´²àµ‡à´·à´¨àµà´•à´³àµâ€à´•àµà´•àµ à´¸àµà´µà´¤àµ‡ തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´¨àµà´¨à´¤àµ " +"UTF-8 ലൊകàµà´•àµ‡à´²àµà´•à´³àµâ€ ആയിരികàµà´•àµà´‚. മറàµà´±àµ à´…à´•àµà´·à´°à´•àµà´•àµ‚à´Ÿàµà´Ÿà´™àµà´™à´³àµâ€ പഴയ സിസàµà´±àµà´±à´™àµà´™à´³àµà´‚ സോഫàµà´±àµà´±àµâ€Œà´µàµ†à´¯à´±àµà´•à´³àµà´®à´¾à´¯à´¿ " +"പിനàµà´¨àµ‹à´Ÿàµà´Ÿàµà´³àµà´³ പൊരàµà´¤àµà´¤à´¤àµà´¤à´¿à´¨à´¾à´¯à´¿ ഉപയോഗപàµà´°à´¦à´®à´¾à´¯àµ‡à´¯àµà´•àµà´•à´¾à´‚. " + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "à´’à´¨àµà´¨àµà´®à´¿à´²àµà´²" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "സിസàµà´±àµà´±à´‚ പരിസരതàµà´¤à´¿à´¨àµ വേണàµà´Ÿà´¿à´¯àµà´³à´³ സഹജമായ ലൊകàµà´•àµ‡à´²àµâ€:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"ഉപയോകàµà´¤à´¾à´µà´¿à´¨àµà´µàµ‡à´£àµà´Ÿà´¿ ശരിയായ ഭാഷയിലàµâ€ ടെകàµà´¸àµà´±àµà´±àµ à´ªàµà´°à´¦à´°àµâ€à´¶à´¿à´ªàµà´ªà´¿à´•àµà´•àµà´¨àµà´¨à´¤à´¿à´¨à´¾à´¯à´¿ à´’à´°àµà´ªà´¾à´Ÿàµ ഡെബിയനàµâ€ " +"പാകàµà´•àµ‡à´œàµà´•à´³àµâ€ ലൊകàµà´•àµ‡à´²àµâ€ ഉപയോഗികàµà´•àµà´¨àµà´¨àµ. സൃഷàµà´Ÿà´¿à´•àµà´•à´ªàµà´ªàµ†à´Ÿàµà´Ÿ ലൊകàµà´•àµ‡à´²àµà´•à´³à´¿à´²àµâ€ നിനàµà´¨àµ സഹജമായ ലൊകàµà´•àµ‡à´²àµâ€ " +"സിസàµà´±àµà´±à´¤àµà´¤à´¿à´¨àµà´µàµ‡à´£àµà´Ÿà´¿ നിങàµà´™à´³àµâ€à´•àµà´•àµ തിരഞàµà´žàµ†à´Ÿàµà´•àµà´•à´¾à´µàµà´¨àµà´¨à´¤à´¾à´£àµ." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"സിസàµà´±àµà´±à´¤àµà´¤à´¿à´²àµâ€ à´Žà´²àµà´²à´¾à´¯à´¿à´Ÿà´¤àµà´¤àµ‡à´¯àµà´‚ സഹജമായ ഭാഷ ഇതൠതിരഞàµà´žàµ†à´Ÿàµà´•àµà´•àµà´‚. സഹജമായ ഭാഷ സംസാരികàµà´•à´¾à´¨àµâ€ " +"കഴിയാതàµà´¤ à´’à´¨àµà´¨à´¿à´²à´§à´¿à´•à´‚ ഉപയോകàµà´¤à´¾à´•àµà´•à´³àµà´³àµà´³ സിസàµà´±àµà´±à´®à´¾à´£à´¿à´¤àµ†à´™àµà´•à´¿à´²àµâ€ അവരàµâ€à´•àµà´•àµ à´ªàµà´°à´¯à´¾à´¸à´™àµà´™à´³àµâ€ à´…à´¨àµà´­à´µà´ªàµà´ªàµ†à´Ÿàµà´‚." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" --- glibc-2.7.orig/debian/po/tr.po +++ glibc-2.7/debian/po/tr.po @@ -0,0 +1,177 @@ +# Turkish translation of locales. +# This file is distributed under the same license as the locales package. +# Erçin EKER , 2004,2007. +# +msgid "" +msgstr "" +"Project-Id-Version: locales\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2007-04-09 11:02+0300\n" +"Last-Translator: Erçin EKER \n" +"Language-Team: Türkçe \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Tüm yereller" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "OluÅŸturulacak yereller: " + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Yerel (locale), kullanıcıların kullanmak istediÄŸi dil, ülke, karakter, " +"sıralama ÅŸekli gibi dile özgü ayarlar arasında kolayca geçiÅŸ yapmasını " +"saÄŸlayan bir yapıdır." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Lütfen hangi yerellerin oluÅŸturulacağını seçin. Yeni kurulum için UTF-8 " +"yereller öntanımlı olarak seçilecektir. DiÄŸer karakter setleri daha eski " +"sistemler ve yazılımlar ile uyumluluk için yararlı olabilir." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Hiçbiri" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Sistem için öntanımlı yerel:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"ÇoÄŸu Debian paketi mesajları göstermekte kullanacağı dili belirlemek için " +"yerelleri kullanır. OluÅŸturulmak üzere seçtikleriniz arasından sistem için " +"öntanımlı bir yerel seçebilirsiniz." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Bu ayar, sisteminizin bütününde kullanılacak dili belirleyecektir. EÄŸer " +"farklı dilleri konuÅŸan kullanıcıların da bulunduÄŸu çok kullanıcılı bir " +"sistem çalıştırıyorsanız, bu kullanıcılar bazı zorluklarla karşılaÅŸabilir. " + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" + +#~ msgid "" +#~ "Choose which locales to generate. The selection will be saved to `/etc/" +#~ "locale.gen', which you can also edit manually (you need to run `locale-" +#~ "gen' afterwards)." +#~ msgstr "" +#~ "OluÅŸturulacak yerelleri seçiniz. Yapılan seçim '/etc/locale.gen' dosyası " +#~ "içinde saklanacaktır. Daha sonra bu dosyayı elle deÄŸiÅŸtirebilirsiniz " +#~ "(bunu yaptıktan sonra `locale-gen' komutunu çalıştırmanız gerekecektir)." --- glibc-2.7.orig/debian/po/da.po +++ glibc-2.7/debian/po/da.po @@ -0,0 +1,192 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc-2.3.2.ds1\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2006-02-20 21:33+0200\n" +"Last-Translator: Morten Brix Pedersen \n" +"Language-Team: Danish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Alle lokalitetsfiler" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Lokalitetsfiler der skal genereres:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +#, fuzzy +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Lokalitetsfilerne er lavet sÃ¥ du kan skifte imellem forskellige sprog til " +"til dit Debian system." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Ingen" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Standard lokalitet til systemmiljøet:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +#, fuzzy +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Mange pakker i Debian bruger lokaliteter til at vise tekst i det korrekt " +"sprog til brugerne. Du kan ændre standard-lokaliteten hvis engelsk ikke er " +"dit modersmÃ¥ls sprog. Dine valg er baseret pÃ¥ hvilke lokalitetsfiler du " +"valgte at generere." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +#, fuzzy +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Bemærk: Dette vil sætte sproget for hele systemet. Hvis ikke alle brugerne " +"pÃ¥ dit system kan forstÃ¥ det sprog som du vælger, kan de løbe ind i " +"problemer." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" + +#~ msgid "" +#~ "Choose which locales to generate. The selection will be saved to `/etc/" +#~ "locale.gen', which you can also edit manually (you need to run `locale-" +#~ "gen' afterwards)." +#~ msgstr "" +#~ "Vælg hvilke lokaliteter der skal genereres. Dine valg vil blive gemt til " +#~ "'/etc/locale.gen', som du ogsÃ¥ kan redigere manuelt (du skal køre 'locale-" +#~ "gen' bagefter." + +#~ msgid "" +#~ "When `All locales' is selected, /etc/locale.gen will be set as a symlink " +#~ "to /usr/share/i18n/SUPPORTED." +#~ msgstr "" +#~ "NÃ¥r 'Alle lokalitetsfiler' er valgt, vil /etc/locale.gen blive oprettet " +#~ "som en symbolsk henvisning til /usr/share/i18n/SUPPORTED." --- glibc-2.7.orig/debian/po/it.po +++ glibc-2.7/debian/po/it.po @@ -0,0 +1,190 @@ +# Italian (it) translation of debconf templates for glibc +# Copyright (C) 2006 Free Software Foundation, Inc. +# This file is distributed under the same license as the glibc package. +# Luca Monducci , 2005-2008. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc 2.7 debconf templates\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2008-03-08 11:50+0100\n" +"Last-Translator: Luca Monducci \n" +"Language-Team: Italian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Tutti i locale" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "«Locale» da generare:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"I «locale» sono l'infrastruttura che permette di cambiare la lingua e " +"consente agli utenti di utilizzare la propria lingua, paese, caratteri, " +"criteri di ordinamento, ecc." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Scegliere quali «locale» generare. I «locale» UTF-8 dovrebbero essere già " +"prescelti, in particolare sulle nuove installazioni. Gli altri set di " +"caratteri potrebbero essere utili per risolvere problemi di compatibilità " +"all'indietro con sistemi o programmi più vecchi." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Nessuno" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "«Locale» predefinito sul sistema:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Molti pacchetti Debian usano i «locale» per mostrare messaggi nella lingua " +"dell'utente. È possibile scegliere, fra quelli generati, un «locale» come " +"predefinito per il sistema." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Questo imposta la lingua predefinita per l'intero sistema. Se questo è un " +"sistema multi-utente e non tutti gli utenti parlano la lingua predefinita " +"alcuni di essi potrebbero avere delle difficoltà." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Aggiornare glibc adesso?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"I servizi e i programmi in esecuzione che usano NSS devono essere riavviati " +"altrimenti potrebbero non essere più in grado di effettuare ricerche o " +"autenticazioni. Il processo d'installazione è in grado di riavviare alcuni " +"servizi (come ssh o telnetd), ma altri programmi non possono essere " +"riavviati automaticamente. Uno dei programmi che devono essere fermati e " +"riavviati manualmente dopo aver aggiornato glibc è xdm perché il riavvio " +"automatico potrebbe disconnettere le sessioni X11 attive." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Questo script ha rilevato che i seguenti servizi devono essere fermati prima " +"dell'aggiornamento: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Per interrompere adesso l'aggiornamento e riprenderlo in seguito, rispondere " +"«No» alla questa domanda." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Servizi da riavviare per l'aggiornamento della libreria GNU libc:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"I servizi e i programmi in esecuzione che usano NSS devono essere riavviati " +"altrimenti potrebbero non essere più in grado di effettuare ricerche o " +"autenticazioni (i servizi tipo ssh potrebbero avere problemi d'accesso). " +"Controllare il seguente elenco di nomi di script per init.d separati da uno " +"spazio relativi ai servizi che devono essere riavviati e, se necessario, " +"correggerlo." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Nota: il riavvio di sshd/telnetd non ha alcun effetto sulle connessioni " +"esistenti." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Errore nel riavvio di alcuni servizi per l'aggiornamento di GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Non è stato possibile riavviare i seguenti servizi per l'aggiornamento della " +"libreria GNU libc:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "È necessario avviarli manualmente con «/etc/init.d/ start»." --- glibc-2.7.orig/debian/po/vi.po +++ glibc-2.7/debian/po/vi.po @@ -0,0 +1,180 @@ +# Vietnamese Translation for GlibC. +# Copyright © 2008 Free Software Foundation, Inc. +# Clytie Siddall , 2005-2008. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc 2.7-9\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2008-02-29 15:01+1030\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.7b3\n" + +#: ../debhelper.in/locales.templates:1001 +#. Type: multiselect +#. Choices +msgid "All locales" +msgstr "Má»i miá»n địa phÆ°Æ¡ng" + +#: ../debhelper.in/locales.templates:1002 +#. Type: multiselect +#. Description +msgid "Locales to be generated:" +msgstr "Miá»n địa phÆ°Æ¡ng cần tạo ra:" + +#: ../debhelper.in/locales.templates:1002 +#. Type: multiselect +#. Description +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Miá»n địa phÆ°Æ¡ng (locale) là má»™t khuôn khổ để chuyển đổi giữa các ngôn ngữ " +"khác nhau, cÅ©ng cho phép ngÆ°á»i dùng chá»n sá»­ dụng ngôn ngữ, quốc gia, ký tá»±, thứ " +"tá»± sắp xếp v.v. của quê." + +#: ../debhelper.in/locales.templates:1002 +#. Type: multiselect +#. Description +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Hãy chá»n những miá»n địa phÆ°Æ¡ng cần tạo ra. Có nên chá»n miá»n địa phÆ°Æ¡ng kiểu UTF-8 theo mặc định, đặc biệt cho việc cài đặt má»›i. (Ghi chú : tiếng Việt cần thiết UTF-8.) Bá»™ ký tá»± khác có thể hữu ích để tÆ°Æ¡ng thích ngược vá»›i hệ thống/phần má»m cÅ©." + +#: ../debhelper.in/locales.templates:2001 +#. Type: select +#. Choices +msgid "None" +msgstr "Không có" + +#: ../debhelper.in/locales.templates:2002 +#. Type: select +#. Description +msgid "Default locale for the system environment:" +msgstr "Miá»n địa phÆ°Æ¡ng mặc định cho môi trÆ°á»ng hệ thống:" + +#: ../debhelper.in/locales.templates:2002 +#. Type: select +#. Description +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Nhiá»u gói của Debian có dùng miá»n địa phÆ°Æ¡ng để hiển thị văn bản bằng ngôn ngữ thích hợp vá»›i ngÆ°á»i dùng. Bạn có dịp chá»n miá»n địa phÆ°Æ¡ng mặc định cho hệ thống, trong những miá»n địa phÆ°Æ¡ng được tạo ra." + +#: ../debhelper.in/locales.templates:2002 +#. Type: select +#. Description +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Ghi chú : việc này sẽ chá»n ngôn ngữ mặc định cho toàn hệ thống. Nếu hệ thống này có nhiá»u ngÆ°á»i dùng và không phải tất cả có khả năng nói ngôn ngữ mặc định, há» sẽ gặp khó khăn." + +#: ../debhelper.in/libc.templates:1001 +#. Type: boolean +#. Description +msgid "Do you want to upgrade glibc now?" +msgstr "Bạn có muốn nâng cấp glibc ngay bây giá» không?" + +#: ../debhelper.in/libc.templates:1001 +#. Type: boolean +#. Description +#| msgid "" +#| "Running services and programs that are using NSS need to be restarted, " +#| "otherwise they might not be able to do lookup or authentication any more " +#| "(for services such as ssh, this can affect your ability to login). Please " +#| "review the following space-separated list of init.d scripts for services " +#| "to be restarted now, and correct it if needed." +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Các dịch vụ và chÆ°Æ¡ng trình Ä‘á»u Ä‘ang chạy dá»±a vào NSS thì cần phải được khởi chạy lại: không thì chúng không còn có khả năng tra tìm hay xác thá»±c lại. Tiến trình cài đặt có khả năng khởi chạy lại má»™t số dịch vụ riêng (v.d. ssh hoặc têlnetd) nhÆ°ng không thể tá»± Ä‘á»™ng khởi chạy lại các chÆ°Æ¡ng trình khác. Má»™t chÆ°Æ¡ng trình nhÆ° vậy mà cần phải bị dừng chạy rồi được khởi chạy lại bằng sau khi nâng cấp glibc là xdm, vì việc tá»± Ä‘á»™ng cài đặt có thể ngắt kết nối đến phiên chạy X11 Ä‘ang hoạt Ä‘á»™ng." + +#: ../debhelper.in/libc.templates:1001 +#. Type: boolean +#. Description +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "Văn lệnh này đã phát hiện những dịch vụ đã cài đặt sau mà phải bị dừng chạy trÆ°á»›c khi nâng cấp: ${services}" + +#: ../debhelper.in/libc.templates:1001 +#. Type: boolean +#. Description +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "Nếu bạn muốn làm gián Ä‘oạn tiến trình nâng cấp ngay bây giá» và tiếp tục sau, hãy trả lá»i « Không » bên dÆ°á»›i." + +#: ../debhelper.in/libc.templates:2001 +#. Type: string +#. Description +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Các dịch vụ cần khởi chạy lại để nâng cấp thÆ° viện libc GNU:" + +#: ../debhelper.in/libc.templates:2001 +#. Type: string +#. Description +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Các dịch vụ và chÆ°Æ¡ng trình Ä‘á»u Ä‘ang chạy khi sá»­ dụng NSS thì cần phải được " +"khởi chạy lại: không thì không còn có khả năng tra tìm hay xác thá»±c lại (đối " +"vá»›i dịch vụ nhÆ° SSH, trÆ°á»ng hợp này có thể ngăn cản bạn đăng nhập). Hãy xem " +"lại danh sách định giá»›i bằng dấu cách các văn lệnh init.d cho dịch vụ cần " +"khởi chạy lại ngay bây giá», và sá»­a nếu thích hợp." + +#: ../debhelper.in/libc.templates:2001 +#. Type: string +#. Description +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Ghi chú : khởi chạy lại sshd/telnetd không nên có tác Ä‘á»™ng kết nối Ä‘ang chạy." + +#: ../debhelper.in/libc.templates:3001 +#. Type: error +#. Description +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Lá»—i khởi chạy lại má»™t số dịch vụ để nâng cấp libc GNU." + +#: ../debhelper.in/libc.templates:3001 +#. Type: error +#. Description +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Những dịch vụ theo đây không thể được khởi chạy lại để nâng cấp thÆ° viện " +"libc GNU:" + +#: ../debhelper.in/libc.templates:3001 +#. Type: error +#. Description +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Bạn sẽ cần phải tá»± khởi chạy lại các dịch vụ này, bằng cách chạy lệnh « /etc/" +"init.d/ start »." --- glibc-2.7.orig/debian/po/fi.po +++ glibc-2.7/debian/po/fi.po @@ -0,0 +1,142 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2008-04-01 21:12+0200\n" +"Last-Translator: Esko Arajärvi \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Kaikki maa-asetukset" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Muodostettavat maa-asetukset." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales are a framework to switch between multiple languages and allow users to use their language, country, characters, collation order, etc." +msgstr "Maa-asetusten avulla on mahdollista vaihtaa käytettävää kieltä ja antaa käyttäjien asettaa haluamansa kieli, maa, merkistö, aakkostustapa, jne." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Please choose which locales to generate. UTF-8 locales should be chosen by default, particularly for new installations. Other character sets may be useful for backwards compatibility with older systems and software." +msgstr "Valitse mitkä maa-asetukset luodaan. Oletuksena tulisi valita UTF-8-tyypin asetuksia, erityisesti uusissa asennuksissa. Muut merkkijoukot voi olla tarpeen vanhempien järjestelmien ja ohjelmien kanssa yhteensopivuussyistä." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Ei mikään" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Järjestelmäympäristön oletusmaa-asetus:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Many packages in Debian use locales to display text in the correct language for the user. You can choose a default locale for the system from the generated locales." +msgstr "Monet Debianin paketit käyttävät maa-asetuksia näyttääkseen tekstit käyttäjälle oikealla kielellä. Järjestelmän oletusmaa-asetus voidaan valita luoduista maa-asetuksista." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "This will select the default language for the entire system. If this system is a multi-user system where not all users are able to speak the default language, they will experience difficulties." +msgstr "Tämä asettaa koko järjestelmän oletuskielen. Jos tällä järjestelmällä on useita käyttäjiä, eivätkä kaikki käyttäjät ymmärrä oletuskieltä, heillä tulee olemaan ongelmia." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Tulisiko glibc päivittää nyt?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Running services and programs that are using NSS need to be restarted, otherwise they might not be able to do lookup or authentication any more. The installation process is able to restart some services (such as ssh or telnetd), but other programs cannot be restarted automatically. One such program that needs manual stopping and restart after the glibc upgrade by yourself is xdm - because automatic restart might disconnect your active X11 sessions." +msgstr "Käynnissä olevat palvelut ja ohjelmat, jotka käyttävät NSS:ää, täytyy käynnistää uudelleen. Muuten ne eivät välttämättä enää pysty tekemään etsintöjä tai tunnistautumisia. Asennusprosessi pystyy käynnistämään jotkin palvelut uudelleen (esimerkiksi ssh:n ja telnetdin), mutta muita ohjelmia ei voida käynnistää automaattisesti uudelleen. Yksi tällainen ohjelma, joka täytyy käsin pysäyttää ja käynnistää uudelleen glibcin päivityksen jälkeen, on xdm. Tämä johtuu siitä, että automaattinen uudelleenkäynnistys saattaisi keskeyttää aktiiviset X11-istunnot." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "This script detected the following installed services which must be stopped before the upgrade: ${services}" +msgstr "Tämä komentosarja löysi seuraavat asennetut palvelut, jotka tulee pysäyttää ennen päivitystä: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "If you want to interrupt the upgrade now and continue later, please answer No to the question below." +msgstr "Jos päivitys halutaan keskeyttää nyt ja jatkaa myöhemmin, älä valitse tätä vaihtoehtoa." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Palvelut, jotka tulee käynnistää uudelleen GNU libc -kirjastoa päivitettäessä:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Running services and programs that are using NSS need to be restarted, otherwise they might not be able to do lookup or authentication any more (for services such as ssh, this can affect your ability to login). Please review the following space-separated list of init.d scripts for services to be restarted now, and correct it if needed." +msgstr "Käynnissä olevat palvelut ja ohjelmat, jotka käyttävät NSS:ää, täytyy käynnistää uudelleen. Muuten ne eivät välttämättä enää pysty tekemään etsintöjä tai tunnistautumisia (esimerkiksi ssh:n kanssa kirjautuminen ei välttämättä onnistu). Tarkista alla oleva välilyönnein eroteltu lista niiden palveluiden init.d-komentosarjoista, jotka käynnistetään nyt uudelleen, ja korjaa sitä tarvittaessa." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "Huomautus: sshd:n tai telnetd:n uudelleenkäynnistyksen ei pitäisi vaikuttaa olemassa oleviin yhteyksiin." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Joidenkin palveluiden käynnistys epäonnistui päivitettäessä GNU libc:tä" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "The following services could not be restarted for the GNU libc library upgrade:" +msgstr "Seuraavia palveluita ei voitu käynnistää uudelleen päivitettäessä GNU libc -kirjastoa:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "You will need to start these manually by running '/etc/init.d/ start'." +msgstr "Nämä palvelut tulee käynnistää käsin ajamalla â€/etc/init.d/ startâ€." + +#~ msgid "" +#~ "Choose which locales to generate. The selection will be saved to `/etc/" +#~ "locale.gen', which you can also edit manually (you need to run `locale-" +#~ "gen' afterwards)." +#~ msgstr "" +#~ "Valitse lokaalit, jotka haluat muodostaa. Valinta talletetaan tiedostoon\n" +#~ "\"/etc/locale.gen\", jota voit myös itse muokata. (Muokkaamisen jälkeen\n" +#~ "tulee ajaa komento \"locale-gen\".)" + --- glibc-2.7.orig/debian/po/sk.po +++ glibc-2.7/debian/po/sk.po @@ -0,0 +1,127 @@ +# Ivan Masár , 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: glibc 2.6.1-1\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2008-02-26 23:21+0100\n" +"Last-Translator: Ivan Masár \n" +"Language-Team: Slovak \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "VÅ¡etky locales" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Locales, ktoré sa majú vytvoriÅ¥:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales are a framework to switch between multiple languages and allow users to use their language, country, characters, collation order, etc." +msgstr "Locales sú infraÅ¡truktúra na prepínanie medzi viacerými jazykmi a umožňujú používateľom používaÅ¥ ich jazyk, krajinu, poradie znakov atÄ." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Please choose which locales to generate. UTF-8 locales should be chosen by default, particularly for new installations. Other character sets may be useful for backwards compatibility with older systems and software." +msgstr "Prosím zvoľte, ktoré locales sa majú vytvoriÅ¥. Å tandardne by mali byÅ¥ zvolené UTF-8 locales, zvlášť na nových inÅ¡taláciách. Iné znakové sady môžu byÅ¥ užitoÄné pre spätnú kompatibilitu so staršími systémami a softvérom." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "žiadne" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Å tandarné locale systémového prostredia:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Many packages in Debian use locales to display text in the correct language for the user. You can choose a default locale for the system from the generated locales." +msgstr "Mnohé balíky v Debiane používajú locales pre zobrazovanie textu v správnom jazyku používateľa. Z vytvorených locales môžete zvoliÅ¥ Å¡tandardné locale systému." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "This will select the default language for the entire system. If this system is a multi-user system where not all users are able to speak the default language, they will experience difficulties." +msgstr "Týmto vyberiete Å¡tandardný jazyk pre celý systém. Ak je toto viacpoužívateľský systém, kde nie vÅ¡etci používatelia hovoria Å¡tandarným jazykom, môžu maÅ¥ Å¥ažkosti." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Želáte si teraz aktualizovaÅ¥ glibc?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +#| msgid "" +#| "Running services and programs that are using NSS need to be restarted, " +#| "otherwise they might not be able to do lookup or authentication any more " +#| "(for services such as ssh, this can affect your ability to login). Please " +#| "review the following space-separated list of init.d scripts for services " +#| "to be restarted now, and correct it if needed." +msgid "Running services and programs that are using NSS need to be restarted, otherwise they might not be able to do lookup or authentication any more. The installation process is able to restart some services (such as ssh or telnetd), but other programs cannot be restarted automatically. One such program that needs manual stopping and restart after the glibc upgrade by yourself is xdm - because automatic restart might disconnect your active X11 sessions." +msgstr "Bežiace programy a služby, ktoré používajú NSS sa musia reÅ¡tartovaÅ¥, inak by viac neboli schopné vykonávaÅ¥ vyhľadávanie a autentifikáciu. InÅ¡talátor je schopný sám reÅ¡tartovaÅ¥ niektoré služby (ako ssh a telnet), ale iné programy nie je možné reÅ¡tartovaÅ¥ automaticky. Jeden z takýchto programov, ktoré vyžadujú, aby ste ho manuálne zastavili a reÅ¡tartovali po aktualizácii glibc, je xdm - pretože automatický reÅ¡tart by mohol odpojiÅ¥ vaÅ¡e aktívne relácie X11." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "This script detected the following installed services which must be stopped before the upgrade: ${services}" +msgstr "Tento skript zistil, že nasledovné služby je pred aktualizáciou potrebné zastaviÅ¥:${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "If you want to interrupt the upgrade now and continue later, please answer No to the question below." +msgstr "Ak si teraz želáte preruÅ¡iÅ¥ aktualizáciu a pokraÄovaÅ¥ neskôr, prosím, odpovedzte na túto otázku „Nie“." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Služby, ktoré sa majú po aktualizácii knižnice GNU libc reÅ¡tartovaÅ¥:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Running services and programs that are using NSS need to be restarted, otherwise they might not be able to do lookup or authentication any more (for services such as ssh, this can affect your ability to login). Please review the following space-separated list of init.d scripts for services to be restarted now, and correct it if needed." +msgstr "Bežiace programy a služby, ktoré používajú NSS a majú sa reÅ¡tartovaÅ¥, inak by viac neboli schopné vykonávaÅ¥ vyhľadávanie a autentifikáciu (pri službách ako ssh toto môže maÅ¥ vplyv na schopnosÅ¥ prihlásiÅ¥ sa). Prosím, skontrolujte nasledovný zoznam (položky sú oddelené medzerami) init.d skriptov služieb, ktoré je treba reÅ¡tartovaÅ¥ a ak je to potrebné, opravte ho." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "Pozn.: reÅ¡tartovanie sshd/telnetd by nemalo maÅ¥ vplyv na už nadviazané spojenia." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Nepodarilo sa reÅ¡tartovaÅ¥ niektoré služby pri aktualizácii GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "The following services could not be restarted for the GNU libc library upgrade:" +msgstr "Nasledovné služby sa pri aktualizácii knižnice GNU libc nepodarilo sa reÅ¡tartovaÅ¥:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "You will need to start these manually by running '/etc/init.d/ start'." +msgstr "Budete musieÅ¥ tieto služby spustiÅ¥ ruÄne pomocou „/etc/init.d/ start“." + --- glibc-2.7.orig/debian/po/nl.po +++ glibc-2.7/debian/po/nl.po @@ -0,0 +1,140 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2008-02-27 08:28+0100\n" +"Last-Translator: Bart Cornelis \n" +"Language-Team: debian-l10n-dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Dutch\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Alle lokalisaties" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Te genereren lokalisaties:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales are a framework to switch between multiple languages and allow users to use their language, country, characters, collation order, etc." +msgstr "Lokalisatie is het raamwerk om om te schakelen tussen verschillende talen en laat gebruikers toe om hun eigen taal, land, karakterset, enzovoort te gebruiken." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Please choose which locales to generate. UTF-8 locales should be chosen by default, particularly for new installations. Other character sets may be useful for backwards compatibility with older systems and software." +msgstr "Welke lokalisaties wilt u laten genereren? Standaard kiest u, zeker voor nieuwe installaties, best UTF-8 lokalisaties. Andere karaktersets kunnen nuttig zijn voor compatibiliteit met oudere systemen of software." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Geen" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Standaardlokalisatie voor dit systeem:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Many packages in Debian use locales to display text in the correct language for the user. You can choose a default locale for the system from the generated locales." +msgstr "Veel Debian-pakketten gebruiken lokalisaties om de tekst in de voor de gebruiker juiste taal weer te geven. U kunt u de standaardlokalisatie voor het systeem kiezen uit de gegeneerde lokalisaties." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "This will select the default language for the entire system. If this system is a multi-user system where not all users are able to speak the default language, they will experience difficulties." +msgstr "Dit bepaalt de standaardtaal voor het volledige systeem. Op systemen met meerdere gebruikers kunt u problemen krijgen als niet alle gebruikers de gekozen taal spreken; in dat geval kunt u misschien beter de standaardlokalisatie niet veranderen." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Wilt u glibc nu opwaarderen?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +#| msgid "" +#| "Running services and programs that are using NSS need to be restarted, " +#| "otherwise they might not be able to do lookup or authentication any more " +#| "(for services such as ssh, this can affect your ability to login). Please " +#| "review the following space-separated list of init.d scripts for services " +#| "to be restarted now, and correct it if needed." +msgid "Running services and programs that are using NSS need to be restarted, otherwise they might not be able to do lookup or authentication any more. The installation process is able to restart some services (such as ssh or telnetd), but other programs cannot be restarted automatically. One such program that needs manual stopping and restart after the glibc upgrade by yourself is xdm - because automatic restart might disconnect your active X11 sessions." +msgstr "Draaiende diensten en programma's die NSS gebruiken dienen herstart te worden. Zo niet kunnen ze mogelijk geen opzoekingen en authenticatie meer doen. Het Installatieproces kan sommige diensten (zoals ssh en telnetd) herstarten, maar andere diensten kunnen niet automatisch herstart worden. Een zo'n dienst die handmatig dient gestopt en gestart te worden na de opwaardering van glibc is xdm, dit omdat een automatische herstart uw actieve X11-sessies verbreekt." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "This script detected the following installed services which must be stopped before the upgrade: ${services}" +msgstr "Dit script heeft de volgende diensten ontdekt die gestopt moeten worden voor de opwaardering: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "If you want to interrupt the upgrade now and continue later, please answer No to the question below." +msgstr "Als u de opwaardering nu wilt afbreken en hiermee later wilt verder gaan dient u zo meteen te weigeren." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Tijdens 'GNU libc'-opwaardering te herstarten diensten:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Running services and programs that are using NSS need to be restarted, otherwise they might not be able to do lookup or authentication any more (for services such as ssh, this can affect your ability to login). Please review the following space-separated list of init.d scripts for services to be restarted now, and correct it if needed." +msgstr "Draaiende diensten en programma's die NSS gebruiken dienen herstart te worden, zo niet kunnen ze mogelijk geen opzoekingen en authenticatie meer doen (voor diensten zoals ssh kan dit gevolgen hebben voor de mogelijkheid om in te loggen). Gelieve de volgende, met spaties gescheiden lijst van init.d-scripts voor diensten die herstart dienen te worden te controleren en indien nodig bij te werken." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "Opmerking: herstarten van sshd/telnetd heeft normaal geen effect op bestaande verbindingen." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Herstarten van sommige diensten bij de opwaardering van GNU libc is mislukt." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "The following services could not be restarted for the GNU libc library upgrade:" +msgstr "De volgende diensten konden niet herstart worden na de opwaardering van GNU libc:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "You will need to start these manually by running '/etc/init.d/ start'." +msgstr "U dient deze diensten handmatig te herstarten via het commando '/etc/init.d/ start'." + --- glibc-2.7.orig/debian/po/de.po +++ glibc-2.7/debian/po/de.po @@ -0,0 +1,212 @@ +# Translation of glibc debconf templates to German +# Copyright (C) Helge Kreutzmann , 2006-2008. +# This file is distributed under the same license as the glibc package. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc 2.7-9\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2008-02-26 22:41+0100\n" +"Last-Translator: Helge Kreutzmann \n" +"Language-Team: de \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-15\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Alle Standorteinstellungen" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Zu generierende Standorteinstellungen (»locales«):" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Standorteinstellungen ist ein System, um zwischen verschiedenen Sprachen " +"umzuschalten. Benutzer können damit ihre Sprache, ihr Land, ihren " +"Zeichensatz, ihre Sortierreihenfolge und anderes mehr festlegen." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Bitte wählen Sie aus, welche Standorteinstellungen erzeugt werden sollen. " +"UTF-8-Standorteinstellungen sollten standardmäßig ausgewählt werden, " +"insbesondere für neue Installationen. Andere Zeichensätze könnten für " +"Rückkompatibilität mit älteren Systemen und Software nützlich sein." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Keine" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Standard-Standorteinstellung für die Systemumgebung?" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Viele Debian-Pakete benutzen Standorteinstellungen, um Text in der für die " +"Benutzer korrekten Sprache anzuzeigen. Sie können aus den generierten " +"Standorteinstellungen einen Standard für Ihr System auswählen." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Bemerkung: Dies wählt die Standardsprache für das gesamte System. Falls dies " +"ein Mehrbenutzer-System ist und nicht alle Benutzer die Standardsprache " +"sprechen, dann werden diese Schwierigkeiten haben." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Möchten Sie das Upgrade von Glibc jetzt durchführen?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Laufende Dienste und Programme, die NSS verwenden, müssen neu gestartet " +"werden, da sie andernfalls keine Überprüfungen oder Authentisierung mehr " +"durchführen können. Der Installationsprozess kann einige Dienste neu starten " +"(wie Ssh oder Telnetd), aber andere Programme können nicht automatisch neu " +"gestartet werden. Eines dieser Programme, die nach dem Upgrade von Glibc ein " +"manuelles Stoppen und Neustarten benötigen ist Xdm, da ein automatischer " +"Neustart Sie von Ihren aktiven X11-Sitzung trennen könnte." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Dieses Skript erkannte die folgenden installierten Dienste, die vor dem " +"Upgrade gestoppt werden müssen: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Falls Sie das Upgrade jetzt unterbrechen und später Fortfahren möchten, " +"antworten Sie bitte auf die unten folgende Frage mit Nein." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" +"Dienste, die beim GNU Libc-Bibliotheks-Upgrade neu gestartet werden sollen:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Laufende Dienste und Programme, die NSS verwenden, müssen neu gestartet " +"werden, da sie andernfalls keine Überprüfungen oder Authentisierung mehr " +"durchführen können (für Dienste wie ssh kann dies die Möglichkeit der " +"Anmeldung betreffen). Bitte prüfen Sie, welche der Dienste in der folgenden, " +"durch Leerzeichen getrennte Liste von init.d-Skripten neu gestartet werden " +"sollen, und korrigieren Sie diese falls notwendig." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Hinweis: das Neustarten von sshd/telnetd sollte existierende Verbindungen " +"nicht beeinträchtigen." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Fehler beim Neustarten einiger Dienste für das GNU Libc-Upgrade" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Die folgenden Dienste konnten für das GNU Libc-Upgrade nicht neu gestartet " +"werden:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Sie müssen diese manuell starten, indem Sie »/etc/init.d/ start« " +"ausführen." + +#~ msgid "${services}" +#~ msgstr "${services}" + +#~ msgid "" +#~ "Choose which locales to generate. The selection will be saved to `/etc/" +#~ "locale.gen', which you can also edit manually (you need to run `locale-" +#~ "gen' afterwards)." +#~ msgstr "" +#~ "Sie können hier Standorteinstellungen auswählen, die jetzt generiert " +#~ "werden sollen. Diese Einstellung wird in »/etc/locale-gen« gespeichert. " +#~ "Sie können diese Datei auch manuell ändern. Starten Sie nach der Änderung " +#~ "»locale-gen«." + +#~ msgid "" +#~ "When `All locales' is selected, /etc/locale.gen will be set as a symlink " +#~ "to /usr/share/i18n/SUPPORTED." +#~ msgstr "" +#~ "Wenn »Alle Standorteinstellungen« gewählt ist, wird /etc/locale.gen als " +#~ "Symlink auf /usr/share/i18n/SUPPORTED eingerichtet." --- glibc-2.7.orig/debian/po/pl.po +++ glibc-2.7/debian/po/pl.po @@ -0,0 +1,204 @@ +# +msgid "" +msgstr "" +"Project-Id-Version: debconf-glibc-locales-pl\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2008-02-28 21:45+0100\n" +"Last-Translator: Emilian Nowak \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Gettext Translator 0.9\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Wszystkie dostÄ™pne" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Wybierz ustawienia lokalne, które chcesz wygenerować:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Wybierane tutaj ustawienia lokalne stanowiÄ… podstawowÄ… strukturÄ™ dajÄ…cÄ… " +"możliwość pracy systemu w specyficznym dla danego kraju Å›rodowisku (jÄ™zyk, " +"zestaw znaków, kolejność sortowania itp.)" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Wybierz jakie ustawienia lokalne chcesz wygenerować. Najkorzystniej jest " +"wybrać UTF-8, zwÅ‚aszcza na nowo instalowanych systemach. PozostaÅ‚e kodowania " +"mogÄ… być przydatne, aby utrzymać wstecznÄ… kompatybilność ze starymi " +"systemami lub programami." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Brak" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Wybierz domyÅ›lne ustawienia lokalne, dla swojego systemu:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Wiele programów dostarczanych w pakietach Debiana wykorzystuje ustawienia " +"lokalne, aby wyÅ›wietlać komunikaty we wÅ‚aÅ›ciwym dla użytkownika jÄ™zyku. " +"Możesz zmienić domyÅ›lne ustawienia lokalne dla caÅ‚ego systemu. Można wybrać " +"tylko te ustawienia lokalne, które wczeÅ›niej zostaÅ‚y wygenerowane." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Zwróć uwagÄ™ na to, że wybrany tutaj jÄ™zyk ma wpÅ‚yw na na caÅ‚y system i " +"wiÄ™kszość dziaÅ‚ajÄ…cych w nim programów. Jeżeli z tego systemu korzysta wielu " +"użytkowników posÅ‚ujÄ…cych siÄ™ różnymi jÄ™zykami, to mogÄ… oni mieć problemy ze " +"zrozumieniem komunikatów systemu." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Czy teraz chcesz zaktualizować glibc ?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Serwisy i programy wykorzystujÄ…ce NSS wymagajÄ… ponownego uruchomienia aby " +"operacje zwiÄ…zane z autoryzacjÄ… dziaÅ‚aÅ‚y prawidÅ‚owo. Proces instalacji może " +"zrestartować część serwisów (jak np. ssh lub telnetd), jednak niektóre " +"usÅ‚ugi bÄ™dÄ… wymagaÅ‚y ingerencji użytkownika. PrzykÅ‚adem takiego programu " +"jest xdm, którego restart mógÅ‚by spowodować wyÅ‚Ä…czenie aktywnej sesji X11." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Skrypt wykryÅ‚ nastÄ™pujÄ…ce serwisy, które należy rÄ™cznie zrestartować " +"${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Jeżeli chcesz przerwać aktualizacjÄ™ i dokoÅ„czyć jÄ… później wybierz nie." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Serwisy wymagajÄ…ce restartu po aktualizacji GNU libc." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Uruchomione serwisy i programy wykorzystujÄ…ce NSS wymagajÄ… restartu. W " +"przeciwnym wypadku nie bÄ™dÄ… operacje zwiÄ…zane z autoryzacjÄ… nie bÄ™dÄ… " +"dziaÅ‚aÅ‚y prawidÅ‚owo. Przy usÅ‚ugach takich jak ssh bÄ™dzie to oznaczaÅ‚o brak " +"możliwoÅ›ci zalogowania. \n" +"Zalecamy przejrzenie listy skryptów startowych i ewentualne jej poprawnie." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Uwaga: restart sshd/telnetd nie powinien mieć wpÅ‚ywy na nawiÄ…zane już " +"poÅ‚Ä…czenia." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" +"NastÄ…piÅ‚ bÅ‚Ä…d podczas restartowania niektórych usÅ‚ug po aktualizacji GNU " +"libc." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "NastÄ™pujÄ…ce usÅ‚ugi nie zostaÅ‚y zrestartowane po aktualizacji GNU libc:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Aby zrestartować rÄ™cznie te usÅ‚ugi należy wywoÅ‚ać '/etc/init.d/ " +"start'." + +#~ msgid "" +#~ "Choose which locales to generate. The selection will be saved to `/etc/" +#~ "locale.gen', which you can also edit manually (you need to run `locale-" +#~ "gen' afterwards)." +#~ msgstr "" +#~ "Wybierz, który zestaw ustawieÅ„ lokalnych chcesz wygenerować. Twój wybór " +#~ "zostanie zapisany do pliku `/etc/locale.gen', który można później " +#~ "edytować dowolnym edytorem tekstu (w tym przypadku konieczne bÄ™dzie " +#~ "późniejsze uruchomienie 'locale-gen')." + +#~ msgid "" +#~ "When `All locales' is selected, /etc/locale.gen will be set as a symlink " +#~ "to /usr/share/i18n/SUPPORTED." +#~ msgstr "" +#~ "Po wybraniu `Wszystkie dostÄ™pne', plik /etc/locale.gen bÄ™dzie dowiÄ…zaniem " +#~ "symbolicznym do/usr/share/i18n/SUPPORTED." --- glibc-2.7.orig/debian/po/ru.po +++ glibc-2.7/debian/po/ru.po @@ -0,0 +1,200 @@ +# Translation of glibc debconf .po to Russian +# This file is distributed under the same license as the PACKAGE package. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. +# Yuri Kozlov , 2006. +# Sergey Alyoshin , 2007, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc_2.7-9_ru\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2008-03-02 21:28+0300\n" +"Last-Translator: Sergey Alyoshin \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.9.1\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Ð’Ñе локали" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Локали, которые будут Ñозданы:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Локаль -- Ñто инфраÑтруктура Ð´Ð»Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ¸ в ÑиÑтеме неÑкольких Ñзыков; она " +"позволÑет пользователю наÑтроить Ñзык Ñообщений, Ñтрану, алфавит, порÑдок " +"Ñортировки и Ñ‚.п." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Выберите Ñоздаваемые локали. Кодировка локали UTF-8 должна быть выбрана по " +"умолчанию, оÑобенно при новой инÑталлÑции. Другие кодировки локали могут " +"быть полезны Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ð¾Ð¹ ÑовмеÑтимоÑти Ñо Ñтарыми ÑиÑтемами и программами." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Ðет" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Локаль по умолчанию в ÑиÑтемном окружении:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Многие пакеты в Debian иÑпользуют локали Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñообщений на Ñзыке " +"пользователÑ. Ð’Ñ‹ можете выбрать из Ñозданных локалей ÑиÑтемную локаль по " +"умолчанию." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Эта наÑтройка уÑтанавливает Ñзык по умолчанию Ð´Ð»Ñ Ð²Ñей ÑиÑтемы. ЕÑли Ñто " +"многопользовательÑÐºÐ°Ñ ÑиÑтема, где не вÑе пользователи говорÑÑ‚ на выбранном " +"Ñзыке по умолчанию, то у них возникнут трудноÑти." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Хотите выполнить обновление glibc ÑейчаÑ?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +#| msgid "" +#| "Running services and programs that are using NSS need to be restarted, " +#| "otherwise they might not be able to do lookup or authentication any more " +#| "(for services such as ssh, this can affect your ability to login). Please " +#| "review the following space-separated list of init.d scripts for services " +#| "to be restarted now, and correct it if needed." +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Запущенные ÑервиÑÑ‹ и программы, которые иÑпользуют NSS, должны быть " +"перезапущены, иначе они не будут ÑпоÑобны выполнÑÑ‚ÑŒ поиÑк или аутентификацию. " +"Ð’ процеÑÑе уÑтановки возможно перезапуÑтить некоторые ÑервиÑÑ‹ " +"(такие, как ssh или telnetd), но другие программы не могут быть автоматичеÑки " +"перезапущены. Одна из таких программ, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ ручной оÑтановки и перезапуÑка " +"поÑле Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ glibc, Ñто xdm, так как её автоматичеÑкий перезапуÑк может " +"отключить ваши активные ÑеÑÑии X11." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Этот Ñценарий определил Ñледующие уÑтановленные ÑервиÑÑ‹, которые должны быть " +"оÑтановлены перед обновлением: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"ЕÑли вы желаете прервать процеÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸ продолжить позже, ответьте " +"Ðет на Ñледующий вопроÑ." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Ð”Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ GNU libc должны быть перезапущены Ñледующие ÑервиÑÑ‹:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Запущенные ÑервиÑÑ‹ и программы, которые иÑпользуют NSS, должны быть " +"перезапущены, иначе они не будут ÑпоÑобны выполнÑÑ‚ÑŒ поиÑк или аутентификацию " +"(Ð´Ð»Ñ Ñ‚Ð°ÐºÐ¸Ñ… ÑервиÑов, как ssh, Ñто может повлиÑÑ‚ÑŒ на возможноÑÑ‚ÑŒ входа в " +"ÑиÑтему). ПроÑмотрите Ñледующий разделённый пробелами ÑпиÑок из " +"Ñкриптов init.d Ð´Ð»Ñ ÑервиÑов, которые будут ÑÐµÐ¹Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ñ‹ и " +"отредактируйте его при необходимоÑти." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Примечание: перезапуÑк sshd/telnetd не должен повлиÑÑ‚ÑŒ на какие-либо из " +"ÑущеÑтвующих Ñоединений." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" +"Произошёл Ñбой при перезапуÑке некоторых ÑервиÑов Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Следующие ÑервиÑÑ‹ не могут быть перезапущены Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐ¸ GNU " +"libc:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Вам будет нужно запуÑтить их вручную, Ð´Ð»Ñ Ñ‡ÐµÐ³Ð¾ Ñледует выполнить '/etc/init." +"d/<ÑервиÑ> start'." --- glibc-2.7.orig/debian/po/ja.po +++ glibc-2.7/debian/po/ja.po @@ -0,0 +1,185 @@ +# Kenshi Muto , 2007 +# GOTO Masanori , -2007 +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: locales 2.7-9\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2008-02-27 09:28+0900\n" +"Last-Translator: Kenshi Muto \n" +"Language-Team: Japanese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "ã™ã¹ã¦ã®ãƒ­ã‚±ãƒ¼ãƒ«" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "生æˆã™ã‚‹ãƒ­ã‚±ãƒ¼ãƒ«ã®é¸æŠž:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"ロケールã¨ã¯ã€è¤‡æ•°ã®è¨€èªžã‚’切り替ãˆã€ãƒ¦ãƒ¼ã‚¶ãŒè‡ªèº«ã®è¨€èªžãƒ»å›½ãƒ»æ–‡å­—・並ã¹æ›¿ãˆé †" +"åºãªã©ã‚’使ãˆã‚‹ã‚ˆã†ã«è¨±å¯ã™ã‚‹ãŸã‚ã®ä»•çµ„ã¿ã§ã™ã€‚" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"生æˆã—ãŸã„ロケールをé¸æŠžã—ã¦ãã ã•ã„。UTF-8 ロケールã¯ã€ç‰¹ã«æ–°è¦ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼" +"ルã—ãŸã‚‚ã®ã§ã‚ã‚Œã°ã€ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§é¸æŠžã•ã‚Œã¦ã„ã‚‹ã¯ãšã§ã™ã€‚ãã®ä»–ã®æ–‡å­—セット" +"ã¯ã€ã‚ˆã‚Šå¤ã„システムãŠã‚ˆã³ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¨ã®å¾Œæ–¹äº’æ›æ€§ã®ãŸã‚ã«å½¹ç«‹ã¤ã§ã—ょã†ã€‚" + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "ãªã—" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "システム標準ã®ç’°å¢ƒå¤‰æ•°ã¨ã—ã¦è¨­å®šã™ã‚‹ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆãƒ­ã‚±ãƒ¼ãƒ«:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"ユーザã«æ­£ã—ã„言語ã§ãƒ†ã‚­ã‚¹ãƒˆã‚’表示ã™ã‚‹ãŸã‚ã€Debian ã§ã¯å¤šãã®ãƒ‘ッケージãŒãƒ­" +"ケールを使用ã—ã¾ã™ã€‚生æˆã—ãŸãƒ­ã‚±ãƒ¼ãƒ«ã®ä¸­ã‹ã‚‰ã‚·ã‚¹ãƒ†ãƒ ã§ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆãƒ­ã‚±ãƒ¼ãƒ«ã‚’" +"é¸æŠžã§ãã¾ã™ã€‚" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"ã“ã‚Œã¯ã‚·ã‚¹ãƒ†ãƒ å…¨ä½“ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆãƒ­ã‚±ãƒ¼ãƒ«ã‚’é¸ã¶ã“ã¨ã«ãªã‚Šã¾ã™ã€‚ã“ã®ã‚·ã‚¹ãƒ†ãƒ ãŒãƒž" +"ルãƒãƒ¦ãƒ¼ã‚¶ã‚·ã‚¹ãƒ†ãƒ ã§ã€ã™ã¹ã¦ã®ãƒ¦ãƒ¼ã‚¶ãŒãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®è¨€èªžã‚’話ã™ã“ã¨ãŒã§ãã‚‹ã¨ã„" +"ã†ã‚ã‘ã§ã¯ãªã„å ´åˆã¯ã€ãã†ã„ã£ãŸäººã€…ã¯å›°é›£ã‚’æ„Ÿã˜ã‚‹ã“ã¨ã«ãªã£ã¦ã—ã¾ã„ã¾ã™ã€‚" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "glibc を今更新ã—ã¾ã™ã‹?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "NSS を利用ã—ã¦ã„る実行中ã®ã‚µãƒ¼ãƒ“スãŠã‚ˆã³ãƒ—ログラムã¯ã€å†èµ·å‹•ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ã•ã‚‚ãªã„ã¨ã€ãƒ«ãƒƒã‚¯ã‚¢ãƒƒãƒ—ãŠã‚ˆã³èªè¨¼ãŒã‚‚ã†åˆ©ç”¨ã§ããªã„ã“ã¨ã«ãªã‚Šã¾ã™ã€‚インストール手続ãã§ã¯ã„ãã¤ã‹ã®ã‚µãƒ¼ãƒ“ス (ssh ã‚„ telnetd ãªã©) ã‚’å†èµ·å‹•ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ãŒã€ãã®ä»–ã®ãƒ—ログラムã¯è‡ªå‹•ã§ã¯å†èµ·å‹•ã•ã‚Œã¾ã›ã‚“。手動ã§ã®åœæ­¢ãŠã‚ˆã³ glibc ã®æ›´æ–°ã®ã‚ã¨ã«ã‚ãªãŸè‡ªèº«ã§å†èµ·å‹•ã™ã‚‹å¿…è¦ã®ã‚ã‚‹ãã®ã‚ˆã†ãªãƒ—ログラム㮠1 ã¤ã¨ã—ã¦ã¯ã€xdm ãŒã‚ã‚Šã¾ã™ã€‚ã¨ã„ã†ã®ã‚‚ã€è‡ªå‹•å†èµ·å‹•ã¯ã‚ãªãŸã®ã‚¢ã‚¯ãƒ†ã‚£ãƒ–㪠X11 ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã‚’é–‰ã˜ã¦ã—ã¾ã†ã“ã¨ã«ãªã‚‹ã‹ã‚‰ã§ã™ã€‚" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "スクリプトã¯ã€æ›´æ–°å‰ã«åœæ­¢ã•ã‚Œãªã‘ã‚Œã°ãªã‚‰ãªã„以下ã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚ŒãŸã‚µãƒ¼ãƒ“スを検出ã—ã¾ã—ãŸ: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "更新を今中止ã—ã¦å¾Œæ—¥ç¶šè¡Œã—ãŸã„ã®ã§ã‚ã‚Œã°ã€ä»¥ä¸‹ã®è³ªå•ã§ã€Œã„ã„ãˆã€ã¨ç­”ãˆã¦ãã ã•ã„。" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "GNU libc ライブラリã®æ›´æ–°ã§å†èµ·å‹•ã™ã‚‹ã‚µãƒ¼ãƒ“ス:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"NSS を利用ã—ã¦ã„る実行中ã®ã‚µãƒ¼ãƒ“スãŠã‚ˆã³ãƒ—ログラムã¯ã€å†èµ·å‹•ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾" +"ã™ã€‚ã•ã‚‚ãªã„ã¨ã€ãƒ«ãƒƒã‚¯ã‚¢ãƒƒãƒ—ãŠã‚ˆã³èªè¨¼ãŒã‚‚ã†åˆ©ç”¨ã§ããªã„ã“ã¨ã«ãªã‚Šã¾ã™ (ssh " +"ã®ã‚ˆã†ãªã‚µãƒ¼ãƒ“スã§ã¯ã€ã“ã‚Œã¯ãƒ­ã‚°ã‚¤ãƒ³ã§ãã‚‹ã‹ã©ã†ã‹ã«å½±éŸ¿ã—ã¾ã™)。以下ã®ã‚¹ãƒšãƒ¼" +"スã§åŒºåˆ‡ã‚‰ã‚ŒãŸã€ä»Šå†èµ·å‹•ã™ã‚‹ã‚µãƒ¼ãƒ“ス㮠init.d スクリプトã®ãƒªã‚¹ãƒˆã‚’見ã¦ã€å¿…è¦" +"ãªã‚‰ä¿®æ­£ã—ã¦ãã ã•ã„。" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "注æ„: sshd/telnetd ã®å†èµ·å‹•ã¯æ—¢å­˜ã®æŽ¥ç¶šã«ã¯å½±éŸ¿ã—ãªã„ã¯ãšã§ã™ã€‚" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "GNU libc æ›´æ–°ã®ãŸã‚ã®ã„ãã¤ã‹ã®ã‚µãƒ¼ãƒ“スã®å†èµ·å‹•ã§å¤±æ•—" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"GNU libc ライブラリ更新ã®ãŸã‚ã®ã€ä»¥ä¸‹ã®ã‚µãƒ¼ãƒ“スã®å†èµ·å‹•ãŒã§ãã¾ã›ã‚“ã§ã—ãŸã€‚" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"'/etc/init.d/<サービス> start' を実行ã™ã‚‹ã“ã¨ã§ã€ã“れらを手動ã§èµ·å‹•ã™ã‚‹å¿…è¦ãŒ" +"ã‚ã‚Šã¾ã™ã€‚" --- glibc-2.7.orig/debian/po/templates.pot +++ glibc-2.7/debian/po/templates.pot @@ -0,0 +1,157 @@ +# 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 , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" --- glibc-2.7.orig/debian/po/lt.po +++ glibc-2.7/debian/po/lt.po @@ -0,0 +1,188 @@ +# translation of lt.po to Lithuanian +# Copyright (C) 2006 The Free Software Foundation +# This file is distributed under the same license as the glibc package. +# +# Gintautas Miliauskas , 2006, 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: lt\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2008-02-26 23:36+0200\n" +"Last-Translator: Gintautas Miliauskas \n" +"Language-Team: Lithuanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Visos lokalÄ—s" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "LokalÄ—s, kurios bus sugeneruotos:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"LokalÄ—s yra karkasas, kuriuo naudotojai gali nustatyti savo kalbÄ…, " +"informacijÄ… apie savo Å¡alį, simbolius, valiutÄ…, rikiavimo tvarkÄ… ir t.t." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Pasirinkite, kurias lokales norite generuoti. TurÄ—tų bÅ«ti pasirinktos UTF-8 " +"lokalÄ—s, ypaÄ jei diegiate naujÄ… sistemÄ…. Kiti simbolių rinkiniai gali bÅ«ti " +"naudingi atgaliniam suderinamumui su senesnÄ—mis sistemomis ir programomis." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Jokia" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Sistemos lokalÄ— pagal nutylÄ—jimÄ…" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Daug Debian paketų naudoja lokales tekstui reikiama kalba rodyti. Galite iÅ¡ " +"sugeneruotų lokalių iÅ¡sirinkti standartinÄ™ sistemos lokalÄ™." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Bus nustatyta kalba visai sistemai. Jei sistemÄ… naudoja keletas naudotojų ir " +"ne visi kalba pasirinkta kalba, gali kilti nepatogumų." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Ar norite dabar atnaujinti glibc?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +#| msgid "" +#| "Running services and programs that are using NSS need to be restarted, " +#| "otherwise they might not be able to do lookup or authentication any more " +#| "(for services such as ssh, this can affect your ability to login). Please " +#| "review the following space-separated list of init.d scripts for services " +#| "to be restarted now, and correct it if needed." +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"VeikianÄios tarnybos ir programos, naudojanÄios NSS, turi bÅ«ti paleistos iÅ¡ " +"naujo, kitaip jose gali sutrikti paieÅ¡ka ir autentikavimas. Diegimo procesas " +"gali paleisti iÅ¡ naujo kai kurias tarnybas (pavyzdžiui, ssh ir telnetd), taÄiau " +"kitos programos negali bÅ«ti paleistos iÅ¡ naujo automatiÅ¡kai. Viena iÅ¡ tokių " +"programų, kuriÄ… reikia paleisti iÅ¡ naujo rankiniu bÅ«du po glibc atnaujinimo, yra " +"xdm – automatinis restartavimas gali atjungti aktyvias X11 sesijas." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "Rastos Å¡ios tarnybas, kurias bÅ«tina sustabdyti prieÅ¡ atnaujinimÄ…: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "Jei norite dabar nutraukti atnaujinimÄ… ir jį pratÄ™sti vÄ—liau, atsakykite neigiamai." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" +"Tarnybos, kurias reikia paleisti iÅ¡ naujo po GNU libc bibliotekos " +"atnaujinimo:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"VeikianÄios tarnybos ir programos, naudojanÄios NSS, turi bÅ«ti paleistos iÅ¡ " +"naujo, kitaip jose gali sutrikti autentikavimas (tokioms tarnyboms kaip ssh " +"tai gali reikÅ¡ti, kad negalÄ—site prisijungti). PeržiÅ«rÄ—kite toliau esantį " +"tarpeliais atskirtų init.d scenarijų, kurie dabar bus paleisti iÅ¡ naujo, " +"sÄ…raÅ¡Ä…, ir, jei reikia, pataisykite." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Pastaba: sshd/telnetd paleidimas iÅ¡ naujo neturÄ—tų paveikti aktyvių " +"prisijungimų." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Nepavyko paleisti iÅ¡ naujo kai kurių tarnybų atnaujinus GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "Atnaujinus GNU libc nepavyko iÅ¡ naujo paleisti Å¡ių procesų:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "Jas reikÄ—s paleisti rankiniu bÅ«du įvykdant „/etc/init.d/tarnyba start“." + --- glibc-2.7.orig/debian/po/nb.po +++ glibc-2.7/debian/po/nb.po @@ -0,0 +1,185 @@ +# translation of glibc_nb.po to Norwegian BokmÃ¥l +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Bjørn Steensrud , 2007. +msgid "" +msgstr "" +"Project-Id-Version: glibc_nb\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2007-02-26 20:05+0100\n" +"Last-Translator: Bjørn Steensrud \n" +"Language-Team: Norwegian BokmÃ¥l \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.2\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Alle lokaler" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Lokaler (stedstilpasninger) som skal opprettes:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +#, fuzzy +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"«Lokale» er et rammeverk som kan veksle mellom flere sprÃ¥k, slik at brukere " +"kan velge sitt sprÃ¥k, land, tegnsett, sorteringsrekkefølge osv." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Ingen" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Standardlokale for systemmiljøet:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +#, fuzzy +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Mange pakker i Debian bruker lokaler for Ã¥ vise tekst i det riktige sprÃ¥ket " +"for brukerne. Du kan endre standardlokalet om det ikke er ditt førstesprÃ¥k. " +"Disse valgene er basert pÃ¥ hvilke lokaler som er valgt ut til Ã¥ bli " +"opprettet." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +#, fuzzy +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Merk: Dette velger sprÃ¥k for hele systemet. Hvis dette er et " +"flerbrukersystem der ikke alle brukerne forstÃ¥r det valgte sprÃ¥ket, sÃ¥ kan " +"de komme opp i vansker, sÃ¥ kanskje det ikke bør velges et standardlokale." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" + +#~ msgid "" +#~ "Choose which locales to generate. The selection will be saved to `/etc/" +#~ "locale.gen', which you can also edit manually (you need to run `locale-" +#~ "gen' afterwards)." +#~ msgstr "" +#~ "Velg hvilke lokaler som skal opprettes. Valget blir lagret til fila «/etc/" +#~ "locale.gen», som ogsÃ¥ kan redigeres manuelt («locale-gen» mÃ¥ kjøres " +#~ "etterpÃ¥)." + +#~ msgid "" +#~ "When `All locales' is selected, /etc/locale.gen will be set as a symlink " +#~ "to /usr/share/i18n/SUPPORTED." +#~ msgstr "" +#~ "Hvis «Alle lokaler» blir valgt, sÃ¥ blir /etc/locale.gen satt som symbolsk " +#~ "lenke til /usr/share/i18n/SUPPORTED." --- glibc-2.7.orig/debian/po/sv.po +++ glibc-2.7/debian/po/sv.po @@ -0,0 +1,198 @@ +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# Developers do not need to manually edit POT or PO files. +# , fuzzy +# +# +msgid "" +msgstr "" +"Project-Id-Version: glibc 2.3.6-1\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2007-09-10 10:45+0100\n" +"Last-Translator: Daniel Nylander \n" +"Language-Team: Swedish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Alla lokalanpassningar" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Lokalanpassningar att generera:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Lokalanpassning (locale) är ett ramverk för att växla mellan flera språk för " +"att låta användare använda sitt språk, land, tecken och sorteringsordning, " +"etc." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Välj vilka lokalanpassningar som ska genereras. UTF-8-lokaler bör väljas som " +"standard, speciellt för nya installationer. Andra teckenuppsättningar kan " +"vara användbara för bakåtkompatibilitet med äldre system och programvara." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Ingen" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Välj lokalanpassning som ska vara standard i systemet:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Många paket i Debian använder lokalanpassningar för att visa text i det " +"korrekta språket för användaren. Du kan välja en standardlokal för systemet " +"från de genererade lokalerna." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Detta kommer att välja standardspråket för hela systemet. Om du kör ett " +"system med flera användare där inte alla talar det valda språket, kan de få " +"problem." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +#, fuzzy +#| msgid "" +#| "Running services and programs that are using NSS need to be restarted, " +#| "otherwise they might not be able to do lookup or authentication any more " +#| "(for services such as ssh, this can affect your ability to login). Please " +#| "review the following space-separated list of init.d scripts for services " +#| "to be restarted now, and correct it if needed." +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Körande tjänster och program som använder NSS behöver startas om, annars " +"kanske de inte kan köra uppslag eller autentisering längre (för tjänster " +"såsom ssh kan det påverka din möjlighet att logga in). Granska följande " +"blankstegsseparerade lista över init.d-skript för tjänster som ska startas " +"om nu, och gör ändringar om det behövs." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Tjänster att starta om för uppgradering av GNU libc-biblioteket:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Körande tjänster och program som använder NSS behöver startas om, annars " +"kanske de inte kan köra uppslag eller autentisering längre (för tjänster " +"såsom ssh kan det påverka din möjlighet att logga in). Granska följande " +"blankstegsseparerade lista över init.d-skript för tjänster som ska startas " +"om nu, och gör ändringar om det behövs." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Observera: omstart av sshd/telnetd ska inte påverka befintliga anslutningar." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" +"Misslyckades med att starta om vissa tjänster för uppgraderingen av GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Följande tjänster kunde inte startas om för uppgraderingen av GNU libc-" +"biblioteket:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Du behöver starta dessa manuellt genom att köra \"/etc/init.d/ start" +"\"." --- glibc-2.7.orig/debian/po/ar.po +++ glibc-2.7/debian/po/ar.po @@ -0,0 +1,169 @@ +# translation of ar.po to Arabic +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Ossama M. Khayat , 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: ar\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2008-03-18 15:39+0300\n" +"Last-Translator: Ossama M. Khayat \n" +"Language-Team: Arabic \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"Plural-Forms: nplurals=6; plural=n==1 ? 0 : n==0 ? 1 : n==2 ? 2: n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "جميع المحليات" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "المحليات التي سيتم توليدها:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"المحليات هي إطار عمل يمكنك من التبديل بين اللغات المتعددة وتمكن المستخدمين " +"من اختيار لغتهم، وبلدهم، ومجموعة الأحر٠الخاصة بهم، إلخ." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"الرجاء اختيار المحليات التي تريد توليدها. يجب اختيار محليات UTF-8 بشكل " +"اÙتراضي، وبالتحديد لعمليات التثبيت الجديدة. يمكن الاستÙادة من مجموعات " +"المحار٠الأخرى للتواÙÙ‚ مع الأنظمة والبرامج القديمة." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "لا شيء" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "المحلية الاÙتراضية لبيئة النظام:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"ÙÙŠ نظام ديبيان، تستخدم العديد من الحزم المحليات لعرض النصوص باللغة الصحيحة " +"للمستخدم. يمكنك اختيار المحلية الاÙتراضية للنظام من هذه المحليات." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"سيحدد هذا الخيار اللغة الاÙتراضية للنظام بأكمله. إن كان هذا النظام مستخدماً " +"من قبل عدة مستخدمين لا يستخدمون اللغة ذاتها، Ùسو٠يواجهون بعض الصعوبات." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "أتريد ترقية glibc الآن؟" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "هناك بعض الخدمات والبرامج التي تستخدم NSS يجب إعادة تشغيلها، وإلا لن تستطيع تلك الخدمات البحث أو المصادقة بعد الآن. تستطيع عملية التثبيت إعادة تشغيل بعض الخدمات (مثل ssh أو telnetd)ØŒ إلا أن بعض الخدمات الأخرى لا يمكن إعادة تشغيلها آلياً. وإحدى تلك الخدمات هي xdm والتي يجب عليك تشغيلها يدوياً بعد عملية ترقية glibc ذلك أن عملية إعادة تشغيلها آلياً قد يوق٠عمل جلسات X11 الحالية." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "عثر البرنامج على الخدمات المثبتة التالية والتي يجب إيقاÙها قبل عملية الترقية: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "إن كنت تريد ايقا٠عملة الترقية الآن وإتمامها لاحقاً، الرجاء الإجابة بالنÙÙŠ للسؤال أدناه." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "الخدمات المطلوب إعادة تشغيلها لتريقة مكتبة GNU libc:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "هناك بعض الخدمات والبرامج التي تستخدم NSS يجب إعادة تشغيلها، وإلا لن تستطيع تلك الخدمات البحث أو المصادقة بعد الآن. تستطيع عملية التثبيت إعادة تشغيل بعض الخدمات (مثل ssh والتي قد تؤثر على قدرتك الدخول). الرجاء مراجعة قائمة برامج init.d هذه بالخدمات التي يجب إعادة تشغيلها الآن، وصححها إن كنت بحاجة إلى ذلك." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "ملاحظة: إعادة تشغيل sshd/telnetd يجب أن لايؤثر على أية اتصالات جارية." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Ùشلت عملية إعادة تشغيل بعض الخدمات لترقية GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "تعذر إعادة تشغيل الخدمات التالية لترقية مكتبة GNU libc:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"عليك بتشغيل هذه الخدمات يدوياً بتنÙيذ الأمر '/etc/init.d/ " +"start'." + --- glibc-2.7.orig/debian/po/pt.po +++ glibc-2.7/debian/po/pt.po @@ -0,0 +1,189 @@ +# Portuguese translation of glibc's debconf messages. +# Copyright (C) 2007 +# This file is distributed under the same license as the glibc package. +# Ricardo Silva , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2008-02-26 21:15+0000\n" +"Last-Translator: Ricardo Silva \n" +"Language-Team: Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Todos os locales" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Locales a serem gerados:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Locales é uma framework para alternar entre várias línguas e permitir aos " +"utilizadores usar a sua língua, país, caracteres, etc." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Por favor escolha quais os locales a gerar. Deve escolher os locales UTF-8 " +"por omissão, especialmente em instalações de raiz. Outros conjuntos de " +"caracteres podem ser úteis para compatibilidade com sistemas e software " +"antigo." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Nenhum" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Locale por omissão para o ambiente do sistema:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Muitos pacotes na Debian usam locales para mostrar texto na língua correcta " +"do utilizador. Pode escolher, de entre os locales gerados, o locale por " +"omissão do sistema." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Isto irá escolher a língua por omissão para todo o sistema. Se este é um " +"sistema multi-utilizador em que nem todos os utilizadores são capazes de a " +"falar, estes irão ter dificuldades." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "Quer actualizar a glibc agora?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"Serviços e programas que estejam a correr que usem NSS têm de ser reiniciados, " +"de outra forma podem deixar de ser capazes de resolver nomes ou de autenticar " +"utilizadores. O processo de instalação é capaz de reiniciar alguns serviços " +"(tais como ssh ou telnetd), mas há outros programas que não podem ser reiniciados " +"automaticamente. Um dos programas que necessita de ser parado e reiniciado " +"manualmente é o xdm - uma reiniciação automática poderia desligar as suas " +"sessões de X11 activas." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Este script detectou os seguintes serviços instalados que têm de ser parados " +"antes da actualização: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Se quer interromper a actualização agora e continuar mais tarde, por favor " +"responda Não à questão abaixo." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Serviços a reiniciar para a actualização da biblioteca libc da GNU:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"Serviços e programas que estejam a correr que usem o NSS têm de ser reiniciados, " +"de outra forma podem deixar de ser capazes de resolver nomes ou de autenticar " +"utilizadores (para serviços como o ssh, isto pode afectar a sua capacidade de " +"se ligar ao sistema). Por favor reveja a seguinte lista separada por espaços " +"de scripts init.d para serviços a serem reiniciados agora, e corrija-a se for " +"necessário." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Nota: reiniciar o sshd/telnetd não deve afectar nenhuma conexão existente." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "Falha ao reiniciar alguns serviços para a actualização da libc da GNU" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Os seguintes serviços não puderam ser reiniciados para a actualização da " +"biblioteca libc da GNU:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Terá de os inicializar manualmente correndo '/etc/init.d/ start'." --- glibc-2.7.orig/debian/po/ta.po +++ glibc-2.7/debian/po/ta.po @@ -0,0 +1,167 @@ +# translation of glibc.po to TAMIL +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Dr.T.Vasudevan , 2007. +msgid "" +msgstr "" +"Project-Id-Version: glibc\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2007-04-24 19:42+0530\n" +"Last-Translator: Dr.T.Vasudevan \n" +"Language-Team: TAMIL \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "எலà¯à®²à®¾ உளà¯à®³à®¾à®°à¯à®¨à¯à®¤ இடஙà¯à®•à®³à¯à®®à¯" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "உரà¯à®µà®¾à®•à¯à®• வேணà¯à®Ÿà®¿à®¯ உளà¯à®³à®¾à®°à¯à®¨à¯à®¤ இடஙà¯à®•à®³à¯" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"உளà¯à®³à®¾à®°à¯à®¨à¯à®¤ இடஙà¯à®•à®³à¯ எனà¯à®ªà®¤à¯ பல மொழிகளà¯à®•à¯à®•à®¿à®Ÿà¯ˆà®¯à¯‡ மாறவà¯à®®à¯ பயனரà¯à®•à®³à¯ˆ அவரவர௠மொழி, நாடà¯, " +"கà¯à®±à®¿à®•à®³à¯, à®®à¯à®±à¯ˆà®®à¯ˆà®•à®³à¯ ஆகியவறà¯à®±à¯ˆ பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à®µà¯à®®à¯ பயனாகà¯à®®à¯ சடà¯à®Ÿ அமைபà¯à®ªà¯" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"எநà¯à®¤ உளà¯à®³à®¾à®°à¯à®¨à¯à®¤ இடதà¯à®¤à¯ˆ உரà¯à®µà®¾à®•à¯à®• வேணà¯à®Ÿà¯à®®à¯ என தேரà¯à®µà¯ செயà¯à®•. à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà®¾à®• UTF-8 உளà¯à®³à®¾à®°à¯à®¨à¯à®¤ " +"இடஙà¯à®•à®³à¯ தேரà¯à®µà¯ செயà¯à®¯à®ªà®Ÿ வேணà¯à®Ÿà¯à®®à¯. கà¯à®±à®¿à®ªà¯à®ªà®¾à®• பà¯à®¤à®¿à®¯ நிறà¯à®µà®²à¯à®•à®³à¯à®•à¯à®•à¯. மறà¯à®± கà¯à®±à®¿à®¯à®¾à®•à¯à®• " +"தொகà¯à®ªà¯à®ªà¯à®•à®³à¯ பழைய கணினிகள௠மறà¯à®±à¯à®®à¯ மெனà¯à®ªà¯Šà®°à¯à®Ÿà¯à®•à®³à¯à®Ÿà®©à¯ பின௠நோகà¯à®•à¯ இசைவà¯à®•à¯à®•à¯ பயனà¯à®ªà®Ÿà¯à®®à¯." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "ஒனà¯à®±à¯à®®à®¿à®²à¯à®²à¯ˆ" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "கணினி சூழலà¯à®•à¯à®•à¯ à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ உளà¯à®³à®¾à®°à¯à®¨à¯à®¤ இடமà¯" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"பயனரà¯à®•à¯à®•à¯ சரியான மொழியில௠உரையை காடà¯à®Ÿ டெபியனின௠பல பொதிகள௠உளà¯à®³à®¾à®°à¯à®¨à¯à®¤ இடதà¯à®¤à¯ˆ " +"பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®•à®¿à®©à¯à®±à®©. உரà¯à®µà®¾à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿà®µà®±à¯à®±à®¿à®²à®¿à®°à¯à®¨à¯à®¤à¯ கணினிகà¯à®•à¯ à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ உளà¯à®³à®¾à®°à¯à®¨à¯à®¤ இடதà¯à®¤à¯ˆ " +"தேரà¯à®µà¯ செயà¯à®¯à®µà¯à®®à¯." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"இத௠மà¯à®´à¯ கணினிகà¯à®•à¯ à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ மொழியை தேரà¯à®µà¯ செயà¯à®¯à¯à®®à¯. இத௠பலர௠பயன௠படà¯à®¤à¯à®¤à¯à®®à¯ " +"கணினியானால௠எலà¯à®²à®¾ பயனரà¯à®•à®³à¯à®®à¯ à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ மொழியை அறிநà¯à®¤à®¿à®°à®¾à®µà®¿à®Ÿà®¿à®²à¯ அவரà¯à®•à®³à¯ தà¯à®©à¯à®ªà¯à®±à¯à®µà®°à¯." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" --- glibc-2.7.orig/debian/po/ro.po +++ glibc-2.7/debian/po/ro.po @@ -0,0 +1,137 @@ +# translation of po-debconf://kdebase.po to romanian +# Romanian translation of glibc. +# Copyright (C) 2006 THE glibc'S COPYRIGHT HOLDER +# This file is distributed under the same license as the glibc package. +# +# Stan Ioan-Eugen , 2006. +# stan ioan-eugen , 2007, 2008. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: debian-glibc@lists.debian.org\n" +"POT-Creation-Date: 2007-09-10 10:19+0200\n" +"PO-Revision-Date: 2008-02-29 23:35+0200\n" +"Last-Translator: stan ioan-eugen \n" +"Language-Team: romanian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Toate localele" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Localele ce vor fi generate:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"Locale este un cadru de lucru pentru utilizatori, care le permite acestora " +"să schimbe între mai multe limbi pentru a folosi propria lor limbă, Å£ară, " +"caractere, formatare a datei, etc." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"AlegeÅ£i ce locale se generează. Localele UTF-8 ar trebui alese " +"implicit, în special pentru instalări noi. Din motive de compatibilitate cu " +"soft sau sisteme mai vechi, puteÅ£i alege să se genereze ÅŸi alte seturi de " +"caractere." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Nici una" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Locale implicite pentru sistem:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Multe pachete din Debian folosesc locale pentru a afiÅŸa text în limba " +"corectă pentru utilizatori. PuteÅ£i alege o valoarea pentru locale, implicită " +"pentru sistem, din localele generate." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Această opÅ£iune va stabili limba pentru tot sistemul. Dacă aveÅ£i un sistem " +"multi-utilizator unde nu toÅ£i utilizatorii vorbesc limba aleasă, atunci ei " +"vor întâmpina dificultăţi." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Servicii ce trebuiesc repornite pentru înnoirea bibliotecii GNU libc:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "Serviciile È™i programele care rulează È™i folosesc NSS trebuiesc repornite, altfel este posibil să nu mai poată efectua autentificarea sau căutarea numelor (în cazul serviciilor gen ssh, acest lucru poate determina imposibilitatea autentificării). Analizati următoarea listă ce conÈ›ine, separate prin spaÈ›iu, scripturi init.d ale serviciilor ce trebuiesc repornite acum È™i corectaÈ›i-o dacă este nevoie." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "Notă: repornirea sshd/telnetd nu ar trebui să afecteze conexiunile existente." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "EÈ™ec la pornirea unor servicii pentru înnoirea GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "Următoarele servicii nu ar trebui repornite pentru înnoirea bibliotecii GNU libc." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "Va trebui să porniÈ›i aceste servicii manual executând comanda '/etc/init.d/ start'." + --- glibc-2.7.orig/debian/po/zh_CN.po +++ glibc-2.7/debian/po/zh_CN.po @@ -0,0 +1,193 @@ +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# Hiei Xu , 2004. +# Carlos Z.F. Liu , 2004. +# LI Daobing , 2007, 2008. +# +# +msgid "" +msgstr "" +"Project-Id-Version: glibc 2.7-9\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2008-02-28 23:44+0800\n" +"Last-Translator: LI Daobing \n" +"Language-Team: Chinese (Simplified) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "全部区域设置" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "请选择需è¦ç”Ÿæˆçš„区域设置(locale)。" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"区域设置(locale)是一ç§åœ¨å¤šç§è¯­è¨€ä¹‹é—´åˆ‡æ¢çš„框架,用户å¯ä»¥é€šè¿‡å®ƒæ¥è®¾å®šè‡ªå·±çš„语" +"言ã€å›½å®¶ã€å­—符集ã€å­—符串排åºæ–¹å¼ç­‰ã€‚" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"请选择需è¦ç”Ÿæˆçš„区域设置。通常应当选择 UTF-8 字符集的区域设置,特别是对于新安" +"装的系统。其他的字符集一般用于兼容旧系统和旧软件。" + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "æ— " + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "哪个将作为系统环境默认的区域设置(locale)?" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Debian 里的很多软件包都使用区域设置(locale)æ¥ä»¥æ­£ç¡®çš„语言å‘用户显示文本。你å¯" +"以从生æˆçš„区域设置中选择一个缺çœçš„区域设置。" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"注æ„:这将会把整个系统都设置为这ç§è¯­è¨€ã€‚如果您è¿è¡Œçš„是一个多用户系统,而且并" +"ä¸æ˜¯ç³»ç»Ÿå†…的所有用户都使用您选择的语言,那么他们将会é‡åˆ°ä¸€äº›éº»çƒ¦ã€‚" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "你想现在å‡çº§ glibc 么?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +#| msgid "" +#| "Running services and programs that are using NSS need to be restarted, " +#| "otherwise they might not be able to do lookup or authentication any more " +#| "(for services such as ssh, this can affect your ability to login). Please " +#| "review the following space-separated list of init.d scripts for services " +#| "to be restarted now, and correct it if needed." +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "使用 NSS çš„æœåŠ¡å’Œç¨‹åºéœ€è¦é‡å¯ï¼Œå¦åˆ™å¯èƒ½æ— æ³•ç»§ç»­æŸ¥è¯¢æˆ–验è¯ã€‚安装过程能é‡å¯éƒ¨åˆ†æœåŠ¡(如 ssh å’Œ telnetd),但其他程åºæ— æ³•è‡ªåŠ¨é‡å¯ã€‚xdm 就是需è¦åœ¨ glibc å‡çº§å®ŒæˆåŽæ‰‹åŠ¨åœæ­¢å’Œé‡å¯çš„ç¨‹åº - 因为自动é‡å¯å¯èƒ½ä¼šä¸­æ–­ä½ çš„å½“å‰ X11 会è¯ã€‚" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "脚本检测到以下的æœåŠ¡éœ€è¦åœ¨å‡çº§å‰åœæ­¢: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "如果你想打断å‡çº§å¹¶åœ¨ç¨åŽç»§ç»­ï¼Œè¯·å¯¹ä¸‹é¢çš„问题答 No" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "GNU libc 库å‡çº§éœ€è¦é‡å¯å¦‚下的æœåŠ¡ï¼š" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"使用 NSS çš„æœåŠ¡å’Œç¨‹åºéœ€è¦é‡å¯ï¼Œå¦åˆ™å¯èƒ½æ— æ³•æŸ¥è¯¢æˆ–验è¯(对于 ssh 这类的æœåŠ¡ï¼Œæœ‰" +"å¯èƒ½å¯¼è‡´ä½ æ— æ³•ç™»å½•)。请检查下é¢éœ€è¦é‡å¯çš„ init.d 脚本列表(空格分隔),如有误请" +"改正。" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "æ示:é‡å¯ sshd/telnetd ä¸ä¼šå½±å“现有的连接。" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "å›  GNU libc å‡çº§è€Œé‡å¯çš„部分æœåŠ¡é‡å¯å¤±è´¥" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "GNU libc 库å‡çº§ï¼Œä½†ä¸‹åˆ—æœåŠ¡æ— æ³•é‡å¯ï¼š" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "你需è¦é€šè¿‡æ‰‹åŠ¨è¿è¡Œ '/etc/init.d/ start' æ¥å¯åŠ¨è¿™äº›æœåŠ¡ã€‚" + +#~ msgid "" +#~ "Choose which locales to generate. The selection will be saved to `/etc/" +#~ "locale.gen', which you can also edit manually (you need to run `locale-" +#~ "gen' afterwards)." +#~ msgstr "" +#~ "请选择需è¦ç”Ÿæˆçš„区域设置(locale)。选择结果将被ä¿å­˜åœ¨â€œ/etc/locale.genâ€ï¼Œæ‚¨" +#~ "å¯ä»¥å¯¹å…¶è¿›è¡Œæ‰‹å·¥ç¼–辑(您需è¦åœ¨ç¼–辑结æŸåŽè¿è¡Œâ€œlocale-genâ€)。" --- glibc-2.7.orig/debian/po/POTFILES.in +++ glibc-2.7/debian/po/POTFILES.in @@ -0,0 +1,2 @@ +[type: gettext/rfc822deb] debhelper.in/locales.templates +[type: gettext/rfc822deb] debhelper.in/libc.templates --- glibc-2.7.orig/debian/po/gl.po +++ glibc-2.7/debian/po/gl.po @@ -0,0 +1,211 @@ +# Galician translation of glibc's templates +# This file is distributed under the same license as the glibc package. +# Jacobo Tarrio , 2006, 2007, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: glibc\n" +"Report-Msgid-Bugs-To: glibc@packages.debian.org\n" +"POT-Creation-Date: 2008-02-26 21:34+0100\n" +"PO-Revision-Date: 2008-02-26 22:22+0000\n" +"Last-Translator: Jacobo Tarrio \n" +"Language-Team: Galician \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: multiselect +#. Choices +#: ../debhelper.in/locales.templates:1001 +msgid "All locales" +msgstr "Todas as configuracións locais" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "Locales to be generated:" +msgstr "Configuracións locais a xerar:" + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Locales are a framework to switch between multiple languages and allow users " +"to use their language, country, characters, collation order, etc." +msgstr "" +"O sistema de configuracións locais permite ter varios idiomas, e que os " +"usuarios poidan empregar o seu idioma, país, alfabeto, orde alfabética, etc." + +#. Type: multiselect +#. Description +#: ../debhelper.in/locales.templates:1002 +msgid "" +"Please choose which locales to generate. UTF-8 locales should be chosen by " +"default, particularly for new installations. Other character sets may be " +"useful for backwards compatibility with older systems and software." +msgstr "" +"Escolla as configuracións locais a xerar. Debería escoller configuracións " +"locais UTF-8 por defecto, especialmente en instalacións novas. Os outros " +"xogos de caracteres poden ser útiles para a compatibilidade con sistemas e " +"software antigos." + +#. Type: select +#. Choices +#: ../debhelper.in/locales.templates:2001 +msgid "None" +msgstr "Ningunha" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "Default locale for the system environment:" +msgstr "Configuración local por defecto para o ambiente:" + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"Many packages in Debian use locales to display text in the correct language " +"for the user. You can choose a default locale for the system from the " +"generated locales." +msgstr "" +"Moitos paquetes de Debian empregan configuracións locais para amosar texto " +"aos usuarios no idioma correcto. Pode escoller unha configuración local por " +"defecto para o sistema entre as configuracións locais xeradas." + +#. Type: select +#. Description +#: ../debhelper.in/locales.templates:2002 +msgid "" +"This will select the default language for the entire system. If this system " +"is a multi-user system where not all users are able to speak the default " +"language, they will experience difficulties." +msgstr "" +"Con isto hase escoller o idioma de todo o sistema. Se este sistema ten " +"varios usuarios e non todos coñecen o idioma por defecto, han ter " +"dificultades." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "Do you want to upgrade glibc now?" +msgstr "¿Quere actualizar glibc agora?" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +#| msgid "" +#| "Running services and programs that are using NSS need to be restarted, " +#| "otherwise they might not be able to do lookup or authentication any more " +#| "(for services such as ssh, this can affect your ability to login). Please " +#| "review the following space-separated list of init.d scripts for services " +#| "to be restarted now, and correct it if needed." +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more. " +"The installation process is able to restart some services (such as ssh or " +"telnetd), but other programs cannot be restarted automatically. One such " +"program that needs manual stopping and restart after the glibc upgrade by " +"yourself is xdm - because automatic restart might disconnect your active X11 " +"sessions." +msgstr "" +"É necesario reiniciar os servizos e programas que están a empregar NSS; se " +"non se fai, é posible que deixen de poder realizar buscas ou autenticacións. " +"O proceso de instalación ode reiniciar algúns servizos (tales coma ssh ou " +"telnetd), pero outros programas non se poden reiniciar automaticamente. Un " +"deses programas que precisa de detención e reinicio manuais trala " +"actualización de glibc é xdm - xa que o reinicio automático podería " +"desconectar as súas sesións de X11 activas." + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"This script detected the following installed services which must be stopped " +"before the upgrade: ${services}" +msgstr "" +"Este script detectou os seguintes servizos instalados que se deben deter " +"antes da actualización: ${services}" + +#. Type: boolean +#. Description +#: ../debhelper.in/libc.templates:1001 +msgid "" +"If you want to interrupt the upgrade now and continue later, please answer " +"No to the question below." +msgstr "" +"Se quere interromper agora a actualización e continuala despois, resposte " +"negativamente á seguinte pregunta." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "Services to restart for GNU libc library upgrade:" +msgstr "Servizos a reiniciar para a actualización da biblioteca GNU libc:" + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Running services and programs that are using NSS need to be restarted, " +"otherwise they might not be able to do lookup or authentication any more " +"(for services such as ssh, this can affect your ability to login). Please " +"review the following space-separated list of init.d scripts for services to " +"be restarted now, and correct it if needed." +msgstr "" +"É necesario reiniciar os servizos e programas que están a empregar NSS; se " +"non se fai, é posible que deixen de poder realizar buscas ou autenticacións " +"(para algúns servizos, coma ssh, isto pode afectar á súa capacidade de se " +"conectar á máquina). Revise a seguinte lista de scripts de init.d de " +"servizos que se van reiniciar agora, e corríxaa se é preciso." + +#. Type: string +#. Description +#: ../debhelper.in/libc.templates:2001 +msgid "" +"Note: restarting sshd/telnetd should not affect any existing connections." +msgstr "" +"Nota: o reinicio de sshd/telnetd non debería afectar ás conexións existentes." + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "Failure restarting some services for GNU libc upgrade" +msgstr "" +"Problemas ao reiniciar algúns servizos para a actualización de GNU libc" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"The following services could not be restarted for the GNU libc library " +"upgrade:" +msgstr "" +"Non se puido reiniciar os seguintes servizos para a actualización da " +"biblioteca GNU libc:" + +#. Type: error +#. Description +#: ../debhelper.in/libc.templates:3001 +msgid "" +"You will need to start these manually by running '/etc/init.d/ " +"start'." +msgstr "" +"Ha ter que reinicialos manualmente executando \"/etc/init.d/ start" +"\"." + +#~ msgid "" +#~ "Choose which locales to generate. The selection will be saved to `/etc/" +#~ "locale.gen', which you can also edit manually (you need to run `locale-" +#~ "gen' afterwards)." +#~ msgstr "" +#~ "Escolla as configuracións locais que quere xerar. As súas eleccións hanse " +#~ "gravar no ficheiro \"/etc/locale.gen\", que tamén pode editar a man (ha " +#~ "ter que executar \"locale-gen\" despois)." + +#~ msgid "" +#~ "When `All locales' is selected, /etc/locale.gen will be set as a symlink " +#~ "to /usr/share/i18n/SUPPORTED." +#~ msgstr "" +#~ "Ao escoller \"Todas as configuracións locais\" hase estabrecer /etc/" +#~ "locale.gen coma unha ligazón simbólica a /usr/share/i18n/SUPPORTED." --- glibc-2.7.orig/debian/libc6.symbols.i386 +++ glibc-2.7/debian/libc6.symbols.i386 @@ -0,0 +1,3459 @@ +ld-linux.so.2 libc6 #MINVER# + GLIBC_2.0@GLIBC_2.0 2.0 + GLIBC_2.1@GLIBC_2.1 2.1 + GLIBC_2.3@GLIBC_2.3 2.3 + GLIBC_2.4@GLIBC_2.4 2.4 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + ___tls_get_addr@GLIBC_2.3 2.3 + __libc_enable_secure@GLIBC_PRIVATE 2.7 + __libc_memalign@GLIBC_2.0 2.0 + __libc_stack_end@GLIBC_2.1 2.1 + __tls_get_addr@GLIBC_2.3 2.3 + _dl_allocate_tls@GLIBC_PRIVATE 2.7 + _dl_allocate_tls_init@GLIBC_PRIVATE 2.7 + _dl_argv@GLIBC_PRIVATE 2.7 + _dl_deallocate_tls@GLIBC_PRIVATE 2.7 + _dl_debug_state@GLIBC_PRIVATE 2.7 + _dl_get_tls_static_info@GLIBC_PRIVATE 2.7 + _dl_make_stack_executable@GLIBC_PRIVATE 2.7 + _dl_mcount@GLIBC_2.1 2.1 + _dl_rtld_di_serinfo@GLIBC_PRIVATE 2.7 + _dl_tls_get_addr_soft@GLIBC_PRIVATE 2.7 + _dl_tls_setup@GLIBC_PRIVATE 2.7 + _r_debug@GLIBC_2.0 2.0 + _rtld_global@GLIBC_PRIVATE 2.7 + _rtld_global_ro@GLIBC_PRIVATE 2.7 + calloc@GLIBC_2.0 2.0 + free@GLIBC_2.0 2.0 + malloc@GLIBC_2.0 2.0 + realloc@GLIBC_2.0 2.0 +libBrokenLocale.so.1 libc6 #MINVER# + GLIBC_2.0@GLIBC_2.0 2.0 + __ctype_get_mb_cur_max@GLIBC_2.0 2.0 +libSegFault.so libc6 #MINVER# + __invoke_dynamic_linker__@Base 2.7-9ubuntu1 +libanl.so.1 libc6 #MINVER# + GLIBC_2.2.3@GLIBC_2.2.3 2.2.3 + gai_cancel@GLIBC_2.2.3 2.2.3 + gai_error@GLIBC_2.2.3 2.2.3 + gai_suspend@GLIBC_2.2.3 2.2.3 + getaddrinfo_a@GLIBC_2.2.3 2.2.3 +libc.so.6 libc6 #MINVER# + GCC_3.0@GCC_3.0 2.7-9ubuntu1 + GLIBC_2.0@GLIBC_2.0 2.0 + GLIBC_2.1.1@GLIBC_2.1.1 2.1.1 + GLIBC_2.1.2@GLIBC_2.1.2 2.1.2 + GLIBC_2.1.3@GLIBC_2.1.3 2.1.3 + GLIBC_2.1@GLIBC_2.1 2.1 + GLIBC_2.2.1@GLIBC_2.2.1 2.2.1 + GLIBC_2.2.2@GLIBC_2.2.2 2.2.2 + GLIBC_2.2.3@GLIBC_2.2.3 2.2.3 + GLIBC_2.2.4@GLIBC_2.2.4 2.2.4 + GLIBC_2.2.6@GLIBC_2.2.6 2.2.6 + GLIBC_2.2@GLIBC_2.2 2.2 + GLIBC_2.3.2@GLIBC_2.3.2 2.3.2 + GLIBC_2.3.3@GLIBC_2.3.3 2.3.3 + GLIBC_2.3.4@GLIBC_2.3.4 2.3.4 + GLIBC_2.3@GLIBC_2.3 2.3 + GLIBC_2.4@GLIBC_2.4 2.4 + GLIBC_2.5@GLIBC_2.5 2.5 + GLIBC_2.6@GLIBC_2.6 2.6 + GLIBC_2.7@GLIBC_2.7 2.7 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _Exit@GLIBC_2.1.1 2.1.1 + _IO_2_1_stderr_@GLIBC_2.1 2.1 + _IO_2_1_stdin_@GLIBC_2.1 2.1 + _IO_2_1_stdout_@GLIBC_2.1 2.1 + _IO_adjust_column@GLIBC_2.0 2.0 + _IO_adjust_wcolumn@GLIBC_2.2 2.2 + _IO_default_doallocate@GLIBC_2.0 2.0 + _IO_default_finish@GLIBC_2.0 2.0 + _IO_default_pbackfail@GLIBC_2.0 2.0 + _IO_default_uflow@GLIBC_2.0 2.0 + _IO_default_xsgetn@GLIBC_2.0 2.0 + _IO_default_xsputn@GLIBC_2.0 2.0 + _IO_do_write@GLIBC_2.0 2.0 + _IO_do_write@GLIBC_2.1 2.1 + _IO_doallocbuf@GLIBC_2.0 2.0 + _IO_fclose@GLIBC_2.0 2.0 + _IO_fclose@GLIBC_2.1 2.1 + _IO_fdopen@GLIBC_2.0 2.0 + _IO_fdopen@GLIBC_2.1 2.1 + _IO_feof@GLIBC_2.0 2.0 + _IO_ferror@GLIBC_2.0 2.0 + _IO_fflush@GLIBC_2.0 2.0 + _IO_fgetpos64@GLIBC_2.1 2.1 + _IO_fgetpos64@GLIBC_2.2 2.2 + _IO_fgetpos@GLIBC_2.0 2.0 + _IO_fgetpos@GLIBC_2.2 2.2 + _IO_fgets@GLIBC_2.0 2.0 + _IO_file_attach@GLIBC_2.0 2.0 + _IO_file_attach@GLIBC_2.1 2.1 + _IO_file_close@GLIBC_2.0 2.0 + _IO_file_close_it@GLIBC_2.0 2.0 + _IO_file_close_it@GLIBC_2.1 2.1 + _IO_file_doallocate@GLIBC_2.0 2.0 + _IO_file_finish@GLIBC_2.1 2.1 + _IO_file_fopen@GLIBC_2.0 2.0 + _IO_file_fopen@GLIBC_2.1 2.1 + _IO_file_init@GLIBC_2.0 2.0 + _IO_file_init@GLIBC_2.1 2.1 + _IO_file_jumps@GLIBC_2.0 2.0 + _IO_file_open@GLIBC_2.0 2.0 + _IO_file_overflow@GLIBC_2.0 2.0 + _IO_file_overflow@GLIBC_2.1 2.1 + _IO_file_read@GLIBC_2.0 2.0 + _IO_file_seek@GLIBC_2.0 2.0 + _IO_file_seekoff@GLIBC_2.0 2.0 + _IO_file_seekoff@GLIBC_2.1 2.1 + _IO_file_setbuf@GLIBC_2.0 2.0 + _IO_file_setbuf@GLIBC_2.1 2.1 + _IO_file_stat@GLIBC_2.0 2.0 + _IO_file_sync@GLIBC_2.0 2.0 + _IO_file_sync@GLIBC_2.1 2.1 + _IO_file_underflow@GLIBC_2.0 2.0 + _IO_file_underflow@GLIBC_2.1 2.1 + _IO_file_write@GLIBC_2.0 2.0 + _IO_file_write@GLIBC_2.1 2.1 + _IO_file_xsputn@GLIBC_2.0 2.0 + _IO_file_xsputn@GLIBC_2.1 2.1 + _IO_flockfile@GLIBC_2.0 2.0 + _IO_flush_all@GLIBC_2.0 2.0 + _IO_flush_all_linebuffered@GLIBC_2.0 2.0 + _IO_fopen@GLIBC_2.0 2.0 + _IO_fopen@GLIBC_2.1 2.1 + _IO_fprintf@GLIBC_2.0 2.0 + _IO_fputs@GLIBC_2.0 2.0 + _IO_fread@GLIBC_2.0 2.0 + _IO_free_backup_area@GLIBC_2.0 2.0 + _IO_free_wbackup_area@GLIBC_2.2 2.2 + _IO_fsetpos64@GLIBC_2.1 2.1 + _IO_fsetpos64@GLIBC_2.2 2.2 + _IO_fsetpos@GLIBC_2.0 2.0 + _IO_fsetpos@GLIBC_2.2 2.2 + _IO_ftell@GLIBC_2.0 2.0 + _IO_ftrylockfile@GLIBC_2.0 2.0 + _IO_funlockfile@GLIBC_2.0 2.0 + _IO_fwrite@GLIBC_2.0 2.0 + _IO_getc@GLIBC_2.0 2.0 + _IO_getline@GLIBC_2.0 2.0 + _IO_getline_info@GLIBC_2.1 2.1 + _IO_gets@GLIBC_2.0 2.0 + _IO_init@GLIBC_2.0 2.0 + _IO_init_marker@GLIBC_2.0 2.0 + _IO_init_wmarker@GLIBC_2.2 2.2 + _IO_iter_begin@GLIBC_2.2 2.2 + _IO_iter_end@GLIBC_2.2 2.2 + _IO_iter_file@GLIBC_2.2 2.2 + _IO_iter_next@GLIBC_2.2 2.2 + _IO_least_wmarker@GLIBC_2.2 2.2 + _IO_link_in@GLIBC_2.0 2.0 + _IO_list_all@GLIBC_2.0 2.0 + _IO_list_lock@GLIBC_2.2 2.2 + _IO_list_resetlock@GLIBC_2.2 2.2 + _IO_list_unlock@GLIBC_2.2 2.2 + _IO_marker_delta@GLIBC_2.0 2.0 + _IO_marker_difference@GLIBC_2.0 2.0 + _IO_padn@GLIBC_2.0 2.0 + _IO_peekc_locked@GLIBC_2.0 2.0 + _IO_popen@GLIBC_2.0 2.0 + _IO_popen@GLIBC_2.1 2.1 + _IO_printf@GLIBC_2.0 2.0 + _IO_proc_close@GLIBC_2.0 2.0 + _IO_proc_close@GLIBC_2.1 2.1 + _IO_proc_open@GLIBC_2.0 2.0 + _IO_proc_open@GLIBC_2.1 2.1 + _IO_putc@GLIBC_2.0 2.0 + _IO_puts@GLIBC_2.0 2.0 + _IO_remove_marker@GLIBC_2.0 2.0 + _IO_seekmark@GLIBC_2.0 2.0 + _IO_seekoff@GLIBC_2.0 2.0 + _IO_seekpos@GLIBC_2.0 2.0 + _IO_seekwmark@GLIBC_2.2 2.2 + _IO_setb@GLIBC_2.0 2.0 + _IO_setbuffer@GLIBC_2.0 2.0 + _IO_setvbuf@GLIBC_2.0 2.0 + _IO_sgetn@GLIBC_2.0 2.0 + _IO_sprintf@GLIBC_2.0 2.0 + _IO_sputbackc@GLIBC_2.0 2.0 + _IO_sputbackwc@GLIBC_2.2 2.2 + _IO_sscanf@GLIBC_2.0 2.0 + _IO_stderr_@GLIBC_2.0 2.0 + _IO_stdin_@GLIBC_2.0 2.0 + _IO_stdout_@GLIBC_2.0 2.0 + _IO_str_init_readonly@GLIBC_2.0 2.0 + _IO_str_init_static@GLIBC_2.0 2.0 + _IO_str_overflow@GLIBC_2.0 2.0 + _IO_str_pbackfail@GLIBC_2.0 2.0 + _IO_str_seekoff@GLIBC_2.0 2.0 + _IO_str_underflow@GLIBC_2.0 2.0 + _IO_sungetc@GLIBC_2.0 2.0 + _IO_sungetwc@GLIBC_2.2 2.2 + _IO_switch_to_get_mode@GLIBC_2.0 2.0 + _IO_switch_to_main_wget_area@GLIBC_2.2 2.2 + _IO_switch_to_wbackup_area@GLIBC_2.2 2.2 + _IO_switch_to_wget_mode@GLIBC_2.2 2.2 + _IO_un_link@GLIBC_2.0 2.0 + _IO_ungetc@GLIBC_2.0 2.0 + _IO_unsave_markers@GLIBC_2.0 2.0 + _IO_unsave_wmarkers@GLIBC_2.2 2.2 + _IO_vfprintf@GLIBC_2.0 2.0 + _IO_vfscanf@GLIBC_2.0 2.0 + _IO_vsprintf@GLIBC_2.0 2.0 + _IO_wdefault_doallocate@GLIBC_2.2 2.2 + _IO_wdefault_finish@GLIBC_2.2 2.2 + _IO_wdefault_pbackfail@GLIBC_2.2 2.2 + _IO_wdefault_uflow@GLIBC_2.2 2.2 + _IO_wdefault_xsgetn@GLIBC_2.2 2.2 + _IO_wdefault_xsputn@GLIBC_2.2 2.2 + _IO_wdo_write@GLIBC_2.2 2.2 + _IO_wdoallocbuf@GLIBC_2.2 2.2 + _IO_wfile_jumps@GLIBC_2.2 2.2 + _IO_wfile_overflow@GLIBC_2.2 2.2 + _IO_wfile_seekoff@GLIBC_2.2 2.2 + _IO_wfile_sync@GLIBC_2.2 2.2 + _IO_wfile_underflow@GLIBC_2.2 2.2 + _IO_wfile_xsputn@GLIBC_2.2 2.2 + _IO_wmarker_delta@GLIBC_2.2 2.2 + _IO_wsetb@GLIBC_2.2 2.2 + _Unwind_Find_FDE@GCC_3.0 2.7-9ubuntu1 + ___brk_addr@GLIBC_2.0 2.0 + __adjtimex@GLIBC_2.0 2.0 + __after_morecore_hook@GLIBC_2.0 2.0 + __argz_count@GLIBC_2.0 2.0 + __argz_next@GLIBC_2.0 2.0 + __argz_stringify@GLIBC_2.0 2.0 + __asprintf@GLIBC_2.1 2.1 + __assert@GLIBC_2.2 2.2 + __assert_fail@GLIBC_2.0 2.0 + __assert_perror_fail@GLIBC_2.0 2.0 + __backtrace@GLIBC_2.1 2.1 + __backtrace_symbols@GLIBC_2.1 2.1 + __backtrace_symbols_fd@GLIBC_2.1 2.1 + __bsd_getpgrp@GLIBC_2.0 2.0 + __bzero@GLIBC_2.0 2.0 + __check_rhosts_file@GLIBC_2.0 2.0 + __chk_fail@GLIBC_2.3.4 2.3.4 + __clone@GLIBC_2.0 2.0 + __close@GLIBC_2.0 2.0 + __cmpdi2@GLIBC_2.0 2.0 + __cmsg_nxthdr@GLIBC_2.0 2.0 + __confstr_chk@GLIBC_2.4 2.4 + __connect@GLIBC_2.0 2.0 + __ctype32_b@GLIBC_2.0 2.0 + __ctype32_tolower@GLIBC_2.2 2.2 + __ctype32_toupper@GLIBC_2.2 2.2 + __ctype_b@GLIBC_2.0 2.0 + __ctype_b_loc@GLIBC_2.3 2.3 + __ctype_get_mb_cur_max@GLIBC_2.0 2.0 + __ctype_tolower@GLIBC_2.0 2.0 + __ctype_tolower_loc@GLIBC_2.3 2.3 + __ctype_toupper@GLIBC_2.0 2.0 + __ctype_toupper_loc@GLIBC_2.3 2.3 + __curbrk@GLIBC_2.0 2.0 + __cxa_atexit@GLIBC_2.1.3 2.1.3 + __cxa_finalize@GLIBC_2.1.3 2.1.3 + __cyg_profile_func_enter@GLIBC_2.2 2.2 + __cyg_profile_func_exit@GLIBC_2.2 2.2 + __daylight@GLIBC_2.0 2.0 + __dcgettext@GLIBC_2.0 2.0 + __default_morecore@GLIBC_2.0 2.0 + __deregister_frame@GLIBC_2.0 2.0 + __deregister_frame_info@GLIBC_2.0 2.0 + __deregister_frame_info_bases@GCC_3.0 2.7-9ubuntu1 + __dgettext@GLIBC_2.0 2.0 + __divdi3@GLIBC_2.0 2.0 + __dup2@GLIBC_2.0 2.0 + __duplocale@GLIBC_2.1 2.1 + __endmntent@GLIBC_2.2 2.2 + __environ@GLIBC_2.0 2.0 + __errno_location@GLIBC_2.0 2.0 + __fbufsize@GLIBC_2.2 2.2 + __fcntl@GLIBC_2.0 2.0 + __ffs@GLIBC_2.0 2.0 + __fgets_chk@GLIBC_2.4 2.4 + __fgets_unlocked_chk@GLIBC_2.4 2.4 + __fgetws_chk@GLIBC_2.4 2.4 + __fgetws_unlocked_chk@GLIBC_2.4 2.4 + __finite@GLIBC_2.0 2.0 + __finitef@GLIBC_2.0 2.0 + __finitel@GLIBC_2.0 2.0 + __fixunsdfdi@GLIBC_2.0 2.0 + __fixunsxfdi@GLIBC_2.0 2.0 + __flbf@GLIBC_2.2 2.2 + __floatdidf@GLIBC_2.0 2.0 + __fork@GLIBC_2.0 2.0 + __fortify_fail@GLIBC_PRIVATE 2.7 + __fpending@GLIBC_2.2 2.2 + __fprintf_chk@GLIBC_2.3.4 2.3.4 + __fpu_control@GLIBC_2.0 2.0 + __fpurge@GLIBC_2.2 2.2 + __frame_state_for@GLIBC_2.0 2.0 + __fread_chk@GLIBC_2.7 2.7 + __fread_unlocked_chk@GLIBC_2.7 2.7 + __freadable@GLIBC_2.2 2.2 + __freading@GLIBC_2.2 2.2 + __free_hook@GLIBC_2.0 2.0 + __freelocale@GLIBC_2.1 2.1 + __fsetlocking@GLIBC_2.2 2.2 + __fwprintf_chk@GLIBC_2.4 2.4 + __fwritable@GLIBC_2.2 2.2 + __fwriting@GLIBC_2.2 2.2 + __fxstat64@GLIBC_2.1 2.1 + __fxstat64@GLIBC_2.2 2.2 + __fxstat@GLIBC_2.0 2.0 + __fxstatat64@GLIBC_2.4 2.4 + __fxstatat@GLIBC_2.4 2.4 + __gai_sigqueue@GLIBC_PRIVATE 2.7 + __gconv_get_alias_db@GLIBC_PRIVATE 2.7 + __gconv_get_cache@GLIBC_PRIVATE 2.7 + __gconv_get_modules_db@GLIBC_PRIVATE 2.7 + __getcwd_chk@GLIBC_2.4 2.4 + __getdelim@GLIBC_2.0 2.0 + __getdomainname_chk@GLIBC_2.4 2.4 + __getgroups_chk@GLIBC_2.4 2.4 + __gethostname_chk@GLIBC_2.4 2.4 + __getlogin_r_chk@GLIBC_2.4 2.4 + __getmntent_r@GLIBC_2.2 2.2 + __getpagesize@GLIBC_2.0 2.0 + __getpgid@GLIBC_2.0 2.0 + __getpid@GLIBC_2.0 2.0 + __gets_chk@GLIBC_2.3.4 2.3.4 + __gettimeofday@GLIBC_2.0 2.0 + __getwd_chk@GLIBC_2.4 2.4 + __gmtime_r@GLIBC_2.0 2.0 + __h_errno_location@GLIBC_2.0 2.0 + __internal_endnetgrent@GLIBC_PRIVATE 2.7 + __internal_getnetgrent_r@GLIBC_PRIVATE 2.7 + __internal_setnetgrent@GLIBC_PRIVATE 2.7 + __isalnum_l@GLIBC_2.1 2.1 + __isalpha_l@GLIBC_2.1 2.1 + __isascii_l@GLIBC_2.1 2.1 + __isblank_l@GLIBC_2.1 2.1 + __iscntrl_l@GLIBC_2.1 2.1 + __isctype@GLIBC_2.3 2.3 + __isdigit_l@GLIBC_2.1 2.1 + __isgraph_l@GLIBC_2.1 2.1 + __isinf@GLIBC_2.0 2.0 + __isinff@GLIBC_2.0 2.0 + __isinfl@GLIBC_2.0 2.0 + __islower_l@GLIBC_2.1 2.1 + __isnan@GLIBC_2.0 2.0 + __isnanf@GLIBC_2.0 2.0 + __isnanl@GLIBC_2.0 2.0 + __isoc99_fscanf@GLIBC_2.7 2.7 + __isoc99_fwscanf@GLIBC_2.7 2.7 + __isoc99_scanf@GLIBC_2.7 2.7 + __isoc99_sscanf@GLIBC_2.7 2.7 + __isoc99_swscanf@GLIBC_2.7 2.7 + __isoc99_vfscanf@GLIBC_2.7 2.7 + __isoc99_vfwscanf@GLIBC_2.7 2.7 + __isoc99_vscanf@GLIBC_2.7 2.7 + __isoc99_vsscanf@GLIBC_2.7 2.7 + __isoc99_vswscanf@GLIBC_2.7 2.7 + __isoc99_vwscanf@GLIBC_2.7 2.7 + __isoc99_wscanf@GLIBC_2.7 2.7 + __isprint_l@GLIBC_2.1 2.1 + __ispunct_l@GLIBC_2.1 2.1 + __isspace_l@GLIBC_2.1 2.1 + __isupper_l@GLIBC_2.1 2.1 + __iswalnum_l@GLIBC_2.1 2.1 + __iswalpha_l@GLIBC_2.1 2.1 + __iswblank_l@GLIBC_2.1 2.1 + __iswcntrl_l@GLIBC_2.1 2.1 + __iswctype@GLIBC_2.0 2.0 + __iswctype_l@GLIBC_2.1 2.1 + __iswdigit_l@GLIBC_2.1 2.1 + __iswgraph_l@GLIBC_2.1 2.1 + __iswlower_l@GLIBC_2.1 2.1 + __iswprint_l@GLIBC_2.1 2.1 + __iswpunct_l@GLIBC_2.1 2.1 + __iswspace_l@GLIBC_2.1 2.1 + __iswupper_l@GLIBC_2.1 2.1 + __iswxdigit_l@GLIBC_2.1 2.1 + __isxdigit_l@GLIBC_2.1 2.1 + __ivaliduser@GLIBC_2.0 2.0 + __key_decryptsession_pk_LOCAL@GLIBC_2.1 2.1 + __key_encryptsession_pk_LOCAL@GLIBC_2.1 2.1 + __key_gendes_LOCAL@GLIBC_2.1 2.1 + __libc_allocate_rtsig@GLIBC_2.1 2.1 + __libc_allocate_rtsig_private@GLIBC_PRIVATE 2.7 + __libc_calloc@GLIBC_2.0 2.0 + __libc_current_sigrtmax@GLIBC_2.1 2.1 + __libc_current_sigrtmax_private@GLIBC_PRIVATE 2.7 + __libc_current_sigrtmin@GLIBC_2.1 2.1 + __libc_current_sigrtmin_private@GLIBC_PRIVATE 2.7 + __libc_dl_error_tsd@GLIBC_PRIVATE 2.7 + __libc_dlclose@GLIBC_PRIVATE 2.7 + __libc_dlopen_mode@GLIBC_PRIVATE 2.7 + __libc_dlsym@GLIBC_PRIVATE 2.7 + __libc_fatal@GLIBC_PRIVATE 2.7 + __libc_fork@GLIBC_PRIVATE 2.7 + __libc_free@GLIBC_2.0 2.0 + __libc_freeres@GLIBC_2.1 2.1 + __libc_init_first@GLIBC_2.0 2.0 + __libc_longjmp@GLIBC_PRIVATE 2.7 + __libc_mallinfo@GLIBC_2.0 2.0 + __libc_malloc@GLIBC_2.0 2.0 + __libc_mallopt@GLIBC_2.0 2.0 + __libc_memalign@GLIBC_2.0 2.0 + __libc_msgrcv@GLIBC_PRIVATE 2.7 + __libc_msgsnd@GLIBC_PRIVATE 2.7 + __libc_pthread_init@GLIBC_PRIVATE 2.7 + __libc_pvalloc@GLIBC_2.0 2.0 + __libc_pwrite@GLIBC_PRIVATE 2.7 + __libc_realloc@GLIBC_2.0 2.0 + __libc_sa_len@GLIBC_2.1 2.1 + __libc_siglongjmp@GLIBC_PRIVATE 2.7 + __libc_start_main@GLIBC_2.0 2.0 + __libc_system@GLIBC_PRIVATE 2.7 + __libc_thread_freeres@GLIBC_PRIVATE 2.7 + __libc_valloc@GLIBC_2.0 2.0 + __lseek@GLIBC_2.0 2.0 + __lxstat64@GLIBC_2.1 2.1 + __lxstat64@GLIBC_2.2 2.2 + __lxstat@GLIBC_2.0 2.0 + __malloc_hook@GLIBC_2.0 2.0 + __malloc_initialize_hook@GLIBC_2.0 2.0 + __mbrlen@GLIBC_2.0 2.0 + __mbrtowc@GLIBC_2.0 2.0 + __mbsnrtowcs_chk@GLIBC_2.4 2.4 + __mbsrtowcs_chk@GLIBC_2.4 2.4 + __mbstowcs_chk@GLIBC_2.4 2.4 + __memalign_hook@GLIBC_2.0 2.0 + __memcpy_by2@GLIBC_2.1.1 2.1.1 + __memcpy_by4@GLIBC_2.1.1 2.1.1 + __memcpy_c@GLIBC_2.1.1 2.1.1 + __memcpy_chk@GLIBC_2.3.4 2.3.4 + __memcpy_g@GLIBC_2.1.1 2.1.1 + __memmove_chk@GLIBC_2.3.4 2.3.4 + __mempcpy@GLIBC_2.0 2.0 + __mempcpy_by2@GLIBC_2.1.1 2.1.1 + __mempcpy_by4@GLIBC_2.1.1 2.1.1 + __mempcpy_byn@GLIBC_2.1.1 2.1.1 + __mempcpy_chk@GLIBC_2.3.4 2.3.4 + __mempcpy_small@GLIBC_2.1.1 2.1.1 + __memset_cc@GLIBC_2.1.1 2.1.1 + __memset_ccn_by2@GLIBC_2.1.1 2.1.1 + __memset_ccn_by4@GLIBC_2.1.1 2.1.1 + __memset_cg@GLIBC_2.1.1 2.1.1 + __memset_chk@GLIBC_2.3.4 2.3.4 + __memset_gcn_by2@GLIBC_2.1.1 2.1.1 + __memset_gcn_by4@GLIBC_2.1.1 2.1.1 + __memset_gg@GLIBC_2.1.1 2.1.1 + __moddi3@GLIBC_2.0 2.0 + __modify_ldt@GLIBC_PRIVATE 2.7 + __monstartup@GLIBC_2.0 2.0 + __morecore@GLIBC_2.0 2.0 + __nanosleep@GLIBC_2.2.6 2.2.6 + __newlocale@GLIBC_2.1 2.1 + __nl_langinfo_l@GLIBC_2.2 2.2 + __nss_configure_lookup@GLIBC_2.0 2.0 + __nss_database_lookup@GLIBC_2.0 2.0 + __nss_disable_nscd@GLIBC_PRIVATE 2.7 + __nss_group_lookup@GLIBC_2.0 2.0 + __nss_hostname_digits_dots@GLIBC_2.2.2 2.2.2 + __nss_hosts_lookup@GLIBC_2.0 2.0 + __nss_lookup_function@GLIBC_PRIVATE 2.7 + __nss_next@GLIBC_2.0 2.0 + __nss_passwd_lookup@GLIBC_2.0 2.0 + __nss_services_lookup@GLIBC_PRIVATE 2.7 + __open64@GLIBC_2.2 2.2 + __open64_2@GLIBC_2.7 2.7 + __open@GLIBC_2.0 2.0 + __open_2@GLIBC_2.7 2.7 + __open_catalog@GLIBC_PRIVATE 2.7 + __openat64_2@GLIBC_2.7 2.7 + __openat_2@GLIBC_2.7 2.7 + __overflow@GLIBC_2.0 2.0 + __pipe@GLIBC_2.0 2.0 + __poll@GLIBC_2.1 2.1 + __pread64@GLIBC_2.1 2.1 + __pread64_chk@GLIBC_2.4 2.4 + __pread_chk@GLIBC_2.4 2.4 + __printf_chk@GLIBC_2.3.4 2.3.4 + __printf_fp@GLIBC_2.0 2.0 + __profile_frequency@GLIBC_2.0 2.0 + __progname@GLIBC_2.0 2.0 + __progname_full@GLIBC_2.0 2.0 + __ptsname_r_chk@GLIBC_2.4 2.4 + __pwrite64@GLIBC_2.1 2.1 + __rawmemchr@GLIBC_2.1 2.1 + __rcmd_errstr@GLIBC_2.0 2.0 + __read@GLIBC_2.0 2.0 + __read_chk@GLIBC_2.4 2.4 + __readlink_chk@GLIBC_2.4 2.4 + __readlinkat_chk@GLIBC_2.5 2.5 + __realloc_hook@GLIBC_2.0 2.0 + __realpath_chk@GLIBC_2.4 2.4 + __recv_chk@GLIBC_2.4 2.4 + __recvfrom_chk@GLIBC_2.4 2.4 + __register_atfork@GLIBC_2.3.2 2.3.2 + __register_frame@GLIBC_2.0 2.0 + __register_frame_info@GLIBC_2.0 2.0 + __register_frame_info_bases@GCC_3.0 2.7-9ubuntu1 + __register_frame_info_table@GLIBC_2.0 2.0 + __register_frame_info_table_bases@GCC_3.0 2.7-9ubuntu1 + __register_frame_table@GLIBC_2.0 2.0 + __res_iclose@GLIBC_PRIVATE 2.7 + __res_init@GLIBC_2.2 2.2 + __res_maybe_init@GLIBC_PRIVATE 2.7 + __res_nclose@GLIBC_2.2 2.2 + __res_ninit@GLIBC_2.2 2.2 + __res_randomid@GLIBC_2.0 2.0 + __res_state@GLIBC_2.2 2.2 + __resp@GLIBC_PRIVATE 2.7 + __rpc_thread_createerr@GLIBC_2.2.3 2.2.3 + __rpc_thread_svc_fdset@GLIBC_2.2.3 2.2.3 + __rpc_thread_svc_max_pollfd@GLIBC_2.2.3 2.2.3 + __rpc_thread_svc_pollfd@GLIBC_2.2.3 2.2.3 + __sbrk@GLIBC_2.0 2.0 + __sched_cpualloc@GLIBC_2.7 2.7 + __sched_cpucount@GLIBC_2.6 2.6 + __sched_cpufree@GLIBC_2.7 2.7 + __sched_get_priority_max@GLIBC_2.0 2.0 + __sched_get_priority_min@GLIBC_2.0 2.0 + __sched_getparam@GLIBC_2.0 2.0 + __sched_getscheduler@GLIBC_2.0 2.0 + __sched_setscheduler@GLIBC_2.0 2.0 + __sched_yield@GLIBC_2.0 2.0 + __secure_getenv@GLIBC_2.0 2.0 + __select@GLIBC_2.0 2.0 + __send@GLIBC_2.0 2.0 + __setmntent@GLIBC_2.2 2.2 + __setpgid@GLIBC_2.0 2.0 + __sigaction@GLIBC_2.0 2.0 + __sigaddset@GLIBC_2.0 2.0 + __sigdelset@GLIBC_2.0 2.0 + __sigismember@GLIBC_2.0 2.0 + __signbit@GLIBC_2.1 2.1 + __signbitf@GLIBC_2.1 2.1 + __signbitl@GLIBC_2.1 2.1 + __sigpause@GLIBC_2.0 2.0 + __sigsetjmp@GLIBC_2.0 2.0 + __sigsuspend@GLIBC_2.1.3 2.1.3 + __snprintf_chk@GLIBC_2.3.4 2.3.4 + __sprintf_chk@GLIBC_2.3.4 2.3.4 + __stack_chk_fail@GLIBC_2.4 2.4 + __statfs@GLIBC_2.2 2.2 + __stpcpy@GLIBC_2.0 2.0 + __stpcpy_chk@GLIBC_2.3.4 2.3.4 + __stpcpy_g@GLIBC_2.1.1 2.1.1 + __stpcpy_small@GLIBC_2.1.1 2.1.1 + __stpncpy@GLIBC_2.0 2.0 + __stpncpy_chk@GLIBC_2.4 2.4 + __strcasecmp@GLIBC_2.0 2.0 + __strcasecmp_l@GLIBC_2.1 2.1 + __strcasestr@GLIBC_2.1 2.1 + __strcat_c@GLIBC_2.1.1 2.1.1 + __strcat_chk@GLIBC_2.3.4 2.3.4 + __strcat_g@GLIBC_2.1.1 2.1.1 + __strchr_c@GLIBC_2.1.1 2.1.1 + __strchr_g@GLIBC_2.1.1 2.1.1 + __strchrnul_c@GLIBC_2.1.1 2.1.1 + __strchrnul_g@GLIBC_2.1.1 2.1.1 + __strcmp_gg@GLIBC_2.1.1 2.1.1 + __strcoll_l@GLIBC_2.1 2.1 + __strcpy_chk@GLIBC_2.3.4 2.3.4 + __strcpy_g@GLIBC_2.1.1 2.1.1 + __strcpy_small@GLIBC_2.1.1 2.1.1 + __strcspn_c1@GLIBC_2.1.1 2.1.1 + __strcspn_c2@GLIBC_2.1.1 2.1.1 + __strcspn_c3@GLIBC_2.1.1 2.1.1 + __strcspn_cg@GLIBC_2.1.1 2.1.1 + __strcspn_g@GLIBC_2.1.1 2.1.1 + __strdup@GLIBC_2.0 2.0 + __strerror_r@GLIBC_2.0 2.0 + __strfmon_l@GLIBC_2.1 2.1 + __strftime_l@GLIBC_2.3 2.3 + __strlen_g@GLIBC_2.1.1 2.1.1 + __strncasecmp_l@GLIBC_2.1 2.1 + __strncat_chk@GLIBC_2.3.4 2.3.4 + __strncat_g@GLIBC_2.1.1 2.1.1 + __strncmp_g@GLIBC_2.1.1 2.1.1 + __strncpy_by2@GLIBC_2.1.1 2.1.1 + __strncpy_by4@GLIBC_2.1.1 2.1.1 + __strncpy_byn@GLIBC_2.1.1 2.1.1 + __strncpy_chk@GLIBC_2.3.4 2.3.4 + __strncpy_gg@GLIBC_2.1.1 2.1.1 + __strndup@GLIBC_2.2 2.2 + __strpbrk_c2@GLIBC_2.1.1 2.1.1 + __strpbrk_c3@GLIBC_2.1.1 2.1.1 + __strpbrk_cg@GLIBC_2.1.1 2.1.1 + __strpbrk_g@GLIBC_2.1.1 2.1.1 + __strrchr_c@GLIBC_2.1.1 2.1.1 + __strrchr_g@GLIBC_2.1.1 2.1.1 + __strsep_1c@GLIBC_2.1.1 2.1.1 + __strsep_2c@GLIBC_2.1.1 2.1.1 + __strsep_3c@GLIBC_2.1.1 2.1.1 + __strsep_g@GLIBC_2.1.1 2.1.1 + __strspn_c1@GLIBC_2.1.1 2.1.1 + __strspn_c2@GLIBC_2.1.1 2.1.1 + __strspn_c3@GLIBC_2.1.1 2.1.1 + __strspn_cg@GLIBC_2.1.1 2.1.1 + __strspn_g@GLIBC_2.1.1 2.1.1 + __strstr_cg@GLIBC_2.1.1 2.1.1 + __strstr_g@GLIBC_2.1.1 2.1.1 + __strtod_internal@GLIBC_2.0 2.0 + __strtod_l@GLIBC_2.1 2.1 + __strtof_internal@GLIBC_2.0 2.0 + __strtof_l@GLIBC_2.1 2.1 + __strtok_r@GLIBC_2.0 2.0 + __strtok_r_1c@GLIBC_2.1.1 2.1.1 + __strtol_internal@GLIBC_2.0 2.0 + __strtol_l@GLIBC_2.1 2.1 + __strtold_internal@GLIBC_2.0 2.0 + __strtold_l@GLIBC_2.1 2.1 + __strtoll_internal@GLIBC_2.0 2.0 + __strtoll_l@GLIBC_2.1 2.1 + __strtoq_internal@GLIBC_2.0 2.0 + __strtoul_internal@GLIBC_2.0 2.0 + __strtoul_l@GLIBC_2.1 2.1 + __strtoull_internal@GLIBC_2.0 2.0 + __strtoull_l@GLIBC_2.1 2.1 + __strtouq_internal@GLIBC_2.0 2.0 + __strverscmp@GLIBC_2.1.1 2.1.1 + __strxfrm_l@GLIBC_2.1 2.1 + __swprintf_chk@GLIBC_2.4 2.4 + __sysconf@GLIBC_2.2 2.2 + __sysctl@GLIBC_2.2 2.2 + __syslog_chk@GLIBC_2.4 2.4 + __sysv_signal@GLIBC_2.0 2.0 + __timezone@GLIBC_2.0 2.0 + __toascii_l@GLIBC_2.1 2.1 + __tolower_l@GLIBC_2.1 2.1 + __toupper_l@GLIBC_2.1 2.1 + __towctrans@GLIBC_2.1 2.1 + __towctrans_l@GLIBC_2.1 2.1 + __towlower_l@GLIBC_2.1 2.1 + __towupper_l@GLIBC_2.1 2.1 + __ttyname_r_chk@GLIBC_2.4 2.4 + __tzname@GLIBC_2.0 2.0 + __ucmpdi2@GLIBC_2.0 2.0 + __udivdi3@GLIBC_2.0 2.0 + __uflow@GLIBC_2.0 2.0 + __umoddi3@GLIBC_2.0 2.0 + __underflow@GLIBC_2.0 2.0 + __uselocale@GLIBC_2.3 2.3 + __vfork@GLIBC_2.1.2 2.1.2 + __vfprintf_chk@GLIBC_2.3.4 2.3.4 + __vfscanf@GLIBC_2.0 2.0 + __vfwprintf_chk@GLIBC_2.4 2.4 + __vprintf_chk@GLIBC_2.3.4 2.3.4 + __vsnprintf@GLIBC_2.0 2.0 + __vsnprintf_chk@GLIBC_2.3.4 2.3.4 + __vsprintf_chk@GLIBC_2.3.4 2.3.4 + __vsscanf@GLIBC_2.0 2.0 + __vswprintf_chk@GLIBC_2.4 2.4 + __vsyslog_chk@GLIBC_2.4 2.4 + __vwprintf_chk@GLIBC_2.4 2.4 + __wait@GLIBC_2.0 2.0 + __waitpid@GLIBC_2.0 2.0 + __wcpcpy_chk@GLIBC_2.4 2.4 + __wcpncpy_chk@GLIBC_2.4 2.4 + __wcrtomb_chk@GLIBC_2.4 2.4 + __wcscasecmp_l@GLIBC_2.1 2.1 + __wcscat_chk@GLIBC_2.4 2.4 + __wcscoll_l@GLIBC_2.1 2.1 + __wcscpy_chk@GLIBC_2.4 2.4 + __wcsftime_l@GLIBC_2.3 2.3 + __wcsncasecmp_l@GLIBC_2.1 2.1 + __wcsncat_chk@GLIBC_2.4 2.4 + __wcsncpy_chk@GLIBC_2.4 2.4 + __wcsnrtombs_chk@GLIBC_2.4 2.4 + __wcsrtombs_chk@GLIBC_2.4 2.4 + __wcstod_internal@GLIBC_2.0 2.0 + __wcstod_l@GLIBC_2.1 2.1 + __wcstof_internal@GLIBC_2.0 2.0 + __wcstof_l@GLIBC_2.1 2.1 + __wcstol_internal@GLIBC_2.0 2.0 + __wcstol_l@GLIBC_2.1 2.1 + __wcstold_internal@GLIBC_2.0 2.0 + __wcstold_l@GLIBC_2.1 2.1 + __wcstoll_internal@GLIBC_2.0 2.0 + __wcstoll_l@GLIBC_2.1 2.1 + __wcstombs_chk@GLIBC_2.4 2.4 + __wcstoul_internal@GLIBC_2.0 2.0 + __wcstoul_l@GLIBC_2.1 2.1 + __wcstoull_internal@GLIBC_2.0 2.0 + __wcstoull_l@GLIBC_2.1 2.1 + __wcsxfrm_l@GLIBC_2.1 2.1 + __wctomb_chk@GLIBC_2.4 2.4 + __wctrans_l@GLIBC_2.2 2.2 + __wctype_l@GLIBC_2.1 2.1 + __wmemcpy_chk@GLIBC_2.4 2.4 + __wmemmove_chk@GLIBC_2.4 2.4 + __wmempcpy_chk@GLIBC_2.4 2.4 + __wmemset_chk@GLIBC_2.4 2.4 + __woverflow@GLIBC_2.2 2.2 + __wprintf_chk@GLIBC_2.4 2.4 + __write@GLIBC_2.0 2.0 + __wuflow@GLIBC_2.2 2.2 + __wunderflow@GLIBC_2.2 2.2 + __xmknod@GLIBC_2.0 2.0 + __xmknodat@GLIBC_2.4 2.4 + __xpg_basename@GLIBC_2.0 2.0 + __xpg_sigpause@GLIBC_2.2 2.2 + __xpg_strerror_r@GLIBC_2.3.4 2.3.4 + __xstat64@GLIBC_2.1 2.1 + __xstat64@GLIBC_2.2 2.2 + __xstat@GLIBC_2.0 2.0 + _authenticate@GLIBC_2.1 2.1 + _dl_addr@GLIBC_PRIVATE 2.7 + _dl_mcount_wrapper@GLIBC_2.1 2.1 + _dl_mcount_wrapper_check@GLIBC_2.1 2.1 + _dl_open_hook@GLIBC_PRIVATE 2.7 + _dl_sym@GLIBC_PRIVATE 2.7 + _dl_vsym@GLIBC_PRIVATE 2.7 + _environ@GLIBC_2.0 2.0 + _exit@GLIBC_2.0 2.0 + _flushlbf@GLIBC_2.2 2.2 + _itoa_lower_digits@GLIBC_PRIVATE 2.7 + _libc_intl_domainname@GLIBC_2.0 2.0 + _longjmp@GLIBC_2.0 2.0 + _mcleanup@GLIBC_2.0 2.0 + _mcount@GLIBC_2.0 2.0 + _nl_default_dirname@GLIBC_2.0 2.0 + _nl_domain_bindings@GLIBC_2.0 2.0 + _nl_msg_cat_cntr@GLIBC_2.0 2.0 + _nss_files_parse_grent@GLIBC_PRIVATE 2.7 + _nss_files_parse_pwent@GLIBC_PRIVATE 2.7 + _nss_files_parse_spent@GLIBC_PRIVATE 2.7 + _null_auth@GLIBC_2.0 2.0 + _obstack@GLIBC_2.0 2.0 + _obstack_allocated_p@GLIBC_2.0 2.0 + _obstack_begin@GLIBC_2.0 2.0 + _obstack_begin_1@GLIBC_2.0 2.0 + _obstack_free@GLIBC_2.0 2.0 + _obstack_memory_used@GLIBC_2.0 2.0 + _obstack_newchunk@GLIBC_2.0 2.0 + _res@GLIBC_2.0 2.0 + _res_hconf@GLIBC_2.2 2.2 + _rpc_dtablesize@GLIBC_2.0 2.0 + _seterr_reply@GLIBC_2.0 2.0 + _setjmp@GLIBC_2.0 2.0 + _sys_errlist@GLIBC_2.0 2.0 + _sys_errlist@GLIBC_2.1 2.1 + _sys_errlist@GLIBC_2.3 2.3 + _sys_errlist@GLIBC_2.4 2.4 + _sys_nerr@GLIBC_2.0 2.0 + _sys_nerr@GLIBC_2.1 2.1 + _sys_nerr@GLIBC_2.3 2.3 + _sys_nerr@GLIBC_2.4 2.4 + _sys_siglist@GLIBC_2.0 2.0 + _sys_siglist@GLIBC_2.1 2.1 + _sys_siglist@GLIBC_2.3.3 2.3.3 + _tolower@GLIBC_2.0 2.0 + _toupper@GLIBC_2.0 2.0 + a64l@GLIBC_2.0 2.0 + abort@GLIBC_2.0 2.0 + abs@GLIBC_2.0 2.0 + accept@GLIBC_2.0 2.0 + access@GLIBC_2.0 2.0 + acct@GLIBC_2.0 2.0 + addmntent@GLIBC_2.0 2.0 + addseverity@GLIBC_2.1 2.1 + adjtime@GLIBC_2.0 2.0 + adjtimex@GLIBC_2.0 2.0 + advance@GLIBC_2.0 2.0 + alarm@GLIBC_2.0 2.0 + alphasort64@GLIBC_2.1 2.1 + alphasort64@GLIBC_2.2 2.2 + alphasort@GLIBC_2.0 2.0 + argp_err_exit_status@GLIBC_2.1 2.1 + argp_error@GLIBC_2.1 2.1 + argp_failure@GLIBC_2.1 2.1 + argp_help@GLIBC_2.1 2.1 + argp_parse@GLIBC_2.1 2.1 + argp_program_bug_address@GLIBC_2.1 2.1 + argp_program_version@GLIBC_2.1 2.1 + argp_program_version_hook@GLIBC_2.1 2.1 + argp_state_help@GLIBC_2.1 2.1 + argp_usage@GLIBC_2.1 2.1 + argz_add@GLIBC_2.0 2.0 + argz_add_sep@GLIBC_2.0 2.0 + argz_append@GLIBC_2.0 2.0 + argz_count@GLIBC_2.0 2.0 + argz_create@GLIBC_2.0 2.0 + argz_create_sep@GLIBC_2.0 2.0 + argz_delete@GLIBC_2.0 2.0 + argz_extract@GLIBC_2.0 2.0 + argz_insert@GLIBC_2.0 2.0 + argz_next@GLIBC_2.0 2.0 + argz_replace@GLIBC_2.0 2.0 + argz_stringify@GLIBC_2.0 2.0 + asctime@GLIBC_2.0 2.0 + asctime_r@GLIBC_2.0 2.0 + asprintf@GLIBC_2.0 2.0 + atexit@GLIBC_2.0 2.0 + atof@GLIBC_2.0 2.0 + atoi@GLIBC_2.0 2.0 + atol@GLIBC_2.0 2.0 + atoll@GLIBC_2.0 2.0 + authdes_create@GLIBC_2.1 2.1 + authdes_getucred@GLIBC_2.1 2.1 + authdes_pk_create@GLIBC_2.1 2.1 + authnone_create@GLIBC_2.0 2.0 + authunix_create@GLIBC_2.0 2.0 + authunix_create_default@GLIBC_2.0 2.0 + backtrace@GLIBC_2.1 2.1 + backtrace_symbols@GLIBC_2.1 2.1 + backtrace_symbols_fd@GLIBC_2.1 2.1 + basename@GLIBC_2.0 2.0 + bcmp@GLIBC_2.0 2.0 + bcopy@GLIBC_2.0 2.0 + bdflush@GLIBC_2.0 2.0 + bind@GLIBC_2.0 2.0 + bind_textdomain_codeset@GLIBC_2.2 2.2 + bindresvport@GLIBC_2.0 2.0 + bindtextdomain@GLIBC_2.0 2.0 + brk@GLIBC_2.0 2.0 + bsd_signal@GLIBC_2.0 2.0 + bsearch@GLIBC_2.0 2.0 + btowc@GLIBC_2.0 2.0 + bzero@GLIBC_2.0 2.0 + calloc@GLIBC_2.0 2.0 + callrpc@GLIBC_2.0 2.0 + canonicalize_file_name@GLIBC_2.0 2.0 + capget@GLIBC_2.1 2.1 + capset@GLIBC_2.1 2.1 + catclose@GLIBC_2.0 2.0 + catgets@GLIBC_2.0 2.0 + catopen@GLIBC_2.0 2.0 + cbc_crypt@GLIBC_2.1 2.1 + cfgetispeed@GLIBC_2.0 2.0 + cfgetospeed@GLIBC_2.0 2.0 + cfmakeraw@GLIBC_2.0 2.0 + cfree@GLIBC_2.0 2.0 + cfsetispeed@GLIBC_2.0 2.0 + cfsetospeed@GLIBC_2.0 2.0 + cfsetspeed@GLIBC_2.0 2.0 + chdir@GLIBC_2.0 2.0 + chflags@GLIBC_2.0 2.0 + chmod@GLIBC_2.0 2.0 + chown@GLIBC_2.0 2.0 + chown@GLIBC_2.1 2.1 + chroot@GLIBC_2.0 2.0 + clearenv@GLIBC_2.0 2.0 + clearerr@GLIBC_2.0 2.0 + clearerr_unlocked@GLIBC_2.0 2.0 + clnt_broadcast@GLIBC_2.0 2.0 + clnt_create@GLIBC_2.0 2.0 + clnt_pcreateerror@GLIBC_2.0 2.0 + clnt_perrno@GLIBC_2.0 2.0 + clnt_perror@GLIBC_2.0 2.0 + clnt_spcreateerror@GLIBC_2.0 2.0 + clnt_sperrno@GLIBC_2.0 2.0 + clnt_sperror@GLIBC_2.0 2.0 + clntraw_create@GLIBC_2.0 2.0 + clnttcp_create@GLIBC_2.0 2.0 + clntudp_bufcreate@GLIBC_2.0 2.0 + clntudp_create@GLIBC_2.0 2.0 + clntunix_create@GLIBC_2.1 2.1 + clock@GLIBC_2.0 2.0 + clone@GLIBC_2.0 2.0 + close@GLIBC_2.0 2.0 + closedir@GLIBC_2.0 2.0 + closelog@GLIBC_2.0 2.0 + confstr@GLIBC_2.0 2.0 + connect@GLIBC_2.0 2.0 + copysign@GLIBC_2.0 2.0 + copysignf@GLIBC_2.0 2.0 + copysignl@GLIBC_2.0 2.0 + creat64@GLIBC_2.1 2.1 + creat@GLIBC_2.0 2.0 + create_module@GLIBC_2.0 2.0 + ctermid@GLIBC_2.0 2.0 + ctime@GLIBC_2.0 2.0 + ctime_r@GLIBC_2.0 2.0 + cuserid@GLIBC_2.0 2.0 + daemon@GLIBC_2.0 2.0 + daylight@GLIBC_2.0 2.0 + dcgettext@GLIBC_2.0 2.0 + dcngettext@GLIBC_2.2 2.2 + delete_module@GLIBC_2.0 2.0 + des_setparity@GLIBC_2.1 2.1 + dgettext@GLIBC_2.0 2.0 + difftime@GLIBC_2.0 2.0 + dirfd@GLIBC_2.0 2.0 + dirname@GLIBC_2.0 2.0 + div@GLIBC_2.0 2.0 + dl_iterate_phdr@GLIBC_2.2.4 2.2.4 + dngettext@GLIBC_2.2 2.2 + dprintf@GLIBC_2.0 2.0 + drand48@GLIBC_2.0 2.0 + drand48_r@GLIBC_2.0 2.0 + dup2@GLIBC_2.0 2.0 + dup@GLIBC_2.0 2.0 + duplocale@GLIBC_2.3 2.3 + dysize@GLIBC_2.0 2.0 + eaccess@GLIBC_2.4 2.4 + ecb_crypt@GLIBC_2.1 2.1 + ecvt@GLIBC_2.0 2.0 + ecvt_r@GLIBC_2.0 2.0 + endaliasent@GLIBC_2.0 2.0 + endfsent@GLIBC_2.0 2.0 + endgrent@GLIBC_2.0 2.0 + endhostent@GLIBC_2.0 2.0 + endmntent@GLIBC_2.0 2.0 + endnetent@GLIBC_2.0 2.0 + endnetgrent@GLIBC_2.0 2.0 + endprotoent@GLIBC_2.0 2.0 + endpwent@GLIBC_2.0 2.0 + endrpcent@GLIBC_2.0 2.0 + endservent@GLIBC_2.0 2.0 + endspent@GLIBC_2.0 2.0 + endttyent@GLIBC_2.0 2.0 + endusershell@GLIBC_2.0 2.0 + endutent@GLIBC_2.0 2.0 + endutxent@GLIBC_2.1 2.1 + environ@GLIBC_2.0 2.0 + envz_add@GLIBC_2.0 2.0 + envz_entry@GLIBC_2.0 2.0 + envz_get@GLIBC_2.0 2.0 + envz_merge@GLIBC_2.0 2.0 + envz_remove@GLIBC_2.0 2.0 + envz_strip@GLIBC_2.0 2.0 + epoll_create@GLIBC_2.3.2 2.3.2 + epoll_ctl@GLIBC_2.3.2 2.3.2 + epoll_pwait@GLIBC_2.6 2.6 + epoll_wait@GLIBC_2.3.2 2.3.2 + erand48@GLIBC_2.0 2.0 + erand48_r@GLIBC_2.0 2.0 + err@GLIBC_2.0 2.0 + errno@GLIBC_PRIVATE 2.7 + error@GLIBC_2.0 2.0 + error_at_line@GLIBC_2.0 2.0 + error_message_count@GLIBC_2.0 2.0 + error_one_per_line@GLIBC_2.0 2.0 + error_print_progname@GLIBC_2.0 2.0 + errx@GLIBC_2.0 2.0 + ether_aton@GLIBC_2.0 2.0 + ether_aton_r@GLIBC_2.0 2.0 + ether_hostton@GLIBC_2.0 2.0 + ether_line@GLIBC_2.0 2.0 + ether_ntoa@GLIBC_2.0 2.0 + ether_ntoa_r@GLIBC_2.0 2.0 + ether_ntohost@GLIBC_2.0 2.0 + euidaccess@GLIBC_2.0 2.0 + eventfd@GLIBC_2.7 2.7 + eventfd_read@GLIBC_2.7 2.7 + eventfd_write@GLIBC_2.7 2.7 + execl@GLIBC_2.0 2.0 + execle@GLIBC_2.0 2.0 + execlp@GLIBC_2.0 2.0 + execv@GLIBC_2.0 2.0 + execve@GLIBC_2.0 2.0 + execvp@GLIBC_2.0 2.0 + exit@GLIBC_2.0 2.0 + faccessat@GLIBC_2.4 2.4 + fattach@GLIBC_2.1 2.1 + fchdir@GLIBC_2.0 2.0 + fchflags@GLIBC_2.0 2.0 + fchmod@GLIBC_2.0 2.0 + fchmodat@GLIBC_2.4 2.4 + fchown@GLIBC_2.0 2.0 + fchownat@GLIBC_2.4 2.4 + fclose@GLIBC_2.0 2.0 + fclose@GLIBC_2.1 2.1 + fcloseall@GLIBC_2.0 2.0 + fcntl@GLIBC_2.0 2.0 + fcvt@GLIBC_2.0 2.0 + fcvt_r@GLIBC_2.0 2.0 + fdatasync@GLIBC_2.0 2.0 + fdetach@GLIBC_2.1 2.1 + fdopen@GLIBC_2.0 2.0 + fdopen@GLIBC_2.1 2.1 + fdopendir@GLIBC_2.4 2.4 + feof@GLIBC_2.0 2.0 + feof_unlocked@GLIBC_2.0 2.0 + ferror@GLIBC_2.0 2.0 + ferror_unlocked@GLIBC_2.0 2.0 + fexecve@GLIBC_2.0 2.0 + fflush@GLIBC_2.0 2.0 + fflush_unlocked@GLIBC_2.0 2.0 + ffs@GLIBC_2.0 2.0 + ffsl@GLIBC_2.1 2.1 + ffsll@GLIBC_2.1 2.1 + fgetc@GLIBC_2.0 2.0 + fgetc_unlocked@GLIBC_2.1 2.1 + fgetgrent@GLIBC_2.0 2.0 + fgetgrent_r@GLIBC_2.0 2.0 + fgetpos64@GLIBC_2.1 2.1 + fgetpos64@GLIBC_2.2 2.2 + fgetpos@GLIBC_2.0 2.0 + fgetpos@GLIBC_2.2 2.2 + fgetpwent@GLIBC_2.0 2.0 + fgetpwent_r@GLIBC_2.0 2.0 + fgets@GLIBC_2.0 2.0 + fgets_unlocked@GLIBC_2.1 2.1 + fgetspent@GLIBC_2.0 2.0 + fgetspent_r@GLIBC_2.0 2.0 + fgetwc@GLIBC_2.2 2.2 + fgetwc_unlocked@GLIBC_2.2 2.2 + fgetws@GLIBC_2.2 2.2 + fgetws_unlocked@GLIBC_2.2 2.2 + fgetxattr@GLIBC_2.3 2.3 + fileno@GLIBC_2.0 2.0 + fileno_unlocked@GLIBC_2.0 2.0 + finite@GLIBC_2.0 2.0 + finitef@GLIBC_2.0 2.0 + finitel@GLIBC_2.0 2.0 + flistxattr@GLIBC_2.3 2.3 + flock@GLIBC_2.0 2.0 + flockfile@GLIBC_2.0 2.0 + fmemopen@GLIBC_2.2 2.2 + fmtmsg@GLIBC_2.1 2.1 + fnmatch@GLIBC_2.0 2.0 + fnmatch@GLIBC_2.2.3 2.2.3 + fopen64@GLIBC_2.1 2.1 + fopen@GLIBC_2.0 2.0 + fopen@GLIBC_2.1 2.1 + fopencookie@GLIBC_2.0 2.0 + fopencookie@GLIBC_2.2 2.2 + fork@GLIBC_2.0 2.0 + fpathconf@GLIBC_2.0 2.0 + fprintf@GLIBC_2.0 2.0 + fputc@GLIBC_2.0 2.0 + fputc_unlocked@GLIBC_2.0 2.0 + fputs@GLIBC_2.0 2.0 + fputs_unlocked@GLIBC_2.1 2.1 + fputwc@GLIBC_2.2 2.2 + fputwc_unlocked@GLIBC_2.2 2.2 + fputws@GLIBC_2.2 2.2 + fputws_unlocked@GLIBC_2.2 2.2 + fread@GLIBC_2.0 2.0 + fread_unlocked@GLIBC_2.1 2.1 + free@GLIBC_2.0 2.0 + freeaddrinfo@GLIBC_2.0 2.0 + freeifaddrs@GLIBC_2.3 2.3 + freelocale@GLIBC_2.3 2.3 + fremovexattr@GLIBC_2.3 2.3 + freopen64@GLIBC_2.1 2.1 + freopen@GLIBC_2.0 2.0 + frexp@GLIBC_2.0 2.0 + frexpf@GLIBC_2.0 2.0 + frexpl@GLIBC_2.0 2.0 + fscanf@GLIBC_2.0 2.0 + fseek@GLIBC_2.0 2.0 + fseeko64@GLIBC_2.1 2.1 + fseeko@GLIBC_2.1 2.1 + fsetpos64@GLIBC_2.1 2.1 + fsetpos64@GLIBC_2.2 2.2 + fsetpos@GLIBC_2.0 2.0 + fsetpos@GLIBC_2.2 2.2 + fsetxattr@GLIBC_2.3 2.3 + fstatfs64@GLIBC_2.1 2.1 + fstatfs@GLIBC_2.0 2.0 + fstatvfs64@GLIBC_2.1 2.1 + fstatvfs@GLIBC_2.1 2.1 + fsync@GLIBC_2.0 2.0 + ftell@GLIBC_2.0 2.0 + ftello64@GLIBC_2.1 2.1 + ftello@GLIBC_2.1 2.1 + ftime@GLIBC_2.0 2.0 + ftok@GLIBC_2.0 2.0 + ftruncate64@GLIBC_2.1 2.1 + ftruncate@GLIBC_2.0 2.0 + ftrylockfile@GLIBC_2.0 2.0 + fts_children@GLIBC_2.0 2.0 + fts_close@GLIBC_2.0 2.0 + fts_open@GLIBC_2.0 2.0 + fts_read@GLIBC_2.0 2.0 + fts_set@GLIBC_2.0 2.0 + ftw64@GLIBC_2.1 2.1 + ftw@GLIBC_2.0 2.0 + funlockfile@GLIBC_2.0 2.0 + futimens@GLIBC_2.6 2.6 + futimes@GLIBC_2.3 2.3 + futimesat@GLIBC_2.4 2.4 + fwide@GLIBC_2.2 2.2 + fwprintf@GLIBC_2.2 2.2 + fwrite@GLIBC_2.0 2.0 + fwrite_unlocked@GLIBC_2.1 2.1 + fwscanf@GLIBC_2.2 2.2 + gai_strerror@GLIBC_2.1 2.1 + gcvt@GLIBC_2.0 2.0 + get_avphys_pages@GLIBC_2.0 2.0 + get_current_dir_name@GLIBC_2.0 2.0 + get_kernel_syms@GLIBC_2.0 2.0 + get_myaddress@GLIBC_2.0 2.0 + get_nprocs@GLIBC_2.0 2.0 + get_nprocs_conf@GLIBC_2.0 2.0 + get_phys_pages@GLIBC_2.0 2.0 + getaddrinfo@GLIBC_2.0 2.0 + getaliasbyname@GLIBC_2.0 2.0 + getaliasbyname_r@GLIBC_2.0 2.0 + getaliasbyname_r@GLIBC_2.1.2 2.1.2 + getaliasent@GLIBC_2.0 2.0 + getaliasent_r@GLIBC_2.0 2.0 + getaliasent_r@GLIBC_2.1.2 2.1.2 + getc@GLIBC_2.0 2.0 + getc_unlocked@GLIBC_2.0 2.0 + getchar@GLIBC_2.0 2.0 + getchar_unlocked@GLIBC_2.0 2.0 + getcontext@GLIBC_2.1 2.1 + getcwd@GLIBC_2.0 2.0 + getdate@GLIBC_2.1 2.1 + getdate_err@GLIBC_2.1 2.1 + getdate_r@GLIBC_2.1 2.1 + getdelim@GLIBC_2.0 2.0 + getdirentries64@GLIBC_2.2 2.2 + getdirentries@GLIBC_2.0 2.0 + getdomainname@GLIBC_2.0 2.0 + getdtablesize@GLIBC_2.0 2.0 + getegid@GLIBC_2.0 2.0 + getenv@GLIBC_2.0 2.0 + geteuid@GLIBC_2.0 2.0 + getfsent@GLIBC_2.0 2.0 + getfsfile@GLIBC_2.0 2.0 + getfsspec@GLIBC_2.0 2.0 + getgid@GLIBC_2.0 2.0 + getgrent@GLIBC_2.0 2.0 + getgrent_r@GLIBC_2.0 2.0 + getgrent_r@GLIBC_2.1.2 2.1.2 + getgrgid@GLIBC_2.0 2.0 + getgrgid_r@GLIBC_2.0 2.0 + getgrgid_r@GLIBC_2.1.2 2.1.2 + getgrnam@GLIBC_2.0 2.0 + getgrnam_r@GLIBC_2.0 2.0 + getgrnam_r@GLIBC_2.1.2 2.1.2 + getgrouplist@GLIBC_2.2.4 2.2.4 + getgroups@GLIBC_2.0 2.0 + gethostbyaddr@GLIBC_2.0 2.0 + gethostbyaddr_r@GLIBC_2.0 2.0 + gethostbyaddr_r@GLIBC_2.1.2 2.1.2 + gethostbyname2@GLIBC_2.0 2.0 + gethostbyname2_r@GLIBC_2.0 2.0 + gethostbyname2_r@GLIBC_2.1.2 2.1.2 + gethostbyname@GLIBC_2.0 2.0 + gethostbyname_r@GLIBC_2.0 2.0 + gethostbyname_r@GLIBC_2.1.2 2.1.2 + gethostent@GLIBC_2.0 2.0 + gethostent_r@GLIBC_2.0 2.0 + gethostent_r@GLIBC_2.1.2 2.1.2 + gethostid@GLIBC_2.0 2.0 + gethostname@GLIBC_2.0 2.0 + getifaddrs@GLIBC_2.3 2.3 + getipv4sourcefilter@GLIBC_2.3.4 2.3.4 + getitimer@GLIBC_2.0 2.0 + getline@GLIBC_2.0 2.0 + getloadavg@GLIBC_2.2 2.2 + getlogin@GLIBC_2.0 2.0 + getlogin_r@GLIBC_2.0 2.0 + getmntent@GLIBC_2.0 2.0 + getmntent_r@GLIBC_2.0 2.0 + getmsg@GLIBC_2.1 2.1 + getnameinfo@GLIBC_2.1 2.1 + getnetbyaddr@GLIBC_2.0 2.0 + getnetbyaddr_r@GLIBC_2.0 2.0 + getnetbyaddr_r@GLIBC_2.1.2 2.1.2 + getnetbyname@GLIBC_2.0 2.0 + getnetbyname_r@GLIBC_2.0 2.0 + getnetbyname_r@GLIBC_2.1.2 2.1.2 + getnetent@GLIBC_2.0 2.0 + getnetent_r@GLIBC_2.0 2.0 + getnetent_r@GLIBC_2.1.2 2.1.2 + getnetgrent@GLIBC_2.0 2.0 + getnetgrent_r@GLIBC_2.0 2.0 + getnetname@GLIBC_2.1 2.1 + getopt@GLIBC_2.0 2.0 + getopt_long@GLIBC_2.0 2.0 + getopt_long_only@GLIBC_2.0 2.0 + getpagesize@GLIBC_2.0 2.0 + getpass@GLIBC_2.0 2.0 + getpeername@GLIBC_2.0 2.0 + getpgid@GLIBC_2.0 2.0 + getpgrp@GLIBC_2.0 2.0 + getpid@GLIBC_2.0 2.0 + getpmsg@GLIBC_2.1 2.1 + getppid@GLIBC_2.0 2.0 + getpriority@GLIBC_2.0 2.0 + getprotobyname@GLIBC_2.0 2.0 + getprotobyname_r@GLIBC_2.0 2.0 + getprotobyname_r@GLIBC_2.1.2 2.1.2 + getprotobynumber@GLIBC_2.0 2.0 + getprotobynumber_r@GLIBC_2.0 2.0 + getprotobynumber_r@GLIBC_2.1.2 2.1.2 + getprotoent@GLIBC_2.0 2.0 + getprotoent_r@GLIBC_2.0 2.0 + getprotoent_r@GLIBC_2.1.2 2.1.2 + getpt@GLIBC_2.1 2.1 + getpublickey@GLIBC_2.0 2.0 + getpw@GLIBC_2.0 2.0 + getpwent@GLIBC_2.0 2.0 + getpwent_r@GLIBC_2.0 2.0 + getpwent_r@GLIBC_2.1.2 2.1.2 + getpwnam@GLIBC_2.0 2.0 + getpwnam_r@GLIBC_2.0 2.0 + getpwnam_r@GLIBC_2.1.2 2.1.2 + getpwuid@GLIBC_2.0 2.0 + getpwuid_r@GLIBC_2.0 2.0 + getpwuid_r@GLIBC_2.1.2 2.1.2 + getresgid@GLIBC_2.0 2.0 + getresuid@GLIBC_2.0 2.0 + getrlimit64@GLIBC_2.1 2.1 + getrlimit64@GLIBC_2.2 2.2 + getrlimit@GLIBC_2.0 2.0 + getrlimit@GLIBC_2.2 2.2 + getrpcbyname@GLIBC_2.0 2.0 + getrpcbyname_r@GLIBC_2.0 2.0 + getrpcbyname_r@GLIBC_2.1.2 2.1.2 + getrpcbynumber@GLIBC_2.0 2.0 + getrpcbynumber_r@GLIBC_2.0 2.0 + getrpcbynumber_r@GLIBC_2.1.2 2.1.2 + getrpcent@GLIBC_2.0 2.0 + getrpcent_r@GLIBC_2.0 2.0 + getrpcent_r@GLIBC_2.1.2 2.1.2 + getrpcport@GLIBC_2.0 2.0 + getrusage@GLIBC_2.0 2.0 + gets@GLIBC_2.0 2.0 + getsecretkey@GLIBC_2.0 2.0 + getservbyname@GLIBC_2.0 2.0 + getservbyname_r@GLIBC_2.0 2.0 + getservbyname_r@GLIBC_2.1.2 2.1.2 + getservbyport@GLIBC_2.0 2.0 + getservbyport_r@GLIBC_2.0 2.0 + getservbyport_r@GLIBC_2.1.2 2.1.2 + getservent@GLIBC_2.0 2.0 + getservent_r@GLIBC_2.0 2.0 + getservent_r@GLIBC_2.1.2 2.1.2 + getsid@GLIBC_2.0 2.0 + getsockname@GLIBC_2.0 2.0 + getsockopt@GLIBC_2.0 2.0 + getsourcefilter@GLIBC_2.3.4 2.3.4 + getspent@GLIBC_2.0 2.0 + getspent_r@GLIBC_2.0 2.0 + getspent_r@GLIBC_2.1.2 2.1.2 + getspnam@GLIBC_2.0 2.0 + getspnam_r@GLIBC_2.0 2.0 + getspnam_r@GLIBC_2.1.2 2.1.2 + getsubopt@GLIBC_2.0 2.0 + gettext@GLIBC_2.0 2.0 + gettimeofday@GLIBC_2.0 2.0 + getttyent@GLIBC_2.0 2.0 + getttynam@GLIBC_2.0 2.0 + getuid@GLIBC_2.0 2.0 + getusershell@GLIBC_2.0 2.0 + getutent@GLIBC_2.0 2.0 + getutent_r@GLIBC_2.0 2.0 + getutid@GLIBC_2.0 2.0 + getutid_r@GLIBC_2.0 2.0 + getutline@GLIBC_2.0 2.0 + getutline_r@GLIBC_2.0 2.0 + getutmp@GLIBC_2.1.1 2.1.1 + getutmpx@GLIBC_2.1.1 2.1.1 + getutxent@GLIBC_2.1 2.1 + getutxid@GLIBC_2.1 2.1 + getutxline@GLIBC_2.1 2.1 + getw@GLIBC_2.0 2.0 + getwc@GLIBC_2.2 2.2 + getwc_unlocked@GLIBC_2.2 2.2 + getwchar@GLIBC_2.2 2.2 + getwchar_unlocked@GLIBC_2.2 2.2 + getwd@GLIBC_2.0 2.0 + getxattr@GLIBC_2.3 2.3 + glob64@GLIBC_2.1 2.1 + glob64@GLIBC_2.2 2.2 + glob@GLIBC_2.0 2.0 + glob_pattern_p@GLIBC_2.0 2.0 + globfree64@GLIBC_2.1 2.1 + globfree@GLIBC_2.0 2.0 + gmtime@GLIBC_2.0 2.0 + gmtime_r@GLIBC_2.0 2.0 + gnu_dev_major@GLIBC_2.3.3 2.3.3 + gnu_dev_makedev@GLIBC_2.3.3 2.3.3 + gnu_dev_minor@GLIBC_2.3.3 2.3.3 + gnu_get_libc_release@GLIBC_2.1 2.1 + gnu_get_libc_version@GLIBC_2.1 2.1 + grantpt@GLIBC_2.1 2.1 + group_member@GLIBC_2.0 2.0 + gsignal@GLIBC_2.0 2.0 + gtty@GLIBC_2.0 2.0 + h_errlist@GLIBC_2.0 2.0 + h_errno@GLIBC_PRIVATE 2.7 + h_nerr@GLIBC_2.0 2.0 + hasmntopt@GLIBC_2.0 2.0 + hcreate@GLIBC_2.0 2.0 + hcreate_r@GLIBC_2.0 2.0 + hdestroy@GLIBC_2.0 2.0 + hdestroy_r@GLIBC_2.0 2.0 + herror@GLIBC_2.0 2.0 + host2netname@GLIBC_2.1 2.1 + hsearch@GLIBC_2.0 2.0 + hsearch_r@GLIBC_2.0 2.0 + hstrerror@GLIBC_2.0 2.0 + htonl@GLIBC_2.0 2.0 + htons@GLIBC_2.0 2.0 + iconv@GLIBC_2.1 2.1 + iconv_close@GLIBC_2.1 2.1 + iconv_open@GLIBC_2.1 2.1 + if_freenameindex@GLIBC_2.1 2.1 + if_indextoname@GLIBC_2.1 2.1 + if_nameindex@GLIBC_2.1 2.1 + if_nametoindex@GLIBC_2.1 2.1 + imaxabs@GLIBC_2.1.1 2.1.1 + imaxdiv@GLIBC_2.1.1 2.1.1 + in6addr_any@GLIBC_2.1 2.1 + in6addr_loopback@GLIBC_2.1 2.1 + index@GLIBC_2.0 2.0 + inet6_opt_append@GLIBC_2.5 2.5 + inet6_opt_find@GLIBC_2.5 2.5 + inet6_opt_finish@GLIBC_2.5 2.5 + inet6_opt_get_val@GLIBC_2.5 2.5 + inet6_opt_init@GLIBC_2.5 2.5 + inet6_opt_next@GLIBC_2.5 2.5 + inet6_opt_set_val@GLIBC_2.5 2.5 + inet6_option_alloc@GLIBC_2.3.3 2.3.3 + inet6_option_append@GLIBC_2.3.3 2.3.3 + inet6_option_find@GLIBC_2.3.3 2.3.3 + inet6_option_init@GLIBC_2.3.3 2.3.3 + inet6_option_next@GLIBC_2.3.3 2.3.3 + inet6_option_space@GLIBC_2.3.3 2.3.3 + inet6_rth_add@GLIBC_2.5 2.5 + inet6_rth_getaddr@GLIBC_2.5 2.5 + inet6_rth_init@GLIBC_2.5 2.5 + inet6_rth_reverse@GLIBC_2.5 2.5 + inet6_rth_segments@GLIBC_2.5 2.5 + inet6_rth_space@GLIBC_2.5 2.5 + inet_addr@GLIBC_2.0 2.0 + inet_aton@GLIBC_2.0 2.0 + inet_lnaof@GLIBC_2.0 2.0 + inet_makeaddr@GLIBC_2.0 2.0 + inet_netof@GLIBC_2.0 2.0 + inet_network@GLIBC_2.0 2.0 + inet_nsap_addr@GLIBC_2.0 2.0 + inet_nsap_ntoa@GLIBC_2.0 2.0 + inet_ntoa@GLIBC_2.0 2.0 + inet_ntop@GLIBC_2.0 2.0 + inet_pton@GLIBC_2.0 2.0 + init_module@GLIBC_2.0 2.0 + initgroups@GLIBC_2.0 2.0 + initstate@GLIBC_2.0 2.0 + initstate_r@GLIBC_2.0 2.0 + innetgr@GLIBC_2.0 2.0 + inotify_add_watch@GLIBC_2.4 2.4 + inotify_init@GLIBC_2.4 2.4 + inotify_rm_watch@GLIBC_2.4 2.4 + insque@GLIBC_2.0 2.0 + ioctl@GLIBC_2.0 2.0 + ioperm@GLIBC_2.0 2.0 + iopl@GLIBC_2.0 2.0 + iruserok@GLIBC_2.0 2.0 + iruserok_af@GLIBC_2.2 2.2 + isalnum@GLIBC_2.0 2.0 + isalnum_l@GLIBC_2.3 2.3 + isalpha@GLIBC_2.0 2.0 + isalpha_l@GLIBC_2.3 2.3 + isascii@GLIBC_2.0 2.0 + isastream@GLIBC_2.1 2.1 + isatty@GLIBC_2.0 2.0 + isblank@GLIBC_2.0 2.0 + isblank_l@GLIBC_2.3 2.3 + iscntrl@GLIBC_2.0 2.0 + iscntrl_l@GLIBC_2.3 2.3 + isctype@GLIBC_2.3 2.3 + isdigit@GLIBC_2.0 2.0 + isdigit_l@GLIBC_2.3 2.3 + isfdtype@GLIBC_2.0 2.0 + isgraph@GLIBC_2.0 2.0 + isgraph_l@GLIBC_2.3 2.3 + isinf@GLIBC_2.0 2.0 + isinff@GLIBC_2.0 2.0 + isinfl@GLIBC_2.0 2.0 + islower@GLIBC_2.0 2.0 + islower_l@GLIBC_2.3 2.3 + isnan@GLIBC_2.0 2.0 + isnanf@GLIBC_2.0 2.0 + isnanl@GLIBC_2.0 2.0 + isprint@GLIBC_2.0 2.0 + isprint_l@GLIBC_2.3 2.3 + ispunct@GLIBC_2.0 2.0 + ispunct_l@GLIBC_2.3 2.3 + isspace@GLIBC_2.0 2.0 + isspace_l@GLIBC_2.3 2.3 + isupper@GLIBC_2.0 2.0 + isupper_l@GLIBC_2.3 2.3 + iswalnum@GLIBC_2.0 2.0 + iswalnum_l@GLIBC_2.3 2.3 + iswalpha@GLIBC_2.0 2.0 + iswalpha_l@GLIBC_2.3 2.3 + iswblank@GLIBC_2.1 2.1 + iswblank_l@GLIBC_2.3 2.3 + iswcntrl@GLIBC_2.0 2.0 + iswcntrl_l@GLIBC_2.3 2.3 + iswctype@GLIBC_2.0 2.0 + iswctype_l@GLIBC_2.3 2.3 + iswdigit@GLIBC_2.0 2.0 + iswdigit_l@GLIBC_2.3 2.3 + iswgraph@GLIBC_2.0 2.0 + iswgraph_l@GLIBC_2.3 2.3 + iswlower@GLIBC_2.0 2.0 + iswlower_l@GLIBC_2.3 2.3 + iswprint@GLIBC_2.0 2.0 + iswprint_l@GLIBC_2.3 2.3 + iswpunct@GLIBC_2.0 2.0 + iswpunct_l@GLIBC_2.3 2.3 + iswspace@GLIBC_2.0 2.0 + iswspace_l@GLIBC_2.3 2.3 + iswupper@GLIBC_2.0 2.0 + iswupper_l@GLIBC_2.3 2.3 + iswxdigit@GLIBC_2.0 2.0 + iswxdigit_l@GLIBC_2.3 2.3 + isxdigit@GLIBC_2.0 2.0 + isxdigit_l@GLIBC_2.3 2.3 + jrand48@GLIBC_2.0 2.0 + jrand48_r@GLIBC_2.0 2.0 + key_decryptsession@GLIBC_2.1 2.1 + key_decryptsession_pk@GLIBC_2.1 2.1 + key_encryptsession@GLIBC_2.1 2.1 + key_encryptsession_pk@GLIBC_2.1 2.1 + key_gendes@GLIBC_2.1 2.1 + key_get_conv@GLIBC_2.1 2.1 + key_secretkey_is_set@GLIBC_2.1 2.1 + key_setnet@GLIBC_2.1 2.1 + key_setsecret@GLIBC_2.1 2.1 + kill@GLIBC_2.0 2.0 + killpg@GLIBC_2.0 2.0 + klogctl@GLIBC_2.0 2.0 + l64a@GLIBC_2.0 2.0 + labs@GLIBC_2.0 2.0 + lchmod@GLIBC_2.3.2 2.3.2 + lchown@GLIBC_2.0 2.0 + lckpwdf@GLIBC_2.0 2.0 + lcong48@GLIBC_2.0 2.0 + lcong48_r@GLIBC_2.0 2.0 + ldexp@GLIBC_2.0 2.0 + ldexpf@GLIBC_2.0 2.0 + ldexpl@GLIBC_2.0 2.0 + ldiv@GLIBC_2.0 2.0 + lfind@GLIBC_2.0 2.0 + lgetxattr@GLIBC_2.3 2.3 + link@GLIBC_2.0 2.0 + linkat@GLIBC_2.4 2.4 + listen@GLIBC_2.0 2.0 + listxattr@GLIBC_2.3 2.3 + llabs@GLIBC_2.0 2.0 + lldiv@GLIBC_2.0 2.0 + llistxattr@GLIBC_2.3 2.3 + llseek@GLIBC_2.0 2.0 + loc1@GLIBC_2.0 2.0 + loc2@GLIBC_2.0 2.0 + localeconv@GLIBC_2.0 2.0 + localeconv@GLIBC_2.2 2.2 + localtime@GLIBC_2.0 2.0 + localtime_r@GLIBC_2.0 2.0 + lockf64@GLIBC_2.1 2.1 + lockf@GLIBC_2.0 2.0 + locs@GLIBC_2.0 2.0 + longjmp@GLIBC_2.0 2.0 + lrand48@GLIBC_2.0 2.0 + lrand48_r@GLIBC_2.0 2.0 + lremovexattr@GLIBC_2.3 2.3 + lsearch@GLIBC_2.0 2.0 + lseek64@GLIBC_2.1 2.1 + lseek@GLIBC_2.0 2.0 + lsetxattr@GLIBC_2.3 2.3 + lutimes@GLIBC_2.3 2.3 + madvise@GLIBC_2.0 2.0 + makecontext@GLIBC_2.1 2.1 + mallinfo@GLIBC_2.0 2.0 + malloc@GLIBC_2.0 2.0 + malloc_get_state@GLIBC_2.0 2.0 + malloc_set_state@GLIBC_2.0 2.0 + malloc_stats@GLIBC_2.0 2.0 + malloc_trim@GLIBC_2.0 2.0 + malloc_usable_size@GLIBC_2.0 2.0 + mallopt@GLIBC_2.0 2.0 + mallwatch@GLIBC_2.0 2.0 + mblen@GLIBC_2.0 2.0 + mbrlen@GLIBC_2.0 2.0 + mbrtowc@GLIBC_2.0 2.0 + mbsinit@GLIBC_2.0 2.0 + mbsnrtowcs@GLIBC_2.0 2.0 + mbsrtowcs@GLIBC_2.0 2.0 + mbstowcs@GLIBC_2.0 2.0 + mbtowc@GLIBC_2.0 2.0 + mcheck@GLIBC_2.0 2.0 + mcheck_check_all@GLIBC_2.2 2.2 + mcheck_pedantic@GLIBC_2.2 2.2 + mcount@GLIBC_2.0 2.0 + memalign@GLIBC_2.0 2.0 + memccpy@GLIBC_2.0 2.0 + memchr@GLIBC_2.0 2.0 + memcmp@GLIBC_2.0 2.0 + memcpy@GLIBC_2.0 2.0 + memfrob@GLIBC_2.0 2.0 + memmem@GLIBC_2.0 2.0 + memmove@GLIBC_2.0 2.0 + mempcpy@GLIBC_2.1 2.1 + memrchr@GLIBC_2.2 2.2 + memset@GLIBC_2.0 2.0 + mincore@GLIBC_2.2 2.2 + mkdir@GLIBC_2.0 2.0 + mkdirat@GLIBC_2.4 2.4 + mkdtemp@GLIBC_2.2 2.2 + mkfifo@GLIBC_2.0 2.0 + mkfifoat@GLIBC_2.4 2.4 + mkostemp64@GLIBC_2.7 2.7 + mkostemp@GLIBC_2.7 2.7 + mkstemp64@GLIBC_2.2 2.2 + mkstemp@GLIBC_2.0 2.0 + mktemp@GLIBC_2.0 2.0 + mktime@GLIBC_2.0 2.0 + mlock@GLIBC_2.0 2.0 + mlockall@GLIBC_2.0 2.0 + mmap64@GLIBC_2.1 2.1 + mmap@GLIBC_2.0 2.0 + modf@GLIBC_2.0 2.0 + modff@GLIBC_2.0 2.0 + modfl@GLIBC_2.0 2.0 + modify_ldt@GLIBC_2.1 2.1 + moncontrol@GLIBC_2.2 2.2 + monstartup@GLIBC_2.0 2.0 + mount@GLIBC_2.0 2.0 + mprobe@GLIBC_2.0 2.0 + mprotect@GLIBC_2.0 2.0 + mrand48@GLIBC_2.0 2.0 + mrand48_r@GLIBC_2.0 2.0 + mremap@GLIBC_2.0 2.0 + msgctl@GLIBC_2.0 2.0 + msgctl@GLIBC_2.2 2.2 + msgget@GLIBC_2.0 2.0 + msgrcv@GLIBC_2.0 2.0 + msgsnd@GLIBC_2.0 2.0 + msync@GLIBC_2.0 2.0 + mtrace@GLIBC_2.0 2.0 + munlock@GLIBC_2.0 2.0 + munlockall@GLIBC_2.0 2.0 + munmap@GLIBC_2.0 2.0 + muntrace@GLIBC_2.0 2.0 + nanosleep@GLIBC_2.0 2.0 + netname2host@GLIBC_2.1 2.1 + netname2user@GLIBC_2.1 2.1 + newlocale@GLIBC_2.3 2.3 + nfsservctl@GLIBC_2.0 2.0 + nftw64@GLIBC_2.1 2.1 + nftw64@GLIBC_2.3.3 2.3.3 + nftw@GLIBC_2.1 2.1 + nftw@GLIBC_2.3.3 2.3.3 + ngettext@GLIBC_2.2 2.2 + nice@GLIBC_2.0 2.0 + nl_langinfo@GLIBC_2.0 2.0 + nl_langinfo_l@GLIBC_2.3 2.3 + nrand48@GLIBC_2.0 2.0 + nrand48_r@GLIBC_2.0 2.0 + ntohl@GLIBC_2.0 2.0 + ntohs@GLIBC_2.0 2.0 + ntp_adjtime@GLIBC_2.1 2.1 + ntp_gettime@GLIBC_2.1 2.1 + obstack_alloc_failed_handler@GLIBC_2.0 2.0 + obstack_exit_failure@GLIBC_2.0 2.0 + obstack_free@GLIBC_2.0 2.0 + obstack_printf@GLIBC_2.0 2.0 + obstack_vprintf@GLIBC_2.0 2.0 + on_exit@GLIBC_2.0 2.0 + open64@GLIBC_2.1 2.1 + open@GLIBC_2.0 2.0 + open_memstream@GLIBC_2.0 2.0 + open_wmemstream@GLIBC_2.4 2.4 + openat64@GLIBC_2.4 2.4 + openat@GLIBC_2.4 2.4 + opendir@GLIBC_2.0 2.0 + openlog@GLIBC_2.0 2.0 + optarg@GLIBC_2.0 2.0 + opterr@GLIBC_2.0 2.0 + optind@GLIBC_2.0 2.0 + optopt@GLIBC_2.0 2.0 + parse_printf_format@GLIBC_2.0 2.0 + passwd2des@GLIBC_2.1 2.1 + pathconf@GLIBC_2.0 2.0 + pause@GLIBC_2.0 2.0 + pclose@GLIBC_2.0 2.0 + pclose@GLIBC_2.1 2.1 + perror@GLIBC_2.0 2.0 + personality@GLIBC_2.0 2.0 + pipe@GLIBC_2.0 2.0 + pivot_root@GLIBC_2.2.1 2.2.1 + pmap_getmaps@GLIBC_2.0 2.0 + pmap_getport@GLIBC_2.0 2.0 + pmap_rmtcall@GLIBC_2.0 2.0 + pmap_set@GLIBC_2.0 2.0 + pmap_unset@GLIBC_2.0 2.0 + poll@GLIBC_2.0 2.0 + popen@GLIBC_2.0 2.0 + popen@GLIBC_2.1 2.1 + posix_fadvise64@GLIBC_2.2 2.2 + posix_fadvise64@GLIBC_2.3.3 2.3.3 + posix_fadvise@GLIBC_2.2 2.2 + posix_fallocate64@GLIBC_2.2 2.2 + posix_fallocate64@GLIBC_2.3.3 2.3.3 + posix_fallocate@GLIBC_2.2 2.2 + posix_madvise@GLIBC_2.2 2.2 + posix_memalign@GLIBC_2.2 2.2 + posix_openpt@GLIBC_2.2.1 2.2.1 + posix_spawn@GLIBC_2.2 2.2 + posix_spawn_file_actions_addclose@GLIBC_2.2 2.2 + posix_spawn_file_actions_adddup2@GLIBC_2.2 2.2 + posix_spawn_file_actions_addopen@GLIBC_2.2 2.2 + posix_spawn_file_actions_destroy@GLIBC_2.2 2.2 + posix_spawn_file_actions_init@GLIBC_2.2 2.2 + posix_spawnattr_destroy@GLIBC_2.2 2.2 + posix_spawnattr_getflags@GLIBC_2.2 2.2 + posix_spawnattr_getpgroup@GLIBC_2.2 2.2 + posix_spawnattr_getschedparam@GLIBC_2.2 2.2 + posix_spawnattr_getschedpolicy@GLIBC_2.2 2.2 + posix_spawnattr_getsigdefault@GLIBC_2.2 2.2 + posix_spawnattr_getsigmask@GLIBC_2.2 2.2 + posix_spawnattr_init@GLIBC_2.2 2.2 + posix_spawnattr_setflags@GLIBC_2.2 2.2 + posix_spawnattr_setpgroup@GLIBC_2.2 2.2 + posix_spawnattr_setschedparam@GLIBC_2.2 2.2 + posix_spawnattr_setschedpolicy@GLIBC_2.2 2.2 + posix_spawnattr_setsigdefault@GLIBC_2.2 2.2 + posix_spawnattr_setsigmask@GLIBC_2.2 2.2 + posix_spawnp@GLIBC_2.2 2.2 + ppoll@GLIBC_2.4 2.4 + prctl@GLIBC_2.0 2.0 + pread64@GLIBC_2.1 2.1 + pread@GLIBC_2.1 2.1 + printf@GLIBC_2.0 2.0 + printf_size@GLIBC_2.1 2.1 + printf_size_info@GLIBC_2.1 2.1 + profil@GLIBC_2.0 2.0 + program_invocation_name@GLIBC_2.0 2.0 + program_invocation_short_name@GLIBC_2.0 2.0 + pselect@GLIBC_2.0 2.0 + psignal@GLIBC_2.0 2.0 + pthread_attr_destroy@GLIBC_2.0 2.0 + pthread_attr_getdetachstate@GLIBC_2.0 2.0 + pthread_attr_getinheritsched@GLIBC_2.0 2.0 + pthread_attr_getschedparam@GLIBC_2.0 2.0 + pthread_attr_getschedpolicy@GLIBC_2.0 2.0 + pthread_attr_getscope@GLIBC_2.0 2.0 + pthread_attr_init@GLIBC_2.0 2.0 + pthread_attr_init@GLIBC_2.1 2.1 + pthread_attr_setdetachstate@GLIBC_2.0 2.0 + pthread_attr_setinheritsched@GLIBC_2.0 2.0 + pthread_attr_setschedparam@GLIBC_2.0 2.0 + pthread_attr_setschedpolicy@GLIBC_2.0 2.0 + pthread_attr_setscope@GLIBC_2.0 2.0 + pthread_cond_broadcast@GLIBC_2.0 2.0 + pthread_cond_broadcast@GLIBC_2.3.2 2.3.2 + pthread_cond_destroy@GLIBC_2.0 2.0 + pthread_cond_destroy@GLIBC_2.3.2 2.3.2 + pthread_cond_init@GLIBC_2.0 2.0 + pthread_cond_init@GLIBC_2.3.2 2.3.2 + pthread_cond_signal@GLIBC_2.0 2.0 + pthread_cond_signal@GLIBC_2.3.2 2.3.2 + pthread_cond_timedwait@GLIBC_2.0 2.0 + pthread_cond_timedwait@GLIBC_2.3.2 2.3.2 + pthread_cond_wait@GLIBC_2.0 2.0 + pthread_cond_wait@GLIBC_2.3.2 2.3.2 + pthread_condattr_destroy@GLIBC_2.0 2.0 + pthread_condattr_init@GLIBC_2.0 2.0 + pthread_equal@GLIBC_2.0 2.0 + pthread_exit@GLIBC_2.0 2.0 + pthread_getschedparam@GLIBC_2.0 2.0 + pthread_mutex_destroy@GLIBC_2.0 2.0 + pthread_mutex_init@GLIBC_2.0 2.0 + pthread_mutex_lock@GLIBC_2.0 2.0 + pthread_mutex_unlock@GLIBC_2.0 2.0 + pthread_self@GLIBC_2.0 2.0 + pthread_setcancelstate@GLIBC_2.0 2.0 + pthread_setcanceltype@GLIBC_2.0 2.0 + pthread_setschedparam@GLIBC_2.0 2.0 + ptrace@GLIBC_2.0 2.0 + ptsname@GLIBC_2.1 2.1 + ptsname_r@GLIBC_2.1 2.1 + putc@GLIBC_2.0 2.0 + putc_unlocked@GLIBC_2.0 2.0 + putchar@GLIBC_2.0 2.0 + putchar_unlocked@GLIBC_2.0 2.0 + putenv@GLIBC_2.0 2.0 + putgrent@GLIBC_2.1 2.1 + putmsg@GLIBC_2.1 2.1 + putpmsg@GLIBC_2.1 2.1 + putpwent@GLIBC_2.0 2.0 + puts@GLIBC_2.0 2.0 + putspent@GLIBC_2.0 2.0 + pututline@GLIBC_2.0 2.0 + pututxline@GLIBC_2.1 2.1 + putw@GLIBC_2.0 2.0 + putwc@GLIBC_2.2 2.2 + putwc_unlocked@GLIBC_2.2 2.2 + putwchar@GLIBC_2.2 2.2 + putwchar_unlocked@GLIBC_2.2 2.2 + pvalloc@GLIBC_2.0 2.0 + pwrite64@GLIBC_2.1 2.1 + pwrite@GLIBC_2.1 2.1 + qecvt@GLIBC_2.0 2.0 + qecvt_r@GLIBC_2.0 2.0 + qfcvt@GLIBC_2.0 2.0 + qfcvt_r@GLIBC_2.0 2.0 + qgcvt@GLIBC_2.0 2.0 + qsort@GLIBC_2.0 2.0 + query_module@GLIBC_2.0 2.0 + quotactl@GLIBC_2.0 2.0 + raise@GLIBC_2.0 2.0 + rand@GLIBC_2.0 2.0 + rand_r@GLIBC_2.0 2.0 + random@GLIBC_2.0 2.0 + random_r@GLIBC_2.0 2.0 + rawmemchr@GLIBC_2.1 2.1 + rcmd@GLIBC_2.0 2.0 + rcmd_af@GLIBC_2.2 2.2 + re_comp@GLIBC_2.0 2.0 + re_compile_fastmap@GLIBC_2.0 2.0 + re_compile_pattern@GLIBC_2.0 2.0 + re_exec@GLIBC_2.0 2.0 + re_match@GLIBC_2.0 2.0 + re_match_2@GLIBC_2.0 2.0 + re_max_failures@GLIBC_2.0 2.0 + re_search@GLIBC_2.0 2.0 + re_search_2@GLIBC_2.0 2.0 + re_set_registers@GLIBC_2.0 2.0 + re_set_syntax@GLIBC_2.0 2.0 + re_syntax_options@GLIBC_2.0 2.0 + read@GLIBC_2.0 2.0 + readahead@GLIBC_2.3 2.3 + readdir64@GLIBC_2.1 2.1 + readdir64@GLIBC_2.2 2.2 + readdir64_r@GLIBC_2.1 2.1 + readdir64_r@GLIBC_2.2 2.2 + readdir@GLIBC_2.0 2.0 + readdir_r@GLIBC_2.0 2.0 + readlink@GLIBC_2.0 2.0 + readlinkat@GLIBC_2.4 2.4 + readv@GLIBC_2.0 2.0 + realloc@GLIBC_2.0 2.0 + realpath@GLIBC_2.0 2.0 + realpath@GLIBC_2.3 2.3 + reboot@GLIBC_2.0 2.0 + recv@GLIBC_2.0 2.0 + recvfrom@GLIBC_2.0 2.0 + recvmsg@GLIBC_2.0 2.0 + regcomp@GLIBC_2.0 2.0 + regerror@GLIBC_2.0 2.0 + regexec@GLIBC_2.0 2.0 + regexec@GLIBC_2.3.4 2.3.4 + regfree@GLIBC_2.0 2.0 + register_printf_function@GLIBC_2.0 2.0 + registerrpc@GLIBC_2.0 2.0 + remap_file_pages@GLIBC_2.3.3 2.3.3 + remove@GLIBC_2.0 2.0 + removexattr@GLIBC_2.3 2.3 + remque@GLIBC_2.0 2.0 + rename@GLIBC_2.0 2.0 + renameat@GLIBC_2.4 2.4 + res_init@GLIBC_2.0 2.0 + revoke@GLIBC_2.0 2.0 + rewind@GLIBC_2.0 2.0 + rewinddir@GLIBC_2.0 2.0 + rexec@GLIBC_2.0 2.0 + rexec_af@GLIBC_2.2 2.2 + rexecoptions@GLIBC_2.0 2.0 + rindex@GLIBC_2.0 2.0 + rmdir@GLIBC_2.0 2.0 + rpc_createerr@GLIBC_2.0 2.0 + rpmatch@GLIBC_2.0 2.0 + rresvport@GLIBC_2.0 2.0 + rresvport_af@GLIBC_2.2 2.2 + rtime@GLIBC_2.1 2.1 + ruserok@GLIBC_2.0 2.0 + ruserok_af@GLIBC_2.2 2.2 + ruserpass@GLIBC_2.0 2.0 + sbrk@GLIBC_2.0 2.0 + scalbln@GLIBC_2.1 2.1 + scalblnf@GLIBC_2.1 2.1 + scalblnl@GLIBC_2.1 2.1 + scalbn@GLIBC_2.0 2.0 + scalbnf@GLIBC_2.0 2.0 + scalbnl@GLIBC_2.0 2.0 + scandir64@GLIBC_2.1 2.1 + scandir64@GLIBC_2.2 2.2 + scandir@GLIBC_2.0 2.0 + scanf@GLIBC_2.0 2.0 + sched_get_priority_max@GLIBC_2.0 2.0 + sched_get_priority_min@GLIBC_2.0 2.0 + sched_getaffinity@GLIBC_2.3.3 2.3.3 + sched_getaffinity@GLIBC_2.3.4 2.3.4 + sched_getcpu@GLIBC_2.6 2.6 + sched_getparam@GLIBC_2.0 2.0 + sched_getscheduler@GLIBC_2.0 2.0 + sched_rr_get_interval@GLIBC_2.0 2.0 + sched_setaffinity@GLIBC_2.3.3 2.3.3 + sched_setaffinity@GLIBC_2.3.4 2.3.4 + sched_setparam@GLIBC_2.0 2.0 + sched_setscheduler@GLIBC_2.0 2.0 + sched_yield@GLIBC_2.0 2.0 + seed48@GLIBC_2.0 2.0 + seed48_r@GLIBC_2.0 2.0 + seekdir@GLIBC_2.0 2.0 + select@GLIBC_2.0 2.0 + semctl@GLIBC_2.0 2.0 + semctl@GLIBC_2.2 2.2 + semget@GLIBC_2.0 2.0 + semop@GLIBC_2.0 2.0 + semtimedop@GLIBC_2.3.3 2.3.3 + send@GLIBC_2.0 2.0 + sendfile64@GLIBC_2.3 2.3 + sendfile@GLIBC_2.1 2.1 + sendmsg@GLIBC_2.0 2.0 + sendto@GLIBC_2.0 2.0 + setaliasent@GLIBC_2.0 2.0 + setbuf@GLIBC_2.0 2.0 + setbuffer@GLIBC_2.0 2.0 + setcontext@GLIBC_2.0 2.0 + setdomainname@GLIBC_2.0 2.0 + setegid@GLIBC_2.0 2.0 + setenv@GLIBC_2.0 2.0 + seteuid@GLIBC_2.0 2.0 + setfsent@GLIBC_2.0 2.0 + setfsgid@GLIBC_2.0 2.0 + setfsuid@GLIBC_2.0 2.0 + setgid@GLIBC_2.0 2.0 + setgrent@GLIBC_2.0 2.0 + setgroups@GLIBC_2.0 2.0 + sethostent@GLIBC_2.0 2.0 + sethostid@GLIBC_2.0 2.0 + sethostname@GLIBC_2.0 2.0 + setipv4sourcefilter@GLIBC_2.3.4 2.3.4 + setitimer@GLIBC_2.0 2.0 + setjmp@GLIBC_2.0 2.0 + setlinebuf@GLIBC_2.0 2.0 + setlocale@GLIBC_2.0 2.0 + setlogin@GLIBC_2.0 2.0 + setlogmask@GLIBC_2.0 2.0 + setmntent@GLIBC_2.0 2.0 + setnetent@GLIBC_2.0 2.0 + setnetgrent@GLIBC_2.0 2.0 + setpgid@GLIBC_2.0 2.0 + setpgrp@GLIBC_2.0 2.0 + setpriority@GLIBC_2.0 2.0 + setprotoent@GLIBC_2.0 2.0 + setpwent@GLIBC_2.0 2.0 + setregid@GLIBC_2.0 2.0 + setresgid@GLIBC_2.0 2.0 + setresuid@GLIBC_2.0 2.0 + setreuid@GLIBC_2.0 2.0 + setrlimit64@GLIBC_2.1 2.1 + setrlimit@GLIBC_2.0 2.0 + setrlimit@GLIBC_2.2 2.2 + setrpcent@GLIBC_2.0 2.0 + setservent@GLIBC_2.0 2.0 + setsid@GLIBC_2.0 2.0 + setsockopt@GLIBC_2.0 2.0 + setsourcefilter@GLIBC_2.3.4 2.3.4 + setspent@GLIBC_2.0 2.0 + setstate@GLIBC_2.0 2.0 + setstate_r@GLIBC_2.0 2.0 + settimeofday@GLIBC_2.0 2.0 + setttyent@GLIBC_2.0 2.0 + setuid@GLIBC_2.0 2.0 + setusershell@GLIBC_2.0 2.0 + setutent@GLIBC_2.0 2.0 + setutxent@GLIBC_2.1 2.1 + setvbuf@GLIBC_2.0 2.0 + setxattr@GLIBC_2.3 2.3 + sgetspent@GLIBC_2.0 2.0 + sgetspent_r@GLIBC_2.0 2.0 + shmat@GLIBC_2.0 2.0 + shmctl@GLIBC_2.0 2.0 + shmctl@GLIBC_2.2 2.2 + shmdt@GLIBC_2.0 2.0 + shmget@GLIBC_2.0 2.0 + shutdown@GLIBC_2.0 2.0 + sigaction@GLIBC_2.0 2.0 + sigaddset@GLIBC_2.0 2.0 + sigaltstack@GLIBC_2.0 2.0 + sigandset@GLIBC_2.0 2.0 + sigblock@GLIBC_2.0 2.0 + sigdelset@GLIBC_2.0 2.0 + sigemptyset@GLIBC_2.0 2.0 + sigfillset@GLIBC_2.0 2.0 + siggetmask@GLIBC_2.0 2.0 + sighold@GLIBC_2.1 2.1 + sigignore@GLIBC_2.1 2.1 + siginterrupt@GLIBC_2.0 2.0 + sigisemptyset@GLIBC_2.0 2.0 + sigismember@GLIBC_2.0 2.0 + siglongjmp@GLIBC_2.0 2.0 + signal@GLIBC_2.0 2.0 + signalfd@GLIBC_2.7 2.7 + sigorset@GLIBC_2.0 2.0 + sigpause@GLIBC_2.0 2.0 + sigpending@GLIBC_2.0 2.0 + sigprocmask@GLIBC_2.0 2.0 + sigqueue@GLIBC_2.1 2.1 + sigrelse@GLIBC_2.1 2.1 + sigreturn@GLIBC_2.0 2.0 + sigset@GLIBC_2.1 2.1 + sigsetmask@GLIBC_2.0 2.0 + sigstack@GLIBC_2.0 2.0 + sigsuspend@GLIBC_2.0 2.0 + sigtimedwait@GLIBC_2.1 2.1 + sigvec@GLIBC_2.0 2.0 + sigwait@GLIBC_2.0 2.0 + sigwaitinfo@GLIBC_2.1 2.1 + sleep@GLIBC_2.0 2.0 + snprintf@GLIBC_2.0 2.0 + sockatmark@GLIBC_2.2.4 2.2.4 + socket@GLIBC_2.0 2.0 + socketpair@GLIBC_2.0 2.0 + splice@GLIBC_2.5 2.5 + sprintf@GLIBC_2.0 2.0 + sprofil@GLIBC_2.2.3 2.2.3 + srand48@GLIBC_2.0 2.0 + srand48_r@GLIBC_2.0 2.0 + srand@GLIBC_2.0 2.0 + srandom@GLIBC_2.0 2.0 + srandom_r@GLIBC_2.0 2.0 + sscanf@GLIBC_2.0 2.0 + ssignal@GLIBC_2.0 2.0 + sstk@GLIBC_2.0 2.0 + statfs64@GLIBC_2.1 2.1 + statfs@GLIBC_2.0 2.0 + statvfs64@GLIBC_2.1 2.1 + statvfs@GLIBC_2.1 2.1 + stderr@GLIBC_2.0 2.0 + stdin@GLIBC_2.0 2.0 + stdout@GLIBC_2.0 2.0 + step@GLIBC_2.0 2.0 + stime@GLIBC_2.0 2.0 + stpcpy@GLIBC_2.0 2.0 + stpncpy@GLIBC_2.0 2.0 + strcasecmp@GLIBC_2.0 2.0 + strcasecmp_l@GLIBC_2.3 2.3 + strcasestr@GLIBC_2.1 2.1 + strcat@GLIBC_2.0 2.0 + strchr@GLIBC_2.0 2.0 + strchrnul@GLIBC_2.1.1 2.1.1 + strcmp@GLIBC_2.0 2.0 + strcoll@GLIBC_2.0 2.0 + strcoll_l@GLIBC_2.3 2.3 + strcpy@GLIBC_2.0 2.0 + strcspn@GLIBC_2.0 2.0 + strdup@GLIBC_2.0 2.0 + strerror@GLIBC_2.0 2.0 + strerror_l@GLIBC_2.6 2.6 + strerror_r@GLIBC_2.0 2.0 + strfmon@GLIBC_2.0 2.0 + strfmon_l@GLIBC_2.3 2.3 + strfry@GLIBC_2.0 2.0 + strftime@GLIBC_2.0 2.0 + strftime_l@GLIBC_2.3 2.3 + strlen@GLIBC_2.0 2.0 + strncasecmp@GLIBC_2.0 2.0 + strncasecmp_l@GLIBC_2.3 2.3 + strncat@GLIBC_2.0 2.0 + strncmp@GLIBC_2.0 2.0 + strncpy@GLIBC_2.0 2.0 + strndup@GLIBC_2.0 2.0 + strnlen@GLIBC_2.0 2.0 + strpbrk@GLIBC_2.0 2.0 + strptime@GLIBC_2.0 2.0 + strptime_l@GLIBC_2.3.2 2.3.2 + strrchr@GLIBC_2.0 2.0 + strsep@GLIBC_2.0 2.0 + strsignal@GLIBC_2.0 2.0 + strspn@GLIBC_2.0 2.0 + strstr@GLIBC_2.0 2.0 + strtod@GLIBC_2.0 2.0 + strtod_l@GLIBC_2.3 2.3 + strtof@GLIBC_2.0 2.0 + strtof_l@GLIBC_2.3 2.3 + strtoimax@GLIBC_2.1 2.1 + strtok@GLIBC_2.0 2.0 + strtok_r@GLIBC_2.0 2.0 + strtol@GLIBC_2.0 2.0 + strtol_l@GLIBC_2.3 2.3 + strtold@GLIBC_2.0 2.0 + strtold_l@GLIBC_2.3 2.3 + strtoll@GLIBC_2.0 2.0 + strtoll_l@GLIBC_2.3 2.3 + strtoq@GLIBC_2.0 2.0 + strtoul@GLIBC_2.0 2.0 + strtoul_l@GLIBC_2.3 2.3 + strtoull@GLIBC_2.0 2.0 + strtoull_l@GLIBC_2.3 2.3 + strtoumax@GLIBC_2.1 2.1 + strtouq@GLIBC_2.0 2.0 + strverscmp@GLIBC_2.1 2.1 + strxfrm@GLIBC_2.0 2.0 + strxfrm_l@GLIBC_2.3 2.3 + stty@GLIBC_2.0 2.0 + svc_exit@GLIBC_2.0 2.0 + svc_fdset@GLIBC_2.0 2.0 + svc_getreq@GLIBC_2.0 2.0 + svc_getreq_common@GLIBC_2.2 2.2 + svc_getreq_poll@GLIBC_2.2 2.2 + svc_getreqset@GLIBC_2.0 2.0 + svc_max_pollfd@GLIBC_2.2 2.2 + svc_pollfd@GLIBC_2.2 2.2 + svc_register@GLIBC_2.0 2.0 + svc_run@GLIBC_2.0 2.0 + svc_sendreply@GLIBC_2.0 2.0 + svc_unregister@GLIBC_2.0 2.0 + svcauthdes_stats@GLIBC_2.0 2.0 + svcerr_auth@GLIBC_2.0 2.0 + svcerr_decode@GLIBC_2.0 2.0 + svcerr_noproc@GLIBC_2.0 2.0 + svcerr_noprog@GLIBC_2.0 2.0 + svcerr_progvers@GLIBC_2.0 2.0 + svcerr_systemerr@GLIBC_2.0 2.0 + svcerr_weakauth@GLIBC_2.0 2.0 + svcfd_create@GLIBC_2.0 2.0 + svcraw_create@GLIBC_2.0 2.0 + svctcp_create@GLIBC_2.0 2.0 + svcudp_bufcreate@GLIBC_2.0 2.0 + svcudp_create@GLIBC_2.0 2.0 + svcudp_enablecache@GLIBC_2.0 2.0 + svcunix_create@GLIBC_2.1 2.1 + svcunixfd_create@GLIBC_2.1 2.1 + swab@GLIBC_2.0 2.0 + swapcontext@GLIBC_2.1 2.1 + swapoff@GLIBC_2.0 2.0 + swapon@GLIBC_2.0 2.0 + swprintf@GLIBC_2.2 2.2 + swscanf@GLIBC_2.2 2.2 + symlink@GLIBC_2.0 2.0 + symlinkat@GLIBC_2.4 2.4 + sync@GLIBC_2.0 2.0 + sync_file_range@GLIBC_2.6 2.6 + sys_errlist@GLIBC_2.0 2.0 + sys_errlist@GLIBC_2.1 2.1 + sys_errlist@GLIBC_2.3 2.3 + sys_errlist@GLIBC_2.4 2.4 + sys_nerr@GLIBC_2.0 2.0 + sys_nerr@GLIBC_2.1 2.1 + sys_nerr@GLIBC_2.3 2.3 + sys_nerr@GLIBC_2.4 2.4 + sys_sigabbrev@GLIBC_2.0 2.0 + sys_sigabbrev@GLIBC_2.1 2.1 + sys_sigabbrev@GLIBC_2.3.3 2.3.3 + sys_siglist@GLIBC_2.0 2.0 + sys_siglist@GLIBC_2.1 2.1 + sys_siglist@GLIBC_2.3.3 2.3.3 + syscall@GLIBC_2.0 2.0 + sysconf@GLIBC_2.0 2.0 + sysctl@GLIBC_2.0 2.0 + sysinfo@GLIBC_2.0 2.0 + syslog@GLIBC_2.0 2.0 + system@GLIBC_2.0 2.0 + sysv_signal@GLIBC_2.1 2.1 + tcdrain@GLIBC_2.0 2.0 + tcflow@GLIBC_2.0 2.0 + tcflush@GLIBC_2.0 2.0 + tcgetattr@GLIBC_2.0 2.0 + tcgetpgrp@GLIBC_2.0 2.0 + tcgetsid@GLIBC_2.1 2.1 + tcsendbreak@GLIBC_2.0 2.0 + tcsetattr@GLIBC_2.0 2.0 + tcsetpgrp@GLIBC_2.0 2.0 + tdelete@GLIBC_2.0 2.0 + tdestroy@GLIBC_2.1 2.1 + tee@GLIBC_2.5 2.5 + telldir@GLIBC_2.0 2.0 + tempnam@GLIBC_2.0 2.0 + textdomain@GLIBC_2.0 2.0 + tfind@GLIBC_2.0 2.0 + time@GLIBC_2.0 2.0 + timegm@GLIBC_2.0 2.0 + timelocal@GLIBC_2.0 2.0 + times@GLIBC_2.0 2.0 + timezone@GLIBC_2.0 2.0 + tmpfile64@GLIBC_2.1 2.1 + tmpfile@GLIBC_2.0 2.0 + tmpfile@GLIBC_2.1 2.1 + tmpnam@GLIBC_2.0 2.0 + tmpnam_r@GLIBC_2.0 2.0 + toascii@GLIBC_2.0 2.0 + tolower@GLIBC_2.0 2.0 + tolower_l@GLIBC_2.3 2.3 + toupper@GLIBC_2.0 2.0 + toupper_l@GLIBC_2.3 2.3 + towctrans@GLIBC_2.0 2.0 + towctrans_l@GLIBC_2.3 2.3 + towlower@GLIBC_2.0 2.0 + towlower_l@GLIBC_2.3 2.3 + towupper@GLIBC_2.0 2.0 + towupper_l@GLIBC_2.3 2.3 + tr_break@GLIBC_2.0 2.0 + truncate64@GLIBC_2.1 2.1 + truncate@GLIBC_2.0 2.0 + tsearch@GLIBC_2.0 2.0 + ttyname@GLIBC_2.0 2.0 + ttyname_r@GLIBC_2.0 2.0 + ttyslot@GLIBC_2.0 2.0 + twalk@GLIBC_2.0 2.0 + tzname@GLIBC_2.0 2.0 + tzset@GLIBC_2.0 2.0 + ualarm@GLIBC_2.0 2.0 + ulckpwdf@GLIBC_2.0 2.0 + ulimit@GLIBC_2.0 2.0 + umask@GLIBC_2.0 2.0 + umount2@GLIBC_2.1 2.1 + umount@GLIBC_2.0 2.0 + uname@GLIBC_2.0 2.0 + ungetc@GLIBC_2.0 2.0 + ungetwc@GLIBC_2.2 2.2 + unlink@GLIBC_2.0 2.0 + unlinkat@GLIBC_2.4 2.4 + unlockpt@GLIBC_2.1 2.1 + unsetenv@GLIBC_2.0 2.0 + unshare@GLIBC_2.4 2.4 + updwtmp@GLIBC_2.0 2.0 + updwtmpx@GLIBC_2.1 2.1 + uselib@GLIBC_2.0 2.0 + uselocale@GLIBC_2.3 2.3 + user2netname@GLIBC_2.1 2.1 + usleep@GLIBC_2.0 2.0 + ustat@GLIBC_2.0 2.0 + utime@GLIBC_2.0 2.0 + utimensat@GLIBC_2.6 2.6 + utimes@GLIBC_2.0 2.0 + utmpname@GLIBC_2.0 2.0 + utmpxname@GLIBC_2.1 2.1 + valloc@GLIBC_2.0 2.0 + vasprintf@GLIBC_2.0 2.0 + vdprintf@GLIBC_2.0 2.0 + verr@GLIBC_2.0 2.0 + verrx@GLIBC_2.0 2.0 + versionsort64@GLIBC_2.1 2.1 + versionsort64@GLIBC_2.2 2.2 + versionsort@GLIBC_2.1 2.1 + vfork@GLIBC_2.0 2.0 + vfprintf@GLIBC_2.0 2.0 + vfscanf@GLIBC_2.0 2.0 + vfwprintf@GLIBC_2.2 2.2 + vfwscanf@GLIBC_2.2 2.2 + vhangup@GLIBC_2.0 2.0 + vlimit@GLIBC_2.0 2.0 + vm86@GLIBC_2.0 2.0 + vm86@GLIBC_2.3.4 2.3.4 + vmsplice@GLIBC_2.5 2.5 + vprintf@GLIBC_2.0 2.0 + vscanf@GLIBC_2.0 2.0 + vsnprintf@GLIBC_2.0 2.0 + vsprintf@GLIBC_2.0 2.0 + vsscanf@GLIBC_2.0 2.0 + vswprintf@GLIBC_2.2 2.2 + vswscanf@GLIBC_2.2 2.2 + vsyslog@GLIBC_2.0 2.0 + vtimes@GLIBC_2.0 2.0 + vwarn@GLIBC_2.0 2.0 + vwarnx@GLIBC_2.0 2.0 + vwprintf@GLIBC_2.2 2.2 + vwscanf@GLIBC_2.2 2.2 + wait3@GLIBC_2.0 2.0 + wait4@GLIBC_2.0 2.0 + wait@GLIBC_2.0 2.0 + waitid@GLIBC_2.1 2.1 + waitpid@GLIBC_2.0 2.0 + warn@GLIBC_2.0 2.0 + warnx@GLIBC_2.0 2.0 + wcpcpy@GLIBC_2.0 2.0 + wcpncpy@GLIBC_2.0 2.0 + wcrtomb@GLIBC_2.0 2.0 + wcscasecmp@GLIBC_2.1 2.1 + wcscasecmp_l@GLIBC_2.3 2.3 + wcscat@GLIBC_2.0 2.0 + wcschr@GLIBC_2.0 2.0 + wcschrnul@GLIBC_2.2 2.2 + wcscmp@GLIBC_2.0 2.0 + wcscoll@GLIBC_2.0 2.0 + wcscoll_l@GLIBC_2.3 2.3 + wcscpy@GLIBC_2.0 2.0 + wcscspn@GLIBC_2.0 2.0 + wcsdup@GLIBC_2.0 2.0 + wcsftime@GLIBC_2.2 2.2 + wcsftime_l@GLIBC_2.3 2.3 + wcslen@GLIBC_2.0 2.0 + wcsncasecmp@GLIBC_2.1 2.1 + wcsncasecmp_l@GLIBC_2.3 2.3 + wcsncat@GLIBC_2.0 2.0 + wcsncmp@GLIBC_2.0 2.0 + wcsncpy@GLIBC_2.0 2.0 + wcsnlen@GLIBC_2.1 2.1 + wcsnrtombs@GLIBC_2.0 2.0 + wcspbrk@GLIBC_2.0 2.0 + wcsrchr@GLIBC_2.0 2.0 + wcsrtombs@GLIBC_2.0 2.0 + wcsspn@GLIBC_2.0 2.0 + wcsstr@GLIBC_2.0 2.0 + wcstod@GLIBC_2.0 2.0 + wcstod_l@GLIBC_2.3 2.3 + wcstof@GLIBC_2.0 2.0 + wcstof_l@GLIBC_2.3 2.3 + wcstoimax@GLIBC_2.1 2.1 + wcstok@GLIBC_2.0 2.0 + wcstol@GLIBC_2.0 2.0 + wcstol_l@GLIBC_2.3 2.3 + wcstold@GLIBC_2.0 2.0 + wcstold_l@GLIBC_2.3 2.3 + wcstoll@GLIBC_2.1 2.1 + wcstoll_l@GLIBC_2.3 2.3 + wcstombs@GLIBC_2.0 2.0 + wcstoq@GLIBC_2.0 2.0 + wcstoul@GLIBC_2.0 2.0 + wcstoul_l@GLIBC_2.3 2.3 + wcstoull@GLIBC_2.1 2.1 + wcstoull_l@GLIBC_2.3 2.3 + wcstoumax@GLIBC_2.1 2.1 + wcstouq@GLIBC_2.0 2.0 + wcswcs@GLIBC_2.1 2.1 + wcswidth@GLIBC_2.0 2.0 + wcsxfrm@GLIBC_2.0 2.0 + wcsxfrm_l@GLIBC_2.3 2.3 + wctob@GLIBC_2.0 2.0 + wctomb@GLIBC_2.0 2.0 + wctrans@GLIBC_2.0 2.0 + wctrans_l@GLIBC_2.3 2.3 + wctype@GLIBC_2.0 2.0 + wctype_l@GLIBC_2.3 2.3 + wcwidth@GLIBC_2.0 2.0 + wmemchr@GLIBC_2.0 2.0 + wmemcmp@GLIBC_2.0 2.0 + wmemcpy@GLIBC_2.0 2.0 + wmemmove@GLIBC_2.0 2.0 + wmempcpy@GLIBC_2.2 2.2 + wmemset@GLIBC_2.0 2.0 + wordexp@GLIBC_2.1 2.1 + wordfree@GLIBC_2.1 2.1 + wprintf@GLIBC_2.2 2.2 + write@GLIBC_2.0 2.0 + writev@GLIBC_2.0 2.0 + wscanf@GLIBC_2.2 2.2 + xdecrypt@GLIBC_2.1 2.1 + xdr_accepted_reply@GLIBC_2.0 2.0 + xdr_array@GLIBC_2.0 2.0 + xdr_authdes_cred@GLIBC_2.1 2.1 + xdr_authdes_verf@GLIBC_2.1 2.1 + xdr_authunix_parms@GLIBC_2.0 2.0 + xdr_bool@GLIBC_2.0 2.0 + xdr_bytes@GLIBC_2.0 2.0 + xdr_callhdr@GLIBC_2.0 2.0 + xdr_callmsg@GLIBC_2.0 2.0 + xdr_char@GLIBC_2.0 2.0 + xdr_cryptkeyarg2@GLIBC_2.0 2.0 + xdr_cryptkeyarg@GLIBC_2.0 2.0 + xdr_cryptkeyres@GLIBC_2.0 2.0 + xdr_des_block@GLIBC_2.0 2.0 + xdr_double@GLIBC_2.0 2.0 + xdr_enum@GLIBC_2.0 2.0 + xdr_float@GLIBC_2.0 2.0 + xdr_free@GLIBC_2.0 2.0 + xdr_getcredres@GLIBC_2.1 2.1 + xdr_hyper@GLIBC_2.1.1 2.1.1 + xdr_int16_t@GLIBC_2.1 2.1 + xdr_int32_t@GLIBC_2.1 2.1 + xdr_int64_t@GLIBC_2.1.1 2.1.1 + xdr_int8_t@GLIBC_2.1 2.1 + xdr_int@GLIBC_2.0 2.0 + xdr_key_netstarg@GLIBC_2.0 2.0 + xdr_key_netstres@GLIBC_2.0 2.0 + xdr_keybuf@GLIBC_2.0 2.0 + xdr_keystatus@GLIBC_2.0 2.0 + xdr_long@GLIBC_2.0 2.0 + xdr_longlong_t@GLIBC_2.1.1 2.1.1 + xdr_netnamestr@GLIBC_2.1 2.1 + xdr_netobj@GLIBC_2.0 2.0 + xdr_opaque@GLIBC_2.0 2.0 + xdr_opaque_auth@GLIBC_2.0 2.0 + xdr_pmap@GLIBC_2.0 2.0 + xdr_pmaplist@GLIBC_2.0 2.0 + xdr_pointer@GLIBC_2.0 2.0 + xdr_quad_t@GLIBC_2.3.4 2.3.4 + xdr_reference@GLIBC_2.0 2.0 + xdr_rejected_reply@GLIBC_2.0 2.0 + xdr_replymsg@GLIBC_2.0 2.0 + xdr_rmtcall_args@GLIBC_2.0 2.0 + xdr_rmtcallres@GLIBC_2.0 2.0 + xdr_short@GLIBC_2.0 2.0 + xdr_sizeof@GLIBC_2.1 2.1 + xdr_string@GLIBC_2.0 2.0 + xdr_u_char@GLIBC_2.0 2.0 + xdr_u_hyper@GLIBC_2.1.1 2.1.1 + xdr_u_int@GLIBC_2.0 2.0 + xdr_u_long@GLIBC_2.0 2.0 + xdr_u_longlong_t@GLIBC_2.1.1 2.1.1 + xdr_u_quad_t@GLIBC_2.3.4 2.3.4 + xdr_u_short@GLIBC_2.0 2.0 + xdr_uint16_t@GLIBC_2.1 2.1 + xdr_uint32_t@GLIBC_2.1 2.1 + xdr_uint64_t@GLIBC_2.1.1 2.1.1 + xdr_uint8_t@GLIBC_2.1 2.1 + xdr_union@GLIBC_2.0 2.0 + xdr_unixcred@GLIBC_2.1 2.1 + xdr_vector@GLIBC_2.0 2.0 + xdr_void@GLIBC_2.0 2.0 + xdr_wrapstring@GLIBC_2.0 2.0 + xdrmem_create@GLIBC_2.0 2.0 + xdrrec_create@GLIBC_2.0 2.0 + xdrrec_endofrecord@GLIBC_2.0 2.0 + xdrrec_eof@GLIBC_2.0 2.0 + xdrrec_skiprecord@GLIBC_2.0 2.0 + xdrstdio_create@GLIBC_2.0 2.0 + xencrypt@GLIBC_2.0 2.0 + xprt_register@GLIBC_2.0 2.0 + xprt_unregister@GLIBC_2.0 2.0 +libcidn.so.1 libc6 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + idna_to_ascii_lz@GLIBC_PRIVATE 2.7 + idna_to_unicode_lzlz@GLIBC_PRIVATE 2.7 +libcrypt.so.1 libc6 #MINVER# + GLIBC_2.0@GLIBC_2.0 2.0 + crypt@GLIBC_2.0 2.0 + crypt_r@GLIBC_2.0 2.0 + encrypt@GLIBC_2.0 2.0 + encrypt_r@GLIBC_2.0 2.0 + fcrypt@GLIBC_2.0 2.0 + setkey@GLIBC_2.0 2.0 + setkey_r@GLIBC_2.0 2.0 +libdl.so.2 libc6 #MINVER# + GLIBC_2.0@GLIBC_2.0 2.0 + GLIBC_2.1@GLIBC_2.1 2.1 + GLIBC_2.3.3@GLIBC_2.3.3 2.3.3 + GLIBC_2.3.4@GLIBC_2.3.4 2.3.4 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _dlfcn_hook@GLIBC_PRIVATE 2.7 + dladdr1@GLIBC_2.3.3 2.3.3 + dladdr@GLIBC_2.0 2.0 + dlclose@GLIBC_2.0 2.0 + dlerror@GLIBC_2.0 2.0 + dlinfo@GLIBC_2.3.3 2.3.3 + dlmopen@GLIBC_2.3.4 2.3.4 + dlopen@GLIBC_2.0 2.0 + dlopen@GLIBC_2.1 2.1 + dlsym@GLIBC_2.0 2.0 + dlvsym@GLIBC_2.1 2.1 +libm.so.6 libc6 #MINVER# + GLIBC_2.0@GLIBC_2.0 2.0 + GLIBC_2.1@GLIBC_2.1 2.1 + GLIBC_2.2@GLIBC_2.2 2.2 + GLIBC_2.4@GLIBC_2.4 2.4 + _LIB_VERSION@GLIBC_2.0 2.0 + __clog10@GLIBC_2.1 2.1 + __clog10f@GLIBC_2.1 2.1 + __clog10l@GLIBC_2.1 2.1 + __expl@GLIBC_2.2 2.2 + __expm1l@GLIBC_2.2 2.2 + __finite@GLIBC_2.1 2.1 + __finitef@GLIBC_2.1 2.1 + __finitel@GLIBC_2.1 2.1 + __fpclassify@GLIBC_2.1 2.1 + __fpclassifyf@GLIBC_2.1 2.1 + __fpclassifyl@GLIBC_2.1 2.1 + __signbit@GLIBC_2.1 2.1 + __signbitf@GLIBC_2.1 2.1 + __signbitl@GLIBC_2.1 2.1 + acos@GLIBC_2.0 2.0 + acosf@GLIBC_2.0 2.0 + acosh@GLIBC_2.0 2.0 + acoshf@GLIBC_2.0 2.0 + acoshl@GLIBC_2.0 2.0 + acosl@GLIBC_2.0 2.0 + asin@GLIBC_2.0 2.0 + asinf@GLIBC_2.0 2.0 + asinh@GLIBC_2.0 2.0 + asinhf@GLIBC_2.0 2.0 + asinhl@GLIBC_2.0 2.0 + asinl@GLIBC_2.0 2.0 + atan2@GLIBC_2.0 2.0 + atan2f@GLIBC_2.0 2.0 + atan2l@GLIBC_2.0 2.0 + atan@GLIBC_2.0 2.0 + atanf@GLIBC_2.0 2.0 + atanh@GLIBC_2.0 2.0 + atanhf@GLIBC_2.0 2.0 + atanhl@GLIBC_2.0 2.0 + atanl@GLIBC_2.0 2.0 + cabs@GLIBC_2.1 2.1 + cabsf@GLIBC_2.1 2.1 + cabsl@GLIBC_2.1 2.1 + cacos@GLIBC_2.1 2.1 + cacosf@GLIBC_2.1 2.1 + cacosh@GLIBC_2.1 2.1 + cacoshf@GLIBC_2.1 2.1 + cacoshl@GLIBC_2.1 2.1 + cacosl@GLIBC_2.1 2.1 + carg@GLIBC_2.1 2.1 + cargf@GLIBC_2.1 2.1 + cargl@GLIBC_2.1 2.1 + casin@GLIBC_2.1 2.1 + casinf@GLIBC_2.1 2.1 + casinh@GLIBC_2.1 2.1 + casinhf@GLIBC_2.1 2.1 + casinhl@GLIBC_2.1 2.1 + casinl@GLIBC_2.1 2.1 + catan@GLIBC_2.1 2.1 + catanf@GLIBC_2.1 2.1 + catanh@GLIBC_2.1 2.1 + catanhf@GLIBC_2.1 2.1 + catanhl@GLIBC_2.1 2.1 + catanl@GLIBC_2.1 2.1 + cbrt@GLIBC_2.0 2.0 + cbrtf@GLIBC_2.0 2.0 + cbrtl@GLIBC_2.0 2.0 + ccos@GLIBC_2.1 2.1 + ccosf@GLIBC_2.1 2.1 + ccosh@GLIBC_2.1 2.1 + ccoshf@GLIBC_2.1 2.1 + ccoshl@GLIBC_2.1 2.1 + ccosl@GLIBC_2.1 2.1 + ceil@GLIBC_2.0 2.0 + ceilf@GLIBC_2.0 2.0 + ceill@GLIBC_2.0 2.0 + cexp@GLIBC_2.1 2.1 + cexpf@GLIBC_2.1 2.1 + cexpl@GLIBC_2.1 2.1 + cimag@GLIBC_2.1 2.1 + cimagf@GLIBC_2.1 2.1 + cimagl@GLIBC_2.1 2.1 + clog10@GLIBC_2.1 2.1 + clog10f@GLIBC_2.1 2.1 + clog10l@GLIBC_2.1 2.1 + clog@GLIBC_2.1 2.1 + clogf@GLIBC_2.1 2.1 + clogl@GLIBC_2.1 2.1 + conj@GLIBC_2.1 2.1 + conjf@GLIBC_2.1 2.1 + conjl@GLIBC_2.1 2.1 + copysign@GLIBC_2.0 2.0 + copysignf@GLIBC_2.0 2.0 + copysignl@GLIBC_2.0 2.0 + cos@GLIBC_2.0 2.0 + cosf@GLIBC_2.0 2.0 + cosh@GLIBC_2.0 2.0 + coshf@GLIBC_2.0 2.0 + coshl@GLIBC_2.0 2.0 + cosl@GLIBC_2.0 2.0 + cpow@GLIBC_2.1 2.1 + cpowf@GLIBC_2.1 2.1 + cpowl@GLIBC_2.1 2.1 + cproj@GLIBC_2.1 2.1 + cprojf@GLIBC_2.1 2.1 + cprojl@GLIBC_2.1 2.1 + creal@GLIBC_2.1 2.1 + crealf@GLIBC_2.1 2.1 + creall@GLIBC_2.1 2.1 + csin@GLIBC_2.1 2.1 + csinf@GLIBC_2.1 2.1 + csinh@GLIBC_2.1 2.1 + csinhf@GLIBC_2.1 2.1 + csinhl@GLIBC_2.1 2.1 + csinl@GLIBC_2.1 2.1 + csqrt@GLIBC_2.1 2.1 + csqrtf@GLIBC_2.1 2.1 + csqrtl@GLIBC_2.1 2.1 + ctan@GLIBC_2.1 2.1 + ctanf@GLIBC_2.1 2.1 + ctanh@GLIBC_2.1 2.1 + ctanhf@GLIBC_2.1 2.1 + ctanhl@GLIBC_2.1 2.1 + ctanl@GLIBC_2.1 2.1 + drem@GLIBC_2.0 2.0 + dremf@GLIBC_2.0 2.0 + dreml@GLIBC_2.0 2.0 + erf@GLIBC_2.0 2.0 + erfc@GLIBC_2.0 2.0 + erfcf@GLIBC_2.0 2.0 + erfcl@GLIBC_2.0 2.0 + erff@GLIBC_2.0 2.0 + erfl@GLIBC_2.0 2.0 + exp10@GLIBC_2.1 2.1 + exp10f@GLIBC_2.1 2.1 + exp10l@GLIBC_2.1 2.1 + exp2@GLIBC_2.1 2.1 + exp2f@GLIBC_2.1 2.1 + exp2l@GLIBC_2.1 2.1 + exp@GLIBC_2.0 2.0 + expf@GLIBC_2.0 2.0 + expl@GLIBC_2.0 2.0 + expm1@GLIBC_2.0 2.0 + expm1f@GLIBC_2.0 2.0 + expm1l@GLIBC_2.0 2.0 + fabs@GLIBC_2.0 2.0 + fabsf@GLIBC_2.0 2.0 + fabsl@GLIBC_2.0 2.0 + fdim@GLIBC_2.1 2.1 + fdimf@GLIBC_2.1 2.1 + fdiml@GLIBC_2.1 2.1 + feclearexcept@GLIBC_2.1 2.1 + feclearexcept@GLIBC_2.2 2.2 + fedisableexcept@GLIBC_2.2 2.2 + feenableexcept@GLIBC_2.2 2.2 + fegetenv@GLIBC_2.1 2.1 + fegetenv@GLIBC_2.2 2.2 + fegetexcept@GLIBC_2.2 2.2 + fegetexceptflag@GLIBC_2.1 2.1 + fegetexceptflag@GLIBC_2.2 2.2 + fegetround@GLIBC_2.1 2.1 + feholdexcept@GLIBC_2.1 2.1 + feraiseexcept@GLIBC_2.1 2.1 + feraiseexcept@GLIBC_2.2 2.2 + fesetenv@GLIBC_2.1 2.1 + fesetenv@GLIBC_2.2 2.2 + fesetexceptflag@GLIBC_2.1 2.1 + fesetexceptflag@GLIBC_2.2 2.2 + fesetround@GLIBC_2.1 2.1 + fetestexcept@GLIBC_2.1 2.1 + feupdateenv@GLIBC_2.1 2.1 + feupdateenv@GLIBC_2.2 2.2 + finite@GLIBC_2.0 2.0 + finitef@GLIBC_2.0 2.0 + finitel@GLIBC_2.0 2.0 + floor@GLIBC_2.0 2.0 + floorf@GLIBC_2.0 2.0 + floorl@GLIBC_2.0 2.0 + fma@GLIBC_2.1 2.1 + fmaf@GLIBC_2.1 2.1 + fmal@GLIBC_2.1 2.1 + fmax@GLIBC_2.1 2.1 + fmaxf@GLIBC_2.1 2.1 + fmaxl@GLIBC_2.1 2.1 + fmin@GLIBC_2.1 2.1 + fminf@GLIBC_2.1 2.1 + fminl@GLIBC_2.1 2.1 + fmod@GLIBC_2.0 2.0 + fmodf@GLIBC_2.0 2.0 + fmodl@GLIBC_2.0 2.0 + frexp@GLIBC_2.0 2.0 + frexpf@GLIBC_2.0 2.0 + frexpl@GLIBC_2.0 2.0 + gamma@GLIBC_2.0 2.0 + gammaf@GLIBC_2.0 2.0 + gammal@GLIBC_2.0 2.0 + hypot@GLIBC_2.0 2.0 + hypotf@GLIBC_2.0 2.0 + hypotl@GLIBC_2.0 2.0 + ilogb@GLIBC_2.0 2.0 + ilogbf@GLIBC_2.0 2.0 + ilogbl@GLIBC_2.0 2.0 + j0@GLIBC_2.0 2.0 + j0f@GLIBC_2.0 2.0 + j0l@GLIBC_2.0 2.0 + j1@GLIBC_2.0 2.0 + j1f@GLIBC_2.0 2.0 + j1l@GLIBC_2.0 2.0 + jn@GLIBC_2.0 2.0 + jnf@GLIBC_2.0 2.0 + jnl@GLIBC_2.0 2.0 + ldexp@GLIBC_2.0 2.0 + ldexpf@GLIBC_2.0 2.0 + ldexpl@GLIBC_2.0 2.0 + lgamma@GLIBC_2.0 2.0 + lgamma_r@GLIBC_2.0 2.0 + lgammaf@GLIBC_2.0 2.0 + lgammaf_r@GLIBC_2.0 2.0 + lgammal@GLIBC_2.0 2.0 + lgammal_r@GLIBC_2.0 2.0 + llrint@GLIBC_2.1 2.1 + llrintf@GLIBC_2.1 2.1 + llrintl@GLIBC_2.1 2.1 + llround@GLIBC_2.1 2.1 + llroundf@GLIBC_2.1 2.1 + llroundl@GLIBC_2.1 2.1 + log10@GLIBC_2.0 2.0 + log10f@GLIBC_2.0 2.0 + log10l@GLIBC_2.0 2.0 + log1p@GLIBC_2.0 2.0 + log1pf@GLIBC_2.0 2.0 + log1pl@GLIBC_2.0 2.0 + log2@GLIBC_2.1 2.1 + log2f@GLIBC_2.1 2.1 + log2l@GLIBC_2.1 2.1 + log@GLIBC_2.0 2.0 + logb@GLIBC_2.0 2.0 + logbf@GLIBC_2.0 2.0 + logbl@GLIBC_2.0 2.0 + logf@GLIBC_2.0 2.0 + logl@GLIBC_2.0 2.0 + lrint@GLIBC_2.1 2.1 + lrintf@GLIBC_2.1 2.1 + lrintl@GLIBC_2.1 2.1 + lround@GLIBC_2.1 2.1 + lroundf@GLIBC_2.1 2.1 + lroundl@GLIBC_2.1 2.1 + matherr@GLIBC_2.0 2.0 + modf@GLIBC_2.0 2.0 + modff@GLIBC_2.0 2.0 + modfl@GLIBC_2.0 2.0 + nan@GLIBC_2.1 2.1 + nanf@GLIBC_2.1 2.1 + nanl@GLIBC_2.1 2.1 + nearbyint@GLIBC_2.1 2.1 + nearbyintf@GLIBC_2.1 2.1 + nearbyintl@GLIBC_2.1 2.1 + nextafter@GLIBC_2.0 2.0 + nextafterf@GLIBC_2.0 2.0 + nextafterl@GLIBC_2.0 2.0 + nexttoward@GLIBC_2.1 2.1 + nexttowardf@GLIBC_2.1 2.1 + nexttowardl@GLIBC_2.1 2.1 + pow10@GLIBC_2.1 2.1 + pow10f@GLIBC_2.1 2.1 + pow10l@GLIBC_2.1 2.1 + pow@GLIBC_2.0 2.0 + powf@GLIBC_2.0 2.0 + powl@GLIBC_2.0 2.0 + remainder@GLIBC_2.0 2.0 + remainderf@GLIBC_2.0 2.0 + remainderl@GLIBC_2.0 2.0 + remquo@GLIBC_2.1 2.1 + remquof@GLIBC_2.1 2.1 + remquol@GLIBC_2.1 2.1 + rint@GLIBC_2.0 2.0 + rintf@GLIBC_2.0 2.0 + rintl@GLIBC_2.0 2.0 + round@GLIBC_2.1 2.1 + roundf@GLIBC_2.1 2.1 + roundl@GLIBC_2.1 2.1 + scalb@GLIBC_2.0 2.0 + scalbf@GLIBC_2.0 2.0 + scalbl@GLIBC_2.0 2.0 + scalbln@GLIBC_2.1 2.1 + scalblnf@GLIBC_2.1 2.1 + scalblnl@GLIBC_2.1 2.1 + scalbn@GLIBC_2.0 2.0 + scalbnf@GLIBC_2.0 2.0 + scalbnl@GLIBC_2.0 2.0 + signgam@GLIBC_2.0 2.0 + significand@GLIBC_2.0 2.0 + significandf@GLIBC_2.0 2.0 + significandl@GLIBC_2.0 2.0 + sin@GLIBC_2.0 2.0 + sincos@GLIBC_2.1 2.1 + sincosf@GLIBC_2.1 2.1 + sincosl@GLIBC_2.1 2.1 + sinf@GLIBC_2.0 2.0 + sinh@GLIBC_2.0 2.0 + sinhf@GLIBC_2.0 2.0 + sinhl@GLIBC_2.0 2.0 + sinl@GLIBC_2.0 2.0 + sqrt@GLIBC_2.0 2.0 + sqrtf@GLIBC_2.0 2.0 + sqrtl@GLIBC_2.0 2.0 + tan@GLIBC_2.0 2.0 + tanf@GLIBC_2.0 2.0 + tanh@GLIBC_2.0 2.0 + tanhf@GLIBC_2.0 2.0 + tanhl@GLIBC_2.0 2.0 + tanl@GLIBC_2.0 2.0 + tgamma@GLIBC_2.1 2.1 + tgammaf@GLIBC_2.1 2.1 + tgammal@GLIBC_2.1 2.1 + trunc@GLIBC_2.1 2.1 + truncf@GLIBC_2.1 2.1 + truncl@GLIBC_2.1 2.1 + y0@GLIBC_2.0 2.0 + y0f@GLIBC_2.0 2.0 + y0l@GLIBC_2.0 2.0 + y1@GLIBC_2.0 2.0 + y1f@GLIBC_2.0 2.0 + y1l@GLIBC_2.0 2.0 + yn@GLIBC_2.0 2.0 + ynf@GLIBC_2.0 2.0 + ynl@GLIBC_2.0 2.0 +libmemusage.so libc6 #MINVER# + __invoke_dynamic_linker__@Base 2.7-9ubuntu1 + calloc@Base 2.7-9ubuntu1 + free@Base 2.7-9ubuntu1 + malloc@Base 2.7-9ubuntu1 + mmap64@Base 2.7-9ubuntu1 + mmap@Base 2.7-9ubuntu1 + mremap@Base 2.7-9ubuntu1 + munmap@Base 2.7-9ubuntu1 + realloc@Base 2.7-9ubuntu1 +libnsl.so.1 libc6 #MINVER# + GLIBC_2.0@GLIBC_2.0 2.0 + GLIBC_2.1@GLIBC_2.1 2.1 + GLIBC_2.2@GLIBC_2.2 2.2 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + __create_ib_request@GLIBC_PRIVATE 2.7 + __do_niscall3@GLIBC_PRIVATE 2.7 + __follow_path@GLIBC_PRIVATE 2.7 + __free_fdresult@GLIBC_2.1 2.1 + __nis_default_access@GLIBC_2.1 2.1 + __nis_default_group@GLIBC_2.1 2.1 + __nis_default_owner@GLIBC_2.1 2.1 + __nis_default_ttl@GLIBC_2.1 2.1 + __nis_finddirectory@GLIBC_2.1 2.1 + __nis_hash@GLIBC_2.1 2.1 + __nisbind_connect@GLIBC_2.1 2.1 + __nisbind_create@GLIBC_2.1 2.1 + __nisbind_destroy@GLIBC_2.1 2.1 + __nisbind_next@GLIBC_2.1 2.1 + __prepare_niscall@GLIBC_PRIVATE 2.7 + __yp_check@GLIBC_2.0 2.0 + _nsl_default_nss@GLIBC_PRIVATE 2.7 + _xdr_ib_request@GLIBC_PRIVATE 2.7 + _xdr_nis_result@GLIBC_PRIVATE 2.7 + nis_add@GLIBC_2.1 2.1 + nis_add_entry@GLIBC_2.1 2.1 + nis_addmember@GLIBC_2.1 2.1 + nis_checkpoint@GLIBC_2.1 2.1 + nis_clone_directory@GLIBC_2.1 2.1 + nis_clone_object@GLIBC_2.1 2.1 + nis_clone_result@GLIBC_2.1 2.1 + nis_creategroup@GLIBC_2.1 2.1 + nis_destroy_object@GLIBC_2.1 2.1 + nis_destroygroup@GLIBC_2.1 2.1 + nis_dir_cmp@GLIBC_2.1 2.1 + nis_domain_of@GLIBC_2.1 2.1 + nis_domain_of_r@GLIBC_2.1 2.1 + nis_first_entry@GLIBC_2.1 2.1 + nis_free_directory@GLIBC_2.1 2.1 + nis_free_object@GLIBC_2.1 2.1 + nis_free_request@GLIBC_2.1 2.1 + nis_freenames@GLIBC_2.1 2.1 + nis_freeresult@GLIBC_2.1 2.1 + nis_freeservlist@GLIBC_2.1 2.1 + nis_freetags@GLIBC_2.1 2.1 + nis_getnames@GLIBC_2.1 2.1 + nis_getservlist@GLIBC_2.1 2.1 + nis_ismember@GLIBC_2.1 2.1 + nis_leaf_of@GLIBC_2.1 2.1 + nis_leaf_of_r@GLIBC_2.1 2.1 + nis_lerror@GLIBC_2.1 2.1 + nis_list@GLIBC_2.1 2.1 + nis_local_directory@GLIBC_2.1 2.1 + nis_local_group@GLIBC_2.1 2.1 + nis_local_host@GLIBC_2.1 2.1 + nis_local_principal@GLIBC_2.1 2.1 + nis_lookup@GLIBC_2.1 2.1 + nis_mkdir@GLIBC_2.1 2.1 + nis_modify@GLIBC_2.1 2.1 + nis_modify_entry@GLIBC_2.1 2.1 + nis_name_of@GLIBC_2.1 2.1 + nis_name_of_r@GLIBC_2.1 2.1 + nis_next_entry@GLIBC_2.1 2.1 + nis_perror@GLIBC_2.1 2.1 + nis_ping@GLIBC_2.1 2.1 + nis_print_directory@GLIBC_2.1 2.1 + nis_print_entry@GLIBC_2.1 2.1 + nis_print_group@GLIBC_2.1 2.1 + nis_print_group_entry@GLIBC_2.1 2.1 + nis_print_link@GLIBC_2.1 2.1 + nis_print_object@GLIBC_2.1 2.1 + nis_print_result@GLIBC_2.1 2.1 + nis_print_rights@GLIBC_2.1 2.1 + nis_print_table@GLIBC_2.1 2.1 + nis_read_obj@GLIBC_2.1 2.1 + nis_remove@GLIBC_2.1 2.1 + nis_remove_entry@GLIBC_2.1 2.1 + nis_removemember@GLIBC_2.1 2.1 + nis_rmdir@GLIBC_2.1 2.1 + nis_servstate@GLIBC_2.1 2.1 + nis_sperrno@GLIBC_2.1 2.1 + nis_sperror@GLIBC_2.1 2.1 + nis_sperror_r@GLIBC_2.1 2.1 + nis_stats@GLIBC_2.1 2.1 + nis_verifygroup@GLIBC_2.1 2.1 + nis_write_obj@GLIBC_2.1 2.1 + readColdStartFile@GLIBC_2.1 2.1 + writeColdStartFile@GLIBC_2.1 2.1 + xdr_cback_data@GLIBC_2.1 2.1 + xdr_domainname@GLIBC_2.0 2.0 + xdr_keydat@GLIBC_2.0 2.0 + xdr_mapname@GLIBC_2.0 2.0 + xdr_obj_p@GLIBC_2.1 2.1 + xdr_peername@GLIBC_2.0 2.0 + xdr_valdat@GLIBC_2.0 2.0 + xdr_yp_buf@GLIBC_2.0 2.0 + xdr_ypall@GLIBC_2.2 2.2 + xdr_ypbind_binding@GLIBC_2.0 2.0 + xdr_ypbind_resp@GLIBC_2.0 2.0 + xdr_ypbind_resptype@GLIBC_2.0 2.0 + xdr_ypbind_setdom@GLIBC_2.0 2.0 + xdr_ypdelete_args@GLIBC_2.0 2.0 + xdr_ypmap_parms@GLIBC_2.0 2.0 + xdr_ypmaplist@GLIBC_2.0 2.0 + xdr_yppush_status@GLIBC_2.0 2.0 + xdr_yppushresp_xfr@GLIBC_2.0 2.0 + xdr_ypreq_key@GLIBC_2.0 2.0 + xdr_ypreq_nokey@GLIBC_2.0 2.0 + xdr_ypreq_xfr@GLIBC_2.0 2.0 + xdr_ypresp_all@GLIBC_2.0 2.0 + xdr_ypresp_key_val@GLIBC_2.0 2.0 + xdr_ypresp_maplist@GLIBC_2.0 2.0 + xdr_ypresp_master@GLIBC_2.0 2.0 + xdr_ypresp_order@GLIBC_2.0 2.0 + xdr_ypresp_val@GLIBC_2.0 2.0 + xdr_ypresp_xfr@GLIBC_2.0 2.0 + xdr_ypstat@GLIBC_2.0 2.0 + xdr_ypupdate_args@GLIBC_2.0 2.0 + xdr_ypxfrstat@GLIBC_2.0 2.0 + yp_all@GLIBC_2.0 2.0 + yp_bind@GLIBC_2.0 2.0 + yp_first@GLIBC_2.0 2.0 + yp_get_default_domain@GLIBC_2.0 2.0 + yp_maplist@GLIBC_2.0 2.0 + yp_master@GLIBC_2.0 2.0 + yp_match@GLIBC_2.0 2.0 + yp_next@GLIBC_2.0 2.0 + yp_order@GLIBC_2.0 2.0 + yp_unbind@GLIBC_2.0 2.0 + yp_update@GLIBC_2.0 2.0 + ypbinderr_string@GLIBC_2.0 2.0 + yperr_string@GLIBC_2.0 2.0 + ypprot_err@GLIBC_2.0 2.0 +libnss_compat.so.2 libc6 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_compat_endgrent@GLIBC_PRIVATE 2.7 + _nss_compat_endpwent@GLIBC_PRIVATE 2.7 + _nss_compat_endspent@GLIBC_PRIVATE 2.7 + _nss_compat_getgrent_r@GLIBC_PRIVATE 2.7 + _nss_compat_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_compat_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_compat_getpwent_r@GLIBC_PRIVATE 2.7 + _nss_compat_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_compat_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_compat_getspent_r@GLIBC_PRIVATE 2.7 + _nss_compat_getspnam_r@GLIBC_PRIVATE 2.7 + _nss_compat_initgroups_dyn@GLIBC_PRIVATE 2.7 + _nss_compat_setgrent@GLIBC_PRIVATE 2.7 + _nss_compat_setpwent@GLIBC_PRIVATE 2.7 + _nss_compat_setspent@GLIBC_PRIVATE 2.7 +libnss_dns.so.2 libc6 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_dns_getcanonname_r@GLIBC_PRIVATE 2.7 + _nss_dns_gethostbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_dns_gethostbyname2_r@GLIBC_PRIVATE 2.7 + _nss_dns_gethostbyname3_r@GLIBC_PRIVATE 2.7 + _nss_dns_gethostbyname_r@GLIBC_PRIVATE 2.7 + _nss_dns_getnetbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_dns_getnetbyname_r@GLIBC_PRIVATE 2.7 +libnss_files.so.2 libc6 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_files_endaliasent@GLIBC_PRIVATE 2.7 + _nss_files_endetherent@GLIBC_PRIVATE 2.7 + _nss_files_endgrent@GLIBC_PRIVATE 2.7 + _nss_files_endhostent@GLIBC_PRIVATE 2.7 + _nss_files_endnetent@GLIBC_PRIVATE 2.7 + _nss_files_endnetgrent@GLIBC_PRIVATE 2.7 + _nss_files_endprotoent@GLIBC_PRIVATE 2.7 + _nss_files_endpwent@GLIBC_PRIVATE 2.7 + _nss_files_endrpcent@GLIBC_PRIVATE 2.7 + _nss_files_endservent@GLIBC_PRIVATE 2.7 + _nss_files_endspent@GLIBC_PRIVATE 2.7 + _nss_files_getaliasbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getaliasent_r@GLIBC_PRIVATE 2.7 + _nss_files_getetherent_r@GLIBC_PRIVATE 2.7 + _nss_files_getgrent_r@GLIBC_PRIVATE 2.7 + _nss_files_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_files_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostbyname2_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostent_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostton_r@GLIBC_PRIVATE 2.7 + _nss_files_getnetbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_files_getnetbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getnetent_r@GLIBC_PRIVATE 2.7 + _nss_files_getnetgrent_r@GLIBC_PRIVATE 2.7 + _nss_files_getntohost_r@GLIBC_PRIVATE 2.7 + _nss_files_getprotobyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getprotobynumber_r@GLIBC_PRIVATE 2.7 + _nss_files_getprotoent_r@GLIBC_PRIVATE 2.7 + _nss_files_getpublickey@GLIBC_PRIVATE 2.7 + _nss_files_getpwent_r@GLIBC_PRIVATE 2.7 + _nss_files_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_files_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_files_getrpcbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getrpcbynumber_r@GLIBC_PRIVATE 2.7 + _nss_files_getrpcent_r@GLIBC_PRIVATE 2.7 + _nss_files_getsecretkey@GLIBC_PRIVATE 2.7 + _nss_files_getservbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getservbyport_r@GLIBC_PRIVATE 2.7 + _nss_files_getservent_r@GLIBC_PRIVATE 2.7 + _nss_files_getspent_r@GLIBC_PRIVATE 2.7 + _nss_files_getspnam_r@GLIBC_PRIVATE 2.7 + _nss_files_parse_etherent@GLIBC_PRIVATE 2.7 + _nss_files_parse_netent@GLIBC_PRIVATE 2.7 + _nss_files_parse_protoent@GLIBC_PRIVATE 2.7 + _nss_files_parse_rpcent@GLIBC_PRIVATE 2.7 + _nss_files_parse_servent@GLIBC_PRIVATE 2.7 + _nss_files_setaliasent@GLIBC_PRIVATE 2.7 + _nss_files_setetherent@GLIBC_PRIVATE 2.7 + _nss_files_setgrent@GLIBC_PRIVATE 2.7 + _nss_files_sethostent@GLIBC_PRIVATE 2.7 + _nss_files_setnetent@GLIBC_PRIVATE 2.7 + _nss_files_setnetgrent@GLIBC_PRIVATE 2.7 + _nss_files_setprotoent@GLIBC_PRIVATE 2.7 + _nss_files_setpwent@GLIBC_PRIVATE 2.7 + _nss_files_setrpcent@GLIBC_PRIVATE 2.7 + _nss_files_setservent@GLIBC_PRIVATE 2.7 + _nss_files_setspent@GLIBC_PRIVATE 2.7 + _nss_netgroup_parseline@GLIBC_PRIVATE 2.7 +libnss_hesiod.so.2 libc6 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_hesiod_endgrent@GLIBC_PRIVATE 2.7 + _nss_hesiod_endprotoent@GLIBC_PRIVATE 2.7 + _nss_hesiod_endpwent@GLIBC_PRIVATE 2.7 + _nss_hesiod_endservent@GLIBC_PRIVATE 2.7 + _nss_hesiod_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getprotobyname_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getprotobynumber_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getservbyname_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getservbyport_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_initgroups_dyn@GLIBC_PRIVATE 2.7 + _nss_hesiod_setgrent@GLIBC_PRIVATE 2.7 + _nss_hesiod_setprotoent@GLIBC_PRIVATE 2.7 + _nss_hesiod_setpwent@GLIBC_PRIVATE 2.7 + _nss_hesiod_setservent@GLIBC_PRIVATE 2.7 +libnss_nis.so.2 libc6 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_nis_endaliasent@GLIBC_PRIVATE 2.7 + _nss_nis_endetherent@GLIBC_PRIVATE 2.7 + _nss_nis_endgrent@GLIBC_PRIVATE 2.7 + _nss_nis_endhostent@GLIBC_PRIVATE 2.7 + _nss_nis_endnetent@GLIBC_PRIVATE 2.7 + _nss_nis_endnetgrent@GLIBC_PRIVATE 2.7 + _nss_nis_endprotoent@GLIBC_PRIVATE 2.7 + _nss_nis_endpwent@GLIBC_PRIVATE 2.7 + _nss_nis_endrpcent@GLIBC_PRIVATE 2.7 + _nss_nis_endservent@GLIBC_PRIVATE 2.7 + _nss_nis_endspent@GLIBC_PRIVATE 2.7 + _nss_nis_getaliasbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getaliasent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getetherent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getgrent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_nis_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostbyname2_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostent_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostton_r@GLIBC_PRIVATE 2.7 + _nss_nis_getnetbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_nis_getnetbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getnetent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getnetgrent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getntohost_r@GLIBC_PRIVATE 2.7 + _nss_nis_getprotobyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getprotobynumber_r@GLIBC_PRIVATE 2.7 + _nss_nis_getprotoent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getpublickey@GLIBC_PRIVATE 2.7 + _nss_nis_getpwent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_nis_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_nis_getrpcbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getrpcbynumber_r@GLIBC_PRIVATE 2.7 + _nss_nis_getrpcent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getsecretkey@GLIBC_PRIVATE 2.7 + _nss_nis_getservbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getservbyport_r@GLIBC_PRIVATE 2.7 + _nss_nis_getservent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getspent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getspnam_r@GLIBC_PRIVATE 2.7 + _nss_nis_initgroups_dyn@GLIBC_PRIVATE 2.7 + _nss_nis_netname2user@GLIBC_PRIVATE 2.7 + _nss_nis_setaliasent@GLIBC_PRIVATE 2.7 + _nss_nis_setetherent@GLIBC_PRIVATE 2.7 + _nss_nis_setgrent@GLIBC_PRIVATE 2.7 + _nss_nis_sethostent@GLIBC_PRIVATE 2.7 + _nss_nis_setnetent@GLIBC_PRIVATE 2.7 + _nss_nis_setnetgrent@GLIBC_PRIVATE 2.7 + _nss_nis_setprotoent@GLIBC_PRIVATE 2.7 + _nss_nis_setpwent@GLIBC_PRIVATE 2.7 + _nss_nis_setrpcent@GLIBC_PRIVATE 2.7 + _nss_nis_setservent@GLIBC_PRIVATE 2.7 + _nss_nis_setspent@GLIBC_PRIVATE 2.7 +libnss_nisplus.so.2 libc6 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_nisplus_endaliasent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endetherent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endgrent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endhostent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endnetent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endnetgrent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endprotoent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endpwent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endrpcent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endservent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endspent@GLIBC_PRIVATE 2.7 + _nss_nisplus_getaliasbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getaliasent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getetherent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getgrent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostbyname2_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostton_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getnetbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getnetbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getnetent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getnetgrent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getntohost_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getprotobyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getprotobynumber_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getprotoent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getpublickey@GLIBC_PRIVATE 2.7 + _nss_nisplus_getpwent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getrpcbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getrpcbynumber_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getrpcent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getsecretkey@GLIBC_PRIVATE 2.7 + _nss_nisplus_getservbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getservent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getspent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getspnam_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_initgroups_dyn@GLIBC_PRIVATE 2.7 + _nss_nisplus_netname2user@GLIBC_PRIVATE 2.7 + _nss_nisplus_setaliasent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setetherent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setgrent@GLIBC_PRIVATE 2.7 + _nss_nisplus_sethostent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setnetent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setnetgrent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setprotoent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setpwent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setrpcent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setservent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setspent@GLIBC_PRIVATE 2.7 +libpcprofile.so libc6 #MINVER# + __cyg_profile_func_enter@Base 2.7-9ubuntu1 + __cyg_profile_func_exit@Base 2.7-9ubuntu1 + __invoke_dynamic_linker__@Base 2.7-9ubuntu1 +libpthread.so.0 libc6 #MINVER# + GLIBC_2.0@GLIBC_2.0 2.0 + GLIBC_2.1.1@GLIBC_2.1.1 2.1.1 + GLIBC_2.1.2@GLIBC_2.1.2 2.1.2 + GLIBC_2.1@GLIBC_2.1 2.1 + GLIBC_2.2.3@GLIBC_2.2.3 2.2.3 + GLIBC_2.2.6@GLIBC_2.2.6 2.2.6 + GLIBC_2.2@GLIBC_2.2 2.2 + GLIBC_2.3.2@GLIBC_2.3.2 2.3.2 + GLIBC_2.3.3@GLIBC_2.3.3 2.3.3 + GLIBC_2.3.4@GLIBC_2.3.4 2.3.4 + GLIBC_2.4@GLIBC_2.4 2.4 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _IO_flockfile@GLIBC_2.0 2.0 + _IO_ftrylockfile@GLIBC_2.0 2.0 + _IO_funlockfile@GLIBC_2.0 2.0 + __close@GLIBC_2.0 2.0 + __connect@GLIBC_2.0 2.0 + __errno_location@GLIBC_2.0 2.0 + __fcntl@GLIBC_2.0 2.0 + __fork@GLIBC_2.0 2.0 + __h_errno_location@GLIBC_2.0 2.0 + __libc_allocate_rtsig@GLIBC_2.1 2.1 + __libc_current_sigrtmax@GLIBC_2.1 2.1 + __libc_current_sigrtmin@GLIBC_2.1 2.1 + __lseek@GLIBC_2.0 2.0 + __nanosleep@GLIBC_2.2.6 2.2.6 + __open64@GLIBC_2.2 2.2 + __open@GLIBC_2.0 2.0 + __pread64@GLIBC_2.2 2.2 + __pthread_cleanup_routine@GLIBC_2.3.3 2.3.3 + __pthread_getspecific@GLIBC_2.0 2.0 + __pthread_initialize_minimal@GLIBC_PRIVATE 2.7 + __pthread_key_create@GLIBC_2.0 2.0 + __pthread_mutex_destroy@GLIBC_2.0 2.0 + __pthread_mutex_init@GLIBC_2.0 2.0 + __pthread_mutex_lock@GLIBC_2.0 2.0 + __pthread_mutex_trylock@GLIBC_2.0 2.0 + __pthread_mutex_unlock@GLIBC_2.0 2.0 + __pthread_mutexattr_destroy@GLIBC_2.0 2.0 + __pthread_mutexattr_init@GLIBC_2.0 2.0 + __pthread_mutexattr_settype@GLIBC_2.0 2.0 + __pthread_once@GLIBC_2.0 2.0 + __pthread_register_cancel@GLIBC_2.3.3 2.3.3 + __pthread_register_cancel_defer@GLIBC_2.3.3 2.3.3 + __pthread_rwlock_destroy@GLIBC_2.2 2.2 + __pthread_rwlock_init@GLIBC_2.2 2.2 + __pthread_rwlock_rdlock@GLIBC_2.2 2.2 + __pthread_rwlock_tryrdlock@GLIBC_2.2 2.2 + __pthread_rwlock_trywrlock@GLIBC_2.2 2.2 + __pthread_rwlock_unlock@GLIBC_2.2 2.2 + __pthread_rwlock_wrlock@GLIBC_2.2 2.2 + __pthread_setspecific@GLIBC_2.0 2.0 + __pthread_unregister_cancel@GLIBC_2.3.3 2.3.3 + __pthread_unregister_cancel_restore@GLIBC_2.3.3 2.3.3 + __pthread_unwind@GLIBC_PRIVATE 2.7 + __pthread_unwind_next@GLIBC_2.3.3 2.3.3 + __pwrite64@GLIBC_2.2 2.2 + __read@GLIBC_2.0 2.0 + __res_state@GLIBC_2.2 2.2 + __send@GLIBC_2.0 2.0 + __sigaction@GLIBC_2.0 2.0 + __vfork@GLIBC_2.1.2 2.1.2 + __wait@GLIBC_2.0 2.0 + __write@GLIBC_2.0 2.0 + _pthread_cleanup_pop@GLIBC_2.0 2.0 + _pthread_cleanup_pop_restore@GLIBC_2.0 2.0 + _pthread_cleanup_push@GLIBC_2.0 2.0 + _pthread_cleanup_push_defer@GLIBC_2.0 2.0 + accept@GLIBC_2.0 2.0 + close@GLIBC_2.0 2.0 + connect@GLIBC_2.0 2.0 + fcntl@GLIBC_2.0 2.0 + flockfile@GLIBC_2.0 2.0 + fork@GLIBC_2.0 2.0 + fsync@GLIBC_2.0 2.0 + ftrylockfile@GLIBC_2.0 2.0 + funlockfile@GLIBC_2.0 2.0 + longjmp@GLIBC_2.0 2.0 + lseek64@GLIBC_2.2 2.2 + lseek@GLIBC_2.0 2.0 + msync@GLIBC_2.0 2.0 + nanosleep@GLIBC_2.0 2.0 + open64@GLIBC_2.2 2.2 + open@GLIBC_2.0 2.0 + pause@GLIBC_2.0 2.0 + pread64@GLIBC_2.2 2.2 + pread@GLIBC_2.2 2.2 + pthread_atfork@GLIBC_2.0 2.0 + pthread_attr_destroy@GLIBC_2.0 2.0 + pthread_attr_getaffinity_np@GLIBC_2.3.3 2.3.3 + pthread_attr_getaffinity_np@GLIBC_2.3.4 2.3.4 + pthread_attr_getdetachstate@GLIBC_2.0 2.0 + pthread_attr_getguardsize@GLIBC_2.1 2.1 + pthread_attr_getinheritsched@GLIBC_2.0 2.0 + pthread_attr_getschedparam@GLIBC_2.0 2.0 + pthread_attr_getschedpolicy@GLIBC_2.0 2.0 + pthread_attr_getscope@GLIBC_2.0 2.0 + pthread_attr_getstack@GLIBC_2.2 2.2 + pthread_attr_getstackaddr@GLIBC_2.1 2.1 + pthread_attr_getstacksize@GLIBC_2.1 2.1 + pthread_attr_init@GLIBC_2.0 2.0 + pthread_attr_init@GLIBC_2.1 2.1 + pthread_attr_setaffinity_np@GLIBC_2.3.3 2.3.3 + pthread_attr_setaffinity_np@GLIBC_2.3.4 2.3.4 + pthread_attr_setdetachstate@GLIBC_2.0 2.0 + pthread_attr_setguardsize@GLIBC_2.1 2.1 + pthread_attr_setinheritsched@GLIBC_2.0 2.0 + pthread_attr_setschedparam@GLIBC_2.0 2.0 + pthread_attr_setschedpolicy@GLIBC_2.0 2.0 + pthread_attr_setscope@GLIBC_2.0 2.0 + pthread_attr_setstack@GLIBC_2.2 2.2 + pthread_attr_setstackaddr@GLIBC_2.1 2.1 + pthread_attr_setstacksize@GLIBC_2.1 2.1 + pthread_barrier_destroy@GLIBC_2.2 2.2 + pthread_barrier_init@GLIBC_2.2 2.2 + pthread_barrier_wait@GLIBC_2.2 2.2 + pthread_barrierattr_destroy@GLIBC_2.2 2.2 + pthread_barrierattr_getpshared@GLIBC_2.3.3 2.3.3 + pthread_barrierattr_init@GLIBC_2.2 2.2 + pthread_barrierattr_setpshared@GLIBC_2.2 2.2 + pthread_cancel@GLIBC_2.0 2.0 + pthread_cond_broadcast@GLIBC_2.0 2.0 + pthread_cond_broadcast@GLIBC_2.3.2 2.3.2 + pthread_cond_destroy@GLIBC_2.0 2.0 + pthread_cond_destroy@GLIBC_2.3.2 2.3.2 + pthread_cond_init@GLIBC_2.0 2.0 + pthread_cond_init@GLIBC_2.3.2 2.3.2 + pthread_cond_signal@GLIBC_2.0 2.0 + pthread_cond_signal@GLIBC_2.3.2 2.3.2 + pthread_cond_timedwait@GLIBC_2.0 2.0 + pthread_cond_timedwait@GLIBC_2.3.2 2.3.2 + pthread_cond_wait@GLIBC_2.0 2.0 + pthread_cond_wait@GLIBC_2.3.2 2.3.2 + pthread_condattr_destroy@GLIBC_2.0 2.0 + pthread_condattr_getclock@GLIBC_2.3.3 2.3.3 + pthread_condattr_getpshared@GLIBC_2.2 2.2 + pthread_condattr_init@GLIBC_2.0 2.0 + pthread_condattr_setclock@GLIBC_2.3.3 2.3.3 + pthread_condattr_setpshared@GLIBC_2.2 2.2 + pthread_create@GLIBC_2.0 2.0 + pthread_create@GLIBC_2.1 2.1 + pthread_detach@GLIBC_2.0 2.0 + pthread_equal@GLIBC_2.0 2.0 + pthread_exit@GLIBC_2.0 2.0 + pthread_getaffinity_np@GLIBC_2.3.3 2.3.3 + pthread_getaffinity_np@GLIBC_2.3.4 2.3.4 + pthread_getattr_np@GLIBC_2.2.3 2.2.3 + pthread_getconcurrency@GLIBC_2.1 2.1 + pthread_getcpuclockid@GLIBC_2.2 2.2 + pthread_getschedparam@GLIBC_2.0 2.0 + pthread_getspecific@GLIBC_2.0 2.0 + pthread_join@GLIBC_2.0 2.0 + pthread_key_create@GLIBC_2.0 2.0 + pthread_key_delete@GLIBC_2.0 2.0 + pthread_kill@GLIBC_2.0 2.0 + pthread_kill_other_threads_np@GLIBC_2.0 2.0 + pthread_mutex_consistent_np@GLIBC_2.4 2.4 + pthread_mutex_destroy@GLIBC_2.0 2.0 + pthread_mutex_getprioceiling@GLIBC_2.4 2.4 + pthread_mutex_init@GLIBC_2.0 2.0 + pthread_mutex_lock@GLIBC_2.0 2.0 + pthread_mutex_setprioceiling@GLIBC_2.4 2.4 + pthread_mutex_timedlock@GLIBC_2.2 2.2 + pthread_mutex_trylock@GLIBC_2.0 2.0 + pthread_mutex_unlock@GLIBC_2.0 2.0 + pthread_mutexattr_destroy@GLIBC_2.0 2.0 + pthread_mutexattr_getkind_np@GLIBC_2.0 2.0 + pthread_mutexattr_getprioceiling@GLIBC_2.4 2.4 + pthread_mutexattr_getprotocol@GLIBC_2.4 2.4 + pthread_mutexattr_getpshared@GLIBC_2.2 2.2 + pthread_mutexattr_getrobust_np@GLIBC_2.4 2.4 + pthread_mutexattr_gettype@GLIBC_2.1 2.1 + pthread_mutexattr_init@GLIBC_2.0 2.0 + pthread_mutexattr_setkind_np@GLIBC_2.0 2.0 + pthread_mutexattr_setprioceiling@GLIBC_2.4 2.4 + pthread_mutexattr_setprotocol@GLIBC_2.4 2.4 + pthread_mutexattr_setpshared@GLIBC_2.2 2.2 + pthread_mutexattr_setrobust_np@GLIBC_2.4 2.4 + pthread_mutexattr_settype@GLIBC_2.1 2.1 + pthread_once@GLIBC_2.0 2.0 + pthread_rwlock_destroy@GLIBC_2.1 2.1 + pthread_rwlock_init@GLIBC_2.1 2.1 + pthread_rwlock_rdlock@GLIBC_2.1 2.1 + pthread_rwlock_timedrdlock@GLIBC_2.2 2.2 + pthread_rwlock_timedwrlock@GLIBC_2.2 2.2 + pthread_rwlock_tryrdlock@GLIBC_2.1 2.1 + pthread_rwlock_trywrlock@GLIBC_2.1 2.1 + pthread_rwlock_unlock@GLIBC_2.1 2.1 + pthread_rwlock_wrlock@GLIBC_2.1 2.1 + pthread_rwlockattr_destroy@GLIBC_2.1 2.1 + pthread_rwlockattr_getkind_np@GLIBC_2.1 2.1 + pthread_rwlockattr_getpshared@GLIBC_2.1 2.1 + pthread_rwlockattr_init@GLIBC_2.1 2.1 + pthread_rwlockattr_setkind_np@GLIBC_2.1 2.1 + pthread_rwlockattr_setpshared@GLIBC_2.1 2.1 + pthread_self@GLIBC_2.0 2.0 + pthread_setaffinity_np@GLIBC_2.3.3 2.3.3 + pthread_setaffinity_np@GLIBC_2.3.4 2.3.4 + pthread_setcancelstate@GLIBC_2.0 2.0 + pthread_setcanceltype@GLIBC_2.0 2.0 + pthread_setconcurrency@GLIBC_2.1 2.1 + pthread_setschedparam@GLIBC_2.0 2.0 + pthread_setschedprio@GLIBC_2.3.4 2.3.4 + pthread_setspecific@GLIBC_2.0 2.0 + pthread_sigmask@GLIBC_2.0 2.0 + pthread_spin_destroy@GLIBC_2.2 2.2 + pthread_spin_init@GLIBC_2.2 2.2 + pthread_spin_lock@GLIBC_2.2 2.2 + pthread_spin_trylock@GLIBC_2.2 2.2 + pthread_spin_unlock@GLIBC_2.2 2.2 + pthread_testcancel@GLIBC_2.0 2.0 + pthread_timedjoin_np@GLIBC_2.3.3 2.3.3 + pthread_tryjoin_np@GLIBC_2.3.3 2.3.3 + pthread_yield@GLIBC_2.2 2.2 + pwrite64@GLIBC_2.2 2.2 + pwrite@GLIBC_2.2 2.2 + raise@GLIBC_2.0 2.0 + read@GLIBC_2.0 2.0 + recv@GLIBC_2.0 2.0 + recvfrom@GLIBC_2.0 2.0 + recvmsg@GLIBC_2.0 2.0 + sem_close@GLIBC_2.1.1 2.1.1 + sem_destroy@GLIBC_2.0 2.0 + sem_destroy@GLIBC_2.1 2.1 + sem_getvalue@GLIBC_2.0 2.0 + sem_getvalue@GLIBC_2.1 2.1 + sem_init@GLIBC_2.0 2.0 + sem_init@GLIBC_2.1 2.1 + sem_open@GLIBC_2.1.1 2.1.1 + sem_post@GLIBC_2.0 2.0 + sem_post@GLIBC_2.1 2.1 + sem_timedwait@GLIBC_2.2 2.2 + sem_trywait@GLIBC_2.0 2.0 + sem_trywait@GLIBC_2.1 2.1 + sem_unlink@GLIBC_2.1.1 2.1.1 + sem_wait@GLIBC_2.0 2.0 + sem_wait@GLIBC_2.1 2.1 + send@GLIBC_2.0 2.0 + sendmsg@GLIBC_2.0 2.0 + sendto@GLIBC_2.0 2.0 + sigaction@GLIBC_2.0 2.0 + siglongjmp@GLIBC_2.0 2.0 + sigwait@GLIBC_2.0 2.0 + system@GLIBC_2.0 2.0 + tcdrain@GLIBC_2.0 2.0 + vfork@GLIBC_2.0 2.0 + wait@GLIBC_2.0 2.0 + waitpid@GLIBC_2.0 2.0 + write@GLIBC_2.0 2.0 +libresolv.so.2 libc6 #MINVER# + GLIBC_2.0@GLIBC_2.0 2.0 + GLIBC_2.2@GLIBC_2.2 2.2 + GLIBC_2.3.2@GLIBC_2.3.2 2.3.2 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + __b64_ntop@GLIBC_2.0 2.0 + __b64_pton@GLIBC_2.0 2.0 + __dn_comp@GLIBC_2.0 2.0 + __dn_count_labels@GLIBC_2.0 2.0 + __dn_expand@GLIBC_2.2 2.2 + __dn_skipname@GLIBC_2.0 2.0 + __fp_nquery@GLIBC_2.0 2.0 + __fp_query@GLIBC_2.0 2.0 + __fp_resstat@GLIBC_2.0 2.0 + __hostalias@GLIBC_2.0 2.0 + __libc_res_nquery@GLIBC_PRIVATE 2.7 + __libc_res_nsearch@GLIBC_PRIVATE 2.7 + __loc_aton@GLIBC_2.0 2.0 + __loc_ntoa@GLIBC_2.0 2.0 + __ns_get16@GLIBC_PRIVATE 2.7 + __ns_get32@GLIBC_PRIVATE 2.7 + __ns_name_ntop@GLIBC_PRIVATE 2.7 + __ns_name_unpack@GLIBC_PRIVATE 2.7 + __p_cdname@GLIBC_2.0 2.0 + __p_cdnname@GLIBC_2.0 2.0 + __p_class@GLIBC_2.0 2.0 + __p_class_syms@GLIBC_2.0 2.0 + __p_fqname@GLIBC_2.0 2.0 + __p_fqnname@GLIBC_2.0 2.0 + __p_option@GLIBC_2.0 2.0 + __p_query@GLIBC_2.0 2.0 + __p_rcode@GLIBC_2.3.2 2.3.2 + __p_secstodate@GLIBC_2.0 2.0 + __p_time@GLIBC_2.0 2.0 + __p_type@GLIBC_2.0 2.0 + __p_type_syms@GLIBC_2.0 2.0 + __putlong@GLIBC_2.0 2.0 + __putshort@GLIBC_2.0 2.0 + __res_close@GLIBC_2.0 2.0 + __res_dnok@GLIBC_2.0 2.0 + __res_hnok@GLIBC_2.0 2.0 + __res_hostalias@GLIBC_2.2 2.2 + __res_isourserver@GLIBC_2.0 2.0 + __res_mailok@GLIBC_2.0 2.0 + __res_mkquery@GLIBC_2.2 2.2 + __res_nameinquery@GLIBC_2.0 2.0 + __res_nmkquery@GLIBC_2.2 2.2 + __res_nquery@GLIBC_2.2 2.2 + __res_nquerydomain@GLIBC_2.2 2.2 + __res_nsearch@GLIBC_2.2 2.2 + __res_nsend@GLIBC_2.2 2.2 + __res_ownok@GLIBC_2.0 2.0 + __res_queriesmatch@GLIBC_2.0 2.0 + __res_query@GLIBC_2.2 2.2 + __res_querydomain@GLIBC_2.2 2.2 + __res_search@GLIBC_2.2 2.2 + __res_send@GLIBC_2.0 2.0 + __sym_ntop@GLIBC_2.0 2.0 + __sym_ntos@GLIBC_2.0 2.0 + __sym_ston@GLIBC_2.0 2.0 + _gethtbyaddr@GLIBC_2.0 2.0 + _gethtbyname2@GLIBC_2.0 2.0 + _gethtbyname@GLIBC_2.0 2.0 + _gethtent@GLIBC_2.0 2.0 + _getlong@GLIBC_2.0 2.0 + _getshort@GLIBC_2.0 2.0 + _res_opcodes@GLIBC_2.0 2.0 + _sethtent@GLIBC_2.0 2.0 + dn_expand@GLIBC_2.0 2.0 + inet_net_ntop@GLIBC_2.0 2.0 + inet_net_pton@GLIBC_2.0 2.0 + inet_neta@GLIBC_2.0 2.0 + res_gethostbyaddr@GLIBC_2.0 2.0 + res_gethostbyname2@GLIBC_2.0 2.0 + res_gethostbyname@GLIBC_2.0 2.0 + res_mkquery@GLIBC_2.0 2.0 + res_query@GLIBC_2.0 2.0 + res_querydomain@GLIBC_2.0 2.0 + res_search@GLIBC_2.0 2.0 + res_send_setqhook@GLIBC_2.0 2.0 + res_send_setrhook@GLIBC_2.0 2.0 +librt.so.1 libc6 #MINVER# + GLIBC_2.1@GLIBC_2.1 2.1 + GLIBC_2.2@GLIBC_2.2 2.2 + GLIBC_2.3.4@GLIBC_2.3.4 2.3.4 + GLIBC_2.4@GLIBC_2.4 2.4 + GLIBC_2.7@GLIBC_2.7 2.7 + __mq_open_2@GLIBC_2.7 2.7 + aio_cancel64@GLIBC_2.1 2.1 + aio_cancel@GLIBC_2.1 2.1 + aio_error64@GLIBC_2.1 2.1 + aio_error@GLIBC_2.1 2.1 + aio_fsync64@GLIBC_2.1 2.1 + aio_fsync@GLIBC_2.1 2.1 + aio_init@GLIBC_2.1 2.1 + aio_read64@GLIBC_2.1 2.1 + aio_read@GLIBC_2.1 2.1 + aio_return64@GLIBC_2.1 2.1 + aio_return@GLIBC_2.1 2.1 + aio_suspend64@GLIBC_2.1 2.1 + aio_suspend@GLIBC_2.1 2.1 + aio_write64@GLIBC_2.1 2.1 + aio_write@GLIBC_2.1 2.1 + clock_getcpuclockid@GLIBC_2.2 2.2 + clock_getres@GLIBC_2.2 2.2 + clock_gettime@GLIBC_2.2 2.2 + clock_nanosleep@GLIBC_2.2 2.2 + clock_settime@GLIBC_2.2 2.2 + lio_listio64@GLIBC_2.1 2.1 + lio_listio64@GLIBC_2.4 2.4 + lio_listio@GLIBC_2.1 2.1 + lio_listio@GLIBC_2.4 2.4 + mq_close@GLIBC_2.3.4 2.3.4 + mq_getattr@GLIBC_2.3.4 2.3.4 + mq_notify@GLIBC_2.3.4 2.3.4 + mq_open@GLIBC_2.3.4 2.3.4 + mq_receive@GLIBC_2.3.4 2.3.4 + mq_send@GLIBC_2.3.4 2.3.4 + mq_setattr@GLIBC_2.3.4 2.3.4 + mq_timedreceive@GLIBC_2.3.4 2.3.4 + mq_timedsend@GLIBC_2.3.4 2.3.4 + mq_unlink@GLIBC_2.3.4 2.3.4 + shm_open@GLIBC_2.2 2.2 + shm_unlink@GLIBC_2.2 2.2 + timer_create@GLIBC_2.2 2.2 + timer_delete@GLIBC_2.2 2.2 + timer_getoverrun@GLIBC_2.2 2.2 + timer_gettime@GLIBC_2.2 2.2 + timer_settime@GLIBC_2.2 2.2 +libthread_db.so.1 libc6 #MINVER# + GLIBC_2.1.3@GLIBC_2.1.3 2.1.3 + GLIBC_2.2.3@GLIBC_2.2.3 2.2.3 + GLIBC_2.3.3@GLIBC_2.3.3 2.3.3 + GLIBC_2.3@GLIBC_2.3 2.3 + td_init@GLIBC_2.1.3 2.1.3 + td_log@GLIBC_2.1.3 2.1.3 + td_symbol_list@GLIBC_2.2.3 2.2.3 + td_ta_clear_event@GLIBC_2.1.3 2.1.3 + td_ta_delete@GLIBC_2.1.3 2.1.3 + td_ta_enable_stats@GLIBC_2.1.3 2.1.3 + td_ta_event_addr@GLIBC_2.1.3 2.1.3 + td_ta_event_getmsg@GLIBC_2.1.3 2.1.3 + td_ta_get_nthreads@GLIBC_2.1.3 2.1.3 + td_ta_get_ph@GLIBC_2.1.3 2.1.3 + td_ta_get_stats@GLIBC_2.1.3 2.1.3 + td_ta_map_id2thr@GLIBC_2.1.3 2.1.3 + td_ta_map_lwp2thr@GLIBC_2.1.3 2.1.3 + td_ta_new@GLIBC_2.1.3 2.1.3 + td_ta_reset_stats@GLIBC_2.1.3 2.1.3 + td_ta_set_event@GLIBC_2.1.3 2.1.3 + td_ta_setconcurrency@GLIBC_2.1.3 2.1.3 + td_ta_thr_iter@GLIBC_2.1.3 2.1.3 + td_ta_tsd_iter@GLIBC_2.1.3 2.1.3 + td_thr_clear_event@GLIBC_2.1.3 2.1.3 + td_thr_dbresume@GLIBC_2.1.3 2.1.3 + td_thr_dbsuspend@GLIBC_2.1.3 2.1.3 + td_thr_event_enable@GLIBC_2.1.3 2.1.3 + td_thr_event_getmsg@GLIBC_2.1.3 2.1.3 + td_thr_get_info@GLIBC_2.1.3 2.1.3 + td_thr_getfpregs@GLIBC_2.1.3 2.1.3 + td_thr_getgregs@GLIBC_2.1.3 2.1.3 + td_thr_getxregs@GLIBC_2.1.3 2.1.3 + td_thr_getxregsize@GLIBC_2.1.3 2.1.3 + td_thr_set_event@GLIBC_2.1.3 2.1.3 + td_thr_setfpregs@GLIBC_2.1.3 2.1.3 + td_thr_setgregs@GLIBC_2.1.3 2.1.3 + td_thr_setprio@GLIBC_2.1.3 2.1.3 + td_thr_setsigpending@GLIBC_2.1.3 2.1.3 + td_thr_setxregs@GLIBC_2.1.3 2.1.3 + td_thr_sigsetmask@GLIBC_2.1.3 2.1.3 + td_thr_tls_get_addr@GLIBC_2.3 2.3 + td_thr_tlsbase@GLIBC_2.3.3 2.3.3 + td_thr_tsd@GLIBC_2.1.3 2.1.3 + td_thr_validate@GLIBC_2.1.3 2.1.3 +libutil.so.1 libc6 #MINVER# + GLIBC_2.0@GLIBC_2.0 2.0 + forkpty@GLIBC_2.0 2.0 + login@GLIBC_2.0 2.0 + login_tty@GLIBC_2.0 2.0 + logout@GLIBC_2.0 2.0 + logwtmp@GLIBC_2.0 2.0 + openpty@GLIBC_2.0 2.0 --- glibc-2.7.orig/debian/control +++ glibc-2.7/debian/control @@ -0,0 +1,751 @@ +Source: glibc +Section: libs +Priority: required +Build-Depends: gettext, make (>= 3.80-1), dpkg-dev (>= 1.13.5), bzip2, file, quilt, + texinfo (>= 4.0), texi2html, + autoconf, sed (>= 4.0.5-4), gawk, debhelper (>= 5.0), + linux-libc-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], + mig (>= 1.3-2) [hurd-i386], hurd-dev (>= 20020608-1) [hurd-i386], gnumach-dev [hurd-i386], libpthread-stubs0-dev [hurd-i386], + kfreebsd-kernel-headers [kfreebsd-i386 kfreebsd-amd64], + binutils (>= 2.17cvs20070426-1), + g++-4.2 (>= 4.2.2), g++-4.2-multilib [amd64 i386 kfreebsd-amd64 powerpc ppc64 s390 sparc] +Build-Depends-Indep: perl, po-debconf (>= 1.0) +Maintainer: Ubuntu Core developers +XSBC-Original-Maintainer: GNU Libc Maintainers +Uploaders: Ben Collins , GOTO Masanori , Philip Blundell , Jeff Bailey , Daniel Jacobowitz , Clint Adams , Aurelien Jarno , Pierre Habouzit +Standards-Version: 3.7.3 + +Package: glibc-doc +Architecture: all +Section: doc +Priority: optional +Provides: glibc-doc-reference +Conflicts: glibc-doc-reference +Replaces: glibc-doc-reference +Description: GNU C Library: Documentation + Contains The GNU C Library Reference manual in info and html format + as well as the man pages for libpthread functions and the complete + GNU C Library ChangeLog. + +Package: glibc-source +Architecture: all +Section: devel +Priority: optional +Description: GNU C Library: sources + This package contains the sources and patches which are needed to + build glibc. + +Package: locales +Architecture: all +Section: libs +Priority: standard +Depends: ${locale:Depends}, debconf | debconf-2.0 +Conflicts: base-config, belocs-locales-bin, belocs-locales-data +Replaces: base-config, lliurex-belocs-locales-data +Description: GNU C Library: National Language (locale) data [support] + Machine-readable data files, shared objects and programs used by the + C library for localization (l10n) and internationalization (i18n) support. + . + This package contains the libc.mo i18n files, plus tools to generate + locale definitions from source files (included in this package). It + allows you to customize which definitions actually get + generated. This is a space-saver over how this package used to be, + with all locales generated by default. This created a package that + unpacked to an excess of 30 megs. + +Package: locales-all +Architecture: any +Section: libs +Priority: extra +Depends: ${locale:Depends}, lzma +Provides: locales +Description: GNU C Library: Precompiled locale data + This package contains the precompiled locale data for all supported locales. + A better alternative is to install the locales package and only select + desired locales, but it can be useful on a low-memory machine because some + locale files take a lot of memory to be compiled. + +Package: nscd +Architecture: any +Section: admin +Priority: optional +Depends: ${shlibs:Depends} +Description: GNU C Library: Name Service Cache Daemon + A daemon which handles passwd, group and host lookups + for running programs and caches the results for the next + query. You should install this package only if you use + slow Services like LDAP, NIS or NIS+ + +Package: libc6 +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc ppc64 sparc s390 hppa sh3 sh4 sh3eb sh4eb +Section: libs +Priority: required +Provides: ${locale-compat:Depends} +Suggests: debconf | debconf-2.0 +Depends: tzdata +Description: GNU C Library: Shared libraries + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + +Package: libc6-dev +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc ppc64 sparc s390 hppa sh3 sh4 sh3eb sh4eb +Section: libdevel +Priority: optional +Depends: libc6 (= ${binary:Version}) +Recommends: gcc | c-compiler +Description: GNU C Library: Development Libraries and Header Files + Contains the symlinks, headers, and object files needed to compile + and link programs which use the standard C library. + +Package: libc6-dbg +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc ppc64 sparc s390 hppa sh3 sh4 sh3eb sh4eb +Section: libdevel +Priority: extra +Provides: libc-dbg +Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: Libraries with debugging symbols + Contains unstripped shared libraries. + This package is provided primarily to provide a backtrace with + names in a debugger, which makes it somewhat easier to interpret core + dumps. The libraries are installed in /usr/lib/debug and can be + used by placing that directory in LD_LIBRARY_PATH. + Most people will not need this package. + +Package: libc6-prof +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc ppc64 sparc s390 hppa sh3 sh4 sh3eb sh4eb +Section: libdevel +Priority: extra +Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: Profiling Libraries + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: libc6-pic +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc ppc64 sparc s390 hppa sh3 sh4 sh3eb sh4eb +Section: libdevel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: PIC archive library + Contains an archive library (ar file) composed of individual shared objects. + This is used for creating a library which is a smaller subset of the + standard libc shared library. The reduced library is used on the Debian + boot floppies. If you are not making your own set of Debian boot floppies + using the `boot-floppies' package, you probably don't need this package. + +Package: libc6-udeb +XC-Package-Type: udeb +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc ppc64 sparc s390 hppa sh3 sh4 sh3eb sh4eb +Section: debian-installer +Priority: extra +Provides: libc6, libc-udeb, ${locale-compat:Depends} +Description: GNU C Library: Shared libraries - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains a minimal set of libraries needed for the Debian + installer. Do not install it on a normal system. + +Package: libc6.1 +Architecture: alpha ia64 +Section: libs +Priority: required +Provides: ${locale-compat:Depends} +Suggests: debconf | debconf-2.0 +Depends: tzdata +Description: GNU C Library: Shared libraries + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + +Package: libc6.1-dev +Architecture: alpha ia64 +Section: libdevel +Priority: optional +Depends: libc6.1 (= ${binary:Version}) +Recommends: gcc | c-compiler +Description: GNU C Library: Development Libraries and Header Files + Contains the symlinks, headers, and object files needed to compile + and link programs which use the standard C library. + +Package: libc6.1-dbg +Architecture: alpha ia64 +Section: libdevel +Priority: extra +Provides: libc-dbg +Depends: libc6.1 (= ${binary:Version}) +Description: GNU C Library: Libraries with debugging symbols + Contains unstripped shared libraries. + This package is provided primarily to provide a backtrace with + names in a debugger, which makes it somewhat easier to interpret core + dumps. The libraries are installed in /usr/lib/debug and can be + used by placing that directory in LD_LIBRARY_PATH. + Most people will not need this package. + +Package: libc6.1-prof +Architecture: alpha ia64 +Section: libdevel +Priority: extra +Depends: libc6.1 (= ${binary:Version}) +Description: GNU C Library: Profiling Libraries + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: libc6.1-pic +Architecture: alpha ia64 +Section: libdevel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: libc6.1 (= ${binary:Version}) +Description: GNU C Library: PIC archive library + Contains an archive library (ar file) composed of individual shared objects. + This is used for creating a library which is a smaller subset of the + standard libc shared library. The reduced library is used on the Debian + boot floppies. If you are not making your own set of Debian boot floppies + using the `boot-floppies' package, you probably don't need this package. + +Package: libc6.1-udeb +XC-Package-Type: udeb +Architecture: alpha ia64 +Section: debian-installer +Priority: extra +Provides: libc6.1, libc-udeb, ${locale-compat:Depends} +Description: GNU C Library: Shared libraries - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains a minimal set of libraries needed for the Debian + installer. Do not install it on a normal system. + +Package: libc0.3 +Architecture: hurd-i386 +Section: libs +Priority: required +Provides: ${locale-compat:Depends} +Suggests: debconf | debconf-2.0 +Depends: tzdata +Description: GNU C Library: Shared libraries + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + +Package: libc0.3-dev +Architecture: hurd-i386 +Section: libdevel +Priority: optional +Depends: libc0.3 (= ${binary:Version}) +Recommends: gcc | c-compiler +Description: GNU C Library: Development Libraries and Header Files + Contains the symlinks, headers, and object files needed to compile + and link programs which use the standard C library. + +Package: libc0.3-dbg +Architecture: hurd-i386 +Section: libdevel +Priority: extra +Provides: libc-dbg +Depends: libc0.3 (= ${binary:Version}) +Description: GNU C Library: Libraries with debugging symbols + Contains unstripped shared libraries. + This package is provided primarily to provide a backtrace with + names in a debugger, which makes it somewhat easier to interpret core + dumps. The libraries are installed in /usr/lib/debug and can be + used by placing that directory in LD_LIBRARY_PATH. + Most people will not need this package. + +Package: libc0.3-prof +Architecture: hurd-i386 +Section: libdevel +Priority: extra +Depends: libc0.3 (= ${binary:Version}) +Description: GNU C Library: Profiling Libraries + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: libc0.3-pic +Architecture: hurd-i386 +Section: libdevel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: libc0.3 (= ${binary:Version}) +Description: GNU C Library: PIC archive library + Contains an archive library (ar file) composed of individual shared objects. + This is used for creating a library which is a smaller subset of the + standard libc shared library. The reduced library is used on the Debian + boot floppies. If you are not making your own set of Debian boot floppies + using the `boot-floppies' package, you probably don't need this package. + +Package: libc0.3-udeb +XC-Package-Type: udeb +Architecture: hurd-i386 +Section: debian-installer +Priority: extra +Provides: libc0.3, libc-udeb, ${locale-compat:Depends} +Description: GNU C Library: Shared libraries - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains a minimal set of libraries needed for the Debian + installer. Do not install it on a normal system. + +Package: libc0.1 +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: libs +Priority: required +Provides: ${locale-compat:Depends} +Suggests: debconf | debconf-2.0 +Depends: tzdata +Description: GNU C Library: Shared libraries + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + +Package: libc0.1-dev +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: libdevel +Priority: optional +Depends: libc0.1 (= ${binary:Version}) +Recommends: gcc | c-compiler +Description: GNU C Library: Development Libraries and Header Files + Contains the symlinks, headers, and object files needed to compile + and link programs which use the standard C library. + +Package: libc0.1-dbg +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: libdevel +Priority: extra +Provides: libc-dbg +Depends: libc0.1 (= ${binary:Version}) +Description: GNU C Library: Libraries with debugging symbols + Contains unstripped shared libraries. + This package is provided primarily to provide a backtrace with + names in a debugger, which makes it somewhat easier to interpret core + dumps. The libraries are installed in /usr/lib/debug and can be + used by placing that directory in LD_LIBRARY_PATH. + Most people will not need this package. + +Package: libc0.1-prof +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: libdevel +Priority: extra +Depends: libc0.1 (= ${binary:Version}) +Description: GNU C Library: Profiling Libraries + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: libc0.1-pic +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: libdevel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: libc0.1 (= ${binary:Version}) +Description: GNU C Library: PIC archive library + Contains an archive library (ar file) composed of individual shared objects. + This is used for creating a library which is a smaller subset of the + standard libc shared library. The reduced library is used on the Debian + boot floppies. If you are not making your own set of Debian boot floppies + using the `boot-floppies' package, you probably don't need this package. + +Package: libc0.1-udeb +XC-Package-Type: udeb +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: debian-installer +Priority: extra +Provides: libc0.1, libc-udeb, ${locale-compat:Depends} +Description: GNU C Library: Shared libraries - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains a minimal set of libraries needed for the Debian + installer. Do not install it on a normal system. + +Package: libc6-i386 +Architecture: amd64 +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}) +Replaces: libc6-dev-i386 +Conflicts: ia32-libs (<= 1.5) +Description: GNU C Library: 32bit shared libraries for AMD64 + This package includes shared versions of the standard C + library and the standard math library, as well as many others. + This is the 32bit version of the library, meant for AMD64 systems. + +Package: libc6-dev-i386 +Architecture: amd64 +Section: libdevel +Priority: optional +Conflicts: ia32-libs-dev (<< 1.18) +Provides: lib32c-dev +Depends: libc6-i386 (= ${binary:Version}), libc6-dev (= ${binary:Version}) +Recommends: gcc-multilib +Description: GNU C Library: 32bit development libraries for AMD64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 32bit version of the + library, meant for AMD64 systems. + +Package: libc6-sparc64 +Architecture: sparc +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}) +Conflicts: gcc-3.0 (<< 1:3.0.4ds3-11), libgcc1 (<< 1:3.0.4ds3-11), fakeroot (<< 0.4.5-2.7) +Description: GNU C Library: 64bit Shared libraries for UltraSPARC + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for UltraSPARC systems. + +Package: libc6-dev-sparc64 +Architecture: sparc +Section: libdevel +Priority: optional +Provides: lib64c-dev +Depends: libc6-sparc64 (= ${binary:Version}), libc6-dev (= ${binary:Version}) +Recommends: gcc-multilib +Description: GNU C Library: 64bit Development Libraries for UltraSPARC + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for UltraSPARC systems. + +Package: libc6-s390x +Architecture: s390 +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: 64bit Shared libraries for IBM zSeries + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for zSeries systems. + +Package: libc6-dev-s390x +Architecture: s390 +Section: libdevel +Priority: optional +Provides: lib64c-dev +Depends: libc6-s390x (= ${binary:Version}), libc6-dev (= ${binary:Version}) +Recommends: gcc-multilib +Description: GNU C Library: 64bit Development Libraries for IBM zSeries + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for zSeries systems. + +Package: libc6-amd64 +Architecture: i386 +Section: libs +Priority: standard +Depends: libc6 (= ${binary:Version}) +Conflicts: amd64-libs (<= 1.2) +Description: GNU C Library: 64bit Shared libraries for AMD64 + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for AMD64 systems. + +Package: libc6-dev-amd64 +Architecture: i386 +Section: libdevel +Priority: optional +Depends: libc6-amd64 (= ${binary:Version}), libc6-dev (= ${binary:Version}) +Recommends: gcc-multilib +Replaces: amd64-libs-dev (<= 1.2) +Provides: lib64c-dev +Description: GNU C Library: 64bit Development Libraries for AMD64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for AMD64 systems. + +Package: libc6-powerpc +Architecture: ppc64 +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: 32bit powerpc shared libraries for ppc64 + This package includes shared versions of the standard C + library and the standard math library, as well as many others. + This is the 32bit version of the library, meant for ppc64 systems. + +Package: libc6-dev-powerpc +Architecture: ppc64 +Section: libdevel +Priority: optional +Provides: lib32c-dev +Depends: libc6-powerpc (= ${binary:Version}), libc6-dev (= ${binary:Version}) +Recommends: gcc-multilib +Description: GNU C Library: 32bit powerpc development libraries for ppc64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 32bit version of the + library, meant for ppc64 systems. + +Package: libc6-ppc64 +Architecture: powerpc +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: 64bit Shared libraries for PowerPC64 + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for PowerPC64 systems. + +Package: libc6-dev-ppc64 +Architecture: powerpc +Section: libdevel +Priority: optional +Provides: lib64c-dev +Depends: libc6-ppc64 (= ${binary:Version}), libc6-dev (= ${binary:Version}) +Recommends: gcc-multilib +Description: GNU C Library: 64bit Development Libraries for PowerPC64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for PowerPC64 systems. + +Package: libc6-mipsn32 +Architecture: mips mipsel +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: n32 Shared libraries for MIPS64 + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the n32 version + of the library, meant for MIPS64 systems. + +Package: libc6-dev-mipsn32 +Architecture: mips mipsel +Section: libdevel +Priority: optional +Provides: libn32c-dev +Depends: libc6-mipsn32 (= ${binary:Version}), libc6-dev (= ${binary:Version}) +Recommends: gcc-multilib +Description: GNU C Library: n32 Development Libraries for MIPS64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the n32 version of the + library, meant for MIPS64 systems. + +Package: libc6-mips64 +Architecture: mips mipsel +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: 64bit Shared libraries for MIPS64 + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for MIPS64 systems. + +Package: libc6-dev-mips64 +Architecture: mips mipsel +Section: libdevel +Priority: optional +Provides: lib64c-dev +Depends: libc6-mips64 (= ${binary:Version}), libc6-dev (= ${binary:Version}) +Recommends: gcc-multilib +Description: GNU C Library: 64bit Development Libraries for MIPS64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for MIPS64 systems. + +Package: libc0.1-i386 +Architecture: kfreebsd-amd64 +Section: libs +Priority: optional +Depends: libc0.1 (= ${binary:Version}) +Description: GNU C Library: 32bit shared libraries for AMD64 + This package includes shared versions of the standard C + library and the standard math library, as well as many others. + This is the 32bit version of the library, meant for AMD64 systems. + +Package: libc0.1-dev-i386 +Architecture: kfreebsd-amd64 +Section: libdevel +Priority: optional +Provides: lib32c-dev +Depends: libc0.1-i386 (= ${binary:Version}), libc0.1-dev (= ${binary:Version}) +Recommends: gcc-multilib +Description: GNU C Library: 32bit development libraries for AMD64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 32bit version of the + library, meant for AMD64 systems. + +Package: libc6-sparcv9b +Architecture: sparc +Section: libs +Priority: extra +Pre-Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: Shared libraries [v9b optimized] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for the UltraSPARC v9b ABI. It only + needs to be installed on UltraSPARC machines. If you install this on a + non-UltraSPARC, it won't even be used. + +Package: libc6-sparcv9v +Architecture: sparc +Section: libs +Priority: extra +Pre-Depends: libc6 (= ${Source-Version}) +Description: GNU C Library: Shared libraries [v9v optimized] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for SUN4V Niagara and derivative + processors. It only needs to be installed on machines using + SUN4V Niagara and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-sparcv9v2 +Architecture: sparc +Section: libs +Priority: extra +Pre-Depends: libc6 (= ${Source-Version}) +Description: GNU C Library: Shared libraries [v9v2 optimized] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for SUN4V Niagara 2 and derivative + processors. It only needs to be installed on machines using + SUN4V Niagara 2 and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-sparc64b +Architecture: sparc +Section: base +Priority: extra +Depends: libc6 (= ${Source-Version}), lib64gcc1 +Conflicts: gcc-3.0 (<< 1:3.0.4ds3-11), libgcc1 (<< 1:3.0.4ds3-11), fakeroot (<< 0.4.5-2.7) +Description: GNU C Library: 64bit Shared libraries for UltraSPARC [v9b optimized] + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for UltraSPARC systems. + . + This set of libraries is optimized for UltraSPARC-III and derivative + processors. It only needs to be installed on machines using + UltraSPARC-III and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-sparc64v +Architecture: sparc +Section: base +Priority: extra +Depends: libc6 (= ${Source-Version}), lib64gcc1 +Conflicts: gcc-3.0 (<< 1:3.0.4ds3-11), libgcc1 (<< 1:3.0.4ds3-11), fakeroot (<< 0.4.5-2.7) +Description: GNU C Library: 64bit Shared libraries for UltraSPARC [v9v optimized] + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for UltraSPARC systems. + . + This set of libraries is optimized for SUN4V Niagara and derivative + processors. It only needs to be installed on machines using + SUN4V Niagara and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-sparc64v2 +Architecture: sparc +Section: base +Priority: extra +Depends: libc6 (= ${Source-Version}), lib64gcc1 +Conflicts: gcc-3.0 (<< 1:3.0.4ds3-11), libgcc1 (<< 1:3.0.4ds3-11), fakeroot (<< 0.4.5-2.7) +Description: GNU C Library: 64bit Shared libraries for UltraSPARC [v9v2 optimized] + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for UltraSPARC systems. + . + This set of libraries is optimized for SUN4V Niagara 2 and derivative + processors. It only needs to be installed on machines using + SUN4V Niagara 2 and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-i686 +Architecture: i386 +Section: libs +Priority: extra +Pre-Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: Shared libraries [i686 optimized] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for i686 machines, and will only be + used if you are running a 2.6 kernel on an i686 class CPU (check the + output of `uname -m'). This includes Pentium Pro, Pentium II/III/IV, + Celeron CPU's and similar class CPU's (including clones such as AMD + Athlon/Opteron, VIA C3 Nehemiah, but not VIA C3 Ezra). + +Package: libc6-xen +Architecture: i386 +Section: libs +Priority: extra +Pre-Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: Shared libraries [Xen version] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for the Xen hypervisor, and will be + selected instead when running under Xen. + +Package: libc0.1-i686 +Architecture: kfreebsd-i386 +Section: libs +Priority: extra +Pre-Depends: libc0.1 (= ${binary:Version}) +Description: GNU C Library: Shared libraries [i686 optimized] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for i686 machines, and will only be + used on an i686 class CPU (check the output of `uname -m'). This includes + Pentium Pro, Pentium II/III/IV, Celeron CPU's and similar class CPU's + (including clones such as AMD Athlon/Opteron, VIA C3 Nehemiah, but not VIA + C3 Ezla). + +Package: libc6.1-alphaev67 +Architecture: alpha +Section: libs +Priority: extra +Pre-Depends: libc6.1 (= ${binary:Version}) +Description: GNU C Library: Shared libraries (EV67 optimized) + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for the Alpha EV67. It only + needs to be installed on Alpha EV67/68 and EV7 machines. If you install + this on an older machine, it won't even be used. + +Package: libnss-dns-udeb +XC-Package-Type: udeb +Architecture: any +Section: debian-installer +Priority: extra +Description: GNU C Library: NSS helper for DNS - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains the DNS NSS helper needed for the Debian installer. + Do not install it on a normal system. + +Package: libnss-files-udeb +XC-Package-Type: udeb +Architecture: any +Section: debian-installer +Priority: extra +Description: GNU C Library: NSS helper for files - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains the files NSS helper needed for the Debian installer. + Do not install it on a normal system. + --- glibc-2.7.orig/debian/quiltrc +++ glibc-2.7/debian/quiltrc @@ -0,0 +1,4 @@ +QUILT_PATCHES="debian/patches" +QUILT_PATCH_OPTS="--unified-reject-files" +QUILT_DIFF_ARGS="--no-timestamps --no-index" +QUILT_REFRESH_ARGS="--no-timestamps --no-index" --- glibc-2.7.orig/debian/bug/libc6-i386/presubj +++ glibc-2.7/debian/bug/libc6-i386/presubj @@ -0,0 +1,14 @@ +issues with /usr/lib32 +====================== + + libc6-i386 is the sole package that is supposed to ship /usr/lib32. + + If you get a problem like: + Unpacking replacement libc6-i386 ... + dpkg: error processing + /var/cache/apt/archives/libc6-i386_2.6-2_amd64.deb (--unpack): + trying to overwrite `/usr/lib32', which is also in package libfoo32xxx + ^^^^^^^^^^^ + + Then the package libfoo32xxx is at fault, do _NOT_ report a bug on libc6-i386. + --- glibc-2.7.orig/debian/bug/locales/presubj +++ glibc-2.7/debian/bug/locales/presubj @@ -0,0 +1,18 @@ +locales dependencies on glibc +============================= + + If at some point (in unstable) you get messages like: + + The following packages have unmet dependencies: + locales: Depends: glibc-2.6-1 which is a virtual package. + + then please check for example on [1] that the glibc of the _same_ version as + the `locales` package you are trying to upgrade is in state _installed_ for + your architecture, and for how long. + + If it's not, it is very likely that the corresponding libc has not been + built _and_ uploaded to the mirrors for your architecture yet, and that the + dependencies will be fixed soon. Please wait for the package to be installed + for more than 24 hours before reporting abug about `locales` dependencies. + + [1] http://buildd.debian.org/~jeroen/status/package.php?p=glibc --- glibc-2.7.orig/debian/patches/series.hurd-i386 +++ glibc-2.7/debian/patches/series.hurd-i386 @@ -0,0 +1,4 @@ +hurd-i386/local-gscope.diff +hurd-i386/local-atomic-no-multiple_threads.diff +hurd-i386/local-no-strerror_l.diff +hurd-i386/local-pthread_stubs.diff --- glibc-2.7.orig/debian/patches/m68k/local-mathinline_h.diff +++ glibc-2.7/debian/patches/m68k/local-mathinline_h.diff @@ -0,0 +1,49 @@ +--- glibc-2.6.orig/ports/sysdeps/m68k/m680x0/fpu/bits/mathinline.h ++++ glibc-2.6/ports/sysdeps/m68k/m680x0/fpu/bits/mathinline.h +@@ -100,7 +100,7 @@ + /* Define a const math function. */ + #define __m81_defun(rettype, func, args) \ + __m81_inline rettype __attribute__((__const__)) \ +- __m81_u(func) args ++ __NTH(__m81_u(func) args) + + /* Define the three variants of a math function that has a direct + implementation in the m68k fpu. FUNC is the name for C (which will be +@@ -313,8 +313,8 @@ + } \ + \ + __m81_inline float_type \ +-__m81_u(__CONCAT(__fma,s))(float_type __x, float_type __y, \ +- float_type __z) \ ++__NTH(__m81_u(__CONCAT(__fma,s))(float_type __x, float_type __y, \ ++ float_type __z)) \ + { \ + return (__x * __y) + __z; \ + } +@@ -330,8 +330,8 @@ + + # define __inline_functions(float_type, s) \ + __m81_inline void \ +-__m81_u(__CONCAT(__sincos,s))(float_type __x, float_type *__sinx, \ +- float_type *__cosx) \ ++__NTH(__m81_u(__CONCAT(__sincos,s))(float_type __x, float_type *__sinx, \ ++ float_type *__cosx)) \ + { \ + __asm ("fsincos%.x %2,%1:%0" \ + : "=f" (*__sinx), "=f" (*__cosx) : "f" (__x)); \ +@@ -352,13 +352,13 @@ + NAME, to make token pasting work correctly with -traditional. */ + # define __inline_forward_c(rettype, name, args1, args2) \ + extern __inline rettype __attribute__((__const__)) \ +- name args1 \ ++ __NTH(name args1) \ + { \ + return __CONCAT(__,name) args2; \ + } + + # define __inline_forward(rettype, name, args1, args2) \ +-extern __inline rettype name args1 \ ++extern __inline rettype __NTH(name args1) \ + { \ + return __CONCAT(__,name) args2; \ + } --- glibc-2.7.orig/debian/patches/m68k/local-reloc.diff +++ glibc-2.7/debian/patches/m68k/local-reloc.diff @@ -0,0 +1,19 @@ +# DP: Description: binutils bug workaround +# DP: Related bugs: #263601: m68k: workaround for binutils problem +# DP: Dpatch author: Roman Zippel +# DP: Patch author: Richard Zidlicky +# DP: Upstream status: Debian-Specific +# DP: Status Details: Actual fix is to modify m68k binutils. +# DP: Date: 2004-08-09 + +--- ports/sysdeps/m68k/dl-machine.h.orig ++++ ports/sysdeps/m68k/dl-machine.h +@@ -284,6 +284,8 @@ + Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); + if (ELF32_R_TYPE (reloc->r_info) == R_68K_JMP_SLOT) + *reloc_addr += l_addr; ++ else if (ELF32_R_TYPE (reloc->r_info) == R_68K_NONE) ++ return; + else + _dl_reloc_bad_type (map, ELF32_R_TYPE (reloc->r_info), 1); + } --- glibc-2.7.orig/debian/patches/m68k/local-fpic.diff +++ glibc-2.7/debian/patches/m68k/local-fpic.diff @@ -0,0 +1,12 @@ +# DP: Make sure libc_nonshared.a is compiled with -fPIC on m68k + +--- ports/sysdeps/m68k/Makefile.orig ++++ ports/sysdeps/m68k/Makefile +@@ -33,3 +33,7 @@ + ifeq ($(subdir),elf) + CFLAGS-rtld.c += -Wno-uninitialized -Wno-unused + endif ++ ++# Build objects in libc_nonshared.a with -fPIC (instead of -fpic) to avoid ++# possible linkage problems. ++CFLAGS-.oS += -fPIC --- glibc-2.7.orig/debian/patches/m68k/local-pthread_lock.diff +++ glibc-2.7/debian/patches/m68k/local-pthread_lock.diff @@ -0,0 +1,20 @@ +--- glibc-2.6.orig/linuxthreads/sysdeps/m68k/pspinlock.c ++++ glibc-2.6/linuxthreads/sysdeps/m68k/pspinlock.c +@@ -25,7 +25,7 @@ + int + __pthread_spin_lock (pthread_spinlock_t *lock) + { +- unsigned int val; ++ unsigned char val; + + do + asm volatile ("tas %1; sne %0" +@@ -42,7 +42,7 @@ + int + __pthread_spin_trylock (pthread_spinlock_t *lock) + { +- unsigned int val; ++ unsigned char val; + + asm volatile ("tas %1; sne %0" + : "=dm" (val), "=m" (*lock) --- glibc-2.7.orig/debian/patches/m68k/local-compat.diff +++ glibc-2.7/debian/patches/m68k/local-compat.diff @@ -0,0 +1,22 @@ +# DP: Fixes some old compatibility issues with m68k and lchown/chown + +--- ports/sysdeps/unix/sysv/linux/m68k/chown.c.orig ++++ ports/sysdeps/unix/sysv/linux/m68k/chown.c +@@ -67,3 +67,8 @@ + } + libc_hidden_def (__chown) + weak_alias (__chown, chown) ++ ++#include ++#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_2) ++compat_symbol (libc, __chown, chown, GLIBC_2_1); ++#endif +--- ports/sysdeps/unix/sysv/linux/m68k/lchown.c.orig ++++ ports/sysdeps/unix/sysv/linux/m68k/lchown.c +@@ -1 +1,6 @@ + #include ++ ++#include ++#if SHLIB_COMPAT (libc, GLIBC_2_1, GLIBC_2_2) ++compat_symbol (libc, __lchown, lchown, GLIBC_2_1); ++#endif --- glibc-2.7.orig/debian/patches/m68k/submitted-gcc34-seccomment.diff +++ glibc-2.7/debian/patches/m68k/submitted-gcc34-seccomment.diff @@ -0,0 +1,29 @@ +# DP: Description: Make glibc-2.3.5 compile with gcc-3.4/4.0 + binutils 2.16 +# on m68k fixed by adding #APP. +# DP: Related bugs: +# DP: Dpatch author: GOTO Masanori +# DP: Patch author: Andreas Schwab +# DP: Upstream status: Pending +# DP: Status Details: +# DP: Date: 2005-08-03 + +From: Andreas Schwab + +--- include/libc-symbols.h.orig ++++ include/libc-symbols.h +@@ -240,12 +240,12 @@ + # define __make_section_unallocated(section_string) + # endif + +-/* Tacking on "\n\t#" to the section name makes gcc put it's bogus ++/* Tacking on "\n#APP\n\t#" to the section name makes gcc put it's bogus + section attributes on what looks like a comment to the assembler. */ + # ifdef HAVE_SECTION_QUOTES +-# define __sec_comment "\"\n\t#\"" ++# define __sec_comment "\"\n#APP\n\t#\"" + # else +-# define __sec_comment "\n\t#" ++# define __sec_comment "\n#APP\n\t#" + # endif + # define link_warning(symbol, msg) \ + __make_section_unallocated (".gnu.warning." #symbol) \ --- glibc-2.7.orig/debian/patches/m68k/local-dwarf2-buildfix.diff +++ glibc-2.7/debian/patches/m68k/local-dwarf2-buildfix.diff @@ -0,0 +1,34 @@ +# DP: Description: Adding empty m68k framestate.c not to build for dwarf2. +# DP: Related bugs: +# DP: Dpatch author: GOTO Masanori +# DP: Patch author: GOTO Masanori +# DP: Upstream status: Debian-Specific +# DP: Status Details: m68k uses sjlj exceptions, not dwarf2 unwind. +# DP: This patch adds empty framestate.c for m68k to avoid +# DP: dwarf2 build failure. +# DP: Date: 2003-07-19 (Update 2005-03-16 gotom) + +2005-03-16 GOTO Masanori + + * sysdeps/m68k/unwind-pe.c: Update to fix compilation failure. + +2003-07-19 GOTO Masanori + + * sysdeps/m68k/framestate.c: Add to fix compilation failure + with sjlj exception, suggested by Philip Blundell. + + +--- /dev/null ++++ sysdeps/m68k/unwind-pe.c +@@ -0,0 +1,6 @@ ++#include ++#include ++ ++#define _LIBC_DEFINITIONS ++#define NO_BASE_OF_ENCODED_VALUE ++#include "unwind-pe.h" +--- /dev/null ++++ sysdeps/m68k/framestate.c +@@ -0,0 +1,2 @@ ++ ++ --- glibc-2.7.orig/debian/patches/series.mipsel +++ glibc-2.7/debian/patches/series.mipsel @@ -0,0 +1 @@ +mips/local-gcc-ice.diff -p1 --- glibc-2.7.orig/debian/patches/amd64/local-x86_64_bits_sigcontext.diff +++ glibc-2.7/debian/patches/amd64/local-x86_64_bits_sigcontext.diff @@ -0,0 +1,167 @@ +Index: glibc-2.6.1/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h +=================================================================== +--- glibc-2.6.1.orig/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h 2007-09-16 20:38:15.000000000 +0200 ++++ glibc-2.6.1/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h 2007-09-16 20:38:41.000000000 +0200 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2002 Free Software Foundation, Inc. ++/* Copyright (C) 1996, 1997, 1998 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 +@@ -8,7 +8,7 @@ + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public +@@ -16,144 +16,14 @@ + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +-#ifndef _BITS_SIGCONTEXT_H +-#define _BITS_SIGCONTEXT_H 1 +- + #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H + # error "Never use directly; include instead." + #endif + +-#include +- +-struct _fpreg +-{ +- unsigned short significand[4]; +- unsigned short exponent; +-}; +- +-struct _fpxreg +-{ +- unsigned short significand[4]; +- unsigned short exponent; +- unsigned short padding[3]; +-}; +- +-struct _xmmreg +-{ +- __uint32_t element[4]; +-}; +- +- +- +-#if __WORDSIZE == 32 +- +-struct _fpstate +-{ +- /* Regular FPU environment. */ +- __uint32_t cw; +- __uint32_t sw; +- __uint32_t tag; +- __uint32_t ipoff; +- __uint32_t cssel; +- __uint32_t dataoff; +- __uint32_t datasel; +- struct _fpreg _st[8]; +- unsigned short status; +- unsigned short magic; +- +- /* FXSR FPU environment. */ +- __uint32_t _fxsr_env[6]; +- __uint32_t mxcsr; +- __uint32_t reserved; +- struct _fpxreg _fxsr_st[8]; +- struct _xmmreg _xmm[8]; +- __uint32_t padding[56]; +-}; +- + #ifndef sigcontext_struct + /* Kernel headers before 2.1.1 define a struct sigcontext_struct, but +- we need sigcontext. Some packages have come to rely on +- sigcontext_struct being defined on 32-bit x86, so define this for +- their benefit. */ ++ we need sigcontext. */ + # define sigcontext_struct sigcontext +-#endif +- +-struct sigcontext +-{ +- unsigned short gs, __gsh; +- unsigned short fs, __fsh; +- unsigned short es, __esh; +- unsigned short ds, __dsh; +- unsigned long edi; +- unsigned long esi; +- unsigned long ebp; +- unsigned long esp; +- unsigned long ebx; +- unsigned long edx; +- unsigned long ecx; +- unsigned long eax; +- unsigned long trapno; +- unsigned long err; +- unsigned long eip; +- unsigned short cs, __csh; +- unsigned long eflags; +- unsigned long esp_at_signal; +- unsigned short ss, __ssh; +- struct _fpstate * fpstate; +- unsigned long oldmask; +- unsigned long cr2; +-}; +- +-#else /* __WORDSIZE == 64 */ +- +-struct _fpstate +-{ +- /* FPU environment matching the 64-bit FXSAVE layout. */ +- __uint16_t cwd; +- __uint16_t swd; +- __uint16_t ftw; +- __uint16_t fop; +- __uint64_t rip; +- __uint64_t rdp; +- __uint32_t mxcsr; +- __uint32_t mxcr_mask; +- struct _fpxreg _st[8]; +- struct _xmmreg _xmm[16]; +- __uint32_t padding[24]; +-}; +- +-struct sigcontext +-{ +- unsigned long r8; +- unsigned long r9; +- unsigned long r10; +- unsigned long r11; +- unsigned long r12; +- unsigned long r13; +- unsigned long r14; +- unsigned long r15; +- unsigned long rdi; +- unsigned long rsi; +- unsigned long rbp; +- unsigned long rbx; +- unsigned long rdx; +- unsigned long rax; +- unsigned long rcx; +- unsigned long rsp; +- unsigned long rip; +- unsigned long eflags; +- unsigned short cs; +- unsigned short gs; +- unsigned short fs; +- unsigned short __pad0; +- unsigned long err; +- unsigned long trapno; +- unsigned long oldmask; +- unsigned long cr2; +- struct _fpstate * fpstate; +- unsigned long __reserved1 [8]; +-}; + +-#endif /* __WORDSIZE == 64 */ +- +-#endif /* _BITS_SIGCONTEXT_H */ ++# include ++#endif --- glibc-2.7.orig/debian/patches/amd64/local-linuxthreads-gscope.diff +++ glibc-2.7/debian/patches/amd64/local-linuxthreads-gscope.diff @@ -0,0 +1,58 @@ +--- linuxthreads/sysdeps/x86_64/tls.h.orig 2007-07-29 15:55:45 +0200 ++++ linuxthreads/sysdeps/x86_64/tls.h 2007-07-29 15:56:31 +0200 +@@ -49,6 +49,11 @@ + uintptr_t sysinfo; + uintptr_t stack_guard; + uintptr_t pointer_guard; ++# ifdef __FreeBSD_kernel__ ++ long gscope_flag; ++# else ++ int gscope_flag; ++# endif + } tcbhead_t; + + #else /* __ASSEMBLER__ */ +@@ -147,6 +148,43 @@ + ((descr)->p_header.data.pointer_guard \ + = THREAD_GETMEM (THREAD_SELF, p_header.data.pointer_guard)) + ++/* Get and set the global scope generation counter in the TCB head. */ ++#define THREAD_GSCOPE_FLAG_UNUSED 0 ++#define THREAD_GSCOPE_FLAG_USED 1 ++#define THREAD_GSCOPE_FLAG_WAIT 2 ++#ifdef __FreeBSD_kernel__ ++# define THREAD_GSCOPE_RESET_FLAG() \ ++ do \ ++ { int __res; \ ++ asm volatile ("xchgl %0, %%fs:%P1" \ ++ : "=r" (__res) \ ++ : "i" (offsetof (struct _pthread_descr_struct, p_gscope_flag)), \ ++ "0" (THREAD_GSCOPE_FLAG_UNUSED)); \ ++ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ ++ lll_futex_wake (&THREAD_SELF->p_gscope_flag, 1); \ ++ } \ ++ while (0) ++#else ++/* As the FreeBSD kernel defines futex as long (compared to int with ++ a Linux kernel), we need to use xchgq instead of xchgl to handle ++ the gscope_flag variable. */ ++# define THREAD_GSCOPE_RESET_FLAG() \ ++ do \ ++ { long __res; \ ++ asm volatile ("xchgq %0, %%fs:%P1" \ ++ : "=r" (__res) \ ++ : "i" (offsetof (struct _pthread_descr_struct, p_gscope_flag)), \ ++ "0" (THREAD_GSCOPE_FLAG_UNUSED)); \ ++ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ ++ lll_futex_wake (&THREAD_SELF->p_gscope_flag, 1); \ ++ } \ ++ while (0) ++#endif /* __FreeBSD_kernel__ */ ++#define THREAD_GSCOPE_SET_FLAG() \ ++ THREAD_SETMEM (THREAD_SELF, p_gscope_flag, THREAD_GSCOPE_FLAG_USED) ++#define THREAD_GSCOPE_WAIT() \ ++ GL(dl_wait_lookup_done) () ++ + # endif /* HAVE_TLS_SUPPORT */ + #endif /* __ASSEMBLER__ */ + --- glibc-2.7.orig/debian/patches/amd64/local-biarch.diff +++ glibc-2.7/debian/patches/amd64/local-biarch.diff @@ -0,0 +1,30 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Allow ldconfig to work on x86-64/i386 biarch systems + +--- glibc-2.6.orig/sysdeps/unix/sysv/linux/x86_64/dl-cache.h ++++ glibc-2.6/sysdeps/unix/sysv/linux/x86_64/dl-cache.h +@@ -22,4 +22,23 @@ + #define _dl_cache_check_flags(flags) \ + ((flags) == _DL_CACHE_DEFAULT_ID) + +-#include ++#define add_system_dir(dir) \ ++ do \ ++ { \ ++ size_t len = strlen (dir); \ ++ char path[len + 3]; \ ++ memcpy (path, dir, len + 1); \ ++ if (len >= 6 && ! memcmp (path + len - 6, "/lib32", 6)) \ ++ { \ ++ len -= 2; \ ++ path[len] = '\0'; \ ++ } \ ++ add_dir (path); \ ++ if (len >= 4 && ! memcmp (path + len - 4, "/lib", 4)) \ ++ { \ ++ memcpy (path + len, "32", 3); \ ++ add_dir (path); \ ++ } \ ++ } while (0) ++ ++#include --- glibc-2.7.orig/debian/patches/amd64/cvs-vdso_clock_gettime.diff +++ glibc-2.7/debian/patches/amd64/cvs-vdso_clock_gettime.diff @@ -0,0 +1,29 @@ +2007-12-12 Ulrich Drepper + + [BZ #5465] + * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S [!SHARED] + (__pthread_cond_timedwait): Don't use VDSO. + Patch by Michal Januszewski. + +=================================================================== +RCS file: /cvs/glibc/libc/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S,v +retrieving revision 1.29 +retrieving revision 1.30 +diff -u -r1.29 -r1.30 +--- libc/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S 2007/08/20 22:36:19 1.29 ++++ libc/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S 2007/12/12 08:05:33 1.30 +@@ -134,12 +134,14 @@ + /* Only clocks 0 and 1 are allowed so far. Both are handled in the + kernel. */ + leaq 24(%rsp), %rsi ++#ifdef SHARED + movq __vdso_clock_gettime@GOTPCREL(%rip), %rax + movq (%rax), %rax + PTR_DEMANGLE (%rax) + jz 26f + call *%rax + jmp 27f ++#endif + 26: movl $__NR_clock_gettime, %eax + syscall + 27: --- glibc-2.7.orig/debian/patches/amd64/local-clone.diff +++ glibc-2.7/debian/patches/amd64/local-clone.diff @@ -0,0 +1,25 @@ +2006-11-30 Jan Kratochvil + + * sysdeps/unix/sysv/linux/x86_64/clone.S: Provide CFI for the outermost + `clone' function to ensure proper unwinding stop of gdb. + +--- sysdeps/unix/sysv/linux/x86_64/clone.S 2006-12-04 00:12:36.000000000 +0100 ++++ sysdeps/unix/sysv/linux/x86_64/clone.S 2006-12-14 10:06:34.000000000 +0100 +@@ -89,9 +89,6 @@ + ret + + L(thread_start): +- cfi_startproc; +- /* Clearing frame pointer is insufficient, use CFI. */ +- cfi_undefined (rip); + /* Clear the frame pointer. The ABI suggests this be done, to mark + the outermost frame obviously. */ + xorl %ebp, %ebp +@@ -116,7 +113,6 @@ + /* Call exit with return value from function call. */ + movq %rax, %rdi + call HIDDEN_JUMPTARGET (_exit) +- cfi_endproc; + + cfi_startproc; + PSEUDO_END (BP_SYM (__clone)) --- glibc-2.7.orig/debian/patches/localedata/locale-eo_EO.diff +++ glibc-2.7/debian/patches/localedata/locale-eo_EO.diff @@ -0,0 +1,258 @@ +#! /bin/sh -e + +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Add Esperanto locale (eo_EO) +# DP: Related bugs: #78085 #233308 +# DP: Dpatch author: Ben Collins +# DP: Patch author: Robert Thomson and Edmund GRIMLEY +# DP: Upstream status: Not submitted +# DP: Status Details: +# DP: Date: 2001-03-23 + +if [ $# -ne 2 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch -d "$2" -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +Index: localedata/locales/eo +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ localedata/locales/eo 2007-10-25 23:25:57.000000000 -0400 +@@ -0,0 +1,216 @@ ++comment_char % ++escape_char / ++ ++% Esperanto language locale for ... ++% Edmund GRIMLEY EVANS ++ ++LC_IDENTIFICATION ++title "Esperanto locale" ++source "" ++address "" ++contact "" ++email "debian-esperanto@lists.debian.org" ++tel "" ++fax "" ++language "Esperanto" ++territory "" ++revision "draft" ++date "2002-07-04" ++% ++category "eo:2000";LC_IDENTIFICATION ++category "eo:2000";LC_CTYPE ++category "eo:2000";LC_COLLATE ++category "eo:2000";LC_TIME ++category "eo:2000";LC_NUMERIC ++category "eo:2000";LC_MONETARY ++category "eo:2000";LC_MESSAGES ++category "eo:2000";LC_PAPER ++category "eo:2000";LC_NAME ++category "eo:2000";LC_ADDRESS ++category "eo:2000";LC_TELEPHONE ++ ++END LC_IDENTIFICATION ++ ++LC_CTYPE ++copy "i18n" ++END LC_CTYPE ++ ++LC_COLLATE ++copy "iso14651_t1" ++ ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++ ++reorder-after ++ ++reorder-after ++ ++reorder-after ++ ++reorder-after ++ ++reorder-after ++ ++reorder-after ++ ++ ++reorder-after ++ ;;;IGNORE % Ĉ ++reorder-after ++ ;;;IGNORE % ĉ ++reorder-after ++ ;;;IGNORE % Äœ ++reorder-after ++ ;;;IGNORE % Ä ++reorder-after ++ ;;;IGNORE % Ĥ ++reorder-after ++ ;;;IGNORE % Ä¥ ++reorder-after ++ ;;;IGNORE % Ä´ ++reorder-after ++ ;;;IGNORE % ĵ ++reorder-after ++ ;;;IGNORE % Åœ ++reorder-after ++ ;;;IGNORE % Å ++reorder-after ++ ;;;IGNORE % Ŭ ++reorder-after ++ ;;;IGNORE % Å­ ++ ++reorder-end ++ ++END LC_COLLATE ++ ++LC_MONETARY ++int_curr_symbol "" % "EUR" ++currency_symbol "" % "EUR" ++% "" ne eblas en ISO-8859-3 ++mon_decimal_point "" ++mon_thousands_sep "" ++mon_grouping 3;3 ++positive_sign "" ++negative_sign "" ++int_frac_digits 2 ++frac_digits 2 ++p_cs_precedes 1 ++p_sep_by_space 1 ++n_cs_precedes 1 ++n_sep_by_space 1 ++p_sign_posn 1 ++n_sign_posn 1 ++END LC_MONETARY ++ ++LC_NUMERIC ++decimal_point "" ++thousands_sep "" ++grouping 0;0 ++END LC_NUMERIC ++ ++LC_TIME ++ ++% "dim";"lun";"mar";"mer";"ĵaÅ­";"ven";"sab" ++abday "";"";/ ++ "";"";/ ++ "";"";/ ++ "" ++ ++% "dimanĉo";"lundo";"mardo";"merkredo";"ĵaÅ­do";"vendredo";"sabato" ++day "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" ++ ++% "Jan";"Feb";"Mar";"Apr";"Maj";"Jun";"Jul";"AÅ­g";"Sep";"Okt";"Nov";"Dec" ++abmon "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" ++ ++% "Januaro";"Februaro";"Marto";"Aprilo";"Majo";"Junio"; ++% "Julio";"AÅ­gusto";"Septembro";"Oktobro";"Novembro";"Decembro" ++mon "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" ++ ++am_pm "";"" ++ ++% "%a %d %b %Y %T %z" ++d_t_fmt "" ++ ++% "%Y-%m-%d" ++d_fmt "" ++ ++% "%T" ++t_fmt "" ++ ++t_fmt_ampm "" ++ ++% date_fmt ? ++ ++END LC_TIME ++ ++LC_MESSAGES ++% "^[JjYy].*" ++yesexpr "" ++% "^[Nn].*" ++noexpr "" ++END LC_MESSAGES ++ ++LC_PAPER ++height 297 ++width 210 ++END LC_PAPER ++ ++LC_TELEPHONE ++% "+%c %a %l" ++tel_int_fmt "/ ++" ++% "00" ++int_select "" ++END LC_TELEPHONE ++ ++LC_MEASUREMENT ++measurement 1 ++END LC_MEASUREMENT ++ ++LC_NAME ++% "%d%t%g%t%m%t%f" ++name_fmt "/ ++" ++name_mr "" % "s-ro" ++name_mrs "" % "s-ino" ++name_ms "" % "s-ino" ++END LC_NAME ++ ++LC_ADDRESS ++% "%f%N%a%N%d%N%b%N%s %h %e %r%N%%z %T%N%c%N" ++postal_fmt "/ ++/ ++/ ++/ ++" ++% "Esperanto" ++lang_name "" ++lang_ab "" % "eo" ++lang_term "" % "epo" ++END LC_ADDRESS +Index: localedata/SUPPORTED +=================================================================== +--- localedata/SUPPORTED.orig 2007-10-25 23:25:57.000000000 -0400 ++++ localedata/SUPPORTED 2007-10-25 23:25:57.000000000 -0400 +@@ -133,6 +133,8 @@ + en_ZA/ISO-8859-1 \ + en_ZW.UTF-8/UTF-8 \ + en_ZW/ISO-8859-1 \ ++eo.UTF-8/UTF-8 \ ++eo/ISO-8859-3 \ + es_AR.UTF-8/UTF-8 \ + es_AR/ISO-8859-1 \ + es_BO.UTF-8/UTF-8 \ --- glibc-2.7.orig/debian/patches/localedata/locales_GB.diff +++ glibc-2.7/debian/patches/localedata/locales_GB.diff @@ -0,0 +1,38 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Add AM/PM strings to cy_GB and en_GB. +# DP: This patch has been rejected upstream but is in fedora-branch. +# DP: Related bugs: #240901 +# DP: Dpatch author: Denis Barbier +# DP: Patch author: taken from Fedora +# DP: Upstream status: not submitted +# DP: Date: 2006-02-16 + +--- localedata/locales/cy_GB.orig ++++ localedata/locales/cy_GB +@@ -248,8 +248,11 @@ + d_t_fmt "" + d_fmt "" + t_fmt "" +-am_pm "";"" +-t_fmt_ampm "" ++am_pm "";"" ++t_fmt_ampm "" ++date_fmt "/ ++/ ++" + END LC_TIME + + LC_MESSAGES +--- localedata/locales/en_GB.orig ++++ localedata/locales/en_GB +@@ -116,8 +116,8 @@ + d_t_fmt "" + d_fmt "" + t_fmt "" +-am_pm "";"" +-t_fmt_ampm "" ++am_pm "";"" ++t_fmt_ampm "" + date_fmt "/ + / + " --- glibc-2.7.orig/debian/patches/localedata/locale-de_CH.diff +++ glibc-2.7/debian/patches/localedata/locale-de_CH.diff @@ -0,0 +1,37 @@ +#! /bin/sh -e + +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Changing d_fmt from "%Y-%m-%d" to "%d.%m.%Y" +# DP: Related bugs: #27397 +# DP: Dpatch author: +# DP: Patch author: Alastair McKinstry +# DP: Upstream status: +# DP: Status Details: +# DP: Date: 2002-02-11 + +if [ $# -ne 2 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch -d "$2" -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + + +# append the patch here and adjust the -p? flag in the patch calls. +--- glibc-2.6.orig/localedata/locales/de_CH ++++ glibc-2.6/localedata/locales/de_CH +@@ -114,7 +114,7 @@ + "";/ + "" + d_t_fmt "" +-d_fmt "" ++d_fmt "" + t_fmt "" + am_pm "";"" + t_fmt_ampm "" --- glibc-2.7.orig/debian/patches/localedata/cy_GB-first_weekday.diff +++ glibc-2.7/debian/patches/localedata/cy_GB-first_weekday.diff @@ -0,0 +1,13 @@ +Index: pippi/localedata/locales/cy_GB +=================================================================== +--- pipo/localedata/locales/cy_GB.orig 2007-10-22 22:17:08.000000000 -0400 ++++ bipo/localedata/locales/cy_GB 2007-10-22 23:00:05.000000000 -0400 +@@ -253,6 +253,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES --- glibc-2.7.orig/debian/patches/localedata/fix-lang.diff +++ glibc-2.7/debian/patches/localedata/fix-lang.diff @@ -0,0 +1,39 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Fix lang_* fields in LC_ADDRESS +# DP: Related bugs: +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: Not submitted +# DP: Status Details: +# DP: Date: 2006-01-20 + +Index: localedata/locales/tr_TR +=================================================================== +--- localedata/locales/tr_TR.orig 2007-10-23 09:06:36.000000000 -0400 ++++ localedata/locales/tr_TR 2007-10-23 09:26:52.000000000 -0400 +@@ -1591,10 +1591,10 @@ + country_ab3 "" + % Turkish + lang_name "" +-% tr ++% tur + lang_term "" ++% tur ++lang_lib "" + % tr +-lang_lib "" +-%tr + lang_ab "" + END LC_ADDRESS +Index: localedata/locales/wal_ET +=================================================================== +--- localedata/locales/wal_ET.orig 2007-10-23 08:51:25.000000000 -0400 ++++ localedata/locales/wal_ET 2007-10-23 09:26:52.000000000 -0400 +@@ -110,7 +110,6 @@ + % country_car unknown + % country_isbn unknown, Need ISO 2108 + lang_name "" +-lang_ab "" + lang_term "" + lang_lib "" + --- glibc-2.7.orig/debian/patches/localedata/local-all-no-archive.diff +++ glibc-2.7/debian/patches/localedata/local-all-no-archive.diff @@ -0,0 +1,11 @@ +--- localedata/Makefile.orig ++++ localedata/Makefile +@@ -222,7 +222,7 @@ + echo -n `echo $$locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \ + echo -n '...'; \ + input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \ +- $(LOCALEDEF) --alias-file=../intl/locale.alias \ ++ $(LOCALEDEF) --alias-file=../intl/locale.alias --no-archive \ + -i locales/$$input -c -f charmaps/$$charset \ + $(addprefix --prefix=,$(install_root)) $$locale; \ + echo ' done'; \ --- glibc-2.7.orig/debian/patches/localedata/locale-es_CR.diff +++ glibc-2.7/debian/patches/localedata/locale-es_CR.diff @@ -0,0 +1,13 @@ +--- glibc-2.7.orig/localedata/locales/es_CR 30 Jul 2006 22:19:44 -0000 ++++ glibc-2.7/localedata/locales/es_CR 20 Feb 2008 07:00:28 -0000 +@@ -108,8 +108,8 @@ mon "" + d_fmt "" + t_fmt "" +-am_pm "";"" +-t_fmt_ampm "" ++am_pm "";"" ++t_fmt_ampm "" + date_fmt "/ + / + " --- glibc-2.7.orig/debian/patches/localedata/locale-se_NO.diff +++ glibc-2.7/debian/patches/localedata/locale-se_NO.diff @@ -0,0 +1,30 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Fix se_NO locale +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: Not submitted yet +# DP: Date: 2006-06-02 + +--- localedata/locales/se_NO.orig ++++ localedata/locales/se_NO +@@ -137,7 +137,7 @@ + ;;;IGNORE % ezh caron + + reorder-after +- ;;;IGNORE % EZH ++ ;;;IGNORE % EZH + ;;;IGNORE % EZH caron + + reorder-after +@@ -164,9 +164,10 @@ + reorder-after + ;;;IGNORE % Kcaron + +-reorder-after ++reorder-after + ;"";"";IGNORE % ß + ;;;IGNORE % 288 ++reorder-after + ;;;IGNORE % 405 + + --- glibc-2.7.orig/debian/patches/localedata/locale-eu_FR.diff +++ glibc-2.7/debian/patches/localedata/locale-eu_FR.diff @@ -0,0 +1,217 @@ +#! /bin/sh -e + +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: #257840: locales: Please add the eu_FR locale +# DP: Related bugs: #257840 +# DP: Dpatch author: GOTO Masanori +# DP: Patch author: Christian Perrier +# DP: Upstream status: Not submitted +# DP: Status Details: sending upstream +# DP: Date: 2004-07-31 + +PATCHLEVEL=0 + +if [ $# -ne 2 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch -d "$2" -f --no-backup-if-mismatch -p$PATCHLEVEL < $0;; + -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p$PATCHLEVEL < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# append the patch here and adjust the -p? flag in the patch calls. +Index: localedata/locales/eu_FR +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ localedata/locales/eu_FR 2007-10-25 23:26:43.000000000 -0400 +@@ -0,0 +1,83 @@ ++comment_char % ++escape_char / ++% ++% Basque Language Locale for France ++% Language: eu ++% Territory: FR ++% Revision: 1.0 ++% Date: 2004-06-24 ++% Users: general ++% Charset: ISO-8859-1 ++% Distribution and use is free, also ++% for commercial purposes. ++ ++LC_IDENTIFICATION ++title "Basque locale for France" ++source "Christian Perrier and the Debian Project" ++address "" ++contact "Christian Perrier" ++email "bubulle@debian.org" ++tel "" ++fax "" ++language "Basque" ++territory "France" ++revision "1.0" ++date "2004-06-24" ++% ++category "eu_FR:2000";LC_IDENTIFICATION ++category "eu_FR:2000";LC_CTYPE ++category "eu_FR:2000";LC_COLLATE ++category "eu_FR:2000";LC_TIME ++category "eu_FR:2000";LC_NUMERIC ++category "eu_FR:2000";LC_MONETARY ++category "eu_FR:2000";LC_MESSAGES ++category "eu_FR:2000";LC_PAPER ++category "eu_FR:2000";LC_NAME ++category "eu_FR:2000";LC_ADDRESS ++category "eu_FR:2000";LC_TELEPHONE ++ ++END LC_IDENTIFICATION ++ ++LC_COLLATE ++copy "iso14651_t1" ++END LC_COLLATE ++ ++LC_CTYPE ++copy "i18n" ++END LC_CTYPE ++ ++LC_MESSAGES ++copy "eu_ES" ++END LC_MESSAGES ++ ++LC_MONETARY ++copy "fr_FR" ++END LC_MONETARY ++ ++LC_NUMERIC ++copy "fr_FR" ++END LC_NUMERIC ++ ++LC_TIME ++copy "eu_ES" ++END LC_TIME ++ ++LC_PAPER ++copy "fr_FR" ++END LC_PAPER ++ ++LC_TELEPHONE ++copy "fr_FR" ++END LC_TELEPHONE ++ ++LC_MEASUREMENT ++copy "fr_FR" ++END LC_MEASUREMENT ++ ++LC_NAME ++copy "eu_ES" ++END LC_NAME ++ ++LC_ADDRESS ++copy "fr_FR" ++END LC_ADDRESS +Index: localedata/SUPPORTED +=================================================================== +--- localedata/SUPPORTED.orig 2007-10-25 23:25:57.000000000 -0400 ++++ localedata/SUPPORTED 2007-10-25 23:26:43.000000000 -0400 +@@ -182,6 +182,9 @@ + eu_ES.UTF-8/UTF-8 \ + eu_ES/ISO-8859-1 \ + eu_ES@euro/ISO-8859-15 \ ++eu_FR.UTF-8/UTF-8 \ ++eu_FR/ISO-8859-1 \ ++eu_FR@euro/ISO-8859-15 \ + fa_IR/UTF-8 \ + fi_FI.UTF-8/UTF-8 \ + fi_FI/ISO-8859-1 \ +Index: localedata/locales/eu_FR@euro +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ localedata/locales/eu_FR@euro 2007-10-25 23:26:43.000000000 -0400 +@@ -0,0 +1,83 @@ ++comment_char % ++escape_char / ++% ++% Basque Language Locale for France ++% Language: eu ++% Territory: FR ++% Revision: 1.0 ++% Date: 2004-06-24 ++% Users: general ++% Charset: ISO-8859-15 ++% Distribution and use is free, also ++% for commercial purposes. ++ ++LC_IDENTIFICATION ++title "Basque locale for France" ++source "Christian Perrier and the Debian Project" ++address "" ++contact "Christian Perrier" ++email "bubulle@debian.org" ++tel "" ++fax "" ++language "Basque" ++territory "France" ++revision "1.0" ++date "2004-06-24" ++% ++category "eu_FR:2000";LC_IDENTIFICATION ++category "eu_FR:2000";LC_CTYPE ++category "eu_FR:2000";LC_COLLATE ++category "eu_FR:2000";LC_TIME ++category "eu_FR:2000";LC_NUMERIC ++category "eu_FR:2000";LC_MONETARY ++category "eu_FR:2000";LC_MESSAGES ++category "eu_FR:2000";LC_PAPER ++category "eu_FR:2000";LC_NAME ++category "eu_FR:2000";LC_ADDRESS ++category "eu_FR:2000";LC_TELEPHONE ++ ++END LC_IDENTIFICATION ++ ++LC_COLLATE ++copy "iso14651_t1" ++END LC_COLLATE ++ ++LC_CTYPE ++copy "i18n" ++END LC_CTYPE ++ ++LC_MESSAGES ++copy "eu_ES" ++END LC_MESSAGES ++ ++LC_MONETARY ++copy "fr_FR" ++END LC_MONETARY ++ ++LC_NUMERIC ++copy "fr_FR" ++END LC_NUMERIC ++ ++LC_TIME ++copy "eu_ES" ++END LC_TIME ++ ++LC_PAPER ++copy "fr_FR" ++END LC_PAPER ++ ++LC_TELEPHONE ++copy "fr_FR" ++END LC_TELEPHONE ++ ++LC_MEASUREMENT ++copy "fr_FR" ++END LC_MEASUREMENT ++ ++LC_NAME ++copy "eu_ES" ++END LC_NAME ++ ++LC_ADDRESS ++copy "fr_FR" ++END LC_ADDRESS --- glibc-2.7.orig/debian/patches/localedata/locale-zh_TW.diff +++ glibc-2.7/debian/patches/localedata/locale-zh_TW.diff @@ -0,0 +1,21 @@ +See BTS #352600. +Not submitted yet. + +--- localedata/locales/zh_TW.orig ++++ localedata/locales/zh_TW +@@ -107,13 +107,13 @@ + "";"";"" + + % d_t_fmt: "%Y%m%d (%A) %H
%M%S" +-d_t_fmt "/ ++d_t_fmt "/ + / + / + / + " + +-d_fmt "/ ++d_fmt "/ + " + + t_fmt "" --- glibc-2.7.orig/debian/patches/localedata/locale-ks_IN.diff +++ glibc-2.7/debian/patches/localedata/locale-ks_IN.diff @@ -0,0 +1,215 @@ +--- localedata/SUPPORTED.orig 2007-12-23 11:30:20.000000000 +0100 ++++ localedata/SUPPORTED 2007-12-23 11:32:54.000000000 +0100 +@@ -266,6 +266,7 @@ + kn_IN/UTF-8 \ + ko_KR.UTF-8/UTF-8 \ + ko_KR.EUC-KR/EUC-KR \ ++ks_IN/UTF-8 \ + ku_TR.UTF-8/UTF-8 \ + ku_TR/ISO-8859-9 \ + kw_GB.UTF-8/UTF-8 \ +--- /dev/null 2007-12-23 11:14:59.296073602 +0100 ++++ localedata/locales/ks_IN 2007-12-23 11:31:16.000000000 +0100 +@@ -0,0 +1,202 @@ ++comment_char % ++escape_char / ++% Kashmiri language locale for India. ++% Contributed by Rakesh Pandit ++ ++LC_IDENTIFICATION ++title "Kashmiri language locale for India" ++source "" ++address "" ++contact "" ++email "ks-gnome-trans-commits@lists.code.indlinux.net" ++tel "" ++fax "" ++language "Kashmiri" ++territory "India" ++revision "0.1" ++date "2007-11-17" ++% ++category "ks_IN:2007";LC_IDENTIFICATION ++category "ks_IN:2007";LC_CTYPE ++category "ks_IN:2007";LC_COLLATE ++category "ks_IN:2007";LC_TIME ++category "ks_IN:2007";LC_NUMERIC ++category "ks_IN:2007";LC_MONETARY ++category "ks_IN:2007";LC_MESSAGES ++category "ks_IN:2007";LC_PAPER ++category "ks_IN:2007";LC_NAME ++category "ks_IN:2007";LC_ADDRESS ++category "ks_IN:2007";LC_TELEPHONE ++ ++END LC_IDENTIFICATION ++ ++LC_CTYPE ++copy "i18n" ++ ++translit_start ++include "translit_combining";"" ++translit_end ++END LC_CTYPE ++ ++LC_COLLATE ++ ++% Copy the template from ISO/IEC 14651 ++copy "iso14651_t1" ++ ++END LC_COLLATE ++ ++LC_MONETARY ++% ++int_curr_symbol "" ++currency_symbol "" ++mon_decimal_point "" ++mon_thousands_sep "" ++mon_grouping 3 ++positive_sign "" ++negative_sign "" ++int_frac_digits 2 ++frac_digits 2 ++p_cs_precedes 1 ++p_sep_by_space 1 ++n_cs_precedes 1 ++n_sep_by_space 1 ++p_sign_posn 1 ++n_sign_posn 1 ++% ++END LC_MONETARY ++ ++ ++LC_NUMERIC ++% This is the POSIX Locale definition for the LC_NUMERIC category. ++% ++decimal_point "" ++thousands_sep "" ++grouping 3 ++% ++END LC_NUMERIC ++ ++ ++LC_TIME ++% This is the POSIX Locale definition for the LC_TIME category. ++% ++% Abbreviated weekday names (%a) ++abday "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" ++% ++% Full weekday names (%A) ++day "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" ++% ++% Abbreviated month names (%b) ++abmon "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";"";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" ++% ++% Full month names (%B) ++mon "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";"";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" ++% ++% Equivalent of AM PM ++am_pm "";/ ++ "" ++% ++% Appropriate date and time representation ++% %A %d %b %Y%I:%M:%S %Z ++d_t_fmt "/ ++/ ++" ++% ++% Appropriate date representation ++% %A %d %b %Y ++d_fmt "/ ++" ++% ++% Appropriate time representation ++% %I:%M:%S %Z ++t_fmt "/ ++" ++% ++% Appropriate 12 h time representation (%r) ++t_fmt_ampm "/ ++" ++% ++date_fmt "/ ++/ ++" ++% ++first_weekday 1 ++END LC_TIME ++ ++ ++LC_MESSAGES ++yesexpr "" ++noexpr "" ++END LC_MESSAGES ++ ++ ++LC_PAPER ++height 297 ++width 210 ++ ++END LC_PAPER ++ ++ ++LC_NAME ++name_fmt "/ ++" ++name_gen "" ++name_mr "" ++name_mrs "" ++name_miss "" ++name_ms "" ++ ++END LC_NAME ++ ++ ++LC_ADDRESS ++postal_fmt "/ ++" ++ ++country_ab2 "" ++country_ab3 "" ++country_num 356 ++END LC_ADDRESS ++ ++ ++LC_TELEPHONE ++tel_int_fmt "" ++int_prefix "" ++int_select "" ++END LC_TELEPHONE ++ ++ ++LC_MEASUREMENT ++measurement 1 ++END LC_MEASUREMENT --- glibc-2.7.orig/debian/patches/localedata/fr_CH-first_weekday.diff +++ glibc-2.7/debian/patches/localedata/fr_CH-first_weekday.diff @@ -0,0 +1,10 @@ +--- glibc-2.7.orig/localedata/locales/fr_CH ++++ glibc-2.7/localedata/locales/fr_CH +@@ -107,6 +107,7 @@ + / + / + " ++first_weekday 2 + END LC_TIME + + LC_PAPER --- glibc-2.7.orig/debian/patches/localedata/fr_LU-first_weekday.diff +++ glibc-2.7/debian/patches/localedata/fr_LU-first_weekday.diff @@ -0,0 +1,10 @@ +--- glibc-2.7.orig/localedata/locales/fr_LU ++++ glibc-2.7/localedata/locales/fr_LU +@@ -122,6 +122,7 @@ + / + / + " ++first_weekday 2 + END LC_TIME + + LC_PAPER --- glibc-2.7.orig/debian/patches/localedata/fo_FO-date_fmt.diff +++ glibc-2.7/debian/patches/localedata/fo_FO-date_fmt.diff @@ -0,0 +1,33 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Fix d_t_fmt and date_fmt in fo_FO +# DP: Related bugs: #307194 +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Jacob Sparre Andersen +# DP: Upstream status: not submitted +# DP: Date: 2006-01-10 + +--- glibc-2.6.orig/localedata/locales/fo_FO ++++ glibc-2.6/localedata/locales/fo_FO +@@ -95,14 +95,18 @@ + "";/ + "";/ + "" +-d_t_fmt "" ++d_t_fmt "/ ++/ ++" + d_fmt "" + t_fmt "" + am_pm "";"" + t_fmt_ampm "" +-date_fmt "/ +-/ +-" ++date_fmt "/ ++/ ++/ ++/ ++" + END LC_TIME + + LC_MESSAGES --- glibc-2.7.orig/debian/patches/localedata/locale-ku_TR.diff +++ glibc-2.7/debian/patches/localedata/locale-ku_TR.diff @@ -0,0 +1,204 @@ +#! /bin/sh -e + +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Please add Kurdish locale +# DP: Related bugs: BZ870 +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Kader DILSIZ, Pablo Saratxaga +# DP: Upstream status: Version 0.1 submitted in the original bugreport +# DP: has been committed, this new version has been sent just after. +# DP: Date: 2006-01-06 + +PATCHLEVEL=0 + +if [ $# -ne 2 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch -d "$2" -f --no-backup-if-mismatch -p$PATCHLEVEL < $0;; + -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p$PATCHLEVEL < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# append the patch here and adjust the -p? flag in the patch calls. +--- localedata/locales/ku_TR.orig ++++ localedata/locales/ku_TR +@@ -16,6 +16,8 @@ + % Distribution and use is free, also + % for commercial purposes. + % History: ++% 0.2 2005-04-24 Erdal Ronah ++% Fix LC_CTYPE and LC_NAME sections. Remove dotless i from LC_COLLATE + + LC_IDENTIFICATION + title "Kurdish (latin) locale for Turkey" +@@ -27,8 +29,8 @@ + fax "" + language "Kurdish" + territory "Turkey" +-revision "0.1" +-date "2003-07-27" ++revision "0.2" ++date "2005-04-24" + % + category "ku_TR:2000";LC_IDENTIFICATION + category "ku_TR:2000";LC_CTYPE +@@ -46,7 +48,7 @@ + END LC_IDENTIFICATION + + LC_CTYPE +-copy "tr_TR" ++copy "i18n" + END LC_CTYPE + + LC_COLLATE +@@ -56,7 +58,6 @@ + + collating-symbol + collating-symbol > +-collating-symbol + collating-symbol > + collating-symbol + collating-symbol > +@@ -65,9 +66,7 @@ + + reorder-after + > +-reorder-after +- +- ++reorder-after + > + reorder-after + +@@ -84,13 +83,9 @@ + reorder-after + >;;;IGNORE + +-reorder-after +- ;;;IGNORE +- ;;;IGNORE ++reorder-after + >;;;IGNORE +-reorder-after +- ;;;IGNORE +- ;;;IGNORE ++reorder-after + >;;;IGNORE + + reorder-after +@@ -116,35 +111,35 @@ + END LC_NUMERIC + + LC_TIME +-abday "";"";/ +- "";"";/ +- "";"";/ +- "" +-day "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++abday "";"";/ ++ "";"";/ ++ "";"";/ ++ "" ++day "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + abmon "";"";/ + "";"";/ + "";"";/ + "";"";/ + "";"";/ + "";"" +-mon "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "";/ +- "" ++mon "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" + % format: %A %d %B %Y %T %Z + d_t_fmt "" + % format: %d/%m/%Y +@@ -182,15 +177,15 @@ + name_fmt "/ + " + % TODO +-% Sayýn +-name_gen "" ++% Birz ++name_gen "" + % "M." +-name_mr "" +-% "Jne" +-name_mrs "" +-name_ms "" +-% "Kc,k" +-name_miss "" ++name_mr "" ++% "Birz" ++name_mrs "" ++name_ms "" ++% "Birz" ++name_miss "" + END LC_NAME + + LC_ADDRESS +@@ -199,17 +194,16 @@ + / + / + " +-% TODO +-country_name "" +-country_post "TR" +-country_ab2 "TR" +-country_ab3 "TUR" ++country_name "" ++country_post "" ++country_ab2 "" ++country_ab3 "" + country_num 792 + country_isbn 975 +-country_car "TR" +-% "kurdi" +-lang_name "" +-lang_ab "ku" +-lang_term "kur" +-lang_lib "kur" ++country_car "" ++% "kurd" ++lang_name "" ++lang_ab "" ++lang_term "" ++lang_lib "" + END LC_ADDRESS --- glibc-2.7.orig/debian/patches/localedata/cvs-locale-ug_CN.diff +++ glibc-2.7/debian/patches/localedata/cvs-locale-ug_CN.diff @@ -0,0 +1,47 @@ +Index: glibc-2.7/localedata/locales/ug_CN +=================================================================== +--- glibc-2.7.orig/localedata/locales/ug_CN 2007-11-07 21:03:57.000000000 -0500 ++++ glibc-2.7/localedata/locales/ug_CN 2007-11-07 21:10:41.000000000 -0500 +@@ -2,7 +2,7 @@ + comment_char % + % + % Uyghur language locale for China +-% Source: ++% Source: + % Contact: Pablo Saratxaga + % Email: pablo@mandriva.com + % Language: ug +@@ -56,8 +56,8 @@ + % U+0224, U+0225 are also similar to ztail and are sorted the same. + % + % new arabic writting uses some extra letters too. +-% all vowels are noted, and in beginning of the word there is a +-% "yeh with hamza" (U+0626) in the front; should it be ignored ++% all vowels are noted, and in beginning of the word there is a ++% "yeh with hamza" (U+0626) in the front; should it be ignored + % in sorting? + % + % arabic old latin turkic (from azeri, which has same phonemes) +@@ -107,7 +107,7 @@ + collating-symbol + collating-symbol + collating-symbol +-collating-symbol ++collating-symbol + + collating-element from "" + collating-element from "" +@@ -238,7 +238,7 @@ + ;;;IGNORE + ;;;IGNORE + ;;;IGNORE +- ++ + reorder-end + + END LC_COLLATE +@@ -330,4 +330,3 @@ + % FIXME + copy "en_DK" + END LC_ADDRESS +- --- glibc-2.7.orig/debian/patches/localedata/tailor-iso14651_t1.diff +++ glibc-2.7/debian/patches/localedata/tailor-iso14651_t1.diff @@ -0,0 +1,17474 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Rewrite collation rules to include iso14651_t1 +# DP: es_ES: BZ664, by Pablo Saratxaga +# DP: da_DK fi_FI nb_NO: BZ672, by Denis Barbier +# DP: ar_SA cs_CZ et_EE hr_HR hsb_DE lt_LT pl_PL sl_SI tr_TR: not +# DP: submitted yet. +# DP: Related bugs: BZ664 BZ672 +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier, Pablo Saratxaga +# DP: Upstream status: BZ664 BZ672 +# DP: Date: 2006-01-18 + + +2007-05-25 Pierre Habouzit + + Loosy update for glibc 2.6. + +2005-01-16 Denis Barbier + + [BZ #672] + Replace current collation rules by including iso14651_t1 and adding + extra rules if needed. There should be no noticeable changes in + sorted text. only ligatures and ignoreable characters have modified + weights. + * locales/da_DK: Likewise. + * locales/fi_FI: Likewise. + * locales/nb_NO: Likewise. + +Index: localedata/locales/da_DK +=================================================================== +--- localedata/locales/da_DK.orig 2007-10-23 08:51:25.000000000 -0400 ++++ localedata/locales/da_DK 2007-10-23 09:06:36.000000000 -0400 +@@ -81,34 +81,37 @@ + % and are treated as in Danish + reorder-after + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE ++reorder-after ++ ;;;IGNORE + ;;;IGNORE + + % is a separate letter in Danish + reorder-after + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + % is a separate letter in Danish + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + % is a separate letter in Danish + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE + ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE + ;;;IGNORE + ;;;IGNORE + +@@ -116,6 +119,7 @@ + % removed from latest iso14651 tables. + reorder-after + "";"";"";IGNORE ++reorder-after + "";"";"";IGNORE + + reorder-after +@@ -123,8 +127,9 @@ + + reorder-after + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE ++reorder-after ++ ;;;IGNORE + ;;;IGNORE + + reorder-end +Index: localedata/locales/es_ES +=================================================================== +--- localedata/locales/es_ES.orig 2006-10-12 17:49:03.000000000 -0400 ++++ localedata/locales/es_ES 2007-10-23 09:06:36.000000000 -0400 +@@ -11,8 +11,8 @@ + % Fax: +45 - 33256543 + % Language: es + % Territory: ES +-% Revision: 4.4 +-% Date: 1997-03-18 ++% Revision: 4.5 ++% Date: 2004-06-23 + % Application: general + % Users: general + % Repertoiremap: mnemonic.ds +@@ -48,2067 +48,19 @@ + END LC_IDENTIFICATION + + LC_COLLATE ++copy "iso14651_t1" + +-% Base collation scheme: 1994-03-22 ++collating-symbol + +-% Ordering algorithm: +-% 1. Spaces and hyphen (but not soft +-% hyphen) before punctuation +-% characters, punctuation characters +-% before numbers, +-% numbers before letters. +-% 2. Letters with diacritical marks are +-% members of equivalence classes +-% 3. A distinction is made with regards +-% to case as noted below. +-% 4. Special characters are ignored +-% when comparing letters, but then +-% they are considered +-% 5. The alphabets are sorted in order +-% of first appearance in ISO 10646: +-% Latin, Greek, Cyrillic, etc. +-% +-% According to Greek specifications, +-% the steps 2. and 3. above are reversed +-% for the Greek script +- +-% collating symbols +- +-% The collating symbol naming is +-% mostly taken from ISO 10646-1, +-% for example the case and accent +-% names are from this standard. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% and +-% are for cases like Danish +-% and Spanish being treated +-% as one letter. +- +-% The ...... collating +-% symbols have defined weights as +-% the last character in a group of +-% Latin letters. They are used +-% to specify deltas by locales using +-% a locale as the default ordering +-% and by "replace-after" statements +-% specifying the changed placement +-% in an ordering of a character. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% letter;accent;case;specials +- +-order_start forward;backward/ +- ;forward;position +- +-% or letters first: +- +- +- +- +- +- +-% Accents: +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ;;;IGNORE +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-<"=> IGNORE;IGNORE;IGNORE;<"=> +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-UNDEFINED IGNORE;IGNORE;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- +-% Arabic collating +- +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- +-% katakana/hiragana sorting +-% base is katakana, as this is present in most charsets +-% normal before voiced before semi-voiced +-% small vocals before normal vocals +-% katakana before hiragana ++reorder-after ++ + +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE + +-order_end ++reorder-end + + END LC_COLLATE + +Index: localedata/locales/fi_FI +=================================================================== +--- localedata/locales/fi_FI.orig 2007-02-17 23:34:22.000000000 -0500 ++++ localedata/locales/fi_FI 2007-10-23 09:06:36.000000000 -0400 +@@ -63,60 +63,65 @@ + + + +-reorder-after ++reorder-after + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE + ;;;IGNORE + +-reorder-after ++reorder-after + ;;; +- ;;; + ;;; +- ;;; + ;;; +- ;;; + ;;; +- ;;; + ;;; +- ;;; + ;;; +- ;;; + ;;; +- ;;; + ;;; ++reorder-after ++ ;;; ++ ;;; ++ ;;; ++ ;;; ++ ;;; ++ ;;; ++ ;;; + ;;; + + reorder-after + ;;;IGNORE ++reorder-after + ;;;IGNORE + + % Present in iso14651_t1, but these definitions seem to have been + % removed from latest iso14651 tables. +-reorder-after ++reorder-after + "";"";"";IGNORE ++reorder-after + "";"";"";IGNORE + + reorder-after + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE ++reorder-after ++ ;;;IGNORE + ;;;IGNORE + + reorder-end +Index: localedata/locales/ar_SA +=================================================================== +--- localedata/locales/ar_SA.orig 2007-10-23 08:51:24.000000000 -0400 ++++ localedata/locales/ar_SA 2007-10-23 09:06:36.000000000 -0400 +@@ -43,223 +43,8 @@ + % Set up the LC_COLLATE category + + LC_COLLATE +- +- +-order_start forward; forward +- +- +- +- +- +- +- +- +- +- +- +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- ; +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- IGNORE +- IGNORE +- IGNORE +- IGNORE +- IGNORE +- IGNORE +- IGNORE +- IGNORE +- IGNORE +-order_end +- +- ++% Copy the template from ISO/IEC 14651 ++copy "iso14651_t1" + END LC_COLLATE + + +Index: localedata/locales/et_EE +=================================================================== +--- localedata/locales/et_EE.orig 2007-10-23 08:51:25.000000000 -0400 ++++ localedata/locales/et_EE 2007-10-23 09:06:36.000000000 -0400 +@@ -55,2067 +55,48 @@ + END LC_IDENTIFICATION + + LC_COLLATE ++define UPPERCASE_FIRST ++copy "iso14651_t1" + +-% Base collation scheme: 1994-03-22 ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++ ++reorder-after ++ ++ ++ ++reorder-after ++ ++ ++ ++ ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE + +-% Ordering algorithm: +-% 1. Spaces and hyphen (but not soft +-% hyphen) before punctuation +-% characters, punctuation characters +-% before numbers, +-% numbers before letters. +-% 2. Letters with diacritical marks are +-% members of equivalence classes +-% 3. A distinction is made with regards +-% to case as noted below. +-% 4. Special characters are ignored +-% when comparing letters, but then +-% they are considered +-% 5. The alphabets are sorted in order +-% of first appearance in ISO 10646: +-% Latin, Greek, Cyrillic, etc. +-% +-% According to Greek specifications, +-% the steps 2. and 3. above are reversed +-% for the Greek script +- +-% collating symbols +- +-% The collating symbol naming is +-% mostly taken from ISO 10646-1, +-% for example the case and accent +-% names are from this standard. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% and +-% are for cases like Danish +-% and Spanish being treated +-% as one letter. +- +-% The ...... collating +-% symbols have defined weights as +-% the last character in a group of +-% Latin letters. They are used +-% to specify deltas by locales using +-% a locale as the default ordering +-% and by "replace-after" statements +-% specifying the changed placement +-% in an ordering of a character. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% letter;accent;case;specials +- +-order_start forward;backward/ +- ;forward;position +- +-% or letters first: +- +- +- +- +- +- +-% Accents: +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ;;;IGNORE +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-<"=> IGNORE;IGNORE;IGNORE;<"=> +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-UNDEFINED IGNORE;IGNORE;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;; +- ;; +- ;; +- ;; +- ;; +- ;; +- ;; +- ;; +- ;; +- ;; +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;;; +- ;; +- ;; +- ;; +- ;; +- ;; +- ;; +- ;; +- ;; +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- +-% Arabic collating +- +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- +-% katakana/hiragana sorting +-% base is katakana, as this is present in most charsets +-% normal before voiced before semi-voiced +-% small vocals before normal vocals +-% katakana before hiragana +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +-order_end ++reorder-end + + END LC_COLLATE + +Index: localedata/locales/hr_HR +=================================================================== +--- localedata/locales/hr_HR.orig 2007-10-23 08:51:24.000000000 -0400 ++++ localedata/locales/hr_HR 2007-10-23 09:06:36.000000000 -0400 +@@ -48,10 +48,25 @@ + END LC_IDENTIFICATION + + LC_COLLATE +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" ++copy "iso14651_t1" ++ ++collating-symbol ++collating-symbol ++ ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++ ++collating-symbol ++collating-symbol ++collating-symbol ++ ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" + collating-element from "" + collating-element from "" + collating-element from "" +@@ -61,2078 +76,71 @@ + collating-element from "" + collating-element from "" + +-% Base collation scheme: 1994-03-22 +- +-% Ordering algorithm: +-% 1. Spaces and hyphen (but not soft +-% hyphen) before punctuation +-% characters, punctuation characters +-% before numbers, +-% numbers before letters. +-% 2. Letters with diacritical marks are +-% members of equivalence classes +-% 3. A distinction is made with regards +-% to case as noted below. +-% 4. Special characters are ignored +-% when comparing letters, but then +-% they are considered +-% 5. The alphabets are sorted in order +-% of first appearance in ISO 10646: +-% Latin, Greek, Cyrillic, etc. +-% +-% According to Greek specifications, +-% the steps 2. and 3. above are reversed +-% for the Greek script +- +-% collating symbols +- +-% The collating symbol naming is +-% mostly taken from ISO 10646-1, +-% for example the case and accent +-% names are from this standard. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% and +-% are for cases like Danish +-% and Spanish being treated +-% as one letter. +- +-% The ...... collating +-% symbols have defined weights as +-% the last character in a group of +-% Latin letters. They are used +-% to specify deltas by locales using +-% a locale as the default ordering +-% and by "replace-after" statements +-% specifying the changed placement +-% in an ordering of a character. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% letter;accent;case;specials +- +-order_start forward;backward/ +- ;forward;position +- +-% or letters first: +- +- +- +- +- +- +-% Accents: +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ;;;IGNORE +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-<"=> IGNORE;IGNORE;IGNORE;<"=> +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-UNDEFINED IGNORE;IGNORE;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- +-% Arabic collating +- +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- +-% katakana/hiragana sorting +-% base is katakana, as this is present in most charsets +-% normal before voiced before semi-voiced +-% small vocals before normal vocals +-% katakana before hiragana +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE ++reorder-after ++ ++ ++ ++reorder-after ++ ++ ++ ++reorder-after ++ ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE + +-order_end ++reorder-end + + END LC_COLLATE + +Index: localedata/locales/hsb_DE +=================================================================== +--- localedata/locales/hsb_DE.orig 2007-10-23 08:51:24.000000000 -0400 ++++ localedata/locales/hsb_DE 2007-10-23 09:06:36.000000000 -0400 +@@ -34,7 +34,14 @@ + + END LC_IDENTIFICATION + ++LC_CTYPE ++copy "i18n" ++END LC_CTYPE ++ + LC_COLLATE ++% Copy the template from ISO/IEC 14651 ++copy "iso14651_t1" ++ + collating-element from "" + collating-element from "" + collating-element from "" +@@ -44,2081 +51,122 @@ + collating-element from "" + collating-element from "" + +-% Base collation scheme: 1994-03-22 ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++ ++collating-symbol ++collating-symbol ++ ++reorder-after ++ ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++% Is oacute really used? ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE + +-% Ordering algorithm: +-% 1. Spaces and hyphen (but not soft +-% hyphen) before punctuation +-% characters, punctuation characters +-% before numbers, +-% numbers before letters. +-% 2. Letters with diacritical marks are +-% members of equivalence classes +-% 3. A distinction is made with regards +-% to case as noted below. +-% 4. Special characters are ignored +-% when comparing letters, but then +-% they are considered +-% 5. The alphabets are sorted in order +-% of first appearance in ISO 10646: +-% Latin, Greek, Cyrillic, etc. +-% +-% According to Greek specifications, +-% the steps 2. and 3. above are reversed +-% for the Greek script +- +-% collating symbols +- +-% The collating symbol naming is +-% mostly taken from ISO 10646-1, +-% for example the case and accent +-% names are from this standard. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% and +-% are for cases like Danish +-% and Spanish being treated +-% as one letter. +- +-% The ...... collating +-% symbols have defined weights as +-% the last character in a group of +-% Latin letters. They are used +-% to specify deltas by locales using +-% a locale as the default ordering +-% and by "replace-after" statements +-% specifying the changed placement +-% in an ordering of a character. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% letter;accent;case;specials +- +-order_start forward;backward/ +- ;forward;position +- +-% or letters first: +- +- +- +- +- +- +-% Accents: +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ;;;IGNORE +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-<"=> IGNORE;IGNORE;IGNORE;<"=> +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-UNDEFINED IGNORE;IGNORE;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- +-% Arabic collating +- +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- +-% katakana/hiragana sorting +-% base is katakana, as this is present in most charsets +-% normal before voiced before semi-voiced +-% small vocals before normal vocals +-% katakana before hiragana +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +-order_end ++reorder-end + + END LC_COLLATE + +-LC_CTYPE +-copy "i18n" +-END LC_CTYPE +- + LC_MESSAGES + yesexpr "" + noexpr "" +Index: localedata/locales/lt_LT +=================================================================== +--- localedata/locales/lt_LT.orig 2007-10-23 08:51:24.000000000 -0400 ++++ localedata/locales/lt_LT 2007-10-23 09:06:36.000000000 -0400 +@@ -58,2067 +58,13 @@ + END LC_IDENTIFICATION + + LC_COLLATE ++define UPPERCASE_FIRST ++copy "iso14651_t1" + +-% Base collation scheme: 1994-03-22 ++reorder-after ++ + +-% Ordering algorithm: +-% 1. Spaces and hyphen (but not soft +-% hyphen) before punctuation +-% characters, punctuation characters +-% before numbers, +-% numbers before letters. +-% 2. Letters with diacritical marks are +-% members of equivalence classes +-% 3. A distinction is made with regards +-% to case as noted below. +-% 4. Special characters are ignored +-% when comparing letters, but then +-% they are considered +-% 5. The alphabets are sorted in order +-% of first appearance in ISO 10646: +-% Latin, Greek, Cyrillic, etc. +-% +-% According to Greek specifications, +-% the steps 2. and 3. above are reversed +-% for the Greek script +- +-% collating symbols +- +-% The collating symbol naming is +-% mostly taken from ISO 10646-1, +-% for example the case and accent +-% names are from this standard. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% and +-% are for cases like Danish +-% and Spanish being treated +-% as one letter. +- +-% The ...... collating +-% symbols have defined weights as +-% the last character in a group of +-% Latin letters. They are used +-% to specify deltas by locales using +-% a locale as the default ordering +-% and by "replace-after" statements +-% specifying the changed placement +-% in an ordering of a character. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% letter;accent;case;specials +- +-order_start forward;backward/ +- ;forward;position +- +-% or letters first: +- +- +- +- +- +- +-% Accents: +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ;;;IGNORE +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-<"=> IGNORE;IGNORE;IGNORE;<"=> +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-UNDEFINED IGNORE;IGNORE;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- +-% Arabic collating +- +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- +-% katakana/hiragana sorting +-% base is katakana, as this is present in most charsets +-% normal before voiced before semi-voiced +-% small vocals before normal vocals +-% katakana before hiragana +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +-order_end ++reorder-end + + END LC_COLLATE + +Index: localedata/locales/pl_PL +=================================================================== +--- localedata/locales/pl_PL.orig 2007-10-23 08:51:25.000000000 -0400 ++++ localedata/locales/pl_PL 2007-10-23 09:06:36.000000000 -0400 +@@ -48,2067 +48,88 @@ + END LC_IDENTIFICATION + + LC_COLLATE ++copy "iso14651_t1" + +-% Base collation scheme: 1994-03-22 ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++ ++reorder-after ++ ;IGNORE;; ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE + +-% Ordering algorithm: +-% 1. Spaces and hyphen (but not soft +-% hyphen) before punctuation +-% characters, punctuation characters +-% before numbers, +-% numbers before letters. +-% 2. Letters with diacritical marks are +-% members of equivalence classes +-% 3. A distinction is made with regards +-% to case as noted below. +-% 4. Special characters are ignored +-% when comparing letters, but then +-% they are considered +-% 5. The alphabets are sorted in order +-% of first appearance in ISO 10646: +-% Latin, Greek, Cyrillic, etc. +-% +-% According to Greek specifications, +-% the steps 2. and 3. above are reversed +-% for the Greek script +- +-% collating symbols +- +-% The collating symbol naming is +-% mostly taken from ISO 10646-1, +-% for example the case and accent +-% names are from this standard. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% and +-% are for cases like Danish +-% and Spanish being treated +-% as one letter. +- +-% The ...... collating +-% symbols have defined weights as +-% the last character in a group of +-% Latin letters. They are used +-% to specify deltas by locales using +-% a locale as the default ordering +-% and by "replace-after" statements +-% specifying the changed placement +-% in an ordering of a character. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% letter;accent;case;specials +- +-order_start forward;backward/ +- ;forward;position +- +-% or letters first: +- +- +- +- +- +- +-% Accents: +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ;;;IGNORE +- ;IGNORE;; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-<"=> IGNORE;IGNORE;IGNORE;<"=> +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-UNDEFINED IGNORE;IGNORE;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- +-% Arabic collating +- +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- +-% katakana/hiragana sorting +-% base is katakana, as this is present in most charsets +-% normal before voiced before semi-voiced +-% small vocals before normal vocals +-% katakana before hiragana +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +-order_end ++reorder-end + + END LC_COLLATE + +Index: localedata/locales/sl_SI +=================================================================== +--- localedata/locales/sl_SI.orig 2007-10-23 08:51:24.000000000 -0400 ++++ localedata/locales/sl_SI 2007-10-23 09:06:36.000000000 -0400 +@@ -48,2067 +48,37 @@ + END LC_IDENTIFICATION + + LC_COLLATE ++copy "iso14651_t1" + +-% Base collation scheme: 1994-03-22 ++collating-symbol ++collating-symbol ++collating-symbol + +-% Ordering algorithm: +-% 1. Spaces and hyphen (but not soft +-% hyphen) before punctuation +-% characters, punctuation characters +-% before numbers, +-% numbers before letters. +-% 2. Letters with diacritical marks are +-% members of equivalence classes +-% 3. A distinction is made with regards +-% to case as noted below. +-% 4. Special characters are ignored +-% when comparing letters, but then +-% they are considered +-% 5. The alphabets are sorted in order +-% of first appearance in ISO 10646: +-% Latin, Greek, Cyrillic, etc. +-% +-% According to Greek specifications, +-% the steps 2. and 3. above are reversed +-% for the Greek script +- +-% collating symbols +- +-% The collating symbol naming is +-% mostly taken from ISO 10646-1, +-% for example the case and accent +-% names are from this standard. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% and +-% are for cases like Danish +-% and Spanish being treated +-% as one letter. +- +-% The ...... collating +-% symbols have defined weights as +-% the last character in a group of +-% Latin letters. They are used +-% to specify deltas by locales using +-% a locale as the default ordering +-% and by "replace-after" statements +-% specifying the changed placement +-% in an ordering of a character. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% letter;accent;case;specials +- +-order_start forward;backward/ +- ;forward;position +- +-% or letters first: +- +- +- +- +- +- +-% Accents: +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ;;;IGNORE +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-<"=> IGNORE;IGNORE;IGNORE;<"=> +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-UNDEFINED IGNORE;IGNORE;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- +-% Arabic collating +- +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- +-% katakana/hiragana sorting +-% base is katakana, as this is present in most charsets +-% normal before voiced before semi-voiced +-% small vocals before normal vocals +-% katakana before hiragana +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE ++reorder-after ++ + +-order_end ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-end + + END LC_COLLATE + +Index: localedata/locales/tr_TR +=================================================================== +--- localedata/locales/tr_TR.orig 2007-10-23 08:51:25.000000000 -0400 ++++ localedata/locales/tr_TR 2007-10-23 09:06:36.000000000 -0400 +@@ -61,2067 +61,67 @@ + END LC_IDENTIFICATION + + LC_COLLATE ++define UPPERCASE_FIRST ++% Copy the template from ISO/IEC 14651 ++copy "iso14651_t1" ++ ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ++reorder-after ++ ;;;IGNORE ++reorder-after ++ ;;;IGNORE + +-% Base collation scheme: 1994-03-22 +- +-% Ordering algorithm: +-% 1. Spaces and hyphen (but not soft +-% hyphen) before punctuation +-% characters, punctuation characters +-% before numbers, +-% numbers before letters. +-% 2. Letters with diacritical marks are +-% members of equivalence classes +-% 3. A distinction is made with regards +-% to case as noted below. +-% 4. Special characters are ignored +-% when comparing letters, but then +-% they are considered +-% 5. The alphabets are sorted in order +-% of first appearance in ISO 10646: +-% Latin, Greek, Cyrillic, etc. +-% +-% According to Greek specifications, +-% the steps 2. and 3. above are reversed +-% for the Greek script +- +-% collating symbols +- +-% The collating symbol naming is +-% mostly taken from ISO 10646-1, +-% for example the case and accent +-% names are from this standard. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% and +-% are for cases like Danish +-% and Spanish being treated +-% as one letter. +- +-% The ...... collating +-% symbols have defined weights as +-% the last character in a group of +-% Latin letters. They are used +-% to specify deltas by locales using +-% a locale as the default ordering +-% and by "replace-after" statements +-% specifying the changed placement +-% in an ordering of a character. +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% letter;accent;case;specials +- +-order_start forward;backward/ +- ;forward;position +- +-% or letters first: +- +- +- +- +- +- +-% Accents: +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- ;;;IGNORE +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-<"=> IGNORE;IGNORE;IGNORE;<"=> +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +-UNDEFINED IGNORE;IGNORE;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- ;IGNORE;IGNORE;IGNORE +- +-% Arabic collating +- +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- IGNORE;IGNORE;IGNORE; +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- IGNORE;IGNORE;;IGNORE +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- +-% katakana/hiragana sorting +-% base is katakana, as this is present in most charsets +-% normal before voiced before semi-voiced +-% small vocals before normal vocals +-% katakana before hiragana +- +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- ;;IGNORE;IGNORE +- +-order_end ++reorder-end + + END LC_COLLATE + --- glibc-2.7.orig/debian/patches/localedata/tl_PH-yesexpr.diff +++ glibc-2.7/debian/patches/localedata/tl_PH-yesexpr.diff @@ -0,0 +1,31 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Fix yesexpr/noexpr/yesstr/nostr +# DP: Related bugs: #295810 +# DP: Dpatch author: Denis Barbier +# DP: Patch author: eric pareja +# DP: Upstream status: not submitted +# DP: Date: 2006-01-10 + +--- glibc-2.6.orig/localedata/locales/tl_PH ++++ glibc-2.6/localedata/locales/tl_PH +@@ -140,7 +140,19 @@ + END LC_TIME + + LC_MESSAGES +-copy "en_US" ++ ++% "^[oOyY].*" for "Yes" ++yesexpr "" ++ ++% "^[hHnN].*" for "No" ++noexpr "" ++ ++% "Oo" for "Yes" ++yesstr "" ++ ++% "Hindi" for "No" ++nostr "" ++ + END LC_MESSAGES + + LC_PAPER --- glibc-2.7.orig/debian/patches/localedata/cvs-locale-lo_LA.diff +++ glibc-2.7/debian/patches/localedata/cvs-locale-lo_LA.diff @@ -0,0 +1,19 @@ +Index: glibc-2.7/localedata/locales/lo_LA +=================================================================== +--- glibc-2.7.orig/localedata/locales/lo_LA 2007-11-07 21:01:13.000000000 -0500 ++++ glibc-2.7/localedata/locales/lo_LA 2007-11-07 21:01:25.000000000 -0500 +@@ -602,10 +602,10 @@ + + ;;; % Lao CHARACTER HHOr + "";;; +- "";;; +- "";;; +- "";;; +- "";;; ++ "";;; ++ "";;; ++ "";;; ++ "";;; + + + % order of Lao vowels --- glibc-2.7.orig/debian/patches/localedata/locale-de_LI.diff +++ glibc-2.7/debian/patches/localedata/locale-de_LI.diff @@ -0,0 +1,107 @@ +--- /dev/null 2007-11-26 21:04:03.380078389 +0100 ++++ localedata/locales/de_LI 2007-11-27 21:18:15.000000000 +0100 +@@ -0,0 +1,94 @@ ++comment_char % ++escape_char / ++% ++% German locale for Liechtenstein ++% Language: de ++% Territory: LI ++% Revision: 1.0 ++% Date: 2007-11-27 ++% Users: general ++% Repertoiremap: mnemonic.ds ++% Charset: ISO-8859-1 ++% Distribution and use is free, also ++% for commercial purposes. ++ ++LC_IDENTIFICATION ++title "German locale for Liechtenstein" ++source "" ++address "" ++contact "" ++email "bug-glibc-locales@gnu.org" ++tel "" ++fax "" ++language "German" ++territory "Liechtenstein" ++revision "1.0" ++date "2007-11-27" ++% ++category "de_LI:2000";LC_IDENTIFICATION ++category "de_LI:2000";LC_CTYPE ++category "de_LI:2000";LC_COLLATE ++category "de_LI:2000";LC_TIME ++category "de_LI:2000";LC_NUMERIC ++category "de_LI:2000";LC_MONETARY ++category "de_LI:2000";LC_MESSAGES ++category "de_LI:2000";LC_PAPER ++category "de_LI:2000";LC_NAME ++category "de_LI:2000";LC_ADDRESS ++category "de_LI:2000";LC_TELEPHONE ++ ++END LC_IDENTIFICATION ++ ++LC_CTYPE ++copy "de_CH" ++END LC_CTYPE ++ ++LC_COLLATE ++copy "de_CH" ++END LC_COLLATE ++ ++LC_MESSAGES ++copy "de_CH" ++END LC_MESSAGES ++ ++LC_MONETARY ++copy "de_CH" ++END LC_MONETARY ++ ++LC_NUMERIC ++copy "de_CH" ++END LC_NUMERIC ++ ++LC_TIME ++copy "de_CH" ++END LC_TIME ++ ++LC_PAPER ++copy "de_CH" ++END LC_PAPER ++ ++LC_TELEPHONE ++tel_int_fmt "/ ++" ++int_prefix "" ++END LC_TELEPHONE ++ ++LC_MEASUREMENT ++copy "de_CH" ++END LC_MEASUREMENT ++ ++LC_NAME ++copy "de_CH" ++END LC_NAME ++ ++LC_ADDRESS ++postal_fmt "/ ++/ ++/ ++/ ++" ++country_ab2 "" ++country_ab3 "" ++country_num 438 ++END LC_ADDRESS ++ +--- localedata/SUPPORTED.orig 2007-11-27 21:20:52.000000000 +0100 ++++ localedata/SUPPORTED 2007-11-27 21:21:17.000000000 +0100 +@@ -96,6 +96,7 @@ + de_DE.UTF-8/UTF-8 \ + de_DE/ISO-8859-1 \ + de_DE@euro/ISO-8859-15 \ ++de_LI.UTF-8/UTF-8 \ + de_LU.UTF-8/UTF-8 \ + de_LU/ISO-8859-1 \ + de_LU@euro/ISO-8859-15 \ --- glibc-2.7.orig/debian/patches/localedata/locale-csb_PL.diff +++ glibc-2.7/debian/patches/localedata/locale-csb_PL.diff @@ -0,0 +1,55 @@ +Modify collation rules which could cause errors in regular expressions +with character ranges, as was reported in #362514 for another locale. + +--- glibc-2.6.orig/localedata/locales/csb_PL ++++ glibc-2.6/localedata/locales/csb_PL +@@ -93,38 +93,45 @@ + + reorder-after + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE ++reorder-after ++ ;;;IGNORE + ;;;IGNORE + + reorder-after + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE ++reorder-after ++ ;;;IGNORE + ;;;IGNORE + + reorder-after + ;;;IGNORE ++reorder-after + ;;;IGNORE + + reorder-after + ;;;IGNORE ++reorder-after + ;;;IGNORE + + reorder-after + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE +- ;;;IGNORE + ;;;IGNORE ++reorder-after ++ ;;;IGNORE ++ ;;;IGNORE + ;;;IGNORE + + reorder-after + ;;;IGNORE ++reorder-after + ;;;IGNORE + + reorder-after + ;;;IGNORE ++reorder-after + ;;;IGNORE + + reorder-end --- glibc-2.7.orig/debian/patches/localedata/fr_BE-first_weekday.diff +++ glibc-2.7/debian/patches/localedata/fr_BE-first_weekday.diff @@ -0,0 +1,10 @@ +--- glibc-2.7.orig/localedata/locales/fr_BE ++++ glibc-2.7/localedata/locales/fr_BE +@@ -122,6 +122,7 @@ + / + / + " ++first_weekday 2 + END LC_TIME + + LC_PAPER --- glibc-2.7.orig/debian/patches/localedata/supported.diff +++ glibc-2.7/debian/patches/localedata/supported.diff @@ -0,0 +1,63 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Add several locales to localedata.SUPPORTED +# DP: - ru_RU.CP1251 was requested in #225516 +# DP: - uz_UZ.UTF-8 was clearly missing, uz_UZ had no UTF-8 variant +# DP: - da_DK.ISO-8859-15, en_GB.ISO-8859-15, en_US.ISO-8859-15, no_NO.UTF-8, +# DP: no_NO and sv_SE.ISO-8859-15 are found in fedora-branch CVS branch. +# DP: Related bugs: #225516 (ru_RU.CP1251) +# DP: Dpatch author: Denis Barbier +# DP: Upstream status: not submitted +# DP: Date: 2006-01-10 + +Index: localedata/SUPPORTED +=================================================================== +--- localedata/SUPPORTED.orig 2007-10-25 23:22:00.000000000 -0400 ++++ localedata/SUPPORTED 2007-10-25 23:22:59.000000000 -0400 +@@ -82,6 +82,7 @@ + cy_GB/ISO-8859-14 \ + da_DK.UTF-8/UTF-8 \ + da_DK/ISO-8859-1 \ ++da_DK.ISO-8859-15/ISO-8859-15 \ + de_AT.UTF-8/UTF-8 \ + de_AT/ISO-8859-1 \ + de_AT@euro/ISO-8859-15 \ +@@ -111,6 +112,7 @@ + en_DK/ISO-8859-1 \ + en_GB.UTF-8/UTF-8 \ + en_GB/ISO-8859-1 \ ++en_GB.ISO-8859-15/ISO-8859-15 \ + en_HK.UTF-8/UTF-8 \ + en_HK/ISO-8859-1 \ + en_IE.UTF-8/UTF-8 \ +@@ -126,6 +128,7 @@ + en_SG/ISO-8859-1 \ + en_US.UTF-8/UTF-8 \ + en_US/ISO-8859-1 \ ++en_US.ISO-8859-15/ISO-8859-15 \ + en_ZA.UTF-8/UTF-8 \ + en_ZA/ISO-8859-1 \ + en_ZW.UTF-8/UTF-8 \ +@@ -317,6 +320,7 @@ + ru_RU.UTF-8/UTF-8 \ + ru_RU.KOI8-R/KOI8-R \ + ru_RU/ISO-8859-5 \ ++ru_RU.CP1251/CP1251 \ + ru_UA.UTF-8/UTF-8 \ + ru_UA/KOI8-U \ + rw_RW/UTF-8 \ +@@ -349,6 +353,7 @@ + sv_FI@euro/ISO-8859-15 \ + sv_SE.UTF-8/UTF-8 \ + sv_SE/ISO-8859-1 \ ++sv_SE.ISO-8859-15/ISO-8859-15 \ + ta_IN/UTF-8 \ + te_IN/UTF-8 \ + tg_TJ.UTF-8/UTF-8 \ +@@ -373,6 +378,7 @@ + uk_UA.UTF-8/UTF-8 \ + uk_UA/KOI8-U \ + ur_PK/UTF-8 \ ++uz_UZ.UTF-8/UTF-8 \ + uz_UZ/ISO-8859-1 \ + uz_UZ@cyrillic/UTF-8 \ + ve_ZA/UTF-8 \ --- glibc-2.7.orig/debian/patches/localedata/locale-en_DK.diff +++ glibc-2.7/debian/patches/localedata/locale-en_DK.diff @@ -0,0 +1,81 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Improve en_DK and add en_DK.ISO-8859-15 to SUPPORTED +# DP: This locale is only useful to provide ISO8601 date formats. +# DP: Related bugs: #323159 +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Jakob Bohm +# DP: Upstream status: not submitted +# DP: Date: 2006-01-16 + +--- localedata/SUPPORTED.orig ++++ localedata/SUPPORTED +@@ -111,6 +111,7 @@ + en_CA.UTF-8/UTF-8 \ + en_CA/ISO-8859-1 \ + en_DK.UTF-8/UTF-8 \ ++en_DK.ISO-8859-15/ISO-8859-15 \ + en_DK/ISO-8859-1 \ + en_GB.UTF-8/UTF-8 \ + en_GB/ISO-8859-1 \ +--- localedata/locales/en_DK.orig ++++ localedata/locales/en_DK +@@ -60,27 +60,11 @@ + END LC_CTYPE + + LC_MONETARY +-int_curr_symbol "" +-currency_symbol "" +-mon_decimal_point "" +-mon_thousands_sep "" +-mon_grouping 3;3 +-positive_sign "" +-negative_sign "" +-int_frac_digits 2 +-frac_digits 2 +-p_cs_precedes 1 +-p_sep_by_space 0 +-n_cs_precedes 1 +-n_sep_by_space 0 +-p_sign_posn 1 +-n_sign_posn 1 ++copy "da_DK" + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 3;3 ++copy "da_DK" + END LC_NUMERIC + + LC_TIME +@@ -125,8 +109,7 @@ + END LC_TIME + + LC_MESSAGES +-yesexpr "" +-noexpr "" ++copy "da_DK" + END LC_MESSAGES + + LC_PAPER +@@ -142,17 +125,9 @@ + END LC_MEASUREMENT + + LC_NAME +-name_fmt "/ +-" ++copy "da_DK" + END LC_NAME + + LC_ADDRESS +-postal_fmt "/ +-/ +-/ +-/ +-" +-country_ab2 "" +-country_ab3 "" +-country_num 208 ++copy "da_DK" + END LC_ADDRESS --- glibc-2.7.orig/debian/patches/localedata/new-valencian-locale.diff +++ glibc-2.7/debian/patches/localedata/new-valencian-locale.diff @@ -0,0 +1,116 @@ +Submitted upstream: BZ2522 + +Index: localedata/locales/ca_ES@valencia +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ localedata/locales/ca_ES@valencia 2007-10-23 08:48:23.000000000 -0400 +@@ -0,0 +1,96 @@ ++comment_char % ++escape_char / ++% ++% Valencian (southern Catalan) locale for Spain with Euro ++% ++% Note that this locale is almost the same as ca_ES@euro. The point of having ++% a separate locale is only for PO translations, which have a lot of social ++% support and are very appreciated by the Valencian-speaking community. ++% ++% Contact: Jordi Mallach ++% Email: jordi@gnu.org ++% Tel: ++% Fax: ++% Language: ca ++% Territory: ES ++% Option: euro ++% Revision: 1.0 ++% Date: 2006-04-06 ++% Application: general ++% Users: general ++% Repertoiremap: mnemonic,ds ++% Charset: ISO-8859-15 ++% Distribution and use is free, also ++% for commercial purposes. ++ ++LC_IDENTIFICATION ++title "Valencian (southern Catalan) locale for Spain with Euro" ++source "" ++address "" ++contact "Jordi Mallach" ++email "jordi@gnu.org" ++tel "" ++fax "" ++language "Catalan" ++territory "Spain" ++revision "1.0" ++date "2006-04-06" ++% ++category "ca_ES@valencia:2006";LC_IDENTIFICATION ++category "ca_ES@valencia:2006";LC_CTYPE ++category "ca_ES@valencia:2006";LC_COLLATE ++category "ca_ES@valencia:2006";LC_MONETARY ++category "ca_ES@valencia:2006";LC_NUMERIC ++category "ca_ES@valencia:2006";LC_TIME ++category "ca_ES@valencia:2006";LC_MESSAGES ++category "ca_ES@valencia:2006";LC_PAPER ++category "ca_ES@valencia:2006";LC_NAME ++category "ca_ES@valencia:2006";LC_ADDRESS ++category "ca_ES@valencia:2006";LC_TELEPHONE ++category "ca_ES@valencia:2006";LC_MEASUREMENT ++ ++END LC_IDENTIFICATION ++ ++LC_CTYPE ++copy "i18n" ++END LC_CTYPE ++ ++LC_COLLATE ++copy "ca_ES" ++END LC_COLLATE ++ ++LC_MONETARY ++copy "ca_ES" ++END LC_MONETARY ++ ++LC_NUMERIC ++copy "ca_ES" ++END LC_NUMERIC ++ ++LC_TIME ++copy "ca_ES" ++END LC_TIME ++ ++LC_MESSAGES ++copy "ca_ES" ++END LC_MESSAGES ++ ++LC_PAPER ++copy "ca_ES" ++END LC_PAPER ++ ++LC_NAME ++copy "ca_ES" ++END LC_NAME ++ ++LC_ADDRESS ++copy "ca_ES" ++END LC_ADDRESS ++ ++LC_TELEPHONE ++copy "ca_ES" ++END LC_TELEPHONE ++ ++LC_MEASUREMENT ++copy "ca_ES" ++END LC_MEASUREMENT +Index: localedata/SUPPORTED +=================================================================== +--- localedata/SUPPORTED.orig 2007-10-23 08:48:13.000000000 -0400 ++++ localedata/SUPPORTED 2007-10-23 08:48:23.000000000 -0400 +@@ -70,6 +70,8 @@ + ca_ES.UTF-8/UTF-8 \ + ca_ES/ISO-8859-1 \ + ca_ES@euro/ISO-8859-15 \ ++ca_ES.UTF-8@valencia/UTF-8 \ ++ca_ES@valencia/ISO-8859-15 \ + ca_FR.UTF-8/UTF-8 \ + ca_FR/ISO-8859-15 \ + ca_IT.UTF-8/UTF-8 \ --- glibc-2.7.orig/debian/patches/localedata/sort-UTF8-first.diff +++ glibc-2.7/debian/patches/localedata/sort-UTF8-first.diff @@ -0,0 +1,77 @@ +Index: localedata/SUPPORTED +=================================================================== +--- localedata/SUPPORTED.orig 2007-10-01 22:22:09.000000000 -0400 ++++ localedata/SUPPORTED 2007-10-24 18:40:12.000000000 -0400 +@@ -221,8 +221,8 @@ + hi_IN/UTF-8 \ + hr_HR.UTF-8/UTF-8 \ + hr_HR/ISO-8859-2 \ +-hsb_DE/ISO-8859-2 \ + hsb_DE.UTF-8/UTF-8 \ ++hsb_DE/ISO-8859-2 \ + hu_HU.UTF-8/UTF-8 \ + hu_HU/ISO-8859-2 \ + hy_AM/UTF-8 \ +@@ -241,8 +241,8 @@ + iu_CA/UTF-8 \ + iw_IL.UTF-8/UTF-8 \ + iw_IL/ISO-8859-8 \ +-ja_JP.EUC-JP/EUC-JP \ + ja_JP.UTF-8/UTF-8 \ ++ja_JP.EUC-JP/EUC-JP \ + ka_GE.UTF-8/UTF-8 \ + ka_GE/GEORGIAN-PS \ + kk_KZ.UTF-8/UTF-8 \ +@@ -251,8 +251,8 @@ + kl_GL/ISO-8859-1 \ + km_KH/UTF-8 \ + kn_IN/UTF-8 \ +-ko_KR.EUC-KR/EUC-KR \ + ko_KR.UTF-8/UTF-8 \ ++ko_KR.EUC-KR/EUC-KR \ + ku_TR.UTF-8/UTF-8 \ + ku_TR/ISO-8859-9 \ + kw_GB.UTF-8/UTF-8 \ +@@ -314,8 +314,8 @@ + pt_PT@euro/ISO-8859-15 \ + ro_RO.UTF-8/UTF-8 \ + ro_RO/ISO-8859-2 \ +-ru_RU.KOI8-R/KOI8-R \ + ru_RU.UTF-8/UTF-8 \ ++ru_RU.KOI8-R/KOI8-R \ + ru_RU/ISO-8859-5 \ + ru_UA.UTF-8/UTF-8 \ + ru_UA/KOI8-U \ +@@ -376,28 +376,28 @@ + uz_UZ/ISO-8859-1 \ + uz_UZ@cyrillic/UTF-8 \ + ve_ZA/UTF-8 \ +-vi_VN.TCVN/TCVN5712-1 \ + vi_VN/UTF-8 \ ++vi_VN.TCVN/TCVN5712-1 \ ++wa_BE.UTF-8/UTF-8 \ + wa_BE/ISO-8859-1 \ + wa_BE@euro/ISO-8859-15 \ +-wa_BE.UTF-8/UTF-8 \ + wo_SN/UTF-8 \ + xh_ZA.UTF-8/UTF-8 \ + xh_ZA/ISO-8859-1 \ + yi_US.UTF-8/UTF-8 \ + yi_US/CP1255 \ + yo_NG/UTF-8 \ ++zh_CN.UTF-8/UTF-8 \ + zh_CN.GB18030/GB18030 \ + zh_CN.GBK/GBK \ +-zh_CN.UTF-8/UTF-8 \ + zh_CN/GB2312 \ + zh_HK.UTF-8/UTF-8 \ + zh_HK/BIG5-HKSCS \ + zh_SG.UTF-8/UTF-8 \ + zh_SG.GBK/GBK \ + zh_SG/GB2312 \ +-zh_TW.EUC-TW/EUC-TW \ + zh_TW.UTF-8/UTF-8 \ + zh_TW/BIG5 \ ++zh_TW.EUC-TW/EUC-TW \ + zu_ZA.UTF-8/UTF-8 \ + zu_ZA/ISO-8859-1 \ --- glibc-2.7.orig/debian/patches/localedata/fr_CA-first_weekday.diff +++ glibc-2.7/debian/patches/localedata/fr_CA-first_weekday.diff @@ -0,0 +1,10 @@ +--- glibc-2.7.orig/localedata/locales/fr_CA ++++ glibc-2.7/localedata/locales/fr_CA +@@ -123,6 +123,7 @@ + / + / + " ++first_weekday 1 + END LC_TIME + + LC_PAPER --- glibc-2.7.orig/debian/patches/localedata/locale-ia.diff +++ glibc-2.7/debian/patches/localedata/locale-ia.diff @@ -0,0 +1,158 @@ +Locale definition for the interlingua locale, submitted by +Alberto Mardegan in #224756. +Ulrich Drepper claimed that he will not accept artificial +languages (like interlingua and esperanto), this locale +will thus not be submitted upstream. + +--- /dev/null ++++ localedata/locales/ia +@@ -0,0 +1,139 @@ ++comment_char % ++escape_char / ++% ++% Interlingua Language Locale ++ ++LC_IDENTIFICATION ++title "Interlingua locale" ++source "" ++address "" ++contact "" ++email "mardy@despammed.com" ++tel "" ++fax "" ++language "Interlingua" ++territory "" ++revision "1.0" ++date "2003-11-25" ++% ++category "ia:2000";LC_IDENTIFICATION ++category "ia:2000";LC_CTYPE ++category "ia:2000";LC_COLLATE ++category "ia:2000";LC_TIME ++category "ia:2000";LC_NUMERIC ++category "ia:2000";LC_MONETARY ++category "ia:2000";LC_MESSAGES ++category "ia:2000";LC_PAPER ++category "ia:2000";LC_NAME ++category "ia:2000";LC_ADDRESS ++category "ia:2000";LC_TELEPHONE ++ ++END LC_IDENTIFICATION ++ ++LC_COLLATE ++copy "iso14651_t1" ++END LC_COLLATE ++ ++LC_CTYPE ++copy "i18n" ++END LC_CTYPE ++ ++LC_MESSAGES ++yesexpr "" ++noexpr "" ++END LC_MESSAGES ++ ++LC_MONETARY ++int_curr_symbol "" ++currency_symbol "" ++mon_decimal_point "" ++mon_thousands_sep "" ++mon_grouping 3;3 ++positive_sign "" ++negative_sign "" ++int_frac_digits 2 ++frac_digits 2 ++p_cs_precedes 1 ++p_sep_by_space 1 ++n_cs_precedes 1 ++n_sep_by_space 1 ++p_sign_posn 1 ++n_sign_posn 1 ++END LC_MONETARY ++ ++LC_NUMERIC ++decimal_point "" ++thousands_sep "" ++grouping 0;0 ++END LC_NUMERIC ++ ++LC_TIME ++abday "";"";/ ++ "";"";/ ++ "";"";/ ++ "" ++day "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" ++abmon "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"";/ ++ "";"" ++mon "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "";/ ++ "" ++d_t_fmt "" ++d_fmt "" ++t_fmt "" ++am_pm "";"" ++t_fmt_ampm "" ++date_fmt "/ ++/ ++" ++END LC_TIME ++ ++LC_PAPER ++% FIXME ++height 297 ++% FIXME ++width 210 ++END LC_PAPER ++ ++LC_TELEPHONE ++tel_int_fmt "/ ++" ++int_select "" ++END LC_TELEPHONE ++ ++LC_MEASUREMENT ++% FIXME ++measurement 1 ++END LC_MEASUREMENT ++ ++LC_NAME ++name_fmt "/ ++" ++END LC_NAME ++ ++LC_ADDRESS ++postal_fmt "/ ++/ ++/ ++/ ++" ++END LC_ADDRESS +--- localedata/SUPPORTED.orig ++++ localedata/SUPPORTED +@@ -238,6 +238,7 @@ + hu_HU/ISO-8859-2 \ + hy_AM/UTF-8 \ + hy_AM.ARMSCII-8/ARMSCII-8 \ ++ia/UTF-8 \ + id_ID.UTF-8/UTF-8 \ + id_ID/ISO-8859-1 \ + ig_NG/UTF-8 \ --- glibc-2.7.orig/debian/patches/localedata/tailor-iso14651_t1-common.diff +++ glibc-2.7/debian/patches/localedata/tailor-iso14651_t1-common.diff @@ -0,0 +1,41 @@ +Index: glibc-2.7/localedata/locales/iso14651_t1_common +=================================================================== +--- glibc-2.7.orig/localedata/locales/iso14651_t1_common 2007-10-23 08:51:23.000000000 -0400 ++++ glibc-2.7/localedata/locales/iso14651_t1_common 2007-10-23 09:25:31.000000000 -0400 +@@ -466,7 +466,11 @@ + # SYMB. N° + # + ++ifdef UPPERCASE_FIRST ++ ++else + ++endif + # forme de base (bas de casse, arabe intrinsèque, + # hébreu intrinsèque, etc. + # basic form (lower case, intrinsic Arabic +@@ -485,14 +489,21 @@ + # medial/mdian + # 6 + # ++ifdef UPPERCASE_FIRST ++ # 7 ++ # 8 ++ # 9 ++ # 10 ++ # 11 ++ # 12 ++else + # 7 + # 8 + # 9 + # 10 + # 11 +- +-#alternate lower case/ +-# 12 ++ # 12 alternate lower case ++endif + # + #minuscules spéciales après majuscules + # / --- glibc-2.7.orig/debian/patches/localedata/first_weekday.diff +++ glibc-2.7/debian/patches/localedata/first_weekday.diff @@ -0,0 +1,1610 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Add first_weekday and first_workday, most come +# DP: from OpenOffice through CLDR +# DP: This patch applies the following conventions: +# DP: 1=Sunday...7=Saturday +# DP: The week keyword is removed from all locales. +# DP: Normally GTK apps should work with these settings, as well as +# DP: other apps. +# DP: Related bugs: #343885 347323 #379100 +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: not submitted + +--- localedata/locales/aa_DJ.orig ++++ localedata/locales/aa_DJ +@@ -273,5 +273,7 @@ + date_fmt "/ + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- localedata/locales/aa_ER.orig ++++ localedata/locales/aa_ER +@@ -223,5 +223,7 @@ + date_fmt "/ + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- localedata/locales/aa_ER@saaho.orig ++++ localedata/locales/aa_ER@saaho +@@ -207,5 +207,7 @@ + date_fmt "/ + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- localedata/locales/aa_ET.orig ++++ localedata/locales/aa_ET +@@ -226,5 +226,7 @@ + date_fmt "/ + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- localedata/locales/af_ZA.orig ++++ localedata/locales/af_ZA +@@ -164,6 +164,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/am_ET.orig ++++ localedata/locales/am_ET +@@ -1564,5 +1564,7 @@ + / + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- localedata/locales/ar_AE.orig ++++ localedata/locales/ar_AE +@@ -141,6 +141,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- localedata/locales/ar_BH.orig ++++ localedata/locales/ar_BH +@@ -145,6 +145,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- localedata/locales/ar_DZ.orig ++++ localedata/locales/ar_DZ +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- localedata/locales/ar_EG.orig ++++ localedata/locales/ar_EG +@@ -148,6 +148,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- localedata/locales/ar_IN.orig ++++ localedata/locales/ar_IN +@@ -127,6 +127,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME: copied from other *_IN locales ++first_weekday 1 + END LC_TIME + + +--- localedata/locales/ar_IQ.orig ++++ localedata/locales/ar_IQ +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- localedata/locales/ar_JO.orig ++++ localedata/locales/ar_JO +@@ -162,6 +162,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- localedata/locales/ar_KW.orig ++++ localedata/locales/ar_KW +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- localedata/locales/ar_LB.orig ++++ localedata/locales/ar_LB +@@ -161,6 +161,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- localedata/locales/ar_LY.orig ++++ localedata/locales/ar_LY +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- localedata/locales/ar_MA.orig ++++ localedata/locales/ar_MA +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- localedata/locales/ar_OM.orig ++++ localedata/locales/ar_OM +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- localedata/locales/ar_QA.orig ++++ localedata/locales/ar_QA +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- localedata/locales/ar_SA.orig ++++ localedata/locales/ar_SA +@@ -132,6 +132,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- localedata/locales/ar_SD.orig ++++ localedata/locales/ar_SD +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- localedata/locales/ar_SY.orig ++++ localedata/locales/ar_SY +@@ -161,6 +161,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 5 + END LC_TIME + + +--- localedata/locales/ar_TN.orig ++++ localedata/locales/ar_TN +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- localedata/locales/ar_YE.orig ++++ localedata/locales/ar_YE +@@ -144,6 +144,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + +--- localedata/locales/az_AZ.orig ++++ localedata/locales/az_AZ +@@ -274,6 +274,8 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/be_BY.orig ++++ localedata/locales/be_BY +@@ -145,6 +145,9 @@ + date_fmt "/ + / + " ++% Copied from be_BY@alternative ++first_weekday 2 ++first_workday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/be_BY@latin.orig ++++ localedata/locales/be_BY@latin +@@ -102,6 +102,9 @@ + date_fmt "/ + / + " ++% Copied from be_BY@alternative ++first_weekday 2 ++first_workday 2 + END LC_TIME + + LC_COLLATE +--- localedata/locales/bn_IN.orig ++++ localedata/locales/bn_IN +@@ -145,6 +145,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME ++first_weekday 1 + END LC_TIME + + +--- localedata/locales/br_FR.orig ++++ localedata/locales/br_FR +@@ -141,6 +141,8 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/bs_BA.orig ++++ localedata/locales/bs_BA +@@ -208,6 +208,8 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/byn_ER.orig ++++ localedata/locales/byn_ER +@@ -218,5 +218,7 @@ + / + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- localedata/locales/ca_ES.orig ++++ localedata/locales/ca_ES +@@ -138,6 +138,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/csb_PL.orig ++++ localedata/locales/csb_PL +@@ -191,7 +191,7 @@ + date_fmt "/ + / + " +-week 7;19971201;4 ++% week 7;19971201;4 + first_weekday 2 + first_workday 2 + END LC_TIME +--- localedata/locales/de_AT.orig ++++ localedata/locales/de_AT +@@ -121,6 +121,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/de_BE.orig ++++ localedata/locales/de_BE +@@ -119,6 +119,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/de_CH.orig ++++ localedata/locales/de_CH +@@ -120,6 +120,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/de_LU.orig ++++ localedata/locales/de_LU +@@ -119,6 +119,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/dz_BT.orig ++++ localedata/locales/dz_BT +@@ -1544,7 +1544,8 @@ + %I/ + %M%S %p" + +- ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/el_GR.orig ++++ localedata/locales/el_GR +@@ -139,6 +139,8 @@ + % + % Appropriate date representation (date(1)) "%a %d %b %Y %r %Z" + date_fmt "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/en_AU.orig ++++ localedata/locales/en_AU +@@ -117,6 +117,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/en_CA.orig ++++ localedata/locales/en_CA +@@ -132,6 +132,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/en_DK.orig ++++ localedata/locales/en_DK +@@ -106,6 +106,9 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 ++first_workday 2 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/en_HK.orig ++++ localedata/locales/en_HK +@@ -133,6 +133,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME ++first_weekday 1 + END LC_TIME + + +--- localedata/locales/en_IE.orig ++++ localedata/locales/en_IE +@@ -115,6 +115,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/en_IN.orig ++++ localedata/locales/en_IN +@@ -132,6 +132,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME ++first_weekday 1 + END LC_TIME + + +--- localedata/locales/en_NZ.orig ++++ localedata/locales/en_NZ +@@ -117,6 +117,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/en_PH.orig ++++ localedata/locales/en_PH +@@ -133,6 +133,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- localedata/locales/en_SG.orig ++++ localedata/locales/en_SG +@@ -131,6 +131,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- localedata/locales/en_ZA.orig ++++ localedata/locales/en_ZA +@@ -205,6 +205,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/es_AR.orig ++++ localedata/locales/es_AR +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/es_BO.orig ++++ localedata/locales/es_BO +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/es_CL.orig ++++ localedata/locales/es_CL +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/es_CO.orig ++++ localedata/locales/es_CO +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/es_CR.orig ++++ localedata/locales/es_CR +@@ -113,6 +113,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/es_DO.orig ++++ localedata/locales/es_DO +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/es_EC.orig ++++ localedata/locales/es_EC +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/es_GT.orig ++++ localedata/locales/es_GT +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/es_HN.orig ++++ localedata/locales/es_HN +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/es_MX.orig ++++ localedata/locales/es_MX +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/es_NI.orig ++++ localedata/locales/es_NI +@@ -114,6 +114,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/es_PA.orig ++++ localedata/locales/es_PA +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/es_PE.orig ++++ localedata/locales/es_PE +@@ -123,6 +123,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/es_PR.orig ++++ localedata/locales/es_PR +@@ -113,6 +113,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/es_PY.orig ++++ localedata/locales/es_PY +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/es_SV.orig ++++ localedata/locales/es_SV +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/es_US.orig ++++ localedata/locales/es_US +@@ -174,6 +174,8 @@ + date_fmt "/ + / + " ++% FIXME ++first_weekday 1 + END LC_TIME + + LC_PAPER +--- localedata/locales/es_UY.orig ++++ localedata/locales/es_UY +@@ -122,6 +122,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/es_VE.orig ++++ localedata/locales/es_VE +@@ -123,6 +123,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/eu_ES.orig ++++ localedata/locales/eu_ES +@@ -131,6 +131,7 @@ + date_fmt "/ + / + " ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/ga_IE.orig ++++ localedata/locales/ga_IE +@@ -117,6 +117,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/gd_GB.orig ++++ localedata/locales/gd_GB +@@ -122,6 +122,8 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/gez_ER.orig ++++ localedata/locales/gez_ER +@@ -215,5 +215,7 @@ + / + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- localedata/locales/gez_ET.orig ++++ localedata/locales/gez_ET +@@ -216,5 +216,7 @@ + / + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- localedata/locales/gl_ES.orig ++++ localedata/locales/gl_ES +@@ -121,6 +121,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/gu_IN.orig ++++ localedata/locales/gu_IN +@@ -161,6 +161,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/gv_GB.orig ++++ localedata/locales/gv_GB +@@ -131,6 +131,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/he_IL.orig ++++ localedata/locales/he_IL +@@ -123,6 +123,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/hi_IN.orig ++++ localedata/locales/hi_IN +@@ -156,6 +156,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- localedata/locales/hr_HR.orig ++++ localedata/locales/hr_HR +@@ -220,6 +220,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/hsb_DE.orig ++++ localedata/locales/hsb_DE +@@ -220,6 +220,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/hy_AM.orig ++++ localedata/locales/hy_AM +@@ -147,6 +147,8 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/id_ID.orig ++++ localedata/locales/id_ID +@@ -120,6 +120,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/is_IS.orig ++++ localedata/locales/is_IS +@@ -2223,6 +2223,8 @@ + date_fmt "/ + / + " ++% FIXME: found in Java ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/it_CH.orig ++++ localedata/locales/it_CH +@@ -98,6 +98,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/it_IT.orig ++++ localedata/locales/it_IT +@@ -124,6 +124,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/ja_JP.orig ++++ localedata/locales/ja_JP +@@ -15006,6 +15006,8 @@ + "";"";/ + "";"";/ + "";"" ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- localedata/locales/kk_KZ.orig ++++ localedata/locales/kk_KZ +@@ -232,6 +232,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/km_KH.orig ++++ localedata/locales/km_KH +@@ -1841,6 +1841,8 @@ + % ICT-7ICT-7 + %timezone "" + ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/kn_IN.orig ++++ localedata/locales/kn_IN +@@ -165,6 +165,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- localedata/locales/ko_KR.orig ++++ localedata/locales/ko_KR +@@ -6189,6 +6189,8 @@ + / + / + " ++% FIXME: found in CLDR ++first_weekday 1 + + END LC_TIME + +--- localedata/locales/ku_TR.orig ++++ localedata/locales/ku_TR +@@ -149,6 +149,8 @@ + t_fmt_ampm "" + % format: %A %d %B %Y + date_fmt "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/kw_GB.orig ++++ localedata/locales/kw_GB +@@ -123,6 +123,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/lo_LA.orig ++++ localedata/locales/lo_LA +@@ -718,6 +718,8 @@ + " + % ICT-7ICT-7 + timezone "" ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/lt_LT.orig ++++ localedata/locales/lt_LT +@@ -137,6 +137,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/lv_LV.orig ++++ localedata/locales/lv_LV +@@ -2183,6 +2183,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/mk_MK.orig ++++ localedata/locales/mk_MK +@@ -85,9 +85,9 @@ + date_fmt "/ + / + " +-week 7;19971201;4 +-first_weekday 1 % Monday +-first_workday 1 % Monday ++% week 7;19971201;4 ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MONETARY +--- localedata/locales/ml_IN.orig ++++ localedata/locales/ml_IN +@@ -145,6 +145,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME ++first_weekday 1 + END LC_TIME + % + LC_MESSAGES +--- localedata/locales/mn_MN.orig ++++ localedata/locales/mn_MN +@@ -220,6 +220,8 @@ + % "%Z %Y ony %B %e, %a %H:%M:%S" + date_fmt "/ + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/mr_IN.orig ++++ localedata/locales/mr_IN +@@ -153,6 +153,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- localedata/locales/ms_MY.orig ++++ localedata/locales/ms_MY +@@ -139,6 +139,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + +--- localedata/locales/ne_NP.orig ++++ localedata/locales/ne_NP +@@ -153,6 +153,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- localedata/locales/nl_BE.orig ++++ localedata/locales/nl_BE +@@ -104,6 +104,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/nl_NL.orig ++++ localedata/locales/nl_NL +@@ -123,6 +123,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/nr_ZA.orig ++++ localedata/locales/nr_ZA +@@ -162,6 +162,8 @@ + % %Z - time-zone name, + % %Y - year with century as a decimal number,e.g. 2001. + ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/nso_ZA.orig ++++ localedata/locales/nso_ZA +@@ -157,6 +157,8 @@ + % %Z - time-zone name, + % %Y - year with century as a decimal number,e.g. 2001. + ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/oc_FR.orig ++++ localedata/locales/oc_FR +@@ -123,6 +123,8 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_NAME +--- localedata/locales/om_ET.orig ++++ localedata/locales/om_ET +@@ -233,5 +233,7 @@ + date_fmt "/ + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- localedata/locales/pa_IN.orig ++++ localedata/locales/pa_IN +@@ -149,6 +149,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- localedata/locales/pt_BR.orig ++++ localedata/locales/pt_BR +@@ -121,6 +121,7 @@ + date_fmt "/ + / + " ++first_weekday 1 + END LC_TIME + + LC_PAPER +--- localedata/locales/pt_PT.orig ++++ localedata/locales/pt_PT +@@ -124,6 +124,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/rw_RW.orig ++++ localedata/locales/rw_RW +@@ -109,6 +109,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/sa_IN.orig ++++ localedata/locales/sa_IN +@@ -182,6 +182,8 @@ + date_fmt "/ + / + " ++% FIXME: copied from other *_IN locales ++first_weekday 1 + END LC_TIME + + +--- localedata/locales/se_NO.orig ++++ localedata/locales/se_NO +@@ -277,6 +277,9 @@ + " + + % %a %b-%e %H:%M:%S %Z %Y søn jan-31 21:15:11 CET 2001 ++% FIXME: found in CLDR ++first_weekday 2 ++first_workday 2 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/sid_ET.orig ++++ localedata/locales/sid_ET +@@ -222,5 +222,7 @@ + % + date_fmt "/ + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- localedata/locales/sl_SI.orig ++++ localedata/locales/sl_SI +@@ -157,6 +157,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/so_DJ.orig ++++ localedata/locales/so_DJ +@@ -222,5 +222,7 @@ + date_fmt "/ + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- localedata/locales/so_ET.orig ++++ localedata/locales/so_ET +@@ -219,5 +219,7 @@ + date_fmt "/ + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- localedata/locales/so_KE.orig ++++ localedata/locales/so_KE +@@ -218,5 +218,7 @@ + date_fmt "/ + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- localedata/locales/so_SO.orig ++++ localedata/locales/so_SO +@@ -278,5 +278,7 @@ + date_fmt "/ + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- localedata/locales/sq_AL.orig ++++ localedata/locales/sq_AL +@@ -290,6 +290,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + +--- localedata/locales/ss_ZA.orig ++++ localedata/locales/ss_ZA +@@ -167,6 +167,8 @@ + % %Z - time-zone name, + % %Y - year with century as a decimal number,e.g. 2001. + ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/st_ZA.orig ++++ localedata/locales/st_ZA +@@ -164,6 +164,8 @@ + % %Z - time-zone name, + % %Y - year with century as a decimal number,e.g. 2001. + ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/sv_FI.orig ++++ localedata/locales/sv_FI +@@ -105,6 +105,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/ta_IN.orig ++++ localedata/locales/ta_IN +@@ -230,6 +230,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- localedata/locales/te_IN.orig ++++ localedata/locales/te_IN +@@ -139,6 +139,8 @@ + % %p%I.%M.%S %Z + t_fmt_ampm "" + % ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- localedata/locales/th_TH.orig ++++ localedata/locales/th_TH +@@ -913,6 +913,8 @@ + " + % ICT-7ICT-7 + timezone "" ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/ti_ER.orig ++++ localedata/locales/ti_ER +@@ -270,5 +270,7 @@ + / + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- localedata/locales/ti_ET.orig ++++ localedata/locales/ti_ET +@@ -1072,5 +1072,7 @@ + / + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- localedata/locales/tig_ER.orig ++++ localedata/locales/tig_ER +@@ -218,5 +218,7 @@ + / + " + % ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- localedata/locales/tn_ZA.orig ++++ localedata/locales/tn_ZA +@@ -169,6 +169,8 @@ + % %Z - time-zone name, + % %Y - year with century as a decimal number,e.g. 2001. + ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/tr_TR.orig ++++ localedata/locales/tr_TR +@@ -1540,6 +1540,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/ts_ZA.orig ++++ localedata/locales/ts_ZA +@@ -164,6 +164,8 @@ + % %Z - time-zone name, + % %Y - year with century as a decimal number,e.g. 2001. + ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/tt_RU.orig ++++ localedata/locales/tt_RU +@@ -297,6 +297,8 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_PAPER +--- localedata/locales/uz_UZ.orig ++++ localedata/locales/uz_UZ +@@ -260,6 +260,8 @@ + am_pm "";"" + t_fmt_ampm "" + date_fmt "" ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/uz_UZ@cyrillic.orig ++++ localedata/locales/uz_UZ@cyrillic +@@ -263,6 +263,8 @@ + am_pm "";"" + t_fmt_ampm "" + date_fmt "" ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/ve_ZA.orig ++++ localedata/locales/ve_ZA +@@ -166,6 +166,8 @@ + % %Z - time-zone name, + % %Y - year with century as a decimal number,e.g. 2001. + ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/vi_VN.orig ++++ localedata/locales/vi_VN +@@ -294,6 +294,8 @@ + am_pm "";"" + t_fmt_ampm "" + date_fmt "" ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + % yes: Va^ng / Da. +--- localedata/locales/wa_BE.orig ++++ localedata/locales/wa_BE +@@ -163,7 +163,8 @@ + am_pm "";"" + t_fmt_ampm "" + % prumî djoû del samwinne (1=londi) +-first_weekday 1 ++% FIXME No, 2=lundi ++first_weekday 2 + END LC_TIME + + LC_NAME +--- localedata/locales/wal_ET.orig ++++ localedata/locales/wal_ET +@@ -232,5 +232,7 @@ + / + / + " ++% FIXME: found in CLDR ++first_weekday 7 + END LC_TIME + % +--- localedata/locales/xh_ZA.orig ++++ localedata/locales/xh_ZA +@@ -164,6 +164,8 @@ + % time-zone name, + % year with century as a decimal number,e.g. 2001. + % ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/yi_US.orig ++++ localedata/locales/yi_US +@@ -186,6 +186,8 @@ + am_pm "";"" + t_fmt_ampm "" + cal_direction 3 ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/zh_CN.orig ++++ localedata/locales/zh_CN +@@ -135,6 +135,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + LC_MESSAGES +--- localedata/locales/zh_HK.orig ++++ localedata/locales/zh_HK +@@ -141,6 +141,8 @@ + date_fmt "/ + / + " ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + +--- localedata/locales/zh_SG.orig ++++ localedata/locales/zh_SG +@@ -130,6 +130,8 @@ + % Appropriate 12 h time representation (%r) + t_fmt_ampm "" + % ++% FIXME: found in CLDR ++first_weekday 2 + END LC_TIME + + +--- localedata/locales/zh_TW.orig ++++ localedata/locales/zh_TW +@@ -128,6 +128,9 @@ + / + " + ++% FIXME: found in CLDR ++first_weekday 1 ++ + END LC_TIME + + LC_MESSAGES +--- localedata/locales/zu_ZA.orig ++++ localedata/locales/zu_ZA +@@ -170,6 +170,8 @@ + % %Z - time-zone name, + % %Y - year with century as a decimal number,e.g. 2001. + ++% FIXME: found in CLDR ++first_weekday 1 + END LC_TIME + + LC_MESSAGES --- glibc-2.7.orig/debian/patches/localedata/locale-pt_PT.diff +++ glibc-2.7/debian/patches/localedata/locale-pt_PT.diff @@ -0,0 +1,12 @@ +diff -Naur glibc-2.7.orig/localedata/locales/pt_PT glibc-2.7/localedata/locales/pt_PT +--- glibc-2.7.orig/localedata/locales/pt_PT 2006-07-30 23:19:43.000000000 +0100 ++++ glibc-2.7/localedata/locales/pt_PT 2008-01-04 15:38:19.000000000 +0000 +@@ -65,7 +65,7 @@ + LC_MONETARY + int_curr_symbol "" + currency_symbol "" +-mon_decimal_point "" ++mon_decimal_point "" + mon_thousands_sep "" + mon_grouping 3;3 + positive_sign "" --- glibc-2.7.orig/debian/patches/localedata/dz_BT-collation.diff +++ glibc-2.7/debian/patches/localedata/dz_BT-collation.diff @@ -0,0 +1,2405 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Enhance collation rules for dz_BT. These rules have +# DP: been written by Pema Geyleg and Denis Barbier, based on +# DP: C. Fynn's chart. +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Pema Geyleg and Denis Barbier +# DP: Upstream status: not submitted +# DP: Date: 2006-01-30 + +--- localedata/locales/dz_BT.orig ++++ localedata/locales/dz_BT +@@ -56,7 +56,30 @@ + LC_COLLATE + copy "iso14651_t1" + +-script ++% Collation rules written by Pema Geyleg, Pablo Saratxaga and Denis ++% Barbier, based on Dzongkha collation chart provided by Christopher J Fynn ++% at http://www.btinternet.com/~c.fynn/misc/DZ_bt/dzongkha-collate.html ++ ++% Third level ++ ++% Nominal, subjoined or variant forms ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++% Tibetan signs ++collating-symbol ++collating-symbol ++collating-symbol ++ ++% Second level ++collating-symbol ++collating-symbol ++collating-symbol ++ ++% Primary level ++collating-symbol + + % 30 base letters + collating-symbol +@@ -96,669 +119,736 @@ + collating-symbol + collating-symbol + +-% pre-radicals +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +- +-% nominal, subjoined or variant forms +-collating-symbol +-collating-symbol +-collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++ ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-symbol ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++% ++collating-symbol ++% ++collating-symbol ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++%%% Not in Fynn's chart ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" ++% ++collating-symbol ++collating-element from "" ++% ++collating-symbol ++collating-symbol ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol ++collating-symbol + +-% ka-radicals +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% kha-radicals +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +- +-% ga-radicals +-% as there are ambiguous, the next letter has to be added too; +-% so the are in fact double elements: the ga-radical +-% itself, and the following letter. +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% nga-radicals +-% as there are ambiguous, the next letter has to be added too; +-% so the are in fact double elements: the nga-radical +-% itself, and the following letter. +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% ca-radicals +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% cha-radicals +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +- +-% ja-radicals +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% nya-radicals +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% ta-radicals +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% tha-radicals +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +- +-% da-radicals +-% as there are ambiguous, the next letter has to be added too; +-% so the are in fact double elements: the da-radical +-% itself, and the following letter. +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% na-radicals +-% as there are ambiguous, the next letter has to be added too; +-% so the are in fact double elements: the na-radical +-% itself, and the following letter. +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% pa-radicals +-% as there are ambiguous, the next letter has to be added too; +-% so the are in fact double elements: the pa-radical +-% itself, and the following letter. +-collating-symbol % ambiguous in Dzongkha +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% pha-radicals +-collating-symbol +-collating-element from "" +- +-% ba-radicals +-% as there are ambiguous, the next letter has to be added too; +-% so the are in fact double elements: the ba-radical +-% itself, and the following letter. +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% ma-radicals +-% as there are ambiguous, the next letter has to be added too; +-% so the are in fact double elements: the ma-radical +-% itself, and the following letter. +-collating-symbol % ambiguous +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% tsa-radicals +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% tsha-radicals +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +- +-% dza-radicals +-collating-symbol +-collating-symbol +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% zha-radicals +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +- +-% za-radicals +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +- +-% ya-radicals +-collating-symbol +-collating-element from "" +- +-% ra-radicals +-% as there are ambiguous, the next letter has to be added too; +-% so the are in fact double elements: the ra-radical +-% itself, and the following letter. +-collating-symbol % ambiguous +-collating-element from "" +- +-% sha-radicals +-collating-symbol +-collating-symbol +-collating-element from "" +-collating-element from "" +- +-% sa-radicals +-% as there are ambiguous, the next letter has to be added too; +-% so the are in fact double elements: the sa-radical +-% itself, and the following letter. +-collating-symbol % ambiguous +-collating-symbol % ambiguous +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +-collating-element from "" +- +-% ha-radicals +-collating-symbol +-collating-element from "" +- +-% generic definitions +-reorder-after ++reorder-after + + ++ ++ ++ ++ ++ ++ + + reorder-after +- +- +- +- +- +- +- +- +- +- +- +- +- +- ++ ++ ++ ++reorder-after ++ + +-% a better place than after cyrillic ya should be defined + reorder-after ++ + +- +- +- +- +- +- +- +- +- +- ++ ++ ++ + +- +- +- +- +- +- +- +- +- ++ + +- +- +- +- +- +- +- ++ + +- +- +- +- ++ + +- +- ++ + +- +- +- +- +- ++ + +- +- +- +- +- +- ++ + +- +- +- +- +- +- +- +- ++ + +- +- ++ + +- +- +- +- +- +- +- +- +- +- ++ + +- +- +- +- +- +- ++ + +- +- +- ++ + +- ++ + +- +- +- +- +- ++ + +- +- +- ++ + +- +- +- +- +- +- ++ + +- +- ++ + +- +- +- +- ++ + ++ + +- +- ++ + +- +- ++ + ++ + +- ++ + +- ++ + ++ + +- +- ++ + +- +- ++ + +- ++ + ++ ++ + + + + + +-%order_start ;forward;forward;forward;forward,position ++ + +-% specific definitions +-reorder-after +-% digits ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++reorder-end ++ ++script ++ ++order_start ;forward;forward;forward;forward,position + <0>;;IGNORE;IGNORE + <0>;;IGNORE;IGNORE + <1>;;IGNORE;IGNORE +@@ -780,430 +870,580 @@ + <9>;;IGNORE;IGNORE + <9>;;IGNORE;IGNORE + +-% letters +- ;;;IGNORE % ka +- ;;;IGNORE +- "";"";"";IGNORE % kssa +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % kha +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % ga +- ;;;IGNORE +- "";"";"";IGNORE % gha +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % nga +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % ca +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % cha +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % ja +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % nya +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % ta +- ;;;IGNORE +- ;;;IGNORE % tta +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % tha +- ;;;IGNORE +- ;;;IGNORE % ttha +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % da +- ;;;IGNORE +- ;;;IGNORE % dda +- ;;;IGNORE +- "";"";"";IGNORE % dha +- "";"";"";IGNORE +- "";"";"";IGNORE % ddha +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % na +- ;;;IGNORE +- ;;;IGNORE % nna +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % pa +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % pha +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % ba +- ;;;IGNORE +- "";"";"";IGNORE % bha +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % ma +- ;;;IGNORE +- ;;;IGNORE % +- ;;;IGNORE % +- ;;;IGNORE % +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % tsa +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % tsha +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % dza +- ;;;IGNORE +- "";"";"";IGNORE % dzha +- "";"";"";IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % wa +- ;;;IGNORE +- ;;;IGNORE % fixed wa +- ;;;IGNORE % zha +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % za +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % -a +- ;;;IGNORE +- ;;;IGNORE % ya +- ;;;IGNORE +- ;;;IGNORE % fixed ya +- ;;;IGNORE +- ;;;IGNORE % ra +- ;;;IGNORE +- ;;;IGNORE % fixed ra +- ;;;IGNORE +- ;;;IGNORE % vocalic r +-% FIXME; which of the two? +- ;;;IGNORE % vocalic rr +-% "";";";IGNORE % vocalic rr +- "";"";"";IGNORE +- ;;;IGNORE % la +- ;;;IGNORE +- ;;;IGNORE % vocalic l +-% FIXME; which of the two? +- ;;;IGNORE % vocalic ll +-% "";";";IGNORE % vocalic ll +- ;;;IGNORE % sha +- ;;;IGNORE +- ;;;IGNORE % ssa +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % sa +- ;;;IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- "";"";"";IGNORE +- ;;;IGNORE % ha +- ;;;IGNORE +- ;;;IGNORE +- ;;;IGNORE % a +- ;;;IGNORE +- +-% explicit vowels +- IGNORE;;IGNORE;IGNORE % long vowel mark % FIXME +- ;;;IGNORE % i +- ;;;IGNORE % reversed i +- ;;;IGNORE % ii +- ;;;IGNORE % reversed ii +- ;;;IGNORE % u +- ;;;IGNORE % uu +- ;;;IGNORE % e +- ;;;IGNORE % ee +- ;;;IGNORE % o +- ;;;IGNORE % oo +- +-% FIXME: 0F39, 0F7F, 0F84, 0F85, 0F86, 0F87, +- +-% FIXME: 0F88, UF89, UF8A, 0F8B +- IGNORE;;IGNORE;IGNORE +- IGNORE;;IGNORE;IGNORE +- IGNORE;;IGNORE;IGNORE +- IGNORE;;IGNORE;IGNORE ++ ;IGNORE;IGNORE;IGNORE + +-reorder-end ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ "";"";"";IGNORE ++ ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++ ;;;IGNORE ++order_end + + END LC_COLLATE + --- glibc-2.7.orig/debian/patches/localedata/cvs-locale-ig_NG.diff +++ glibc-2.7/debian/patches/localedata/cvs-locale-ig_NG.diff @@ -0,0 +1,21 @@ +BZ#5224 + +=================================================================== +RCS file: /cvs/glibc/libc/localedata/locales/ig_NG,v +retrieving revision 1.1 +retrieving revision 1.2 +diff -u -r1.1 -r1.2 +--- libc/localedata/locales/ig_NG 2007/09/30 16:47:13 1.1 ++++ libc/localedata/locales/ig_NG 2007/10/28 08:58:19 1.2 +@@ -117,6 +117,11 @@ + collating-element from "" + collating-element from "" + collating-element from "" ++collating-symbol ++collating-element from "" ++collating-element from "" ++collating-element from "" ++collating-element from "" + collating-symbol + collating-element from "" + collating-element from "" --- glibc-2.7.orig/debian/patches/localedata/locales-fr.diff +++ glibc-2.7/debian/patches/localedata/locales-fr.diff @@ -0,0 +1,305 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Various fixes for all French locales +# DP: Related bugs: #248377 #351786 #345481 +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: not submitted +# DP: Date: 2006-01-10 + +Index: glibc-2.7/localedata/locales/fr_BE +=================================================================== +--- glibc-2.7.orig/localedata/locales/fr_BE 2007-10-23 08:51:25.000000000 -0400 ++++ glibc-2.7/localedata/locales/fr_BE 2007-10-23 08:56:54.000000000 -0400 +@@ -42,6 +42,7 @@ + category "fr_BE:2000";LC_NAME + category "fr_BE:2000";LC_ADDRESS + category "fr_BE:2000";LC_TELEPHONE ++category "fr_BE:2000";LC_MEASUREMENT + + END LC_IDENTIFICATION + +@@ -79,7 +80,7 @@ + LC_NUMERIC + decimal_point "" + thousands_sep "" +-grouping 0;0 ++grouping 3;3 + END LC_NUMERIC + + LC_TIME +@@ -117,9 +118,10 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" +-date_fmt "/ +-/ +-" ++date_fmt "/ ++/ ++/ ++" + END LC_TIME + + LC_PAPER +@@ -142,8 +144,7 @@ + END LC_MEASUREMENT + + LC_NAME +-name_fmt "/ +-" ++copy "fr_FR" + END LC_NAME + + LC_ADDRESS +@@ -155,4 +156,13 @@ + country_ab2 "" + country_ab3 "" + country_num 056 ++country_name "" ++country_car "" ++% FIXME ++country_post "" ++country_isbn 2 ++lang_name "" ++lang_ab "" ++lang_term "" ++lang_lib "" + END LC_ADDRESS +Index: glibc-2.7/localedata/locales/fr_CA +=================================================================== +--- glibc-2.7.orig/localedata/locales/fr_CA 2007-10-23 08:51:25.000000000 -0400 ++++ glibc-2.7/localedata/locales/fr_CA 2007-10-23 08:56:54.000000000 -0400 +@@ -43,6 +43,7 @@ + category "fr_CA:2000";LC_NAME + category "fr_CA:2000";LC_ADDRESS + category "fr_CA:2000";LC_TELEPHONE ++category "fr_CA:2000";LC_MEASUREMENT + + END LC_IDENTIFICATION + +@@ -80,7 +81,7 @@ + LC_NUMERIC + decimal_point "" + thousands_sep "" +-grouping 0;0 ++grouping 3;3 + END LC_NUMERIC + + LC_TIME +@@ -118,9 +119,10 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" +-date_fmt "/ +-/ +-" ++date_fmt "/ ++/ ++/ ++" + END LC_TIME + + LC_PAPER +@@ -136,8 +138,7 @@ + END LC_MEASUREMENT + + LC_NAME +-name_fmt "/ +-" ++copy "fr_FR" + END LC_NAME + + LC_ADDRESS +@@ -149,4 +150,12 @@ + country_ab2 "" + country_ab3 "" + country_num 124 ++country_name "" ++country_car "" ++country_post "" ++country_isbn 2 ++lang_name "" ++lang_ab "" ++lang_term "" ++lang_lib "" + END LC_ADDRESS +Index: glibc-2.7/localedata/locales/fr_CH +=================================================================== +--- glibc-2.7.orig/localedata/locales/fr_CH 2007-10-23 08:51:25.000000000 -0400 ++++ glibc-2.7/localedata/locales/fr_CH 2007-10-23 08:56:54.000000000 -0400 +@@ -43,6 +43,7 @@ + category "fr_CH:2000";LC_NAME + category "fr_CH:2000";LC_ADDRESS + category "fr_CH:2000";LC_TELEPHONE ++category "fr_CH:2000";LC_MEASUREMENT + + END LC_IDENTIFICATION + +@@ -64,9 +65,7 @@ + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 0;0 ++copy "de_CH" + END LC_NUMERIC + + LC_TIME +@@ -104,9 +103,10 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" +-date_fmt "/ +-/ +-" ++date_fmt "/ ++/ ++/ ++" + END LC_TIME + + LC_PAPER +@@ -128,8 +128,7 @@ + END LC_MEASUREMENT + + LC_NAME +-name_fmt "/ +-" ++copy "fr_FR" + END LC_NAME + + LC_ADDRESS +@@ -141,4 +140,12 @@ + country_ab2 "" + country_ab3 "" + country_num 756 ++country_name "" ++country_car "" ++country_post "" ++country_isbn 2 ++lang_name "" ++lang_ab "" ++lang_term "" ++lang_lib "" + END LC_ADDRESS +Index: glibc-2.7/localedata/locales/fr_FR +=================================================================== +--- glibc-2.7.orig/localedata/locales/fr_FR 2007-10-23 08:51:25.000000000 -0400 ++++ glibc-2.7/localedata/locales/fr_FR 2007-10-23 08:57:55.000000000 -0400 +@@ -42,6 +42,7 @@ + category "fr_FR:2000";LC_NAME + category "fr_FR:2000";LC_ADDRESS + category "fr_FR:2000";LC_TELEPHONE ++category "fr_FR:2000";LC_MEASUREMENT + + END LC_IDENTIFICATION + +@@ -88,7 +89,7 @@ + LC_NUMERIC + decimal_point "" + thousands_sep "" +-grouping 0;0 ++grouping 3;3 + END LC_NUMERIC + + LC_TIME +@@ -126,9 +127,10 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" +-date_fmt "/ +-/ +-" ++date_fmt "/ ++/ ++/ ++" + + week 7;19971201;4 + first_weekday 1 +@@ -155,6 +157,11 @@ + LC_NAME + name_fmt "/ + " ++name_gen "" ++name_mr "" ++name_mrs "" ++name_miss "" ++name_ms "" + END LC_NAME + + LC_ADDRESS +@@ -166,4 +173,12 @@ + country_ab2 "" + country_ab3 "" + country_num 250 ++country_name "" ++country_car "" ++country_post "" ++country_isbn 2 ++lang_name "" ++lang_ab "" ++lang_term "" ++lang_lib "" + END LC_ADDRESS +Index: glibc-2.7/localedata/locales/fr_LU +=================================================================== +--- glibc-2.7.orig/localedata/locales/fr_LU 2007-10-23 08:51:25.000000000 -0400 ++++ glibc-2.7/localedata/locales/fr_LU 2007-10-23 08:56:54.000000000 -0400 +@@ -42,6 +42,7 @@ + category "fr_LU:2000";LC_NAME + category "fr_LU:2000";LC_ADDRESS + category "fr_LU:2000";LC_TELEPHONE ++category "fr_LU:2000";LC_MEASUREMENT + + END LC_IDENTIFICATION + +@@ -78,8 +79,8 @@ + + LC_NUMERIC + decimal_point "" +-thousands_sep "" +-grouping 0;0 ++thousands_sep "" ++grouping 3;3 + END LC_NUMERIC + + LC_TIME +@@ -117,9 +118,10 @@ + t_fmt "" + am_pm "";"" + t_fmt_ampm "" +-date_fmt "/ +-/ +-" ++date_fmt "/ ++/ ++/ ++" + END LC_TIME + + LC_PAPER +@@ -141,8 +143,7 @@ + END LC_MEASUREMENT + + LC_NAME +-name_fmt "/ +-" ++copy "fr_FR" + END LC_NAME + + LC_ADDRESS +@@ -154,4 +155,12 @@ + country_ab2 "" + country_ab3 "" + country_num 442 ++country_name "" ++country_car "" ++country_post "" ++country_isbn 2 ++lang_name "" ++lang_ab "" ++lang_term "" ++lang_lib "" + END LC_ADDRESS --- glibc-2.7.orig/debian/patches/localedata/locales_CH.diff +++ glibc-2.7/debian/patches/localedata/locales_CH.diff @@ -0,0 +1,20 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: LC_NUMERIC: copy de_CH into it_CH +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: not submitted +# DP: Date: 2006-10-02 + +--- glibc-2.6.orig/localedata/locales/it_CH ++++ glibc-2.6/localedata/locales/it_CH +@@ -57,9 +57,7 @@ + END LC_MONETARY + + LC_NUMERIC +-decimal_point "" +-thousands_sep "" +-grouping 3;3 ++copy "de_CH" + END LC_NUMERIC + + LC_TIME --- glibc-2.7.orig/debian/patches/alpha/submitted-fdatasync.diff +++ glibc-2.7/debian/patches/alpha/submitted-fdatasync.diff @@ -0,0 +1,104 @@ +2007-11-26 Aurelien Jarno + + * sysdeps/unix/sysv/linux/kernel-features.h: define + __ASSUME_FDATASYNC. + * sysdeps/unix/sysv/linux/fdatasync.c: New file. + * sysdeps/unix/sysv/linux/syscalls.list: Remove fdatasync. + +--- sysdeps/unix/sysv/linux/kernel-features.h.orig 2007-11-25 23:17:51.000000000 +0000 ++++ sysdeps/unix/sysv/linux/kernel-features.h 2007-11-26 00:10:14.000000000 +0000 +@@ -467,6 +467,12 @@ + # define __ASSUME_FUTEX_LOCK_PI 1 + #endif + ++/* Support for fsyncdata syscall was added in 2.6.22 on alpha, but it ++ was already present in 2.0 kernels on other architectures. */ ++#if (!defined __alpha || __LINUX_KERNEL_VERSION >= 0x020616) ++# define __ASSUME_FDATASYNC 1 ++#endif ++ + /* Support for utimensat syscall was added in 2.6.22, on alpha and s390 + only after 2.6.22-rc1. */ + #if __LINUX_KERNEL_VERSION >= 0x020616 \ +--- /dev/null 2007-11-12 14:07:24.000000000 +0000 ++++ sysdeps/unix/sysv/linux/fdatasync.c 2007-11-26 00:07:25.000000000 +0000 +@@ -0,0 +1,69 @@ ++/* fdatasync -- synchronize at least the data part of a file with ++ the underlying media. Linux version. ++ ++ Copyright (C) 2007 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include ++ ++#if defined __NR_fdatasync && !defined __ASSUME_FDATASYNC ++static int __have_no_fdatasync; ++#endif ++ ++static int ++do_fdatasync (int fd) ++{ ++#ifdef __ASSUME_FDATASYNC ++ return INLINE_SYSCALL (fdatasync, 1, fd); ++#elif defined __NR_fdatasync ++ if (!__builtin_expect (__have_no_fdatasync, 0)) ++ { ++ int result = INLINE_SYSCALL (fdatasync, 1, fd); ++ if (__builtin_expect (result, 0) != -1 || errno != ENOSYS) ++ return result; ++ ++ __have_no_fdatasync = 1; ++ } ++#endif ++ return INLINE_SYSCALL (fsync, 1, fd); ++} ++ ++int ++__fdatasync (int fd) ++{ ++ if (SINGLE_THREAD_P) ++ return do_fdatasync (fd); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ ++ int result = do_fdatasync (fd); ++ ++ LIBC_CANCEL_RESET (oldtype); ++ ++ return result; ++} ++ ++weak_alias (__fdatasync, fdatasync) ++ +--- sysdeps/unix/sysv/linux/syscalls.list.orig 2007-11-26 00:12:42.000000000 +0000 ++++ sysdeps/unix/sysv/linux/syscalls.list 2007-11-26 00:12:51.000000000 +0000 +@@ -10,7 +10,6 @@ + epoll_create EXTRA epoll_create i:i epoll_create + epoll_ctl EXTRA epoll_ctl i:iiip epoll_ctl + epoll_wait EXTRA epoll_wait Ci:ipii epoll_wait +-fdatasync - fdatasync Ci:i fdatasync + flock - flock i:ii __flock flock + fork - fork i: __libc_fork __fork fork + get_kernel_syms EXTRA get_kernel_syms i:p get_kernel_syms --- glibc-2.7.orig/debian/patches/alpha/submitted-fpu-round.diff +++ glibc-2.7/debian/patches/alpha/submitted-fpu-round.diff @@ -0,0 +1,265 @@ +2007-11-16 Aurelien Jarno + + * sysdeps/alpha/fpu/s_ceil.c: Restore old version. + * sysdeps/alpha/fpu/s_ceilf.c: Likewise. + * sysdeps/alpha/fpu/s_floor.c: Likewise. + * sysdeps/alpha/fpu/s_floorf.c: Likewise. + * sysdeps/alpha/fpu/s_rint.c: Likewise. + * sysdeps/alpha/fpu/s_rintf.c: Likewise. + + +--- sysdeps/alpha/fpu/s_ceil.c.orig ++++ sysdeps/alpha/fpu/s_ceil.c +@@ -27,20 +27,25 @@ + double + __ceil (double x) + { +- double two52 = copysign (0x1.0p52, x); +- double r, tmp; +- +- __asm ( ++ if (isless (fabs (x), 9007199254740992.0)) /* 1 << DBL_MANT_DIG */ ++ { ++ double tmp1, new_x; ++ ++ new_x = -x; ++ __asm ( + #ifdef _IEEE_FP_INEXACT +- "addt/suim %2, %3, %1\n\tsubt/suim %1, %3, %0" ++ "cvttq/svim %2,%1\n\t" + #else +- "addt/sum %2, %3, %1\n\tsubt/sum %1, %3, %0" ++ "cvttq/svm %2,%1\n\t" + #endif +- : "=&f"(r), "=&f"(tmp) +- : "f"(-x), "f"(-two52)); ++ "cvtqt/m %1,%0\n\t" ++ : "=f"(new_x), "=&f"(tmp1) ++ : "f"(new_x)); + +- /* Fix up the negation we did above, as well as handling -0 properly. */ +- return copysign (r, x); ++ /* Fix up the negation we did above, as well as handling -0 properly. */ ++ x = copysign(new_x, x); ++ } ++ return x; + } + + weak_alias (__ceil, ceil) +--- sysdeps/alpha/fpu/s_ceilf.c.orig ++++ sysdeps/alpha/fpu/s_ceilf.c +@@ -26,20 +26,30 @@ + float + __ceilf (float x) + { +- float two23 = copysignf (0x1.0p23, x); +- float r, tmp; +- +- __asm ( ++ if (isless (fabsf (x), 16777216.0f)) /* 1 << FLT_MANT_DIG */ ++ { ++ /* Note that Alpha S_Floating is stored in registers in a ++ restricted T_Floating format, so we don't even need to ++ convert back to S_Floating in the end. The initial ++ conversion to T_Floating is needed to handle denormals. */ ++ ++ float tmp1, tmp2, new_x; ++ ++ new_x = -x; ++ __asm ("cvtst/s %3,%2\n\t" + #ifdef _IEEE_FP_INEXACT +- "adds/suim %2, %3, %1\n\tsubs/suim %1, %3, %0" ++ "cvttq/svim %2,%1\n\t" + #else +- "adds/sum %2, %3, %1\n\tsubs/sum %1, %3, %0" ++ "cvttq/svm %2,%1\n\t" + #endif +- : "=&f"(r), "=&f"(tmp) +- : "f"(-x), "f"(-two23)); ++ "cvtqt/m %1,%0\n\t" ++ : "=f"(new_x), "=&f"(tmp1), "=&f"(tmp2) ++ : "f"(new_x)); + +- /* Fix up the negation we did above, as well as handling -0 properly. */ +- return copysignf (r, x); ++ /* Fix up the negation we did above, as well as handling -0 properly. */ ++ x = copysignf(new_x, x); ++ } ++ return x; + } + + weak_alias (__ceilf, ceilf) +--- sysdeps/alpha/fpu/s_floor.c.orig ++++ sysdeps/alpha/fpu/s_floor.c +@@ -21,26 +21,32 @@ + #include + + +-/* Use the -inf rounding mode conversion instructions to implement floor. */ ++/* Use the -inf rounding mode conversion instructions to implement ++ floor. We note when the exponent is large enough that the value ++ must be integral, as this avoids unpleasant integer overflows. */ + + double + __floor (double x) + { +- double two52 = copysign (0x1.0p52, x); +- double r, tmp; +- +- __asm ( ++ if (isless (fabs (x), 9007199254740992.0)) /* 1 << DBL_MANT_DIG */ ++ { ++ double tmp1, new_x; ++ ++ __asm ( + #ifdef _IEEE_FP_INEXACT +- "addt/suim %2, %3, %1\n\tsubt/suim %1, %3, %0" ++ "cvttq/svim %2,%1\n\t" + #else +- "addt/sum %2, %3, %1\n\tsubt/sum %1, %3, %0" ++ "cvttq/svm %2,%1\n\t" + #endif +- : "=&f"(r), "=&f"(tmp) +- : "f"(x), "f"(two52)); ++ "cvtqt/m %1,%0\n\t" ++ : "=f"(new_x), "=&f"(tmp1) ++ : "f"(x)); + +- /* floor(-0) == -0, and in general we'll always have the same +- sign as our input. */ +- return copysign (r, x); ++ /* floor(-0) == -0, and in general we'll always have the same ++ sign as our input. */ ++ x = copysign(new_x, x); ++ } ++ return x; + } + + weak_alias (__floor, floor) +--- sysdeps/alpha/fpu/s_floorf.c.orig ++++ sysdeps/alpha/fpu/s_floorf.c +@@ -20,26 +20,37 @@ + #include + + +-/* Use the -inf rounding mode conversion instructions to implement floor. */ ++/* Use the -inf rounding mode conversion instructions to implement ++ floor. We note when the exponent is large enough that the value ++ must be integral, as this avoids unpleasant integer overflows. */ + + float + __floorf (float x) + { +- float two23 = copysignf (0x1.0p23, x); +- float r, tmp; +- +- __asm ( ++ if (isless (fabsf (x), 16777216.0f)) /* 1 << FLT_MANT_DIG */ ++ { ++ /* Note that Alpha S_Floating is stored in registers in a ++ restricted T_Floating format, so we don't even need to ++ convert back to S_Floating in the end. The initial ++ conversion to T_Floating is needed to handle denormals. */ ++ ++ float tmp1, tmp2, new_x; ++ ++ __asm ("cvtst/s %3,%2\n\t" + #ifdef _IEEE_FP_INEXACT +- "adds/suim %2, %3, %1\n\tsubs/suim %1, %3, %0" ++ "cvttq/svim %2,%1\n\t" + #else +- "adds/sum %2, %3, %1\n\tsubs/sum %1, %3, %0" ++ "cvttq/svm %2,%1\n\t" + #endif +- : "=&f"(r), "=&f"(tmp) +- : "f"(x), "f"(two23)); ++ "cvtqt/m %1,%0\n\t" ++ : "=f"(new_x), "=&f"(tmp1), "=&f"(tmp2) ++ : "f"(x)); + +- /* floor(-0) == -0, and in general we'll always have the same +- sign as our input. */ +- return copysignf (r, x); ++ /* floor(-0) == -0, and in general we'll always have the same ++ sign as our input. */ ++ x = copysignf(new_x, x); ++ } ++ return x; + } + + weak_alias (__floorf, floorf) +--- sysdeps/alpha/fpu/s_rint.c.orig ++++ sysdeps/alpha/fpu/s_rint.c +@@ -24,15 +24,24 @@ + double + __rint (double x) + { +- double two52 = copysign (0x1.0p52, x); +- double r; +- +- r = x + two52; +- r = r - two52; ++ if (isless (fabs (x), 9007199254740992.0)) /* 1 << DBL_MANT_DIG */ ++ { ++ double tmp1, new_x; ++ __asm ( ++#ifdef _IEEE_FP_INEXACT ++ "cvttq/svid %2,%1\n\t" ++#else ++ "cvttq/svd %2,%1\n\t" ++#endif ++ "cvtqt/d %1,%0\n\t" ++ : "=f"(new_x), "=&f"(tmp1) ++ : "f"(x)); + +- /* rint(-0.1) == -0, and in general we'll always have the same sign +- as our input. */ +- return copysign (r, x); ++ /* rint(-0.1) == -0, and in general we'll always have the same ++ sign as our input. */ ++ x = copysign(new_x, x); ++ } ++ return x; + } + + weak_alias (__rint, rint) +--- sysdeps/alpha/fpu/s_rintf.c.orig ++++ sysdeps/alpha/fpu/s_rintf.c +@@ -23,15 +23,30 @@ + float + __rintf (float x) + { +- float two23 = copysignf (0x1.0p23, x); +- float r; ++ if (isless (fabsf (x), 16777216.0f)) /* 1 << FLT_MANT_DIG */ ++ { ++ /* Note that Alpha S_Floating is stored in registers in a ++ restricted T_Floating format, so we don't even need to ++ convert back to S_Floating in the end. The initial ++ conversion to T_Floating is needed to handle denormals. */ + +- r = x + two23; +- r = r - two23; ++ float tmp1, tmp2, new_x; + +- /* rint(-0.1) == -0, and in general we'll always have the same sign +- as our input. */ +- return copysign (r, x); ++ __asm ("cvtst/s %3,%2\n\t" ++#ifdef _IEEE_FP_INEXACT ++ "cvttq/svid %2,%1\n\t" ++#else ++ "cvttq/svd %2,%1\n\t" ++#endif ++ "cvtqt/d %1,%0\n\t" ++ : "=f"(new_x), "=&f"(tmp1), "=&f"(tmp2) ++ : "f"(x)); ++ ++ /* rint(-0.1) == -0, and in general we'll always have the same ++ sign as our input. */ ++ x = copysignf(new_x, x); ++ } ++ return x; + } + + weak_alias (__rintf, rintf) --- glibc-2.7.orig/debian/patches/alpha/submitted-PTR_MANGLE.diff +++ glibc-2.7/debian/patches/alpha/submitted-PTR_MANGLE.diff @@ -0,0 +1,94 @@ +--- glibc-2.7.orig/sysdeps/unix/alpha/sysdep.h ++++ glibc-2.7/sysdeps/unix/alpha/sysdep.h +@@ -397,42 +397,4 @@ + _sc_ret = _sc_0, _sc_err = _sc_19; \ + } + +-/* Pointer mangling support. Note that tls access is slow enough that +- we don't deoptimize things by placing the pointer check value there. */ +- +-#include +- +-#if defined NOT_IN_libc && defined IS_IN_rtld +-# ifdef __ASSEMBLER__ +-# define PTR_MANGLE(dst, src, tmp) \ +- ldah tmp, __pointer_chk_guard_local($29) !gprelhigh; \ +- ldq tmp, __pointer_chk_guard_local(tmp) !gprellow; \ +- xor src, tmp, dst +-# define PTR_MANGLE2(dst, src, tmp) \ +- xor src, tmp, dst +-# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp) +-# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp) +-# else +-extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden; +-# define PTR_MANGLE(var) \ +- (var) = (__typeof (var)) ((uintptr_t) (var) ^ __pointer_chk_guard_local) +-# define PTR_DEMANGLE(var) PTR_MANGLE(var) +-# endif +-#elif defined PIC +-# ifdef __ASSEMBLER__ +-# define PTR_MANGLE(dst, src, tmp) \ +- ldq tmp, __pointer_chk_guard; \ +- xor src, tmp, dst +-# define PTR_MANGLE2(dst, src, tmp) \ +- xor src, tmp, dst +-# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp) +-# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp) +-# else +-extern uintptr_t __pointer_chk_guard attribute_relro; +-# define PTR_MANGLE(var) \ +- (var) = (void *) ((uintptr_t) (var) ^ __pointer_chk_guard) +-# define PTR_DEMANGLE(var) PTR_MANGLE(var) +-# endif +-#endif +- + #endif /* ASSEMBLER */ +--- glibc-2.7.orig/sysdeps/unix/sysv/linux/alpha/sysdep.h ++++ glibc-2.7/sysdeps/unix/sysv/linux/alpha/sysdep.h +@@ -98,4 +98,46 @@ + INTERNAL_SYSCALL1(name, err_out, nr, args); \ + }) + ++/* Pointer mangling support. Note that tls access is slow enough that ++ we don't deoptimize things by placing the pointer check value there. */ ++ ++#if defined NOT_IN_libc && defined IS_IN_rtld ++# ifdef __ASSEMBLER__ ++# define PTR_MANGLE(dst, src, tmp) \ ++ ldah tmp, __pointer_chk_guard_local($29) !gprelhigh; \ ++ ldq tmp, __pointer_chk_guard_local(tmp) !gprellow; \ ++ xor src, tmp, dst ++# define PTR_MANGLE2(dst, src, tmp) \ ++ xor src, tmp, dst ++# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp) ++# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp) ++# else ++extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden; ++# define PTR_MANGLE(var) \ ++ (var) = (__typeof (var)) ((uintptr_t) (var) ^ __pointer_chk_guard_local) ++# define PTR_DEMANGLE(var) PTR_MANGLE(var) ++# endif ++#elif defined PIC ++# ifdef __ASSEMBLER__ ++# define PTR_MANGLE(dst, src, tmp) \ ++ ldq tmp, __pointer_chk_guard; \ ++ xor src, tmp, dst ++# define PTR_MANGLE2(dst, src, tmp) \ ++ xor src, tmp, dst ++# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp) ++# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp) ++# else ++extern uintptr_t __pointer_chk_guard attribute_relro; ++# define PTR_MANGLE(var) \ ++ (var) = (void *) ((uintptr_t) (var) ^ __pointer_chk_guard) ++# define PTR_DEMANGLE(var) PTR_MANGLE(var) ++# endif ++#else ++/* Pointer mangling is not yet supported for static libc on alpha. */ ++# ifndef __ASSEMBLER__ ++# define PTR_MANGLE(var) (void) (var) ++# define PTR_DEMANGLE(var) (void) (var) ++# endif ++#endif ++ + #endif /* _LINUX_ALPHA_SYSDEP_H */ --- glibc-2.7.orig/debian/patches/alpha/local-dl-procinfo.diff +++ glibc-2.7/debian/patches/alpha/local-dl-procinfo.diff @@ -0,0 +1,159 @@ +--- /dev/null ++++ sysdeps/alpha/dl-procinfo.h +@@ -0,0 +1,68 @@ ++/* Alpha version of processor capability information handling macros. ++ Copyright (C) 2007 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Aurelien Jarno , 2007. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _DL_PROCINFO_H ++#define _DL_PROCINFO_H 1 ++ ++#include ++ ++ ++/* Mask to filter out platforms. */ ++#define _DL_HWCAP_PLATFORM (-1ULL) ++ ++#define _DL_PLATFORMS_COUNT 5 ++ ++static inline const char * ++__attribute__ ((unused)) ++_dl_platform_string (int idx) ++{ ++ return GLRO(dl_alpha_platforms)[idx]; ++}; ++ ++static inline int ++__attribute__ ((unused, always_inline)) ++_dl_string_platform (const char *str) ++{ ++ int i; ++ ++ if (str != NULL) ++ for (i = 0; i < _DL_PLATFORMS_COUNT; ++i) ++ { ++ if (strcmp (str, _dl_platform_string (i)) == 0) ++ return i; ++ } ++ return -1; ++}; ++ ++/* We cannot provide a general printing function. */ ++#define _dl_procinfo(word) -1 ++ ++/* There are no hardware capabilities defined. */ ++#define _dl_hwcap_string(idx) "" ++ ++/* By default there is no important hardware capability. */ ++#define HWCAP_IMPORTANT (0) ++ ++/* We don't have any hardware capabilities. */ ++#define _DL_HWCAP_COUNT 0 ++ ++#define _dl_string_hwcap(str) (-1) ++ ++#endif /* dl-procinfo.h */ +--- /dev/null ++++ sysdeps/alpha/dl-procinfo.c +@@ -0,0 +1,64 @@ ++/* Data for Alpha version of processor capability information. ++ Copyright (C) 2007 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Aurelien Jarno , 2007. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* This information must be kept in sync with the _DL_PLATFORM_COUNT ++ definitions in procinfo.h. ++ ++ If anything should be added here check whether the size of each string ++ is still ok with the given array size. ++ ++ All the #ifdefs in the definitions are quite irritating but ++ necessary if we want to avoid duplicating the information. There ++ are three different modes: ++ ++ - PROCINFO_DECL is defined. This means we are only interested in ++ declarations. ++ ++ - PROCINFO_DECL is not defined: ++ ++ + if SHARED is defined the file is included in an array ++ initializer. The .element = { ... } syntax is needed. ++ ++ + if SHARED is not defined a normal array initialization is ++ needed. ++ */ ++ ++#ifndef PROCINFO_CLASS ++#define PROCINFO_CLASS ++#endif ++ ++#if !defined PROCINFO_DECL && defined SHARED ++ ._dl_alpha_platforms ++#else ++PROCINFO_CLASS const char _dl_alpha_platforms[5][5] ++#endif ++#ifndef PROCINFO_DECL ++= { ++ "ev4", "ev5", "ev56", "ev6", "ev67" ++ } ++#endif ++#if !defined SHARED || defined PROCINFO_DECL ++; ++#else ++, ++#endif ++ ++#undef PROCINFO_DECL ++#undef PROCINFO_CLASS +--- sysdeps/alpha/dl-machine.h.orig 2007-12-14 12:28:22.000000000 +0100 ++++ sysdeps/alpha/dl-machine.h 2007-12-14 12:30:16.000000000 +0100 +@@ -249,6 +249,18 @@ + /* The alpha never uses Elf64_Rel relocations. */ + #define ELF_MACHINE_NO_REL 1 + ++/* We define an initialization functions. This is called very early in ++ * _dl_sysdep_start. */ ++#define DL_PLATFORM_INIT dl_platform_init () ++ ++static inline void __attribute__ ((unused)) ++dl_platform_init (void) ++{ ++ if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0') ++ /* Avoid an empty string which would disturb us. */ ++ GLRO(dl_platform) = NULL; ++} ++ + /* Fix up the instructions of a PLT entry to invoke the function + rather than the dynamic linker. */ + static inline Elf64_Addr --- glibc-2.7.orig/debian/patches/alpha/local-gcc4.1.diff +++ glibc-2.7/debian/patches/alpha/local-gcc4.1.diff @@ -0,0 +1,51 @@ +2006-05-30 Falk Hueffner + + * sysdeps/unix/sysv/linux/alpha/ioperm.c: force the architecture + to ev6 in assembly code. + +{standard input}: Assembler messages: +{standard input}:341: Error: macro requires $at register while noat in effect +{standard input}:374: Error: macro requires $at register while noat in effect +{standard input}:438: Error: macro requires $at register while noat in effect +{standard input}:471: Error: macro requires $at register while noat in effect +make[3]: *** [/tmp/buildd/glibc-2.3.6/build-tree/alpha-libc/misc/ioperm.o] Error 1 + +Hrm. gcc puts .arch ev4 into the .s, and this overrides -mev6 for as. +I cannot really think of anything better than + +--- sysdeps/unix/sysv/linux/alpha/ioperm.c.orig ++++ sysdeps/unix/sysv/linux/alpha/ioperm.c +@@ -178,13 +178,13 @@ + static inline void + stb_mb(unsigned char val, unsigned long addr) + { +- __asm__("stb %1,%0; mb" : "=m"(*(vucp)addr) : "r"(val)); ++ __asm__(".arch ev6; stb %1,%0; mb" : "=m"(*(vucp)addr) : "r"(val)); + } + + static inline void + stw_mb(unsigned short val, unsigned long addr) + { +- __asm__("stw %1,%0; mb" : "=m"(*(vusp)addr) : "r"(val)); ++ __asm__(".arch ev6; stw %1,%0; mb" : "=m"(*(vusp)addr) : "r"(val)); + } + + static inline void +@@ -356,7 +356,7 @@ + unsigned long int addr = dense_port_to_cpu_addr (port); + unsigned char r; + +- __asm__ ("ldbu %0,%1" : "=r"(r) : "m"(*(vucp)addr)); ++ __asm__ (".arch ev6; ldbu %0,%1" : "=r"(r) : "m"(*(vucp)addr)); + return r; + } + +@@ -366,7 +366,7 @@ + unsigned long int addr = dense_port_to_cpu_addr (port); + unsigned short r; + +- __asm__ ("ldwu %0,%1" : "=r"(r) : "m"(*(vusp)addr)); ++ __asm__ (".arch ev6; ldwu %0,%1" : "=r"(r) : "m"(*(vusp)addr)); + return r; + } + --- glibc-2.7.orig/debian/patches/alpha/submitted-xstat.diff +++ glibc-2.7/debian/patches/alpha/submitted-xstat.diff @@ -0,0 +1,233 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Fix alpha compile failure when kernel header < 2.6.4 is used. +# DP: Related bugs: +# DP: Dpatch author: GOTO Masanori +# DP: Patch author: GOTO Masanori +# DP: Upstream status: Submitting +# DP: Status Details: Submitting +# DP: Date: 2005-03-03 + +Subject: [PATCH] alpha compilation fix with the kernel header < 2.6.4. + +This patch fixes alpha compilation fix when kernel header (< 2.6.4) is +used. Note that I unfold the original "fail:" part because enclosing +only "fail:" with #ifdef __ASSUME_STAT64_SYSCALL and __NR_*stat64 looks +unseemly. + +Regards, +-- gotom + +2005-02-18 GOTO Masanori + + * sysdeps/unix/sysv/linux/alpha/fxstat.c: Check + __ASSUME_STAT64_SYSCALL. + * sysdeps/unix/sysv/linux/alpha/lxstat.c: Likewise. + * sysdeps/unix/sysv/linux/alpha/xstat.c: Likewise. + * sysdeps/unix/sysv/linux/alpha/xstatconv.c: Don't define + __libc_missing_axp_stat64 when it's not needed. + * sysdeps/unix/sysv/linux/alpha/xstatconv.h: Likewise. + +--- sysdeps/unix/sysv/linux/alpha/fxstat.c.orig ++++ sysdeps/unix/sysv/linux/alpha/fxstat.c +@@ -1,5 +1,5 @@ + /* fxstat using old-style Unix stat system call. +- Copyright (C) 2004 Free Software Foundation, Inc. ++ Copyright (C) 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 +@@ -35,27 +35,39 @@ + __fxstat (int vers, int fd, struct stat *buf) + { + INTERNAL_SYSCALL_DECL (err); +- int result, errno_out; ++ int result; + struct kernel_stat kbuf; + ++#if __ASSUME_STAT64_SYSCALL > 0 ++ if (vers == _STAT_VER_KERNEL64) ++ { ++ result = INTERNAL_SYSCALL (fstat64, err, 2, fd, buf); ++ if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) ++ return result; ++ __set_errno (INTERNAL_SYSCALL_ERRNO (result, err)); ++ return -1; ++ } ++#elif defined __NR_fstat64 + if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64) + { ++ int errno_out; + result = INTERNAL_SYSCALL (fstat64, err, 2, fd, buf); + if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) + return result; + errno_out = INTERNAL_SYSCALL_ERRNO (result, err); + if (errno_out != ENOSYS) +- goto fail; ++ { ++ __set_errno (errno_out); ++ return -1; ++ } + __libc_missing_axp_stat64 = 1; + } ++#endif + + result = INTERNAL_SYSCALL (fstat, err, 2, fd, &kbuf); + if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) + return __xstat_conv (vers, &kbuf, buf); +- errno_out = INTERNAL_SYSCALL_ERRNO (result, err); +- +- fail: +- __set_errno (errno_out); ++ __set_errno (INTERNAL_SYSCALL_ERRNO (result, err)); + return -1; + } + hidden_def (__fxstat) +--- sysdeps/unix/sysv/linux/alpha/lxstat.c.orig ++++ sysdeps/unix/sysv/linux/alpha/lxstat.c +@@ -1,5 +1,5 @@ + /* lxstat using old-style Unix stat system call. +- Copyright (C) 2004 Free Software Foundation, Inc. ++ Copyright (C) 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 +@@ -35,27 +35,39 @@ + __lxstat (int vers, const char *name, struct stat *buf) + { + INTERNAL_SYSCALL_DECL (err); +- int result, errno_out; ++ int result; + struct kernel_stat kbuf; + ++#if __ASSUME_STAT64_SYSCALL > 0 ++ if (vers == _STAT_VER_KERNEL64) ++ { ++ result = INTERNAL_SYSCALL (lstat64, err, 2, name, buf); ++ if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) ++ return result; ++ __set_errno (INTERNAL_SYSCALL_ERRNO (result, err)); ++ return -1; ++ } ++#elif defined __NR_lstat64 + if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64) + { ++ int errno_out; + result = INTERNAL_SYSCALL (lstat64, err, 2, name, buf); + if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) + return result; + errno_out = INTERNAL_SYSCALL_ERRNO (result, err); + if (errno_out != ENOSYS) +- goto fail; ++ { ++ __set_errno (errno_out); ++ return -1; ++ } + __libc_missing_axp_stat64 = 1; + } ++#endif + + result = INTERNAL_SYSCALL (lstat, err, 2, name, &kbuf); + if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) + return __xstat_conv (vers, &kbuf, buf); +- errno_out = INTERNAL_SYSCALL_ERRNO (result, err); +- +- fail: +- __set_errno (errno_out); ++ __set_errno (INTERNAL_SYSCALL_ERRNO (result, err)); + return -1; + } + hidden_def (__lxstat) +--- sysdeps/unix/sysv/linux/alpha/xstat.c.orig ++++ sysdeps/unix/sysv/linux/alpha/xstat.c +@@ -1,5 +1,5 @@ + /* xstat using old-style Unix stat system call. +- Copyright (C) 2004 Free Software Foundation, Inc. ++ Copyright (C) 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 +@@ -35,27 +35,39 @@ + __xstat (int vers, const char *name, struct stat *buf) + { + INTERNAL_SYSCALL_DECL (err); +- int result, errno_out; ++ int result; + struct kernel_stat kbuf; + ++#if __ASSUME_STAT64_SYSCALL > 0 ++ if (vers == _STAT_VER_KERNEL64) ++ { ++ result = INTERNAL_SYSCALL (stat64, err, 2, name, buf); ++ if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) ++ return result; ++ __set_errno (INTERNAL_SYSCALL_ERRNO (result, err)); ++ return -1; ++ } ++#elif defined __NR_stat64 + if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64) + { ++ int errno_out; + result = INTERNAL_SYSCALL (stat64, err, 2, name, buf); + if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) + return result; + errno_out = INTERNAL_SYSCALL_ERRNO (result, err); + if (errno_out != ENOSYS) +- goto fail; ++ { ++ __set_errno (errno_out); ++ return -1; ++ } + __libc_missing_axp_stat64 = 1; + } ++#endif + + result = INTERNAL_SYSCALL (stat, err, 2, name, &kbuf); + if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) + return __xstat_conv (vers, &kbuf, buf); +- errno_out = INTERNAL_SYSCALL_ERRNO (result, err); +- +- fail: +- __set_errno (errno_out); ++ __set_errno (INTERNAL_SYSCALL_ERRNO (result, err)); + return -1; + } + hidden_def (__xstat) +--- sysdeps/unix/sysv/linux/alpha/xstatconv.c.orig ++++ sysdeps/unix/sysv/linux/alpha/xstatconv.c +@@ -1,5 +1,5 @@ + /* Convert between the kernel's `struct stat' format, and libc's. +- Copyright (C) 1997, 2003, 2004 Free Software Foundation, Inc. ++ Copyright (C) 1997, 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 +@@ -22,9 +22,14 @@ + #include + #include + #include ++#include + + ++#ifdef __NR_stat64 ++# if __ASSUME_STAT64_SYSCALL == 0 + int __libc_missing_axp_stat64; ++# endif ++#endif + + int + __xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf) +--- sysdeps/unix/sysv/linux/alpha/xstatconv.h.orig ++++ sysdeps/unix/sysv/linux/alpha/xstatconv.h +@@ -18,7 +18,12 @@ + 02111-1307 USA. */ + + #include ++#include + ++#ifdef __NR_stat64 ++# if __ASSUME_STAT64_SYSCALL == 0 + extern int __libc_missing_axp_stat64 attribute_hidden; ++# endif ++#endif + extern int __xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf) + attribute_hidden; --- glibc-2.7.orig/debian/patches/alpha/submitted-pic.diff +++ glibc-2.7/debian/patches/alpha/submitted-pic.diff @@ -0,0 +1,24 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Fix errno for secondary threads on Alpha +# DP: Author: Daniel Jacobowitz +# DP: Upstream status: Pending +# DP: Status Details: Submitted Jan 8, 2003 +# DP: Date: Jan 8, 2003, updated 2003-03-23 by gotom. + +--- sysdeps/unix/alpha/sysdep.S 2003-03-23 16:01:02.000000000 +0900 ++++ sysdeps/unix/alpha/sysdep.S.new 2003-03-23 16:02:50.000000000 +0900 +@@ -96,14 +96,10 @@ + PROLOGUE + + /* Find our per-thread errno address */ +-#if defined PIC && !defined IS_IN_librt +- bsr ra, __errno_location !samegp +-#else + jsr ra, __errno_location + #ifndef GPSAVEREG + ldgp gp, 0(ra) + #endif +-#endif + + /* Store the error value. */ + ldq t0, 8(sp) --- glibc-2.7.orig/debian/patches/sparc/local-sparcv9-target.diff +++ glibc-2.7/debian/patches/sparc/local-sparcv9-target.diff @@ -0,0 +1,38 @@ +# DP: Description: Optimizes the build for sparcv9 +# DP: Author: Ben Collins, Aurelien Jarno +# DP: Upstream status: Debian-Specific +# DP: Status Details: +# DP: Date: July 19, 2007 + +Index: configure +=================================================================== +--- configure.orig 2007-10-23 08:46:15.000000000 -0400 ++++ configure 2007-10-23 08:50:00.000000000 -0400 +@@ -2306,6 +2306,11 @@ + machine="powerpc" + fi + ++# Force v9 ++if test "$machine" = sparc; then ++ machine="sparcv9" ++fi ++ + # Braindead PowerPC box with absolutely no FPU. + case "$machine-$host_os" in + powerpc*-*soft) +Index: configure.in +=================================================================== +--- configure.in.orig 2007-10-23 08:46:15.000000000 -0400 ++++ configure.in 2007-10-23 08:50:00.000000000 -0400 +@@ -307,6 +307,11 @@ + machine="powerpc" + fi + ++# Force v9 ++if test "$machine" = sparc; then ++ machine="sparcv9" ++fi ++ + # Braindead PowerPC box with absolutely no FPU. + case "$machine-$host_os" in + powerpc*-*soft) --- glibc-2.7.orig/debian/patches/sparc/local-fork.diff +++ glibc-2.7/debian/patches/sparc/local-fork.diff @@ -0,0 +1,39 @@ +2006-05-28 Aurelien Jarno + + * sysdeps/unix/sysv/linux/sparc/fork.S: remove, so that fork.c is + used instead. + + +--- sysdeps/unix/sysv/linux/sparc/fork.S ++++ /dev/null +@@ -1,30 +0,0 @@ +-/* Copyright (C) 1997, 1999, 2002 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Miguel de Icaza , 1997. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- 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. */ +- +-#include +- +-PSEUDO (__libc_fork, fork, 0) +- sub %o1, 1, %o1 +- retl +- and %o0, %o1, %o0 +-PSEUDO_END (__libc_fork) +- +-weak_alias (__libc_fork, __fork) +-libc_hidden_def (__fork) +-weak_alias (__libc_fork, fork) --- glibc-2.7.orig/debian/patches/sparc/submitted-v9v2.diff +++ glibc-2.7/debian/patches/sparc/submitted-v9v2.diff @@ -0,0 +1,941 @@ +Return-Path: +X-Original-To: fabbione@fabbione.net +Delivered-To: fabbione@fabbione.net +Received: from localhost (localhost.localdomain [127.0.0.1]) + by trider-g7.fabbione.net (Postfix) with ESMTP id 63115FC0E3 + for ; Sun, 7 Oct 2007 08:32:33 +0200 (CEST) +Received: from trider-g7.fabbione.net ([127.0.0.1]) + by localhost (trider-g7.fabbione.net [127.0.0.1]) (amavisd-new, port 10024) + with LMTP id 21933-03-2 for ; + Sun, 7 Oct 2007 08:32:23 +0200 (CEST) +Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) + by trider-g7.fabbione.net (Postfix) with ESMTP id 53DC0FC0DF + for ; Sun, 7 Oct 2007 08:32:23 +0200 (CEST) +Received: from sunset.davemloft.net (unknown [74.93.104.97]) + by fiordland.canonical.com (Postfix) with ESMTP id 1DEC0B682F6 + for ; Sun, 7 Oct 2007 07:32:21 +0100 (BST) +Received: from localhost (localhost [127.0.0.1]) + by sunset.davemloft.net (Postfix) with ESMTP id AB48A2900FE + for ; Sat, 6 Oct 2007 23:32:20 -0700 (PDT) +Date: Sat, 06 Oct 2007 23:32:20 -0700 (PDT) +Message-Id: <20071006.233220.41654008.davem@davemloft.net> +To: fabbione@ubuntu.com +Subject: new glibc N2 patch +From: David Miller +X-Mailer: Mew version 5.1.52 on Emacs 21.4 / Mule 5.0 (SAKAKI) +Mime-Version: 1.0 +Content-Type: Text/Plain; charset=us-ascii +Content-Transfer-Encoding: 7bit +X-Virus-Scanned: Ubuntu amavisd-new at fabbione.net + + +I'll send a relative diff in another email in case that's +easier for you. + +Index: configure +=================================================================== +RCS file: /cvs/glibc/libc/configure,v +retrieving revision 1.460 +diff -u -p -r1.460 configure +--- configure 8 Jun 2007 03:16:46 -0000 1.460 ++++ configure 7 Oct 2007 06:31:06 -0000 +@@ -2525,12 +2525,16 @@ sparcv8plusb | sparcv9b) + base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9b ;; + sparcv9v) + base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9v ;; ++sparcv9v2) ++ base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9v2 ;; + sparc64) + base_machine=sparc machine=sparc/sparc64 ;; + sparc64b) + base_machine=sparc machine=sparc/sparc64/sparcv9b ;; + sparc64v) + base_machine=sparc machine=sparc/sparc64/sparcv9v ;; ++sparc64v2) ++ base_machine=sparc machine=sparc/sparc64/sparcv9v2 ;; + *) base_machine=$machine ;; + esac + +Index: configure.in +=================================================================== +RCS file: /cvs/glibc/libc/configure.in,v +retrieving revision 1.470 +diff -u -p -r1.470 configure.in +--- configure.in 8 Jun 2007 03:16:36 -0000 1.470 ++++ configure.in 7 Oct 2007 06:31:07 -0000 +@@ -507,12 +507,16 @@ sparcv8plusb | sparcv9b) + base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9b ;; + sparcv9v) + base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9v ;; ++sparcv9v2) ++ base_machine=sparc machine=sparc/sparc32/sparcv9/sparcv9v2 ;; + sparc64) + base_machine=sparc machine=sparc/sparc64 ;; + sparc64b) + base_machine=sparc machine=sparc/sparc64/sparcv9b ;; + sparc64v) + base_machine=sparc machine=sparc/sparc64/sparcv9v ;; ++sparc64v2) ++ base_machine=sparc machine=sparc/sparc64/sparcv9v2 ;; + *) base_machine=$machine ;; + esac + changequote([,])dnl +Index: elf/elf.h +=================================================================== +RCS file: /cvs/glibc/libc/elf/elf.h,v +retrieving revision 1.159 +diff -u -p -r1.159 elf.h +--- elf/elf.h 21 Aug 2007 14:13:59 -0000 1.159 ++++ elf/elf.h 7 Oct 2007 06:31:08 -0000 +@@ -1277,6 +1277,7 @@ typedef struct + #define HWCAP_SPARC_V9 16 /* The CPU is v9, so v8plus is ok. */ + #define HWCAP_SPARC_ULTRA3 32 + #define HWCAP_SPARC_BLKINIT 64 /* Sun4v with block-init/load-twin. */ ++#define HWCAP_SPARC_N2 128 + + /* MIPS R3000 specific definitions. */ + +Index: scripts/config.sub +=================================================================== +RCS file: /cvs/glibc/libc/scripts/config.sub,v +retrieving revision 1.24 +diff -u -p -r1.24 config.sub +--- scripts/config.sub 28 Feb 2006 07:54:05 -0000 1.24 ++++ scripts/config.sub 7 Oct 2007 06:31:12 -0000 +@@ -277,8 +277,8 @@ case $basic_machine in + | pyramid \ + | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ +- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ +- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ ++ | sparc | sparc64 | sparc64b | sparc64v | sparc64v2 | sparc86x | sparclet | sparclite \ ++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sparcv9v2 \ + | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ +@@ -361,9 +361,9 @@ case $basic_machine in + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ +- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ ++ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc64v2-* | sparc86x-* | sparclet-* \ + | sparclite-* \ +- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ ++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sparcv9v2-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ +@@ -1129,7 +1129,7 @@ case $basic_machine in + sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; +- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) ++ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sparcv9v2) + basic_machine=sparc-sun + ;; + cydra) +Index: sysdeps/sparc/dl-procinfo.c +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/sparc/dl-procinfo.c,v +retrieving revision 1.5 +diff -u -p -r1.5 dl-procinfo.c +--- sysdeps/sparc/dl-procinfo.c 25 Feb 2006 03:36:58 -0000 1.5 ++++ sysdeps/sparc/dl-procinfo.c 7 Oct 2007 06:31:14 -0000 +@@ -47,10 +47,10 @@ + #if !defined PROCINFO_DECL && defined SHARED + ._dl_sparc_cap_flags + #else +-PROCINFO_CLASS const char _dl_sparc_cap_flags[7][7] ++PROCINFO_CLASS const char _dl_sparc_cap_flags[8][7] + #endif + #ifndef PROCINFO_DECL +- = { "flush", "stbar", "swap", "muldiv", "v9", "ultra3", "v9v" } ++ = { "flush", "stbar", "swap", "muldiv", "v9", "ultra3", "v9v", "v9v2" } + #endif + #if !defined SHARED || defined PROCINFO_DECL + ; +Index: sysdeps/sparc/dl-procinfo.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/sparc/dl-procinfo.h,v +retrieving revision 1.3 +diff -u -p -r1.3 dl-procinfo.h +--- sysdeps/sparc/dl-procinfo.h 25 Feb 2006 01:57:44 -0000 1.3 ++++ sysdeps/sparc/dl-procinfo.h 7 Oct 2007 06:31:14 -0000 +@@ -24,7 +24,7 @@ + + #include + +-#define _DL_HWCAP_COUNT 7 ++#define _DL_HWCAP_COUNT 8 + + static inline int + __attribute__ ((unused)) +@@ -66,7 +66,7 @@ _dl_string_hwcap (const char *str) + #include + #define HWCAP_IMPORTANT_V9 (__WORDSIZE == 64 ? 0 : HWCAP_SPARC_V9) + #define HWCAP_IMPORTANT (HWCAP_IMPORTANT_V9 | HWCAP_SPARC_ULTRA3 \ +- | HWCAP_SPARC_BLKINIT) ++ | HWCAP_SPARC_BLKINIT | HWCAP_SPARC_N2) + + /* There are no different platforms defined. */ + #define _dl_platform_string(idx) "" +--- /dev/null 2007-04-22 13:56:35.000000000 -0700 ++++ sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memcpy.S 2007-09-30 13:47:02.000000000 -0700 +@@ -0,0 +1,2 @@ ++#define XCC icc ++#include +--- /dev/null 2007-04-22 13:56:35.000000000 -0700 ++++ sysdeps/sparc/sparc32/sparcv9/sparcv9v2/memset.S 2007-09-30 13:47:13.000000000 -0700 +@@ -0,0 +1,2 @@ ++#define XCC icc ++#include +--- /dev/null 2007-04-22 13:56:35.000000000 -0700 ++++ sysdeps/sparc/sparc64/sparcv9v2/memcpy.S 2007-10-06 22:42:09.000000000 -0700 +@@ -0,0 +1,743 @@ ++/* Copy SIZE bytes from SRC to DEST. For SUN4V Niagara-2. ++ Copyright (C) 2007 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by David S. Miller (davem@davemloft.net) ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++#define ASI_BLK_INIT_QUAD_LDD_P 0xe2 ++#define ASI_BLK_P 0xf0 ++#define ASI_P 0x80 ++#define ASI_PNF 0x82 ++ ++#define FPRS_FEF 0x04 ++ ++#define VISEntryHalf \ ++ rd %fprs, %o5; \ ++ wr %g0, FPRS_FEF, %fprs ++ ++#define VISExitHalf \ ++ and %o5, FPRS_FEF, %o5; \ ++ wr %o5, 0x0, %fprs ++ ++#define STORE_ASI ASI_BLK_INIT_QUAD_LDD_P ++ ++#define LOAD(type,addr,dest) type [addr], dest ++#define LOAD_BLK(addr,dest) ldda [addr] ASI_BLK_P, dest ++#define STORE(type,src,addr) type src, [addr] ++#define STORE_BLK(src,addr) stda src, [addr] ASI_BLK_P ++#define STORE_INIT(src,addr) stxa src, [addr] STORE_ASI ++ ++#ifndef XCC ++#define USE_BPR ++#define XCC xcc ++#endif ++ ++#define FREG_FROB(x0, x1, x2, x3, x4, x5, x6, x7, x8) \ ++ faligndata %x0, %x1, %f0; \ ++ faligndata %x1, %x2, %f2; \ ++ faligndata %x2, %x3, %f4; \ ++ faligndata %x3, %x4, %f6; \ ++ faligndata %x4, %x5, %f8; \ ++ faligndata %x5, %x6, %f10; \ ++ faligndata %x6, %x7, %f12; \ ++ faligndata %x7, %x8, %f14; ++ ++#define FREG_MOVE_1(x0) \ ++ fmovd %x0, %f0; ++#define FREG_MOVE_2(x0, x1) \ ++ fmovd %x0, %f0; \ ++ fmovd %x1, %f2; ++#define FREG_MOVE_3(x0, x1, x2) \ ++ fmovd %x0, %f0; \ ++ fmovd %x1, %f2; \ ++ fmovd %x2, %f4; ++#define FREG_MOVE_4(x0, x1, x2, x3) \ ++ fmovd %x0, %f0; \ ++ fmovd %x1, %f2; \ ++ fmovd %x2, %f4; \ ++ fmovd %x3, %f6; ++#define FREG_MOVE_5(x0, x1, x2, x3, x4) \ ++ fmovd %x0, %f0; \ ++ fmovd %x1, %f2; \ ++ fmovd %x2, %f4; \ ++ fmovd %x3, %f6; \ ++ fmovd %x4, %f8; ++#define FREG_MOVE_6(x0, x1, x2, x3, x4, x5) \ ++ fmovd %x0, %f0; \ ++ fmovd %x1, %f2; \ ++ fmovd %x2, %f4; \ ++ fmovd %x3, %f6; \ ++ fmovd %x4, %f8; \ ++ fmovd %x5, %f10; ++#define FREG_MOVE_7(x0, x1, x2, x3, x4, x5, x6) \ ++ fmovd %x0, %f0; \ ++ fmovd %x1, %f2; \ ++ fmovd %x2, %f4; \ ++ fmovd %x3, %f6; \ ++ fmovd %x4, %f8; \ ++ fmovd %x5, %f10; \ ++ fmovd %x6, %f12; ++#define FREG_MOVE_8(x0, x1, x2, x3, x4, x5, x6, x7) \ ++ fmovd %x0, %f0; \ ++ fmovd %x1, %f2; \ ++ fmovd %x2, %f4; \ ++ fmovd %x3, %f6; \ ++ fmovd %x4, %f8; \ ++ fmovd %x5, %f10; \ ++ fmovd %x6, %f12; \ ++ fmovd %x7, %f14; ++#define FREG_LOAD_1(base, x0) \ ++ LOAD(ldd, base + 0x00, %x0) ++#define FREG_LOAD_2(base, x0, x1) \ ++ LOAD(ldd, base + 0x00, %x0); \ ++ LOAD(ldd, base + 0x08, %x1); ++#define FREG_LOAD_3(base, x0, x1, x2) \ ++ LOAD(ldd, base + 0x00, %x0); \ ++ LOAD(ldd, base + 0x08, %x1); \ ++ LOAD(ldd, base + 0x10, %x2); ++#define FREG_LOAD_4(base, x0, x1, x2, x3) \ ++ LOAD(ldd, base + 0x00, %x0); \ ++ LOAD(ldd, base + 0x08, %x1); \ ++ LOAD(ldd, base + 0x10, %x2); \ ++ LOAD(ldd, base + 0x18, %x3); ++#define FREG_LOAD_5(base, x0, x1, x2, x3, x4) \ ++ LOAD(ldd, base + 0x00, %x0); \ ++ LOAD(ldd, base + 0x08, %x1); \ ++ LOAD(ldd, base + 0x10, %x2); \ ++ LOAD(ldd, base + 0x18, %x3); \ ++ LOAD(ldd, base + 0x20, %x4); ++#define FREG_LOAD_6(base, x0, x1, x2, x3, x4, x5) \ ++ LOAD(ldd, base + 0x00, %x0); \ ++ LOAD(ldd, base + 0x08, %x1); \ ++ LOAD(ldd, base + 0x10, %x2); \ ++ LOAD(ldd, base + 0x18, %x3); \ ++ LOAD(ldd, base + 0x20, %x4); \ ++ LOAD(ldd, base + 0x28, %x5); ++#define FREG_LOAD_7(base, x0, x1, x2, x3, x4, x5, x6) \ ++ LOAD(ldd, base + 0x00, %x0); \ ++ LOAD(ldd, base + 0x08, %x1); \ ++ LOAD(ldd, base + 0x10, %x2); \ ++ LOAD(ldd, base + 0x18, %x3); \ ++ LOAD(ldd, base + 0x20, %x4); \ ++ LOAD(ldd, base + 0x28, %x5); \ ++ LOAD(ldd, base + 0x30, %x6); ++ ++ .register %g2,#scratch ++ .register %g3,#scratch ++ .register %g6,#scratch ++ ++ .text ++ .align 32 ++ ++ENTRY(bcopy) ++ sub %o1, %o0, %o4 ++ mov %o0, %g4 ++ cmp %o4, %o2 ++ mov %o1, %o0 ++ bgeu,pt %XCC, 100f ++ mov %g4, %o1 ++#ifndef USE_BPR ++ srl %o2, 0, %o2 ++#endif ++ brnz,pn %o2, 220f ++ add %o0, %o2, %o0 ++ retl ++ nop ++END(bcopy) ++ ++ .align 32 ++ENTRY(memcpy) ++100: /* %o0=dst, %o1=src, %o2=len */ ++ mov %o0, %g5 ++ cmp %o2, 0 ++ be,pn %XCC, 85f ++218: or %o0, %o1, %o3 ++ cmp %o2, 16 ++ blu,a,pn %XCC, 80f ++ or %o3, %o2, %o3 ++ ++ /* 2 blocks (128 bytes) is the minimum we can do the block ++ * copy with. We need to ensure that we'll iterate at least ++ * once in the block copy loop. At worst we'll need to align ++ * the destination to a 64-byte boundary which can chew up ++ * to (64 - 1) bytes from the length before we perform the ++ * block copy loop. ++ * ++ * However, the cut-off point, performance wise, is around ++ * 4 64-byte blocks. ++ */ ++ cmp %o2, (4 * 64) ++ blu,pt %XCC, 75f ++ andcc %o3, 0x7, %g0 ++ ++ /* %o0: dst ++ * %o1: src ++ * %o2: len (known to be >= 128) ++ * ++ * The block copy loops can use %o4, %g2, %g3 as ++ * temporaries while copying the data. %o5 must ++ * be preserved between VISEntryHalf and VISExitHalf ++ */ ++ ++ LOAD(prefetch, %o1 + 0x000, #one_read) ++ LOAD(prefetch, %o1 + 0x040, #one_read) ++ LOAD(prefetch, %o1 + 0x080, #one_read) ++ ++ /* Align destination on 64-byte boundary. */ ++ andcc %o0, (64 - 1), %o4 ++ be,pt %XCC, 2f ++ sub %o4, 64, %o4 ++ sub %g0, %o4, %o4 ! bytes to align dst ++ sub %o2, %o4, %o2 ++1: subcc %o4, 1, %o4 ++ LOAD(ldub, %o1, %g1) ++ STORE(stb, %g1, %o0) ++ add %o1, 1, %o1 ++ bne,pt %XCC, 1b ++ add %o0, 1, %o0 ++ ++2: ++ /* Clobbers o5/g1/g2/g3/g7/icc/xcc. We must preserve ++ * o5 from here until we hit VISExitHalf. ++ */ ++ VISEntryHalf ++ ++ alignaddr %o1, %g0, %g0 ++ ++ add %o1, (64 - 1), %o4 ++ andn %o4, (64 - 1), %o4 ++ andn %o2, (64 - 1), %g1 ++ sub %o2, %g1, %o2 ++ ++ and %o1, (64 - 1), %g2 ++ add %o1, %g1, %o1 ++ sub %o0, %o4, %g3 ++ brz,pt %g2, 190f ++ cmp %g2, 32 ++ blu,a 5f ++ cmp %g2, 16 ++ cmp %g2, 48 ++ blu,a 4f ++ cmp %g2, 40 ++ cmp %g2, 56 ++ blu 170f ++ nop ++ ba,a,pt %xcc, 180f ++ ++4: /* 32 <= low bits < 48 */ ++ blu 150f ++ nop ++ ba,a,pt %xcc, 160f ++5: /* 0 < low bits < 32 */ ++ blu,a 6f ++ cmp %g2, 8 ++ cmp %g2, 24 ++ blu 130f ++ nop ++ ba,a,pt %xcc, 140f ++6: /* 0 < low bits < 16 */ ++ bgeu 120f ++ nop ++ /* fall through for 0 < low bits < 8 */ ++110: sub %o4, 64, %g2 ++ LOAD_BLK(%g2, %f0) ++1: STORE_INIT(%g0, %o4 + %g3) ++ LOAD_BLK(%o4, %f16) ++ FREG_FROB(f0, f2, f4, f6, f8, f10, f12, f14, f16) ++ STORE_BLK(%f0, %o4 + %g3) ++ FREG_MOVE_8(f16, f18, f20, f22, f24, f26, f28, f30) ++ subcc %g1, 64, %g1 ++ add %o4, 64, %o4 ++ bne,pt %XCC, 1b ++ LOAD(prefetch, %o4 + 64, #one_read) ++ ba,pt %xcc, 195f ++ nop ++ ++120: sub %o4, 56, %g2 ++ FREG_LOAD_7(%g2, f0, f2, f4, f6, f8, f10, f12) ++1: STORE_INIT(%g0, %o4 + %g3) ++ LOAD_BLK(%o4, %f16) ++ FREG_FROB(f0, f2, f4, f6, f8, f10, f12, f16, f18) ++ STORE_BLK(%f0, %o4 + %g3) ++ FREG_MOVE_7(f18, f20, f22, f24, f26, f28, f30) ++ subcc %g1, 64, %g1 ++ add %o4, 64, %o4 ++ bne,pt %XCC, 1b ++ LOAD(prefetch, %o4 + 64, #one_read) ++ ba,pt %xcc, 195f ++ nop ++ ++130: sub %o4, 48, %g2 ++ FREG_LOAD_6(%g2, f0, f2, f4, f6, f8, f10) ++1: STORE_INIT(%g0, %o4 + %g3) ++ LOAD_BLK(%o4, %f16) ++ FREG_FROB(f0, f2, f4, f6, f8, f10, f16, f18, f20) ++ STORE_BLK(%f0, %o4 + %g3) ++ FREG_MOVE_6(f20, f22, f24, f26, f28, f30) ++ subcc %g1, 64, %g1 ++ add %o4, 64, %o4 ++ bne,pt %XCC, 1b ++ LOAD(prefetch, %o4 + 64, #one_read) ++ ba,pt %xcc, 195f ++ nop ++ ++140: sub %o4, 40, %g2 ++ FREG_LOAD_5(%g2, f0, f2, f4, f6, f8) ++1: STORE_INIT(%g0, %o4 + %g3) ++ LOAD_BLK(%o4, %f16) ++ FREG_FROB(f0, f2, f4, f6, f8, f16, f18, f20, f22) ++ STORE_BLK(%f0, %o4 + %g3) ++ FREG_MOVE_5(f22, f24, f26, f28, f30) ++ subcc %g1, 64, %g1 ++ add %o4, 64, %o4 ++ bne,pt %XCC, 1b ++ LOAD(prefetch, %o4 + 64, #one_read) ++ ba,pt %xcc, 195f ++ nop ++ ++150: sub %o4, 32, %g2 ++ FREG_LOAD_4(%g2, f0, f2, f4, f6) ++1: STORE_INIT(%g0, %o4 + %g3) ++ LOAD_BLK(%o4, %f16) ++ FREG_FROB(f0, f2, f4, f6, f16, f18, f20, f22, f24) ++ STORE_BLK(%f0, %o4 + %g3) ++ FREG_MOVE_4(f24, f26, f28, f30) ++ subcc %g1, 64, %g1 ++ add %o4, 64, %o4 ++ bne,pt %XCC, 1b ++ LOAD(prefetch, %o4 + 64, #one_read) ++ ba,pt %xcc, 195f ++ nop ++ ++160: sub %o4, 24, %g2 ++ FREG_LOAD_3(%g2, f0, f2, f4) ++1: STORE_INIT(%g0, %o4 + %g3) ++ LOAD_BLK(%o4, %f16) ++ FREG_FROB(f0, f2, f4, f16, f18, f20, f22, f24, f26) ++ STORE_BLK(%f0, %o4 + %g3) ++ FREG_MOVE_3(f26, f28, f30) ++ subcc %g1, 64, %g1 ++ add %o4, 64, %o4 ++ bne,pt %XCC, 1b ++ LOAD(prefetch, %o4 + 64, #one_read) ++ ba,pt %xcc, 195f ++ nop ++ ++170: sub %o4, 16, %g2 ++ FREG_LOAD_2(%g2, f0, f2) ++1: STORE_INIT(%g0, %o4 + %g3) ++ LOAD_BLK(%o4, %f16) ++ FREG_FROB(f0, f2, f16, f18, f20, f22, f24, f26, f28) ++ STORE_BLK(%f0, %o4 + %g3) ++ FREG_MOVE_2(f28, f30) ++ subcc %g1, 64, %g1 ++ add %o4, 64, %o4 ++ bne,pt %XCC, 1b ++ LOAD(prefetch, %o4 + 64, #one_read) ++ ba,pt %xcc, 195f ++ nop ++ ++180: sub %o4, 8, %g2 ++ FREG_LOAD_1(%g2, f0) ++1: STORE_INIT(%g0, %o4 + %g3) ++ LOAD_BLK(%o4, %f16) ++ FREG_FROB(f0, f16, f18, f20, f22, f24, f26, f28, f30) ++ STORE_BLK(%f0, %o4 + %g3) ++ FREG_MOVE_1(f30) ++ subcc %g1, 64, %g1 ++ add %o4, 64, %o4 ++ bne,pt %XCC, 1b ++ LOAD(prefetch, %o4 + 64, #one_read) ++ ba,pt %xcc, 195f ++ nop ++ ++190: ++1: STORE_INIT(%g0, %o4 + %g3) ++ subcc %g1, 64, %g1 ++ LOAD_BLK(%o4, %f0) ++ STORE_BLK(%f0, %o4 + %g3) ++ add %o4, 64, %o4 ++ bne,pt %XCC, 1b ++ LOAD(prefetch, %o4 + 64, #one_read) ++ ++195: ++ add %o4, %g3, %o0 ++ membar #Sync ++ ++ VISExitHalf ++ ++ /* %o2 contains any final bytes still needed to be copied ++ * over. If anything is left, we copy it one byte at a time. ++ */ ++ brz,pt %o2, 85f ++ sub %o0, %o1, %o3 ++ ba,a,pt %XCC, 90f ++ ++ .align 64 ++75: /* 16 < len <= 64 */ ++ bne,pn %XCC, 75f ++ sub %o0, %o1, %o3 ++ ++72: ++ andn %o2, 0xf, %o4 ++ and %o2, 0xf, %o2 ++1: subcc %o4, 0x10, %o4 ++ LOAD(ldx, %o1, %o5) ++ add %o1, 0x08, %o1 ++ LOAD(ldx, %o1, %g1) ++ sub %o1, 0x08, %o1 ++ STORE(stx, %o5, %o1 + %o3) ++ add %o1, 0x8, %o1 ++ STORE(stx, %g1, %o1 + %o3) ++ bgu,pt %XCC, 1b ++ add %o1, 0x8, %o1 ++73: andcc %o2, 0x8, %g0 ++ be,pt %XCC, 1f ++ nop ++ sub %o2, 0x8, %o2 ++ LOAD(ldx, %o1, %o5) ++ STORE(stx, %o5, %o1 + %o3) ++ add %o1, 0x8, %o1 ++1: andcc %o2, 0x4, %g0 ++ be,pt %XCC, 1f ++ nop ++ sub %o2, 0x4, %o2 ++ LOAD(lduw, %o1, %o5) ++ STORE(stw, %o5, %o1 + %o3) ++ add %o1, 0x4, %o1 ++1: cmp %o2, 0 ++ be,pt %XCC, 85f ++ nop ++ ba,pt %xcc, 90f ++ nop ++ ++75: ++ andcc %o0, 0x7, %g1 ++ sub %g1, 0x8, %g1 ++ be,pn %icc, 2f ++ sub %g0, %g1, %g1 ++ sub %o2, %g1, %o2 ++ ++1: subcc %g1, 1, %g1 ++ LOAD(ldub, %o1, %o5) ++ STORE(stb, %o5, %o1 + %o3) ++ bgu,pt %icc, 1b ++ add %o1, 1, %o1 ++ ++2: add %o1, %o3, %o0 ++ andcc %o1, 0x7, %g1 ++ bne,pt %icc, 8f ++ sll %g1, 3, %g1 ++ ++ cmp %o2, 16 ++ bgeu,pt %icc, 72b ++ nop ++ ba,a,pt %xcc, 73b ++ ++8: mov 64, %o3 ++ andn %o1, 0x7, %o1 ++ LOAD(ldx, %o1, %g2) ++ sub %o3, %g1, %o3 ++ andn %o2, 0x7, %o4 ++ sllx %g2, %g1, %g2 ++1: add %o1, 0x8, %o1 ++ LOAD(ldx, %o1, %g3) ++ subcc %o4, 0x8, %o4 ++ srlx %g3, %o3, %o5 ++ or %o5, %g2, %o5 ++ STORE(stx, %o5, %o0) ++ add %o0, 0x8, %o0 ++ bgu,pt %icc, 1b ++ sllx %g3, %g1, %g2 ++ ++ srl %g1, 3, %g1 ++ andcc %o2, 0x7, %o2 ++ be,pn %icc, 85f ++ add %o1, %g1, %o1 ++ ba,pt %xcc, 90f ++ sub %o0, %o1, %o3 ++ ++ .align 64 ++80: /* 0 < len <= 16 */ ++ andcc %o3, 0x3, %g0 ++ bne,pn %XCC, 90f ++ sub %o0, %o1, %o3 ++ ++1: ++ subcc %o2, 4, %o2 ++ LOAD(lduw, %o1, %g1) ++ STORE(stw, %g1, %o1 + %o3) ++ bgu,pt %XCC, 1b ++ add %o1, 4, %o1 ++ ++85: retl ++ mov %g5, %o0 ++ ++ .align 32 ++90: ++ subcc %o2, 1, %o2 ++ LOAD(ldub, %o1, %g1) ++ STORE(stb, %g1, %o1 + %o3) ++ bgu,pt %XCC, 90b ++ add %o1, 1, %o1 ++ retl ++ mov %g5, %o0 ++ ++END(memcpy) ++ ++#define RMOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3) \ ++ ldx [%src - offset - 0x20], %t0; \ ++ ldx [%src - offset - 0x18], %t1; \ ++ ldx [%src - offset - 0x10], %t2; \ ++ ldx [%src - offset - 0x08], %t3; \ ++ stw %t0, [%dst - offset - 0x1c]; \ ++ srlx %t0, 32, %t0; \ ++ stw %t0, [%dst - offset - 0x20]; \ ++ stw %t1, [%dst - offset - 0x14]; \ ++ srlx %t1, 32, %t1; \ ++ stw %t1, [%dst - offset - 0x18]; \ ++ stw %t2, [%dst - offset - 0x0c]; \ ++ srlx %t2, 32, %t2; \ ++ stw %t2, [%dst - offset - 0x10]; \ ++ stw %t3, [%dst - offset - 0x04]; \ ++ srlx %t3, 32, %t3; \ ++ stw %t3, [%dst - offset - 0x08]; ++ ++#define RMOVE_BIGALIGNCHUNK(src, dst, offset, t0, t1, t2, t3) \ ++ ldx [%src - offset - 0x20], %t0; \ ++ ldx [%src - offset - 0x18], %t1; \ ++ ldx [%src - offset - 0x10], %t2; \ ++ ldx [%src - offset - 0x08], %t3; \ ++ stx %t0, [%dst - offset - 0x20]; \ ++ stx %t1, [%dst - offset - 0x18]; \ ++ stx %t2, [%dst - offset - 0x10]; \ ++ stx %t3, [%dst - offset - 0x08]; \ ++ ldx [%src - offset - 0x40], %t0; \ ++ ldx [%src - offset - 0x38], %t1; \ ++ ldx [%src - offset - 0x30], %t2; \ ++ ldx [%src - offset - 0x28], %t3; \ ++ stx %t0, [%dst - offset - 0x40]; \ ++ stx %t1, [%dst - offset - 0x38]; \ ++ stx %t2, [%dst - offset - 0x30]; \ ++ stx %t3, [%dst - offset - 0x28]; ++ ++#define RMOVE_LASTCHUNK(src, dst, offset, t0, t1, t2, t3) \ ++ ldx [%src + offset + 0x00], %t0; \ ++ ldx [%src + offset + 0x08], %t1; \ ++ stw %t0, [%dst + offset + 0x04]; \ ++ srlx %t0, 32, %t2; \ ++ stw %t2, [%dst + offset + 0x00]; \ ++ stw %t1, [%dst + offset + 0x0c]; \ ++ srlx %t1, 32, %t3; \ ++ stw %t3, [%dst + offset + 0x08]; ++ ++#define RMOVE_LASTALIGNCHUNK(src, dst, offset, t0, t1) \ ++ ldx [%src + offset + 0x00], %t0; \ ++ ldx [%src + offset + 0x08], %t1; \ ++ stx %t0, [%dst + offset + 0x00]; \ ++ stx %t1, [%dst + offset + 0x08]; ++ ++ .align 32 ++228: andcc %o2, 1, %g0 ++ be,pt %icc, 2f+4 ++1: ldub [%o1 - 1], %o5 ++ sub %o1, 1, %o1 ++ sub %o0, 1, %o0 ++ subcc %o2, 1, %o2 ++ be,pn %XCC, 229f ++ stb %o5, [%o0] ++2: ldub [%o1 - 1], %o5 ++ sub %o0, 2, %o0 ++ ldub [%o1 - 2], %g5 ++ sub %o1, 2, %o1 ++ subcc %o2, 2, %o2 ++ stb %o5, [%o0 + 1] ++ bne,pt %XCC, 2b ++ stb %g5, [%o0] ++229: retl ++ mov %g4, %o0 ++out: retl ++ mov %g5, %o0 ++ ++ .align 32 ++ENTRY(memmove) ++ mov %o0, %g5 ++#ifndef USE_BPR ++ srl %o2, 0, %o2 ++#endif ++ brz,pn %o2, out ++ sub %o0, %o1, %o4 ++ cmp %o4, %o2 ++ bgeu,pt %XCC, 218b ++ mov %o0, %g4 ++ add %o0, %o2, %o0 ++220: add %o1, %o2, %o1 ++ cmp %o2, 15 ++ bleu,pn %XCC, 228b ++ andcc %o0, 7, %g2 ++ sub %o0, %o1, %g5 ++ andcc %g5, 3, %o5 ++ bne,pn %XCC, 232f ++ andcc %o1, 3, %g0 ++ be,a,pt %XCC, 236f ++ andcc %o1, 4, %g0 ++ andcc %o1, 1, %g0 ++ be,pn %XCC, 4f ++ andcc %o1, 2, %g0 ++ ldub [%o1 - 1], %g2 ++ sub %o1, 1, %o1 ++ sub %o0, 1, %o0 ++ sub %o2, 1, %o2 ++ be,pn %XCC, 5f ++ stb %g2, [%o0] ++4: lduh [%o1 - 2], %g2 ++ sub %o1, 2, %o1 ++ sub %o0, 2, %o0 ++ sub %o2, 2, %o2 ++ sth %g2, [%o0] ++5: andcc %o1, 4, %g0 ++236: be,a,pn %XCC, 2f ++ andcc %o2, -128, %g6 ++ lduw [%o1 - 4], %g5 ++ sub %o1, 4, %o1 ++ sub %o0, 4, %o0 ++ sub %o2, 4, %o2 ++ stw %g5, [%o0] ++ andcc %o2, -128, %g6 ++2: be,pn %XCC, 235f ++ andcc %o0, 4, %g0 ++ be,pn %XCC, 282f + 4 ++5: RMOVE_BIGCHUNK(o1, o0, 0x00, g1, g3, g5, o5) ++ RMOVE_BIGCHUNK(o1, o0, 0x20, g1, g3, g5, o5) ++ RMOVE_BIGCHUNK(o1, o0, 0x40, g1, g3, g5, o5) ++ RMOVE_BIGCHUNK(o1, o0, 0x60, g1, g3, g5, o5) ++ subcc %g6, 128, %g6 ++ sub %o1, 128, %o1 ++ bne,pt %XCC, 5b ++ sub %o0, 128, %o0 ++235: andcc %o2, 0x70, %g6 ++41: be,pn %XCC, 280f ++ andcc %o2, 8, %g0 ++ ++279: rd %pc, %o5 ++ sll %g6, 1, %g5 ++ sub %o1, %g6, %o1 ++ sub %o5, %g5, %o5 ++ jmpl %o5 + %lo(280f - 279b), %g0 ++ sub %o0, %g6, %o0 ++ RMOVE_LASTCHUNK(o1, o0, 0x60, g2, g3, g5, o5) ++ RMOVE_LASTCHUNK(o1, o0, 0x50, g2, g3, g5, o5) ++ RMOVE_LASTCHUNK(o1, o0, 0x40, g2, g3, g5, o5) ++ RMOVE_LASTCHUNK(o1, o0, 0x30, g2, g3, g5, o5) ++ RMOVE_LASTCHUNK(o1, o0, 0x20, g2, g3, g5, o5) ++ RMOVE_LASTCHUNK(o1, o0, 0x10, g2, g3, g5, o5) ++ RMOVE_LASTCHUNK(o1, o0, 0x00, g2, g3, g5, o5) ++280: be,pt %XCC, 281f ++ andcc %o2, 4, %g0 ++ ldx [%o1 - 8], %g2 ++ sub %o0, 8, %o0 ++ stw %g2, [%o0 + 4] ++ sub %o1, 8, %o1 ++ srlx %g2, 32, %g2 ++ stw %g2, [%o0] ++281: be,pt %XCC, 1f ++ andcc %o2, 2, %g0 ++ lduw [%o1 - 4], %g2 ++ sub %o1, 4, %o1 ++ stw %g2, [%o0 - 4] ++ sub %o0, 4, %o0 ++1: be,pt %XCC, 1f ++ andcc %o2, 1, %g0 ++ lduh [%o1 - 2], %g2 ++ sub %o1, 2, %o1 ++ sth %g2, [%o0 - 2] ++ sub %o0, 2, %o0 ++1: be,pt %XCC, 211f ++ nop ++ ldub [%o1 - 1], %g2 ++ stb %g2, [%o0 - 1] ++211: retl ++ mov %g4, %o0 ++ ++282: RMOVE_BIGALIGNCHUNK(o1, o0, 0x00, g1, g3, g5, o5) ++ RMOVE_BIGALIGNCHUNK(o1, o0, 0x40, g1, g3, g5, o5) ++ subcc %g6, 128, %g6 ++ sub %o1, 128, %o1 ++ bne,pt %XCC, 282b ++ sub %o0, 128, %o0 ++ andcc %o2, 0x70, %g6 ++ be,pn %XCC, 284f ++ andcc %o2, 8, %g0 ++ ++283: rd %pc, %o5 ++ sub %o1, %g6, %o1 ++ sub %o5, %g6, %o5 ++ jmpl %o5 + %lo(284f - 283b), %g0 ++ sub %o0, %g6, %o0 ++ RMOVE_LASTALIGNCHUNK(o1, o0, 0x60, g2, g3) ++ RMOVE_LASTALIGNCHUNK(o1, o0, 0x50, g2, g3) ++ RMOVE_LASTALIGNCHUNK(o1, o0, 0x40, g2, g3) ++ RMOVE_LASTALIGNCHUNK(o1, o0, 0x30, g2, g3) ++ RMOVE_LASTALIGNCHUNK(o1, o0, 0x20, g2, g3) ++ RMOVE_LASTALIGNCHUNK(o1, o0, 0x10, g2, g3) ++ RMOVE_LASTALIGNCHUNK(o1, o0, 0x00, g2, g3) ++284: be,pt %XCC, 285f ++ andcc %o2, 4, %g0 ++ ldx [%o1 - 8], %g2 ++ sub %o0, 8, %o0 ++ sub %o1, 8, %o1 ++ stx %g2, [%o0] ++285: be,pt %XCC, 1f ++ andcc %o2, 2, %g0 ++ lduw [%o1 - 4], %g2 ++ sub %o0, 4, %o0 ++ sub %o1, 4, %o1 ++ stw %g2, [%o0] ++1: be,pt %XCC, 1f ++ andcc %o2, 1, %g0 ++ lduh [%o1 - 2], %g2 ++ sub %o0, 2, %o0 ++ sub %o1, 2, %o1 ++ sth %g2, [%o0] ++1: be,pt %XCC, 1f ++ nop ++ ldub [%o1 - 1], %g2 ++ stb %g2, [%o0 - 1] ++1: retl ++ mov %g4, %o0 ++ ++232: ldub [%o1 - 1], %g5 ++ sub %o1, 1, %o1 ++ sub %o0, 1, %o0 ++ subcc %o2, 1, %o2 ++ bne,pt %XCC, 232b ++ stb %g5, [%o0] ++234: retl ++ mov %g4, %o0 ++END(memmove) ++ ++#ifdef USE_BPR ++weak_alias (memcpy, __align_cpy_1) ++weak_alias (memcpy, __align_cpy_2) ++weak_alias (memcpy, __align_cpy_4) ++weak_alias (memcpy, __align_cpy_8) ++weak_alias (memcpy, __align_cpy_16) ++#endif ++libc_hidden_builtin_def (memcpy) ++libc_hidden_builtin_def (memmove) +--- /dev/null 2007-04-22 13:56:35.000000000 -0700 ++++ sysdeps/sparc/sparc64/sparcv9v2/memset.S 2007-09-30 13:22:20.000000000 -0700 +@@ -0,0 +1 @@ ++#include --- glibc-2.7.orig/debian/patches/sparc/submitted-timing.diff +++ glibc-2.7/debian/patches/sparc/submitted-timing.diff @@ -0,0 +1,50 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: sparc/sparcv9 libraries fix +# DP: Author: Daniel Jacobowitz , Jeff Bailey +# DP: Upstream status: Not Submitted +# DP: Status Details: +# DP: Date: 2003-12-31 + +2003-12-31 Jeff Bailey + + * sysdeps/sparc/hp-timing.h: New file. + +Index: glibc-2.6/sysdeps/sparc/sparc32/hp-timing.h +=================================================================== +--- /dev/null ++++ glibc-2.6/sysdeps/sparc/sparc32/hp-timing.h +@@ -0,0 +1,34 @@ ++/* High precision, low overhead timing functions. i386 version. ++ Copyright (C) 2003 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SPARC_HP_TIMING_H ++#define _SPARC_HP_TIMING_H 1 ++ ++#define hp_timing_t hp_timing_t__ ++#include ++#undef hp_timing_t ++ ++/* We don't use high-precision timers, but we might load an sparcv9 libpthread ++ which does. */ ++#define HP_TIMING_PAD 1 ++ ++/* sparcv9 uses 64bit values for the times. */ ++typedef unsigned long long int hp_timing_t; ++ ++#endif /* hp-timing.h */ --- glibc-2.7.orig/debian/patches/series.mips +++ glibc-2.7/debian/patches/series.mips @@ -0,0 +1 @@ +mips/local-gcc-ice.diff -p1 --- glibc-2.7.orig/debian/patches/all/local-pthread-manpages.diff +++ glibc-2.7/debian/patches/all/local-pthread-manpages.diff @@ -0,0 +1,2068 @@ +--- glibc-2.6.orig/linuxthreads/man/pthread_atfork.man ++++ glibc-2.6/linuxthreads/man/pthread_atfork.man +@@ -10,44 +10,44 @@ + + .SH DESCRIPTION + +-!pthread_atfork! registers handler functions to be called just before +-and just after a new process is created with !fork!(2). The |prepare| ++\fBpthread_atfork\fP registers handler functions to be called just before ++and just after a new process is created with \fBfork\fP(2). The \fIprepare\fP + handler will be called from the parent process, just before the new +-process is created. The |parent| handler will be called from the parent +-process, just before !fork!(2) returns. The |child| handler will be +-called from the child process, just before !fork!(2) returns. ++process is created. The \fIparent\fP handler will be called from the parent ++process, just before \fBfork\fP(2) returns. The \fIchild\fP handler will be ++called from the child process, just before \fBfork\fP(2) returns. + +-One or several of the three handlers |prepare|, |parent| and |child| +-can be given as !NULL!, meaning that no handler needs to be called at ++One or several of the three handlers \fIprepare\fP, \fIparent\fP and \fIchild\fP ++can be given as \fBNULL\fP, meaning that no handler needs to be called at + the corresponding point. + +-!pthread_atfork! can be called several times to install several sets +-of handlers. At !fork!(2) time, the |prepare| handlers are called in +-LIFO order (last added with !pthread_atfork!, first called before !fork!), +-while the |parent| and |child| handlers are called in FIFO order ++\fBpthread_atfork\fP can be called several times to install several sets ++of handlers. At \fBfork\fP(2) time, the \fIprepare\fP handlers are called in ++LIFO order (last added with \fBpthread_atfork\fP, first called before \fBfork\fP), ++while the \fIparent\fP and \fIchild\fP handlers are called in FIFO order + (first added, first called). + +-To understand the purpose of !pthread_atfork!, recall that !fork!(2) ++To understand the purpose of \fBpthread_atfork\fP, recall that \fBfork\fP(2) + duplicates the whole memory space, including mutexes in their current + locking state, but only the calling thread: other threads are not + running in the child process. The mutexes are not usable after the +-!fork! and must be initialized with |pthread_mutex_init| in the child ++\fBfork\fP and must be initialized with \fIpthread_mutex_init\fP in the child + process. This is a limitation of the current implementation and might + or might not be present in future versions. + + .SH "RETURN VALUE" + +-!pthread_atfork! returns 0 on success and a non-zero error code on error. ++\fBpthread_atfork\fP returns 0 on success and a non-zero error code on error. + + .SH ERRORS + .TP +-!ENOMEM! ++\fBENOMEM\fP + insufficient memory available to register the handlers. + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!fork!(2), +-!pthread_mutex_lock!(3), +-!pthread_mutex_unlock!(3). ++\fBfork\fP(2), ++\fBpthread_mutex_lock\fP(3), ++\fBpthread_mutex_unlock\fP(3). +--- glibc-2.6.orig/linuxthreads/man/pthread_attr_init.man ++++ glibc-2.6/linuxthreads/man/pthread_attr_init.man +@@ -45,27 +45,27 @@ + .SH DESCRIPTION + + Setting attributes for threads is achieved by filling a +-thread attribute object |attr| of type !pthread_attr_t!, then passing it as +-second argument to !pthread_create!(3). Passing !NULL! is equivalent to ++thread attribute object \fIattr\fP of type \fBpthread_attr_t\fP, then passing it as ++second argument to \fBpthread_create\fP(3). Passing \fBNULL\fP is equivalent to + passing a thread attribute object with all attributes set to their + default values. + +-!pthread_attr_init! initializes the thread attribute object |attr| and ++\fBpthread_attr_init\fP initializes the thread attribute object \fIattr\fP and + fills it with default values for the attributes. (The default values + are listed below for each attribute.) + +-Each attribute |attrname| (see below for a list of all attributes) can +-be individually set using the function !pthread_attr_set!|attrname| +-and retrieved using the function !pthread_attr_get!|attrname|. ++Each attribute \fIattrname\fP (see below for a list of all attributes) can ++be individually set using the function \fBpthread_attr_set\fP\fIattrname\fP ++and retrieved using the function \fBpthread_attr_get\fP\fIattrname\fP. + +-!pthread_attr_destroy! destroys a thread attribute object, which +-must not be reused until it is reinitialized. !pthread_attr_destroy! ++\fBpthread_attr_destroy\fP destroys a thread attribute object, which ++must not be reused until it is reinitialized. \fBpthread_attr_destroy\fP + does nothing in the LinuxThreads implementation. + + Attribute objects are consulted only when creating a new thread. The + same attribute object can be used for creating several + threads. Modifying an attribute object after a call to +-!pthread_create! does not change the attributes of the thread ++\fBpthread_create\fP does not change the attributes of the thread + previously created. + + The following thread attributes are supported: +@@ -73,149 +73,149 @@ + .SS detachstate + + Control whether the thread is created in the joinable state (value +-!PTHREAD_CREATE_JOINABLE!) or in the detached state +-(!PTHREAD_CREATE_DETACHED!). ++\fBPTHREAD_CREATE_JOINABLE\fP) or in the detached state ++(\fBPTHREAD_CREATE_DETACHED\fP). + +-Default value: !PTHREAD_CREATE_JOINABLE!. ++Default value: \fBPTHREAD_CREATE_JOINABLE\fP. + + In the joinable state, another thread can synchronize on the thread +-termination and recover its termination code using !pthread_join!(3), ++termination and recover its termination code using \fBpthread_join\fP(3), + but some of the thread resources are kept allocated after the thread + terminates, and reclaimed only when another thread performs +-!pthread_join!(3) on that thread. ++\fBpthread_join\fP(3) on that thread. + + In the detached state, the thread resources are immediately freed when +-it terminates, but !pthread_join!(3) cannot be used to synchronize on ++it terminates, but \fBpthread_join\fP(3) cannot be used to synchronize on + the thread termination. + + A thread created in the joinable state can later be put in the +-detached thread using !pthread_detach!(3). ++detached state using \fBpthread_detach\fP(3). + + .SS schedpolicy + + Select the scheduling policy for the thread: one of +-!SCHED_OTHER! (regular, non-realtime scheduling), +-!SCHED_RR! (realtime, round-robin) or +-!SCHED_FIFO! (realtime, first-in first-out). See +-!sched_setpolicy!(2) for more information on scheduling policies. ++\fBSCHED_OTHER\fP (regular, non-realtime scheduling), ++\fBSCHED_RR\fP (realtime, round-robin) or ++\fBSCHED_FIFO\fP (realtime, first-in first-out). See ++\fBsched_setpolicy\fP(2) for more information on scheduling policies. + +-Default value: !SCHED_OTHER!. ++Default value: \fBSCHED_OTHER\fP. + +-The realtime scheduling policies !SCHED_RR! and !SCHED_FIFO! are ++The realtime scheduling policies \fBSCHED_RR\fP and \fBSCHED_FIFO\fP are + available only to processes with superuser privileges. + + The scheduling policy of a thread can be changed after creation with +-!pthread_setschedparam!(3). ++\fBpthread_setschedparam\fP(3). + + .SS schedparam + + Contain the scheduling parameters (essentially, the scheduling +-priority) for the thread. See !sched_setparam!(2) for more information ++priority) for the thread. See \fBsched_setparam\fP(2) for more information + on scheduling parameters. + + Default value: priority is 0. + +-This attribute is not significant if the scheduling policy is !SCHED_OTHER!; +-it only matters for the realtime policies !SCHED_RR! and !SCHED_FIFO!. ++This attribute is not significant if the scheduling policy is \fBSCHED_OTHER\fP; ++it only matters for the realtime policies \fBSCHED_RR\fP and \fBSCHED_FIFO\fP. + + The scheduling priority of a thread can be changed after creation with +-!pthread_setschedparam!(3). ++\fBpthread_setschedparam\fP(3). + + .SS inheritsched + + Indicate whether the scheduling policy and scheduling parameters for + the newly created thread are determined by the values of the +-|schedpolicy| and |schedparam| attributes (value +-!PTHREAD_EXPLICIT_SCHED!) or are inherited from the parent thread +-(value !PTHREAD_INHERIT_SCHED!). ++\fIschedpolicy\fP and \fIschedparam\fP attributes (value ++\fBPTHREAD_EXPLICIT_SCHED\fP) or are inherited from the parent thread ++(value \fBPTHREAD_INHERIT_SCHED\fP). + +-Default value: !PTHREAD_EXPLICIT_SCHED!. ++Default value: \fBPTHREAD_EXPLICIT_SCHED\fP. + + .SS scope + + Define the scheduling contention scope for the created thread. The + only value supported in the LinuxThreads implementation is +-!PTHREAD_SCOPE_SYSTEM!, meaning that the threads contend for CPU time ++\fBPTHREAD_SCOPE_SYSTEM\fP, meaning that the threads contend for CPU time + with all processes running on the machine. In particular, thread + priorities are interpreted relative to the priorities of all other + processes on the machine. The other value specified by the standard, +-!PTHREAD_SCOPE_PROCESS!, means that scheduling contention occurs only ++\fBPTHREAD_SCOPE_PROCESS\fP, means that scheduling contention occurs only + between the threads of the running process: thread priorities are + interpreted relative to the priorities of the other threads of the + process, regardless of the priorities of other processes. +-!PTHREAD_SCOPE_PROCESS! is not supported in LinuxThreads. ++\fBPTHREAD_SCOPE_PROCESS\fP is not supported in LinuxThreads. + +-Default value: !PTHREAD_SCOPE_SYSTEM!. ++Default value: \fBPTHREAD_SCOPE_SYSTEM\fP. + + .SH "RETURN VALUE" + + All functions return 0 on success and a non-zero error code on error. +-On success, the !pthread_attr_get!|attrname| functions also store the +-current value of the attribute |attrname| in the location pointed to ++On success, the \fBpthread_attr_get\fP\fIattrname\fP functions also store the ++current value of the attribute \fIattrname\fP in the location pointed to + by their second argument. + + .SH ERRORS + +-The !pthread_attr_setdetachstate! function returns the following error ++The \fBpthread_attr_setdetachstate\fP function returns the following error + codes on error: + .RS + .TP +-!EINVAL! +-the specified |detachstate| is not one of !PTHREAD_CREATE_JOINABLE! or +-!PTHREAD_CREATE_DETACHED!. ++\fBEINVAL\fP ++the specified \fIdetachstate\fP is not one of \fBPTHREAD_CREATE_JOINABLE\fP or ++\fBPTHREAD_CREATE_DETACHED\fP. + .RE + +-The !pthread_attr_setschedparam! function returns the following error ++The \fBpthread_attr_setschedparam\fP function returns the following error + codes on error: + .RS + .TP +-!EINVAL! +-the priority specified in |param| is outside the range of allowed +-priorities for the scheduling policy currently in |attr| +-(1 to 99 for !SCHED_FIFO! and !SCHED_RR!; 0 for !SCHED_OTHER!). ++\fBEINVAL\fP ++the priority specified in \fIparam\fP is outside the range of allowed ++priorities for the scheduling policy currently in \fIattr\fP ++(1 to 99 for \fBSCHED_FIFO\fP and \fBSCHED_RR\fP; 0 for \fBSCHED_OTHER\fP). + .RE + +-The !pthread_attr_setschedpolicy! function returns the following error ++The \fBpthread_attr_setschedpolicy\fP function returns the following error + codes on error: + .RS + .TP +-!EINVAL! +-the specified |policy| is not one of !SCHED_OTHER!, !SCHED_FIFO!, or +-!SCHED_RR!. ++\fBEINVAL\fP ++the specified \fIpolicy\fP is not one of \fBSCHED_OTHER\fP, \fBSCHED_FIFO\fP, or ++\fBSCHED_RR\fP. + + .TP +-!ENOTSUP! +-|policy| is !SCHED_FIFO! or !SCHED_RR!, and the effective user of the ++\fBENOTSUP\fP ++\fIpolicy\fP is \fBSCHED_FIFO\fP or \fBSCHED_RR\fP, and the effective user of the + calling process is not super-user. + .RE + +-The !pthread_attr_setinheritsched! function returns the following error ++The \fBpthread_attr_setinheritsched\fP function returns the following error + codes on error: + .RS + .TP +-!EINVAL! +-the specified |inherit| is not one of !PTHREAD_INHERIT_SCHED! or +-!PTHREAD_EXPLICIT_SCHED!. ++\fBEINVAL\fP ++the specified \fIinherit\fP is not one of \fBPTHREAD_INHERIT_SCHED\fP or ++\fBPTHREAD_EXPLICIT_SCHED\fP. + .RE + +-The !pthread_attr_setscope! function returns the following error ++The \fBpthread_attr_setscope\fP function returns the following error + codes on error: + .RS + .TP +-!EINVAL! +-the specified |scope| is not one of !PTHREAD_SCOPE_SYSTEM! or +-!PTHREAD_SCOPE_PROCESS!. ++\fBEINVAL\fP ++the specified \fIscope\fP is not one of \fBPTHREAD_SCOPE_SYSTEM\fP or ++\fBPTHREAD_SCOPE_PROCESS\fP. + + .TP +-!ENOTSUP! +-the specified |scope| is !PTHREAD_SCOPE_PROCESS! (not supported). ++\fBENOTSUP\fP ++the specified \fIscope\fP is \fBPTHREAD_SCOPE_PROCESS\fP (not supported). + .RE + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_create!(3), +-!pthread_join!(3), +-!pthread_detach!(3), +-!pthread_setschedparam!(3). ++\fBpthread_create\fP(3), ++\fBpthread_join\fP(3), ++\fBpthread_detach\fP(3), ++\fBpthread_setschedparam\fP(3). +--- glibc-2.6.orig/linuxthreads/man/pthread_cancel.man ++++ glibc-2.6/linuxthreads/man/pthread_cancel.man +@@ -27,119 +27,119 @@ + immediately, or defer it till it reaches a cancellation point. + + When a thread eventually honors a cancellation request, it performs as +-if !pthread_exit(PTHREAD_CANCELED)! has been called at that point: ++if \fBpthread_exit(PTHREAD_CANCELED)\fP has been called at that point: + all cleanup handlers are executed in reverse order, finalization + functions for thread-specific data are called, and finally the thread +-stops executing with the return value !PTHREAD_CANCELED!. See +-!pthread_exit!(3) for more information. ++stops executing with the return value \fBPTHREAD_CANCELED\fP. See ++\fBpthread_exit\fP(3) for more information. + +-!pthread_cancel! sends a cancellation request to the thread denoted +-by the |thread| argument. ++\fBpthread_cancel\fP sends a cancellation request to the thread denoted ++by the \fIthread\fP argument. + +-!pthread_setcancelstate! changes the cancellation state for the ++\fBpthread_setcancelstate\fP changes the cancellation state for the + calling thread -- that is, whether cancellation requests are ignored +-or not. The |state| argument is the new cancellation state: either +-!PTHREAD_CANCEL_ENABLE! to enable cancellation, or +-!PTHREAD_CANCEL_DISABLE! to disable cancellation (cancellation +-requests are ignored). If |oldstate| is not !NULL!, the previous +-cancellation state is stored in the location pointed to by |oldstate|, ++or not. The \fIstate\fP argument is the new cancellation state: either ++\fBPTHREAD_CANCEL_ENABLE\fP to enable cancellation, or ++\fBPTHREAD_CANCEL_DISABLE\fP to disable cancellation (cancellation ++requests are ignored). If \fIoldstate\fP is not \fBNULL\fP, the previous ++cancellation state is stored in the location pointed to by \fIoldstate\fP, + and can thus be restored later by another call to +-!pthread_setcancelstate!. ++\fBpthread_setcancelstate\fP. + +-!pthread_setcanceltype! changes the type of responses to cancellation ++\fBpthread_setcanceltype\fP changes the type of responses to cancellation + requests for the calling thread: asynchronous (immediate) or deferred. +-The |type| argument is the new cancellation type: either +-!PTHREAD_CANCEL_ASYNCHRONOUS! to cancel the calling thread as soon as +-the cancellation request is received, or !PTHREAD_CANCEL_DEFERRED! to ++The \fItype\fP argument is the new cancellation type: either ++\fBPTHREAD_CANCEL_ASYNCHRONOUS\fP to cancel the calling thread as soon as ++the cancellation request is received, or \fBPTHREAD_CANCEL_DEFERRED\fP to + keep the cancellation request pending until the next cancellation +-point. If |oldtype| is not !NULL!, the previous +-cancellation state is stored in the location pointed to by |oldtype|, ++point. If \fIoldtype\fP is not \fBNULL\fP, the previous ++cancellation state is stored in the location pointed to by \fIoldtype\fP, + and can thus be restored later by another call to +-!pthread_setcanceltype!. ++\fBpthread_setcanceltype\fP. + +-Threads are always created by !pthread_create!(3) with cancellation ++Threads are always created by \fBpthread_create\fP(3) with cancellation + enabled and deferred. That is, the initial cancellation state is +-!PTHREAD_CANCEL_ENABLE! and the initial type is +-!PTHREAD_CANCEL_DEFERRED!. ++\fBPTHREAD_CANCEL_ENABLE\fP and the initial type is ++\fBPTHREAD_CANCEL_DEFERRED\fP. + + Cancellation points are those points in the program execution where a + test for pending cancellation requests is performed and cancellation + is executed if positive. The following POSIX threads functions + are cancellation points: + +-!pthread_join!(3) ++\fBpthread_join\fP(3) + .br +-!pthread_cond_wait!(3) ++\fBpthread_cond_wait\fP(3) + .br +-!pthread_cond_timedwait!(3) ++\fBpthread_cond_timedwait\fP(3) + .br +-!pthread_testcancel!(3) ++\fBpthread_testcancel\fP(3) + .br +-!sem_wait!(3) ++\fBsem_wait\fP(3) + .br +-!sigwait!(3) ++\fBsigwait\fP(3) + + All other POSIX threads functions are guaranteed not to be + cancellation points. That is, they never perform cancellation in + deferred cancellation mode. + +-!pthread_testcancel! does nothing except testing for pending ++\fBpthread_testcancel\fP does nothing except testing for pending + cancellation and executing it. Its purpose is to introduce explicit + checks for cancellation in long sequences of code that do not call + cancellation point functions otherwise. + + .SH "RETURN VALUE" + +-!pthread_cancel!, !pthread_setcancelstate! and +-!pthread_setcanceltype! return 0 on success and a non-zero error code ++\fBpthread_cancel\fP, \fBpthread_setcancelstate\fP and ++\fBpthread_setcanceltype\fP return 0 on success and a non-zero error code + on error. + + .SH ERRORS +-!pthread_cancel! returns the following error code on error: ++\fBpthread_cancel\fP returns the following error code on error: + .RS + .TP +-!ESRCH! +-no thread could be found corresponding to that specified by the |thread| ID. ++\fBESRCH\fP ++no thread could be found corresponding to that specified by the \fIthread\fP ID. + .RE + +-!pthread_setcancelstate! returns the following error code on error: ++\fBpthread_setcancelstate\fP returns the following error code on error: + .RS + .TP +-!EINVAL! +-the |state| argument is not !PTHREAD_CANCEL_ENABLE! nor +-!PTHREAD_CANCEL_DISABLE! ++\fBEINVAL\fP ++the \fIstate\fP argument is not \fBPTHREAD_CANCEL_ENABLE\fP nor ++\fBPTHREAD_CANCEL_DISABLE\fP + .RE + +-!pthread_setcanceltype! returns the following error code on error: ++\fBpthread_setcanceltype\fP returns the following error code on error: + .RS + .TP +-!EINVAL! +-the |type| argument is not !PTHREAD_CANCEL_DEFERRED! nor +-!PTHREAD_CANCEL_ASYNCHRONOUS! ++\fBEINVAL\fP ++the \fItype\fP argument is not \fBPTHREAD_CANCEL_DEFERRED\fP nor ++\fBPTHREAD_CANCEL_ASYNCHRONOUS\fP + .RE + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_exit!(3), +-!pthread_cleanup_push!(3), +-!pthread_cleanup_pop!(3). ++\fBpthread_exit\fP(3), ++\fBpthread_cleanup_push\fP(3), ++\fBpthread_cleanup_pop\fP(3). + + .SH BUGS + + POSIX specifies that a number of system calls (basically, all +-system calls that may block, such as !read!(2), !write!(2), !wait!(2), ++system calls that may block, such as \fBread\fP(2), \fBwrite\fP(2), \fBwait\fP(2), + etc.) and library functions that may call these system calls (e.g. +-!fprintf!(3)) are cancellation points. LinuxThreads is not yet ++\fBfprintf\fP(3)) are cancellation points. LinuxThreads is not yet + integrated enough with the C library to implement this, and thus none + of the C library functions is a cancellation point. + + For system calls at least, there is a workaround. Cancellation + requests are transmitted to the target thread by sending it a + signal. That signal will interrupt all blocking system calls, causing +-them to return immediately with the !EINTR! error. So, checking for +-cancellation during a !read! system call, for instance, can be ++them to return immediately with the \fBEINTR\fP error. So, checking for ++cancellation during a \fBread\fP system call, for instance, can be + achieved as follows: + + .RS +--- glibc-2.6.orig/linuxthreads/man/pthread_cleanup_push.man ++++ glibc-2.6/linuxthreads/man/pthread_cleanup_push.man +@@ -21,7 +21,7 @@ + .SH DESCRIPTION + + Cleanup handlers are functions that get called when a thread +-terminates, either by calling !pthread_exit!(3) or because of ++terminates, either by calling \fBpthread_exit\fP(3) or because of + cancellation. Cleanup handlers are installed and removed following a + stack-like discipline. + +@@ -32,41 +32,41 @@ + normally. The best way to avoid this is, just before locking the + mutex, to install a cleanup handler whose effect is to unlock the + mutex. Cleanup handlers can be used similarly to free blocks allocated +-with !malloc!(3) or close file descriptors on thread termination. ++with \fBmalloc\fP(3) or close file descriptors on thread termination. + +-!pthread_cleanup_push! installs the |routine| function with argument +-|arg| as a cleanup handler. From this point on to the matching +-!pthread_cleanup_pop!, the function |routine| will be called with +-arguments |arg| when the thread terminates, either through !pthread_exit!(3) ++\fBpthread_cleanup_push\fP installs the \fIroutine\fP function with argument ++\fIarg\fP as a cleanup handler. From this point on to the matching ++\fBpthread_cleanup_pop\fP, the function \fIroutine\fP will be called with ++arguments \fIarg\fP when the thread terminates, either through \fBpthread_exit\fP(3) + or by cancellation. If several cleanup handlers are active at that + point, they are called in LIFO order: the most recently installed + handler is called first. + +-!pthread_cleanup_pop! removes the most recently installed cleanup +-handler. If the |execute| argument is not 0, it also executes the +-handler, by calling the |routine| function with arguments |arg|. If +-the |execute| argument is 0, the handler is only removed but not ++\fBpthread_cleanup_pop\fP removes the most recently installed cleanup ++handler. If the \fIexecute\fP argument is not 0, it also executes the ++handler, by calling the \fIroutine\fP function with arguments \fIarg\fP. If ++the \fIexecute\fP argument is 0, the handler is only removed but not + executed. + +-Matching pairs of !pthread_cleanup_push! and !pthread_cleanup_pop! ++Matching pairs of \fBpthread_cleanup_push\fP and \fBpthread_cleanup_pop\fP + must occur in the same function, at the same level of block nesting. +-Actually, !pthread_cleanup_push! and !pthread_cleanup_pop! are macros, +-and the expansion of !pthread_cleanup_push! introduces an open brace !{! +-with the matching closing brace !}! being introduced by the expansion +-of the matching !pthread_cleanup_pop!. +- +-!pthread_cleanup_push_defer_np! is a non-portable extension that +-combines !pthread_cleanup_push! and !pthread_setcanceltype!(3). +-It pushes a cleanup handler just as !pthread_cleanup_push! does, but ++Actually, \fBpthread_cleanup_push\fP and \fBpthread_cleanup_pop\fP are macros, ++and the expansion of \fBpthread_cleanup_push\fP introduces an open brace \fB{\fP ++with the matching closing brace \fB}\fP being introduced by the expansion ++of the matching \fBpthread_cleanup_pop\fP. ++ ++\fBpthread_cleanup_push_defer_np\fP is a non-portable extension that ++combines \fBpthread_cleanup_push\fP and \fBpthread_setcanceltype\fP(3). ++It pushes a cleanup handler just as \fBpthread_cleanup_push\fP does, but + also saves the current cancellation type and sets it to deferred + cancellation. This ensures that the cleanup mechanism is effective + even if the thread was initially in asynchronous cancellation mode. + +-!pthread_cleanup_pop_restore_np! pops a cleanup handler introduced by +-!pthread_cleanup_push_defer_np!, and restores the cancellation type to +-its value at the time !pthread_cleanup_push_defer_np! was called. ++\fBpthread_cleanup_pop_restore_np\fP pops a cleanup handler introduced by ++\fBpthread_cleanup_push_defer_np\fP, and restores the cancellation type to ++its value at the time \fBpthread_cleanup_push_defer_np\fP was called. + +-!pthread_cleanup_push_defer_np! and !pthread_cleanup_pop_restore_np! ++\fBpthread_cleanup_push_defer_np\fP and \fBpthread_cleanup_pop_restore_np\fP + must occur in matching pairs, at the same level of block nesting. + + The following sequence +@@ -113,14 +113,14 @@ + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_exit!(3), +-!pthread_cancel!(3), +-!pthread_setcanceltype!(3). ++\fBpthread_exit\fP(3), ++\fBpthread_cancel\fP(3), ++\fBpthread_setcanceltype\fP(3). + + .SH EXAMPLE + +-Here is how to lock a mutex |mut| in such a way that it will be +-unlocked if the thread is canceled while |mut| is locked: ++Here is how to lock a mutex \fImut\fP in such a way that it will be ++unlocked if the thread is canceled while \fImut\fP is locked: + + .RS + .ft 3 +@@ -149,10 +149,10 @@ + .fi + + Notice that the code above is safe only in deferred cancellation mode +-(see !pthread_setcanceltype!(3)). In asynchronous cancellation mode, +-a cancellation can occur between !pthread_cleanup_push! and +-!pthread_mutex_lock!, or between !pthread_mutex_unlock! and +-!pthread_cleanup_pop!, resulting in both cases in the thread trying to ++(see \fBpthread_setcanceltype\fP(3)). In asynchronous cancellation mode, ++a cancellation can occur between \fBpthread_cleanup_push\fP and ++\fBpthread_mutex_lock\fP, or between \fBpthread_mutex_unlock\fP and ++\fBpthread_cleanup_pop\fP, resulting in both cases in the thread trying to + unlock a mutex not locked by the current thread. This is the main + reason why asynchronous cancellation is difficult to use. + +@@ -177,7 +177,7 @@ + + The code above can be rewritten in a more compact and more + efficient way, using the non-portable functions +-!pthread_cleanup_push_defer_np! and !pthread_cleanup_pop_restore_np!: ++\fBpthread_cleanup_push_defer_np\fP and \fBpthread_cleanup_pop_restore_np\fP: + + .RS + .ft 3 +--- glibc-2.6.orig/linuxthreads/man/pthread_condattr_init.man ++++ glibc-2.6/linuxthreads/man/pthread_condattr_init.man +@@ -15,25 +15,25 @@ + .SH DESCRIPTION + + Condition attributes can be specified at condition creation time, by passing a +-condition attribute object as second argument to !pthread_cond_init!(3). +-Passing !NULL! is equivalent to passing a condition attribute object with ++condition attribute object as second argument to \fBpthread_cond_init\fP(3). ++Passing \fBNULL\fP is equivalent to passing a condition attribute object with + all attributes set to their default values. + + The LinuxThreads implementation supports no attributes for + conditions. The functions on condition attributes are included only + for compliance with the POSIX standard. + +-!pthread_condattr_init! initializes the condition attribute object +-|attr| and fills it with default values for the attributes. +-!pthread_condattr_destroy! destroys a condition attribute object, ++\fBpthread_condattr_init\fP initializes the condition attribute object ++\fIattr\fP and fills it with default values for the attributes. ++\fBpthread_condattr_destroy\fP destroys a condition attribute object, + which must not be reused until it is reinitialized. Both functions do + nothing in the LinuxThreads implementation. + + .SH "RETURN VALUE" +-!pthread_condattr_init! and !pthread_condattr_destroy! always return 0. ++\fBpthread_condattr_init\fP and \fBpthread_condattr_destroy\fP always return 0. + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_cond_init!(3). ++\fBpthread_cond_init\fP(3). +--- glibc-2.6.orig/linuxthreads/man/pthread_cond_init.man ++++ glibc-2.6/linuxthreads/man/pthread_cond_init.man +@@ -40,31 +40,31 @@ + variable and another thread signals the condition just before the + first thread actually waits on it. + +-!pthread_cond_init! initializes the condition variable |cond|, using the +-condition attributes specified in |cond_attr|, or default attributes +-if |cond_attr| is !NULL!. The LinuxThreads implementation supports no +-attributes for conditions, hence the |cond_attr| parameter is actually ++\fBpthread_cond_init\fP initializes the condition variable \fIcond\fP, using the ++condition attributes specified in \fIcond_attr\fP, or default attributes ++if \fIcond_attr\fP is \fBNULL\fP. The LinuxThreads implementation supports no ++attributes for conditions, hence the \fIcond_attr\fP parameter is actually + ignored. + +-Variables of type !pthread_cond_t! can also be initialized +-statically, using the constant !PTHREAD_COND_INITIALIZER!. ++Variables of type \fBpthread_cond_t\fP can also be initialized ++statically, using the constant \fBPTHREAD_COND_INITIALIZER\fP. + +-!pthread_cond_signal! restarts one of the threads that are waiting on +-the condition variable |cond|. If no threads are waiting on |cond|, +-nothing happens. If several threads are waiting on |cond|, exactly one ++\fBpthread_cond_signal\fP restarts one of the threads that are waiting on ++the condition variable \fIcond\fP. If no threads are waiting on \fIcond\fP, ++nothing happens. If several threads are waiting on \fIcond\fP, exactly one + is restarted, but it is not specified which. + +-!pthread_cond_broadcast! restarts all the threads that are waiting on +-the condition variable |cond|. Nothing happens if no threads are +-waiting on |cond|. ++\fBpthread_cond_broadcast\fP restarts all the threads that are waiting on ++the condition variable \fIcond\fP. Nothing happens if no threads are ++waiting on \fIcond\fP. + +-!pthread_cond_wait! atomically unlocks the |mutex| (as per +-!pthread_unlock_mutex!) and waits for the condition variable |cond| to ++\fBpthread_cond_wait\fP atomically unlocks the \fImutex\fP (as per ++\fBpthread_unlock_mutex\fP) and waits for the condition variable \fIcond\fP to + be signaled. The thread execution is suspended and does not consume +-any CPU time until the condition variable is signaled. The |mutex| ++any CPU time until the condition variable is signaled. The \fImutex\fP + must be locked by the calling thread on entrance to +-!pthread_cond_wait!. Before returning to the calling thread, +-!pthread_cond_wait! re-acquires |mutex| (as per !pthread_lock_mutex!). ++\fBpthread_cond_wait\fP. Before returning to the calling thread, ++\fBpthread_cond_wait\fP re-acquires \fImutex\fP (as per \fBpthread_lock_mutex\fP). + + Unlocking the mutex and suspending on the condition variable is done + atomically. Thus, if all threads always acquire the mutex before +@@ -72,37 +72,37 @@ + signaled (and thus ignored) between the time a thread locks the mutex + and the time it waits on the condition variable. + +-!pthread_cond_timedwait! atomically unlocks |mutex| and waits on +-|cond|, as !pthread_cond_wait! does, but it also bounds the duration +-of the wait. If |cond| has not been signaled within the amount of time +-specified by |abstime|, the mutex |mutex| is re-acquired and +-!pthread_cond_timedwait! returns the error !ETIMEDOUT!. +-The |abstime| parameter specifies an absolute time, with the same +-origin as !time!(2) and !gettimeofday!(2): an |abstime| of 0 ++\fBpthread_cond_timedwait\fP atomically unlocks \fImutex\fP and waits on ++\fIcond\fP, as \fBpthread_cond_wait\fP does, but it also bounds the duration ++of the wait. If \fIcond\fP has not been signaled within the amount of time ++specified by \fIabstime\fP, the mutex \fImutex\fP is re-acquired and ++\fBpthread_cond_timedwait\fP returns the error \fBETIMEDOUT\fP. ++The \fIabstime\fP parameter specifies an absolute time, with the same ++origin as \fBtime\fP(2) and \fBgettimeofday\fP(2): an \fIabstime\fP of 0 + corresponds to 00:00:00 GMT, January 1, 1970. + +-!pthread_cond_destroy! destroys a condition variable, freeing the ++\fBpthread_cond_destroy\fP destroys a condition variable, freeing the + resources it might hold. No threads must be waiting on the condition +-variable on entrance to !pthread_cond_destroy!. In the LinuxThreads ++variable on entrance to \fBpthread_cond_destroy\fP. In the LinuxThreads + implementation, no resources are associated with condition variables, +-thus !pthread_cond_destroy! actually does nothing except checking that ++thus \fBpthread_cond_destroy\fP actually does nothing except checking that + the condition has no waiting threads. + + .SH CANCELLATION + +-!pthread_cond_wait! and !pthread_cond_timedwait! are cancellation ++\fBpthread_cond_wait\fP and \fBpthread_cond_timedwait\fP are cancellation + points. If a thread is cancelled while suspended in one of these + functions, the thread immediately resumes execution, then locks again +-the |mutex| argument to !pthread_cond_wait! and +-!pthread_cond_timedwait!, and finally executes the cancellation. +-Consequently, cleanup handlers are assured that |mutex| is locked when ++the \fImutex\fP argument to \fBpthread_cond_wait\fP and ++\fBpthread_cond_timedwait\fP, and finally executes the cancellation. ++Consequently, cleanup handlers are assured that \fImutex\fP is locked when + they are called. + + .SH "ASYNC-SIGNAL SAFETY" + + The condition functions are not async-signal safe, and should not be + called from a signal handler. In particular, calling +-!pthread_cond_signal! or !pthread_cond_broadcast! from a signal ++\fBpthread_cond_signal\fP or \fBpthread_cond_broadcast\fP from a signal + handler may deadlock the calling thread. + + .SH "RETURN VALUE" +@@ -112,45 +112,45 @@ + + .SH ERRORS + +-!pthread_cond_init!, !pthread_cond_signal!, !pthread_cond_broadcast!, +-and !pthread_cond_wait! never return an error code. ++\fBpthread_cond_init\fP, \fBpthread_cond_signal\fP, \fBpthread_cond_broadcast\fP, ++and \fBpthread_cond_wait\fP never return an error code. + +-The !pthread_cond_timedwait! function returns the following error codes ++The \fBpthread_cond_timedwait\fP function returns the following error codes + on error: + .RS + .TP +-!ETIMEDOUT! ++\fBETIMEDOUT\fP + the condition variable was not signaled until the timeout specified by +-|abstime| ++\fIabstime\fP + + .TP +-!EINTR! +-!pthread_cond_timedwait! was interrupted by a signal ++\fBEINTR\fP ++\fBpthread_cond_timedwait\fP was interrupted by a signal + .RE + +-The !pthread_cond_destroy! function returns the following error code ++The \fBpthread_cond_destroy\fP function returns the following error code + on error: + .RS + .TP +-!EBUSY! +-some threads are currently waiting on |cond|. ++\fBEBUSY\fP ++some threads are currently waiting on \fIcond\fP. + .RE + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_condattr_init!(3), +-!pthread_mutex_lock!(3), +-!pthread_mutex_unlock!(3), +-!gettimeofday!(2), +-!nanosleep!(2). ++\fBpthread_condattr_init\fP(3), ++\fBpthread_mutex_lock\fP(3), ++\fBpthread_mutex_unlock\fP(3), ++\fBgettimeofday\fP(2), ++\fBnanosleep\fP(2). + + .SH EXAMPLE + +-Consider two shared variables |x| and |y|, protected by the mutex |mut|, +-and a condition variable |cond| that is to be signaled whenever |x| +-becomes greater than |y|. ++Consider two shared variables \fIx\fP and \fIy\fP, protected by the mutex \fImut\fP, ++and a condition variable \fIcond\fP that is to be signaled whenever \fIx\fP ++becomes greater than \fIy\fP. + + .RS + .ft 3 +@@ -164,7 +164,7 @@ + .RE + .fi + +-Waiting until |x| is greater than |y| is performed as follows: ++Waiting until \fIx\fP is greater than \fIy\fP is performed as follows: + + .RS + .ft 3 +@@ -181,8 +181,8 @@ + .RE + .fi + +-Modifications on |x| and |y| that may cause |x| to become greater than +-|y| should signal the condition if needed: ++Modifications on \fIx\fP and \fIy\fP that may cause \fIx\fP to become greater than ++\fIy\fP should signal the condition if needed: + + .RS + .ft 3 +@@ -199,11 +199,11 @@ + + If it can be proved that at most one waiting thread needs to be waken + up (for instance, if there are only two threads communicating through +-|x| and |y|), !pthread_cond_signal! can be used as a slightly more +-efficient alternative to !pthread_cond_broadcast!. In doubt, use +-!pthread_cond_broadcast!. ++\fIx\fP and \fIy\fP), \fBpthread_cond_signal\fP can be used as a slightly more ++efficient alternative to \fBpthread_cond_broadcast\fP. In doubt, use ++\fBpthread_cond_broadcast\fP. + +-To wait for |x| to becomes greater than |y| with a timeout of 5 ++To wait for \fIx\fP to becomes greater than \fIy\fP with a timeout of 5 + seconds, do: + + .RS +--- glibc-2.6.orig/linuxthreads/man/pthread_create.man ++++ glibc-2.6/linuxthreads/man/pthread_create.man +@@ -9,38 +9,38 @@ + int pthread_create(pthread_t * thread, pthread_attr_t * attr, void * (*start_routine)(void *), void * arg); + + .SH DESCRIPTION +-!pthread_create! creates a new thread of control that executes ++\fBpthread_create\fP creates a new thread of control that executes + concurrently with the calling thread. The new thread applies the +-function |start_routine| passing it |arg| as first argument. The new +-thread terminates either explicitly, by calling !pthread_exit!(3), +-or implicitly, by returning from the |start_routine| function. The +-latter case is equivalent to calling !pthread_exit!(3) with the result +-returned by |start_routine| as exit code. +- +-The |attr| argument specifies thread attributes to be applied to the +-new thread. See !pthread_attr_init!(3) for a complete list of thread +-attributes. The |attr| argument can also be !NULL!, in which case ++function \fIstart_routine\fP passing it \fIarg\fP as first argument. The new ++thread terminates either explicitly, by calling \fBpthread_exit\fP(3), ++or implicitly, by returning from the \fIstart_routine\fP function. The ++latter case is equivalent to calling \fBpthread_exit\fP(3) with the result ++returned by \fIstart_routine\fP as exit code. ++ ++The \fIattr\fP argument specifies thread attributes to be applied to the ++new thread. See \fBpthread_attr_init\fP(3) for a complete list of thread ++attributes. The \fIattr\fP argument can also be \fBNULL\fP, in which case + default attributes are used: the created thread is joinable (not + detached) and has default (non real-time) scheduling policy. + + .SH "RETURN VALUE" + On success, the identifier of the newly created thread is stored in +-the location pointed by the |thread| argument, and a 0 is returned. On ++the location pointed by the \fIthread\fP argument, and a 0 is returned. On + error, a non-zero error code is returned. + + .SH ERRORS + .TP +-!EAGAIN! ++\fBEAGAIN\fP + not enough system resources to create a process for the new thread. + .TP +-!EAGAIN! +-more than !PTHREAD_THREADS_MAX! threads are already active. ++\fBEAGAIN\fP ++more than \fBPTHREAD_THREADS_MAX\fP threads are already active. + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_exit!(3), +-!pthread_join!(3), +-!pthread_detach!(3), +-!pthread_attr_init!(3). ++\fBpthread_exit\fP(3), ++\fBpthread_join\fP(3), ++\fBpthread_detach\fP(3), ++\fBpthread_attr_init\fP(3). +--- glibc-2.6.orig/linuxthreads/man/pthread_detach.man ++++ glibc-2.6/linuxthreads/man/pthread_detach.man +@@ -9,36 +9,36 @@ + int pthread_detach(pthread_t th); + + .SH DESCRIPTION +-!pthread_detach! put the thread |th| in the detached state. This +-guarantees that the memory resources consumed by |th| will be freed +-immediately when |th| terminates. However, this prevents other threads +-from synchronizing on the termination of |th| using !pthread_join!. ++\fBpthread_detach\fP put the thread \fIth\fP in the detached state. This ++guarantees that the memory resources consumed by \fIth\fP will be freed ++immediately when \fIth\fP terminates. However, this prevents other threads ++from synchronizing on the termination of \fIth\fP using \fBpthread_join\fP. + + A thread can be created initially in the detached state, using the +-!detachstate! attribute to !pthread_create!(3). In contrast, +-!pthread_detach! applies to threads created in the joinable state, and ++\fBdetachstate\fP attribute to \fBpthread_create\fP(3). In contrast, ++\fBpthread_detach\fP applies to threads created in the joinable state, and + which need to be put in the detached state later. + +-After !pthread_detach! completes, subsequent attempts to perform +-!pthread_join! on |th| will fail. If another thread is already joining +-the thread |th| at the time !pthread_detach! is called, +-!pthread_detach! does nothing and leaves |th| in the joinable state. ++After \fBpthread_detach\fP completes, subsequent attempts to perform ++\fBpthread_join\fP on \fIth\fP will fail. If another thread is already joining ++the thread \fIth\fP at the time \fBpthread_detach\fP is called, ++\fBpthread_detach\fP does nothing and leaves \fIth\fP in the joinable state. + + .SH "RETURN VALUE" + On success, 0 is returned. On error, a non-zero error code is returned. + + .SH ERRORS + .TP +-!ESRCH! +-No thread could be found corresponding to that specified by |th| ++\fBESRCH\fP ++No thread could be found corresponding to that specified by \fIth\fP + .TP +-!EINVAL! +-the thread |th| is already in the detached state ++\fBEINVAL\fP ++the thread \fIth\fP is already in the detached state + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_create!(3), +-!pthread_join!(3), +-!pthread_attr_setdetachstate!(3). +\ No newline at end of file ++\fBpthread_create\fP(3), ++\fBpthread_join\fP(3), ++\fBpthread_attr_setdetachstate\fP(3). +\ No newline at end of file +--- glibc-2.6.orig/linuxthreads/man/pthread_equal.man ++++ glibc-2.6/linuxthreads/man/pthread_equal.man +@@ -9,15 +9,15 @@ + int pthread_equal(pthread_t thread1, pthread_t thread2); + + .SH DESCRIPTION +-!pthread_equal! determines if two thread identifiers refer to the same ++\fBpthread_equal\fP determines if two thread identifiers refer to the same + thread. + + .SH "RETURN VALUE" +-A non-zero value is returned if |thread1| and |thread2| refer to the ++A non-zero value is returned if \fIthread1\fP and \fIthread2\fP refer to the + same thread. Otherwise, 0 is returned. + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_self!(3). ++\fBpthread_self\fP(3). +--- glibc-2.6.orig/linuxthreads/man/pthread_exit.man ++++ glibc-2.6/linuxthreads/man/pthread_exit.man +@@ -9,24 +9,24 @@ + void pthread_exit(void *retval); + + .SH DESCRIPTION +-!pthread_exit! terminates the execution of the calling thread. ++\fBpthread_exit\fP terminates the execution of the calling thread. + All cleanup handlers that have been set for the calling thread with +-!pthread_cleanup_push!(3) are executed in reverse order (the most ++\fBpthread_cleanup_push\fP(3) are executed in reverse order (the most + recently pushed handler is executed first). Finalization functions for +-thread-specific data are then called for all keys that have non-!NULL! ++thread-specific data are then called for all keys that have non-\fBNULL\fP + values associated with them in the calling thread (see +-!pthread_key_create!(3)). Finally, execution of the calling thread is ++\fBpthread_key_create\fP(3)). Finally, execution of the calling thread is + stopped. + +-The |retval| argument is the return value of the thread. It can be +-consulted from another thread using !pthread_join!(3). ++The \fIretval\fP argument is the return value of the thread. It can be ++consulted from another thread using \fBpthread_join\fP(3). + + .SH "RETURN VALUE" +-The !pthread_exit! function never returns. ++The \fBpthread_exit\fP function never returns. + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_create!(3), +-!pthread_join!(3). ++\fBpthread_create\fP(3), ++\fBpthread_join\fP(3). +--- glibc-2.6.orig/linuxthreads/man/pthread_join.man ++++ glibc-2.6/linuxthreads/man/pthread_join.man +@@ -9,62 +9,62 @@ + int pthread_join(pthread_t th, void **thread_return); + + .SH DESCRIPTION +-!pthread_join! suspends the execution of the calling thread until the +-thread identified by |th| terminates, either by calling !pthread_exit!(3) ++\fBpthread_join\fP suspends the execution of the calling thread until the ++thread identified by \fIth\fP terminates, either by calling \fBpthread_exit\fP(3) + or by being cancelled. + +-If |thread_return| is not !NULL!, the return value of |th| is stored +-in the location pointed to by |thread_return|. The return value of +-|th| is either the argument it gave to !pthread_exit!(3), or +-!PTHREAD_CANCELED! if |th| was cancelled. +- +-The joined thread !th! must be in the joinable state: it must not have +-been detached using !pthread_detach!(3) or the +-!PTHREAD_CREATE_DETACHED! attribute to !pthread_create!(3). ++If \fIthread_return\fP is not \fBNULL\fP, the return value of \fIth\fP is stored ++in the location pointed to by \fIthread_return\fP. The return value of ++\fIth\fP is either the argument it gave to \fBpthread_exit\fP(3), or ++\fBPTHREAD_CANCELED\fP if \fIth\fP was cancelled. ++ ++The joined thread \fBth\fP must be in the joinable state: it must not have ++been detached using \fBpthread_detach\fP(3) or the ++\fBPTHREAD_CREATE_DETACHED\fP attribute to \fBpthread_create\fP(3). + + When a joinable thread terminates, its memory resources (thread + descriptor and stack) are not deallocated until another thread +-performs !pthread_join! on it. Therefore, !pthread_join! must be ++performs \fBpthread_join\fP on it. Therefore, \fBpthread_join\fP must be + called once for each joinable thread created to avoid memory leaks. + + At most one thread can wait for the termination of a given +-thread. Calling !pthread_join! on a thread |th| on which another ++thread. Calling \fBpthread_join\fP on a thread \fIth\fP on which another + thread is already waiting for termination returns an error. + + .SH CANCELLATION + +-!pthread_join! is a cancellation point. If a thread is canceled while +-suspended in !pthread_join!, the thread execution resumes immediately +-and the cancellation is executed without waiting for the |th| thread +-to terminate. If cancellation occurs during !pthread_join!, the |th| ++\fBpthread_join\fP is a cancellation point. If a thread is canceled while ++suspended in \fBpthread_join\fP, the thread execution resumes immediately ++and the cancellation is executed without waiting for the \fIth\fP thread ++to terminate. If cancellation occurs during \fBpthread_join\fP, the \fIth\fP + thread remains not joined. + + .SH "RETURN VALUE" +-On success, the return value of |th| is stored in the location pointed +-to by |thread_return|, and 0 is returned. On error, a non-zero error ++On success, the return value of \fIth\fP is stored in the location pointed ++to by \fIthread_return\fP, and 0 is returned. On error, a non-zero error + code is returned. + + .SH ERRORS + .TP +-!ESRCH! +-No thread could be found corresponding to that specified by |th|. ++\fBESRCH\fP ++No thread could be found corresponding to that specified by \fIth\fP. + .TP +-!EINVAL! +-The |th| thread has been detached. ++\fBEINVAL\fP ++The \fIth\fP thread has been detached. + .TP +-!EINVAL! +-Another thread is already waiting on termination of |th|. ++\fBEINVAL\fP ++Another thread is already waiting on termination of \fIth\fP. + .TP +-!EDEADLK! +-The |th| argument refers to the calling thread. ++\fBEDEADLK\fP ++The \fIth\fP argument refers to the calling thread. + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_exit!(3), +-!pthread_detach!(3), +-!pthread_create!(3), +-!pthread_attr_setdetachstate!(3), +-!pthread_cleanup_push!(3), +-!pthread_key_create!(3). ++\fBpthread_exit\fP(3), ++\fBpthread_detach\fP(3), ++\fBpthread_create\fP(3), ++\fBpthread_attr_setdetachstate\fP(3), ++\fBpthread_cleanup_push\fP(3), ++\fBpthread_key_create\fP(3). +--- glibc-2.6.orig/linuxthreads/man/pthread_key_create.man ++++ glibc-2.6/linuxthreads/man/pthread_key_create.man +@@ -23,81 +23,81 @@ + + Each thread possesses a private memory block, the thread-specific data + area, or TSD area for short. This area is indexed by TSD keys. The TSD +-area associates values of type !void *! to TSD keys. TSD keys are ++area associates values of type \fBvoid *\fP to TSD keys. TSD keys are + common to all threads, but the value associated with a given TSD key + can be different in each thread. + +-For concreteness, the TSD areas can be viewed as arrays of !void *! ++For concreteness, the TSD areas can be viewed as arrays of \fBvoid *\fP + pointers, TSD keys as integer indices into these arrays, and the value + of a TSD key as the value of the corresponding array element in the + calling thread. + +-When a thread is created, its TSD area initially associates !NULL! ++When a thread is created, its TSD area initially associates \fBNULL\fP + with all keys. + +-!pthread_key_create! allocates a new TSD key. The key is stored in the +-location pointed to by |key|. There is a limit of !PTHREAD_KEYS_MAX! ++\fBpthread_key_create\fP allocates a new TSD key. The key is stored in the ++location pointed to by \fIkey\fP. There is a limit of \fBPTHREAD_KEYS_MAX\fP + on the number of keys allocated at a given time. The value initially +-associated with the returned key is !NULL! in all currently executing ++associated with the returned key is \fBNULL\fP in all currently executing + threads. + +-The |destr_function| argument, if not !NULL!, specifies a destructor ++The \fIdestr_function\fP argument, if not \fBNULL\fP, specifies a destructor + function associated with the key. When a thread terminates via +-!pthread_exit! or by cancellation, |destr_function| is called with ++\fBpthread_exit\fP or by cancellation, \fIdestr_function\fP is called with + arguments the value associated with the key in that thread. The +-|destr_function| is not called if that value is !NULL!. The order in ++\fIdestr_function\fP is not called if that value is \fBNULL\fP. The order in + which destructor functions are called at thread termination time is + unspecified. + +-Before the destructor function is called, the !NULL! value is ++Before the destructor function is called, the \fBNULL\fP value is + associated with the key in the current thread. A destructor function +-might, however, re-associate non-!NULL! values to that key or some ++might, however, re-associate non-\fBNULL\fP values to that key or some + other key. To deal with this, if after all the destructors have been +-called for all non-!NULL! values, there are still some non-!NULL! ++called for all non-\fBNULL\fP values, there are still some non-\fBNULL\fP + values with associated destructors, then the process is repeated. The + LinuxThreads implementation stops the process after +-!PTHREAD_DESTRUCTOR_ITERATIONS! iterations, even if some non-!NULL! ++\fBPTHREAD_DESTRUCTOR_ITERATIONS\fP iterations, even if some non-\fBNULL\fP + values with associated descriptors remain. Other implementations may + loop indefinitely. + +-!pthread_key_delete! deallocates a TSD key. It does not check whether +-non-!NULL! values are associated with that key in the currently ++\fBpthread_key_delete\fP deallocates a TSD key. It does not check whether ++non-\fBNULL\fP values are associated with that key in the currently + executing threads, nor call the destructor function associated with + the key. + +-!pthread_setspecific! changes the value associated with |key| in the +-calling thread, storing the given |pointer| instead. ++\fBpthread_setspecific\fP changes the value associated with \fIkey\fP in the ++calling thread, storing the given \fIpointer\fP instead. + +-!pthread_getspecific! returns the value currently associated with +-|key| in the calling thread. ++\fBpthread_getspecific\fP returns the value currently associated with ++\fIkey\fP in the calling thread. + + .SH "RETURN VALUE" + +-!pthread_key_create!, !pthread_key_delete!, and !pthread_setspecific! ++\fBpthread_key_create\fP, \fBpthread_key_delete\fP, and \fBpthread_setspecific\fP + return 0 on success and a non-zero error code on failure. If +-successful, !pthread_key_create! stores the newly allocated key in the +-location pointed to by its |key| argument. ++successful, \fBpthread_key_create\fP stores the newly allocated key in the ++location pointed to by its \fIkey\fP argument. + +-!pthread_getspecific! returns the value associated with |key| on +-success, and !NULL! on error. ++\fBpthread_getspecific\fP returns the value associated with \fIkey\fP on ++success, and \fBNULL\fP on error. + + .SH ERRORS +-!pthread_key_create! returns the following error code on error: ++\fBpthread_key_create\fP returns the following error code on error: + .RS + .TP +-!EAGAIN! +-!PTHREAD_KEYS_MAX! keys are already allocated ++\fBEAGAIN\fP ++\fBPTHREAD_KEYS_MAX\fP keys are already allocated + .RE + +-!pthread_key_delete! and !pthread_setspecific! return the following ++\fBpthread_key_delete\fP and \fBpthread_setspecific\fP return the following + error code on error: + .RS + .TP +-!EINVAL! +-|key| is not a valid, allocated TSD key ++\fBEINVAL\fP ++\fIkey\fP is not a valid, allocated TSD key + .RE + +-!pthread_getspecific! returns !NULL! if |key| is not a valid, ++\fBpthread_getspecific\fP returns \fBNULL\fP if \fIkey\fP is not a valid, + allocated TSD key. + + .SH AUTHOR +--- glibc-2.6.orig/linuxthreads/man/pthread_kill_other_threads_np.man ++++ glibc-2.6/linuxthreads/man/pthread_kill_other_threads_np.man +@@ -9,14 +9,14 @@ + void pthread_kill_other_threads_np(void); + + .SH DESCRIPTION +-!pthread_kill_other_threads_np! is a non-portable LinuxThreads extension. ++\fBpthread_kill_other_threads_np\fP is a non-portable LinuxThreads extension. + It causes all threads in the program to terminate immediately, except + the calling thread which proceeds normally. It is intended to be +-called just before a thread calls one of the !exec! functions, +-e.g. !execve!(2). ++called just before a thread calls one of the \fBexec\fP functions, ++e.g. \fBexecve\fP(2). + + Termination of the other threads is not performed through +-!pthread_cancel!(3) and completely bypasses the cancellation ++\fBpthread_cancel\fP(3) and completely bypasses the cancellation + mechanism. Hence, the current settings for cancellation state and + cancellation type are ignored, and the cleanup handlers are not + executed in the terminated threads. +@@ -25,16 +25,16 @@ + Xavier Leroy + + .SH "SEE ALSO" +-!execve!(2), +-!pthread_setcancelstate!(3), +-!pthread_setcanceltype!(3), +-!pthread_cancel!(3). ++\fBexecve\fP(2), ++\fBpthread_setcancelstate\fP(3), ++\fBpthread_setcanceltype\fP(3), ++\fBpthread_cancel\fP(3). + + .SH BUGS + +-According to POSIX 1003.1c, a successful !exec*! in one of the threads ++According to POSIX 1003.1c, a successful \fBexec*\fP in one of the threads + should terminate automatically all other threads in the program. + This behavior is not yet implemented in LinuxThreads. +-Calling !pthread_kill_other_threads_np! before !exec*! achieves much +-of the same behavior, except that if !exec*! ultimately fails, then ++Calling \fBpthread_kill_other_threads_np\fP before \fBexec*\fP achieves much ++of the same behavior, except that if \fBexec*\fP ultimately fails, then + all other threads are already killed. +--- glibc-2.6.orig/linuxthreads/man/pthread_mutexattr_init.man ++++ glibc-2.6/linuxthreads/man/pthread_mutexattr_init.man +@@ -21,64 +21,64 @@ + .SH DESCRIPTION + + Mutex attributes can be specified at mutex creation time, by passing a +-mutex attribute object as second argument to !pthread_mutex_init!(3). +-Passing !NULL! is equivalent to passing a mutex attribute object with ++mutex attribute object as second argument to \fBpthread_mutex_init\fP(3). ++Passing \fBNULL\fP is equivalent to passing a mutex attribute object with + all attributes set to their default values. + +-!pthread_mutexattr_init! initializes the mutex attribute object |attr| ++\fBpthread_mutexattr_init\fP initializes the mutex attribute object \fIattr\fP + and fills it with default values for the attributes. + +-!pthread_mutexattr_destroy! destroys a mutex attribute object, which +-must not be reused until it is reinitialized. !pthread_mutexattr_destroy! ++\fBpthread_mutexattr_destroy\fP destroys a mutex attribute object, which ++must not be reused until it is reinitialized. \fBpthread_mutexattr_destroy\fP + does nothing in the LinuxThreads implementation. + + LinuxThreads supports only one mutex attribute: the mutex kind, which +-is either !PTHREAD_MUTEX_FAST_NP! for ``fast'' mutexes, +-!PTHREAD_MUTEX_RECURSIVE_NP! for ``recursive'' mutexes, +-or !PTHREAD_MUTEX_ERRORCHECK_NP! for ``error checking'' mutexes. +-As the !NP! suffix indicates, this is a non-portable extension to the ++is either \fBPTHREAD_MUTEX_FAST_NP\fP for ``fast'' mutexes, ++\fBPTHREAD_MUTEX_RECURSIVE_NP\fP for ``recursive'' mutexes, ++or \fBPTHREAD_MUTEX_ERRORCHECK_NP\fP for ``error checking'' mutexes. ++As the \fBNP\fP suffix indicates, this is a non-portable extension to the + POSIX standard and should not be employed in portable programs. + + The mutex kind determines what happens if a thread attempts to lock a +-mutex it already owns with !pthread_mutex_lock!(3). If the mutex is of +-the ``fast'' kind, !pthread_mutex_lock!(3) simply suspends the calling ++mutex it already owns with \fBpthread_mutex_lock\fP(3). If the mutex is of ++the ``fast'' kind, \fBpthread_mutex_lock\fP(3) simply suspends the calling + thread forever. If the mutex is of the ``error checking'' kind, +-!pthread_mutex_lock!(3) returns immediately with the error code +-!EDEADLK!. If the mutex is of the ``recursive'' kind, the call to +-!pthread_mutex_lock!(3) returns immediately with a success return ++\fBpthread_mutex_lock\fP(3) returns immediately with the error code ++\fBEDEADLK\fP. If the mutex is of the ``recursive'' kind, the call to ++\fBpthread_mutex_lock\fP(3) returns immediately with a success return + code. The number of times the thread owning the mutex has locked it is + recorded in the mutex. The owning thread must call +-!pthread_mutex_unlock!(3) the same number of times before the mutex ++\fBpthread_mutex_unlock\fP(3) the same number of times before the mutex + returns to the unlocked state. + +-The default mutex kind is ``fast'', that is, !PTHREAD_MUTEX_FAST_NP!. ++The default mutex kind is ``fast'', that is, \fBPTHREAD_MUTEX_FAST_NP\fP. + +-!pthread_mutexattr_settype! sets the mutex kind attribute in |attr| +-to the value specified by |kind|. ++\fBpthread_mutexattr_settype\fP sets the mutex kind attribute in \fIattr\fP ++to the value specified by \fIkind\fP. + +-!pthread_mutexattr_gettype! retrieves the current value of the +-mutex kind attribute in |attr| and stores it in the location pointed +-to by |kind|. ++\fBpthread_mutexattr_gettype\fP retrieves the current value of the ++mutex kind attribute in \fIattr\fP and stores it in the location pointed ++to by \fIkind\fP. + + .SH "RETURN VALUE" +-!pthread_mutexattr_init!, !pthread_mutexattr_destroy! and +-!pthread_mutexattr_gettype! always return 0. ++\fBpthread_mutexattr_init\fP, \fBpthread_mutexattr_destroy\fP and ++\fBpthread_mutexattr_gettype\fP always return 0. + +-!pthread_mutexattr_settype! returns 0 on success and a non-zero ++\fBpthread_mutexattr_settype\fP returns 0 on success and a non-zero + error code on error. + + .SH ERRORS + +-On error, !pthread_mutexattr_settype! returns the following error code: ++On error, \fBpthread_mutexattr_settype\fP returns the following error code: + .TP +-!EINVAL! +-|kind| is neither !PTHREAD_MUTEX_FAST_NP! nor !PTHREAD_MUTEX_RECURSIVE_NP! +-nor !PTHREAD_MUTEX_ERRORCHECK_NP! ++\fBEINVAL\fP ++\fIkind\fP is neither \fBPTHREAD_MUTEX_FAST_NP\fP nor \fBPTHREAD_MUTEX_RECURSIVE_NP\fP ++nor \fBPTHREAD_MUTEX_ERRORCHECK_NP\fP + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_mutex_init!(3), +-!pthread_mutex_lock!(3), +-!pthread_mutex_unlock!(3). ++\fBpthread_mutex_init\fP(3), ++\fBpthread_mutex_lock\fP(3), ++\fBpthread_mutex_unlock\fP(3). +--- glibc-2.6.orig/linuxthreads/man/pthread_mutexattr_setkind_np.man ++++ glibc-2.6/linuxthreads/man/pthread_mutexattr_setkind_np.man +@@ -14,26 +14,26 @@ + + .SH DESCRIPTION + +-These functions are deprecated, use !pthread_mutexattr_settype!(3) +-and !pthread_mutexattr_gettype!(3) instead. ++These functions are deprecated, use \fBpthread_mutexattr_settype\fP(3) ++and \fBpthread_mutexattr_gettype\fP(3) instead. + + .SH "RETURN VALUE" +-!pthread_mutexattr_getkind_np! always returns 0. ++\fBpthread_mutexattr_getkind_np\fP always returns 0. + +-!pthread_mutexattr_setkind_np! returns 0 on success and a non-zero ++\fBpthread_mutexattr_setkind_np\fP returns 0 on success and a non-zero + error code on error. + + .SH ERRORS + +-On error, !pthread_mutexattr_setkind_np! returns the following error code: ++On error, \fBpthread_mutexattr_setkind_np\fP returns the following error code: + .TP +-!EINVAL! +-|kind| is neither !PTHREAD_MUTEX_FAST_NP! nor !PTHREAD_MUTEX_RECURSIVE_NP! +-nor !PTHREAD_MUTEX_ERRORCHECK_NP! ++\fBEINVAL\fP ++\fIkind\fP is neither \fBPTHREAD_MUTEX_FAST_NP\fP nor \fBPTHREAD_MUTEX_RECURSIVE_NP\fP ++nor \fBPTHREAD_MUTEX_ERRORCHECK_NP\fP + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_mutexattr_settype!(3), +-!pthread_mutexattr_gettype!(3). ++\fBpthread_mutexattr_settype\fP(3), ++\fBpthread_mutexattr_gettype\fP(3). +--- glibc-2.6.orig/linuxthreads/man/pthread_mutex_init.man ++++ glibc-2.6/linuxthreads/man/pthread_mutex_init.man +@@ -38,75 +38,75 @@ + that is already locked by another thread is suspended until the owning + thread unlocks the mutex first. + +-!pthread_mutex_init! initializes the mutex object pointed to by +-|mutex| according to the mutex attributes specified in |mutexattr|. +-If |mutexattr| is !NULL!, default attributes are used instead. ++\fBpthread_mutex_init\fP initializes the mutex object pointed to by ++\fImutex\fP according to the mutex attributes specified in \fImutexattr\fP. ++If \fImutexattr\fP is \fBNULL\fP, default attributes are used instead. + + The LinuxThreads implementation supports only one mutex attributes, + the |mutex kind|, which is either ``fast'', ``recursive'', or + ``error checking''. The kind of a mutex determines whether + it can be locked again by a thread that already owns it. +-The default kind is ``fast''. See !pthread_mutexattr_init!(3) for more ++The default kind is ``fast''. See \fBpthread_mutexattr_init\fP(3) for more + information on mutex attributes. + +-Variables of type !pthread_mutex_t! can also be initialized +-statically, using the constants !PTHREAD_MUTEX_INITIALIZER! (for fast +-mutexes), !PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP! (for recursive +-mutexes), and !PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP! (for error checking ++Variables of type \fBpthread_mutex_t\fP can also be initialized ++statically, using the constants \fBPTHREAD_MUTEX_INITIALIZER\fP (for fast ++mutexes), \fBPTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP\fP (for recursive ++mutexes), and \fBPTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP\fP (for error checking + mutexes). + +-!pthread_mutex_lock! locks the given mutex. If the mutex is currently ++\fBpthread_mutex_lock\fP locks the given mutex. If the mutex is currently + unlocked, it becomes locked and owned by the calling thread, and +-!pthread_mutex_lock! returns immediately. If the mutex is already +-locked by another thread, !pthread_mutex_lock! suspends the calling ++\fBpthread_mutex_lock\fP returns immediately. If the mutex is already ++locked by another thread, \fBpthread_mutex_lock\fP suspends the calling + thread until the mutex is unlocked. + + If the mutex is already locked by the calling thread, the behavior of +-!pthread_mutex_lock! depends on the kind of the mutex. If the mutex is ++\fBpthread_mutex_lock\fP depends on the kind of the mutex. If the mutex is + of the ``fast'' kind, the calling thread is suspended until the mutex + is unlocked, thus effectively causing the calling thread to + deadlock. If the mutex is of the ``error checking'' kind, +-!pthread_mutex_lock! returns immediately with the error code !EDEADLK!. +-If the mutex is of the ``recursive'' kind, !pthread_mutex_lock! ++\fBpthread_mutex_lock\fP returns immediately with the error code \fBEDEADLK\fP. ++If the mutex is of the ``recursive'' kind, \fBpthread_mutex_lock\fP + succeeds and returns immediately, recording the number of times the + calling thread has locked the mutex. An equal number of +-!pthread_mutex_unlock! operations must be performed before the mutex ++\fBpthread_mutex_unlock\fP operations must be performed before the mutex + returns to the unlocked state. + +-!pthread_mutex_trylock! behaves identically to !pthread_mutex_lock!, ++\fBpthread_mutex_trylock\fP behaves identically to \fBpthread_mutex_lock\fP, + except that it does not block the calling thread if the mutex is + already locked by another thread (or by the calling thread in the case +-of a ``fast'' mutex). Instead, !pthread_mutex_trylock! returns +-immediately with the error code !EBUSY!. ++of a ``fast'' mutex). Instead, \fBpthread_mutex_trylock\fP returns ++immediately with the error code \fBEBUSY\fP. + +-!pthread_mutex_unlock! unlocks the given mutex. The mutex is assumed ++\fBpthread_mutex_unlock\fP unlocks the given mutex. The mutex is assumed + to be locked and owned by the calling thread on entrance to +-!pthread_mutex_unlock!. If the mutex is of the ``fast'' kind, +-!pthread_mutex_unlock! always returns it to the unlocked state. If it ++\fBpthread_mutex_unlock\fP. If the mutex is of the ``fast'' kind, ++\fBpthread_mutex_unlock\fP always returns it to the unlocked state. If it + is of the ``recursive'' kind, it decrements the locking count of the +-mutex (number of !pthread_mutex_lock! operations performed on it by ++mutex (number of \fBpthread_mutex_lock\fP operations performed on it by + the calling thread), and only when this count reaches zero is the + mutex actually unlocked. + +-On ``error checking'' mutexes, !pthread_mutex_unlock! actually checks ++On ``error checking'' mutexes, \fBpthread_mutex_unlock\fP actually checks + at run-time that the mutex is locked on entrance, and that it was +-locked by the same thread that is now calling !pthread_mutex_unlock!. ++locked by the same thread that is now calling \fBpthread_mutex_unlock\fP. + If these conditions are not met, an error code is returned and the + mutex remains unchanged. ``Fast'' and ``recursive'' mutexes perform + no such checks, thus allowing a locked mutex to be unlocked by a + thread other than its owner. This is non-portable behavior and must + not be relied upon. + +-!pthread_mutex_destroy! destroys a mutex object, freeing the resources ++\fBpthread_mutex_destroy\fP destroys a mutex object, freeing the resources + it might hold. The mutex must be unlocked on entrance. In the + LinuxThreads implementation, no resources are associated with mutex +-objects, thus !pthread_mutex_destroy! actually does nothing except ++objects, thus \fBpthread_mutex_destroy\fP actually does nothing except + checking that the mutex is unlocked. + + .SH CANCELLATION + + None of the mutex functions is a cancellation point, not even +-!pthread_mutex_lock!, in spite of the fact that it can suspend a ++\fBpthread_mutex_lock\fP, in spite of the fact that it can suspend a + thread for arbitrary durations. This way, the status of mutexes at + cancellation points is predictable, allowing cancellation handlers to + unlock precisely those mutexes that need to be unlocked before the +@@ -117,58 +117,58 @@ + + The mutex functions are not async-signal safe. What this means is that + they should not be called from a signal handler. In particular, +-calling !pthread_mutex_lock! or !pthread_mutex_unlock! from a signal ++calling \fBpthread_mutex_lock\fP or \fBpthread_mutex_unlock\fP from a signal + handler may deadlock the calling thread. + + .SH "RETURN VALUE" + +-!pthread_mutex_init! always returns 0. The other mutex functions ++\fBpthread_mutex_init\fP always returns 0. The other mutex functions + return 0 on success and a non-zero error code on error. + + .SH ERRORS + +-The !pthread_mutex_lock! function returns the following error code ++The \fBpthread_mutex_lock\fP function returns the following error code + on error: + .RS + .TP +-!EINVAL! ++\fBEINVAL\fP + the mutex has not been properly initialized. + + .TP +-!EDEADLK! ++\fBEDEADLK\fP + the mutex is already locked by the calling thread + (``error checking'' mutexes only). + .RE + +-The !pthread_mutex_trylock! function returns the following error codes ++The \fBpthread_mutex_trylock\fP function returns the following error codes + on error: + .RS + .TP +-!EBUSY! ++\fBEBUSY\fP + the mutex could not be acquired because it was currently locked. + + .TP +-!EINVAL! ++\fBEINVAL\fP + the mutex has not been properly initialized. + .RE + +-The !pthread_mutex_unlock! function returns the following error code ++The \fBpthread_mutex_unlock\fP function returns the following error code + on error: + .RS + .TP +-!EINVAL! ++\fBEINVAL\fP + the mutex has not been properly initialized. + + .TP +-!EPERM! ++\fBEPERM\fP + the calling thread does not own the mutex (``error checking'' mutexes only). + .RE + +-The !pthread_mutex_destroy! function returns the following error code ++The \fBpthread_mutex_destroy\fP function returns the following error code + on error: + .RS + .TP +-!EBUSY! ++\fBEBUSY\fP + the mutex is currently locked. + .RE + +@@ -176,13 +176,13 @@ + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_mutexattr_init!(3), +-!pthread_mutexattr_setkind_np!(3), +-!pthread_cancel!(3). ++\fBpthread_mutexattr_init\fP(3), ++\fBpthread_mutexattr_setkind_np\fP(3), ++\fBpthread_cancel\fP(3). + + .SH EXAMPLE + +-A shared global variable |x| can be protected by a mutex as follows: ++A shared global variable \fIx\fP can be protected by a mutex as follows: + + .RS + .ft 3 +@@ -195,8 +195,8 @@ + .RE + .fi + +-All accesses and modifications to |x| should be bracketed by calls to +-!pthread_mutex_lock! and !pthread_mutex_unlock! as follows: ++All accesses and modifications to \fIx\fP should be bracketed by calls to ++\fBpthread_mutex_lock\fP and \fBpthread_mutex_unlock\fP as follows: + + .RS + .ft 3 +--- glibc-2.6.orig/linuxthreads/man/pthread_once.man ++++ glibc-2.6/linuxthreads/man/pthread_once.man +@@ -12,19 +12,19 @@ + + .SH DESCRIPTION + +-The purpose of !pthread_once! is to ensure that a piece of +-initialization code is executed at most once. The |once_control| ++The purpose of \fBpthread_once\fP is to ensure that a piece of ++initialization code is executed at most once. The \fIonce_control\fP + argument points to a static or extern variable statically initialized +-to !PTHREAD_ONCE_INIT!. ++to \fBPTHREAD_ONCE_INIT\fP. + +-The first time !pthread_once! is called with a given |once_control| +-argument, it calls |init_routine| with no argument and changes the +-value of the |once_control| variable to record that initialization has +-been performed. Subsequent calls to !pthread_once! with the same +-!once_control! argument do nothing. ++The first time \fBpthread_once\fP is called with a given \fIonce_control\fP ++argument, it calls \fIinit_routine\fP with no argument and changes the ++value of the \fIonce_control\fP variable to record that initialization has ++been performed. Subsequent calls to \fBpthread_once\fP with the same ++\fBonce_control\fP argument do nothing. + + .SH "RETURN VALUE" +-!pthread_once! always returns 0. ++\fBpthread_once\fP always returns 0. + + .SH ERRORS + None. +--- glibc-2.6.orig/linuxthreads/man/pthread_self.man ++++ glibc-2.6/linuxthreads/man/pthread_self.man +@@ -9,15 +9,15 @@ + pthread_t pthread_self(void); + + .SH DESCRIPTION +-!pthread_self! return the thread identifier for the calling thread. ++\fBpthread_self\fP return the thread identifier for the calling thread. + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_equal!(3), +-!pthread_join!(3), +-!pthread_detach!(3), +-!pthread_setschedparam!(3), +-!pthread_getschedparam!(3). ++\fBpthread_equal\fP(3), ++\fBpthread_join\fP(3), ++\fBpthread_detach\fP(3), ++\fBpthread_setschedparam\fP(3), ++\fBpthread_getschedparam\fP(3). + +--- glibc-2.6.orig/linuxthreads/man/pthread_setschedparam.man ++++ glibc-2.6/linuxthreads/man/pthread_setschedparam.man +@@ -14,66 +14,66 @@ + + .SH DESCRIPTION + +-!pthread_setschedparam! sets the scheduling parameters for the thread +-|target_thread| as indicated by |policy| and |param|. |policy| can be +-either !SCHED_OTHER! (regular, non-realtime scheduling), !SCHED_RR! +-(realtime, round-robin) or !SCHED_FIFO! (realtime, first-in +-first-out). |param| specifies the scheduling priority for the two +-realtime policies. See !sched_setpolicy!(2) for more information on ++\fBpthread_setschedparam\fP sets the scheduling parameters for the thread ++\fItarget_thread\fP as indicated by \fIpolicy\fP and \fIparam\fP. \fIpolicy\fP can be ++either \fBSCHED_OTHER\fP (regular, non-realtime scheduling), \fBSCHED_RR\fP ++(realtime, round-robin) or \fBSCHED_FIFO\fP (realtime, first-in ++first-out). \fIparam\fP specifies the scheduling priority for the two ++realtime policies. See \fBsched_setpolicy\fP(2) for more information on + scheduling policies. + +-The realtime scheduling policies !SCHED_RR! and !SCHED_FIFO! are ++The realtime scheduling policies \fBSCHED_RR\fP and \fBSCHED_FIFO\fP are + available only to processes with superuser privileges. + +-!pthread_getschedparam! retrieves the scheduling policy and scheduling +-parameters for the thread |target_thread| and store them in the +-locations pointed to by |policy| and |param|, respectively. ++\fBpthread_getschedparam\fP retrieves the scheduling policy and scheduling ++parameters for the thread \fItarget_thread\fP and store them in the ++locations pointed to by \fIpolicy\fP and \fIparam\fP, respectively. + + .SH "RETURN VALUE" +-!pthread_setschedparam! and !pthread_getschedparam! return 0 on ++\fBpthread_setschedparam\fP and \fBpthread_getschedparam\fP return 0 on + success and a non-zero error code on error. + + .SH ERRORS +-On error, !pthread_setschedparam! returns the following error codes: ++On error, \fBpthread_setschedparam\fP returns the following error codes: + .RS + .TP +-!EINVAL! +-|policy| is not one of !SCHED_OTHER!, !SCHED_RR!, !SCHED_FIFO! ++\fBEINVAL\fP ++\fIpolicy\fP is not one of \fBSCHED_OTHER\fP, \fBSCHED_RR\fP, \fBSCHED_FIFO\fP + + .TP +-!EINVAL! +-the priority value specified by |param| is not valid for the specified policy ++\fBEINVAL\fP ++the priority value specified by \fIparam\fP is not valid for the specified policy + + .TP +-!EPERM! ++\fBEPERM\fP + the calling process does not have superuser permissions + + .TP +-!ESRCH! +-the |target_thread| is invalid or has already terminated ++\fBESRCH\fP ++the \fItarget_thread\fP is invalid or has already terminated + + .TP +-!EFAULT! +-|param| points outside the process memory space ++\fBEFAULT\fP ++\fIparam\fP points outside the process memory space + .RE + +-On error, !pthread_getschedparam! returns the following error codes: ++On error, \fBpthread_getschedparam\fP returns the following error codes: + .RS + .TP +-!ESRCH! +-the |target_thread| is invalid or has already terminated ++\fBESRCH\fP ++the \fItarget_thread\fP is invalid or has already terminated + + .TP +-!EFAULT! +-|policy| or |param| point outside the process memory space ++\fBEFAULT\fP ++\fIpolicy\fP or \fIparam\fP point outside the process memory space + .RE + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!sched_setscheduler!(2), +-!sched_getscheduler!(2), +-!sched_getparam!(2), +-!pthread_attr_setschedpolicy!(3), +-!pthread_attr_setschedparam!(3). ++\fBsched_setscheduler\fP(2), ++\fBsched_getscheduler\fP(2), ++\fBsched_getparam\fP(2), ++\fBpthread_attr_setschedpolicy\fP(3), ++\fBpthread_attr_setschedparam\fP(3). +--- glibc-2.6.orig/linuxthreads/man/pthread_sigmask.man ++++ glibc-2.6/linuxthreads/man/pthread_sigmask.man +@@ -19,36 +19,36 @@ + + .SH DESCRIPTION + +-!pthread_sigmask! changes the signal mask for the calling thread as +-described by the |how| and |newmask| arguments. If |oldmask| is not +-!NULL!, the previous signal mask is stored in the location pointed to +-by |oldmask|. +- +-The meaning of the |how| and |newmask| arguments is the same as for +-!sigprocmask!(2). If |how| is !SIG_SETMASK!, the signal mask is set to +-|newmask|. If |how| is !SIG_BLOCK!, the signals specified to |newmask| +-are added to the current signal mask. If |how| is !SIG_UNBLOCK!, the +-signals specified to |newmask| are removed from the current signal ++\fBpthread_sigmask\fP changes the signal mask for the calling thread as ++described by the \fIhow\fP and \fInewmask\fP arguments. If \fIoldmask\fP is not ++\fBNULL\fP, the previous signal mask is stored in the location pointed to ++by \fIoldmask\fP. ++ ++The meaning of the \fIhow\fP and \fInewmask\fP arguments is the same as for ++\fBsigprocmask\fP(2). If \fIhow\fP is \fBSIG_SETMASK\fP, the signal mask is set to ++\fInewmask\fP. If \fIhow\fP is \fBSIG_BLOCK\fP, the signals specified to \fInewmask\fP ++are added to the current signal mask. If \fIhow\fP is \fBSIG_UNBLOCK\fP, the ++signals specified to \fInewmask\fP are removed from the current signal + mask. + + Recall that signal masks are set on a per-thread basis, but signal +-actions and signal handlers, as set with !sigaction!(2), are shared ++actions and signal handlers, as set with \fBsigaction\fP(2), are shared + between all threads. + +-!pthread_kill! send signal number |signo| to the thread +-|thread|. The signal is delivered and handled as described in +-!kill!(2). +- +-!sigwait! suspends the calling thread until one of the signals +-in |set| is delivered to the calling thread. It then stores the number +-of the signal received in the location pointed to by |sig| and +-returns. The signals in |set| must be blocked and not ignored on +-entrance to !sigwait!. If the delivered signal has a signal handler +-function attached, that function is |not| called. ++\fBpthread_kill\fP send signal number \fIsigno\fP to the thread ++\fIthread\fP. The signal is delivered and handled as described in ++\fBkill\fP(2). ++ ++\fBsigwait\fP suspends the calling thread until one of the signals ++in \fIset\fP is delivered to the calling thread. It then stores the number ++of the signal received in the location pointed to by \fIsig\fP and ++returns. The signals in \fIset\fP must be blocked and not ignored on ++entrance to \fBsigwait\fP. If the delivered signal has a signal handler ++function attached, that function is \fInot\fP called. + + .SH CANCELLATION + +-!sigwait! is a cancellation point. ++\fBsigwait\fP is a cancellation point. + + .SH "RETURN VALUE" + +@@ -56,50 +56,50 @@ + + .SH ERRORS + +-The !pthread_sigmask! function returns the following error codes ++The \fBpthread_sigmask\fP function returns the following error codes + on error: + .RS + .TP +-!EINVAL! +-|how| is not one of !SIG_SETMASK!, !SIG_BLOCK!, or !SIG_UNBLOCK! ++\fBEINVAL\fP ++\fIhow\fP is not one of \fBSIG_SETMASK\fP, \fBSIG_BLOCK\fP, or \fBSIG_UNBLOCK\fP + + .TP +-!EFAULT! +-|newmask| or |oldmask| point to invalid addresses ++\fBEFAULT\fP ++\fInewmask\fP or \fIoldmask\fP point to invalid addresses + .RE + +-The !pthread_kill! function returns the following error codes ++The \fBpthread_kill\fP function returns the following error codes + on error: + .RS + .TP +-!EINVAL! +-|signo| is not a valid signal number ++\fBEINVAL\fP ++\fIsigno\fP is not a valid signal number + + .TP +-!ESRCH! +-the thread |thread| does not exist (e.g. it has already terminated) ++\fBESRCH\fP ++the thread \fIthread\fP does not exist (e.g. it has already terminated) + .RE + +-The !sigwait! function never returns an error. ++The \fBsigwait\fP function never returns an error. + + .SH AUTHOR + Xavier Leroy + + .SH "SEE ALSO" +-!sigprocmask!(2), +-!kill!(2), +-!sigaction!(2), +-!sigsuspend!(2). ++\fBsigprocmask\fP(2), ++\fBkill\fP(2), ++\fBsigaction\fP(2), ++\fBsigsuspend\fP(2). + + .SH NOTES + +-For !sigwait! to work reliably, the signals being waited for must be ++For \fBsigwait\fP to work reliably, the signals being waited for must be + blocked in all threads, not only in the calling thread, since + otherwise the POSIX semantics for signal delivery do not guarantee +-that it's the thread doing the !sigwait! that will receive the signal. ++that it's the thread doing the \fBsigwait\fP that will receive the signal. + The best way to achieve this is block those signals before any threads + are created, and never unblock them in the program other than by +-calling !sigwait!. ++calling \fBsigwait\fP. + + .SH BUGS + +@@ -112,11 +112,11 @@ + + In LinuxThreads, each thread is actually a kernel process with its own + PID, so external signals are always directed to one particular thread. +-If, for instance, another thread is blocked in !sigwait! on that ++If, for instance, another thread is blocked in \fBsigwait\fP on that + signal, it will not be restarted. + +-The LinuxThreads implementation of !sigwait! installs dummy signal +-handlers for the signals in |set| for the duration of the wait. Since ++The LinuxThreads implementation of \fBsigwait\fP installs dummy signal ++handlers for the signals in \fIset\fP for the duration of the wait. Since + signal handlers are shared between all threads, other threads must not + attach their own signal handlers to these signals, or alternatively + they should all block these signals (which is recommended anyway -- +--- glibc-2.6.orig/linuxthreads/man/sem_init.man ++++ glibc-2.6/linuxthreads/man/sem_init.man +@@ -26,98 +26,98 @@ + + .SH DESCRIPTION + This manual page documents POSIX 1003.1b semaphores, not to be +-confused with SystemV semaphores as described in !ipc!(5), !semctl!(2) +-and !semop!(2). ++confused with SystemV semaphores as described in \fBipc\fP(5), \fBsemctl\fP(2) ++and \fBsemop\fP(2). + + Semaphores are counters for resources shared between threads. The + basic operations on semaphores are: increment the counter atomically, + and wait until the counter is non-null and decrement it atomically. + +-!sem_init! initializes the semaphore object pointed to by |sem|. The +-count associated with the semaphore is set initially to |value|. The +-|pshared| argument indicates whether the semaphore is local to the +-current process (|pshared| is zero) or is to be shared between several +-processes (|pshared| is not zero). LinuxThreads currently does not +-support process-shared semaphores, thus !sem_init! always returns with +-error !ENOSYS! if |pshared| is not zero. ++\fBsem_init\fP initializes the semaphore object pointed to by \fIsem\fP. The ++count associated with the semaphore is set initially to \fIvalue\fP. The ++\fIpshared\fP argument indicates whether the semaphore is local to the ++current process (\fIpshared\fP is zero) or is to be shared between several ++processes (\fIpshared\fP is not zero). LinuxThreads currently does not ++support process-shared semaphores, thus \fBsem_init\fP always returns with ++error \fBENOSYS\fP if \fIpshared\fP is not zero. + +-!sem_wait! suspends the calling thread until the semaphore pointed to +-by |sem| has non-zero count. It then atomically decreases the ++\fBsem_wait\fP suspends the calling thread until the semaphore pointed to ++by \fIsem\fP has non-zero count. It then atomically decreases the + semaphore count. + +-!sem_trywait! is a non-blocking variant of !sem_wait!. If the +-semaphore pointed to by |sem| has non-zero count, the count is +-atomically decreased and !sem_trywait! immediately returns 0. +-If the semaphore count is zero, !sem_trywait! immediately returns with +-error !EAGAIN!. ++\fBsem_trywait\fP is a non-blocking variant of \fBsem_wait\fP. If the ++semaphore pointed to by \fIsem\fP has non-zero count, the count is ++atomically decreased and \fBsem_trywait\fP immediately returns 0. ++If the semaphore count is zero, \fBsem_trywait\fP immediately returns with ++error \fBEAGAIN\fP. + +-!sem_post! atomically increases the count of the semaphore pointed to +-by |sem|. This function never blocks and can safely be used in ++\fBsem_post\fP atomically increases the count of the semaphore pointed to ++by \fIsem\fP. This function never blocks and can safely be used in + asynchronous signal handlers. + +-!sem_getvalue! stores in the location pointed to by |sval| the current +-count of the semaphore |sem|. ++\fBsem_getvalue\fP stores in the location pointed to by \fIsval\fP the current ++count of the semaphore \fIsem\fP. + +-!sem_destroy! destroys a semaphore object, freeing the resources it ++\fBsem_destroy\fP destroys a semaphore object, freeing the resources it + might hold. No threads should be waiting on the semaphore at the time +-!sem_destroy! is called. In the LinuxThreads implementation, no +-resources are associated with semaphore objects, thus !sem_destroy! ++\fBsem_destroy\fP is called. In the LinuxThreads implementation, no ++resources are associated with semaphore objects, thus \fBsem_destroy\fP + actually does nothing except checking that no thread is waiting on the + semaphore. + + .SH CANCELLATION + +-!sem_wait! is a cancellation point. ++\fBsem_wait\fP is a cancellation point. + + .SH "ASYNC-SIGNAL SAFETY" + + On processors supporting atomic compare-and-swap (Intel 486, Pentium +-and later, Alpha, PowerPC, MIPS II, Motorola 68k), the !sem_post! ++and later, Alpha, PowerPC, MIPS II, Motorola 68k), the \fBsem_post\fP + function is async-signal safe and can therefore be + called from signal handlers. This is the only thread synchronization + function provided by POSIX threads that is async-signal safe. + + On the Intel 386 and the Sparc, the current LinuxThreads +-implementation of !sem_post! is not async-signal safe by lack of the ++implementation of \fBsem_post\fP is not async-signal safe by lack of the + required atomic operations. + + .SH "RETURN VALUE" + +-The !sem_wait! and !sem_getvalue! functions always return 0. ++The \fBsem_wait\fP and \fBsem_getvalue\fP functions always return 0. + All other semaphore functions return 0 on success and -1 on error, in +-addition to writing an error code in !errno!. ++addition to writing an error code in \fBerrno\fP. + + .SH ERRORS + +-The !sem_init! function sets !errno! to the following codes on error: ++The \fBsem_init\fP function sets \fBerrno\fP to the following codes on error: + .RS + .TP +-!EINVAL! +-|value| exceeds the maximal counter value !SEM_VALUE_MAX! ++\fBEINVAL\fP ++\fIvalue\fP exceeds the maximal counter value \fBSEM_VALUE_MAX\fP + .TP +-!ENOSYS! +-|pshared| is not zero ++\fBENOSYS\fP ++\fIpshared\fP is not zero + .RE + +-The !sem_trywait! function sets !errno! to the following error code on error: ++The \fBsem_trywait\fP function sets \fBerrno\fP to the following error code on error: + .RS + .TP +-!EAGAIN! ++\fBEAGAIN\fP + the semaphore count is currently 0 + .RE + +-The !sem_post! function sets !errno! to the following error code on error: ++The \fBsem_post\fP function sets \fBerrno\fP to the following error code on error: + .RS + .TP +-!ERANGE! +-after incrementation, the semaphore value would exceed !SEM_VALUE_MAX! ++\fBERANGE\fP ++after incrementation, the semaphore value would exceed \fBSEM_VALUE_MAX\fP + (the semaphore count is left unchanged in this case) + .RE + +-The !sem_destroy! function sets !errno! to the following error code on error: ++The \fBsem_destroy\fP function sets \fBerrno\fP to the following error code on error: + .RS + .TP +-!EBUSY! ++\fBEBUSY\fP + some threads are currently blocked waiting on the semaphore. + .RE + +@@ -125,8 +125,8 @@ + Xavier Leroy + + .SH "SEE ALSO" +-!pthread_mutex_init!(3), +-!pthread_cond_init!(3), +-!pthread_cancel!(3), +-!ipc!(5). ++\fBpthread_mutex_init\fP(3), ++\fBpthread_cond_init\fP(3), ++\fBpthread_cancel\fP(3), ++\fBipc\fP(5). + --- glibc-2.7.orig/debian/patches/all/local-alias-et_EE.diff +++ glibc-2.7/debian/patches/all/local-alias-et_EE.diff @@ -0,0 +1,13 @@ +--- libc/intl/locale.alias.orig ++++ libc/intl/locale.alias +@@ -35,8 +35,8 @@ + dansk da_DK.ISO-8859-1 + deutsch de_DE.ISO-8859-1 + dutch nl_NL.ISO-8859-1 +-eesti et_EE.ISO-8859-1 +-estonian et_EE.ISO-8859-1 ++eesti et_EE.ISO-8859-15 ++estonian et_EE.ISO-8859-15 + finnish fi_FI.ISO-8859-1 + français fr_FR.ISO-8859-1 + french fr_FR.ISO-8859-1 --- glibc-2.7.orig/debian/patches/all/cvs-gai_conf.diff +++ glibc-2.7/debian/patches/all/cvs-gai_conf.diff @@ -0,0 +1,69 @@ +2007-11-19 Ulrich Drepper + + * posix/gai.conf: Document scopev4 defaults. + +2007-11-19 Ulrich Drepper + + * posix/gai.conf: Update for current default tables. + +=================================================================== +RCS file: /cvs/glibc/libc/posix/gai.conf,v +retrieving revision 1.2 +retrieving revision 1.3 +diff -u -r1.2 -r1.3 +--- libc/posix/gai.conf 2006/05/18 16:57:50 1.2 ++++ libc/posix/gai.conf 2007/11/19 17:30:28 1.3 +@@ -19,13 +19,14 @@ + # Add another rule to the RFC 3484 label table. See section 2.1 in + # RFC 3484. The default is: + # +-#label ::1/128 0 +-#label ::/0 1 +-#label 2002::/16 2 +-#label ::/96 3 +-#label ::ffff:0:0/96 4 +-#label fec0::/10 5 +-#label fc00::/7 6 ++#label ::1/128 0 ++#label ::/0 1 ++#label 2002::/16 2 ++#label ::/96 3 ++#label ::ffff:0:0/96 4 ++#label fec0::/10 5 ++#label fc00::/7 6 ++#label 2001:0::/32 7 + # + # This default differs from the tables given in RFC 3484 by handling + # (now obsolete) site-local IPv6 addresses and Unique Local Addresses. +@@ -35,10 +36,11 @@ + # site-local IPv4 and IPv6 addresses a lookup for a global address would + # see the IPv6 be preferred. The result is a long delay because the + # site-local IPv6 addresses cannot be used while the IPv4 address is +-# (at least for the foreseeable future) NATed. ++# (at least for the foreseeable future) NATed. We also treat Teredo ++# tunnels special. + # + # precedence +-# Add another rule the to RFC 3484 precedence table. See section 2.1 ++# Add another rule to the RFC 3484 precedence table. See section 2.1 + # and 10.3 in RFC 3484. The default is: + # + #precedence ::1/128 50 +@@ -52,3 +52,17 @@ + # For sites which prefer IPv4 connections change the last line to + # + #precedence ::ffff:0:0/96 100 ++ ++# ++# scopev4 ++# Add another rule to the RFC 3484 scope table for IPv4 addresses. ++# By default the scope IDs described in section 3.2 in RFC 3484 are ++# used. Changing these defaults should hardly ever be necessary. ++# The defaults are equivalent to: ++# ++#scopev4 ::ffff:169.254.0.0/112 2 ++#scopev4 ::ffff:127.0.0.0/104 2 ++#scopev4 ::ffff:10.0.0.0/104 5 ++#scopev4 ::ffff:172.16.0.0/108 5 ++#scopev4 ::ffff:192.168.0.0/112 5 ++#scopev4 ::ffff:0.0.0.0 14 --- glibc-2.7.orig/debian/patches/all/local-alias-UTF-8.diff +++ glibc-2.7/debian/patches/all/local-alias-UTF-8.diff @@ -0,0 +1,20 @@ +--- libc/intl/locale.alias ++++ libc/intl/locale.alias +@@ -27,7 +27,7 @@ + # bugs@gnu.org. + + bokmal nb_NO.ISO-8859-1 +-bokmål nb_NO.ISO-8859-1 ++bokmÃ¥l nb_NO.ISO-8859-1 + catalan ca_ES.ISO-8859-1 + croatian hr_HR.ISO-8859-2 + czech cs_CZ.ISO-8859-2 +@@ -38,7 +38,7 @@ + eesti et_EE.ISO-8859-1 + estonian et_EE.ISO-8859-1 + finnish fi_FI.ISO-8859-1 +-français fr_FR.ISO-8859-1 ++français fr_FR.ISO-8859-1 + french fr_FR.ISO-8859-1 + galego gl_ES.ISO-8859-1 + galician gl_ES.ISO-8859-1 --- glibc-2.7.orig/debian/patches/all/local-ru_RU.diff +++ glibc-2.7/debian/patches/all/local-ru_RU.diff @@ -0,0 +1,19 @@ +# DP: Description: Change default charset for 'russian' locale alias +# DP: Related bugs: #62586 +# DP: Dpatch author: Ben Collins +# DP: Patch author: Alistair McKinstry +# DP: Upstream status: Submitted +# DP: Status Details: http://sources.redhat.com/bugzilla/show_bug.cgi?id=120 +# DP: Date: 2002-03-10 + +--- glibc-2.6.orig/intl/locale.alias ++++ glibc-2.6/intl/locale.alias +@@ -65,7 +65,7 @@ + polish pl_PL.ISO-8859-2 + portuguese pt_PT.ISO-8859-1 + romanian ro_RO.ISO-8859-2 +-russian ru_RU.ISO-8859-5 ++russian ru_RU.KOI8-R + slovak sk_SK.ISO-8859-2 + slovene sl_SI.ISO-8859-2 + slovenian sl_SI.ISO-8859-2 --- glibc-2.7.orig/debian/patches/all/local-remove-manual.diff +++ glibc-2.7/debian/patches/all/local-remove-manual.diff @@ -0,0 +1,284 @@ +The GNU Libc Reference manual has to be removed for licensing reasons. +But some files have a dependency on manual/errno.texi; the easiest +solution is to drop those dependencies and make sure that MAKEINFO=: +so that no target depends on manual/*.texi files. + +--- /dev/null ++++ glibc-2.6/manual/Makefile +@@ -0,0 +1,254 @@ ++# Copyright (C) 1992-1999,2000,2001,2002,2003,2004,2006 ++# 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 ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# 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. ++ ++# Makefile for the GNU C Library manual. ++ ++subdir := manual ++export subdir := $(subdir) ++ ++# Allow override ++INSTALL_INFO = install-info ++ ++.PHONY: all dvi pdf info html ++all: dvi ++dvi: libc.dvi ++pdf: libc.pdf ++ ++# Get glibc's configuration info. ++ifneq (,$(wildcard ../Makeconfig)) ++include ../Makeconfig ++else ++MAKEINFO = makeinfo ++TEXI2DVI = texi2dvi ++AWK = gawk ++endif ++ ++TEXI2PDF = texi2dvi --pdf ++ ++ifneq ($(strip $(MAKEINFO)),:) ++all: info ++info: libc.info ++endif ++ ++# scripts we use ++ifndef move-if-change ++move-if-change = ./move-if-change ++endif ++mkinstalldirs = $(..)scripts/mkinstalldirs ++ ++chapters = $(addsuffix .texi, \ ++ intro errno memory ctype string charset locale \ ++ message search pattern io stdio llio filesys \ ++ pipe socket terminal syslog math arith time \ ++ resource setjmp signal startup process job nss \ ++ users sysinfo conf crypt debug) ++add-chapters = $(wildcard $(foreach d, $(add-ons), ../$d/$d.texi)) ++appendices = lang.texi header.texi install.texi maint.texi contrib.texi \ ++ freemanuals.texi ++ ++-include texis ++texis: texis.awk $(chapters) $(add-chapters) $(appendices) lesser.texi fdl.texi ++ $(AWK) -f $^ > $@.T ++ mv -f $@.T $@ ++ ++nonexamples = $(filter-out $(add-chapters) %.c.texi, $(texis)) ++examples = $(filter-out $(foreach d, $(add-ons), ../$d/%.c.texi), \ ++ $(filter %.c.texi, $(texis))) ++ ++# Kludge: implicit rule so Make knows the one command does it all. ++chapters.% top-menu.%: libc-texinfo.sh $(texis) Makefile ++ AWK=$(AWK) $(SHELL) $< '$(chapters)' '$(add-chapters)' '$(appendices)' ++ ++libc.dvi libc.pdf libc.info: chapters.texi top-menu.texi dir-add.texi \ ++ libm-err.texi ++libc.dvi libc.pdf: texinfo.tex ++ ++html: libc/index.html ++libc/index.html: chapters.texi top-menu.texi dir-add.texi libm-err.texi ++ $(MAKEINFO) --html libc.texinfo ++ ++# Generate the summary from the Texinfo source files for each chapter. ++summary.texi: stamp-summary ; ++stamp-summary: summary.awk $(filter-out summary.texi, $(texis)) ++ $(AWK) -f $^ | sort -t' ' -df -k 1,1 | tr '\014' '\012' > summary-tmp ++ $(move-if-change) summary-tmp summary.texi ++ touch $@ ++ ++# Generate a file which can be added to the `dir' content to provide direct ++# access to the documentation of the function, variables, and other ++# definitions. ++dir-add.texi: xtract-typefun.awk $(texis) ++ (echo "@dircategory GNU C library functions and macros"; \ ++ echo "@direntry"; \ ++ $(AWK) -f $^ | sort; \ ++ echo "@end direntry") > $@.new ++ mv -f $@.new $@ ++ ++# The table with the math errors is generated. ++libm-err.texi: stamp-libm-err ++stamp-libm-err: libm-err-tab.pl $(wildcard $(foreach dir,$(sysdirs),\ ++ $(dir)/libm-test-ulps)) ++ pwd=`pwd`; \ ++ $(PERL) $< $$pwd/.. > libm-err-tmp ++ $(move-if-change) libm-err-tmp libm-err.texi ++ touch $@ ++ ++# Generate Texinfo files from the C source for the example programs. ++%.c.texi: examples/%.c ++ sed -e 's,[{}],@&,g' \ ++ -e 's,/\*\(@.*\)\*/,\1,g' \ ++ -e 's,/\* *,/* @r{,g' -e 's, *\*/,} */,' \ ++ -e 's/\(@[a-z][a-z]*\)@{\([^}]*\)@}/\1{\2}/g'\ ++ $< | expand > $@.new ++ mv -f $@.new $@ ++ ++%.info: %.texinfo ++ LANGUAGE=C LC_ALL=C $(MAKEINFO) $< ++ ++%.dvi: %.texinfo ++ $(TEXI2DVI) $< ++ ++%.pdf: %.texinfo ++ $(TEXI2PDF) $< ++ ++# Distribution. ++minimal-dist = summary.awk texis.awk tsort.awk libc-texinfo.sh libc.texinfo \ ++ libm-err.texi stamp-libm-err \ ++ $(filter-out summary.texi, $(nonexamples)) \ ++ $(patsubst %.c.texi,examples/%.c, $(examples)) ++ ++doc-only-dist = Makefile COPYING.LIB ++distribute = $(minimal-dist) $(examples) stdio-fp.c \ ++ libc.info* libc.?? libc.??s texinfo.tex \ ++ xtract-typefun.awk dir-add.texi dir libm-err-tab.pl ++export distribute := $(distribute) ++ ++tar-it = tar chovf $@ $^ ++ ++manual.tar: $(doc-only-dist) $(minimal-dist) ; $(tar-it) ++mandist.tar: $(doc-only-dist) $(distribute) ; $(tar-it) ++ ++edition := $(shell sed -n 's/^@set EDITION \([0-9][0-9.]*\)[^0-9.]*.*$$/\1/p' \ ++ libc.texinfo) ++ ++glibc-doc-$(edition).tar: $(doc-only-dist) $(distribute) ++ @rm -f glibc-doc-$(edition) ++ ln -s . glibc-doc-$(edition) ++ tar chovf $@ $(addprefix glibc-doc-$(edition)/,$^) ++ rm -f glibc-doc-$(edition) ++ ++%.Z: % ++ compress -c $< > $@.new ++ mv -f $@.new $@ ++%.gz: % ++ gzip -9 -c $< > $@.new ++ mv -f $@.new $@ ++%.uu: % ++ uuencode $< < $< > $@.new ++ mv -f $@.new $@ ++ ++.PHONY: mostlyclean distclean realclean clean ++mostlyclean: ++ -rm -f libc.dvi libc.pdf libc.tmp libc.info* ++ -rm -f $(objpfx)stubs ++ -rm -f $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o) ++clean: mostlyclean ++distclean: clean ++indices = cp fn pg tp vr ky ++realclean: distclean ++ -rm -f texis summary.texi stamp-summary *.c.texi dir-add.texi ++ -rm -f $(foreach index,$(indices),libc.$(index) libc.$(index)s) ++ -rm -f libc.log libc.aux libc.toc dir-add.texinfo ++ -rm -f top-menu.texi chapters.texi ++ ++.PHONY: install subdir_install installdirs install-data ++install-data subdir_install: install ++ifneq ($(strip $(MAKEINFO)),:) ++install: $(inst_infodir)/libc.info ++ @if $(SHELL) -c '$(INSTALL_INFO) --version' >/dev/null 2>&1; then \ ++ test -f $(inst_infodir)/dir || $(INSTALL_DATA) dir $(inst_infodir);\ ++ $(INSTALL_INFO) --info-dir=$(inst_infodir) $(inst_infodir)/libc.info;\ ++ else : ; fi ++endif ++# Catchall implicit rule for other installation targets from the parent. ++install-%: ; ++ ++$(inst_infodir)/libc.info: libc.info installdirs ++ for file in $<*; do \ ++ $(INSTALL_DATA) $$file $(@D)/$$file; \ ++ done ++ ++installdirs: ++ $(mkinstalldirs) $(inst_infodir) ++ ++.PHONY: dist ++dist: # glibc-doc-$(edition).tar.gz ++ ++ifneq (,$(wildcard ../Make-dist)) ++dist: ../Make-dist ++ $(MAKE) -f $< $(Make-dist-args) ++endif ++ ++ifndef ETAGS ++ETAGS = etags -T ++endif ++TAGS: $(minimal-dist) ++ $(ETAGS) -o $@ $^ ++ ++# The parent makefile sometimes invokes us with targets `subdir_REAL-TARGET'. ++subdir_%: % ; ++# For targets we don't define, do nothing. ++subdir_%: ; ++ ++# These are targets that each glibc subdirectory is expected to understand. ++# ../Rules defines them for code subdirectories; for us, they are no-ops. ++# None of these should be `subdir_TARGET'; those targets are transformed ++# by the implicit rule above into `TARGET' deps. ++glibc-targets := lib objects objs others tests xtests lint.out echo-headers ++.PHONY: $(glibc-targets) ++$(glibc-targets): ++ ++# Create stamp files if they don't exist, so the parent makefile's rules for ++# updating the library archives are happy with us, and never think we have ++# changed the library. ++lib: $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o) ++ifdef objpfx ++.PHONY: stubs ++stubs: $(objpfx)stubs ++endif ++$(objpfx)stubs ../po/manual.pot $(objpfx)stamp%: ++ $(make-target-directory) ++ touch $@ ++ ++# Make the target directory if it doesn't exist, using the `mkinstalldirs' ++# script that does `mkdir -p' even if `mkdir' doesn't support that flag. ++define make-target-directory ++$(addprefix $(mkinstalldirs) ,\ ++ $(filter-out $(wildcard $(@D:%/=%)),$(@D:%/=%))) ++endef ++ ++# The top-level glibc Makefile expects subdir_install to update the stubs file. ++subdir_install: stubs ++ ++# Get rid of these variables if they came from the parent. ++routines = ++aux = ++sources = ++objects = ++headers = +--- glibc-2.6.orig/sysdeps/gnu/Makefile ++++ glibc-2.6/sysdeps/gnu/Makefile +@@ -20,7 +20,7 @@ + # Generate the list of strings for errno codes from the section of the + # manual which documents the codes. + +-$(..)sysdeps/gnu/errlist.c: $(..)sysdeps/gnu/errlist.awk \ ++$(..)sysdeps/gnu/errlist-disabled.c: $(..)sysdeps/gnu/errlist.awk \ + $(..)manual/errno.texi + $(AWK) -f $^ > $@-tmp + # Make it unwritable so noone will edit it by mistake. +--- glibc-2.6.orig/sysdeps/mach/hurd/Makefile ++++ glibc-2.6/sysdeps/mach/hurd/Makefile +@@ -87,7 +87,7 @@ + -e 's, \.\./, $(..),g' > $@t + mv -f $@t $@ + +-$(hurd)/bits/errno.h: $(common-objpfx)stamp-errnos ; ++$(hurd)/bits/errno-disabled.h: $(common-objpfx)stamp-errnos ; + $(common-objpfx)stamp-errnos: $(hurd)/errnos.awk $(errno.texinfo) \ + $(mach-errnos-deps) $(common-objpfx)errnos.d + $(AWK) -f $^ > $(hurd)/bits/errno.h-tmp --- glibc-2.7.orig/debian/patches/sh4/local-fpscr_values.diff +++ glibc-2.7/debian/patches/sh4/local-fpscr_values.diff @@ -0,0 +1,27 @@ +--- sysdeps/unix/sysv/linux/sh/Versions 2007-10-16 14:23:47.553278705 +0000 ++++ sysdeps/unix/sysv/linux/sh/Versions 2007-10-16 14:24:32.517804705 +0000 +@@ -2,6 +2,7 @@ + GLIBC_2.2 { + # functions used in other libraries + __xstat64; __fxstat64; __lxstat64; ++ __fpscr_values; + + # a* + alphasort64; +--- sysdeps/unix/sysv/linux/sh/sysdep.S 2007-10-16 14:23:56.151674031 +0000 ++++ sysdeps/unix/sysv/linux/sh/sysdep.S 2007-10-16 14:26:10.525105917 +0000 +@@ -32,3 +32,14 @@ + + #define __syscall_error __syscall_error_1 + #include ++ ++ .data ++ .align 3 ++ .globl ___fpscr_values ++ .type ___fpscr_values, @object ++ .size ___fpscr_values, 8 ++___fpscr_values: ++ .long 0 ++ .long 0x80000 ++weak_alias (___fpscr_values, __fpscr_values) ++ --- glibc-2.7.orig/debian/patches/sh4/cvs-nptl-private-futexes.diff +++ glibc-2.7/debian/patches/sh4/cvs-nptl-private-futexes.diff @@ -0,0 +1,152 @@ +2007-12-04 Kaz Kojima + + * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait): + Store 2 before returning ETIMEDOUT. + +2007-11-03 Mike Frysinger + + * sysdeps/unix/sysv/linux/sh/lowlevellock.S (LOAD_FUTEX_WAIT): Add + missing line continuations. + * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S (LOAD_FUTEX_WAIT, + LOAD_FUTEX_WAKE): Likewise. Also add missing 3rd parameter + + +--- nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S 2007-08-03 15:44:15.000000000 +0000 ++++ nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S 2007-12-05 02:31:10.000000000 +0000 +@@ -76,7 +76,7 @@ + add tmp2, tmp ; \ + mov.l @tmp, tmp2 ; \ + bra 98f ; \ +- mov #FUTEX_PRIVATE_FLAG, tmp ++ mov #FUTEX_PRIVATE_FLAG, tmp ; \ + 99: .word PRIVATE_FUTEX - TLS_PRE_TCB_SIZE ; \ + 98: extu.b tmp, tmp ; \ + xor tmp, reg ; \ +@@ -88,7 +88,7 @@ + add tmp2, tmp ; \ + mov.l @tmp, tmp2 ; \ + bra 98f ; \ +- mov #FUTEX_PRIVATE_FLAG, tmp ++ mov #FUTEX_PRIVATE_FLAG, tmp ; \ + 99: .word PRIVATE_FUTEX - TLS_PRE_TCB_SIZE ; \ + 98: extu.b tmp, tmp ; \ + xor tmp, reg ; \ +@@ -96,13 +96,13 @@ + mov #FUTEX_WAIT, tmp ; \ + or tmp, reg + # endif +-# define LOAD_FUTEX_WAKE(reg,tmp) \ ++# define LOAD_FUTEX_WAKE(reg,tmp,tmp2) \ + stc gbr, tmp ; \ + mov.w 99f, tmp2 ; \ + add tmp2, tmp ; \ + mov.l @tmp, tmp2 ; \ + bra 98f ; \ +- mov #FUTEX_PRIVATE_FLAG, tmp ++ mov #FUTEX_PRIVATE_FLAG, tmp ; \ + 99: .word PRIVATE_FUTEX - TLS_PRE_TCB_SIZE ; \ + 98: extu.b tmp, tmp ; \ + xor tmp, reg ; \ +@@ -225,6 +225,12 @@ + add #-8, r15 + cfi_adjust_cfa_offset(8) + ++ mov #2, r2 ++ XCHG (r2, @r8, r3) ++ ++ tst r3, r3 ++ bt 6f ++ + 1: + /* Get current time. */ + mov r15, r4 +@@ -250,17 +256,11 @@ + add #-1, r2 + 4: + cmp/pz r2 +- bf 5f /* Time is already up. */ ++ bf 2f /* Time is already up. */ + + mov.l r2, @r15 /* Store relative timeout. */ + mov.l r3, @(4,r15) + +- mov #1, r3 +- mov #2, r4 +- CMPXCHG (r3, @r8, r4, r2) +- tst r2, r2 +- bt 8f +- + mov r8, r4 + mov r11, r5 + LOAD_FUTEX_WAIT (r5, r0, r1) +@@ -272,39 +272,29 @@ + SYSCALL_INST_PAD + mov r0, r5 + +-8: +- mov #0, r3 +- mov #2, r4 +- CMPXCHG (r3, @r8, r4, r2) +- bf/s 7f +- mov #0, r0 ++ mov #2, r2 ++ XCHG (r2, @r8, r3) ++ ++ tst r3, r3 ++ bt/s 6f ++ mov #-ETIMEDOUT, r1 ++ cmp/eq r5, r1 ++ bf 1b ++ ++2: mov #ETIMEDOUT, r3 + + 6: ++ mov r3, r0 + add #8, r15 + mov.l @r15+, r8 + mov.l @r15+, r9 + mov.l @r15+, r10 + rts + mov.l @r15+, r11 +-7: +- /* Check whether the time expired. */ +- mov #-ETIMEDOUT, r1 +- cmp/eq r5, r1 +- bt 5f + +- /* Make sure the current holder knows we are going to sleep. */ +- XCHG (r2, @r8, r3) +- tst r3, r3 +- bt/s 6b +- mov #0, r0 +- bra 1b +- nop + 3: + rts + mov #EINVAL, r0 +-5: +- bra 6b +- mov #ETIMEDOUT, r0 + cfi_endproc + + .L1k: +--- nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S 2007-08-03 15:44:57.000000000 +0000 ++++ nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S 2007-11-06 01:02:00.000000000 +0000 +@@ -42,7 +42,7 @@ + add tmp2, tmp ; \ + mov.l @tmp, tmp2 ; \ + bra 98f ; \ +- mov #FUTEX_PRIVATE_FLAG, tmp ++ mov #FUTEX_PRIVATE_FLAG, tmp ; \ + 99: .word PRIVATE_FUTEX - TLS_PRE_TCB_SIZE ; \ + 98: extu.b tmp, tmp ; \ + xor tmp, reg ; \ +@@ -54,7 +54,7 @@ + add tmp2, tmp ; \ + mov.l @tmp, tmp2 ; \ + bra 98f ; \ +- mov #FUTEX_PRIVATE_FLAG, tmp ++ mov #FUTEX_PRIVATE_FLAG, tmp ; \ + 99: .word PRIVATE_FUTEX - TLS_PRE_TCB_SIZE ; \ + 98: extu.b tmp, tmp ; \ + xor tmp, reg ; \ --- glibc-2.7.orig/debian/patches/arm/local-args6.diff +++ glibc-2.7/debian/patches/arm/local-args6.diff @@ -0,0 +1,12 @@ +--- ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h.orig ++++ ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h +@@ -73,6 +73,9 @@ + # define DOCARGS_5 DOCARGS_4 + # define UNDOCARGS_5 UNDOCARGS_4 + ++# define DOCARGS_6 DOCARGS_5 ++# define UNDOCARGS_6 UNDOCARGS_5 ++ + # ifdef IS_IN_libpthread + # define CENABLE bl PLTJMP(__pthread_enable_asynccancel) + # define CDISABLE bl PLTJMP(__pthread_disable_asynccancel) --- glibc-2.7.orig/debian/patches/arm/submitted-RTLD_SINGLE_THREAD_P.diff +++ glibc-2.7/debian/patches/arm/submitted-RTLD_SINGLE_THREAD_P.diff @@ -0,0 +1,19 @@ +2007-05-25 Aurelien Jarno + + * sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h + (RTLD_SINGLE_THREAD_P): Define. + +Index: ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h +=================================================================== +--- ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h.orig 2007-10-23 08:46:16.000000000 -0400 ++++ ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h 2007-10-23 08:49:15.000000000 -0400 +@@ -132,3 +132,9 @@ + __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ + header.multiple_threads) == 0, 1) + #endif ++ ++#ifndef __ASSEMBLER__ ++# define RTLD_SINGLE_THREAD_P \ ++ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ ++ header.multiple_threads) == 0, 1) ++#endif --- glibc-2.7.orig/debian/patches/arm/local-no-hwcap.diff +++ glibc-2.7/debian/patches/arm/local-no-hwcap.diff @@ -0,0 +1,13 @@ +# DP: Restricted hardware caps for ARM + +--- ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h.orig ++++ ports/sysdeps/unix/sysv/linux/arm/dl-procinfo.h +@@ -54,7 +54,7 @@ + return GLRO(dl_arm_cap_flags)[idx]; + }; + +-#define HWCAP_IMPORTANT (HWCAP_ARM_HALF | HWCAP_ARM_FAST_MULT) ++#define HWCAP_IMPORTANT HWCAP_ARM_FAST_MULT + + static inline int + __attribute__ ((unused)) --- glibc-2.7.orig/debian/patches/arm/cvs-gcc4-inline.diff +++ glibc-2.7/debian/patches/arm/cvs-gcc4-inline.diff @@ -0,0 +1,32 @@ +#! /bin/sh -e + +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Make glibc-2.3.5 compile with gcc-4.0 on arm for inline +# functions of dl-machine.h. +# DP: Related bugs: +# DP: Dpatch author: GOTO Masanori +# DP: Patch author: Dan Kegel +# DP: Upstream status: In CVS / Debian-Specific +# DP: Status Details: +# DP: Date: 2005-07-16 + +Fetched from: http://kegel.com/crosstool/crosstool-0.37/patches/glibc-2.3.5/glibc-2.3.4-allow-gcc-4.0-arm.patch + +--- ports/sysdeps/arm/dl-machine.h.orig ++++ ports/sysdeps/arm/dl-machine.h +@@ -288,7 +288,14 @@ + #ifdef RESOLVE_MAP + + /* Deal with an out-of-range PC24 reloc. */ +-auto Elf32_Addr ++#if __GNUC__ >= 4 ++ auto inline Elf32_Addr ++#else ++ static inline Elf32_Addr ++#endif ++#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2) ++ __attribute ((always_inline)) ++#endif + fix_bad_pc24 (Elf32_Addr *const reloc_addr, Elf32_Addr value) + { + static void *fix_page; --- glibc-2.7.orig/debian/patches/arm/local-ioperm.diff +++ glibc-2.7/debian/patches/arm/local-ioperm.diff @@ -0,0 +1,26 @@ +# DP: Description: fix ioperm build error on arm + +--- ports/sysdeps/unix/sysv/linux/arm/ioperm.c.orig ++++ ports/sysdeps/unix/sysv/linux/arm/ioperm.c +@@ -96,19 +96,13 @@ + * values. + */ + +-/* The Linux kernel headers renamed this constant between 2.5.26 and +- 2.5.27. It was backported to 2.4 between 2.4.22 and 2.4.23. */ +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,23) +-# define BUS_ISA CTL_BUS_ISA +-#endif +- + static int + init_iosys (void) + { + char systype[256]; + int i, n; +- static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE }; +- static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT }; ++ static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE }; ++ static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT }; + size_t len = sizeof(io.base); + + if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0) --- glibc-2.7.orig/debian/patches/arm/local-eabi-wchar.diff +++ glibc-2.7/debian/patches/arm/local-eabi-wchar.diff @@ -0,0 +1,31 @@ +Index: glibc-2.6.1/ports/sysdeps/arm/eabi/bits/wchar.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ glibc-2.6.1/ports/sysdeps/arm/eabi/bits/wchar.h 2007-09-28 21:56:24.000000000 +0000 +@@ -0,0 +1,26 @@ ++/* wchar_t type related definitions. ++ Copyright (C) 2000 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _BITS_WCHAR_H ++#define _BITS_WCHAR_H 1 ++ ++#define __WCHAR_MIN ( 0 ) ++#define __WCHAR_MAX ( (wchar_t) - 1 ) ++ ++#endif /* bits/wchar.h */ --- glibc-2.7.orig/debian/patches/arm/local-lowlevellock.diff +++ glibc-2.7/debian/patches/arm/local-lowlevellock.diff @@ -0,0 +1,10 @@ +--- ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h.orig ++++ ports/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h +@@ -25,6 +25,7 @@ + #include + #include + #include ++#include /* Need THREAD_*, and header.*. */ + + #define FUTEX_WAIT 0 + #define FUTEX_WAKE 1 --- glibc-2.7.orig/debian/patches/i386/submitted-i686-timing.diff +++ glibc-2.7/debian/patches/i386/submitted-i686-timing.diff @@ -0,0 +1,151 @@ +# DP: Description: i386 ld.so gets sigsegv when i686 optimized library is used, +# because the structure size of rtld_global and rtld_global_ro +# are different due to HP_TIMING_AVAIL availability. +# This patch aligns those sizes for using i686 optimized library. +# DP: Author: Daniel Jacobowitz +# DP: Upstream status: Pending +# DP: Status Details: +# DP: Date: 2003-10-03 (Updated 2003-10-12), (Updated 2005-01-02, 2005-03-03 gotom) + +2005-03-03 GOTO Masanori + + * sysdeps/generic/ldsodefs.h (struct rtld_global, rtld_global_ro): + Include timing members if HP_TIMING_PAD is defined. + +2005-01-02 GOTO Masanori + + * elf/Makefile: Regenerate. + +2003-10-12 Daniel Jacobowitz + + * sysdeps/generic/ldsodefs.h (struct rtld_global): Include timing + members if HP_TIMING_PAD is defined. + * sysdeps/i386/hp-timing.h: New file. + * elf/Makefile: Add dl-altinit to routines, shared-only-routines. + * elf/dl-altinit.c: New file. + +--- sysdeps/generic/ldsodefs.h.orig ++++ sysdeps/generic/ldsodefs.h +@@ -406,7 +406,7 @@ + /* The object to be initialized first. */ + EXTERN struct link_map *_dl_initfirst; + +-#if HP_TIMING_AVAIL || HP_SMALL_TIMING_AVAIL ++#if HP_TIMING_AVAIL || HP_SMALL_TIMING_AVAIL || HP_TIMING_PAD + /* Start time on CPU clock. */ + EXTERN hp_timing_t _dl_cpuclock_offset; + #endif +@@ -612,7 +612,7 @@ + /* All search directories defined at startup. */ + EXTERN struct r_search_path_elem *_dl_init_all_dirs; + +-#if HP_TIMING_AVAIL || HP_SMALL_TIMING_AVAIL ++#if HP_TIMING_AVAIL || HP_SMALL_TIMING_AVAIL || HP_TIMING_PAD + /* Overhead of a high-precision timing measurement. */ + EXTERN hp_timing_t _dl_hp_timing_overhead; + #endif +--- /dev/null ++++ sysdeps/i386/hp-timing.h +@@ -0,0 +1,34 @@ ++/* High precision, low overhead timing functions. i386 version. ++ Copyright (C) 2003 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _i386_HP_TIMING_H ++#define _i386_HP_TIMING_H 1 ++ ++#define hp_timing_t hp_timing_t__ ++#include ++#undef hp_timing_t ++ ++/* We don't use high-precision timers, but we might load an i686 libpthread ++ which does. */ ++#define HP_TIMING_PAD 1 ++ ++/* i686 uses 64bit values for the times. */ ++typedef unsigned long long int hp_timing_t; ++ ++#endif /* hp-timing.h */ +--- /dev/null ++++ elf/dl-altinit.c +@@ -0,0 +1,43 @@ ++/* Extra initializers for shared libc. ++ Copyright (C) 2003 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++/* This file is used from the shared libc, to initialize anything which ++ ld.so should have initialized but didn't - for instance, if ld.so ++ is built for a machine without HP_TIMING but libc.so is built for ++ a machine with HP_TIMING, clock_gettime will expect dl_cpuclock_offset ++ to be initialized. */ ++ ++static void ++dlinit_hptiming (void) ++{ ++#if HP_TIMING_AVAIL || HP_SMALL_TIMING_AVAIL ++ if (GL(dl_cpuclock_offset) == 0) ++ HP_TIMING_NOW (GL(dl_cpuclock_offset)); ++#endif ++} ++ ++static void dlinit_alt (void) __attribute__((constructor)); ++static void ++dlinit_alt (void) ++{ ++ dlinit_hptiming (); ++} +--- elf/Makefile.orig ++++ elf/Makefile +@@ -23,7 +23,7 @@ + headers = elf.h bits/elfclass.h link.h bits/link.h + routines = $(dl-routines) dl-support dl-iteratephdr \ + dl-addr enbl-secure dl-profstub \ +- dl-origin dl-libc dl-sym dl-tsd ++ dl-origin dl-libc dl-sym dl-tsd dl-altinit + + # The core dynamic linking functions are in libc for the static and + # profiled libraries. +@@ -41,6 +41,10 @@ + rtld-routines := rtld $(dl-routines) dl-sysdep dl-environ dl-minimal + all-rtld-routines = $(rtld-routines) $(sysdep-rtld-routines) + ++# We only need to re-run initializers if ld.so and libc.so might be built ++# for different machines, so only shared libraries need dl-altinit. ++shared-only-routines = dl-altinit ++ + distribute := rtld-Rules \ + $(rtld-routines:=.c) dynamic-link.h do-rel.h dl-machine.h \ + dl-cache.h dl-hash.h soinit.c sofini.c ldd.bash.in \ --- glibc-2.7.orig/debian/patches/i386/local-linuxthreads-gscope.diff +++ glibc-2.7/debian/patches/i386/local-linuxthreads-gscope.diff @@ -0,0 +1,40 @@ +--- linuxthreads/sysdeps/i386/tls.h 2006-04-26 17:04:12 +0200 ++++ linuxthreads/sysdeps/i386/tls.h 2007-07-29 11:09:35 +0200 +@@ -50,6 +50,11 @@ + uintptr_t sysinfo; + uintptr_t stack_guard; + uintptr_t pointer_guard; ++#ifdef __FreeBSD_kernel__ ++ long gscope_flag; ++# else ++ int gscope_flag; ++# endif + } tcbhead_t; + + #else /* __ASSEMBLER__ */ +@@ -240,6 +241,25 @@ + ((descr)->p_header.data.pointer_guard \ + = THREAD_GETMEM (THREAD_SELF, p_header.data.pointer_guard)) + ++/* Get and set the global scope generation counter in the TCB head. */ ++#define THREAD_GSCOPE_FLAG_UNUSED 0 ++#define THREAD_GSCOPE_FLAG_USED 1 ++#define THREAD_GSCOPE_FLAG_WAIT 2 ++#define THREAD_GSCOPE_RESET_FLAG() \ ++ do \ ++ { int __res; \ ++ asm volatile ("xchgl %0, %%gs:%P1" \ ++ : "=r" (__res) \ ++ : "i" (offsetof (struct _pthread_descr_struct, p_gscope_flag)), \ ++ "0" (THREAD_GSCOPE_FLAG_UNUSED)); \ ++ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ ++ lll_futex_wake (&THREAD_SELF->p_gscope_flag, 1); \ ++ } \ ++ while (0) ++#define THREAD_GSCOPE_SET_FLAG() \ ++ THREAD_SETMEM (THREAD_SELF, p_gscope_flag, THREAD_GSCOPE_FLAG_USED) ++#define THREAD_GSCOPE_WAIT() \ ++ GL(dl_wait_lookup_done) () + + # endif /* HAVE_TLS_SUPPORT && (FLOATING_STACKS || !IS_IN_libpthread) */ + #endif /* __ASSEMBLER__ */ --- glibc-2.7.orig/debian/patches/i386/local-cmov.diff +++ glibc-2.7/debian/patches/i386/local-cmov.diff @@ -0,0 +1,26 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Add CMOV to hwcap, for VIA C3 which is i686 class processor, +# DP: but does not have 686 optional instruction CMOV. +# DP: Author: GOTO Masanori +# DP: Upstream status: Not submitted +# DP: Status Details: Not submitted +# DP: Date: 2003-02-21 +# DP: Updated 2003-10-12 by dan@debian.org for TLS +# DP: Updated 2004-01-02 to fix building with newer patches by jb. +# DP: Updated 2005-01-02 to fix building with newer patches by gotom. + +2005-01-02 GOTO Masanori + + * sysdeps/i386/dl-procinfo.h: Update to add CMOV for VIA C3 chip. + +--- sysdeps/i386/dl-procinfo.h.orig ++++ sysdeps/i386/dl-procinfo.h +@@ -57,7 +57,7 @@ + HWCAP_I386_AMD3D = 1 << 31, + + /* XXX Which others to add here? */ +- HWCAP_IMPORTANT = (HWCAP_I386_XMM2) ++ HWCAP_IMPORTANT = (HWCAP_I386_CMOV | HWCAP_I386_XMM2) + + }; + --- glibc-2.7.orig/debian/patches/i386/local-biarch.diff +++ glibc-2.7/debian/patches/i386/local-biarch.diff @@ -0,0 +1,12 @@ +# DP: Description: Allow ldconfig to work on i386/x86-64 biarch systems +# DP: Related bugs: +# DP: Dpatch author: Daniel Jacobowitz +# DP: Patch author: Daniel Jacobowitz +# DP: Upstream status: Debian-Specific +# DP: Status Details: based on Ubuntu change by Jeff Bailey +# DP: Date: 2005-10-13 + +--- /dev/null ++++ glibc-2.6/sysdeps/unix/sysv/linux/i386/dl-cache.h +@@ -0,0 +1 @@ ++#include --- glibc-2.7.orig/debian/patches/i386/local-clone.diff +++ glibc-2.7/debian/patches/i386/local-clone.diff @@ -0,0 +1,25 @@ +2006-11-30 Jan Kratochvil + + * sysdeps/unix/sysv/linux/i386/clone.S: Provide CFI for the outermost + `clone' function to ensure proper unwinding stop of gdb. + +--- sysdeps/unix/sysv/linux/i386/clone.S 2006-12-04 00:12:36.000000000 +0100 ++++ sysdeps/unix/sysv/linux/i386/clone.S 2006-12-14 10:06:34.000000000 +0100 +@@ -120,9 +120,6 @@ + ret + + L(thread_start): +- cfi_startproc; +- /* Clearing frame pointer is insufficient, use CFI. */ +- cfi_undefined (eip); + /* Note: %esi is zero. */ + movl %esi,%ebp /* terminate the stack frame */ + #ifdef RESET_PID +@@ -155,7 +152,6 @@ + jmp L(haspid) + .previous + #endif +- cfi_endproc; + + cfi_startproc + PSEUDO_END (BP_SYM (__clone)) --- glibc-2.7.orig/debian/patches/series.kfreebsd-i386 +++ glibc-2.7/debian/patches/series.kfreebsd-i386 @@ -0,0 +1,8 @@ +kfreebsd/local-ftw.diff -p0 +kfreebsd/local-memusage_no_mremap.diff -p0 +kfreebsd/local-pthread_at_fork.diff -p0 +kfreebsd/local-readdir_r.diff -p0 +kfreebsd/local-scripts.diff -p0 +kfreebsd/local-sys_queue_h.diff -p0 +kfreebsd/local-sysdeps.diff -p0 +kfreebsd/local-undef-glibc.diff -p0 --- glibc-2.7.orig/debian/patches/locale/fix-LC_COLLATE-rules.diff +++ glibc-2.7/debian/patches/locale/fix-LC_COLLATE-rules.diff @@ -0,0 +1,52 @@ +Index: locale/programs/ld-collate.c +=================================================================== +--- locale/programs/ld-collate.c.orig 2007-10-24 20:13:39.000000000 -0400 ++++ locale/programs/ld-collate.c 2007-10-24 20:28:06.000000000 -0400 +@@ -1546,6 +1546,7 @@ + int i; + int need_undefined = 0; + struct section_list *sect; ++ enum coll_sort_rule *orules; + int ruleidx; + int nr_wide_elems = 0; + +@@ -1557,18 +1558,28 @@ + "LC_COLLATE")); + return; + } ++ if (nrules == 0) ++ { ++ /* An error message has already been printed: ++ empty category description not allowed. */ ++ return; ++ } + + /* If this assertion is hit change the type in `element_t'. */ + assert (nrules <= sizeof (runp->used_in_level) * 8); + + /* Make sure that the `position' rule is used either in all sections + or in none. */ ++ sect = collate->sections; ++ while (sect != NULL && sect->rules == NULL) ++ sect = sect->next; ++ orules = sect->rules; + for (i = 0; i < nrules; ++i) + for (sect = collate->sections; sect != NULL; sect = sect->next) + if (sect != collate->current_section + && sect->rules != NULL + && ((sect->rules[i] & sort_position) +- != (collate->current_section->rules[i] & sort_position))) ++ != (orules[i] & sort_position))) + { + WITH_CUR_LOCALE (error (0, 0, _("\ + %s: `position' must be used for a specific level in all sections or none"), +@@ -3503,6 +3514,9 @@ + no_error = 0; + } + } ++ /* Update current section. */ ++ if (collate->cursor != NULL) ++ collate->current_section = collate->cursor->section; + + lr_ignore_rest (ldfile, no_error); + } --- glibc-2.7.orig/debian/patches/locale/locale-print-LANGUAGE.diff +++ glibc-2.7/debian/patches/locale/locale-print-LANGUAGE.diff @@ -0,0 +1,30 @@ +Comments tell that LANG has to be the first value, and LC_ALL the last +one. Thus LANGUAGE is printed between them. + +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: not submitted +# DP: Date: 2006-01-08 + +Index: locale/programs/locale.c +=================================================================== +--- locale/programs/locale.c.orig 2007-10-23 08:46:19.000000000 -0400 ++++ locale/programs/locale.c 2007-10-23 08:47:08.000000000 -0400 +@@ -752,6 +752,7 @@ + { + size_t cat_no; + const char *lcall = getenv ("LC_ALL"); ++ const char *language = getenv ("LANGUAGE"); + const char *lang = getenv ("LANG") ? : ""; + + auto void get_source (const char *name); +@@ -770,6 +771,9 @@ + /* LANG has to be the first value. */ + printf ("LANG=%s\n", lang); + ++ if (language != NULL && getenv ("POSIXLY_CORRECT") == NULL) ++ printf ("LANGUAGE=%s\n", language); ++ + /* Now all categories in an unspecified order. */ + for (cat_no = 0; cat_no < NCATEGORIES; ++cat_no) + if (cat_no != LC_ALL) --- glibc-2.7.orig/debian/patches/locale/LC_COLLATE-keywords-ordering.diff +++ glibc-2.7/debian/patches/locale/LC_COLLATE-keywords-ordering.diff @@ -0,0 +1,104 @@ +Be less strict about keywords ordering in LC_COLLATE section, to +ease definition of new scripts. + +Submitted upstream: BZ690 + +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: BZ690 +# DP: Date: 2006-01-08 + +--- locale/programs/ld-collate.c.orig ++++ locale/programs/ld-collate.c +@@ -2832,14 +2832,23 @@ + switch (nowtok) + { + case tok_copy: +- /* Allow copying other locales. */ ++ /* Ignore the rest of the line if we don't need the input of ++ this line. */ ++ if (ignore_content) ++ { ++ lr_ignore_rest (ldfile, 0); ++ break; ++ } ++ + now = lr_token (ldfile, charmap, result, NULL, verbose); + if (now->tok != tok_string) + goto err_label; + +- if (! ignore_content) +- load_locale (LC_COLLATE, now->val.str.startmb, repertoire_name, +- charmap, result); ++ if (state == 1 || state == 3 || state == 5) ++ goto err_label; ++ ++ load_locale (LC_COLLATE, now->val.str.startmb, repertoire_name, ++ charmap, result); + + lr_ignore_rest (ldfile, 1); + break; +@@ -2853,9 +2862,6 @@ + break; + } + +- if (state != 0) +- goto err_label; +- + arg = lr_token (ldfile, charmap, result, NULL, verbose); + if (arg->tok != tok_number) + goto err_label; +@@ -2876,7 +2882,7 @@ + break; + } + +- if (state != 0) ++ if (state == 1 || state == 3 || state == 5) + goto err_label; + + arg = lr_token (ldfile, charmap, result, repertoire, verbose); +@@ -2923,7 +2929,7 @@ + break; + } + +- if (state != 0 && state != 2) ++ if (state == 1 || state == 3 || state == 5) + goto err_label; + + arg = lr_token (ldfile, charmap, result, repertoire, verbose); +@@ -2992,7 +2998,7 @@ + break; + } + +- if (state != 0 && state != 2) ++ if (state == 1 || state == 3 || state == 5) + goto err_label; + + arg = lr_token (ldfile, charmap, result, repertoire, verbose); +@@ -3140,7 +3146,7 @@ + break; + } + +- if (state != 0) ++ if (state == 1 || state == 3 || state == 5) + goto err_label; + + arg = lr_token (ldfile, charmap, result, repertoire, verbose); +@@ -3256,7 +3262,7 @@ + break; + } + +- if (state != 0 && state != 1 && state != 2) ++ if (state == 3 || state == 5) + goto err_label; + state = 1; + +@@ -3566,8 +3572,6 @@ + %s: missing `reorder-end' keyword"), "LC_COLLATE")); + state = 4; + } +- else if (state != 2 && state != 4) +- goto err_label; + state = 5; + + /* Get the name of the sections we are adding after. */ --- glibc-2.7.orig/debian/patches/locale/check-unknown-symbols.diff +++ glibc-2.7/debian/patches/locale/check-unknown-symbols.diff @@ -0,0 +1,35 @@ +Check for unknown symbols in collation rules. This is useful to detect +broken locales since unknown symbols are always wrong. + +This request has not been submitted upstream yet. + +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: not submitted +# DP: Date: 2006-01-08 + +Index: glibc-2.7/locale/programs/ld-collate.c +=================================================================== +--- glibc-2.7.orig/locale/programs/ld-collate.c 2007-10-23 22:23:27.000000000 -0400 ++++ glibc-2.7/locale/programs/ld-collate.c 2007-10-23 22:23:28.000000000 -0400 +@@ -3642,8 +3642,20 @@ + } + else if (arg != NULL) + { ++ void *ptr = NULL; + symstr = arg->val.str.startmb; + symlen = arg->val.str.lenmb; ++ if (state != 5 ++ && find_entry (&charmap->char_table, symstr, symlen, &ptr) != 0 ++ && (repertoire == NULL || ++ find_entry (&repertoire->char_table, symstr, symlen, &ptr) != 0) ++ && find_entry (&collate->elem_table, symstr, symlen, &ptr) != 0 ++ && find_entry (&collate->sym_table, symstr, symlen, &ptr) != 0) ++ { ++ lr_error (ldfile, _("%s: symbol `%.*s' not known"), ++ "LC_COLLATE", (int) symlen, symstr); ++ lr_ignore_rest (ldfile, 0); ++ } + } + else + { --- glibc-2.7.orig/debian/patches/locale/preprocessor-collate.diff +++ glibc-2.7/debian/patches/locale/preprocessor-collate.diff @@ -0,0 +1,338 @@ +Allow preprocessor-like directives. These keywords were already +defined in locale/programs/locfile-kw.h, an implementation for +'define', 'undef', 'ifdef', 'else' and 'endif' is now provided in +locale/programs/ld-collate.c. For the moment, 'ifndef' and 'elif' +are not implemented because they do not appear in locfile-kw.h. +This patch is harmless, it only adds new keywords. + +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: BZ686 +# DP: Date: 2006-01-08 + +--- locale/programs/ld-collate.c.orig ++++ locale/programs/ld-collate.c +@@ -160,6 +160,24 @@ + size_t line; + }; + ++/* Data type for toggles. */ ++struct toggle_list_t; ++ ++struct toggle_list_t ++{ ++ const char *name; ++ ++ /* Predecessor in the list. */ ++ struct toggle_list_t *last; ++ ++ /* This flag is set when a keyword is undefined. */ ++ int is_undefined; ++ ++ /* Where does the branch come from. */ ++ const char *file; ++ size_t line; ++}; ++ + /* Sparse table of struct element_t *. */ + #define TABLE wchead_table + #define ELEMENT struct element_t * +@@ -213,6 +231,9 @@ + /* This value is used when handling ellipsis. */ + struct element_t ellipsis_weight; + ++ /* This is a stack of . */ ++ struct toggle_list_t *flow_control; ++ + /* Known collating elements. */ + hash_table elem_table; + +@@ -1458,6 +1479,56 @@ + } + + ++static struct token * ++flow_skip (struct linereader *ldfile, const struct charmap_t *charmap, ++ struct locale_collate_t *collate) ++{ ++ int level = 0; ++ struct token *now; ++ enum token_t nowtok; ++ while (1) ++ { ++ lr_ignore_rest (ldfile, 0); ++ now = lr_token (ldfile, charmap, NULL, NULL, 0); ++ nowtok = now->tok; ++ if (nowtok == tok_eof) ++ break; ++ else if (nowtok == tok_ifdef || nowtok == tok_ifndef) ++ ++level ; ++ else if (nowtok == tok_else) ++ { ++ if (strcmp (collate->flow_control->name, "else") == 0) ++ lr_error (ldfile, ++ _("%s: `else' statement at `%s:%Zu' cannot be followed by another `else' statement"), ++ "LC_COLLATE", collate->flow_control->name, collate->flow_control->line); ++ if (level == 0) ++ { ++ collate->flow_control->name = "else"; ++ collate->flow_control->file = ldfile->fname; ++ collate->flow_control->line = ldfile->lineno; ++ break; ++ } ++ } ++ else if (nowtok == tok_endif) ++ { ++ if (level == 0) ++ { ++ collate->flow_control = collate->flow_control->last; ++ break; ++ } ++ --level ; ++ } ++ } ++ if (nowtok == tok_eof) ++ WITH_CUR_LOCALE (error (0, 0, _("\ ++%s: unterminated `%s' flow control beginning at %s:%Zu"), ++ "LC_COLLATE", collate->flow_control->name, ++ collate->flow_control->file, ++ collate->flow_control->line)); ++ return now; ++} ++ ++ + static void + collate_startup (struct linereader *ldfile, struct localedef_t *locale, + struct localedef_t *copy_locale, int ignore_content) +@@ -2656,6 +2727,8 @@ + */ + int state = 0; + ++ static struct toggle_list_t *defined_keywords = NULL; ++ + /* Get the repertoire we have to use. */ + if (repertoire_name != NULL) + repertoire = repertoire_read (repertoire_name); +@@ -2670,6 +2743,82 @@ + } + while (nowtok == tok_eol); + ++ while (nowtok == tok_define || nowtok == tok_undef) ++ { ++ /* Ignore the rest of the line if we don't need the input of ++ this line. */ ++ if (ignore_content) ++ { ++ lr_ignore_rest (ldfile, 0); ++ now = lr_token (ldfile, charmap, result, NULL, verbose); ++ nowtok = now->tok; ++ continue; ++ } ++ ++ arg = lr_token (ldfile, charmap, result, NULL, verbose); ++ if (arg->tok != tok_ident) ++ goto err_label; ++ ++ if (nowtok == tok_define) ++ { ++ struct toggle_list_t *runp = defined_keywords; ++ char *name; ++ ++ while (runp != NULL) ++ if (strncmp (runp->name, arg->val.str.startmb, ++ arg->val.str.lenmb) == 0 ++ && runp->name[arg->val.str.lenmb] == '\0') ++ SYNTAX_ERROR (_("%s: syntax error"), "LC_COLLATE"); ++ else ++ runp = runp->last; ++ ++ if (runp != NULL && runp->is_undefined == 0) ++ { ++ lr_ignore_rest (ldfile, 0); ++ SYNTAX_ERROR (_("%s: syntax error"), "LC_COLLATE"); ++ } ++ ++ if (runp == NULL) ++ { ++ runp = (struct toggle_list_t *) xcalloc (1, sizeof (*runp)); ++ runp->last = defined_keywords; ++ defined_keywords = runp; ++ } ++ else ++ { ++ free ((char *) runp->name); ++ runp->is_undefined = 0; ++ } ++ ++ name = (char *) xmalloc (arg->val.str.lenmb + 1); ++ memcpy (name, arg->val.str.startmb, arg->val.str.lenmb); ++ name[arg->val.str.lenmb] = '\0'; ++ runp->name = name; ++ } ++ else ++ { ++ struct toggle_list_t *runp = defined_keywords; ++ while (runp != NULL) ++ if (strncmp (runp->name, arg->val.str.startmb, ++ arg->val.str.lenmb) == 0 ++ && runp->name[arg->val.str.lenmb] == '\0') ++ { ++ runp->is_undefined = 1; ++ SYNTAX_ERROR (_("%s: syntax error"), "LC_COLLATE"); ++ } ++ else ++ runp = runp->last; ++ } ++ ++ lr_ignore_rest (ldfile, 1); ++ do ++ { ++ now = lr_token (ldfile, charmap, result, NULL, verbose); ++ nowtok = now->tok; ++ } ++ while (nowtok == tok_eol); ++ } ++ + if (nowtok == tok_copy) + { + now = lr_token (ldfile, charmap, result, NULL, verbose); +@@ -3823,6 +3972,125 @@ + repertoire, result, nowtok); + break; + ++ case tok_ifdef: ++ /* Ignore the rest of the line if we don't need the input of ++ this line. */ ++ if (ignore_content) ++ { ++ lr_ignore_rest (ldfile, 0); ++ break; ++ } ++ ++ arg = lr_token (ldfile, charmap, result, NULL, verbose); ++ if (arg->tok != tok_ident) ++ goto err_label; ++ else ++ { ++ struct toggle_list_t *runp = defined_keywords; ++ struct toggle_list_t *flow = (struct toggle_list_t *) xcalloc (1, sizeof (*runp)); ++ flow->name = "ifdef"; ++ flow->file = ldfile->fname; ++ flow->line = ldfile->lineno; ++ flow->last = collate->flow_control; ++ collate->flow_control = flow; ++ ++ while (runp != NULL) ++ if (strncmp (runp->name, arg->val.str.startmb, ++ arg->val.str.lenmb) == 0 ++ && runp->name[arg->val.str.lenmb] == '\0') ++ break; ++ else ++ runp = runp->last; ++ ++ if (runp == NULL) ++ { ++ now = flow_skip(ldfile, charmap, collate); ++ if (now->tok == tok_eof) ++ WITH_CUR_LOCALE (error (0, 0, _("\ ++%s: unterminated `%s' flow control"), "LC_COLLATE", collate->flow_control->name)); ++ } ++ } ++ lr_ignore_rest (ldfile, 1); ++ break; ++ ++ case tok_ifndef: ++ /* Ignore the rest of the line if we don't need the input of ++ this line. */ ++ if (ignore_content) ++ { ++ lr_ignore_rest (ldfile, 0); ++ break; ++ } ++ ++ arg = lr_token (ldfile, charmap, result, NULL, verbose); ++ if (arg->tok != tok_ident) ++ goto err_label; ++ else ++ { ++ struct toggle_list_t *runp = defined_keywords; ++ struct toggle_list_t *flow = (struct toggle_list_t *) xcalloc (1, sizeof (*runp)); ++ flow->name = "ifndef"; ++ flow->file = ldfile->fname; ++ flow->line = ldfile->lineno; ++ flow->last = collate->flow_control; ++ collate->flow_control = flow; ++ ++ while (runp != NULL) ++ if (strncmp (runp->name, arg->val.str.startmb, ++ arg->val.str.lenmb) == 0 ++ && runp->name[arg->val.str.lenmb] == '\0') ++ break; ++ else ++ runp = runp->last; ++ ++ if (runp != NULL) ++ { ++ now = flow_skip(ldfile, charmap, collate); ++ if (now->tok == tok_eof) ++ WITH_CUR_LOCALE (error (0, 0, _("\ ++%s: unterminated `%s' flow control"), "LC_COLLATE", collate->flow_control->name)); ++ } ++ } ++ lr_ignore_rest (ldfile, 1); ++ break; ++ ++ case tok_else: ++ /* Ignore the rest of the line if we don't need the input of ++ this line. */ ++ if (ignore_content) ++ { ++ lr_ignore_rest (ldfile, 0); ++ break; ++ } ++ ++ if (strcmp (collate->flow_control->name, "else") == 0) ++ lr_error (ldfile, ++ _("%s: `else' statement at `%s:%Zu' cannot be followed by another `else' statement"), ++ "LC_COLLATE", collate->flow_control->name, collate->flow_control->line); ++ collate->flow_control->name = "else"; ++ collate->flow_control->file = ldfile->fname; ++ collate->flow_control->line = ldfile->lineno; ++ now = flow_skip(ldfile, charmap, collate); ++ if (now->tok == tok_eof) ++ WITH_CUR_LOCALE (error (0, 0, _("\ ++%s: unterminated `%s' flow control"), "LC_COLLATE", collate->flow_control->name)); ++ break; ++ ++ case tok_endif: ++ /* Ignore the rest of the line if we don't need the input of ++ this line. */ ++ if (ignore_content) ++ { ++ lr_ignore_rest (ldfile, 0); ++ break; ++ } ++ ++ if (collate->flow_control == NULL) ++ goto err_label; ++ else ++ collate->flow_control = collate->flow_control->last; ++ break; ++ + case tok_end: + /* Next we assume `LC_COLLATE'. */ + if (!ignore_content) +@@ -3852,6 +4120,13 @@ + else if (state == 5) + WITH_CUR_LOCALE (error (0, 0, _("\ + %s: missing `reorder-sections-end' keyword"), "LC_COLLATE")); ++ if (collate->flow_control != NULL ++ && strcmp(collate->flow_control->file, ldfile->fname) == 0) ++ WITH_CUR_LOCALE (error (0, 0, _("\ ++%s: unterminated `%s' flow control beginning at %s:%Zu"), ++ "LC_COLLATE", collate->flow_control->name, ++ collate->flow_control->file, ++ collate->flow_control->line)); + } + arg = lr_token (ldfile, charmap, result, NULL, verbose); + if (arg->tok == tok_eof) --- glibc-2.7.orig/debian/patches/locale/fix-C-first_weekday.diff +++ glibc-2.7/debian/patches/locale/fix-C-first_weekday.diff @@ -0,0 +1,27 @@ +#! /bin/sh -e + +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: #327025 C locale has bad default for _NL_TIME_FIRST_WEEKDAY +# DP: Also fixes the 3rd value of the week keyword. +# DP: Related bugs: #327025 BZ181 +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Petter Reinholdtsen +# DP: Upstream status: BZ181 +# DP: Date: 2006-01-10 + +Index: locale/C-time.c +=================================================================== +--- locale/C-time.c.orig 2007-10-07 16:35:43.000000000 -0400 ++++ locale/C-time.c 2007-10-22 22:16:39.000000000 -0400 +@@ -135,10 +135,10 @@ + { .wstr = (const uint32_t *) L"" }, + { .string = "\7" }, + { .word = 19971201 }, +- { .string = "\4" }, + { .string = "\7" }, + { .string = "\1" }, + { .string = "\1" }, ++ { .string = "\1" }, + { .string = "" }, + { .string = "%a %b %e %H:%M:%S %Z %Y" }, + { .wstr = (const uint32_t *) L"%a %b %e %H:%M:%S %Z %Y" }, --- glibc-2.7.orig/debian/patches/locale/preprocessor-collate-uli-sucks.diff +++ glibc-2.7/debian/patches/locale/preprocessor-collate-uli-sucks.diff @@ -0,0 +1,328 @@ +--- locale/programs/ld-collate.c.orig ++++ locale/programs/ld-collate.c +@@ -181,14 +181,6 @@ + #include "3level.h" + + +-/* Simple name list for the preprocessor. */ +-struct name_list +-{ +- struct name_list *next; +- char str[0]; +-}; +- +- + /* The real definition of the struct for the LC_COLLATE locale. */ + struct locale_collate_t + { +@@ -248,15 +240,6 @@ + /* The arrays with the collation sequence order. */ + unsigned char mbseqorder[256]; + struct collseq_table wcseqorder; +- +- /* State of the preprocessor. */ +- enum +- { +- else_none = 0, +- else_ignore, +- else_seen +- } +- else_action; + }; + + +@@ -264,9 +247,6 @@ + LC_COLLATE category descriptions in all files. */ + static uint32_t nrules; + +-/* List of defined preprocessor symbols. */ +-static struct name_list *defined; +- + + /* We need UTF-8 encoding of numbers. */ + static inline int +@@ -2653,46 +2633,6 @@ + } + + +-static enum token_t +-skip_to (struct linereader *ldfile, struct locale_collate_t *collate, +- const struct charmap_t *charmap, int to_endif) +-{ +- while (1) +- { +- struct token *now = lr_token (ldfile, charmap, NULL, NULL, 0); +- enum token_t nowtok = now->tok; +- +- if (nowtok == tok_eof || nowtok == tok_end) +- return nowtok; +- +- if (nowtok == tok_ifdef || nowtok == tok_ifndef) +- { +- lr_error (ldfile, _("%s: nested conditionals not supported"), +- "LC_COLLATE"); +- nowtok = skip_to (ldfile, collate, charmap, tok_endif); +- if (nowtok == tok_eof || nowtok == tok_end) +- return nowtok; +- } +- else if (nowtok == tok_endif || (!to_endif && nowtok == tok_else)) +- { +- lr_ignore_rest (ldfile, 1); +- return nowtok; +- } +- else if (!to_endif && (nowtok == tok_elifdef || nowtok == tok_elifndef)) +- { +- /* Do not read the rest of the line. */ +- return nowtok; +- } +- else if (nowtok == tok_else) +- { +- lr_error (ldfile, _("%s: more then one 'else'"), "LC_COLLATE"); +- } +- +- lr_ignore_rest (ldfile, 0); +- } +-} +- +- + void + collate_read (struct linereader *ldfile, struct localedef_t *result, + const struct charmap_t *charmap, const char *repertoire_name, +@@ -2723,8 +2663,6 @@ + /* The rest of the line containing `LC_COLLATE' must be free. */ + lr_ignore_rest (ldfile, 1); + +- while (1) +- { + do + { + now = lr_token (ldfile, charmap, result, NULL, verbose); +@@ -2732,31 +2670,6 @@ + } + while (nowtok == tok_eol); + +- if (nowtok != tok_define) +- break; +- +- if (ignore_content) +- lr_ignore_rest (ldfile, 0); +- else +- { +- arg = lr_token (ldfile, charmap, result, NULL, verbose); +- if (arg->tok != tok_ident) +- SYNTAX_ERROR (_("%s: syntax error"), "LC_COLLATE"); +- else +- { +- /* Simply add the new symbol. */ +- struct name_list *newsym = xmalloc (sizeof (*newsym) +- + arg->val.str.lenmb + 1); +- memcpy (newsym->str, arg->val.str.startmb, arg->val.str.lenmb); +- newsym->str[arg->val.str.lenmb] = '\0'; +- newsym->next = defined; +- defined = newsym; +- +- lr_ignore_rest (ldfile, 1); +- } +- } +- } +- + if (nowtok == tok_copy) + { + now = lr_token (ldfile, charmap, result, NULL, verbose); +@@ -3911,7 +3824,6 @@ + break; + + case tok_end: +- seen_end: + /* Next we assume `LC_COLLATE'. */ + if (!ignore_content) + { +@@ -3952,180 +3864,6 @@ + lr_ignore_rest (ldfile, arg->tok == tok_lc_collate); + return; + +- case tok_define: +- if (ignore_content) +- { +- lr_ignore_rest (ldfile, 0); +- break; +- } +- +- arg = lr_token (ldfile, charmap, result, NULL, verbose); +- if (arg->tok != tok_ident) +- goto err_label; +- +- /* Simply add the new symbol. */ +- struct name_list *newsym = xmalloc (sizeof (*newsym) +- + arg->val.str.lenmb + 1); +- memcpy (newsym->str, arg->val.str.startmb, arg->val.str.lenmb); +- newsym->str[arg->val.str.lenmb] = '\0'; +- newsym->next = defined; +- defined = newsym; +- +- lr_ignore_rest (ldfile, 1); +- break; +- +- case tok_undef: +- if (ignore_content) +- { +- lr_ignore_rest (ldfile, 0); +- break; +- } +- +- arg = lr_token (ldfile, charmap, result, NULL, verbose); +- if (arg->tok != tok_ident) +- goto err_label; +- +- /* Remove _all_ occurrences of the symbol from the list. */ +- struct name_list *prevdef = NULL; +- struct name_list *curdef = defined; +- while (curdef != NULL) +- if (strncmp (arg->val.str.startmb, curdef->str, +- arg->val.str.lenmb) == 0 +- && curdef->str[arg->val.str.lenmb] == '\0') +- { +- if (prevdef == NULL) +- defined = curdef->next; +- else +- prevdef->next = curdef->next; +- +- struct name_list *olddef = curdef; +- curdef = curdef->next; +- +- free (olddef); +- } +- else +- { +- prevdef = curdef; +- curdef = curdef->next; +- } +- +- lr_ignore_rest (ldfile, 1); +- break; +- +- case tok_ifdef: +- case tok_ifndef: +- if (ignore_content) +- { +- lr_ignore_rest (ldfile, 0); +- break; +- } +- +- found_ifdef: +- arg = lr_token (ldfile, charmap, result, NULL, verbose); +- if (arg->tok != tok_ident) +- goto err_label; +- lr_ignore_rest (ldfile, 1); +- +- if (collate->else_action == else_none) +- { +- curdef = defined; +- while (curdef != NULL) +- if (strncmp (arg->val.str.startmb, curdef->str, +- arg->val.str.lenmb) == 0 +- && curdef->str[arg->val.str.lenmb] == '\0') +- break; +- +- if ((nowtok == tok_ifdef && curdef != NULL) +- || (nowtok == tok_ifndef && curdef == NULL)) +- { +- /* We have to use the if-branch. */ +- collate->else_action = else_ignore; +- } +- else +- { +- /* We have to use the else-branch, if there is one. */ +- nowtok = skip_to (ldfile, collate, charmap, 0); +- if (nowtok == tok_else) +- collate->else_action = else_seen; +- else if (nowtok == tok_elifdef) +- { +- nowtok = tok_ifdef; +- goto found_ifdef; +- } +- else if (nowtok == tok_elifndef) +- { +- nowtok = tok_ifndef; +- goto found_ifdef; +- } +- else if (nowtok == tok_eof) +- goto seen_eof; +- else if (nowtok == tok_end) +- goto seen_end; +- } +- } +- else +- { +- /* XXX Should it really become necessary to support nested +- preprocessor handling we will push the state here. */ +- lr_error (ldfile, _("%s: nested conditionals not supported"), +- "LC_COLLATE"); +- nowtok = skip_to (ldfile, collate, charmap, 1); +- if (nowtok == tok_eof) +- goto seen_eof; +- else if (nowtok == tok_end) +- goto seen_end; +- } +- break; +- +- case tok_elifdef: +- case tok_elifndef: +- case tok_else: +- if (ignore_content) +- { +- lr_ignore_rest (ldfile, 0); +- break; +- } +- +- lr_ignore_rest (ldfile, 1); +- +- if (collate->else_action == else_ignore) +- { +- /* Ignore everything until the endif. */ +- nowtok = skip_to (ldfile, collate, charmap, 1); +- if (nowtok == tok_eof) +- goto seen_eof; +- else if (nowtok == tok_end) +- goto seen_end; +- } +- else +- { +- assert (collate->else_action == else_none); +- lr_error (ldfile, _("\ +-%s: '%s' without matching 'ifdef' or 'ifndef'"), "LC_COLLATE", +- nowtok == tok_else ? "else" +- : nowtok == tok_elifdef ? "elifdef" : "elifndef"); +- } +- break; +- +- case tok_endif: +- if (ignore_content) +- { +- lr_ignore_rest (ldfile, 0); +- break; +- } +- +- lr_ignore_rest (ldfile, 1); +- +- if (collate->else_action != else_ignore +- && collate->else_action != else_seen) +- lr_error (ldfile, _("\ +-%s: 'endif' without matching 'ifdef' or 'ifndef'"), "LC_COLLATE"); +- +- /* XXX If we support nested preprocessor directives we pop +- the state here. */ +- collate->else_action = else_none; +- break; +- + default: + err_label: + SYNTAX_ERROR (_("%s: syntax error"), "LC_COLLATE"); +@@ -4136,7 +3874,6 @@ + nowtok = now->tok; + } + +- seen_eof: + /* When we come here we reached the end of the file. */ + lr_error (ldfile, _("%s: premature end of file"), "LC_COLLATE"); + } --- glibc-2.7.orig/debian/patches/locale/LC_IDENTIFICATION-optional-fields.diff +++ glibc-2.7/debian/patches/locale/LC_IDENTIFICATION-optional-fields.diff @@ -0,0 +1,35 @@ +In LC_IDENTIFICATION, audience, application and abbreviation keywords +are optional, thus do not report an error if they are not defined. + +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: not submitted +# DP: Date: 2006-01-08 + +Index: locale/programs/ld-identification.c +=================================================================== +--- locale/programs/ld-identification.c.orig 2007-10-23 08:46:19.000000000 -0400 ++++ locale/programs/ld-identification.c 2007-10-23 08:47:03.000000000 -0400 +@@ -147,6 +147,9 @@ + "LC_IDENTIFICATION", #cat)); \ + identification->cat = ""; \ + } ++#define TEST_ELEM_OPT(cat) \ ++ if (identification->cat == NULL) \ ++ identification->cat = ""; \ + + TEST_ELEM (title); + TEST_ELEM (source); +@@ -157,9 +160,9 @@ + TEST_ELEM (fax); + TEST_ELEM (language); + TEST_ELEM (territory); +- TEST_ELEM (audience); +- TEST_ELEM (application); +- TEST_ELEM (abbreviation); ++ TEST_ELEM_OPT (audience); ++ TEST_ELEM_OPT (application); ++ TEST_ELEM_OPT (abbreviation); + TEST_ELEM (revision); + TEST_ELEM (date); + --- glibc-2.7.orig/debian/patches/README +++ glibc-2.7/debian/patches/README @@ -0,0 +1,18 @@ +For the patch directory we follow this naming scheme: + + {ARCH|all|any}/{local|branch|cvs|submitted}-"Description" + +Branch means commited in the upstream branch. +CVS means committed in the upstream trunk. +Submitted means we're hopeful that it will go in. +Local means that it's not going upstream. + +The goal is to get all patches to "Branch". Patches should be split by +arch so that it's easy to send just the relevant bits to various +arch maintainers if needed. + +The difference between 'all' and 'any' is that the latter touches several +architecture dependent files (usually in the sysdeps directory), whereas +the former only modifies architecture independent files. Porters are +supposed to have an eye on their arch patches and on 'any'. + --- glibc-2.7.orig/debian/patches/powerpc/local-sysconf.diff +++ glibc-2.7/debian/patches/powerpc/local-sysconf.diff @@ -0,0 +1,41 @@ +# DP: Add /proc/cpuinfo handling on Linux/PowerPC + +--- /dev/null ++++ glibc-2.6/sysdeps/unix/sysv/linux/powerpc/getsysstats.c +@@ -0,0 +1,36 @@ ++/* Determine various system internal values, Linux/PowerPC version. ++ Copyright (C) 2001,2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++ ++/* We need to define a special parser for /proc/cpuinfo. */ ++#define GET_NPROCS_PARSER(FP, BUFFER, RESULT) \ ++ do \ ++ { \ ++ (RESULT) = 0; \ ++ /* Read all lines and count the lines starting with the string \ ++ "cpu model". We don't have to fear extremely long lines since \ ++ the kernel will not generate them. 8192 bytes are really \ ++ enough. */ \ ++ while (fgets_unlocked (BUFFER, sizeof (BUFFER), FP) != NULL) \ ++ if (strncmp (BUFFER, "cpu\t\t:", 6) == 0) \ ++ ++(RESULT); \ ++ } \ ++ while (0) ++ ++#include --- glibc-2.7.orig/debian/patches/powerpc/cvs-tls-debug.diff +++ glibc-2.7/debian/patches/powerpc/cvs-tls-debug.diff @@ -0,0 +1,15 @@ +2006-10-26 Pete Eberlein + + * nptl_db/db_info.c [TLS_DTV_AT_TP]: Fixed size init for dtvp + to sizeof a pointer, instead of sizeof the union. + + +--- glibc/nptl_db/db_info.c 2004-03-13 22:39:57.000000000 -0500 ++++ glibc-new/nptl_db/db_info.c 2006-10-20 19:29:34.000000000 -0400 +@@ -59,7 +59,7 @@ + i.e. at the very end of the area covered by TLS_PRE_TCB_SIZE. */ + DESC (_thread_db_pthread_dtvp, + TLS_PRE_TCB_SIZE + offsetof (tcbhead_t, dtv) +- - (TLS_TCB_SIZE == 0 ? sizeof (tcbhead_t) : 0), union dtv) ++ - (TLS_TCB_SIZE == 0 ? sizeof (tcbhead_t) : 0), union dtv*) + #endif --- glibc-2.7.orig/debian/patches/hppa/submitted-lt.diff +++ glibc-2.7/debian/patches/hppa/submitted-lt.diff @@ -0,0 +1,324 @@ +# DP: Description: Make glibc-2.3.5 compile to enable hppa linuxthreads +# correctly again. +# DP: Related bugs: +# DP: Dpatch author: Jeff Bailey +# DP: Patch author: Carlos O'Donell +# DP: Upstream status: Pending +# DP: Status Details: +# DP: Date: 2005-07-17 + +--- linuxthreads/descr.h.orig ++++ linuxthreads/descr.h +@@ -71,7 +71,7 @@ + /* Atomic counter made possible by compare_and_swap */ + struct pthread_atomic { + long p_count; +- int p_spinlock; ++ __atomic_lock_t p_spinlock; + }; + + +--- linuxthreads/oldsemaphore.c.orig ++++ linuxthreads/oldsemaphore.c +@@ -31,7 +31,7 @@ + + typedef struct { + long int sem_status; +- int sem_spinlock; ++ __atomic_lock_t sem_spinlock; + } old_sem_t; + + extern int __old_sem_init (old_sem_t *__sem, int __pshared, unsigned int __value); +--- linuxthreads/pt-machine.c.orig ++++ linuxthreads/pt-machine.c +@@ -19,7 +19,9 @@ + + #define PT_EI + +-extern long int testandset (int *spinlock); ++#include ++ ++extern long int testandset (__atomic_lock_t *spinlock); + extern int __compare_and_swap (long int *p, long int oldval, long int newval); + + #include +--- linuxthreads/pthread.c.orig ++++ linuxthreads/pthread.c +@@ -309,7 +309,7 @@ + pthread_descr self; + + /* First of all init __pthread_handles[0] and [1] if needed. */ +-# if __LT_SPINLOCK_INIT != 0 ++# ifdef __LT_INITIALIZER_NOT_ZERO + __pthread_handles[0].h_lock = __LOCK_INITIALIZER; + __pthread_handles[1].h_lock = __LOCK_INITIALIZER; + # endif +@@ -379,7 +379,7 @@ + # endif + /* self->p_start_args need not be initialized, it's all zero. */ + self->p_userstack = 1; +-# if __LT_SPINLOCK_INIT != 0 ++# ifdef __LT_INITIALIZER_NOT_ZERO + self->p_resume_count = (struct pthread_atomic) __ATOMIC_INITIALIZER; + # endif + self->p_alloca_cutoff = __MAX_ALLOCA_CUTOFF; +@@ -393,7 +393,7 @@ + #else /* USE_TLS */ + + /* First of all init __pthread_handles[0] and [1]. */ +-# if __LT_SPINLOCK_INIT != 0 ++# ifdef __LT_INITIALIZER_NOT_ZERO + __pthread_handles[0].h_lock = __LOCK_INITIALIZER; + __pthread_handles[1].h_lock = __LOCK_INITIALIZER; + # endif +@@ -696,8 +696,8 @@ + # endif + mgr->p_start_args = (struct pthread_start_args) PTHREAD_START_ARGS_INITIALIZER(__pthread_manager); + mgr->p_nr = 1; +-# if __LT_SPINLOCK_INIT != 0 +- self->p_resume_count = (struct pthread_atomic) __ATOMIC_INITIALIZER; ++# ifdef __LT_INITIALIZER_NOT_ZERO ++ mgr->p_resume_count = (struct pthread_atomic) __ATOMIC_INITIALIZER; + # endif + mgr->p_alloca_cutoff = PTHREAD_STACK_MIN / 4; + #else +--- linuxthreads/spinlock.c.orig ++++ linuxthreads/spinlock.c +@@ -24,9 +24,9 @@ + #include "spinlock.h" + #include "restart.h" + +-static void __pthread_acquire(int * spinlock); ++static void __pthread_acquire(__atomic_lock_t * spinlock); + +-static inline void __pthread_release(int * spinlock) ++static inline void __pthread_release(__atomic_lock_t * spinlock) + { + WRITE_MEMORY_BARRIER(); + *spinlock = __LT_SPINLOCK_INIT; +@@ -269,11 +269,11 @@ + struct wait_node { + struct wait_node *next; /* Next node in null terminated linked list */ + pthread_descr thr; /* The thread waiting with this node */ +- int abandoned; /* Atomic flag */ ++ __atomic_lock_t abandoned; /* Atomic flag */ + }; + + static long wait_node_free_list; +-static int wait_node_free_list_spinlock; ++__pthread_lock_define_initialized(static, wait_node_free_list_spinlock); + + /* Allocate a new node from the head of the free list using an atomic + operation, or else using malloc if that list is empty. A fundamental +@@ -376,7 +376,7 @@ + if (self == NULL) + self = thread_self(); + +- wait_node.abandoned = 0; ++ wait_node.abandoned = __LT_SPINLOCK_INIT; + wait_node.next = (struct wait_node *) lock->__status; + wait_node.thr = self; + lock->__status = (long) &wait_node; +@@ -402,7 +402,7 @@ + wait_node.thr = self; + newstatus = (long) &wait_node; + } +- wait_node.abandoned = 0; ++ wait_node.abandoned = __LT_SPINLOCK_INIT; + wait_node.next = (struct wait_node *) oldstatus; + /* Make sure the store in wait_node.next completes before performing + the compare-and-swap */ +@@ -451,7 +451,7 @@ + if (self == NULL) + self = thread_self(); + +- p_wait_node->abandoned = 0; ++ p_wait_node->abandoned = __LT_SPINLOCK_INIT; + p_wait_node->next = (struct wait_node *) lock->__status; + p_wait_node->thr = self; + lock->__status = (long) p_wait_node; +@@ -474,7 +474,7 @@ + p_wait_node->thr = self; + newstatus = (long) p_wait_node; + } +- p_wait_node->abandoned = 0; ++ p_wait_node->abandoned = __LT_SPINLOCK_INIT; + p_wait_node->next = (struct wait_node *) oldstatus; + /* Make sure the store in wait_node.next completes before performing + the compare-and-swap */ +@@ -574,7 +574,7 @@ + while (p_node != (struct wait_node *) 1) { + int prio; + +- if (p_node->abandoned) { ++ if (lock_held(&p_node->abandoned)) { + /* Remove abandoned node. */ + #if defined TEST_FOR_COMPARE_AND_SWAP + if (!__pthread_has_cas) +@@ -674,7 +674,7 @@ + #if !defined HAS_COMPARE_AND_SWAP || defined TEST_FOR_COMPARE_AND_SWAP + + int __pthread_compare_and_swap(long * ptr, long oldval, long newval, +- int * spinlock) ++ __atomic_lock_t * spinlock) + { + int res; + +@@ -711,7 +711,7 @@ + - When nanosleep() returns, we try again, doing MAX_SPIN_COUNT + sched_yield(), then sleeping again if needed. */ + +-static void __pthread_acquire(int * spinlock) ++static void __pthread_acquire(__atomic_lock_t * spinlock) + { + int cnt = 0; + struct timespec tm; +--- linuxthreads/spinlock.h.orig ++++ linuxthreads/spinlock.h +@@ -33,14 +33,28 @@ + #endif + #endif + ++/* Define lock_held for all arches that don't need a modified copy. */ ++#ifndef __LT_INITIALIZER_NOT_ZERO ++# define lock_held(p) *(p) ++#endif ++ ++/* Initliazers for possibly complex structures */ ++#ifdef __LT_INITIALIZER_NOT_ZERO ++# define __pthread_lock_define_initialized(CLASS,NAME) \ ++ CLASS __atomic_lock_t NAME = __LT_SPINLOCK_ALT_INIT ++#else ++# define __pthread_lock_define_initialized(CLASS,NAME) \ ++ CLASS __atomic_lock_t NAME ++#endif ++ + #if defined(TEST_FOR_COMPARE_AND_SWAP) + + extern int __pthread_has_cas; + extern int __pthread_compare_and_swap(long * ptr, long oldval, long newval, +- int * spinlock); ++ __atomic_lock_t * spinlock); + + static inline int compare_and_swap(long * ptr, long oldval, long newval, +- int * spinlock) ++ __atomic_lock_t * spinlock) + { + if (__builtin_expect (__pthread_has_cas, 1)) + return __compare_and_swap(ptr, oldval, newval); +@@ -58,7 +72,7 @@ + + static inline int + compare_and_swap_with_release_semantics (long * ptr, long oldval, +- long newval, int * spinlock) ++ long newval, __atomic_lock_t * spinlock) + { + return __compare_and_swap_with_release_semantics (ptr, oldval, + newval); +@@ -67,7 +81,7 @@ + #endif + + static inline int compare_and_swap(long * ptr, long oldval, long newval, +- int * spinlock) ++ __atomic_lock_t * spinlock) + { + return __compare_and_swap(ptr, oldval, newval); + } +@@ -75,10 +89,10 @@ + #else + + extern int __pthread_compare_and_swap(long * ptr, long oldval, long newval, +- int * spinlock); ++ __atomic_lock_t * spinlock); + + static inline int compare_and_swap(long * ptr, long oldval, long newval, +- int * spinlock) ++ __atomic_lock_t * spinlock) + { + return __pthread_compare_and_swap(ptr, oldval, newval, spinlock); + } +--- linuxthreads/sysdeps/pthread/bits/initspin.h.orig ++++ linuxthreads/sysdeps/pthread/bits/initspin.h +@@ -23,6 +23,7 @@ + #define __LT_SPINLOCK_INIT 0 + + /* Macros for lock initializers, using the above definition. */ +-#define __LOCK_INITIALIZER { 0, __LT_SPINLOCK_INIT } ++#define __LOCK_INITIALIZER ((struct _pthread_fastlock){ 0, __LT_SPINLOCK_INIT }) ++#define __LOCK_ALT_INITIALIZER { 0, __LT_SPINLOCK_INIT } + #define __ALT_LOCK_INITIALIZER { 0, __LT_SPINLOCK_INIT } + #define __ATOMIC_INITIALIZER { 0, __LT_SPINLOCK_INIT } +--- linuxthreads/sysdeps/pthread/bits/libc-lock.h.orig ++++ linuxthreads/sysdeps/pthread/bits/libc-lock.h +@@ -71,12 +71,12 @@ + initialized locks must be set to one due to the lack of normal + atomic operations.) */ + +-#if __LT_SPINLOCK_INIT == 0 ++#ifdef __LT_INITIALIZER_NOT_ZERO + # define __libc_lock_define_initialized(CLASS,NAME) \ +- CLASS __libc_lock_t NAME; ++ CLASS __libc_lock_t NAME = PTHREAD_MUTEX_INITIALIZER; + #else + # define __libc_lock_define_initialized(CLASS,NAME) \ +- CLASS __libc_lock_t NAME = PTHREAD_MUTEX_INITIALIZER; ++ CLASS __libc_lock_t NAME; + #endif + + #define __libc_rwlock_define_initialized(CLASS,NAME) \ +--- linuxthreads/sysdeps/pthread/bits/pthreadtypes.h.orig ++++ linuxthreads/sysdeps/pthread/bits/pthreadtypes.h +@@ -22,12 +22,14 @@ + #define __need_schedparam + #include + ++typedef int __atomic_lock_t; ++ + /* Fast locks (not abstract because mutexes and conditions aren't abstract). */ + struct _pthread_fastlock + { +- long int __status; /* "Free" or "taken" or head of waiting list */ +- int __spinlock; /* Used by compare_and_swap emulation. Also, +- adaptive SMP lock stores spin count here. */ ++ long int __status; /* "Free" or "taken" or head of waiting list */ ++ __atomic_lock_t __spinlock; /* Used by compare_and_swap emulation. Also, ++ adaptive SMP lock stores spin count here. */ + }; + + #ifndef _PTHREAD_DESCR_DEFINED +--- linuxthreads/sysdeps/pthread/pthread.h.orig ++++ linuxthreads/sysdeps/pthread/pthread.h +@@ -31,26 +31,26 @@ + /* Initializers. */ + + #define PTHREAD_MUTEX_INITIALIZER \ +- {0, 0, 0, PTHREAD_MUTEX_TIMED_NP, __LOCK_INITIALIZER} ++ {0, 0, 0, PTHREAD_MUTEX_TIMED_NP, __LOCK_ALT_INITIALIZER} + #ifdef __USE_GNU + # define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \ +- {0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, __LOCK_INITIALIZER} ++ {0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, __LOCK_ALT_INITIALIZER} + # define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \ +- {0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, __LOCK_INITIALIZER} ++ {0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, __LOCK_ALT_INITIALIZER} + # define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \ +- {0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, __LOCK_INITIALIZER} ++ {0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, __LOCK_ALT_INITIALIZER} + #endif + +-#define PTHREAD_COND_INITIALIZER {__LOCK_INITIALIZER, 0, "", 0} ++#define PTHREAD_COND_INITIALIZER {__LOCK_ALT_INITIALIZER, 0, "", 0} + + #if defined __USE_UNIX98 || defined __USE_XOPEN2K + # define PTHREAD_RWLOCK_INITIALIZER \ +- { __LOCK_INITIALIZER, 0, NULL, NULL, NULL, \ ++ { __LOCK_ALT_INITIALIZER, 0, NULL, NULL, NULL, \ + PTHREAD_RWLOCK_DEFAULT_NP, PTHREAD_PROCESS_PRIVATE } + #endif + #ifdef __USE_GNU + # define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \ +- { __LOCK_INITIALIZER, 0, NULL, NULL, NULL, \ ++ { __LOCK_ALT_INITIALIZER, 0, NULL, NULL, NULL, \ + PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, PTHREAD_PROCESS_PRIVATE } + #endif + --- glibc-2.7.orig/debian/patches/hppa/hppalll.diff +++ glibc-2.7/debian/patches/hppa/hppalll.diff @@ -0,0 +1,37 @@ +--- ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h.old 2007-12-05 19:12:32.000000000 +0000 ++++ ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h 2007-12-05 19:19:35.000000000 +0000 +@@ -289,22 +289,20 @@ + #define lll_robust_timedlock(futex, abstime, id, private) \ + __lll_robust_timedlock (&(futex), abstime, id, private) + +-static inline void __attribute__ ((always_inline)) +-__lll_unlock (lll_lock_t *futex, int private) +-{ +- int val = atomic_exchange_rel (futex, 0); +- if (__builtin_expect (val > 1, 0)) +- lll_futex_wake (futex, 1, private); +-} ++#define __lll_unlock(futex, private) \ ++ (void) \ ++ ({ int val = atomic_exchange_rel (futex, 0); \ ++ if (__builtin_expect (val > 1, 0)) \ ++ lll_futex_wake (futex, 1, private); \ ++ }) + #define lll_unlock(futex, private) __lll_unlock(&(futex), private) + +-static inline void __attribute__ ((always_inline)) +-__lll_robust_unlock (int *futex, int private) +-{ +- int val = atomic_exchange_rel (futex, 0); +- if (__builtin_expect (val & FUTEX_WAITERS, 0)) +- lll_futex_wake (futex, 1, private); +-} ++#define __lll_robust_unlock(futex,private) \ ++ (void) \ ++ ({ int val = atomic_exchange_rel (futex, 0); \ ++ if (__builtin_expect (val & FUTEX_WAITERS, 0)) \ ++ lll_futex_wake (futex, 1, private); \ ++ }) + #define lll_robust_unlock(futex, private) \ + __lll_robust_unlock(&(futex), private) + --- glibc-2.7.orig/debian/patches/hppa/local-linuxthreads-gscope.diff +++ glibc-2.7/debian/patches/hppa/local-linuxthreads-gscope.diff @@ -0,0 +1,32 @@ +--- ports/sysdeps/hppa/linuxthreads/tls.h 2006-04-18 23:35:34.000000000 -0600 ++++ ports/sysdeps/hppa/linuxthreads/tls.h 2007-07-28 15:55:51.000000000 -0600 +@@ -100,6 +100,29 @@ + #define THREAD_SETMEM_NC(descr, member, value) \ + ((void) sizeof (descr), THREAD_SELF->member = (value)) + ++/* Get and set the global scope generation counter in struct pthread. */ ++#define THREAD_GSCOPE_FLAG_UNUSED 0 ++#define THREAD_GSCOPE_FLAG_USED 1 ++#define THREAD_GSCOPE_FLAG_WAIT 2 ++#define THREAD_GSCOPE_RESET_FLAG() \ ++ do \ ++ { int __res \ ++ = atomic_exchange_rel (&THREAD_SELF->p_gscope_flag, \ ++ THREAD_GSCOPE_FLAG_UNUSED); \ ++ if (__res == THREAD_GSCOPE_FLAG_WAIT) \ ++ lll_futex_wake (&THREAD_SELF->p_gscope_flag, 1); \ ++ } \ ++ while (0) ++#define THREAD_GSCOPE_SET_FLAG() \ ++ do \ ++ { \ ++ THREAD_SELF->p_gscope_flag = THREAD_GSCOPE_FLAG_USED; \ ++ atomic_write_barrier (); \ ++ } \ ++ while (0) ++#define THREAD_GSCOPE_WAIT() \ ++ GL(dl_wait_lookup_done) () ++ + /* Install the dtv pointer. The pointer passed is to the element with + index -1 which contain the length. */ + # define INSTALL_DTV(tcbp, dtvp) \ --- glibc-2.7.orig/debian/patches/hppa/local-linuxthreads.diff +++ glibc-2.7/debian/patches/hppa/local-linuxthreads.diff @@ -0,0 +1,314 @@ +--- /dev/null ++++ ports/sysdeps/unix/sysv/linux/hppa/linuxthreads/lowlevellock.h +@@ -0,0 +1,298 @@ ++/* Copyright (C) 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _LOWLEVELLOCK_H ++#define _LOWLEVELLOCK_H 1 ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* The hppa only has one atomic read and modify memory operation, ++ load and clear, so hppa uses a kernel helper routine to implement ++ compare_and_exchange. See atomic.h for the userspace calling ++ sequence. */ ++ ++#define FUTEX_WAIT 0 ++#define FUTEX_WAKE 1 ++#define FUTEX_REQUEUE 3 ++#define FUTEX_CMP_REQUEUE 4 ++#define FUTEX_WAKE_OP 5 ++#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1) ++#define FUTEX_LOCK_PI 6 ++#define FUTEX_UNLOCK_PI 7 ++#define FUTEX_TRYLOCK_PI 8 ++ ++/* Initialize locks to zero. */ ++#define LLL_MUTEX_LOCK_INITIALIZER (0) ++ ++ ++/* Type for lock object. */ ++typedef int lll_lock_t; ++ ++ ++#define lll_futex_wait(futexp, val) \ ++ ({ \ ++ INTERNAL_SYSCALL_DECL (__err); \ ++ long int __ret; \ ++ __ret = INTERNAL_SYSCALL (futex, __err, 4, \ ++ (futexp), FUTEX_WAIT, (val), 0); \ ++ __ret; \ ++ }) ++ ++#define lll_futex_timed_wait(futexp, val, timespec) \ ++ ({ \ ++ INTERNAL_SYSCALL_DECL (__err); \ ++ long int __ret; \ ++ __ret = INTERNAL_SYSCALL (futex, __err, 4, \ ++ (futexp), FUTEX_WAIT, (val), (timespec)); \ ++ __ret; \ ++ }) ++ ++#define lll_futex_wake(futexp, nr) \ ++ ({ \ ++ INTERNAL_SYSCALL_DECL (__err); \ ++ long int __ret; \ ++ __ret = INTERNAL_SYSCALL (futex, __err, 4, \ ++ (futexp), FUTEX_WAKE, (nr), 0); \ ++ __ret; \ ++ }) ++ ++#define lll_robust_mutex_dead(futexv) \ ++ do \ ++ { \ ++ int *__futexp = &(futexv); \ ++ atomic_or (__futexp, FUTEX_OWNER_DIED); \ ++ lll_futex_wake (__futexp, 1); \ ++ } \ ++ while (0) ++ ++/* Returns non-zero if error happened, zero if success. */ ++#define lll_futex_requeue(futexp, nr_wake, nr_move, mutex, val) \ ++ ({ \ ++ INTERNAL_SYSCALL_DECL (__err); \ ++ long int __ret; \ ++ __ret = INTERNAL_SYSCALL (futex, __err, 6, \ ++ (futexp), FUTEX_CMP_REQUEUE, (nr_wake), \ ++ (nr_move), (mutex), (val)); \ ++ __ret; \ ++ }) ++ ++/* Returns non-zero if error happened, zero if success. */ ++#define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2) \ ++ ({ \ ++ INTERNAL_SYSCALL_DECL (__err); \ ++ long int __ret; \ ++ __ret = INTERNAL_SYSCALL (futex, __err, 6, \ ++ (futexp), FUTEX_WAKE_OP, (nr_wake), \ ++ (nr_wake2), (futexp2), \ ++ FUTEX_OP_CLEAR_WAKE_IF_GT_ONE); \ ++ __ret; \ ++ }) ++ ++static inline int __attribute__((always_inline)) ++__lll_mutex_trylock(lll_lock_t *futex) ++{ ++ return atomic_compare_and_exchange_val_acq (futex, 1, 0) != 0; ++} ++#define lll_mutex_trylock(lock) __lll_mutex_trylock (&(lock)) ++ ++static inline int __attribute__((always_inline)) ++__lll_robust_mutex_trylock(int *futex, int id) ++{ ++ return atomic_compare_and_exchange_val_acq (futex, id, 0) != 0; ++} ++#define lll_robust_mutex_trylock(lock, id) \ ++ __lll_robust_mutex_trylock (&(lock), id) ++ ++ ++static inline int __attribute__((always_inline)) ++__lll_mutex_cond_trylock(lll_lock_t *futex) ++{ ++ return atomic_compare_and_exchange_val_acq (futex, 2, 0) != 0; ++} ++#define lll_mutex_cond_trylock(lock) __lll_mutex_cond_trylock (&(lock)) ++ ++ ++extern void __lll_lock_wait (lll_lock_t *futex) attribute_hidden; ++ ++static inline void __attribute__((always_inline)) ++__lll_mutex_lock(lll_lock_t *futex) ++{ ++ if (atomic_compare_and_exchange_bool_acq (futex, 1, 0) != 0) ++ __lll_lock_wait (futex); ++} ++#define lll_mutex_lock(futex) __lll_mutex_lock (&(futex)) ++ ++extern int __lll_robust_lock_wait (int *futex) attribute_hidden; ++ ++static inline int __attribute__ ((always_inline)) ++__lll_robust_mutex_lock (int *futex, int id) ++{ ++ int result = 0; ++ if (atomic_compare_and_exchange_bool_acq (futex, id, 0) != 0) ++ result = __lll_robust_lock_wait (futex); ++ return result; ++} ++#define lll_robust_mutex_lock(futex, id) \ ++ __lll_robust_mutex_lock (&(futex), id) ++ ++static inline void __attribute__ ((always_inline)) ++__lll_mutex_cond_lock (lll_lock_t *futex) ++{ ++ if (atomic_compare_and_exchange_bool_acq (futex, 2, 0) != 0) ++ __lll_lock_wait (futex); ++} ++#define lll_mutex_cond_lock(futex) __lll_mutex_cond_lock (&(futex)) ++ ++ ++#define lll_robust_mutex_cond_lock(futex, id) \ ++ __lll_robust_mutex_lock (&(futex), (id) | FUTEX_WAITERS) ++ ++ ++extern int __lll_timedlock_wait (lll_lock_t *futex, const struct timespec *) ++ attribute_hidden; ++extern int __lll_robust_timedlock_wait (int *futex, const struct timespec *) ++ attribute_hidden; ++ ++static inline int __attribute__ ((always_inline)) ++__lll_mutex_timedlock (lll_lock_t *futex, const struct timespec *abstime) ++{ ++ int result = 0; ++ if (atomic_compare_and_exchange_bool_acq (futex, 1, 0) != 0) ++ result = __lll_timedlock_wait (futex, abstime); ++ return result; ++} ++#define lll_mutex_timedlock(futex, abstime) \ ++ __lll_mutex_timedlock (&(futex), abstime) ++ ++static inline int __attribute__ ((always_inline)) ++__lll_robust_mutex_timedlock (int *futex, const struct timespec *abstime, ++ int id) ++{ ++ int result = 0; ++ if (atomic_compare_and_exchange_bool_acq (futex, id, 0) != 0) ++ result = __lll_robust_timedlock_wait (futex, abstime); ++ return result; ++} ++#define lll_robust_mutex_timedlock(futex, abstime, id) \ ++ __lll_robust_mutex_timedlock (&(futex), abstime, id) ++ ++ ++static inline void __attribute__ ((always_inline)) ++__lll_mutex_unlock (lll_lock_t *futex) ++{ ++ int val = atomic_exchange_rel (futex, 0); ++ if (__builtin_expect (val > 1, 0)) ++ lll_futex_wake (futex, 1); ++} ++#define lll_mutex_unlock(futex) __lll_mutex_unlock(&(futex)) ++ ++ ++static inline void __attribute__ ((always_inline)) ++__lll_robust_mutex_unlock (int *futex, int mask) ++{ ++ int val = atomic_exchange_rel (futex, 0); ++ if (__builtin_expect (val & mask, 0)) ++ lll_futex_wake (futex, 1); ++} ++#define lll_robust_mutex_unlock(futex) \ ++ __lll_robust_mutex_unlock(&(futex), FUTEX_WAITERS) ++ ++ ++static inline void __attribute__ ((always_inline)) ++__lll_mutex_unlock_force (lll_lock_t *futex) ++{ ++ (void) atomic_exchange_rel (futex, 0); ++ lll_futex_wake (futex, 1); ++} ++#define lll_mutex_unlock_force(futex) __lll_mutex_unlock_force(&(futex)) ++ ++#define lll_mutex_islocked(futex) \ ++ (futex != 0) ++ ++/* Our internal lock implementation is identical to the binary-compatible ++ mutex implementation. */ ++ ++#define LLL_LOCK_INITIALIZER (0) ++#define LLL_LOCK_INITIALIZER_CONST (0) ++#define LLL_LOCK_INITIALIZER_LOCKED (1) ++ ++ ++#define THREAD_INIT_LOCK(PD, LOCK) \ ++ (PD)->LOCK = LLL_LOCK_INITIALIZER ++ ++extern int lll_unlock_wake_cb (lll_lock_t *__futex) attribute_hidden; ++ ++/* The states of a lock are: ++ 0 - untaken ++ 1 - taken by one user ++ >1 - taken by more users */ ++ ++#define lll_trylock(lock) lll_mutex_trylock (lock) ++#define lll_lock(lock) lll_mutex_lock (lock) ++#define lll_unlock(lock) lll_mutex_unlock (lock) ++#define lll_islocked(lock) lll_mutex_islocked (lock) ++ ++/* The kernel notifies a process which uses CLONE_CLEARTID via futex ++ wakeup when the clone terminates. The memory location contains the ++ thread ID while the clone is running and is reset to zero ++ afterwards. */ ++#define lll_wait_tid(tid) \ ++ do { \ ++ __typeof (tid) __tid; \ ++ while ((__tid = (tid)) != 0) \ ++ lll_futex_wait (&(tid), __tid); \ ++ } while (0) ++ ++extern int __lll_timedwait_tid (int *, const struct timespec *) ++ attribute_hidden; ++ ++#define lll_timedwait_tid(tid, abstime) \ ++ ({ \ ++ int __res = 0; \ ++ if ((tid) != 0) \ ++ __res = __lll_timedwait_tid (&(tid), (abstime)); \ ++ __res; \ ++ }) ++ ++ ++/* Conditional variable handling. */ ++ ++extern void __lll_cond_wait (pthread_cond_t *cond) ++ attribute_hidden; ++extern int __lll_cond_timedwait (pthread_cond_t *cond, ++ const struct timespec *abstime) ++ attribute_hidden; ++extern void __lll_cond_wake (pthread_cond_t *cond) ++ attribute_hidden; ++extern void __lll_cond_broadcast (pthread_cond_t *cond) ++ attribute_hidden; ++ ++#define lll_cond_wait(cond) \ ++ __lll_cond_wait (cond) ++#define lll_cond_timedwait(cond, abstime) \ ++ __lll_cond_timedwait (cond, abstime) ++#define lll_cond_wake(cond) \ ++ __lll_cond_wake (cond) ++#define lll_cond_broadcast(cond) \ ++ __lll_cond_broadcast (cond) ++ ++#endif /* lowlevellock.h */ +--- ports/sysdeps/unix/sysv/linux/hppa/linuxthreads/sysdep-cancel.h.orig ++++ ports/sysdeps/unix/sysv/linux/hppa/linuxthreads/sysdep-cancel.h +@@ -240,3 +240,10 @@ + + #endif + /* !defined NOT_IN_libc || defined IS_IN_libpthread */ ++ ++#ifndef __ASSEMBLER__ ++# define RTLD_SINGLE_THREAD_P \ ++ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ ++ p_multiple_threads) == 0, 1) ++#endif ++ --- glibc-2.7.orig/debian/patches/hppa/submitted-pie.diff +++ glibc-2.7/debian/patches/hppa/submitted-pie.diff @@ -0,0 +1,25 @@ +--- glibc-2.6.orig/ports/sysdeps/hppa/elf/start.S ++++ glibc-2.6/ports/sysdeps/hppa/elf/start.S +@@ -96,16 +96,16 @@ + + #if SHARED + /* load main (1st argument) */ +- addil LR'.Lpmain, %r19 +- ldw RR'.Lpmain(%r1), %r26 ++ addil LT'.Lpmain, %r19 ++ ldw RT'.Lpmain(%r1), %r26 + ldw 0(%r26),%r26 + /* void (*init) (void) (4th argument) */ +- addil LR'.Lp__libc_csu_init, %r19 +- ldw RR'.Lp__libc_csu_init(%r1), %r23 ++ addil LT'.Lp__libc_csu_init, %r19 ++ ldw RT'.Lp__libc_csu_init(%r1), %r23 + ldw 0(%r23), %r23 + /* void (*fini) (void) (5th argument) */ +- addil LR'.Lp__libc_csu_fini, %r19 +- ldw RR'.Lp__libc_csu_fini(%r1), %r22 ++ addil LT'.Lp__libc_csu_fini, %r19 ++ ldw RT'.Lp__libc_csu_fini(%r1), %r22 + ldw 0(%r22), %r22 + #else + /* load main (1st argument) */ --- glibc-2.7.orig/debian/patches/hppa/submitted-atomic_h.diff +++ glibc-2.7/debian/patches/hppa/submitted-atomic_h.diff @@ -0,0 +1,38 @@ +2007-05-22 Aurelien Jarno + + * sysdeps/unix/sysv/linux/hppa/bits/atomic.h: check for -11 + (-EAGAIN) instead of 11. Loop again when the kernel returns + error -45 (-EDEADLOCK) to workaround a kernel bug (debugging + code enabled). + +--- ports/sysdeps/unix/sysv/linux/hppa/bits/atomic.h.orig ++++ ports/sysdeps/unix/sysv/linux/hppa/bits/atomic.h +@@ -56,10 +56,14 @@ + #define LWS_CAS "0" + /* Note r31 is the link register */ + #define LWS_CLOBBER "r1", "r26", "r25", "r24", "r23", "r22", "r21", "r20", "r28", "r31", "memory" +-#define ASM_EAGAIN "11" + + #if __ASSUME_LWS_CAS +-/* The only basic operation needed is compare and exchange. */ ++/* The only basic operation needed is compare and exchange. ++ -11 corresponds to -EAGAIN, and -45 to -EDEADLOCK. The constants ++ must stay the same to avoid breaking backwards compatibility. ++ ++ The check for -EDEADLOCK workarounds a kernel bug (debugging code ++ enabled by default). */ + # define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \ + ({ \ + volatile int lws_errno = EFAULT; \ +@@ -71,7 +75,10 @@ + "copy %5, %%r24 \n\t" \ + "ble " LWS "(%%sr2, %%r0) \n\t" \ + "ldi " LWS_CAS ", %%r20 \n\t" \ +- "cmpib,=,n " ASM_EAGAIN ",%%r21,0b \n\t" \ ++ "cmpib,=,n -11,%%r21,0b \n\t" \ ++ "nop \n\t" \ ++ "ldi -45, %%r24 \n\t" \ ++ "cmpb,=,n %%r24,%%r21,0b \n\t" \ + "nop \n\t" \ + "stw %%r28, %0 \n\t" \ + "sub %%r0, %%r21, %%r21 \n\t" \ --- glibc-2.7.orig/debian/patches/hppa/local-inlining.diff +++ glibc-2.7/debian/patches/hppa/local-inlining.diff @@ -0,0 +1,14 @@ +Increase the maximal overall growth of the compilation unit caused +by inlining for dl-reloc.c on hppa. This remove some warnings and +strangely it reduces the size of the final binary. + +--- ports/sysdeps/hppa/Makefile.orig ++++ ports/sysdeps/hppa/Makefile +@@ -24,6 +24,7 @@ + + ifeq ($(subdir),elf) + CFLAGS-rtld.c += -mdisable-fpregs ++CFLAGS-dl-reloc.c += --param inline-unit-growth=100 + sysdep-dl-routines += dl-symaddr dl-fptr + sysdep_routines += $(sysdep-dl-routines) + sysdep-rtld-routines += $(sysdep-dl-routines) --- glibc-2.7.orig/debian/patches/hppa/submitted-nptl-carlos.diff +++ glibc-2.7/debian/patches/hppa/submitted-nptl-carlos.diff @@ -0,0 +1,237 @@ +--- elf/rtld.c.orig ++++ elf/rtld.c +@@ -379,14 +379,14 @@ + know it is available. We do not have to clear the memory if we + do not have to use the temporary bootstrap_map. Global variables + are initialized to zero by default. */ +-#ifndef DONT_USE_BOOTSTRAP_MAP ++#if !defined DONT_USE_BOOTSTRAP_MAP + # ifdef HAVE_BUILTIN_MEMSET + __builtin_memset (bootstrap_map.l_info, '\0', sizeof (bootstrap_map.l_info)); + # else +- for (size_t cnt = 0; +- cnt < sizeof (bootstrap_map.l_info) / sizeof (bootstrap_map.l_info[0]); +- ++cnt) +- bootstrap_map.l_info[cnt] = 0; ++ /* Clear the whole bootstrap_map structure */ ++ for (char *cnt = (char *)&(bootstrap_map); ++ cnt < ((char *)&(bootstrap_map) + sizeof (bootstrap_map)); ++ *cnt++ = '\0'); + # endif + # if USE___THREAD + bootstrap_map.l_tls_modid = 0; +--- include/atomic.h.orig ++++ include/atomic.h +@@ -174,7 +174,7 @@ + __typeof (*(mem)) __atg5_value = (newvalue); \ + \ + do \ +- __atg5_oldval = *__atg5_memp; \ ++ __atg5_oldval = *(volatile __typeof (mem))__atg5_memp; \ + while (__builtin_expect \ + (atomic_compare_and_exchange_bool_acq (__atg5_memp, __atg5_value, \ + __atg5_oldval), 0)); \ +@@ -195,7 +195,7 @@ + __typeof (*(mem)) __atg6_value = (value); \ + \ + do \ +- __atg6_oldval = *__atg6_memp; \ ++ __atg6_oldval = *(volatile __typeof (mem))__atg6_memp; \ + while (__builtin_expect \ + (atomic_compare_and_exchange_bool_acq (__atg6_memp, \ + __atg6_oldval \ +@@ -213,7 +213,7 @@ + __typeof (*(mem)) __atg7_value = (value); \ + \ + do \ +- __atg7_oldv = *__atg7_memp; \ ++ __atg7_oldv = *(volatile __typeof (mem))__atg7_memp; \ + while (__builtin_expect \ + (catomic_compare_and_exchange_bool_acq (__atg7_memp, \ + __atg7_oldv \ +@@ -231,7 +231,7 @@ + __typeof (mem) __atg8_memp = (mem); \ + __typeof (*(mem)) __atg8_value = (value); \ + do { \ +- __atg8_oldval = *__atg8_memp; \ ++ __atg8_oldval = *(volatile __typeof (mem))__atg8_memp; \ + if (__atg8_oldval >= __atg8_value) \ + break; \ + } while (__builtin_expect \ +@@ -248,7 +248,7 @@ + __typeof (mem) __atg9_memp = (mem); \ + __typeof (*(mem)) __atg9_value = (value); \ + do { \ +- __atg9_oldv = *__atg9_memp; \ ++ __atg9_oldv = *(volatile __typeof (mem))__atg9_memp; \ + if (__atg9_oldv >= __atg9_value) \ + break; \ + } while (__builtin_expect \ +@@ -266,7 +266,7 @@ + __typeof (mem) __atg10_memp = (mem); \ + __typeof (*(mem)) __atg10_value = (value); \ + do { \ +- __atg10_oldval = *__atg10_memp; \ ++ __atg10_oldval = *(volatile __typeof (mem))__atg10_memp; \ + if (__atg10_oldval <= __atg10_value) \ + break; \ + } while (__builtin_expect \ +@@ -350,7 +350,7 @@ + \ + do \ + { \ +- __atg11_oldval = *__atg11_memp; \ ++ __atg11_oldval = *(volatile __typeof (mem))__atg11_memp; \ + if (__builtin_expect (__atg11_oldval <= 0, 0)) \ + break; \ + } \ +@@ -389,7 +389,7 @@ + __typeof (*(mem)) __atg14_mask = ((__typeof (*(mem))) 1 << (bit)); \ + \ + do \ +- __atg14_old = (*__atg14_memp); \ ++ __atg14_old = (*(volatile __typeof (mem))__atg14_memp); \ + while (__builtin_expect \ + (atomic_compare_and_exchange_bool_acq (__atg14_memp, \ + __atg14_old | __atg14_mask,\ +@@ -407,7 +407,7 @@ + __typeof (*(mem)) __atg15_mask = (mask); \ + \ + do \ +- __atg15_old = (*__atg15_memp); \ ++ __atg15_old = (*(volatile __typeof (mem))__atg15_memp); \ + while (__builtin_expect \ + (atomic_compare_and_exchange_bool_acq (__atg15_memp, \ + __atg15_old & __atg15_mask, \ +@@ -423,7 +423,7 @@ + __typeof (*(mem)) __atg16_mask = (mask); \ + \ + do \ +- __atg16_old = (*__atg16_memp); \ ++ __atg16_old = (*(volatile __typeof (mem))__atg16_memp); \ + while (__builtin_expect \ + (atomic_compare_and_exchange_bool_acq (__atg16_memp, \ + __atg16_old & __atg16_mask,\ +@@ -441,7 +441,7 @@ + __typeof (*(mem)) __atg17_mask = (mask); \ + \ + do \ +- __atg17_old = (*__atg17_memp); \ ++ __atg17_old = (*(volatile __typeof (mem))__atg17_memp); \ + while (__builtin_expect \ + (atomic_compare_and_exchange_bool_acq (__atg17_memp, \ + __atg17_old | __atg17_mask, \ +@@ -457,7 +457,7 @@ + __typeof (*(mem)) __atg18_mask = (mask); \ + \ + do \ +- __atg18_old = (*__atg18_memp); \ ++ __atg18_old = (*(volatile __typeof (mem))__atg18_memp); \ + while (__builtin_expect \ + (catomic_compare_and_exchange_bool_acq (__atg18_memp, \ + __atg18_old | __atg18_mask,\ +@@ -473,7 +473,7 @@ + __typeof (*(mem)) __atg19_mask = (mask); \ + \ + do \ +- __atg19_old = (*__atg19_memp); \ ++ __atg19_old = (*(volatile __typeof (mem))__atg19_memp); \ + while (__builtin_expect \ + (atomic_compare_and_exchange_bool_acq (__atg19_memp, \ + __atg19_old | __atg19_mask,\ +--- nptl/Makefile.orig ++++ nptl/Makefile +@@ -263,9 +263,9 @@ + # Files which must not be linked with libpthread. + tests-nolibpthread = tst-unload + +-# This sets the stack resource limit to 1023kb, which is not a multiple +-# of the page size since every architecture's page size is > 1k. +-tst-oddstacklimit-ENV = ; ulimit -s 1023; ++# This sets the stack resource limit to 8193kb, which is not a multiple ++# of the page size since every architecture's page size is 4096 bytes. ++tst-oddstacklimit-ENV = ; ulimit -s 8193; + + distribute = eintr.c tst-cleanup4aux.c + +@@ -424,6 +424,35 @@ + CFLAGS-tst-cleanupx4.c += -fexceptions + CFLAGS-tst-oncex3.c += -fexceptions + CFLAGS-tst-oncex4.c += -fexceptions ++ ++ldflags-libgcc_s = --as-needed -lgcc_s --no-as-needed ++LDFLAGS-tst-cancelx2 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx3 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx4 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx5 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx6 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx7 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx8 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx9 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx10 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx11 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx12 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx13 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx14 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx15 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx16 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx17 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx18 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx20 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cancelx21 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cleanupx0 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cleanupx1 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cleanupx2 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cleanupx3 += $(ldflags-libgcc_s) ++LDFLAGS-tst-cleanupx4 += $(ldflags-libgcc_s) ++LDFLAGS-tst-oncex3 += $(ldflags-libgcc_s) ++LDFLAGS-tst-oncex4 += $(ldflags-libgcc_s) ++ + CFLAGS-tst-align.c += $(stack-align-test-flags) + CFLAGS-tst-align3.c += $(stack-align-test-flags) + CFLAGS-tst-initializers1.c = -W -Wall -Werror +--- nptl.orig/pthread_barrier_wait.c ++++ nptl/pthread_barrier_wait.c +@@ -64,7 +64,7 @@ + do + lll_futex_wait (&ibarrier->curr_event, event, + ibarrier->private ^ FUTEX_PRIVATE_FLAG); +- while (event == ibarrier->curr_event); ++ while (event == *(volatile unsigned int *)&ibarrier->curr_event); + } + + /* Make sure the init_count is stored locally or in a register. */ +--- nptl/sysdeps/pthread/Makefile.orig ++++ nptl/sysdeps/pthread/Makefile +@@ -41,7 +41,9 @@ + + ifeq ($(have-forced-unwind),yes) + tests += tst-mqueue8x ++ldflags-libgcc_s = --as-needed -lgcc_s --no-as-needed + CFLAGS-tst-mqueue8x.c += -fexceptions ++LDFLAGS-tst-mqueue8x += $(ldflags-libgcc_s) + endif + endif + +--- stdio-common/Makefile.orig ++++ stdio-common/Makefile +@@ -79,7 +79,7 @@ + $(SHELL) -e tst-printf.sh $(common-objpfx) '$(run-program-prefix)' + endif + +-CFLAGS-vfprintf.c = -Wno-uninitialized ++CFLAGS-vfprintf.c = -Wno-uninitialized -fno-delayed-branch + CFLAGS-vfwprintf.c = -Wno-uninitialized + CFLAGS-tst-printf.c = -Wno-format + CFLAGS-tstdiomisc.c = -Wno-format +--- sunrpc/clnt_udp.c.orig ++++ sunrpc/clnt_udp.c +@@ -419,7 +419,7 @@ + while (inlen < 0 && errno == EINTR); + if (inlen < 0) + { +- if (errno == EWOULDBLOCK) ++ if (errno == EWOULDBLOCK || errno == EAGAIN) + continue; + cu->cu_error.re_errno = errno; + return (cu->cu_error.re_status = RPC_CANTRECV); --- glibc-2.7.orig/debian/patches/hppa/submitted-fadvise64_64.diff +++ glibc-2.7/debian/patches/hppa/submitted-fadvise64_64.diff @@ -0,0 +1,27 @@ +Index: sysdeps/unix/sysv/linux/posix_fadvise.c +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/posix_fadvise.c,v +retrieving revision 1.3 +diff -u -p -r1.3 posix_fadvise.c +--- sysdeps/unix/sysv/linux/posix_fadvise.c 17 Aug 2003 00:36:22 -0000 1.3 ++++ sysdeps/unix/sysv/linux/posix_fadvise.c 28 Jul 2007 21:19:14 -0000 +@@ -35,6 +35,19 @@ posix_fadvise (int fd, off_t offset, off + return INTERNAL_SYSCALL_ERRNO (ret, err); + return 0; + #else ++# ifdef __NR_fadvise64_64 ++ INTERNAL_SYSCALL_DECL (err); ++ int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, ++ __LONG_LONG_PAIR ((long) (offset >> 31), ++ (long) offset), ++ __LONG_LONG_PAIR ((long) (len >> 31), ++ (long) len), ++ advise); ++ if (INTERNAL_SYSCALL_ERROR_P (ret, err)) ++ return INTERNAL_SYSCALL_ERRNO (ret, err); ++ return 0; ++# else + return ENOSYS; ++# endif + #endif + } --- glibc-2.7.orig/debian/patches/kfreebsd/local-undef-glibc.diff +++ glibc-2.7/debian/patches/kfreebsd/local-undef-glibc.diff @@ -0,0 +1,14 @@ +Description: #undef __GLIBC__ before defining it +Author: rmh +Upstream status: REJECTED. DO NOT SUBMIT. (send to debian instead) + +--- include/features.h.orig 2007-02-04 13:41:37.000000000 +0100 ++++ include/features.h 2007-02-04 13:42:56.000000000 +0100 +@@ -303,6 +303,7 @@ + + /* Major and minor version number of the GNU C library package. Use + these macros to test for features in specific releases. */ ++#undef __GLIBC__ + #define __GLIBC__ 2 + #define __GLIBC_MINOR__ 5 + --- glibc-2.7.orig/debian/patches/kfreebsd/local-pthread_at_fork.diff +++ glibc-2.7/debian/patches/kfreebsd/local-pthread_at_fork.diff @@ -0,0 +1,11 @@ +--- linuxthreads/old_pthread_atfork.c~ 2005-12-22 13:26:01.000000000 +0000 ++++ linuxthreads/old_pthread_atfork.c 2005-12-22 13:26:01.000000000 +0000 +@@ -19,7 +19,7 @@ + + #include + +-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_3) ++#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_3_2) + # define __pthread_atfork __dyn_pthread_atfork + # include "pthread_atfork.c" + # undef __pthread_atfork --- glibc-2.7.orig/debian/patches/kfreebsd/local-sys_queue_h.diff +++ glibc-2.7/debian/patches/kfreebsd/local-sys_queue_h.diff @@ -0,0 +1,896 @@ +--- misc/sys/queue.h.orig 2006-05-10 16:53:51.000000000 +0200 ++++ misc/sys/queue.h 2006-10-13 13:05:17.000000000 +0200 +@@ -27,24 +27,38 @@ + * SUCH DAMAGE. + * + * @(#)queue.h 8.5 (Berkeley) 8/20/94 ++ * $FreeBSD: src/sys/sys/queue.h,v 1.58 2004/04/07 04:19:49 imp Exp $ + */ + +-#ifndef _SYS_QUEUE_H_ ++#ifndef _SYS_QUEUE_H_ + #define _SYS_QUEUE_H_ + ++#include ++ + /* +- * This file defines five types of data structures: singly-linked lists, +- * lists, simple queues, tail queues, and circular queues. ++ * This file defines four types of data structures: singly-linked lists, ++ * singly-linked tail queues, lists and tail queues. ++ * ++ * A singly-linked list is headed by a single forward pointer. The elements ++ * are singly linked for minimum space and pointer manipulation overhead at ++ * the expense of O(n) removal for arbitrary elements. New elements can be ++ * added to the list after an existing element or at the head of the list. ++ * Elements being removed from the head of the list should use the explicit ++ * macro for this purpose for optimum efficiency. A singly-linked list may ++ * only be traversed in the forward direction. Singly-linked lists are ideal ++ * for applications with large datasets and few or no removals or for ++ * implementing a LIFO queue. + * +- * A singly-linked list is headed by a single forward pointer. The +- * elements are singly linked for minimum space and pointer manipulation +- * overhead at the expense of O(n) removal for arbitrary elements. New +- * elements can be added to the list after an existing element or at the +- * head of the list. Elements being removed from the head of the list +- * should use the explicit macro for this purpose for optimum +- * efficiency. A singly-linked list may only be traversed in the forward +- * direction. Singly-linked lists are ideal for applications with large +- * datasets and few or no removals or for implementing a LIFO queue. ++ * A singly-linked tail queue is headed by a pair of pointers, one to the ++ * head of the list and the other to the tail of the list. The elements are ++ * singly linked for minimum space and pointer manipulation overhead at the ++ * expense of O(n) removal for arbitrary elements. New elements can be added ++ * to the list after an existing element, at the head of the list, or at the ++ * end of the list. Elements being removed from the head of the tail queue ++ * should use the explicit macro for this purpose for optimum efficiency. ++ * A singly-linked tail queue may only be traversed in the forward direction. ++ * Singly-linked tail queues are ideal for applications with large datasets ++ * and few or no removals or for implementing a FIFO queue. + * + * A list is headed by a single forward pointer (or an array of forward + * pointers for a hash table header). The elements are doubly linked +@@ -53,13 +67,6 @@ + * or after an existing element or at the head of the list. A list + * may only be traversed in the forward direction. + * +- * A simple queue is headed by a pair of pointers, one the head of the +- * list and the other to the tail of the list. The elements are singly +- * linked to save space, so elements can only be removed from the +- * head of the list. New elements can be added to the list after +- * an existing element, at the head of the list, or at the end of the +- * list. A simple queue may only be traversed in the forward direction. +- * + * A tail queue is headed by a pair of pointers, one to the head of the + * list and the other to the tail of the list. The elements are doubly + * linked so that an arbitrary element can be removed without a need to +@@ -67,85 +74,68 @@ + * after an existing element, at the head of the list, or at the end of + * the list. A tail queue may be traversed in either direction. + * +- * A circle queue is headed by a pair of pointers, one to the head of the +- * list and the other to the tail of the list. The elements are doubly +- * linked so that an arbitrary element can be removed without a need to +- * traverse the list. New elements can be added to the list before or after +- * an existing element, at the head of the list, or at the end of the list. +- * A circle queue may be traversed in either direction, but has a more +- * complex end of list detection. +- * + * For details on the use of these macros, see the queue(3) manual page. ++ * ++ * ++ * SLIST LIST STAILQ TAILQ ++ * _HEAD + + + + ++ * _HEAD_INITIALIZER + + + + ++ * _ENTRY + + + + ++ * _INIT + + + + ++ * _EMPTY + + + + ++ * _FIRST + + + + ++ * _NEXT + + + + ++ * _PREV - - - + ++ * _LAST - - + + ++ * _FOREACH + + + + ++ * _FOREACH_SAFE + + + + ++ * _FOREACH_REVERSE - - - + ++ * _FOREACH_REVERSE_SAFE - - - + ++ * _INSERT_HEAD + + + + ++ * _INSERT_BEFORE - + - + ++ * _INSERT_AFTER + + + + ++ * _INSERT_TAIL - - + + ++ * _CONCAT - - + + ++ * _REMOVE_HEAD + - + - ++ * _REMOVE + + + + ++ * + */ ++#define QUEUE_MACRO_DEBUG 0 ++#if QUEUE_MACRO_DEBUG ++/* Store the last 2 places the queue element or head was altered */ ++struct qm_trace { ++ char * lastfile; ++ int lastline; ++ char * prevfile; ++ int prevline; ++}; ++ ++#define TRACEBUF struct qm_trace trace; ++#define TRASHIT(x) do {(x) = (void *)-1;} while (0) ++ ++#define QMD_TRACE_HEAD(head) do { \ ++ (head)->trace.prevline = (head)->trace.lastline; \ ++ (head)->trace.prevfile = (head)->trace.lastfile; \ ++ (head)->trace.lastline = __LINE__; \ ++ (head)->trace.lastfile = __FILE__; \ ++} while (0) ++ ++#define QMD_TRACE_ELEM(elem) do { \ ++ (elem)->trace.prevline = (elem)->trace.lastline; \ ++ (elem)->trace.prevfile = (elem)->trace.lastfile; \ ++ (elem)->trace.lastline = __LINE__; \ ++ (elem)->trace.lastfile = __FILE__; \ ++} while (0) ++ ++#else ++#define QMD_TRACE_ELEM(elem) ++#define QMD_TRACE_HEAD(head) ++#define TRACEBUF ++#define TRASHIT(x) ++#endif /* QUEUE_MACRO_DEBUG */ + + /* +- * List definitions. +- */ +-#define LIST_HEAD(name, type) \ +-struct name { \ +- struct type *lh_first; /* first element */ \ +-} +- +-#define LIST_HEAD_INITIALIZER(head) \ +- { NULL } +- +-#define LIST_ENTRY(type) \ +-struct { \ +- struct type *le_next; /* next element */ \ +- struct type **le_prev; /* address of previous next element */ \ +-} +- +-/* +- * List functions. +- */ +-#define LIST_INIT(head) do { \ +- (head)->lh_first = NULL; \ +-} while (/*CONSTCOND*/0) +- +-#define LIST_INSERT_AFTER(listelm, elm, field) do { \ +- if (((elm)->field.le_next = (listelm)->field.le_next) != NULL) \ +- (listelm)->field.le_next->field.le_prev = \ +- &(elm)->field.le_next; \ +- (listelm)->field.le_next = (elm); \ +- (elm)->field.le_prev = &(listelm)->field.le_next; \ +-} while (/*CONSTCOND*/0) +- +-#define LIST_INSERT_BEFORE(listelm, elm, field) do { \ +- (elm)->field.le_prev = (listelm)->field.le_prev; \ +- (elm)->field.le_next = (listelm); \ +- *(listelm)->field.le_prev = (elm); \ +- (listelm)->field.le_prev = &(elm)->field.le_next; \ +-} while (/*CONSTCOND*/0) +- +-#define LIST_INSERT_HEAD(head, elm, field) do { \ +- if (((elm)->field.le_next = (head)->lh_first) != NULL) \ +- (head)->lh_first->field.le_prev = &(elm)->field.le_next;\ +- (head)->lh_first = (elm); \ +- (elm)->field.le_prev = &(head)->lh_first; \ +-} while (/*CONSTCOND*/0) +- +-#define LIST_REMOVE(elm, field) do { \ +- if ((elm)->field.le_next != NULL) \ +- (elm)->field.le_next->field.le_prev = \ +- (elm)->field.le_prev; \ +- *(elm)->field.le_prev = (elm)->field.le_next; \ +-} while (/*CONSTCOND*/0) +- +-#define LIST_FOREACH(var, head, field) \ +- for ((var) = ((head)->lh_first); \ +- (var); \ +- (var) = ((var)->field.le_next)) +- +-/* +- * List access methods. +- */ +-#define LIST_EMPTY(head) ((head)->lh_first == NULL) +-#define LIST_FIRST(head) ((head)->lh_first) +-#define LIST_NEXT(elm, field) ((elm)->field.le_next) +- +- +-/* +- * Singly-linked List definitions. ++ * Singly-linked List declarations. + */ + #define SLIST_HEAD(name, type) \ + struct name { \ +@@ -163,55 +153,65 @@ + /* + * Singly-linked List functions. + */ ++#define SLIST_EMPTY(head) ((head)->slh_first == NULL) ++ ++#define SLIST_FIRST(head) ((head)->slh_first) ++ ++#define SLIST_FOREACH(var, head, field) \ ++ for ((var) = SLIST_FIRST((head)); \ ++ (var); \ ++ (var) = SLIST_NEXT((var), field)) ++ ++#define SLIST_FOREACH_SAFE(var, head, field, tvar) \ ++ for ((var) = SLIST_FIRST((head)); \ ++ (var) && ((tvar) = SLIST_NEXT((var), field), 1); \ ++ (var) = (tvar)) ++ ++#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \ ++ for ((varp) = &SLIST_FIRST((head)); \ ++ ((var) = *(varp)) != NULL; \ ++ (varp) = &SLIST_NEXT((var), field)) ++ + #define SLIST_INIT(head) do { \ +- (head)->slh_first = NULL; \ +-} while (/*CONSTCOND*/0) ++ SLIST_FIRST((head)) = NULL; \ ++} while (0) + + #define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ +- (elm)->field.sle_next = (slistelm)->field.sle_next; \ +- (slistelm)->field.sle_next = (elm); \ +-} while (/*CONSTCOND*/0) ++ SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field); \ ++ SLIST_NEXT((slistelm), field) = (elm); \ ++} while (0) + + #define SLIST_INSERT_HEAD(head, elm, field) do { \ +- (elm)->field.sle_next = (head)->slh_first; \ +- (head)->slh_first = (elm); \ +-} while (/*CONSTCOND*/0) ++ SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \ ++ SLIST_FIRST((head)) = (elm); \ ++} while (0) + +-#define SLIST_REMOVE_HEAD(head, field) do { \ +- (head)->slh_first = (head)->slh_first->field.sle_next; \ +-} while (/*CONSTCOND*/0) ++#define SLIST_NEXT(elm, field) ((elm)->field.sle_next) + + #define SLIST_REMOVE(head, elm, type, field) do { \ +- if ((head)->slh_first == (elm)) { \ ++ if (SLIST_FIRST((head)) == (elm)) { \ + SLIST_REMOVE_HEAD((head), field); \ + } \ + else { \ +- struct type *curelm = (head)->slh_first; \ +- while(curelm->field.sle_next != (elm)) \ +- curelm = curelm->field.sle_next; \ +- curelm->field.sle_next = \ +- curelm->field.sle_next->field.sle_next; \ ++ struct type *curelm = SLIST_FIRST((head)); \ ++ while (SLIST_NEXT(curelm, field) != (elm)) \ ++ curelm = SLIST_NEXT(curelm, field); \ ++ SLIST_NEXT(curelm, field) = \ ++ SLIST_NEXT(SLIST_NEXT(curelm, field), field); \ + } \ +-} while (/*CONSTCOND*/0) +- +-#define SLIST_FOREACH(var, head, field) \ +- for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next) +- +-/* +- * Singly-linked List access methods. +- */ +-#define SLIST_EMPTY(head) ((head)->slh_first == NULL) +-#define SLIST_FIRST(head) ((head)->slh_first) +-#define SLIST_NEXT(elm, field) ((elm)->field.sle_next) ++} while (0) + ++#define SLIST_REMOVE_HEAD(head, field) do { \ ++ SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field); \ ++} while (0) + + /* + * Singly-linked Tail queue declarations. + */ +-#define STAILQ_HEAD(name, type) \ ++#define STAILQ_HEAD(name, type) \ + struct name { \ +- struct type *stqh_first; /* first element */ \ +- struct type **stqh_last; /* addr of last next element */ \ ++ struct type *stqh_first;/* first element */ \ ++ struct type **stqh_last;/* addr of last next element */ \ + } + + #define STAILQ_HEAD_INITIALIZER(head) \ +@@ -225,333 +225,329 @@ + /* + * Singly-linked Tail queue functions. + */ ++#define STAILQ_CONCAT(head1, head2) do { \ ++ if (!STAILQ_EMPTY((head2))) { \ ++ *(head1)->stqh_last = (head2)->stqh_first; \ ++ (head1)->stqh_last = (head2)->stqh_last; \ ++ STAILQ_INIT((head2)); \ ++ } \ ++} while (0) ++ ++#define STAILQ_EMPTY(head) ((head)->stqh_first == NULL) ++ ++#define STAILQ_FIRST(head) ((head)->stqh_first) ++ ++#define STAILQ_FOREACH(var, head, field) \ ++ for((var) = STAILQ_FIRST((head)); \ ++ (var); \ ++ (var) = STAILQ_NEXT((var), field)) ++ ++ ++#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \ ++ for ((var) = STAILQ_FIRST((head)); \ ++ (var) && ((tvar) = STAILQ_NEXT((var), field), 1); \ ++ (var) = (tvar)) ++ + #define STAILQ_INIT(head) do { \ +- (head)->stqh_first = NULL; \ +- (head)->stqh_last = &(head)->stqh_first; \ +-} while (/*CONSTCOND*/0) ++ STAILQ_FIRST((head)) = NULL; \ ++ (head)->stqh_last = &STAILQ_FIRST((head)); \ ++} while (0) ++ ++#define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \ ++ if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\ ++ (head)->stqh_last = &STAILQ_NEXT((elm), field); \ ++ STAILQ_NEXT((tqelm), field) = (elm); \ ++} while (0) + + #define STAILQ_INSERT_HEAD(head, elm, field) do { \ +- if (((elm)->field.stqe_next = (head)->stqh_first) == NULL) \ +- (head)->stqh_last = &(elm)->field.stqe_next; \ +- (head)->stqh_first = (elm); \ +-} while (/*CONSTCOND*/0) ++ if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \ ++ (head)->stqh_last = &STAILQ_NEXT((elm), field); \ ++ STAILQ_FIRST((head)) = (elm); \ ++} while (0) + + #define STAILQ_INSERT_TAIL(head, elm, field) do { \ +- (elm)->field.stqe_next = NULL; \ ++ STAILQ_NEXT((elm), field) = NULL; \ + *(head)->stqh_last = (elm); \ +- (head)->stqh_last = &(elm)->field.stqe_next; \ +-} while (/*CONSTCOND*/0) ++ (head)->stqh_last = &STAILQ_NEXT((elm), field); \ ++} while (0) + +-#define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ +- if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\ +- (head)->stqh_last = &(elm)->field.stqe_next; \ +- (listelm)->field.stqe_next = (elm); \ +-} while (/*CONSTCOND*/0) ++#define STAILQ_LAST(head, type, field) \ ++ (STAILQ_EMPTY((head)) ? \ ++ NULL : \ ++ ((struct type *)(void *) \ ++ ((char *)((head)->stqh_last) - __offsetof(struct type, field)))) + +-#define STAILQ_REMOVE_HEAD(head, field) do { \ +- if (((head)->stqh_first = (head)->stqh_first->field.stqe_next) == NULL) \ +- (head)->stqh_last = &(head)->stqh_first; \ +-} while (/*CONSTCOND*/0) ++#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) + + #define STAILQ_REMOVE(head, elm, type, field) do { \ +- if ((head)->stqh_first == (elm)) { \ ++ if (STAILQ_FIRST((head)) == (elm)) { \ + STAILQ_REMOVE_HEAD((head), field); \ +- } else { \ +- struct type *curelm = (head)->stqh_first; \ +- while (curelm->field.stqe_next != (elm)) \ +- curelm = curelm->field.stqe_next; \ +- if ((curelm->field.stqe_next = \ +- curelm->field.stqe_next->field.stqe_next) == NULL) \ +- (head)->stqh_last = &(curelm)->field.stqe_next; \ + } \ +-} while (/*CONSTCOND*/0) +- +-#define STAILQ_FOREACH(var, head, field) \ +- for ((var) = ((head)->stqh_first); \ +- (var); \ +- (var) = ((var)->field.stqe_next)) +- +-/* +- * Singly-linked Tail queue access methods. +- */ +-#define STAILQ_EMPTY(head) ((head)->stqh_first == NULL) +-#define STAILQ_FIRST(head) ((head)->stqh_first) +-#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next) ++ else { \ ++ struct type *curelm = STAILQ_FIRST((head)); \ ++ while (STAILQ_NEXT(curelm, field) != (elm)) \ ++ curelm = STAILQ_NEXT(curelm, field); \ ++ if ((STAILQ_NEXT(curelm, field) = \ ++ STAILQ_NEXT(STAILQ_NEXT(curelm, field), field)) == NULL)\ ++ (head)->stqh_last = &STAILQ_NEXT((curelm), field);\ ++ } \ ++} while (0) + ++#define STAILQ_REMOVE_HEAD(head, field) do { \ ++ if ((STAILQ_FIRST((head)) = \ ++ STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL) \ ++ (head)->stqh_last = &STAILQ_FIRST((head)); \ ++} while (0) ++ ++#define STAILQ_REMOVE_HEAD_UNTIL(head, elm, field) do { \ ++ if ((STAILQ_FIRST((head)) = STAILQ_NEXT((elm), field)) == NULL) \ ++ (head)->stqh_last = &STAILQ_FIRST((head)); \ ++} while (0) + + /* +- * Simple queue definitions. ++ * List declarations. + */ +-#define SIMPLEQ_HEAD(name, type) \ ++#define LIST_HEAD(name, type) \ + struct name { \ +- struct type *sqh_first; /* first element */ \ +- struct type **sqh_last; /* addr of last next element */ \ ++ struct type *lh_first; /* first element */ \ + } + +-#define SIMPLEQ_HEAD_INITIALIZER(head) \ +- { NULL, &(head).sqh_first } ++#define LIST_HEAD_INITIALIZER(head) \ ++ { NULL } + +-#define SIMPLEQ_ENTRY(type) \ ++#define LIST_ENTRY(type) \ + struct { \ +- struct type *sqe_next; /* next element */ \ ++ struct type *le_next; /* next element */ \ ++ struct type **le_prev; /* address of previous next element */ \ + } + + /* +- * Simple queue functions. ++ * List functions. + */ +-#define SIMPLEQ_INIT(head) do { \ +- (head)->sqh_first = NULL; \ +- (head)->sqh_last = &(head)->sqh_first; \ +-} while (/*CONSTCOND*/0) +- +-#define SIMPLEQ_INSERT_HEAD(head, elm, field) do { \ +- if (((elm)->field.sqe_next = (head)->sqh_first) == NULL) \ +- (head)->sqh_last = &(elm)->field.sqe_next; \ +- (head)->sqh_first = (elm); \ +-} while (/*CONSTCOND*/0) +- +-#define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \ +- (elm)->field.sqe_next = NULL; \ +- *(head)->sqh_last = (elm); \ +- (head)->sqh_last = &(elm)->field.sqe_next; \ +-} while (/*CONSTCOND*/0) +- +-#define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ +- if (((elm)->field.sqe_next = (listelm)->field.sqe_next) == NULL)\ +- (head)->sqh_last = &(elm)->field.sqe_next; \ +- (listelm)->field.sqe_next = (elm); \ +-} while (/*CONSTCOND*/0) +- +-#define SIMPLEQ_REMOVE_HEAD(head, field) do { \ +- if (((head)->sqh_first = (head)->sqh_first->field.sqe_next) == NULL) \ +- (head)->sqh_last = &(head)->sqh_first; \ +-} while (/*CONSTCOND*/0) +- +-#define SIMPLEQ_REMOVE(head, elm, type, field) do { \ +- if ((head)->sqh_first == (elm)) { \ +- SIMPLEQ_REMOVE_HEAD((head), field); \ +- } else { \ +- struct type *curelm = (head)->sqh_first; \ +- while (curelm->field.sqe_next != (elm)) \ +- curelm = curelm->field.sqe_next; \ +- if ((curelm->field.sqe_next = \ +- curelm->field.sqe_next->field.sqe_next) == NULL) \ +- (head)->sqh_last = &(curelm)->field.sqe_next; \ +- } \ +-} while (/*CONSTCOND*/0) + +-#define SIMPLEQ_FOREACH(var, head, field) \ +- for ((var) = ((head)->sqh_first); \ +- (var); \ +- (var) = ((var)->field.sqe_next)) ++#define LIST_EMPTY(head) ((head)->lh_first == NULL) + +-/* +- * Simple queue access methods. +- */ +-#define SIMPLEQ_EMPTY(head) ((head)->sqh_first == NULL) +-#define SIMPLEQ_FIRST(head) ((head)->sqh_first) +-#define SIMPLEQ_NEXT(elm, field) ((elm)->field.sqe_next) ++#define LIST_FIRST(head) ((head)->lh_first) ++ ++#define LIST_FOREACH(var, head, field) \ ++ for ((var) = LIST_FIRST((head)); \ ++ (var); \ ++ (var) = LIST_NEXT((var), field)) ++ ++#define LIST_FOREACH_SAFE(var, head, field, tvar) \ ++ for ((var) = LIST_FIRST((head)); \ ++ (var) && ((tvar) = LIST_NEXT((var), field), 1); \ ++ (var) = (tvar)) ++ ++#define LIST_INIT(head) do { \ ++ LIST_FIRST((head)) = NULL; \ ++} while (0) ++ ++#define LIST_INSERT_AFTER(listelm, elm, field) do { \ ++ if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\ ++ LIST_NEXT((listelm), field)->field.le_prev = \ ++ &LIST_NEXT((elm), field); \ ++ LIST_NEXT((listelm), field) = (elm); \ ++ (elm)->field.le_prev = &LIST_NEXT((listelm), field); \ ++} while (0) ++ ++#define LIST_INSERT_BEFORE(listelm, elm, field) do { \ ++ (elm)->field.le_prev = (listelm)->field.le_prev; \ ++ LIST_NEXT((elm), field) = (listelm); \ ++ *(listelm)->field.le_prev = (elm); \ ++ (listelm)->field.le_prev = &LIST_NEXT((elm), field); \ ++} while (0) ++ ++#define LIST_INSERT_HEAD(head, elm, field) do { \ ++ if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL) \ ++ LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\ ++ LIST_FIRST((head)) = (elm); \ ++ (elm)->field.le_prev = &LIST_FIRST((head)); \ ++} while (0) ++ ++#define LIST_NEXT(elm, field) ((elm)->field.le_next) + ++#define LIST_REMOVE(elm, field) do { \ ++ if (LIST_NEXT((elm), field) != NULL) \ ++ LIST_NEXT((elm), field)->field.le_prev = \ ++ (elm)->field.le_prev; \ ++ *(elm)->field.le_prev = LIST_NEXT((elm), field); \ ++} while (0) + + /* +- * Tail queue definitions. ++ * Tail queue declarations. + */ +-#define _TAILQ_HEAD(name, type, qual) \ ++#define TAILQ_HEAD(name, type) \ + struct name { \ +- qual type *tqh_first; /* first element */ \ +- qual type *qual *tqh_last; /* addr of last next element */ \ ++ struct type *tqh_first; /* first element */ \ ++ struct type **tqh_last; /* addr of last next element */ \ ++ TRACEBUF \ + } +-#define TAILQ_HEAD(name, type) _TAILQ_HEAD(name, struct type,) + + #define TAILQ_HEAD_INITIALIZER(head) \ + { NULL, &(head).tqh_first } + +-#define _TAILQ_ENTRY(type, qual) \ ++#define TAILQ_ENTRY(type) \ + struct { \ +- qual type *tqe_next; /* next element */ \ +- qual type *qual *tqe_prev; /* address of previous next element */\ ++ struct type *tqe_next; /* next element */ \ ++ struct type **tqe_prev; /* address of previous next element */ \ ++ TRACEBUF \ + } +-#define TAILQ_ENTRY(type) _TAILQ_ENTRY(struct type,) + + /* + * Tail queue functions. + */ ++#define TAILQ_CONCAT(head1, head2, field) do { \ ++ if (!TAILQ_EMPTY(head2)) { \ ++ *(head1)->tqh_last = (head2)->tqh_first; \ ++ (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \ ++ (head1)->tqh_last = (head2)->tqh_last; \ ++ TAILQ_INIT((head2)); \ ++ QMD_TRACE_HEAD(head1); \ ++ QMD_TRACE_HEAD(head2); \ ++ } \ ++} while (0) ++ ++#define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) ++ ++#define TAILQ_FIRST(head) ((head)->tqh_first) ++ ++#define TAILQ_FOREACH(var, head, field) \ ++ for ((var) = TAILQ_FIRST((head)); \ ++ (var); \ ++ (var) = TAILQ_NEXT((var), field)) ++ ++#define TAILQ_FOREACH_SAFE(var, head, field, tvar) \ ++ for ((var) = TAILQ_FIRST((head)); \ ++ (var) && ((tvar) = TAILQ_NEXT((var), field), 1); \ ++ (var) = (tvar)) ++ ++#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ ++ for ((var) = TAILQ_LAST((head), headname); \ ++ (var); \ ++ (var) = TAILQ_PREV((var), headname, field)) ++ ++#define TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ ++ for ((var) = TAILQ_LAST((head), headname); \ ++ (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1); \ ++ (var) = (tvar)) ++ + #define TAILQ_INIT(head) do { \ +- (head)->tqh_first = NULL; \ +- (head)->tqh_last = &(head)->tqh_first; \ +-} while (/*CONSTCOND*/0) ++ TAILQ_FIRST((head)) = NULL; \ ++ (head)->tqh_last = &TAILQ_FIRST((head)); \ ++ QMD_TRACE_HEAD(head); \ ++} while (0) ++ ++#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ ++ if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\ ++ TAILQ_NEXT((elm), field)->field.tqe_prev = \ ++ &TAILQ_NEXT((elm), field); \ ++ else { \ ++ (head)->tqh_last = &TAILQ_NEXT((elm), field); \ ++ QMD_TRACE_HEAD(head); \ ++ } \ ++ TAILQ_NEXT((listelm), field) = (elm); \ ++ (elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field); \ ++ QMD_TRACE_ELEM(&(elm)->field); \ ++ QMD_TRACE_ELEM(&listelm->field); \ ++} while (0) ++ ++#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ ++ (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \ ++ TAILQ_NEXT((elm), field) = (listelm); \ ++ *(listelm)->field.tqe_prev = (elm); \ ++ (listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field); \ ++ QMD_TRACE_ELEM(&(elm)->field); \ ++ QMD_TRACE_ELEM(&listelm->field); \ ++} while (0) + + #define TAILQ_INSERT_HEAD(head, elm, field) do { \ +- if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \ +- (head)->tqh_first->field.tqe_prev = \ +- &(elm)->field.tqe_next; \ ++ if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL) \ ++ TAILQ_FIRST((head))->field.tqe_prev = \ ++ &TAILQ_NEXT((elm), field); \ + else \ +- (head)->tqh_last = &(elm)->field.tqe_next; \ +- (head)->tqh_first = (elm); \ +- (elm)->field.tqe_prev = &(head)->tqh_first; \ +-} while (/*CONSTCOND*/0) ++ (head)->tqh_last = &TAILQ_NEXT((elm), field); \ ++ TAILQ_FIRST((head)) = (elm); \ ++ (elm)->field.tqe_prev = &TAILQ_FIRST((head)); \ ++ QMD_TRACE_HEAD(head); \ ++ QMD_TRACE_ELEM(&(elm)->field); \ ++} while (0) + + #define TAILQ_INSERT_TAIL(head, elm, field) do { \ +- (elm)->field.tqe_next = NULL; \ ++ TAILQ_NEXT((elm), field) = NULL; \ + (elm)->field.tqe_prev = (head)->tqh_last; \ + *(head)->tqh_last = (elm); \ +- (head)->tqh_last = &(elm)->field.tqe_next; \ +-} while (/*CONSTCOND*/0) ++ (head)->tqh_last = &TAILQ_NEXT((elm), field); \ ++ QMD_TRACE_HEAD(head); \ ++ QMD_TRACE_ELEM(&(elm)->field); \ ++} while (0) + +-#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ +- if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\ +- (elm)->field.tqe_next->field.tqe_prev = \ +- &(elm)->field.tqe_next; \ +- else \ +- (head)->tqh_last = &(elm)->field.tqe_next; \ +- (listelm)->field.tqe_next = (elm); \ +- (elm)->field.tqe_prev = &(listelm)->field.tqe_next; \ +-} while (/*CONSTCOND*/0) ++#define TAILQ_LAST(head, headname) \ ++ (*(((struct headname *)((head)->tqh_last))->tqh_last)) + +-#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ +- (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \ +- (elm)->field.tqe_next = (listelm); \ +- *(listelm)->field.tqe_prev = (elm); \ +- (listelm)->field.tqe_prev = &(elm)->field.tqe_next; \ +-} while (/*CONSTCOND*/0) ++#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) ++ ++#define TAILQ_PREV(elm, headname, field) \ ++ (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last)) + + #define TAILQ_REMOVE(head, elm, field) do { \ +- if (((elm)->field.tqe_next) != NULL) \ +- (elm)->field.tqe_next->field.tqe_prev = \ ++ if ((TAILQ_NEXT((elm), field)) != NULL) \ ++ TAILQ_NEXT((elm), field)->field.tqe_prev = \ + (elm)->field.tqe_prev; \ +- else \ ++ else { \ + (head)->tqh_last = (elm)->field.tqe_prev; \ +- *(elm)->field.tqe_prev = (elm)->field.tqe_next; \ +-} while (/*CONSTCOND*/0) ++ QMD_TRACE_HEAD(head); \ ++ } \ ++ *(elm)->field.tqe_prev = TAILQ_NEXT((elm), field); \ ++ TRASHIT((elm)->field.tqe_next); \ ++ TRASHIT((elm)->field.tqe_prev); \ ++ QMD_TRACE_ELEM(&(elm)->field); \ ++} while (0) + +-#define TAILQ_FOREACH(var, head, field) \ +- for ((var) = ((head)->tqh_first); \ +- (var); \ +- (var) = ((var)->field.tqe_next)) + +-#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ +- for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last)); \ +- (var); \ +- (var) = (*(((struct headname *)((var)->field.tqe_prev))->tqh_last))) ++#ifdef _KERNEL + + /* +- * Tail queue access methods. ++ * XXX insque() and remque() are an old way of handling certain queues. ++ * They bogusly assumes that all queue heads look alike. + */ +-#define TAILQ_EMPTY(head) ((head)->tqh_first == NULL) +-#define TAILQ_FIRST(head) ((head)->tqh_first) +-#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) + +-#define TAILQ_LAST(head, headname) \ +- (*(((struct headname *)((head)->tqh_last))->tqh_last)) +-#define TAILQ_PREV(elm, headname, field) \ +- (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last)) ++struct quehead { ++ struct quehead *qh_link; ++ struct quehead *qh_rlink; ++}; + ++#if defined(__GNUC__) || defined(__INTEL_COMPILER) + +-/* +- * Circular queue definitions. +- */ +-#define CIRCLEQ_HEAD(name, type) \ +-struct name { \ +- struct type *cqh_first; /* first element */ \ +- struct type *cqh_last; /* last element */ \ ++static __inline void ++insque(void *a, void *b) ++{ ++ struct quehead *element = (struct quehead *)a, ++ *head = (struct quehead *)b; ++ ++ element->qh_link = head->qh_link; ++ element->qh_rlink = head; ++ head->qh_link = element; ++ element->qh_link->qh_rlink = element; + } + +-#define CIRCLEQ_HEAD_INITIALIZER(head) \ +- { (void *)&head, (void *)&head } ++static __inline void ++remque(void *a) ++{ ++ struct quehead *element = (struct quehead *)a; + +-#define CIRCLEQ_ENTRY(type) \ +-struct { \ +- struct type *cqe_next; /* next element */ \ +- struct type *cqe_prev; /* previous element */ \ ++ element->qh_link->qh_rlink = element->qh_rlink; ++ element->qh_rlink->qh_link = element->qh_link; ++ element->qh_rlink = 0; + } + +-/* +- * Circular queue functions. +- */ +-#define CIRCLEQ_INIT(head) do { \ +- (head)->cqh_first = (void *)(head); \ +- (head)->cqh_last = (void *)(head); \ +-} while (/*CONSTCOND*/0) +- +-#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ +- (elm)->field.cqe_next = (listelm)->field.cqe_next; \ +- (elm)->field.cqe_prev = (listelm); \ +- if ((listelm)->field.cqe_next == (void *)(head)) \ +- (head)->cqh_last = (elm); \ +- else \ +- (listelm)->field.cqe_next->field.cqe_prev = (elm); \ +- (listelm)->field.cqe_next = (elm); \ +-} while (/*CONSTCOND*/0) +- +-#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \ +- (elm)->field.cqe_next = (listelm); \ +- (elm)->field.cqe_prev = (listelm)->field.cqe_prev; \ +- if ((listelm)->field.cqe_prev == (void *)(head)) \ +- (head)->cqh_first = (elm); \ +- else \ +- (listelm)->field.cqe_prev->field.cqe_next = (elm); \ +- (listelm)->field.cqe_prev = (elm); \ +-} while (/*CONSTCOND*/0) +- +-#define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \ +- (elm)->field.cqe_next = (head)->cqh_first; \ +- (elm)->field.cqe_prev = (void *)(head); \ +- if ((head)->cqh_last == (void *)(head)) \ +- (head)->cqh_last = (elm); \ +- else \ +- (head)->cqh_first->field.cqe_prev = (elm); \ +- (head)->cqh_first = (elm); \ +-} while (/*CONSTCOND*/0) +- +-#define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \ +- (elm)->field.cqe_next = (void *)(head); \ +- (elm)->field.cqe_prev = (head)->cqh_last; \ +- if ((head)->cqh_first == (void *)(head)) \ +- (head)->cqh_first = (elm); \ +- else \ +- (head)->cqh_last->field.cqe_next = (elm); \ +- (head)->cqh_last = (elm); \ +-} while (/*CONSTCOND*/0) +- +-#define CIRCLEQ_REMOVE(head, elm, field) do { \ +- if ((elm)->field.cqe_next == (void *)(head)) \ +- (head)->cqh_last = (elm)->field.cqe_prev; \ +- else \ +- (elm)->field.cqe_next->field.cqe_prev = \ +- (elm)->field.cqe_prev; \ +- if ((elm)->field.cqe_prev == (void *)(head)) \ +- (head)->cqh_first = (elm)->field.cqe_next; \ +- else \ +- (elm)->field.cqe_prev->field.cqe_next = \ +- (elm)->field.cqe_next; \ +-} while (/*CONSTCOND*/0) +- +-#define CIRCLEQ_FOREACH(var, head, field) \ +- for ((var) = ((head)->cqh_first); \ +- (var) != (const void *)(head); \ +- (var) = ((var)->field.cqe_next)) +- +-#define CIRCLEQ_FOREACH_REVERSE(var, head, field) \ +- for ((var) = ((head)->cqh_last); \ +- (var) != (const void *)(head); \ +- (var) = ((var)->field.cqe_prev)) ++#else /* !(__GNUC__ || __INTEL_COMPILER) */ + +-/* +- * Circular queue access methods. +- */ +-#define CIRCLEQ_EMPTY(head) ((head)->cqh_first == (void *)(head)) +-#define CIRCLEQ_FIRST(head) ((head)->cqh_first) +-#define CIRCLEQ_LAST(head) ((head)->cqh_last) +-#define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next) +-#define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev) +- +-#define CIRCLEQ_LOOP_NEXT(head, elm, field) \ +- (((elm)->field.cqe_next == (void *)(head)) \ +- ? ((head)->cqh_first) \ +- : (elm->field.cqe_next)) +-#define CIRCLEQ_LOOP_PREV(head, elm, field) \ +- (((elm)->field.cqe_prev == (void *)(head)) \ +- ? ((head)->cqh_last) \ +- : (elm->field.cqe_prev)) ++void insque(void *a, void *b); ++void remque(void *a); ++ ++#endif /* __GNUC__ || __INTEL_COMPILER */ ++ ++#endif /* _KERNEL */ + +-#endif /* sys/queue.h */ ++#endif /* !_SYS_QUEUE_H_ */ --- glibc-2.7.orig/debian/patches/kfreebsd/local-readdir_r.diff +++ glibc-2.7/debian/patches/kfreebsd/local-readdir_r.diff @@ -0,0 +1,39 @@ +--- sysdeps/unix/readdir_r.c.orig 2002-08-28 07:52:06.000000000 +0200 ++++ sysdeps/unix/readdir_r.c 2003-07-03 16:43:05.000000000 +0200 +@@ -113,7 +113,35 @@ + while (dp->d_ino == 0); + + if (dp != NULL) +- *result = memcpy (entry, dp, reclen); ++ { ++ /* The required size of *entry, according to POSIX, is ++ offsetof (DIRENT_TYPE, d_name[0]) + NAME_MAX + 1. ++ We must not write beyond the end of *entry. On some operating ++ systems, dp->d_reclen may be larger; in this case, copy only as ++ many bytes as needed. Also give an error if d_name is too long. */ ++#ifdef _DIRENT_HAVE_D_RECLEN ++ /* DIRENT_TYPE is of variable size, with d_name as its last entry. */ ++ size_t namelen; ++# ifdef _DIRENT_HAVE_D_NAMLEN ++ namelen = dp->d_namlen; ++# else ++ namelen = strlen (dp->d_name); ++# endif ++ ++ if (namelen <= NAME_MAX) ++ *result = memcpy (entry, dp, ++ offsetof (DIRENT_TYPE, d_name[0]) + namelen + 1); ++ else ++ { ++ errno = EOVERFLOW; ++ dp = NULL; ++ *result = NULL; ++ } ++#else ++ /* DIRENT_TYPE is of fixed size. */ ++ *result = memcpy (entry, dp, reclen); ++#endif ++ } + else + *result = NULL; + --- glibc-2.7.orig/debian/patches/kfreebsd/local-sysdeps.diff +++ glibc-2.7/debian/patches/kfreebsd/local-sysdeps.diff @@ -0,0 +1,22799 @@ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/Dist ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/Dist +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/Dist 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/Dist 2006-11-22 11:44:31.000000000 +0100 +@@ -0,0 +1,30 @@ ++bits/mcontext.h ++bits/stat16.h ++fpu.h ++machine/pal.h ++net/ethernet.h ++net/if_arp.h ++net/if_ether.h ++net/if_dl.h ++net/route.h ++nfs/nfs.h ++regdef.h ++sa_len.c ++stat16conv.c ++statconv.c ++statfsconv.c ++sys/acl.h ++sys/extattr.h ++sys/io.h ++sys/jail.h ++sys/linker.h ++sys/mount.h ++sys/perm.h ++sys/rfork.h ++sys/rtprio.h ++sys/syslimits.h ++sys/timex.h ++sys/vm86.h ++sys_lseek.S ++sysarch.h ++ucontext_i.h +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/Implies ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/Implies +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/Implies 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/Implies 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,11 @@ ++# The kernel include files come from the 'kernel-include' add-on. ++# This is actually added by configure.in. ++#/usr/src/sys/ ++ ++# One of two possible utmp file formats. ++# This is actually added by configure.in. ++#unix/bsd/bsd4.4/kfreebsd/utmp-xyz ++ ++# The gnu subdirectory exists for things common to Linux-based, Hurd-based ++# and kFreeBSD-based GNU systems. ++gnu +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/Makefile ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/Makefile +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/Makefile 2007-05-26 13:10:00.000000000 +0200 +@@ -0,0 +1,124 @@ ++# Use bash, not /bin/sh, for executing scripts, because the native ++# FreeBSD /bin/sh does not interpret the IFS="" read ... command ++# in localedata/tst-fmon.sh correctly. ++SHELL = bash ++ ++# Additional header files to be installed in $prefix/include: ++ ++ifeq ($(subdir),misc) ++sysdep_headers += \ ++ sys/mount.h \ ++ sys/kd.h \ ++ sys/rfork.h ++endif ++ ++ifeq ($(subdir),stdlib) ++sysdep_headers += \ ++ bits/mcontext.h ++endif ++ ++# Additional functions, and particular system calls: ++ ++ifeq ($(subdir),csu) ++# For . ++sysdep_routines += errno-loc ++endif ++ ++ifeq ($(subdir),assert) ++CFLAGS-assert.c += -DFATAL_PREPARE_INCLUDE='' ++CFLAGS-assert-perr.c += -DFATAL_PREPARE_INCLUDE='' ++endif ++ ++ifeq ($(subdir),io) ++# For . ++sysdep_routines += sys_getcwd sys_lseek ++# For . ++sysdep_routines += sys_open ++# For . ++sysdep_routines += sys_fstat sys_lstat sys_mknod sys_nfstat sys_nlstat sys_nstat sys_stat ++# For . ++sysdep_routines += fstatfs64 statfs64 sys_fstatfs sys_statfs ++# Other. ++sysdep_routines += lchmod ++endif ++ ++ifeq ($(subdir),dirent) ++# For . ++sysdep_routines += sys_getdents sys_getdirentries getdirentries getdirentries64 ++endif ++ ++ifeq ($(subdir),misc) ++# For . ++sysdep_routines += clone start_thread ++# For . ++sysdep_routines += sys_ftruncate sys_truncate ++# For . ++sysdep_routines += acl_aclcheck_fd acl_aclcheck_file acl_delete_fd acl_delete_file acl_get_fd acl_get_file acl_set_fd acl_set_file ++# For . ++sysdep_routines += extattrctl extattr_delete_file extattr_get_file extattr_set_file ++# For . ++sysdep_routines += jail ++# For . ++sysdep_routines += ktrace utrace ++# For . ++sysdep_routines += kldfind kldfirstmod kldload kldnext kldstat kldsym kldunload kldunloadf ++# For . ++sysdep_routines += minherit sys_mmap ++# For . ++sysdep_routines += fhopen sys_fhstat sys_fhstatfs fhstat fhstat64 fhstatfs fhstatfs64 getfh getfsstat getfsstat64 sys_getfsstat getmntinfo getmntinfo64 mount nmount unmount ++# For . ++sysdep_routines += sys_ptrace ++# For . ++sysdep_routines += rfork ++# For . ++sysdep_routines += rtprio ++# For . ++sysdep_routines += bsd_sendfile ++# For . ++sysdep_routines += sysctl sysctlbyname ++# For . ++sysdep_routines += sys_readv sys_writev ++# Other. ++sysdep_routines += swapon swapoff sys_aio_cancel sys_aio_error sys_aio_read sys_aio_return sys_aio_suspend sys_aio_waitcomplete sys_aio_write sys_lio_listio issetugid modfind modfnext modnext modstat obreak quotactl rfork sysarch undelete yield ++# for INLINE_SYSCALL ++sysdep_routines += sys_fork sys_execve sys_sigaction sys_close sys_fcntl ++sysdep_routines += sys_clock_getres sys_clock_gettime sys_clock_settime ++endif ++ ++ifeq ($(subdir),posix) ++# For . ++sysdep_routines += sys_getlogin sys_pread sys_pwrite sys_setlogin sys_read sys_write ++endif ++ ++ifeq ($(subdir),inet) ++sysdep_headers += net/ethernet.h net/if_ether.h ++endif ++ ++ifeq ($(subdir),time) ++# For . ++sysdep_routines += ntp_adjtime ntp_gettime ++endif ++ ++ifeq ($(subdir),socket) ++sysdep_routines += sa_len sys_bind sys_connect sys_sendto ++endif ++ ++# Linuxthreads dependencies. ++ ++ifeq ($(subdir),posix) ++sysdep_headers += bits/initspin.h ++endif ++ ++# Don't compile the ctype glue code, since we have a much better ++# than the old non-GNU C library. ++inhibit-glue = yes ++ ++# Special ELF hacks. ++ifeq ($(subdir),elf) ++sysdep-rtld-routines += dl-brk dl-sbrk ++sysdep_routines += sys_umtx ++endif ++ ++ifeq ($(subdir),sunrpc) ++sysdep_headers += nfs/nfs.h ++endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/Versions ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/Versions +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/Versions 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/Versions 2007-11-21 16:53:13.000000000 +0100 +@@ -0,0 +1,101 @@ ++libc { ++ # The comment lines with "#errlist-compat" are magic; see errlist-compat.awk. ++ # When you get an error from errlist-compat.awk, you need to add a new ++ # version here. Don't do this blindly, since this means changing the ABI ++ # for all GNU/kFreeBSD configurations. ++ ++ GLIBC_2.2.6 { ++ # c* ++ clone; ++ ++ # e* ++ extattrctl; extattr_delete_file; extattr_get_file; extattr_set_file; ++ ++ # f* ++ fhopen; fhstat; fhstatfs; futimes; ++ ++ # g* ++ getdents; getfh; getfsstat; getfsstat64; getmntinfo; getmntinfo64; ++ getresgid; getresuid; ++ ++ # i* ++ issetugid; ++ ++ # j* ++ jail; ++ ++ # k* ++ kldfind; kldfirstmod; kldload; kldnext; kldstat; kldsym; kldunload; kldunloadf; ++ ktrace; ++ ++ # l* ++ lchmod; lutimes; ++ ++ # m* ++ minherit; modfind; modfnext; modnext; modstat; mount; ++ ++ # n* ++ nmount; ntp_adjtime; ntp_gettime; ++ ++ # q* ++ quotactl; ++ ++ # r* ++ rfork; rtprio; ++ ++ # s* ++ sendfile; setresgid; setresuid; swapoff; swapon; sysarch; sysctl; sysctlbyname; ++ ++ # u* ++ undelete; unmount; utrace; ++ ++ # see . ++ __acl_aclcheck_fd; __acl_aclcheck_file; __acl_delete_fd; __acl_delete_file; ++ __acl_get_fd; __acl_get_file; __acl_set_fd; __acl_set_file; ++ ++ # see . ++ __errno_location; ++ ++ # see . ++ __sysctl; ++ ++ # Questionable system calls. These functions may be removed at any moment. ++ __syscall_aio_cancel; __syscall_aio_error; __syscall_aio_read; ++ __syscall_aio_return; __syscall_aio_suspend; __syscall_aio_waitcomplete; ++ __syscall_aio_write; __syscall_lio_listio; ++ __syscall_obreak; ++ __syscall_yield; ++ } ++ GLIBC_2.3 { ++ #errlist-compat 87 ++ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; ++ } ++ GLIBC_2.3.4 { ++ # f* ++ fhstat64; fhstatfs64; ++ kqueue; kevent; ++ ++ #errlist-compat 93 ++ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr; ++ ++ # functions used in inline functions or macros ++ __libc_sa_len; ++ } ++ GLIBC_PRIVATE { ++ # needed by libpthread. ++ __clone; __libc_fork; __libc_sigaction; ++ # needed by libpthread as INLINE_SYSCALL: ++ __syscall_fork; ++ __syscall_open; __syscall_close; ++ __syscall_read; __syscall_write; ++ __syscall_wait4; __syscall_fcntl; ++ # needed by librt as INLINE_SYSCALL: ++ __syscall_clock_getres; __syscall_clock_gettime; __syscall_clock_settime; ++ # misc fixes for FreeBSD: ++ __syscall_freebsd6_lseek; __syscall_freebsd6_pread; __syscall_freebsd6_pwrite; ++ __syscall_connect; __syscall_sendto; ++ __sigprocmask; __ioctl; ++ # global variable used in brk() ++ _end; ++ } ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/_G_config.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/_G_config.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/_G_config.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/_G_config.h 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,102 @@ ++/* This file is needed by libio to define various configuration parameters. ++ These are always the same in the GNU C library. */ ++ ++#ifndef _G_config_h ++#define _G_config_h 1 ++ ++/* Define types for libio in terms of the standard internal type names. */ ++ ++#include ++#define __need_size_t ++#define __need_wchar_t ++#define __need_wint_t ++#define __need_NULL ++#include ++#ifndef _WINT_T ++/* Integral type unchanged by default argument promotions that can ++ hold any value corresponding to members of the extended character ++ set, as well as at least one value that does not correspond to any ++ member of the extended character set. */ ++# define _WINT_T ++typedef unsigned int wint_t; ++#endif ++#define __need_mbstate_t ++#include ++#define _G_size_t size_t ++typedef struct ++{ ++ __off_t __pos; ++ __mbstate_t __state; ++} _G_fpos_t; ++typedef struct ++{ ++ __off64_t __pos; ++ __mbstate_t __state; ++} _G_fpos64_t; ++#define _G_ssize_t __ssize_t ++#define _G_off_t __off_t ++#define _G_off64_t __off64_t ++#define _G_pid_t __pid_t ++#define _G_uid_t __uid_t ++#define _G_wchar_t wchar_t ++#define _G_wint_t wint_t ++#define _G_stat64 stat64 ++#include ++typedef union ++{ ++ struct __gconv_info __cd; ++ struct ++ { ++ struct __gconv_info __cd; ++ struct __gconv_step_data __data; ++ } __combined; ++} _G_iconv_t; ++ ++typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); ++typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); ++typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); ++typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); ++ ++#define _G_HAVE_BOOL 1 ++ ++ ++/* These library features are always available in the GNU C library. */ ++#define _G_HAVE_ATEXIT 1 ++#define _G_HAVE_SYS_CDEFS 1 ++#define _G_HAVE_SYS_WAIT 1 ++#define _G_NEED_STDARG_H 1 ++#define _G_va_list __gnuc_va_list ++ ++#define _G_HAVE_PRINTF_FP 1 ++#define _G_HAVE_MMAP 1 ++#define _G_HAVE_LONG_DOUBLE_IO 1 ++#define _G_HAVE_IO_FILE_OPEN 1 ++#define _G_HAVE_IO_GETLINE_INFO 1 ++ ++#define _G_IO_IO_FILE_VERSION 0x20001 ++ ++#define _G_OPEN64 __open64 ++#define _G_LSEEK64 __lseek64 ++#define _G_MMAP64 __mmap64 ++#define _G_FSTAT64(fd,buf) __fxstat64 (_STAT_VER, fd, buf) ++ ++/* This is defined by if `st_blksize' exists. */ ++#define _G_HAVE_ST_BLKSIZE defined (_STATBUF_ST_BLKSIZE) ++ ++#define _G_BUFSIZ 8192 ++ ++/* These are the vtbl details for ELF. */ ++#define _G_NAMES_HAVE_UNDERSCORE 0 ++#define _G_VTABLE_LABEL_HAS_LENGTH 1 ++#define _G_USING_THUNKS 1 ++#define _G_VTABLE_LABEL_PREFIX "__vt_" ++#define _G_VTABLE_LABEL_PREFIX_ID __vt_ ++ ++ ++#if defined __cplusplus || defined __STDC__ ++# define _G_ARGS(ARGLIST) ARGLIST ++#else ++# define _G_ARGS(ARGLIST) () ++#endif ++ ++#endif /* _G_config.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/Makefile ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/Makefile +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/Makefile 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,28 @@ ++# Additional header files to be installed in $prefix/include: ++ ++ifeq ($(subdir),misc) ++sysdep_headers += machine/pal.h ++sysdep_routines += sys_select sys_utimes sys_lutimes sys_futimes ++endif ++ ++# Additional functions, and particular system calls: ++ ++ifeq ($(subdir),io) ++sysdep_routines += sys_poll ++endif ++ ++ifeq ($(subdir),math) ++sysdep_routines += ieee_get_fp_control ieee_set_fp_control ++endif ++ ++ifeq ($(subdir),posix) ++sysdep_routines += sys_nanosleep sys_sched_rr_gi ++endif ++ ++ifeq ($(subdir),time) ++sysdep_routines += sys_adjtime sys_gettimeofday sys_settimeofday sys_getitimer sys_setitimer ++endif ++ ++ifeq ($(subdir),resource) ++sysdep_routines += sys_getrusage ++endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/README ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/README +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/README 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/README 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,11 @@ ++Note that even on 64-bit platforms, because __ino64_t != __ino_t, we have ++stat64 != stat, fstat64 != fstat, lstat64 != lstat, fhstat64 != fhstat, ++glob64 != glob. ++ ++Note that on alpha glue code is used in order to use a 64-bit __time_t with a ++32-bit __kernel_time_t type. All system calls taking arguments with ++'time_t', 'struct timeval', 'struct timespec', 'struct itimerval', ++'struct rusage', 'struct msqid_ds', 'struct shmid_ds', 'struct semid_ds' need ++some special handling. The benefit is that user programs will not need to switch ++from a 32-bit time_t to a 64-bit time_t in 2038. ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/adjtime.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/adjtime.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/adjtime.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/adjtime.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,51 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++extern int __syscall_adjtime (const struct __kernel_timeval *delta, ++ struct __kernel_timeval *olddelta); ++ ++int ++__adjtime (const struct timeval *delta, struct timeval *olddelta) ++{ ++ struct __kernel_timeval kdelta; ++ int retval; ++ ++ kdelta.tv_sec = delta->tv_sec; ++ kdelta.tv_usec = delta->tv_usec; ++ if (olddelta != NULL) ++ { ++ struct __kernel_timeval kolddelta; ++ ++ retval = __syscall_adjtime (&kdelta, &kolddelta); ++ if (retval >= 0) ++ { ++ olddelta->tv_sec = kolddelta.tv_sec; ++ olddelta->tv_usec = kolddelta.tv_usec; ++ } ++ } ++ else ++ retval = __syscall_adjtime (&kdelta, NULL); ++ return retval; ++} ++ ++weak_alias (__adjtime, adjtime) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/kernel_time_t.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/kernel_time_t.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/kernel_time_t.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/kernel_time_t.h 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,143 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Aurelien Jarno , 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++ ++/* This header files describe the way that structures using time_t ++ are represented in the kernel */ ++ ++#ifndef _BITS_KERNEL_TIME_T_H ++#define _BITS_TIME_H 1 ++ ++#include ++#include ++ ++/* This structure corresponds to the newer FreeBSD 'struct timespec' */ ++struct __kernel_timespec ++ { ++ int tv_sec; /* Seconds. */ ++ long int tv_nsec; /* Nanoseconds. */ ++ }; ++ ++/* This structure corresponds to the newer FreeBSD 'struct timeval' */ ++struct __kernel_timeval ++ { ++ int tv_sec; /* Seconds. */ ++ __suseconds_t tv_usec; /* Microseconds. */ ++ }; ++ ++/* This structure corresponds to the newer FreeBSD 'struct itimerval' */ ++struct __kernel_itimerval ++ { ++ /* Value to put into `it_value' when the timer expires. */ ++ struct __kernel_timeval it_interval; ++ /* Time to the next timer expiration. */ ++ struct __kernel_timeval it_value; ++ }; ++ ++/* This structure corresponds to the newer FreeBSD 'struct rusage' */ ++struct __kernel_rusage ++ { ++ /* Total amount of user time used. */ ++ struct __kernel_timeval ru_utime; ++ /* Total amount of system time used. */ ++ struct __kernel_timeval ru_stime; ++ /* Maximum resident set size (in kilobytes). */ ++ long int ru_maxrss; ++ /* Amount of sharing of text segment memory ++ with other processes (kilobyte-seconds). */ ++ long int ru_ixrss; ++ /* Amount of data segment memory used (kilobyte-seconds). */ ++ long int ru_idrss; ++ /* Amount of stack memory used (kilobyte-seconds). */ ++ long int ru_isrss; ++ /* Number of soft page faults (i.e. those serviced by reclaiming ++ a page from the list of pages awaiting reallocation. */ ++ long int ru_minflt; ++ /* Number of hard page faults (i.e. those that required I/O). */ ++ long int ru_majflt; ++ /* Number of times a process was swapped out of physical memory. */ ++ long int ru_nswap; ++ /* Number of input operations via the file system. Note: This ++ and `ru_oublock' do not include operations with the cache. */ ++ long int ru_inblock; ++ /* Number of output operations via the file system. */ ++ long int ru_oublock; ++ /* Number of IPC messages sent. */ ++ long int ru_msgsnd; ++ /* Number of IPC messages received. */ ++ long int ru_msgrcv; ++ /* Number of signals delivered. */ ++ long int ru_nsignals; ++ /* Number of voluntary context switches, i.e. because the process ++ gave up the process before it had to (usually to wait for some ++ resource to be available). */ ++ long int ru_nvcsw; ++ /* Number of involuntary context switches, i.e. a higher priority process ++ became runnable or the current process used up its time slice. */ ++ long int ru_nivcsw; ++ }; ++ ++/* This structure corresponds to the newer FreeBSD 'struct msqid_ds' */ ++struct __kernel_msqid_ds ++{ ++ struct ipc_perm msg_perm; /* structure describing operation permission */ ++ void *__msg_first; ++ void *__msg_last; ++ msglen_t __msg_cbytes; /* current number of bytes on queue */ ++ msgqnum_t msg_qnum; /* number of messages currently on queue */ ++ msglen_t msg_qbytes; /* max number of bytes allowed on queue */ ++ __pid_t msg_lspid; /* pid of last msgsnd() */ ++ __pid_t msg_lrpid; /* pid of last msgrcv() */ ++ int msg_stime; /* time of last msgsnd command */ ++ long __unused1; ++ int msg_rtime; /* time of last msgrcv command */ ++ long __unused2; ++ int msg_ctime; /* time of last change */ ++ long __unused3; ++ long __unused4[4]; ++}; ++ ++/* This structure corresponds to the newer FreeBSD 'struct shmid_ds' */ ++struct __kernel_shmid_ds ++ { ++ struct ipc_perm shm_perm; /* operation permission struct */ ++ int shm_segsz; /* size of segment in bytes */ ++ __pid_t shm_lpid; /* pid of last shmop */ ++ __pid_t shm_cpid; /* pid of creator */ ++ shmatt_t shm_nattch; /* number of current attaches */ ++ int shm_atime; /* time of last shmat() */ ++ int shm_dtime; /* time of last shmdt() */ ++ int shm_ctime; /* time of last change by shmctl() */ ++ void *__shm_internal; ++ }; ++ ++/* This structure corresponds to the newer FreeBSD 'struct semid_ds' */ ++struct semid_ds ++{ ++ struct ipc_perm sem_perm; /* operation permission struct */ ++ void *__sem_base; ++ unsigned short int sem_nsems; /* number of semaphores in set */ ++ int sem_otime; /* last semop() time */ ++ long __unused1; ++ int sem_ctime; /* last time changed by semctl() */ ++ long __unused2; ++ long __unused3[4]; ++}; ++ ++#endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/mcontext.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/mcontext.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/mcontext.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/mcontext.h 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,52 @@ ++/* Machine-dependent processor state structure for FreeBSD. alpha version. ++ Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#if !defined _SYS_UCONTEXT_H ++# error "Never use directly; include instead." ++#endif ++ ++/* Whole processor state. */ ++typedef struct ++ { ++ long mc_onstack; /* Nonzero if running on sigstack. */ ++ ++ /* General registers. */ ++ unsigned long mc_regs[32]; ++ long mc_ps; ++ long mc_pc; /* Process counter. */ ++ ++ /* Trap arguments. */ ++ unsigned long mc_traparg_a0; ++ unsigned long mc_traparg_a1; ++ unsigned long mc_traparg_a2; ++ ++ /* Floating-point registers. */ ++ unsigned long mc_fpregs[32]; ++ unsigned long mc_fpcr; ++ unsigned long mc_fp_control; ++#define _MC_FPOWNED_NONE 0 /* FP state not used */ ++#define _MC_FPOWNED_FPU 1 /* FP state came from FPU */ ++#define _MC_FPOWNED_PCB 2 /* FP state came from PCB */ ++ long mc_ownedfp; ++#define _MC_REV0_SIGFRAME 1 /* context is a signal frame */ ++#define _MC_REV0_TRAPFRAME 2 /* context is a trap frame */ ++ long mc_format; ++ long mc_thrptr; /* Thread pointer */ ++ long mc_spare[5]; ++ } mcontext_t; +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/sigcontext.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/sigcontext.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/sigcontext.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/sigcontext.h 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,84 @@ ++/* Machine-dependent signal context structure for FreeBSD. alpha version. ++ Copyright (C) 1991-1992,1994,1997,2001-2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H ++# error "Never use directly; include instead." ++#endif ++ ++#ifndef _BITS_SIGCONTEXT_H ++#define _BITS_SIGCONTEXT_H 1 ++ ++/* State of this thread when the signal was taken. */ ++struct sigcontext ++ { ++ __sigset_t sc_mask; /* Blocked signals to restore. */ ++ long sc_onstack; /* Nonzero if running on sigstack. */ ++ ++ /* General registers. */ ++ unsigned long sc_regs[32]; ++ long sc_ps; ++ long sc_pc; /* Process counter. */ ++ ++ /* Trap arguments. */ ++ unsigned long sc_traparg_a0; ++ unsigned long sc_traparg_a1; ++ unsigned long sc_traparg_a2; ++ ++ /* Floating-point registers. */ ++ unsigned long sc_fpregs[32]; ++ unsigned long sc_fpcr; ++ unsigned long sc_fp_control; ++ long sc_ownedfp; ++ long sc_format; /* see mcontext_t */ ++ long sc_spare[6]; /* XXX */ ++ }; ++ ++/* Traditional BSD names for some members. */ ++#define sc_sp sc_regs[30] /* Stack pointer. */ ++#define sc_fp sc_regs[15] /* Frame pointer. */ ++ ++ ++#if 0 /* XXX These need verification. */ ++ ++/* Codes for SIGFPE. */ ++#define FPE_INTDIV 1 /* integer divide by zero */ ++#define FPE_INTOVF 2 /* integer overflow */ ++#define FPE_FLTDIV 3 /* floating divide by zero */ ++#define FPE_FLTOVF 4 /* floating overflow */ ++#define FPE_FLTUND 5 /* floating underflow */ ++#define FPE_FLTINX 6 /* floating loss of precision */ ++#define FPE_SUBRNG_FAULT 0x7 /* BOUNDS instruction failed */ ++#define FPE_FLTDNR_FAULT 0x8 /* denormalized operand */ ++#define FPE_EMERR_FAULT 0xa /* mysterious emulation error 33 */ ++#define FPE_EMBND_FAULT 0xb /* emulation BOUNDS instruction failed */ ++ ++/* Codes for SIGILL. */ ++#define ILL_PRIVIN_FAULT 1 ++#define ILL_ALIGN_FAULT 14 ++#define ILL_FPOP_FAULT 24 ++ ++/* Codes for SIGBUS. */ ++#define BUS_PAGE_FAULT 12 ++#define BUS_SEGNP_FAULT 26 ++#define BUS_STK_FAULT 27 ++#define BUS_SEGM_FAULT 29 ++ ++#endif ++ ++#endif /* _BITS_SIGCONTEXT_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/stat16.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/stat16.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/stat16.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/stat16.h 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,53 @@ ++/* Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* This structure corresponds to the original FreeBSD 'struct stat' ++ (i.e. _STAT_VER_stat), and is used by the fhstat() system call. */ ++struct stat16 ++ { ++ __dev_t st_dev; /* Device containing the file. */ ++ __ino_t st_ino; /* File serial number. */ ++ ++ __uint16_t st_mode; /* File mode. */ ++ __uint16_t st_nlink; /* Link count. */ ++ ++ __uid_t st_uid; /* User ID of the file's owner. */ ++ __gid_t st_gid; /* Group ID of the file's group. */ ++ ++ __dev_t st_rdev; /* Device number, if device. */ ++ ++ int st_atime; /* Time of last access. */ ++ long int st_atimensec; /* Nanoseconds of last access. */ ++ int st_mtime; /* Time of last modification. */ ++ long int st_mtimensec; /* Nanoseconds of last modification. */ ++ int st_ctime; /* Time of last status change. */ ++ long int st_ctimensec; /* Nanoseconds of last status change. */ ++ ++ __off_t st_size; /* Size of file, in bytes. */ ++ ++ __blkcnt_t st_blocks; /* Number of 512-byte blocks allocated. */ ++ ++ __blksize_t st_blksize; /* Optimal block size for I/O. */ ++ ++ __uint32_t st_flags; /* User defined flags. */ ++ ++ __uint32_t st_gen; /* Generation number. */ ++ ++ __uint32_t __unused1; ++ __quad_t __unused2[2]; ++ }; +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/stat32.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/stat32.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/stat32.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/stat32.h 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,52 @@ ++/* Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* This structure corresponds to the newer FreeBSD 'struct nstat' ++ (i.e. _STAT_VER_nstat). */ ++struct stat32 ++ { ++ __dev_t st_dev; /* Device containing the file. */ ++ __ino_t st_ino; /* File serial number. */ ++ ++ __uint32_t st_mode; /* File mode. */ ++ __uint32_t st_nlink; /* Link count. */ ++ ++ __uid_t st_uid; /* User ID of the file's owner. */ ++ __gid_t st_gid; /* Group ID of the file's group. */ ++ ++ __dev_t st_rdev; /* Device number, if device. */ ++ ++ int st_atime; /* Time of last access. */ ++ long int st_atimensec; /* Nanoseconds of last access. */ ++ int st_mtime; /* Time of last modification. */ ++ long int st_mtimensec; /* Nanoseconds of last modification. */ ++ int st_ctime; /* Time of last status change. */ ++ long int st_ctimensec; /* Nanoseconds of last status change. */ ++ ++ __off_t st_size; /* Size of file, in bytes. */ ++ ++ __blkcnt_t st_blocks; /* Number of 512-byte blocks allocated. */ ++ ++ __blksize_t st_blksize; /* Optimal block size for I/O. */ ++ ++ __uint32_t st_flags; /* User defined flags. */ ++ ++ __uint32_t st_gen; /* Generation number. */ ++ ++ __quad_t __unused1[2]; ++ }; +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/time.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/time.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/time.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/bits/time.h 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,89 @@ ++/* System-dependent timing definitions. FreeBSD version. ++ Copyright (C) 1996-1997, 1999, 2000, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* ++ * Never include this file directly; use instead. ++ */ ++ ++#ifndef __need_timeval ++# ifndef _BITS_TIME_H ++# define _BITS_TIME_H 1 ++ ++/* ISO/IEC 9899:1990 7.12.1: ++ The macro `CLOCKS_PER_SEC' is the number per second of the value ++ returned by the `clock' function. */ ++/* CAE XSH, Issue 4, Version 2: ++ The value of CLOCKS_PER_SEC is required to be 1 million on all ++ XSI-conformant systems. */ ++# define CLOCKS_PER_SEC 1000000l ++ ++# if !defined __STRICT_ANSI__ && !defined __USE_XOPEN2K ++/* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK ++ presents the real value for clock ticks per second for the system. */ ++# define CLK_TCK 100 ++# endif ++ ++# ifdef __USE_POSIX199309 ++/* Identifier for system-wide realtime clock. */ ++# define CLOCK_REALTIME 0 ++/* High-resolution timer from the CPU. */ ++# define CLOCK_PROCESS_CPUTIME_ID 2 ++/* Thread-specific CPU-time clock. */ ++# define CLOCK_THREAD_CPUTIME_ID 3 ++/* Monotonic system-wide clock. */ ++# define CLOCK_MONOTONIC 4 ++/* These are BSD specific clocks. */ ++# ifdef __USE_BSD ++# define CLOCK_VIRTUAL 1 ++# define CLOCK_PROF 2 ++# endif ++ ++/* Flag to indicate time is absolute. */ ++# define TIMER_ABSTIME 1 ++# endif ++ ++ ++/* Getkerninfo clock information structure */ ++struct clockinfo ++ { ++ int hz; /* clock frequency */ ++ int tick; /* micro-seconds per hz tick */ ++ int spare; ++ int stathz; /* statistics clock frequency */ ++ int profhz; /* profiling clock frequency */ ++ }; ++ ++# endif /* bits/time.h */ ++#endif ++ ++#ifdef __need_timeval ++# undef __need_timeval ++# ifndef _STRUCT_TIMEVAL ++# define _STRUCT_TIMEVAL 1 ++# include ++ ++/* A time value that is accurate to the nearest ++ microsecond but also has a range of years. */ ++struct timeval ++ { ++ __time_t tv_sec; /* Seconds. */ ++ __suseconds_t tv_usec; /* Microseconds. */ ++ }; ++# endif /* struct timeval */ ++#endif /* need timeval */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/brk.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/brk.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/brk.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/brk.S 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,73 @@ ++/* Copyright (C) 1993, 1995-1997, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* Traditional name for the 'brk' system call. */ ++#define SYS_brk SYS_obreak ++ ++#include ++ ++#ifdef PIC ++.section .bss ++ .align 3 ++ .globl __curbrk ++__curbrk: .skip 8 ++ .type __curbrk,@object ++ .size __curbrk,8 ++#else ++.comm __curbrk, 8 ++#endif ++ ++ .text ++LEAF(__brk, 8) ++ ldgp gp, 0(t12) ++ subq sp, 8, sp ++#ifdef PROF ++ .set noat ++ lda AT, _mcount ++ jsr AT, (AT), _mcount ++ .set at ++#endif ++ .prologue 1 ++ ++ /* Save the requested brk across the system call. */ ++ stq a0, 0(sp) ++ ++ ldiq v0, SYS_brk ++ call_pal PAL_callsys ++ ++ ldq a0, 0(sp) ++ ++ /* Test for error. */ ++ bne a3, $error ++ ++ /* Don't need to handle brk(0) specially, because the kernel doesn't ++ support this way of calling brk anyway. */ ++ ++ /* Update __curbrk and return cleanly. */ ++ stq a0, __curbrk ++ mov zero, v0 ++ addq sp, 8, sp ++ ret ++ ++ /* What a horrible way to die. */ ++$error: addq sp, 8, sp ++ jmp zero, __syscall_error ++ ++ END(__brk) ++ ++weak_alias (__brk, brk) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/dl-brk.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/dl-brk.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/dl-brk.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/dl-brk.S 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/dl-machine.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/dl-machine.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/dl-machine.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/dl-machine.h 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,34 @@ ++/* Dynamic linker magic for glibc on FreeBSD. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* FreeBSD on alpha can emulate two ABIs (= sets of system calls): ++ The native FreeBSD ABI and OSF/1. Without additional kernel ++ modules, only the FreeBSD ABI is supported. For this reason, we use ++ this ABI, and we have to label every executable as using this ABI, ++ by writing the string "FreeBSD" at byte offset 8 (= EI_ABIVERSION) ++ of every executable. Strictly speaking, only ld.so and the ++ executables would need this labelling. But it's easiest to mark ++ every executable and every shared object the same way. */ ++#define VALID_ELF_HEADER(e_ident, expected, size) \ ++ (memcmp (e_ident, expected, EI_ABIVERSION) == 0 \ ++ && memcmp ((const char *) (e_ident) + EI_ABIVERSION, "FreeBSD", 8) == 0) ++#define VALID_ELF_ABIVERSION(abi) (memcmp (&(abi), "FreeBSD", 8) == 0) ++ ++#include_next +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/fhstatfs64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/fhstatfs64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/fhstatfs64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/fhstatfs64.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,2 @@ ++/* 'fhstatfs64' is the same as 'fhstatfs', because ++ __fsblkcnt64_t == __fsblkcnt_t and __fsfilcnt64_t == __fsfilcnt_t. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/fork.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/fork.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/fork.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/fork.S 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,30 @@ ++/* Copyright (C) 1993, 1995, 1997, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++PSEUDO (__libc_fork, fork, 0) ++ /* In the parent process, a4 == 0, v0 == child pid. */ ++ /* In the child process, a4 == 1, v0 == parent pid. */ ++ cmovne a4, zero, v0 ++ ret ++ ++PSEUDO_END (__libc_fork) ++ ++weak_alias (__libc_fork, __fork) ++weak_alias (__fork, fork) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/fpu.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/fpu.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/fpu.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/fpu.h 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,128 @@ ++/* Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _FPU_H ++#define _FPU_H 1 ++ ++ ++/* Usage of the fpcr register. ++ The rounding mode bits (in FPCR_DYN_MASK) can be modified in user mode ++ and will be preserved by the kernel when a software assisted floating- ++ point operation or an exception occurs. All other bits will be set by ++ the kernel when a software assisted floating-point operation or an ++ exception occurs. */ ++ ++#if 0 /* Only Linux, not FreeBSD */ ++#define FPCR_DNOD (1UL<<47) /* denorm INV trap disable */ ++#define FPCR_DNZ (1UL<<48) /* denorms to zero */ ++#endif ++#define FPCR_INVD (1UL<<49) /* invalid op disable (opt.) */ ++#define FPCR_DZED (1UL<<50) /* division by zero disable (opt.) */ ++#define FPCR_OVFD (1UL<<51) /* overflow disable (optional) */ ++#define FPCR_INV (1UL<<52) /* invalid operation */ ++#define FPCR_DZE (1UL<<53) /* division by zero */ ++#define FPCR_OVF (1UL<<54) /* overflow */ ++#define FPCR_UNF (1UL<<55) /* underflow */ ++#define FPCR_INE (1UL<<56) /* inexact */ ++#define FPCR_IOV (1UL<<57) /* integer overflow */ ++#define FPCR_UNDZ (1UL<<60) /* underflow to zero (opt.) */ ++#define FPCR_UNFD (1UL<<61) /* underflow disable (opt.) */ ++#define FPCR_INED (1UL<<62) /* inexact disable (opt.) */ ++#define FPCR_SUM (1UL<<63) /* summary bit, an OR of bits 52..56 */ ++ ++#define FPCR_DYN_SHIFT 58 /* first dynamic rounding mode bit */ ++#define FPCR_DYN_CHOPPED (0x0UL << FPCR_DYN_SHIFT) /* towards 0 */ ++#define FPCR_DYN_MINUS (0x1UL << FPCR_DYN_SHIFT) /* towards -INF */ ++#define FPCR_DYN_NORMAL (0x2UL << FPCR_DYN_SHIFT) /* towards nearest */ ++#define FPCR_DYN_PLUS (0x3UL << FPCR_DYN_SHIFT) /* towards +INF */ ++#define FPCR_DYN_MASK (0x3UL << FPCR_DYN_SHIFT) ++ ++#define FPCR_MASK 0xffff800000000000 ++ ++ ++/* IEEE traps are enabled depending on a control word (not to be confused ++ with fpcr!) which can be read using __ieee_get_fp_control() and written ++ using __ieee_set_fp_control(). The bits in these control word are ++ as follows (compatible with Linux and OSF/1). */ ++ ++/* Trap enable bits. Get copied (inverted) to bits 49,50,51,61,62,47 ++ of fpcr in the kernel. */ ++#define IEEE_TRAP_ENABLE_INV (1UL<<1) /* invalid op */ ++#define IEEE_TRAP_ENABLE_DZE (1UL<<2) /* division by zero */ ++#define IEEE_TRAP_ENABLE_OVF (1UL<<3) /* overflow */ ++#define IEEE_TRAP_ENABLE_UNF (1UL<<4) /* underflow */ ++#define IEEE_TRAP_ENABLE_INE (1UL<<5) /* inexact */ ++#if 0 /* Only Linux, not FreeBSD */ ++#define IEEE_TRAP_ENABLE_DNO (1UL<<6) /* denorm */ ++#endif ++#define IEEE_TRAP_ENABLE_MASK (IEEE_TRAP_ENABLE_INV | IEEE_TRAP_ENABLE_DZE |\ ++ IEEE_TRAP_ENABLE_OVF | IEEE_TRAP_ENABLE_UNF |\ ++ IEEE_TRAP_ENABLE_INE/*| IEEE_TRAP_ENABLE_DNO*/) ++ ++#if 0 /* Only Linux, not FreeBSD */ ++ ++/* Denorm and Underflow flushing. */ ++/* Get copied to bits 48,60 of fpcr in the kernel. */ ++#define IEEE_MAP_DMZ (1UL<<12) /* Map denorm inputs to zero */ ++#define IEEE_MAP_UMZ (1UL<<13) /* Map underflowed outputs to zero */ ++ ++#define IEEE_MAP_MASK (IEEE_MAP_DMZ | IEEE_MAP_UMZ) ++ ++#endif ++ ++/* Status bits. Get copied to bits 52,53,54,55,56 of fpcr in the kernel. */ ++#define IEEE_STATUS_INV (1UL<<17) /* invalid op */ ++#define IEEE_STATUS_DZE (1UL<<18) /* division by zero */ ++#define IEEE_STATUS_OVF (1UL<<19) /* overflow */ ++#define IEEE_STATUS_UNF (1UL<<20) /* underflow */ ++#define IEEE_STATUS_INE (1UL<<21) /* inexact */ ++#if 0 /* Only Linux, not FreeBSD */ ++#define IEEE_STATUS_DNO (1UL<<22) /* denorm */ ++#endif ++ ++#define IEEE_STATUS_MASK (IEEE_STATUS_INV | IEEE_STATUS_DZE | \ ++ IEEE_STATUS_OVF | IEEE_STATUS_UNF | \ ++ IEEE_STATUS_INE /* | IEEE_STATUS_DNO */) ++ ++#define IEEE_SW_MASK (IEEE_TRAP_ENABLE_MASK | \ ++ IEEE_STATUS_MASK /* | IEEE_MAP_MASK */) ++ ++#if 0 /* Only Linux, not FreeBSD */ ++ ++#define IEEE_CURRENT_RM_SHIFT 32 ++#define IEEE_CURRENT_RM_MASK (3UL<, 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++extern int __syscall_futimes (int fd, const struct __kernel_timeval tvp[2]); ++ ++int ++__futimes (int fd, const struct timeval tvp[2]) ++{ ++ if (tvp != NULL) ++ { ++ struct __kernel_timeval ktv[2]; ++ ++ ktv[0].tv_sec = tvp[0].tv_sec; ++ ktv[0].tv_usec = tvp[0].tv_usec; ++ ktv[1].tv_sec = tvp[1].tv_sec; ++ ktv[1].tv_usec = tvp[1].tv_usec; ++ return __syscall_futimes (fd, ktv); ++ } ++ else ++ return __syscall_futimes (fd, NULL); ++} ++ ++weak_alias (__futimes, futimes) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getfsstat64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getfsstat64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getfsstat64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getfsstat64.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,2 @@ ++/* 'getfsstat64' is the same as 'getfsstat', because ++ __fsblkcnt64_t == __fsblkcnt_t and __fsfilcnt64_t == __fsfilcnt_t. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getitimer.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getitimer.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getitimer.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getitimer.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,49 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_getitimer (int which, struct __kernel_itimerval *value); ++ ++int ++__getitimer (enum __itimer_which which, struct itimerval *value) ++{ ++ struct __kernel_itimerval kvalue; ++ int retval; ++ ++ if (value == NULL) ++ { ++ errno = EFAULT; ++ return -1; ++ } ++ retval = __syscall_getitimer (which, &kvalue); ++ if (retval >= 0) ++ { ++ value->it_interval.tv_sec = kvalue.it_interval.tv_sec; ++ value->it_interval.tv_usec = kvalue.it_interval.tv_usec; ++ value->it_value.tv_sec = kvalue.it_value.tv_sec; ++ value->it_value.tv_usec = kvalue.it_value.tv_usec; ++ } ++ return retval; ++} ++ ++weak_alias (__getitimer, getitimer) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getmntinfo.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getmntinfo.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getmntinfo.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getmntinfo.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,8 @@ ++/* 'getmntinfo64' is the same as 'getmntinfo', because ++ __fsblkcnt64_t == __fsblkcnt_t and __fsfilcnt64_t == __fsfilcnt_t. */ ++ ++#define getmntinfo64 __no_getmntinfo64_decl ++#include ++#undef getmntinfo64 ++ ++weak_alias (__getmntinfo, getmntinfo64) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getmntinfo64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getmntinfo64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getmntinfo64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getmntinfo64.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,2 @@ ++/* 'getmntinfo64' is the same as 'getmntinfo', because ++ __fsblkcnt64_t == __fsblkcnt_t and __fsfilcnt64_t == __fsfilcnt_t. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getrusage.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getrusage.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getrusage.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/getrusage.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,63 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_getrusage (int who, struct __kernel_rusage *usage); ++ ++int ++__getrusage (enum __rusage_who who, struct rusage *usage) ++{ ++ struct __kernel_rusage kusage; ++ int retval; ++ ++ if (usage == NULL) ++ { ++ errno = EFAULT; ++ return -1; ++ } ++ retval = __syscall_getrusage (who, &kusage); ++ if (retval >= 0) ++ { ++ usage->ru_utime.tv_sec = kusage.ru_utime.tv_sec; ++ usage->ru_utime.tv_usec = kusage.ru_utime.tv_usec; ++ usage->ru_stime.tv_sec = kusage.ru_stime.tv_sec; ++ usage->ru_stime.tv_usec = kusage.ru_stime.tv_usec; ++ usage->ru_maxrss = kusage.ru_maxrss; ++ usage->ru_ixrss = kusage.ru_ixrss; ++ usage->ru_idrss = kusage.ru_idrss; ++ usage->ru_isrss = kusage.ru_isrss; ++ usage->ru_minflt = kusage.ru_minflt; ++ usage->ru_majflt = kusage.ru_majflt; ++ usage->ru_nswap = kusage.ru_nswap; ++ usage->ru_inblock = kusage.ru_inblock; ++ usage->ru_oublock = kusage.ru_oublock; ++ usage->ru_msgsnd = kusage.ru_msgsnd; ++ usage->ru_msgrcv = kusage.ru_msgrcv; ++ usage->ru_nsignals = kusage.ru_nsignals; ++ usage->ru_nvcsw = kusage.ru_nvcsw; ++ usage->ru_nivcsw = kusage.ru_nivcsw; ++ } ++ return retval; ++} ++ ++weak_alias (__getrusage, getrusage) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/gettimeofday.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/gettimeofday.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/gettimeofday.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/gettimeofday.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,52 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_gettimeofday (struct __kernel_timeval *tv, ++ struct timezone *tz); ++ ++#undef __gettimeofday ++ ++int ++__gettimeofday (struct timeval *tv, struct timezone *tz) ++{ ++ struct __kernel_timeval ktv; ++ int retval; ++ ++ if (tv == NULL) ++ { ++ errno = EFAULT; ++ return -1; ++ } ++ retval = __syscall_gettimeofday (&ktv, tz); ++ if (retval >= 0) ++ { ++ tv->tv_sec = ktv.tv_sec; ++ tv->tv_usec = ktv.tv_usec; ++ } ++ return retval; ++} ++ ++INTDEF(__gettimeofday) ++ ++weak_alias (__gettimeofday, gettimeofday) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/ieee_get_fp_control.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/ieee_get_fp_control.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/ieee_get_fp_control.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/ieee_get_fp_control.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,35 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++unsigned long ++__ieee_get_fp_control (void) ++{ ++ /* The Alpha hardware requires this to be a system call. */ ++ unsigned long word; ++ ++ if (__sysarch (ALPHA_GET_FPMASK, &word) < 0) ++ abort (); ++ ++ return word; ++} ++ ++weak_alias (__ieee_get_fp_control, ieee_get_fp_control) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/ieee_set_fp_control.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/ieee_set_fp_control.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/ieee_set_fp_control.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/ieee_set_fp_control.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,33 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++void ++__ieee_set_fp_control (unsigned long trap_enable_mask) ++{ ++ /* The Alpha hardware requires this to be a system call. */ ++ unsigned long word = trap_enable_mask; ++ ++ if (__sysarch (ALPHA_SET_FPMASK, &word) < 0) ++ abort (); ++} ++ ++weak_alias (__ieee_set_fp_control, ieee_set_fp_control) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/lutimes.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/lutimes.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/lutimes.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/lutimes.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,44 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++extern int __syscall_lutimes (const char *file, ++ const struct __kernel_timeval tvp[2]); ++ ++int ++__lutimes (const char *file, const struct timeval tvp[2]) ++{ ++ if (tvp != NULL) ++ { ++ struct __kernel_timeval ktv[2]; ++ ++ ktv[0].tv_sec = tvp[0].tv_sec; ++ ktv[0].tv_usec = tvp[0].tv_usec; ++ ktv[1].tv_sec = tvp[1].tv_sec; ++ ktv[1].tv_usec = tvp[1].tv_usec; ++ return __syscall_lutimes (file, ktv); ++ } ++ else ++ return __syscall_lutimes (file, NULL); ++} ++ ++weak_alias (__lutimes, lutimes) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/machine/pal.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/machine/pal.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/machine/pal.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/machine/pal.h 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,57 @@ ++/* Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* Unprivileged PAL function codes. (The PAL codes which require ++ privileges are useful in the kernel only.) */ ++ ++/* Common PAL codes. */ ++#define PAL_bpt 128 ++#define PAL_bugchk 129 ++#define PAL_callsys 131 ++#define PAL_imb 134 ++#define PAL_rduniq 158 ++#define PAL_wruniq 159 ++#define PAL_gentrap 170 ++#define PAL_nphalt 190 ++ ++/* gentrap causes. */ ++#define GEN_INTOVF -1 /* integer overflow */ ++#define GEN_INTDIV -2 /* integer division by zero */ ++#define GEN_FLTOVF -3 /* fp overflow */ ++#define GEN_FLTDIV -4 /* fp division by zero */ ++#define GEN_FLTUND -5 /* fp underflow */ ++#define GEN_FLTINV -6 /* invalid fp operand */ ++#define GEN_FLTINE -7 /* inexact fp operand */ ++#define GEN_DECOVF -8 /* decimal overflow (for COBOL??) */ ++#define GEN_DECDIV -9 /* decimal division by zero */ ++#define GEN_DECINV -10 /* invalid decimal operand */ ++#define GEN_ROPRAND -11 /* reserved operand */ ++#define GEN_ASSERTERR -12 /* assertion error */ ++#define GEN_NULPTRERR -13 /* null pointer error */ ++#define GEN_STKOVF -14 /* stack overflow */ ++#define GEN_STRLENERR -15 /* string length error */ ++#define GEN_SUBSTRERR -16 /* substring error */ ++#define GEN_RANGERR -17 /* range error */ ++#define GEN_SUBRNG -18 ++#define GEN_SUBRNG1 -19 ++#define GEN_SUBRNG2 -20 ++#define GEN_SUBRNG3 -21 /* these report range errors for */ ++#define GEN_SUBRNG4 -22 /* subscripting (indexing) at levels 0..7 */ ++#define GEN_SUBRNG5 -23 ++#define GEN_SUBRNG6 -24 ++#define GEN_SUBRNG7 -25 +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/msgctl.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/msgctl.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/msgctl.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/msgctl.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,62 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Aurelien Jarno , 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_msgctl (int msqid, int cmd, struct __kernel_msqid_ds *buf); ++ ++int ++__msgctl (int msqid, int cmd, struct msqid_ds *buf) ++{ ++ struct __kernel_msqid_ds kmsqid_ds; ++ int retval; ++ ++ kmsqid_ds.msg_perm = msqid_ds->msg_perm; ++ kmsqid_ds.__msg_first = msqid_ds->__msg_first; ++ kmsqid_ds.__msg_last = msqid_ds->__msg_last; ++ kmsqid_ds.__msg_cbytes = msqid_ds->__msg_cbytes; ++ kmsqid_ds.msg_qnum = msqid_ds->msg_qnum; ++ kmsqid_ds.msg_qbytes = msqid_ds->msg_qbytes; ++ kmsqid_ds.msg_lspid = msqid_ds->msg_lspid; ++ kmsqid_ds.msg_lrpid = msqid_ds->msg_lrpid; ++ kmsqid_ds.msg_stime = msqid_ds->msg_stime; ++ kmsqid_ds.msg_rtime = msqid_ds->msg_rtime; ++ kmsqid_ds.msg_ctime = msqid_ds->msg_ctime; ++ ++ retval = __syscall_msgctl (msqid, cmd, &kmsqid_ds); ++ ++ msqid_ds->msg_perm = kmsqid_ds.msg_perm; ++ msqid_ds->__msg_first = kmsqid_ds.__msg_first; ++ msqid_ds->__msg_last = kmsqid_ds.__msg_last; ++ msqid_ds->__msg_cbytes = kmsqid_ds.__msg_cbytes; ++ msqid_ds->msg_qnum = kmsqid_ds.msg_qnum; ++ msqid_ds->msg_qbytes = kmsqid_ds.msg_qbytes; ++ msqid_ds->msg_lspid = kmsqid_ds.msg_lspid; ++ msqid_ds->msg_lrpid = kmsqid_ds.msg_lrpid; ++ msqid_ds->msg_stime = kmsqid_ds.msg_stime; ++ msqid_ds->msg_rtime = kmsqid_ds.msg_rtime; ++ msqid_ds->msg_ctime = kmsqid_ds.msg_ctime; ++ ++ return retval; ++} ++ ++weak_alias (__msgctl, msgctl) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/nanosleep.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/nanosleep.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/nanosleep.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/nanosleep.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,54 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_nanosleep (const struct __kernel_timespec *requested_time, ++ struct __kernel_timespec *remaining); ++ ++int ++__libc_nanosleep (const struct timespec *requested_time, ++ struct timespec *remaining) ++{ ++ struct __kernel_timespec krequested_time; ++ int retval; ++ ++ krequested_time.tv_sec = requested_time->tv_sec; ++ krequested_time.tv_nsec = requested_time->tv_nsec; ++ if (remaining != NULL) ++ { ++ struct __kernel_timespec kremaining; ++ ++ retval = __syscall_nanosleep (&krequested_time, &kremaining); ++ if (retval >= 0 || errno == EINTR) ++ { ++ remaining->tv_sec = kremaining.tv_sec; ++ remaining->tv_nsec = kremaining.tv_nsec; ++ } ++ } ++ else ++ retval = __syscall_nanosleep (&krequested_time, NULL); ++ return retval; ++} ++ ++weak_alias (__libc_nanosleep, __nanosleep) ++weak_alias (__libc_nanosleep, nanosleep) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/poll.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/poll.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/poll.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/poll.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,46 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++/* nfds_t is defined as 'unsigned long int' in , but the poll ++ system call expects an 'unsigned int' as second argument. */ ++ ++extern int __syscall_poll (struct pollfd *fds, unsigned int nfds, int timeout); ++ ++int ++__poll (struct pollfd *fds, nfds_t nfds, int timeout) ++{ ++ unsigned int infds = nfds; ++ ++ if (infds == nfds) ++ return INLINE_SYSCALL (poll, 3, fds, infds, timeout); ++ else ++ { ++ /* NFDS doesn't fit into an unsigned int. FDS cannot point to such ++ a big chunk of valid memory. */ ++ __set_errno (EFAULT); ++ return -1; ++ } ++} ++libc_hidden_def (__poll) ++ ++weak_alias (__poll, poll) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/regdef.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/regdef.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/regdef.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/regdef.h 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,62 @@ ++/* Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _REGDEF_H ++#define _REGDEF_H ++ ++/* Common symbolic names for Alpha registers. ++ Names taken from binutils/opcodes/alpha-dis.c. ++ Register usage info taken from gcc-3.1/gcc/config/alpha/alpha.h. ++ NB: "saved" = "call-saved", "nonsaved" = "call-used". */ ++ ++#define v0 $0 /* nonsaved, first return value */ ++#define t0 $1 /* nonsaved, second return value, lexical closure reg */ ++#define t1 $2 /* nonsaved */ ++#define t2 $3 /* nonsaved */ ++#define t3 $4 /* nonsaved */ ++#define t4 $5 /* nonsaved */ ++#define t5 $6 /* nonsaved */ ++#define t6 $7 /* nonsaved */ ++#define t7 $8 /* nonsaved */ ++#define s0 $9 /* saved */ ++#define s1 $10 /* saved */ ++#define s2 $11 /* saved */ ++#define s3 $12 /* saved */ ++#define s4 $13 /* saved */ ++#define s5 $14 /* saved */ ++#define s6 $15 /* use only in leaf functions without frame pointer */ ++#define fp $15 /* frame pointer */ ++#define a0 $16 /* nonsaved, argument 1 */ ++#define a1 $17 /* nonsaved, argument 2 */ ++#define a2 $18 /* nonsaved, argument 3 */ ++#define a3 $19 /* nonsaved, argument 4 */ ++#define a4 $20 /* nonsaved, argument 5 */ ++#define a5 $21 /* nonsaved, argument 6 */ ++#define t8 $22 /* nonsaved */ ++#define t9 $23 /* nonsaved */ ++#define t10 $24 /* nonsaved */ ++#define t11 $25 /* nonsaved */ ++#define ra $26 /* return address */ ++#define t12 $27 /* current function's address */ ++#define pv $27 /* current function's address */ ++#define AT $28 /* nonsaved, assembler temporary */ ++#define gp $29 /* global pointer */ ++#define sp $30 /* stack pointer */ ++#define zero $31 /* reads as zero, writes go to /dev/null */ ++ ++#endif /* _REGDEF_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/rfork.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/rfork.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/rfork.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/rfork.S 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,29 @@ ++/* Copyright (C) 1993, 1995, 1997, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++SYSCALL__ (rfork, 0) ++ /* In the parent process, a4 == 0, v0 == child pid. */ ++ /* In the child process, a4 == 1, v0 == parent pid. */ ++ cmovne a4, zero, v0 ++ ret ++ ++PSEUDO_END (__rfork) ++ ++weak_alias (__rfork, rfork) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sched_rr_gi.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sched_rr_gi.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sched_rr_gi.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sched_rr_gi.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,50 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern int __syscall_sched_rr_get_interval (pid_t pid, ++ struct __kernel_timespec *t); ++ ++int ++__sched_rr_get_interval (pid_t pid, struct timespec *t) ++{ ++ struct __kernel_timespec kt; ++ int retval; ++ ++ if (t == NULL) ++ { ++ errno = EFAULT; ++ return -1; ++ } ++ retval = __syscall_sched_rr_get_interval (pid, &kt); ++ if (retval >= 0) ++ { ++ t->tv_sec = kt.tv_sec; ++ t->tv_nsec = kt.tv_nsec; ++ } ++ return retval; ++} ++ ++weak_alias (__sched_rr_get_interval, sched_rr_get_interval) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/select.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/select.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/select.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/select.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,53 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_select (int nfds, ++ fd_set *readfds, ++ fd_set *writefds, ++ fd_set *exceptfds, ++ struct __kernel_timeval *timeout); ++ ++int ++__select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, ++ struct timeval *timeout) ++{ ++ int retval; ++ ++ if (timeout != NULL) ++ { ++ struct __kernel_timeval ktimeout; ++ ++ ktimeout.tv_sec = timeout->tv_sec; ++ ktimeout.tv_usec = timeout->tv_usec; ++ retval = __syscall_select (nfds, readfds, writefds, exceptfds, &ktimeout); ++ timeout->tv_sec = ktimeout.tv_sec; ++ timeout->tv_usec = ktimeout.tv_usec; ++ } ++ else ++ retval = __syscall_select (nfds, readfds, writefds, exceptfds, NULL); ++ return retval; ++} ++libc_hidden_def (__select) ++ ++weak_alias (__select, select) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/semctl.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/semctl.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/semctl.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/semctl.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,87 @@ ++/* Copyright (C) 1995,1997,1998,2000,2003,2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper , August 1995. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include /* va_list */ ++#include /* NULL */ ++#include ++ ++/* union semun from FreeBSD */ ++/* ++ * semctl's arg parameter structure ++ */ ++union __kernel_semun ++{ ++ int val; /* value for SETVAL */ ++ struct __kernel_semid_ds *buf; /* buffer for IPC_STAT & IPC_SET */ ++ unsigned short *array; /* array for GETALL & SETALL */ ++}; ++ ++int ++semctl (int semid, int semnum, int cmd, ...) ++{ ++ int result; ++ va_list ap; ++ ++ union semun semun; ++ union semun semun_ptr; ++ ++ union __kernel_semun ksemun; ++ struct __kernel_semid_ds ksemid_ds; ++ ++ va_start (ap, cmd); ++ if (cmd == GETALL || cmd == SETVAL || cmd == SETALL) ++ { ++ semun = va_arg (ap, union semun); ++ semun_ptr = &semun; ++ } ++ else if (cmd == IPC_SET || cmd == IPC_STAT) ++ { ++ semun = va_arg (ap, union semun); ++ ++ ksemid_ds.sem_perm = semun.buf->sem_perm; ++ ksemid_ds.sem_base = semun.buf->sem_base; ++ ksemid_ds.sem_nsems = semun.buf->sem_nsems; ++ ksemid_ds.sem_otime = semun.buf->sem_otime; ++ ksemid_ds.sem_ctime = semun.buf->sem_ctime; ++ ++ ksemun.buf = &ksemid_ds ++ semun_ptr = (semun_ptr *) &ksemun; ++ } ++ else ++ { ++ semun_ptr = NULL; ++ } ++ va_end (ap); ++ ++ result = syscall (SYS_semctl, semid, semnum, cmd, semun_ptr); ++ ++ if (cmd == IPC_SET || cmd == IPC_STAT) ++ { ++ semun.buf->sem_perm = ksemid_ds.sem_perm; ++ semun.buf->sem_base = ksemid_ds.sem_base; ++ semun.buf->sem_nsems = ksemid_ds.sem_nsems; ++ semun.buf->sem_otime = ksemid_ds.sem_otime; ++ semun.buf->sem_ctime = ksemid_ds.sem_ctime; ++ } ++ ++ return result; ++} ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/setfpucw.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/setfpucw.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/setfpucw.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/setfpucw.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,88 @@ ++/* Set FP exception mask and rounding mode. ++ Copyright (C) 1996, 1997, 1998, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++extern unsigned long __ieee_get_fp_control (void); ++extern void __ieee_set_fp_control (unsigned long); ++ ++ ++static inline unsigned long ++rdfpcr (void) ++{ ++ unsigned long fpcr; ++ asm ("excb; mf_fpcr %0" : "=f"(fpcr)); ++ return fpcr; ++} ++ ++static inline void ++wrfpcr (unsigned long fpcr) ++{ ++ asm volatile ("mt_fpcr %0; excb" : : "f"(fpcr)); ++} ++ ++ ++void ++__setfpucw (fpu_control_t fpu_control) ++{ ++ if (!fpu_control) ++ fpu_control = _FPU_DEFAULT; ++ ++ /* Note that the fpu_control argument, as defined in , ++ consists of bits that are not directly related to the bits of the ++ fpcr and fp_control registers. In particular, the precision control ++ (_FPU_EXTENDED, _FPU_DOUBLE, _FPU_SINGLE) and the interrupt mask ++ _FPU_MASK_UM are without effect. */ ++ ++ /* First, set dynamic rounding mode: */ ++ { ++ unsigned long fpcr; ++ ++ fpcr = rdfpcr(); ++ fpcr &= ~FPCR_DYN_MASK; ++ switch (fpu_control & 0xc00) ++ { ++ case _FPU_RC_NEAREST: fpcr |= FPCR_DYN_NORMAL; break; ++ case _FPU_RC_DOWN: fpcr |= FPCR_DYN_MINUS; break; ++ case _FPU_RC_UP: fpcr |= FPCR_DYN_PLUS; break; ++ case _FPU_RC_ZERO: fpcr |= FPCR_DYN_CHOPPED; break; ++ } ++ wrfpcr(fpcr); ++ } ++ ++ /* Now tell kernel about traps that we like to hear about: */ ++ { ++ unsigned long old_fpcw, fpcw; ++ ++ old_fpcw = fpcw = __ieee_get_fp_control (); ++ fpcw &= ~IEEE_TRAP_ENABLE_MASK; ++ ++ if (!(fpu_control & _FPU_MASK_IM)) fpcw |= IEEE_TRAP_ENABLE_INV; ++ if (!(fpu_control & _FPU_MASK_DM)) fpcw |= IEEE_TRAP_ENABLE_UNF; ++ if (!(fpu_control & _FPU_MASK_ZM)) fpcw |= IEEE_TRAP_ENABLE_DZE; ++ if (!(fpu_control & _FPU_MASK_OM)) fpcw |= IEEE_TRAP_ENABLE_OVF; ++ if (!(fpu_control & _FPU_MASK_PM)) fpcw |= IEEE_TRAP_ENABLE_INE; ++ ++ if (fpcw != old_fpcw) ++ __ieee_set_fp_control (fpcw); ++ } ++ ++ __fpu_control = fpu_control; /* update global copy */ ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/setitimer.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/setitimer.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/setitimer.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/setitimer.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,63 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_setitimer (int which, ++ const struct __kernel_itimerval *new, ++ struct __kernel_itimerval *old); ++ ++int ++__setitimer (enum __itimer_which which, ++ const struct itimerval *new, struct itimerval *old) ++{ ++ int retval; ++ struct __kernel_itimerval knew; ++ ++ if (new == NULL) ++ { ++ errno = EFAULT; ++ return -1; ++ } ++ knew.it_interval.tv_sec = new->it_interval.tv_sec; ++ knew.it_interval.tv_usec = new->it_interval.tv_usec; ++ knew.it_value.tv_sec = new->it_value.tv_sec; ++ knew.it_value.tv_usec = new->it_value.tv_usec; ++ if (old != NULL) ++ { ++ struct __kernel_itimerval kold; ++ ++ retval = __syscall_setitimer (which, &knew, &kold); ++ if (retval >= 0) ++ { ++ old->it_interval.tv_sec = kold.it_interval.tv_sec; ++ old->it_interval.tv_usec = kold.it_interval.tv_usec; ++ old->it_value.tv_sec = kold.it_value.tv_sec; ++ old->it_value.tv_usec = kold.it_value.tv_usec; ++ } ++ } ++ else ++ retval = __syscall_setitimer (which, &knew, NULL); ++ return retval; ++} ++ ++weak_alias (__setitimer, setitimer) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/settimeofday.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/settimeofday.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/settimeofday.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/settimeofday.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,43 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_settimeofday (const struct __kernel_timeval *tv, ++ const struct timezone *tz); ++ ++int ++__settimeofday (const struct timeval *tv, const struct timezone *tz) ++{ ++ struct __kernel_timeval ktv; ++ ++ if (tv == NULL) ++ { ++ errno = EFAULT; ++ return -1; ++ } ++ ktv.tv_sec = tv->tv_sec; ++ ktv.tv_usec = tv->tv_usec; ++ return __syscall_settimeofday (&ktv, tz); ++} ++ ++weak_alias (__settimeofday, settimeofday) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/shmctl.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/shmctl.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/shmctl.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/shmctl.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,58 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Aurelien Jarno , 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_msgctl (int shmid, int cmd, struct __kernel_shmid_ds *buf); ++ ++int ++__msgctl (int shmid, int cmd, struct shmid_ds *buf) ++{ ++ struct __kernel_shmid_ds kshmid_ds; ++ int retval; ++ ++ kshmid_ds.shm_perm = shmid_ds->shm_perm; ++ kshmid_ds.shm_segsz = shmid_ds->shm_segsz; ++ kshmid_ds.shm_lpid = shmid_ds->shm_lpid; ++ kshmid_ds.shm_cpid = shmid_ds->shm_cpid; ++ kshmid_ds.shm_nattch = shmid_ds->shm_nattch; ++ kshmid_ds.shm_atime = shmid_ds->shm_atime; ++ kshmid_ds.shm_dtime = shmid_ds->shm_dtime; ++ kshmid_ds.shm_ctime = shmid_ds->shm_ctime; ++ kshmid_ds.__shm_internal = shmid_ds->__shm_internal; ++ ++ retval = __syscall_shmctl (shmid, cmd, &kshmid_ds); ++ ++ shmid_ds->shm_perm = kshmid_ds.shm_perm; ++ shmid_ds->shm_segsz = kshmid_ds.shm_segsz; ++ shmid_ds->shm_lpid = kshmid_ds.shm_lpid; ++ shmid_ds->shm_cpid = kshmid_ds.shm_cpid; ++ shmid_ds->shm_nattch = kshmid_ds.shm_nattch; ++ shmid_ds->shm_atime = kshmid_ds.shm_atime; ++ shmid_ds->shm_dtime = kshmid_ds.shm_dtime; ++ shmid_ds->shm_ctime = kshmid_ds.shm_ctime; ++ shmid_ds->__shm_internal = kshmid_ds.__shm_internal; ++ ++ return retval; ++} ++ ++weak_alias (__shmctl, shmctl) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sigcontextinfo.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sigcontextinfo.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sigcontextinfo.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sigcontextinfo.h 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,25 @@ ++/* Copyright (C) 1998, 1999, 2001, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#define SIGCONTEXT int _code, struct sigcontext * ++#define SIGCONTEXT_EXTRA_ARGS _code, ++#define GET_PC(ctx) ((void *) (ctx)->sc_pc) ++#define GET_FRAME(ctx) ((void *) (ctx)->sc_regs[15]) ++#define GET_STACK(ctx) ((void *) (ctx)->sc_regs[30]) ++#define CALL_SIGHANDLER(handler, signo, ctx) \ ++ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx)) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/start_thread.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/start_thread.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/start_thread.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/start_thread.S 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,172 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* __start_thread (flags, stack, func, arg) ++ calls __rfork (flags), and in the child sets the stack pointer and then ++ calls _exit (func (arg)). ++ It cannot be done in portable C. */ ++ ++#include ++#define SIG_SETMASK 3 ++ ++ .text ++ENTRY (__start_thread) ++ /* There is a window of a few instructions, right after the rfork ++ system call, where the handling of a signal would write garbage ++ into the stack shared by the parent and the child (assuming ++ RFMEM is set in flags). To solve this: 1. We block all signals ++ around the rfork system call and unblock them afterwards in ++ the parent and in the child (but only after changing the stack ++ pointer). 2. The child accesses only values passed in registers ++ and on its own stack. This way, if the parent is scheduled to ++ run first, and handles a signal, it will not affect the child; ++ and if the child runs first, and handles a signal, it will use ++ the child's stack and not affect the parent. ++ We need to pass 7 words of info to the child: stack, func, arg, ++ and the signal mask to restore. Since we have only 4 call-saved ++ registers available (%ebx, %esi, %edi, %ebp), we pass only the ++ stack pointer in a register, and the rest through the child's ++ stack. */ ++ lda sp,-56(sp) ++ stq ra,0(sp) ++ stq s0,8(sp) ++ stq s1,16(sp) ++ stq s2,24(sp) ++ stq s3,32(sp) ++ .prologue 1 ++ ++ /* Save arguments. */ ++ mov a0,s1 /* flags */ ++ mov a1,s0 /* stack */ ++ mov a2,s2 /* func */ ++ mov a3,s3 /* arg */ ++ ++ and a0,32,t0 /* flags & RFMEM */ ++ beq t0,$simple ++ ++ /* Block all signals. */ ++ lda t0,-1 ++ stq t0,40(sp) ++ stq t0,48(sp) ++ lda a0,SIG_SETMASK ++ lda a1,40(sp) ++ mov a1,a2 ++ lda v0,SYS_sigprocmask ++ call_pal PAL_callsys ++ bne a3,$error ++ ++ /* Copy all info to the child's stack. */ ++ lda s0,-32(s0) /* room for func, arg, sigset_t */ ++ andnot s0,7,s0 /* make it 8-bytes aligned */ ++ stq s2,8(s0) /* func */ ++ stq s3,0(s0) /* arg */ ++ ldq t0,40(sp) /* sigset_t word 0 */ ++ ldq t1,48(sp) /* sigset_t word 1 */ ++ stq t0,16(s0) ++ stq t1,24(s0) ++ ++ /* Perform the rfork system call. */ ++ mov s1,a0 /* flags */ ++ lda v0,SYS_rfork ++ call_pal PAL_callsys ++ bne a3,$error ++ ++ /* a4 is now 0 for the parent and 1 for the child. */ ++ bne a4,$child ++ ++ /* Save the child pid, currently in v0. */ ++ mov v0,s1 ++ ++ /* Restore the previous signal mask. */ ++ lda a0,SIG_SETMASK ++ lda a1,40(sp) ++ mov zero,a2 ++ lda v0,SYS_sigprocmask ++ call_pal PAL_callsys ++ ++ /* Return the child pid, currently in s1. */ ++ mov s1,v0 ++$retv0: ldq ra,0(sp) ++ ldq s0,8(sp) ++ ldq s1,16(sp) ++ ldq s2,24(sp) ++ ldq s3,32(sp) ++ lda sp,56(sp) ++ ret zero,(ra),1 ++ ++$child: /* Here we are in the child thread. */ ++ ++ /* Set the stack pointer. */ ++ mov s0,sp ++ ++ /* Restore the previous signal mask. */ ++ lda a0,SIG_SETMASK ++ lda a1,16(sp) ++ mov zero,a2 ++ lda v0,SYS_sigprocmask ++ call_pal PAL_callsys ++ ++$child1: ++ /* Call func (arg). */ ++ ldq a0,0(sp) ++ ldq pv,8(sp) ++ jsr ra,(pv),0 ++ ++ /* Tail-call _exit. */ ++ br gp,$here ++$here: ldgp gp,0(gp) ++ mov v0,a0 ++ jmp zero,_exit ++ ++$simple:/* Simple case without signal mask handling. */ ++ ++ /* Copy all info to the child's stack. */ ++ lda s0,-16(s0) /* room for func, arg */ ++ andnot s0,7,s0 /* make it 8-bytes aligned */ ++ stq s2,8(s0) /* func */ ++ stq s3,0(s0) /* arg */ ++ ++ /* Perform the rfork system call. */ ++ mov s1,a0 /* flags */ ++ lda v0,SYS_rfork ++ call_pal PAL_callsys ++ bne a3,$error ++ ++ /* a4 is now 0 for the parent and 1 for the child. */ ++ /* If in the parent, return the child pid, currently in v0. */ ++ beq a4,$retv0 ++ ++$simple_child:/* Here we are in the child thread. */ ++ ++ /* Set the stack pointer. */ ++ mov s0,sp ++ ++ br zero,$child1 ++ ++$error: ldq ra,0(sp) ++ ldq s0,8(sp) ++ ldq s1,16(sp) ++ ldq s2,24(sp) ++ ldq s3,32(sp) ++ lda sp,56(sp) ++#if 0 /* Not needed: The PSEUDO_END expansion starts with this label. */ ++ br zero,1996f ++#endif ++ ++PSEUDO_END (__start_thread) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/statfs64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/statfs64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/statfs64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/statfs64.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,2 @@ ++/* 'statfs64' is the same as 'statfs', because ++ __fsblkcnt64_t == __fsblkcnt_t and __fsfilcnt64_t == __fsfilcnt_t. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sysarch.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sysarch.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sysarch.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sysarch.h 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,53 @@ ++/* Parameters for the architecture specific system call. alpha version. ++ Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYSARCH_H ++#define _SYSARCH_H 1 ++ ++#include ++ ++/* Function that can be used as first argument to 'sysarch'. */ ++enum ++ { ++ ALPHA_SETHAE = 0, ++#define ALPHA_SETHAE ALPHA_SETHAE ++ /* Arg is 'unsigned long *'. Returns the current pcb_fp_control. */ ++ ALPHA_GET_FPMASK = 1, ++#define ALPHA_GET_FPMASK ALPHA_GET_FPMASK ++ /* Arg is 'unsigned long *'. Sets the pcb_fp_control and returns its ++ old value in the same memory location. */ ++ ALPHA_SET_FPMASK = 2, ++#define ALPHA_SET_FPMASK ALPHA_SET_FPMASK ++ ALPHA_GET_UAC = 3, ++#define ALPHA_GET_UAC ALPHA_GET_UAC ++ ALPHA_SET_UAC = 4 ++#define ALPHA_SET_UAC ALPHA_SET_UAC ++ }; ++ ++__BEGIN_DECLS ++ ++extern int sysarch (int __cmd, void *__arg); ++ ++#ifdef _LIBC ++extern int __sysarch (int __cmd, void *__arg); ++#endif ++ ++__END_DECLS ++ ++#endif /* _SYSARCH_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/syscall.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/syscall.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/syscall.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/syscall.S 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/syscalls.list ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/syscalls.list +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/syscalls.list 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/syscalls.list 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,21 @@ ++# File name Caller Syscall name # args Strong name Weak names ++ ++fhstatfs - fhstatfs i:pp __fhstatfs fhstatfs fhstatfs64 ++fstatfs - fstatfs i:ip __fstatfs fstatfs __fstatfs64 fstatfs64 ++getfsstat - getfsstat i:pii __getfsstat getfsstat __getfsstat64 getfsstat64 ++sys_poll - poll i:pii __syscall_poll ++statfs - statfs i:sp __statfs statfs statfs64 ++sys_adjtime - adjtime i:pp __syscall_adjtime ++sys_futimes - futimes i:ip __syscall_futimes ++sys_getitimer - getitimer i:ip __syscall_getitimer ++sys_getrusage - getrusage i:ip __syscall_getrusage ++sys_gettimeofday - gettimeofday i:PP __syscall_gettimeofday ++sys_lutimes - lutimes i:sp __syscall_lutimes ++sys_msgctl - msgctl i:iip __syscall_msgctl ++sys_nanosleep - nanosleep i:pp __syscall_nanosleep ++sys_sched_rr_gi - sched_rr_get_interval i:ip __syscall_sched_rr_get_interval ++sys_shmctl - shmctl i:iip __syscall_shmctl ++sys_select - select i:iPPPP __syscall_select ++sys_setitimer - setitimer i:ipp __syscall_setitimer ++sys_settimeofday - settimeofday i:PP __syscall_settimeofday ++sys_utimes - utimes i:sp __syscall_utimes +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sysdep.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sysdep.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sysdep.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/sysdep.h 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,34 @@ ++/* Copyright (C) 1993, 1995, 1997, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _FREEBSD_ALPHA_SYSDEP_H ++#define _FREEBSD_ALPHA_SYSDEP_H 1 ++ ++#ifdef __ASSEMBLER__ ++#include /* get PAL_callsys */ ++#else ++#include ++#endif ++ ++#include ++ ++/* FIXME: Is this necessary? */ ++#undef INLINE_SYSCALL ++#define INLINE_SYSCALL(name, nr, args...) __syscall_##name(args) ++ ++#endif /* freebsd/alpha/sysdep.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/utimes.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/utimes.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/utimes.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/utimes.c 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,44 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++extern int __syscall_utimes (const char *file, ++ const struct __kernel_timeval tvp[2]); ++ ++int ++__utimes (const char *file, const struct timeval tvp[2]) ++{ ++ if (tvp != NULL) ++ { ++ struct __kernel_timeval ktv[2]; ++ ++ ktv[0].tv_sec = tvp[0].tv_sec; ++ ktv[0].tv_usec = tvp[0].tv_usec; ++ ktv[1].tv_sec = tvp[1].tv_sec; ++ ktv[1].tv_usec = tvp[1].tv_usec; ++ return __syscall_utimes (file, ktv); ++ } ++ else ++ return __syscall_utimes (file, NULL); ++} ++ ++weak_alias (__utimes, utimes) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/vfork.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/vfork.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/vfork.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/alpha/vfork.S 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,29 @@ ++/* Copyright (C) 1993, 1995, 1997, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++SYSCALL__ (vfork, 0) ++ /* In the parent process, a4 == 0, v0 == child pid. */ ++ /* In the child process, a4 == 1, v0 == parent pid. */ ++ cmovne a4, zero, v0 ++ ret ++ ++PSEUDO_END (__vfork) ++ ++weak_alias (__vfork, vfork) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bind.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bind.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bind.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bind.c 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,60 @@ ++/* Copyright (C) 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Aurelien Jarno , 2005. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++/* According to POSIX.1-2004 the len argument specifies the length of ++ the sockaddr structure pointed to by the addrarg argument. However ++ the FreeBSD kernel waits the actual length of the address stored ++ there. The code below emulate this behaviour. */ ++ ++extern int __libc_sa_len (sa_family_t __af); ++extern int __libc_sa_len_internal (sa_family_t __af); ++ ++extern int __syscall_bind (int fd, __CONST_SOCKADDR_ARG addr, ++ socklen_t addrlen) __THROW; ++libc_hidden_proto (__syscall_bind) ++ ++/* Open a connection on socket FD to peer at ADDR (which LEN bytes long). ++ For connectionless socket types, just set the default address to send to ++ and the only address from which to accept transmissions. ++ Return 0 on success, -1 for errors. */ ++ ++int ++__bind (int fd, __CONST_SOCKADDR_ARG addr, socklen_t addrlen) ++{ ++ socklen_t new_addrlen; ++ ++#ifndef NOT_IN_libc ++ new_addrlen = INTUSE(__libc_sa_len) ((addr.__sockaddr__)->sa_family); ++#else ++ new_addrlen = __libc_sa_len ((addr.__sockaddr__)->sa_family); ++#endif ++ ++ /* Only allow a smaller size, otherwise it could lead to ++ stack corruption */ ++ if (new_addrlen < addrlen) ++ addrlen = new_addrlen; ++ ++ /* We pass 3 arguments. */ ++ return INLINE_SYSCALL (bind, 3, fd, addr, addrlen); ++} ++ ++weak_alias (__bind, bind) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/dirent.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/dirent.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/dirent.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/dirent.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,52 @@ ++/* Directory entry structure `struct dirent'. FreeBSD version. ++ Copyright (C) 1996-1998,2001-2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _DIRENT_H ++# error "Never use directly; include instead." ++#endif ++ ++struct dirent ++ { ++ unsigned int d_ino; /* File serial number. */ ++ unsigned short int d_reclen; /* Length of the whole `struct dirent'. */ ++ unsigned char d_type; /* File type, possibly unknown. */ ++ unsigned char d_namlen; /* Length of the file name. */ ++ ++ /* Only this member is in the POSIX standard. */ ++ char d_name[1]; /* File name (actually longer). */ ++ }; ++ ++#ifdef __USE_LARGEFILE64 ++struct dirent64 ++ { ++ unsigned int d_ino; /* File serial number. */ ++ unsigned short int d_reclen; /* Length of the whole `struct dirent'. */ ++ unsigned char d_type; /* File type, possibly unknown. */ ++ unsigned char d_namlen; /* Length of the file name. */ ++ ++ /* Only this member is in the POSIX standard. */ ++ char d_name[1]; /* File name (actually longer). */ ++ }; ++#endif ++ ++#define d_fileno d_ino /* Backwards compatibility. */ ++ ++#define _DIRENT_HAVE_D_RECLEN 1 ++#define _DIRENT_HAVE_D_NAMLEN 1 ++#define _DIRENT_HAVE_D_TYPE 1 +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/errno.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/errno.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/errno.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/errno.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,182 @@ ++/*- ++ * Copyright (c) 1982, 1986, 1989, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * (c) UNIX System Laboratories, Inc. ++ * All or some portions of this file are derived from material licensed ++ * to the University of California by American Telephone and Telegraph ++ * Co. or Unix System Laboratories, Inc. and are reproduced herein with ++ * the permission of UNIX System Laboratories, Inc. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)errno.h 8.5 (Berkeley) 1/21/94 ++ * based on $FreeBSD: src/sys/sys/errno.h,v 1.28 2005/04/02 12:33:28 das Exp $ ++ */ ++ ++#ifdef _ERRNO_H ++ ++# undef EDOM ++# undef EILSEQ ++# undef ERANGE ++ ++#define EPERM 1 /* Operation not permitted */ ++#define ENOENT 2 /* No such file or directory */ ++#define ESRCH 3 /* No such process */ ++#define EINTR 4 /* Interrupted system call */ ++#define EIO 5 /* Input/output error */ ++#define ENXIO 6 /* Device not configured */ ++#define E2BIG 7 /* Argument list too long */ ++#define ENOEXEC 8 /* Exec format error */ ++#define EBADF 9 /* Bad file descriptor */ ++#define ECHILD 10 /* No child processes */ ++#define EDEADLK 11 /* Resource deadlock avoided */ ++ /* 11 was EAGAIN */ ++#define ENOMEM 12 /* Cannot allocate memory */ ++#define EACCES 13 /* Permission denied */ ++#define EFAULT 14 /* Bad address */ ++#define ENOTBLK 15 /* Block device required */ ++#define EBUSY 16 /* Device busy */ ++#define EEXIST 17 /* File exists */ ++#define EXDEV 18 /* Cross-device link */ ++#define ENODEV 19 /* Operation not supported by device */ ++#define ENOTDIR 20 /* Not a directory */ ++#define EISDIR 21 /* Is a directory */ ++#define EINVAL 22 /* Invalid argument */ ++#define ENFILE 23 /* Too many open files in system */ ++#define EMFILE 24 /* Too many open files */ ++#define ENOTTY 25 /* Inappropriate ioctl for device */ ++#define ETXTBSY 26 /* Text file busy */ ++#define EFBIG 27 /* File too large */ ++#define ENOSPC 28 /* No space left on device */ ++#define ESPIPE 29 /* Illegal seek */ ++#define EROFS 30 /* Read-only filesystem */ ++#define EMLINK 31 /* Too many links */ ++#define EPIPE 32 /* Broken pipe */ ++ ++/* math software */ ++#define EDOM 33 /* Numerical argument out of domain */ ++#define ERANGE 34 /* Result too large */ ++ ++/* non-blocking and interrupt i/o */ ++#define EAGAIN 35 /* Resource temporarily unavailable */ ++#define EWOULDBLOCK EAGAIN /* Operation would block */ ++#define EINPROGRESS 36 /* Operation now in progress */ ++#define EALREADY 37 /* Operation already in progress */ ++ ++/* ipc/network software -- argument errors */ ++#define ENOTSOCK 38 /* Socket operation on non-socket */ ++#define EDESTADDRREQ 39 /* Destination address required */ ++#define EMSGSIZE 40 /* Message too long */ ++#define EPROTOTYPE 41 /* Protocol wrong type for socket */ ++#define ENOPROTOOPT 42 /* Protocol not available */ ++#define EPROTONOSUPPORT 43 /* Protocol not supported */ ++#define ESOCKTNOSUPPORT 44 /* Socket type not supported */ ++#define EOPNOTSUPP 45 /* Operation not supported */ ++#define ENOTSUP EOPNOTSUPP /* Operation not supported */ ++#define EPFNOSUPPORT 46 /* Protocol family not supported */ ++#define EAFNOSUPPORT 47 /* Address family not supported by protocol family */ ++#define EADDRINUSE 48 /* Address already in use */ ++#define EADDRNOTAVAIL 49 /* Can't assign requested address */ ++ ++/* ipc/network software -- operational errors */ ++#define ENETDOWN 50 /* Network is down */ ++#define ENETUNREACH 51 /* Network is unreachable */ ++#define ENETRESET 52 /* Network dropped connection on reset */ ++#define ECONNABORTED 53 /* Software caused connection abort */ ++#define ECONNRESET 54 /* Connection reset by peer */ ++#define ENOBUFS 55 /* No buffer space available */ ++#define EISCONN 56 /* Socket is already connected */ ++#define ENOTCONN 57 /* Socket is not connected */ ++#define ESHUTDOWN 58 /* Can't send after socket shutdown */ ++#define ETOOMANYREFS 59 /* Too many references: can't splice */ ++#define ETIMEDOUT 60 /* Operation timed out */ ++#define ECONNREFUSED 61 /* Connection refused */ ++ ++#define ELOOP 62 /* Too many levels of symbolic links */ ++#define ENAMETOOLONG 63 /* File name too long */ ++ ++/* should be rearranged */ ++#define EHOSTDOWN 64 /* Host is down */ ++#define EHOSTUNREACH 65 /* No route to host */ ++#define ENOTEMPTY 66 /* Directory not empty */ ++ ++/* quotas & mush */ ++#define EPROCLIM 67 /* Too many processes */ ++#define EUSERS 68 /* Too many users */ ++#define EDQUOT 69 /* Disc quota exceeded */ ++ ++/* Network File System */ ++#define ESTALE 70 /* Stale NFS file handle */ ++#define EREMOTE 71 /* Too many levels of remote in path */ ++#define EBADRPC 72 /* RPC struct is bad */ ++#define ERPCMISMATCH 73 /* RPC version wrong */ ++#define EPROGUNAVAIL 74 /* RPC prog. not avail */ ++#define EPROGMISMATCH 75 /* Program version wrong */ ++#define EPROCUNAVAIL 76 /* Bad procedure for program */ ++ ++#define ENOLCK 77 /* No locks available */ ++#define ENOSYS 78 /* Function not implemented */ ++ ++#define EFTYPE 79 /* Inappropriate file type or format */ ++#define EAUTH 80 /* Authentication error */ ++#define ENEEDAUTH 81 /* Need authenticator */ ++#define EIDRM 82 /* Identifier removed */ ++#define ENOMSG 83 /* No message of desired type */ ++#define EOVERFLOW 84 /* Value too large to be stored in data type */ ++#define ECANCELED 85 /* Operation canceled */ ++#define EILSEQ 86 /* Illegal byte sequence */ ++#define ENOATTR 87 /* Attribute not found */ ++ ++#define EDOOFUS 88 /* Programming error */ ++ ++#define EBADMSG 89 /* Bad message */ ++#define EMULTIHOP 90 /* Multihop attempted */ ++#define ENOLINK 91 /* Link has been severed */ ++#define EPROTO 92 /* Protocol error */ ++ ++#define ELAST 92 /* Must be equal largest errno */ ++ ++# ifndef __ASSEMBLER__ ++/* Function to get address of global `errno' variable. */ ++extern int *__errno_location (void) __THROW __attribute__ ((__const__)); ++ ++# if !defined _LIBC || defined _LIBC_REENTRANT ++/* When using threads, errno is a per-thread value. */ ++# define errno (*__errno_location ()) ++# endif ++# endif /* !__ASSEMBLER__ */ ++#endif /* _ERRNO_H */ ++ ++#if !defined _ERRNO_H && defined __need_Emath ++/* This is ugly but the kernel header is not clean enough. We must ++ define only the values EDOM, EILSEQ and ERANGE in case __need_Emath is ++ defined. */ ++ ++#define EDOM 33 /* Numerical argument out of domain */ ++#define ERANGE 34 /* Result too large */ ++#define EILSEQ 86 /* Illegal byte sequence */ ++ ++#endif /* !_ERRNO_H && __need_Emath */ ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/fcntl.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/fcntl.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/fcntl.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/fcntl.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,145 @@ ++/* O_*, F_*, FD_* bit values for FreeBSD. ++ Copyright (C) 1991-1992, 1997, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _FCNTL_H ++#error "Never use directly; include instead." ++#endif ++ ++#include ++ ++/* File access modes for `open' and `fcntl'. */ ++#define O_RDONLY 0 /* Open read-only. */ ++#define O_WRONLY 1 /* Open write-only. */ ++#define O_RDWR 2 /* Open read/write. */ ++ ++ ++/* Bits OR'd into the second argument to open. */ ++#define O_CREAT 0x0200 /* Create file if it doesn't exist. */ ++#define O_EXCL 0x0800 /* Fail if file already exists. */ ++#define O_TRUNC 0x0400 /* Truncate file to zero length. */ ++#define O_NOCTTY 0x8000 /* Don't assign a controlling terminal. */ ++#ifdef __USE_MISC ++#define O_ASYNC 0x0040 /* Send SIGIO to owner when data is ready. */ ++#define O_FSYNC 0x0080 /* Synchronous writes. */ ++#define O_SYNC O_FSYNC ++#define O_SHLOCK 0x0010 /* Open with shared file lock. */ ++#define O_EXLOCK 0x0020 /* Open with shared exclusive lock. */ ++#define O_NOFOLLOW 0x0100 /* Don't follow symlinks. */ ++#define O_DIRECT 0x00010000 /* Attempt to bypass buffer cache */ ++#endif ++ ++enum { O_DIRECTORY = 0 }; ++ ++/* File status flags for `open' and `fcntl'. */ ++#define O_APPEND 0x0008 /* Writes append to the file. */ ++#define O_NONBLOCK 0x0004 /* Non-blocking I/O. */ ++ ++#ifdef __USE_BSD ++#define O_NDELAY O_NONBLOCK ++#endif ++ ++/* Since 'off_t' is 64-bit, O_LARGEFILE is a no-op. */ ++#define O_LARGEFILE 0 ++ ++/* FreeBSD doesn't have smaller grained synchronicity control than per file. ++ fdatasync() is equivalent to fsync(), so we define O_DSYNC == O_SYNC. */ ++#if defined __USE_POSIX199309 || defined __USE_UNIX98 ++# define O_DSYNC O_SYNC /* Synchronize data. */ ++# define O_RSYNC O_SYNC /* Synchronize read operations. */ ++#endif ++ ++#ifdef __USE_BSD ++/* Bits in the file status flags returned by F_GETFL. ++ These are all the O_* flags, plus FREAD and FWRITE, which are ++ independent bits set by which of O_RDONLY, O_WRONLY, and O_RDWR, was ++ given to `open'. */ ++#define FREAD 1 ++#define FWRITE 2 ++ ++/* Traditional BSD names the O_* bits. */ ++#define FASYNC O_ASYNC ++#define FCREAT O_CREAT ++#define FEXCL O_EXCL ++#define FTRUNC O_TRUNC ++#define FNOCTTY O_NOCTTY ++#define FFSYNC O_FSYNC ++#define FSYNC O_SYNC ++#define FAPPEND O_APPEND ++#define FNONBLOCK O_NONBLOCK ++#define FNDELAY O_NDELAY ++#endif ++ ++/* Mask for file access modes. This is system-dependent in case ++ some system ever wants to define some other flavor of access. */ ++#define O_ACCMODE (O_RDONLY|O_WRONLY|O_RDWR) ++ ++/* Values for the second argument to `fcntl'. */ ++#define F_DUPFD 0 /* Duplicate file descriptor. */ ++#define F_GETFD 1 /* Get file descriptor flags. */ ++#define F_SETFD 2 /* Set file descriptor flags. */ ++#define F_GETFL 3 /* Get file status flags. */ ++#define F_SETFL 4 /* Set file status flags. */ ++#ifdef __USE_BSD ++#define F_GETOWN 5 /* Get owner (receiver of SIGIO). */ ++#define F_SETOWN 6 /* Set owner (receiver of SIGIO). */ ++#endif ++#define F_GETLK 7 /* Get record locking info. */ ++#define F_SETLK 8 /* Set record locking info (non-blocking). */ ++#define F_SETLKW 9 /* Set record locking info (blocking). */ ++ ++/* File descriptor flags used with F_GETFD and F_SETFD. */ ++#define FD_CLOEXEC 1 /* Close on exec. */ ++ ++ ++#include ++ ++/* The structure describing an advisory lock. This is the type of the third ++ argument to `fcntl' for the F_GETLK, F_SETLK, and F_SETLKW requests. */ ++struct flock ++ { ++ __off_t l_start; /* Offset where the lock begins. */ ++ __off_t l_len; /* Size of the locked area; zero means until EOF. */ ++ __pid_t l_pid; /* Process holding the lock. */ ++ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ ++ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ ++ }; ++ ++#ifdef __USE_LARGEFILE64 ++struct flock64 ++ { ++ __off64_t l_start; /* Offset where the lock begins. */ ++ __off64_t l_len; /* Size of the locked area; zero means until EOF. */ ++ __pid_t l_pid; /* Process holding the lock. */ ++ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ ++ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ ++ }; ++#endif ++ ++/* Values for the `l_type' field of a `struct flock'. */ ++#define F_RDLCK 1 /* Read lock. */ ++#define F_WRLCK 3 /* Write lock. */ ++#define F_UNLCK 2 /* Remove lock. */ ++ ++#ifdef __USE_BSD ++/* Operations for flock(). */ ++# define LOCK_SH 1 /* shared lock */ ++# define LOCK_EX 2 /* exclusive lock */ ++# define LOCK_NB 4 /* or'd with one of the above to prevent blocking */ ++# define LOCK_UN 8 /* remove lock */ ++#endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/in.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/in.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/in.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/in.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,249 @@ ++/* Copyright (C) 1997, 2000, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* FreeBSD version. */ ++ ++#ifndef _NETINET_IN_H ++# error "Never use directly; include instead." ++#endif ++ ++ ++/* Link numbers. */ ++#define IMPLINK_IP 155 ++#define IMPLINK_LOWEXPER 156 ++#define IMPLINK_HIGHEXPER 158 ++ ++ ++/* Options for use with `getsockopt' and `setsockopt' at the IP level. ++ The first word in the comment at the right is the data type used; ++ "bool" means a boolean value stored in an `int'. */ ++#define IP_OPTIONS 1 /* ip_opts; IP per-packet options. */ ++#define IP_HDRINCL 2 /* int; Header is included with data. */ ++#define IP_TOS 3 /* int; IP type of service and precedence. */ ++#define IP_TTL 4 /* int; IP time to live. */ ++#define IP_RECVOPTS 5 /* bool; Receive all IP options w/datagram. */ ++#define IP_RECVRETOPTS 6 /* bool; Receive IP options for response. */ ++#define IP_RECVDSTADDR 7 /* bool; Receive IP dst addr w/datagram. */ ++#define IP_RETOPTS 8 /* ip_opts; Set/get IP per-packet options. */ ++#define IP_MULTICAST_IF 9 /* in_addr; set/get IP multicast i/f */ ++#define IP_MULTICAST_TTL 10 /* u_char; set/get IP multicast ttl */ ++#define IP_MULTICAST_LOOP 11 /* i_char; set/get IP multicast loopback */ ++#define IP_ADD_MEMBERSHIP 12 /* ip_mreq; add an IP group membership */ ++#define IP_DROP_MEMBERSHIP 13 /* ip_mreq; drop an IP group membership */ ++#define IP_MULTICAST_VIF 14 /* set/get IP mcast virt. iface */ ++#define IP_RSVP_ON 15 /* enable RSVP in kernel */ ++#define IP_RSVP_OFF 16 /* disable RSVP in kernel */ ++#define IP_RSVP_VIF_ON 17 /* set RSVP per-vif socket */ ++#define IP_RSVP_VIF_OFF 18 /* unset RSVP per-vif socket */ ++#define IP_PORTRANGE 19 /* int; range to choose for unspec port */ ++#define IP_RECVIF 20 /* bool; receive reception if w/dgram */ ++/* for IPSEC */ ++#define IP_IPSEC_POLICY 21 /* int; set/get security policy */ ++#define IP_FAITH 22 /* bool; accept FAITH'ed connections */ ++ ++#define IP_FW_ADD 50 /* add a firewall rule to chain */ ++#define IP_FW_DEL 51 /* delete a firewall rule from chain */ ++#define IP_FW_FLUSH 52 /* flush firewall rule chain */ ++#define IP_FW_ZERO 53 /* clear single/all firewall counter(s) */ ++#define IP_FW_GET 54 /* get entire firewall rule chain */ ++#define IP_FW_RESETLOG 55 /* reset logging counters */ ++ ++#define IP_DUMMYNET_CONFIGURE 60 /* add/configure a dummynet pipe */ ++#define IP_DUMMYNET_DEL 61 /* delete a dummynet pipe from chain */ ++#define IP_DUMMYNET_FLUSH 62 /* flush dummynet */ ++#define IP_DUMMYNET_GET 64 /* get entire dummynet pipes */ ++ ++/* To select the IP level. */ ++#define SOL_IP 0 ++ ++/* ++ * Defaults and limits for options ++ */ ++#define IP_DEFAULT_MULTICAST_TTL 1 /* normally limit m'casts to 1 hop */ ++#define IP_DEFAULT_MULTICAST_LOOP 1 /* normally hear sends if a member */ ++#define IP_MAX_MEMBERSHIPS 20 /* per socket */ ++ ++/* ++ * Argument for IP_PORTRANGE: ++ * - which range to search when port is unspecified at bind() or connect() ++ */ ++#define IP_PORTRANGE_DEFAULT 0 /* default range */ ++#define IP_PORTRANGE_HIGH 1 /* "high" - request firewall bypass */ ++#define IP_PORTRANGE_LOW 2 /* "low" - vouchsafe security */ ++ ++/* ++ * Names for IP sysctl objects ++ */ ++#define IPCTL_FORWARDING 1 /* act as router */ ++#define IPCTL_SENDREDIRECTS 2 /* may send redirects when forwarding */ ++#define IPCTL_DEFTTL 3 /* default TTL */ ++#ifdef notyet ++#define IPCTL_DEFMTU 4 /* default MTU */ ++#endif ++#define IPCTL_RTEXPIRE 5 /* cloned route expiration time */ ++#define IPCTL_RTMINEXPIRE 6 /* min value for expiration time */ ++#define IPCTL_RTMAXCACHE 7 /* trigger level for dynamic expire */ ++#define IPCTL_SOURCEROUTE 8 /* may perform source routes */ ++#define IPCTL_DIRECTEDBROADCAST 9 /* may re-broadcast received packets */ ++#define IPCTL_INTRQMAXLEN 10 /* max length of netisr queue */ ++#define IPCTL_INTRQDROPS 11 /* number of netisr q drops */ ++#define IPCTL_STATS 12 /* ipstat structure */ ++#define IPCTL_ACCEPTSOURCEROUTE 13 /* may accept source routed packets */ ++#define IPCTL_FASTFORWARDING 14 /* use fast IP forwarding code */ ++#define IPCTL_KEEPFAITH 15 /* FAITH IPv4->IPv6 translater ctl */ ++#define IPCTL_GIF_TTL 16 /* default TTL for gif encap packet */ ++#define IPCTL_MAXID 17 ++ ++/* Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS. ++ The `ip_dst' field is used for the first-hop gateway when using a ++ source route (this gets put into the header proper). */ ++struct ip_opts ++ { ++ struct in_addr ip_dst; /* First hop; zero without source route. */ ++ char ip_opts[40]; /* Actually variable in size. */ ++ }; ++ ++/* Options for use with `getsockopt' and `setsockopt' at the IPv6 level. ++ The first word in the comment at the right is the data type used; ++ "bool" means a boolean value stored in an `int'. */ ++#define IPV6_SOCKOPT_RESERVED1 3 /* reserved for future use */ ++#define IPV6_UNICAST_HOPS 4 /* int; IP6 hops */ ++#define IPV6_MULTICAST_IF 9 /* u_int; set/get IP6 multicast i/f */ ++#define IPV6_MULTICAST_HOPS 10 /* int; set/get IP6 multicast hops */ ++#define IPV6_MULTICAST_LOOP 11 /* u_int; set/get IP6 multicast loopback */ ++#define IPV6_JOIN_GROUP 12 /* ip6_mreq; join a group membership */ ++#define IPV6_LEAVE_GROUP 13 /* ip6_mreq; leave a group membership */ ++#define IPV6_PORTRANGE 14 /* int; range to choose for unspec port */ ++#define ICMP6_FILTER 18 /* icmp6_filter; icmp6 filter */ ++ ++#define IPV6_CHECKSUM 26 /* int; checksum offset for raw socket */ ++#define IPV6_V6ONLY 27 /* bool; make AF_INET6 sockets v6 only */ ++ ++#define IPV6_IPSEC_POLICY 28 /* struct; get/set security policy */ ++#define IPV6_FAITH 29 /* bool; accept FAITH'ed connections */ ++ ++#define IPV6_FW_ADD 30 /* add a firewall rule to chain */ ++#define IPV6_FW_DEL 31 /* delete a firewall rule from chain */ ++#define IPV6_FW_FLUSH 32 /* flush firewall rule chain */ ++#define IPV6_FW_ZERO 33 /* clear single/all firewall counter(s) */ ++#define IPV6_FW_GET 34 /* get entire firewall rule chain */ ++#define IPV6_RTHDRDSTOPTS 35 /* ip6_dest; send dst option before rthdr */ ++ ++#define IPV6_RECVPKTINFO 36 /* bool; recv if, dst addr */ ++#define IPV6_RECVHOPLIMIT 37 /* bool; recv hop limit */ ++#define IPV6_RECVRTHDR 38 /* bool; recv routing header */ ++#define IPV6_RECVHOPOPTS 39 /* bool; recv hop-by-hop option */ ++#define IPV6_RECVDSTOPTS 40 /* bool; recv dst option after rthdr */ ++ ++#define IPV6_USE_MIN_MTU 42 /* bool; send packets at the minimum MTU */ ++#define IPV6_RECVPATHMTU 43 /* bool; notify an according MTU */ ++#define IPV6_PATHMTU 44 /* mtuinfo; get the current path MTU (sopt), ++ 4 bytes int; MTU notification (cmsg) */ ++ ++#define IPV6_PKTINFO 46 /* in6_pktinfo; send if, src addr */ ++#define IPV6_HOPLIMIT 47 /* int; send hop limit */ ++#define IPV6_NEXTHOP 48 /* sockaddr; next hop addr */ ++#define IPV6_HOPOPTS 49 /* ip6_hbh; send hop-by-hop option */ ++#define IPV6_DSTOPTS 50 /* ip6_dest; send dst option befor rthdr */ ++#define IPV6_RTHDR 51 /* ip6_rthdr; send routing header */ ++ ++#define IPV6_RECVTCLASS 57 /* bool; recv traffic class values */ ++ ++#define IPV6_AUTOFLOWLABEL 59 /* bool; attach flowlabel automagically */ ++ ++#define IPV6_TCLASS 61 /* int; send traffic class value */ ++#define IPV6_DONTFRAG 62 /* bool; disable IPv6 fragmentation */ ++ ++#define IPV6_PREFER_TEMPADDR 63 /* int; prefer temporary addresses as ++ * the source address. ++ */ ++ ++/* Obsolete synonyms for the above. */ ++#define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP ++#define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP ++#define IPV6_RXHOPOPTS IPV6_HOPOPTS ++#define IPV6_RXDSTOPTS IPV6_DSTOPTS ++ ++/* Socket level values for IPv6. */ ++#define SOL_IPV6 41 ++#define SOL_ICMPV6 58 ++ ++/* ++ * Defaults and limits for options ++ */ ++#define IPV6_DEFAULT_MULTICAST_HOPS 1 /* normally limit m'casts to 1 hop */ ++#define IPV6_DEFAULT_MULTICAST_LOOP 1 /* normally hear sends if a member */ ++ ++/* ++ * Argument for IPV6_PORTRANGE: ++ * - which range to search when port is unspecified at bind() or connect() ++ */ ++#define IPV6_PORTRANGE_DEFAULT 0 /* default range */ ++#define IPV6_PORTRANGE_HIGH 1 /* "high" - request firewall bypass */ ++#define IPV6_PORTRANGE_LOW 2 /* "low" - vouchsafe security */ ++ ++/* Routing header options for IPv6. */ ++#define IPV6_RTHDR_LOOSE 0 /* Hop doesn't need to be neighbour. */ ++#define IPV6_RTHDR_STRICT 1 /* Hop must be a neighbour. */ ++ ++#define IPV6_RTHDR_TYPE_0 0 /* IPv6 Routing header type 0. */ ++ ++/* ++ * Names for IP sysctl objects ++ */ ++#define IPV6CTL_FORWARDING 1 /* act as router */ ++#define IPV6CTL_SENDREDIRECTS 2 /* may send redirects when forwarding*/ ++#define IPV6CTL_DEFHLIM 3 /* default Hop-Limit */ ++#define IPV6CTL_FORWSRCRT 5 /* forward source-routed dgrams */ ++#define IPV6CTL_STATS 6 /* stats */ ++#define IPV6CTL_MRTSTATS 7 /* multicast forwarding stats */ ++#define IPV6CTL_MRTPROTO 8 /* multicast routing protocol */ ++#define IPV6CTL_MAXFRAGPACKETS 9 /* max packets reassembly queue */ ++#define IPV6CTL_SOURCECHECK 10 /* verify source route and intf */ ++#define IPV6CTL_SOURCECHECK_LOGINT 11 /* minimume logging interval */ ++#define IPV6CTL_ACCEPT_RTADV 12 ++#define IPV6CTL_KEEPFAITH 13 ++#define IPV6CTL_LOG_INTERVAL 14 ++#define IPV6CTL_HDRNESTLIMIT 15 ++#define IPV6CTL_DAD_COUNT 16 ++#define IPV6CTL_AUTO_FLOWLABEL 17 ++#define IPV6CTL_DEFMCASTHLIM 18 ++#define IPV6CTL_GIF_HLIM 19 /* default HLIM for gif encap packet */ ++#define IPV6CTL_KAME_VERSION 20 ++#define IPV6CTL_USE_DEPRECATED 21 /* use deprecated addr (RFC2462 5.5.4) */ ++#define IPV6CTL_RR_PRUNE 22 /* walk timer for router renumbering */ ++#define IPV6CTL_V6ONLY 24 ++#define IPV6CTL_RTEXPIRE 25 /* cloned route expiration time */ ++#define IPV6CTL_RTMINEXPIRE 26 /* min value for expiration time */ ++#define IPV6CTL_RTMAXCACHE 27 /* trigger level for dynamic expire */ ++ ++#define IPV6CTL_USETEMPADDR 32 /* use temporary addresses (RFC3041) */ ++#define IPV6CTL_TEMPPLTIME 33 /* preferred lifetime for tmpaddrs */ ++#define IPV6CTL_TEMPVLTIME 34 /* valid lifetime for tmpaddrs */ ++#define IPV6CTL_AUTO_LINKLOCAL 35 /* automatic link-local addr assign */ ++#define IPV6CTL_RIP6STATS 36 /* raw_ip6 stats */ ++#define IPV6CTL_PREFER_TEMPADDR 37 /* prefer temporary addr as src */ ++#define IPV6CTL_ADDRCTLPOLICY 38 /* get/set address selection policy */ ++ ++#define IPV6CTL_MAXFRAGS 41 /* max fragments */ ++ ++/* New entries should be added here from current IPV6CTL_MAXID value. */ ++/* to define items, should talk with KAME guys first, for *BSD compatibility */ ++/* 42-44 is already used in KAME */ ++#define IPV6CTL_STEALTH 45 ++#define IPV6CTL_MAXID 46 +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/ioctl-types.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/ioctl-types.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/ioctl-types.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/ioctl-types.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,57 @@ ++/* Structure types for pre-termios terminal ioctls. FreeBSD version. ++ Copyright (C) 1996, 1997, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_IOCTL_H ++# error "Never use directly; include instead." ++#endif ++ ++/* Type of ARG for TIOCGETC and TIOCSETC requests. */ ++/* struct tchars is defined in */ ++#define _IOT_tchars /* Hurd ioctl type field. */ \ ++ _IOT (_IOTS (char), 6, 0, 0, 0, 0) ++ ++/* Type of ARG for TIOCGLTC and TIOCSLTC requests. */ ++/* struct ltchars is defined in */ ++#define _IOT_ltchars /* Hurd ioctl type field. */ \ ++ _IOT (_IOTS (char), 6, 0, 0, 0, 0) ++ ++/* Type of ARG for TIOCGETP and TIOCSETP requests (and gtty and stty). */ ++/* struct sgttyb is defined in */ ++#define _IOT_sgttyb /* Hurd ioctl type field. */ \ ++ _IOT (_IOTS (char), 6, _IOTS (short int), 1, 0, 0) ++ ++/* Type of ARG for TIOCGWINSZ and TIOCSWINSZ requests. */ ++/* struct winsize is defined in */ ++#define _IOT_winsize /* Hurd ioctl type field. */ \ ++ _IOT (_IOTS (unsigned short int), 4, 0, 0, 0, 0) ++ ++/* Many systems that have TIOCGWINSZ define TIOCGSIZE for source ++ compatibility with Sun; they define `struct ttysize' to have identical ++ layout as `struct winsize' and #define TIOCGSIZE to be TIOCGWINSZ ++ (likewise TIOCSSIZE and TIOCSWINSZ). */ ++/* struct ttysize is in FreeBSD originally defined in , ++ which is replaced by GLIBC version -> define here */ ++struct ttysize ++{ ++ unsigned short int ts_lines; ++ unsigned short int ts_cols; ++ unsigned short int ts_xxx; ++ unsigned short int ts_yyy; ++}; ++#define _IOT_ttysize _IOT_winsize +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/ioctls.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/ioctls.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/ioctls.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/ioctls.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,67 @@ ++/*- ++ * Copyright (c) 1982, 1986, 1990 The Regents of the University of California. ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)ioctl.h 8.6 (Berkeley) 3/28/94 ++ */ ++ ++#ifndef _IOCTLS_H_ ++#define _IOCTLS_H_ ++ ++#include ++ ++#include ++ ++/* ++ * @(#)ioctl.h 8.6 (Berkeley) 3/28/94 ++ */ ++ ++#define TIOCGSIZE TIOCGWINSZ ++#define TIOCSSIZE TIOCSWINSZ ++ ++#include ++ ++#include ++ ++#ifndef _SYS_IOCTL_COMPAT_H_ ++#ifndef BURN_BRIDGES ++ ++#undef ECHO /* see bits/termios.h */ ++#undef MDMBUF /* see bits/termios.h */ ++#undef TOSTOP /* see bits/termios.h */ ++#undef FLUSHO /* see bits/termios.h */ ++#undef PENDIN /* see bits/termios.h */ ++#undef NOFLSH /* see bits/termios.h */ ++ ++#include ++ ++#define TAB3 XTABS /* expand tabs on output */ ++ ++#endif /* !BURN_BRIDGES */ ++#endif /* !_SYS_IOCTL_COMPAT_H_ */ ++ ++#endif /* !_IOCTLS_H_ */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/ipc.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/ipc.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/ipc.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/ipc.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,56 @@ ++/* Copyright (C) 1995-1997, 1999, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_IPC_H ++# error "Never use directly; include instead." ++#endif ++ ++#include ++ ++/* Mode bits for `msgget', `semget', and `shmget'. */ ++#define IPC_CREAT 01000 /* create key if key does not exist */ ++#define IPC_EXCL 02000 /* fail if key exists */ ++#define IPC_NOWAIT 04000 /* return error on wait */ ++ ++/* Control commands for `msgctl', `semctl', and `shmctl'. */ ++#define IPC_RMID 0 /* remove identifier */ ++#define IPC_SET 1 /* set `ipc_perm' options */ ++#define IPC_STAT 2 /* get `ipc_perm' options */ ++ ++/* Special key values. */ ++#define IPC_PRIVATE ((key_t) 0) /* private key */ ++ ++#ifdef __USE_BSD ++/* Common mode bits. */ ++# define IPC_R 0400 /* read permission, same as S_IRUSR */ ++# define IPC_W 0200 /* write permission, same as S_IWUSR */ ++# define IPC_M 0x1000 /* control permission */ ++#endif ++ ++ ++/* Data structure used to pass permission information to IPC operations. */ ++struct ipc_perm ++ { ++ __uint16_t /* yuck! */ cuid; /* creator's user ID */ ++ __uint16_t /* yuck! */ cgid; /* creator's group ID */ ++ __uint16_t /* yuck! */ uid; /* owner's user ID */ ++ __uint16_t /* yuck! */ gid; /* owner's group ID */ ++ __mode_t mode; /* read/write permission */ ++ __uint16_t __seq; ++ __key_t __key; ++ }; +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/local_lim.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/local_lim.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/local_lim.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/local_lim.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/mman.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/mman.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/mman.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/mman.h 2007-12-20 02:11:33.000000000 +0100 +@@ -0,0 +1,130 @@ ++/* Definitions for POSIX memory map interface. FreeBSD version. ++ Copyright (C) 1994-1998, 2000-2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_MMAN_H ++# error "Never use directly; include instead." ++#endif ++ ++#include ++#include ++ ++/* Protections are chosen from these bits, OR'd together. The ++ implementation does not necessarily support PROT_EXEC or PROT_WRITE ++ without PROT_READ. The only guarantees are that no writing will be ++ allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ ++ ++#define PROT_NONE 0x00 /* No access. */ ++#define PROT_READ 0x01 /* Pages can be read. */ ++#define PROT_WRITE 0x02 /* Pages can be written. */ ++#define PROT_EXEC 0x04 /* Pages can be executed. */ ++ ++/* Flags contain mapping type, sharing type and options. */ ++ ++/* Mapping type (must choose one and only one of these). */ ++#ifdef __USE_BSD ++# define MAP_FILE 0x0000 /* Mapped from a file or device. */ ++# define MAP_ANON 0x1000 /* Allocated from anonymous virtual memory. */ ++# define MAP_TYPE 0x1000 /* Mask for type field. */ ++# ifdef __USE_MISC ++# define MAP_ANONYMOUS MAP_ANON /* Linux name. */ ++# endif ++#endif ++ ++/* Sharing types (must choose one and only one of these). */ ++#define MAP_SHARED 0x0001 /* Share changes. */ ++#define MAP_PRIVATE 0x0002 /* Changes private; copy pages on write. */ ++#ifdef __USE_BSD ++# define MAP_COPY MAP_PRIVATE /* Virtual copy of region at mapping time. */ ++#endif ++ ++/* Other flags. */ ++#define MAP_FIXED 0x0010 /* Map address must be exactly as requested. */ ++#ifdef __USE_BSD ++#define MAP_RENAME 0x0020 /* Sun: rename private pages to file */ ++#define MAP_NORESERVE 0x0040 /* Sun: don't reserve needed swap area */ ++#define MAP_RESERVED0080 0x0080 /* previously misimplemented MAP_INHERIT */ ++#define MAP_RESERVED0100 0x0100 /* previously unimplemented MAP_NOEXTEND */ ++# define MAP_HASSEMPHORE 0x0200 /* Region may contain semaphores. */ ++# define MAP_STACK 0x0400 /* Region grows down, like a stack. */ ++# define MAP_NOSYNC 0x0800 /* Try to avoid flushing to the disk. */ ++# define MAP_NOCORE 0x20000 /* Don't include these pages in a core dump. */ ++#endif ++ ++/* Advice to `madvise'. */ ++#ifdef __USE_BSD ++# define MADV_NORMAL 0 /* No further special treatment. */ ++# define MADV_RANDOM 1 /* Expect random page references. */ ++# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */ ++# define MADV_WILLNEED 3 /* Will need these pages. */ ++# define MADV_DONTNEED 4 /* Don't need these pages. */ ++# define MADV_FREE 5 /* Don't need these pages, they contain junk. */ ++# define MADV_NOSYNC 6 /* Try to avoid flushing to the disk. */ ++# define MADV_AUTOSYNC 7 /* Use the default flushing strategy. */ ++# define MADV_NOCORE 8 /* Don't include these pages in a core dump. */ ++# define MADV_CORE 9 /* Include pages in a core dump (default). */ ++# define MADV_PROTECT 10 /* protect process from pageout kill */ ++#endif ++ ++/* The POSIX people had to invent similar names for the same things. */ ++#ifdef __USE_XOPEN2K ++# define POSIX_MADV_NORMAL 0 /* No further special treatment. */ ++# define POSIX_MADV_RANDOM 1 /* Expect random page references. */ ++# define POSIX_MADV_SEQUENTIAL 2 /* Expect sequential page references. */ ++# define POSIX_MADV_WILLNEED 3 /* Will need these pages. */ ++# define POSIX_MADV_DONTNEED 4 /* Don't need these pages. */ ++#endif ++ ++/* Flags to `msync'. */ ++#define MS_ASYNC 1 /* Sync memory asynchronously. */ ++#define MS_SYNC 0 /* Synchronous memory sync. */ ++#define MS_INVALIDATE 2 /* Invalidate the caches. */ ++ ++/* Flags for `mlockall' (can be OR'd together). */ ++#define MCL_CURRENT 1 /* Lock all currently mapped pages. */ ++#define MCL_FUTURE 2 /* Lock all additions to address ++ space. */ ++ ++/* Flags for 'minherit'. */ ++#ifdef __USE_BSD ++# define INHERIT_SHARE 0 ++# define INHERIT_COPY 1 ++# define INHERIT_NONE 2 ++#endif ++ ++ ++/* ++ * Return bits from mincore ++ */ ++#ifdef __USE_MISC ++#define MINCORE_INCORE 0x1 /* Page is incore */ ++#define MINCORE_REFERENCED 0x2 /* Page has been referenced by us */ ++#define MINCORE_MODIFIED 0x4 /* Page has been modified by us */ ++#define MINCORE_REFERENCED_OTHER 0x8 /* Page has been referenced */ ++#define MINCORE_MODIFIED_OTHER 0x10 /* Page has been modified */ ++#endif /* Use MISC */ ++ ++#ifdef __USE_BSD ++ ++__BEGIN_DECLS ++ ++extern int minherit (void *__addr, size_t __len, int __inherit); ++ ++__END_DECLS ++ ++#endif /* Use BSD */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/msq.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/msq.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/msq.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/msq.h 2006-11-22 11:44:31.000000000 +0100 +@@ -0,0 +1,73 @@ ++/* Copyright (C) 1995, 1997, 2000, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_MSG_H ++#error "Never use directly; include instead." ++#endif ++ ++#include ++ ++/* Define options for message queue functions. */ ++#define MSG_NOERROR 010000 /* no error if message is too big */ ++ ++/* Types used in the structure definition. */ ++typedef unsigned long int msgqnum_t; ++typedef unsigned long int msglen_t; ++ ++ ++/* Structure of record for one message inside the kernel. ++ The type `struct __msg' is opaque. */ ++struct msqid_ds ++{ ++ struct ipc_perm msg_perm; /* structure describing operation permission */ ++ void *__msg_first; ++ void *__msg_last; ++ msglen_t __msg_cbytes; /* current number of bytes on queue */ ++ msgqnum_t msg_qnum; /* number of messages currently on queue */ ++ msglen_t msg_qbytes; /* max number of bytes allowed on queue */ ++ __pid_t msg_lspid; /* pid of last msgsnd() */ ++ __pid_t msg_lrpid; /* pid of last msgrcv() */ ++ __time_t msg_stime; /* time of last msgsnd command */ ++ long __unused1; ++ __time_t msg_rtime; /* time of last msgrcv command */ ++ long __unused2; ++ __time_t msg_ctime; /* time of last change */ ++ long __unused3; ++ long __unused4[4]; ++}; ++ ++#ifdef __USE_MISC ++ ++# define msg_cbytes __msg_cbytes ++ ++# ifdef _KERNEL ++ ++/* buffer for msgctl calls IPC_INFO, MSG_INFO */ ++struct msginfo ++ { ++ int msgmax; ++ int msgmni; ++ int msgmnb; ++ int msgtql; ++ int msgssz; ++ int msgseg; ++ }; ++ ++# endif ++ ++#endif /* __USE_MISC */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/poll.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/poll.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/poll.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/poll.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,51 @@ ++/* Copyright (C) 1997, 2001-2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_POLL_H ++# error "Never use directly; include instead." ++#endif ++ ++/* Event types that can be polled for. These bits may be set in `events' ++ to indicate the interesting event types; they will appear in `revents' ++ to indicate the status of the file descriptor. */ ++#define POLLIN 0x0001 /* There is data to read. */ ++#define POLLPRI 0x0002 /* There is urgent data to read. */ ++#define POLLOUT 0x0004 /* Writing now will not block. */ ++ ++#ifdef __USE_XOPEN ++/* These values are defined in XPG4.2. */ ++# define POLLRDNORM 0x0040 /* Normal data may be read. */ ++# define POLLRDBAND 0x0080 /* Priority data may be read. */ ++# define POLLWRNORM 0x0004 /* Writing now will not block. */ ++# define POLLWRBAND 0x0100 /* Priority data may be written. */ ++#endif ++ ++#ifdef __USE_BSD ++/* These are extensions for FreeBSD. */ ++# define POLLEXTEND 0x0200 /* File size may have grown. */ ++# define POLLATTRIB 0x0400 /* File attributes may have changed. */ ++# define POLLNLINK 0x0800 /* File may have been moved/removed. */ ++# define POLLWRITE 0x1000 /* File's contents may have changed. */ ++#endif ++ ++/* Event types always implicitly polled for. These bits need not be set in ++ `events', but they will appear in `revents' to indicate the status of ++ the file descriptor. */ ++#define POLLERR 0x0008 /* Error condition. */ ++#define POLLHUP 0x0010 /* Hung up. */ ++#define POLLNVAL 0x0020 /* Invalid polling request. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/posix_opt.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/posix_opt.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/posix_opt.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/posix_opt.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,90 @@ ++/* Define POSIX options for FreeBSD. ++ Copyright (C) 1996-1997, 1999, 2000, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* ++ * Never include this file directly; use instead. ++ */ ++ ++#ifndef _BITS_POSIX_OPT_H ++#define _BITS_POSIX_OPT_H 1 ++ ++/* Job control is supported. */ ++#define _POSIX_JOB_CONTROL 1 ++ ++/* Processes have a saved set-user-ID and a saved set-group-ID. */ ++#define _POSIX_SAVED_IDS 1 ++ ++/* Priority scheduling is supported. */ ++#define _POSIX_PRIORITY_SCHEDULING 1 ++ ++/* Synchronizing file data is supported. */ ++#define _POSIX_SYNCHRONIZED_IO 1 ++ ++/* The fsync function is present. */ ++#define _POSIX_FSYNC 1 ++ ++/* Mapping of files to memory is supported. */ ++#define _POSIX_MAPPED_FILES 1 ++ ++/* Locking of all memory is supported. */ ++#define _POSIX_MEMLOCK 1 ++ ++/* Locking of ranges of memory is supported. */ ++#define _POSIX_MEMLOCK_RANGE 1 ++ ++/* Setting of memory protections is supported. */ ++#define _POSIX_MEMORY_PROTECTION 1 ++ ++/* Implementation supports `poll' function. */ ++#define _POSIX_POLL 1 ++ ++/* Implementation supports `select' and `pselect' functions. */ ++#define _POSIX_SELECT 1 ++ ++/* XPG4.2 shared memory is supported. */ ++#define _XOPEN_SHM 1 ++ ++/* X/Open realtime support is available. */ ++#define _XOPEN_REALTIME 1 ++ ++/* Only root can change owner of file. */ ++#define _POSIX_CHOWN_RESTRICTED 1 ++ ++/* `c_cc' member of 'struct termios' structure can be disabled by ++ using the value _POSIX_VDISABLE. */ ++#define _POSIX_VDISABLE '\0' ++ ++/* The LFS interface is available, except for the asynchronous I/O. */ ++#define _LFS_LARGEFILE 1 ++#define _LFS64_LARGEFILE 1 ++#define _LFS64_STDIO 1 ++ ++/* POSIX timers are available. */ ++#define _POSIX_TIMERS 1 ++ ++/* GNU libc provides regular expression handling. */ ++#define _POSIX_REGEXP 1 ++ ++/* We have a POSIX shell. */ ++#define _POSIX_SHELL 1 ++ ++/* The `spawn' function family is supported. */ ++#define _POSIX_SPAWN 200912L ++ ++#endif /* bits/posix_opt.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/resource.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/resource.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/resource.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/resource.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,200 @@ ++/* Bit values & structures for resource limits. FreeBSD version. ++ Copyright (C) 1994, 1996-1998, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_RESOURCE_H ++# error "Never use directly; include instead." ++#endif ++ ++#include ++ ++/* Transmute defines to enumerations. The macro re-definitions are ++ necessary because some programs want to test for operating system ++ features with #ifdef RUSAGE_SELF. In ISO C the reflexive ++ definition is a no-op. ++ ++ These are the values for FreeBSD. Earlier BSD systems have a subset of ++ these kinds of resource limit. */ ++ ++/* Kinds of resource limit. */ ++enum __rlimit_resource ++{ ++ /* Per-process CPU limit, in seconds. */ ++ RLIMIT_CPU = 0, ++#define RLIMIT_CPU RLIMIT_CPU ++ ++ /* Largest file that can be created, in bytes. */ ++ RLIMIT_FSIZE = 1, ++#define RLIMIT_FSIZE RLIMIT_FSIZE ++ ++ /* Maximum size of data segment, in bytes. */ ++ RLIMIT_DATA = 2, ++#define RLIMIT_DATA RLIMIT_DATA ++ ++ /* Maximum size of stack segment, in bytes. */ ++ RLIMIT_STACK = 3, ++#define RLIMIT_STACK RLIMIT_STACK ++ ++ /* Largest core file that can be created, in bytes. */ ++ RLIMIT_CORE = 4, ++#define RLIMIT_CORE RLIMIT_CORE ++ ++ /* Largest resident set size, in bytes. ++ This affects swapping; processes that are exceeding their ++ resident set size will be more likely to have physical memory ++ taken from them. */ ++ __RLIMIT_RSS = 5, ++#define RLIMIT_RSS __RLIMIT_RSS ++ ++ /* Locked-in-memory address space. */ ++ __RLIMIT_MEMLOCK = 6, ++#define RLIMIT_MEMLOCK __RLIMIT_MEMLOCK ++ ++ /* Number of processes. */ ++ __RLIMIT_NPROC = 7, ++#define RLIMIT_NPROC __RLIMIT_NPROC ++ ++ /* Number of open files. */ ++ RLIMIT_NOFILE = 8, ++#define RLIMIT_NOFILE RLIMIT_NOFILE ++ ++ /* Maximum size of all socket buffers. */ ++ __RLIMIT_SBSIZE = 9, ++#define RLIMIT_SBSIZE __RLIMIT_SBSIZE ++ ++ /* Address space limit. */ ++ RLIMIT_AS = 10, ++#define RLIMIT_AS RLIMIT_AS ++ ++ __RLIMIT_NLIMITS = 11, ++ __RLIM_NLIMITS = __RLIMIT_NLIMITS ++#define RLIMIT_NLIMITS __RLIMIT_NLIMITS ++#define RLIM_NLIMITS __RLIM_NLIMITS ++}; ++ ++/* Value to indicate that there is no limit. */ ++#define RLIM_INFINITY 0x7fffffffffffffffLL ++#ifdef __USE_LARGEFILE64 ++# define RLIM64_INFINITY 0x7fffffffffffffffLL ++#endif ++ ++ ++/* Type for resource quantity measurement. */ ++typedef __rlim_t rlim_t; ++#ifdef __USE_LARGEFILE64 ++typedef __rlim64_t rlim64_t; ++#endif ++ ++struct rlimit ++ { ++ /* The current (soft) limit. */ ++ rlim_t rlim_cur; ++ /* The hard limit. */ ++ rlim_t rlim_max; ++ }; ++ ++#ifdef __USE_LARGEFILE64 ++struct rlimit64 ++ { ++ /* The current (soft) limit. */ ++ rlim64_t rlim_cur; ++ /* The hard limit. */ ++ rlim64_t rlim_max; ++ }; ++#endif ++ ++#define CP_USER 0 ++#define CP_NICE 1 ++#define CP_SYS 2 ++#define CP_INTR 3 ++#define CP_IDLE 4 ++#define CPUSTATES 5 ++ ++/* Whose usage statistics do you want? */ ++enum __rusage_who ++{ ++ /* The calling process. */ ++ RUSAGE_SELF = 0, ++#define RUSAGE_SELF RUSAGE_SELF ++ ++ /* All of its terminated child processes. */ ++ RUSAGE_CHILDREN = -1 ++#define RUSAGE_CHILDREN RUSAGE_CHILDREN ++}; ++ ++#define __need_timeval ++#include /* For `struct timeval'. */ ++ ++/* Structure which says how much of each resource has been used. */ ++struct rusage ++ { ++ /* Total amount of user time used. */ ++ struct timeval ru_utime; ++ /* Total amount of system time used. */ ++ struct timeval ru_stime; ++ /* Maximum resident set size (in kilobytes). */ ++ long int ru_maxrss; ++ /* Amount of sharing of text segment memory ++ with other processes (kilobyte-seconds). */ ++ long int ru_ixrss; ++ /* Amount of data segment memory used (kilobyte-seconds). */ ++ long int ru_idrss; ++ /* Amount of stack memory used (kilobyte-seconds). */ ++ long int ru_isrss; ++ /* Number of soft page faults (i.e. those serviced by reclaiming ++ a page from the list of pages awaiting reallocation. */ ++ long int ru_minflt; ++ /* Number of hard page faults (i.e. those that required I/O). */ ++ long int ru_majflt; ++ /* Number of times a process was swapped out of physical memory. */ ++ long int ru_nswap; ++ /* Number of input operations via the file system. Note: This ++ and `ru_oublock' do not include operations with the cache. */ ++ long int ru_inblock; ++ /* Number of output operations via the file system. */ ++ long int ru_oublock; ++ /* Number of IPC messages sent. */ ++ long int ru_msgsnd; ++ /* Number of IPC messages received. */ ++ long int ru_msgrcv; ++ /* Number of signals delivered. */ ++ long int ru_nsignals; ++ /* Number of voluntary context switches, i.e. because the process ++ gave up the process before it had to (usually to wait for some ++ resource to be available). */ ++ long int ru_nvcsw; ++ /* Number of involuntary context switches, i.e. a higher priority process ++ became runnable or the current process used up its time slice. */ ++ long int ru_nivcsw; ++ }; ++ ++/* Priority limits. */ ++#define PRIO_MIN -20 /* Minimum priority a process can have. */ ++#define PRIO_MAX 20 /* Maximum priority a process can have. */ ++ ++/* The type of the WHICH argument to `getpriority' and `setpriority', ++ indicating what flavor of entity the WHO argument specifies. */ ++enum __priority_which ++{ ++ PRIO_PROCESS = 0, /* WHO is a process ID. */ ++#define PRIO_PROCESS PRIO_PROCESS ++ PRIO_PGRP = 1, /* WHO is a process group ID. */ ++#define PRIO_PGRP PRIO_PGRP ++ PRIO_USER = 2 /* WHO is a user ID. */ ++#define PRIO_USER PRIO_USER ++}; +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sched.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sched.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sched.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sched.h 2008-01-27 20:08:31.000000000 +0100 +@@ -0,0 +1,177 @@ ++/* Definitions of constants and data structure for POSIX 1003.1b-1993 ++ scheduling interface. ++ Copyright (C) 1996, 1997, 2001, 2003 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef __need_schedparam ++ ++#ifndef _SCHED_H ++# error "Never include directly; use instead." ++#endif ++ ++ ++/* Scheduling algorithms. */ ++#define SCHED_OTHER 2 ++#define SCHED_FIFO 1 ++#define SCHED_RR 3 ++ ++ ++#ifdef __USE_MISC ++/* Cloning flags. */ ++# define CSIGNAL 0x000000ff /* Signal mask to be sent at exit. */ ++# define CLONE_VM 0x00000100 /* Set if VM shared between processes. */ ++# define CLONE_FS 0x00000200 /* Set if fs info shared between processes. */ ++# define CLONE_FILES 0x00000400 /* Set if open files shared between processes. */ ++# define CLONE_SIGHAND 0x00000800 /* Set if signal handlers shared. */ ++# define CLONE_PTRACE 0x00002000 /* Set if tracing continues on the child. */ ++# define CLONE_VFORK 0x00004000 /* Set if the parent wants the child to ++ wake it up on mm_release. */ ++# define CLONE_SYSVSEM 0x00040000 /* share system V SEM_UNDO semantics */ ++#endif ++ ++/* The official definition. */ ++struct sched_param ++ { ++ int __sched_priority; ++ }; ++ ++__BEGIN_DECLS ++ ++#ifdef __USE_MISC ++/* Clone current process. */ ++extern int clone (int (*__fn) (void *__arg), void *__child_stack, ++ int __flags, void *__arg) __THROW; ++ ++/* Unshare the specified resources. */ ++extern int unshare (int __flags) __THROW; ++ ++/* Get index of currently used CPU. */ ++extern int sched_getcpu (void) __THROW; ++#endif ++ ++__END_DECLS ++ ++#endif /* need schedparam */ ++ ++#if !defined __defined_schedparam \ ++ && (defined __need_schedparam || defined _SCHED_H) ++# define __defined_schedparam 1 ++/* Data structure to describe a process' schedulability. */ ++struct __sched_param ++ { ++ int __sched_priority; ++ }; ++# undef __need_schedparam ++#endif ++ ++ ++#if defined _SCHED_H && !defined __cpu_set_t_defined ++# define __cpu_set_t_defined ++/* Size definition for CPU sets. */ ++# define __CPU_SETSIZE 1024 ++# define __NCPUBITS (8 * sizeof (__cpu_mask)) ++ ++/* Type for array elements in 'cpu_set_t'. */ ++typedef unsigned long int __cpu_mask; ++ ++/* Basic access functions. */ ++# define __CPUELT(cpu) ((cpu) / __NCPUBITS) ++# define __CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS)) ++ ++/* Data structure to describe CPU mask. */ ++typedef struct ++{ ++ __cpu_mask __bits[__CPU_SETSIZE / __NCPUBITS]; ++} cpu_set_t; ++ ++/* Access functions for CPU masks. */ ++# if __GNUC_PREREQ (2, 91) ++# define __CPU_ZERO_S(setsize, cpusetp) \ ++ do __builtin_memset (cpusetp, '\0', setsize); while (0) ++# else ++# define __CPU_ZERO_S(setsize, cpusetp) \ ++ do { \ ++ size_t __i; \ ++ size_t __imax = (setsize) / sizeof (__cpu_mask); \ ++ cpu_set_t *__arr = (cpusetp); \ ++ for (__i = 0; __i < __imax; ++__i) \ ++ __arr->__bits[__i] = 0; \ ++ } while (0) ++# endif ++# define __CPU_SET_S(cpu, setsize, cpusetp) \ ++ (__extension__ \ ++ ({ size_t __cpu = (cpu); \ ++ __cpu < 8 * (setsize) \ ++ ? ((cpusetp)->__bits[__CPUELT (__cpu)] |= __CPUMASK (__cpu)) : 0; })) ++# define __CPU_CLR_S(cpu, setsize, cpusetp) \ ++ (__extension__ \ ++ ({ size_t __cpu = (cpu); \ ++ __cpu < 8 * (setsize) \ ++ ? ((cpusetp)->__bits[__CPUELT (__cpu)] &= ~__CPUMASK (__cpu)) : 0; })) ++# define __CPU_ISSET_S(cpu, setsize, cpusetp) \ ++ (__extension__ \ ++ ({ size_t __cpu = (cpu); \ ++ __cpu < 8 * (setsize) \ ++ ? (((cpusetp)->__bits[__CPUELT (__cpu)] & __CPUMASK (__cpu))) != 0 \ ++ : 0; })) ++ ++# define __CPU_COUNT_S(setsize, cpusetp) \ ++ __sched_cpucount (setsize, cpusetp) ++ ++# if __GNUC_PREREQ (2, 91) ++# define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \ ++ (__builtin_memcmp (cpusetp1, cpusetp2, setsize) == 0) ++# else ++# define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \ ++ (__extension__ \ ++ ({ cpu_set_t *__arr1 = (cpusetp1); \ ++ cpu_set_t *__arr2 = (cpusetp2); \ ++ size_t __imax = (setsize) / sizeof (__cpu_mask); \ ++ size_t __i; \ ++ for (__i = 0; __i < __imax; ++__i) \ ++ if (__arr1->__bits[__i] != __arr2->__bits[__i]) \ ++ break; \ ++ __i == __imax; })) ++# endif ++ ++# define __CPU_OP_S(setsize, destset, srcset1, srcset2, op) \ ++ (__extension__ \ ++ ({ cpu_set_t *__dest = (destset); \ ++ cpu_set_t *__arr1 = (srcset1); \ ++ cpu_set_t *__arr2 = (srcset2); \ ++ size_t __imax = (setsize) / sizeof (__cpu_mask); \ ++ size_t __i; \ ++ for (__i = 0; __i < __imax; ++__i) \ ++ __dest->__bits[__i] = __arr1->__bits[__i] op __arr2->__bits[__i]; \ ++ __dest; })) ++ ++# define __CPU_ALLOC_SIZE(count) \ ++ ((((count) + __NCPUBITS - 1) / __NCPUBITS) * 8) ++# define __CPU_ALLOC(count) __sched_cpualloc (count) ++# define __CPU_FREE(cpuset) __sched_cpufree (cpuset) ++ ++__BEGIN_DECLS ++ ++extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) ++ __THROW; ++extern cpu_set_t *__sched_cpualloc (size_t __count) __THROW __wur; ++extern void __sched_cpufree (cpu_set_t *__set) __THROW; ++ ++__END_DECLS ++ ++#endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sem.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sem.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sem.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sem.h 2006-11-22 11:44:31.000000000 +0100 +@@ -0,0 +1,91 @@ ++/* Copyright (C) 1995-1998, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_SEM_H ++# error "Never include directly; use instead." ++#endif ++ ++#include ++ ++/* Flags for `semop'. */ ++#define SEM_UNDO 0x1000 /* undo the operation on exit */ ++ ++/* Commands for `semctl'. */ ++#define GETPID 4 /* get sempid */ ++#define GETVAL 5 /* get semval */ ++#define GETALL 6 /* get all semval's */ ++#define GETNCNT 3 /* get semncnt */ ++#define GETZCNT 7 /* get semzcnt */ ++#define SETVAL 8 /* set semval */ ++#define SETALL 9 /* set all semval's */ ++ ++#ifdef __USE_BSD ++# define SEM_R IPC_R /* read permission for user */ ++# define SEM_A IPC_W /* alter permission for user */ ++#endif ++ ++ ++/* Data structure describing a set of semaphores. */ ++struct semid_ds ++{ ++ struct ipc_perm sem_perm; /* operation permission struct */ ++ void *__sem_base; ++ unsigned short int sem_nsems; /* number of semaphores in set */ ++ __time_t sem_otime; /* last semop() time */ ++ long __unused1; ++ __time_t sem_ctime; /* last time changed by semctl() */ ++ long __unused2; ++ long __unused3[4]; ++}; ++ ++/* The user should define a union like the following to use it for arguments ++ for `semctl'. ++ ++ union semun ++ { ++ int val; <= value for SETVAL ++ struct semid_ds *buf; <= buffer for IPC_STAT & IPC_SET ++ unsigned short int *array; <= array for GETALL & SETALL ++ struct seminfo *__buf; <= buffer for IPC_INFO ++ }; ++ ++ Previous versions of this file used to define this union but this is ++ incorrect. One can test the macro _SEM_SEMUN_UNDEFINED to see whether ++ one must define the union or not. */ ++#define _SEM_SEMUN_UNDEFINED 1 ++ ++#ifdef _KERNEL ++ ++/* ++ * semaphore info struct ++ */ ++struct seminfo { ++ int semmap, /* # of entries in semaphore map */ ++ semmni, /* # of semaphore identifiers */ ++ semmns, /* # of semaphores in system */ ++ semmnu, /* # of undo structures in system */ ++ semmsl, /* max # of semaphores per id */ ++ semopm, /* max # of operations per semop call */ ++ semume, /* max # of undo entries per process */ ++ semusz, /* size in bytes of undo structure */ ++ semvmx, /* semaphore maximum value */ ++ semaem; /* adjust on exit max value */ ++}; ++ ++#endif ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/shm.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/shm.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/shm.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/shm.h 2006-11-22 11:44:31.000000000 +0100 +@@ -0,0 +1,74 @@ ++/* Copyright (C) 1995-1997, 2000, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_SHM_H ++# error "Never include directly; use instead." ++#endif ++ ++#include ++ ++/* Permission flag for shmget. */ ++#ifdef __USE_BSD ++# define SHM_R IPC_R /* read permission for user */ ++# define SHM_W IPC_W /* write permission for user */ ++#endif ++ ++/* Flags for `shmat'. */ ++#define SHM_RDONLY 010000 /* attach read-only else read-write */ ++#define SHM_RND 020000 /* round attach address to SHMLBA */ ++ ++/* Commands for `shmctl'. */ ++#if 0 /* FreeBSD does not have these yet. */ ++#define SHM_LOCK 11 /* lock segment (root only) */ ++#define SHM_UNLOCK 12 /* unlock segment (root only) */ ++#endif ++ ++/* Segment low boundary address multiple. */ ++#define SHMLBA (__getpagesize ()) ++extern int __getpagesize (void) __THROW __attribute__ ((__const__)); ++ ++ ++/* Type to count number of attaches. */ ++typedef unsigned short int shmatt_t; ++ ++/* Data structure describing a set of semaphores. */ ++struct shmid_ds ++ { ++ struct ipc_perm shm_perm; /* operation permission struct */ ++ int shm_segsz; /* size of segment in bytes */ ++ __pid_t shm_lpid; /* pid of last shmop */ ++ __pid_t shm_cpid; /* pid of creator */ ++ shmatt_t shm_nattch; /* number of current attaches */ ++ __time_t shm_atime; /* time of last shmat() */ ++ __time_t shm_dtime; /* time of last shmdt() */ ++ __time_t shm_ctime; /* time of last change by shmctl() */ ++ void *__shm_internal; ++ }; ++ ++#ifdef _KERNEL ++ ++struct shminfo { ++ int shmmax, /* max shared memory segment size (bytes) */ ++ shmmin, /* min shared memory segment size (bytes) */ ++ shmmni, /* max number of shared memory identifiers */ ++ shmseg, /* max shared memory segments per process */ ++ shmall; /* max amount of shared memory (pages) */ ++}; ++ ++#endif ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sigaction.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sigaction.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sigaction.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sigaction.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,76 @@ ++/* Copyright (C) 1991-1992,1996-1998,2001-2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SIGNAL_H ++# error "Never include directly; use instead." ++#endif ++ ++/* These definitions match those used by the FreeBSD kernel. */ ++ ++/* Structure describing the action to be taken when a signal arrives. */ ++struct sigaction ++ { ++ /* Signal handler. */ ++#ifdef __USE_POSIX199309 ++ union ++ { ++ /* Used if SA_SIGINFO is not set. */ ++ __sighandler_t sa_handler; ++ /* Used if SA_SIGINFO is set. */ ++ void (*sa_sigaction) (int, siginfo_t *, void *); ++ } ++ __sigaction_handler; ++# define sa_handler __sigaction_handler.sa_handler ++# define sa_sigaction __sigaction_handler.sa_sigaction ++#else ++ __sighandler_t sa_handler; ++#endif ++ ++ /* Special flags. */ ++ int sa_flags; ++ ++ /* Additional set of signals to be blocked. */ ++ __sigset_t sa_mask; ++ }; ++ ++/* Bits in `sa_flags'. */ ++#if defined __USE_UNIX98 || defined __USE_MISC ++# define SA_ONSTACK 0x0001 /* Take signal on signal stack. */ ++# define SA_RESTART 0x0002 /* Restart syscall on signal return. */ ++# define SA_RESETHAND 0x0004 /* Reset to SIG_DFL on entry to handler. */ ++# define SA_NODEFER 0x0010 /* Don't automatically block the signal when ++ its handler is being executed. */ ++# define SA_NOCLDWAIT 0x0020 /* Don't save zombie processes. */ ++# define SA_SIGINFO 0x0040 /* Provide additional info to the handler. */ ++#endif ++#define SA_NOCLDSTOP 0x0008 /* Don't send SIGCHLD when children stop. */ ++ ++#ifdef __USE_MISC ++# define SA_INTERRUPT 0 /* Historical no-op ("not SA_RESTART"). */ ++ ++/* Some aliases for the SA_ constants. */ ++# define SA_NOMASK SA_NODEFER ++# define SA_ONESHOT SA_RESETHAND ++# define SA_STACK SA_ONSTACK ++#endif ++ ++ ++/* Values for the HOW argument to `sigprocmask'. */ ++#define SIG_BLOCK 1 /* Block signals. */ ++#define SIG_UNBLOCK 2 /* Unblock signals. */ ++#define SIG_SETMASK 3 /* Set the set of blocked signals. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/siginfo.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/siginfo.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/siginfo.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/siginfo.h 2007-08-16 21:40:32.000000000 +0200 +@@ -0,0 +1,225 @@ ++/* siginfo_t, sigevent and constants. FreeBSD version. ++ Copyright (C) 1997-1998, 2000-2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#if !defined _SIGNAL_H && !defined __need_siginfo_t \ ++ && !defined __need_sigevent_t ++# error "Never include this file directly. Use instead" ++#endif ++ ++#if (!defined __have_sigval_t \ ++ && (defined _SIGNAL_H || defined __need_siginfo_t \ ++ || defined __need_sigevent_t)) ++# define __have_sigval_t 1 ++ ++/* Type for data associated with a signal. */ ++typedef union sigval ++ { ++ int sival_int; ++ void *sival_ptr; ++ } sigval_t; ++#endif ++ ++#if (!defined __have_siginfo_t \ ++ && (defined _SIGNAL_H || defined __need_siginfo_t)) ++# define __have_siginfo_t 1 ++ ++typedef struct siginfo ++ { ++ int si_signo; /* Signal number. */ ++ int si_errno; /* If non-zero, an errno value associated with ++ this signal, as defined in . */ ++ int si_code; /* Signal code. */ ++ int si_pid; /* Sending process ID. */ ++ unsigned int si_uid; /* Real user ID of sending process. */ ++ int si_status; /* Exit value or signal. */ ++ void *si_addr; /* Address of faulting instruction. */ ++ union sigval si_value; /* Signal value. */ ++ long int si_band; /* Band event for SIGPOLL. */ ++ int __si_spare[7]; ++ } siginfo_t; ++ ++ ++/* Values for `si_code'. Positive values are reserved for kernel-generated ++ signals. */ ++enum ++{ ++ SI_ASYNCIO = 0x10004, /* Sent by AIO completion. */ ++# define SI_ASYNCIO SI_ASYNCIO ++ SI_MESGQ = 0x10005, /* Sent by real time mesq state change. */ ++# define SI_MESGQ SI_MESGQ ++ SI_TIMER = 0x10003, /* Sent by timer expiration. */ ++# define SI_TIMER SI_TIMER ++ SI_QUEUE = 0x10002, /* Sent by sigqueue. */ ++# define SI_QUEUE SI_QUEUE ++ SI_USER = 0x10001, /* Sent by kill, sigsend, raise. */ ++# define SI_USER SI_USER ++ SI_UNDEFINED = 0 ++# define SI_UNDEFINED SI_UNDEFINED ++}; ++ ++#if 0 /* XXX These need verification. See . */ ++ ++/* `si_code' values for SIGILL signal. */ ++enum ++{ ++ ILL_ILLOPC = 1, /* Illegal opcode. */ ++# define ILL_ILLOPC ILL_ILLOPC ++ ILL_ILL_OPN, /* Illegal operand. */ ++# define ILL_ILLOPN ILL_ILLOPN ++ ILL_ILLADR, /* Illegal addressing mode. */ ++# define ILL_ILLADR ILL_ILLADR ++ ILL_ILLTRP, /* Illegal trap. */ ++# define ILL_ILLTRP ILL_ILLTRP ++ ILL_PRVOPC, /* Privileged opcode. */ ++# define ILL_PRVOPC ILL_PRVOPC ++ ILL_PRVREG, /* Privileged register. */ ++# define ILL_PRVREG ILL_PRVREG ++ ILL_COPROC, /* Coprocessor error. */ ++# define ILL_COPROC ILL_COPROC ++ ILL_BADSTK /* Internal stack error. */ ++# define ILL_BADSTK ILL_BADSTK ++}; ++ ++#endif ++ ++/* `si_code' values for SIGFPE signal. */ ++enum ++{ ++ FPE_INTOVF = 1, /* Integer overflow. */ ++# define FPE_INTOVF FPE_INTOVF ++ FPE_INTDIV, /* Integer divide by zero. */ ++# define FPE_INTDIV FPE_INTDIV ++ FPE_FLTDIV, /* Floating point divide by zero. */ ++# define FPE_FLTDIV FPE_FLTDIV ++ FPE_FLTOVF, /* Floating point overflow. */ ++# define FPE_FLTOVF FPE_FLTOVF ++ FPE_FLTUND, /* Floating point underflow. */ ++# define FPE_FLTUND FPE_FLTUND ++ FPE_FLTRES, /* Floating point inexact result. */ ++# define FPE_FLTRES FPE_FLTRES ++ FPE_FLTINV, /* Floating point invalid operation. */ ++# define FPE_FLTINV FPE_FLTINV ++ FPE_FLTSUB /* Subscript out of range. */ ++# define FPE_FLTSUB FPE_FLTSUB ++}; ++ ++#if 0 /* XXX These need verification. See . */ ++/* `si_code' values for SIGSEGV signal. */ ++enum ++{ ++ SEGV_MAPERR = 1, /* Address not mapped to object. */ ++# define SEGV_MAPERR SEGV_MAPERR ++ SEGV_ACCERR /* Invalid permissions for mapped object. */ ++# define SEGV_ACCERR SEGV_ACCERR ++}; ++ ++/* `si_code' values for SIGBUS signal. */ ++enum ++{ ++ BUS_ADRALN = 1, /* Invalid address alignment. */ ++# define BUS_ADRALN BUS_ADRALN ++ BUS_ADRERR, /* Non-existant physical address. */ ++# define BUS_ADRERR BUS_ADRERR ++ BUS_OBJERR /* Object specific hardware error. */ ++# define BUS_OBJERR BUS_OBJERR ++}; ++ ++/* `si_code' values for SIGTRAP signal. */ ++enum ++{ ++ TRAP_BRKPT = 1, /* Process breakpoint. */ ++# define TRAP_BRKPT TRAP_BRKPT ++ TRAP_TRACE /* Process trace trap. */ ++# define TRAP_TRACE TRAP_TRACE ++}; ++ ++#endif ++ ++/* `si_code' values for SIGCHLD signal. */ ++/* XXX These are only used by the waitid() function, not by the kernel. */ ++enum ++{ ++ CLD_EXITED = 1, /* Child has exited. */ ++# define CLD_EXITED CLD_EXITED ++ CLD_KILLED, /* Child was killed. */ ++# define CLD_KILLED CLD_KILLED ++ CLD_DUMPED, /* Child terminated abnormally. */ ++# define CLD_DUMPED CLD_DUMPED ++ CLD_TRAPPED, /* Traced child has trapped. */ ++# define CLD_TRAPPED CLD_TRAPPED ++ CLD_STOPPED, /* Child has stopped. */ ++# define CLD_STOPPED CLD_STOPPED ++ CLD_CONTINUED /* Stopped child has continued. */ ++# define CLD_CONTINUED CLD_CONTINUED ++}; ++ ++#if 0 /* XXX These need verification. See . */ ++ ++/* `si_code' values for SIGPOLL signal. */ ++enum ++{ ++ POLL_IN = 1, /* Data input available. */ ++# define POLL_IN POLL_IN ++ POLL_OUT, /* Output buffers available. */ ++# define POLL_OUT POLL_OUT ++ POLL_MSG, /* Input message available. */ ++# define POLL_MSG POLL_MSG ++ POLL_ERR, /* I/O error. */ ++# define POLL_ERR POLL_ERR ++ POLL_PRI, /* High priority input available. */ ++# define POLL_PRI POLL_PRI ++ POLL_HUP /* Device disconnected. */ ++# define POLL_HUP POLL_HUP ++}; ++ ++#endif ++ ++# undef __need_siginfo_t ++#endif /* !have siginfo_t && (have _SIGNAL_H || need siginfo_t). */ ++ ++ ++#if (defined _SIGNAL_H || defined __need_sigevent_t) \ ++ && !defined __have_sigevent_t ++# define __have_sigevent_t 1 ++ ++/* Structure to transport application-defined values with signals. */ ++ ++typedef struct sigevent ++ { ++ int sigev_notify; ++ int sigev_signo; ++ sigval_t sigev_value; ++ /* Not yet supported by the kernel. */ ++ void (*sigev_notify_function) (sigval_t); /* Function to start. */ ++ void *sigev_notify_attributes; /* Really pthread_attr_t. */ ++ } sigevent_t; ++ ++/* `sigev_notify' values. */ ++enum ++{ ++ SIGEV_SIGNAL = 1, /* Notify via signal. */ ++# define SIGEV_SIGNAL SIGEV_SIGNAL ++ SIGEV_NONE = 0, /* Other notification: meaningless. */ ++# define SIGEV_NONE SIGEV_NONE ++ /* Not yet supported by the kernel. */ ++ SIGEV_THREAD = 2 /* Deliver via thread creation. */ ++# define SIGEV_THREAD SIGEV_THREAD ++}; ++ ++#endif /* have _SIGNAL_H. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/signum.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/signum.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/signum.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/signum.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,71 @@ ++/* Signal number definitions. FreeBSD version. ++ Copyright (C) 1991-1993, 1996, 1998, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifdef _SIGNAL_H ++ ++/* This file defines the fake signal functions and signal ++ number constants for 4.2 or 4.3 BSD-derived Unix system. */ ++ ++/* Fake signal functions. */ ++#define SIG_ERR ((__sighandler_t) -1) /* Error return. */ ++#define SIG_DFL ((__sighandler_t) 0) /* Default action. */ ++#define SIG_IGN ((__sighandler_t) 1) /* Ignore signal. */ ++ ++#define SIG_CATCH ((__sighandler_t) 2) /* FreeBSD specific ? */ ++#define SIG_HOLD ((__sighandler_t) 3) /* Add signal to hold mask. */ ++ ++/* Signals. */ ++#define SIGHUP 1 /* Hangup (POSIX). */ ++#define SIGINT 2 /* Interrupt (ANSI). */ ++#define SIGQUIT 3 /* Quit (POSIX). */ ++#define SIGILL 4 /* Illegal instruction (ANSI). */ ++#define SIGABRT SIGIOT /* Abort (ANSI). */ ++#define SIGTRAP 5 /* Trace trap (POSIX). */ ++#define SIGIOT 6 /* IOT trap (4.2 BSD). */ ++#define SIGEMT 7 /* EMT trap (4.2 BSD). */ ++#define SIGFPE 8 /* Floating-point exception (ANSI). */ ++#define SIGKILL 9 /* Kill, unblockable (POSIX). */ ++#define SIGBUS 10 /* Bus error (4.2 BSD). */ ++#define SIGSEGV 11 /* Segmentation violation (ANSI). */ ++#define SIGSYS 12 /* Bad argument to system call (4.2 BSD). */ ++#define SIGPIPE 13 /* Broken pipe (POSIX). */ ++#define SIGALRM 14 /* Alarm clock (POSIX). */ ++#define SIGTERM 15 /* Termination (ANSI). */ ++#define SIGURG 16 /* Urgent condition on socket (4.2 BSD). */ ++#define SIGSTOP 17 /* Stop, unblockable (POSIX). */ ++#define SIGTSTP 18 /* Keyboard stop (POSIX). */ ++#define SIGCONT 19 /* Continue (POSIX). */ ++#define SIGCHLD 20 /* Child status has changed (POSIX). */ ++#define SIGCLD SIGCHLD /* Same as SIGCHLD (System V). */ ++#define SIGTTIN 21 /* Background read from tty (POSIX). */ ++#define SIGTTOU 22 /* Background write to tty (POSIX). */ ++#define SIGIO 23 /* I/O now possible (4.2 BSD). */ ++#define SIGPOLL SIGIO /* Pollable event occurred (System V). */ ++#define SIGXCPU 24 /* CPU limit exceeded (4.2 BSD). */ ++#define SIGXFSZ 25 /* File size limit exceeded (4.2 BSD). */ ++#define SIGVTALRM 26 /* Virtual alarm clock (4.2 BSD). */ ++#define SIGPROF 27 /* Profiling alarm clock (4.2 BSD). */ ++#define SIGWINCH 28 /* Window size change (4.3 BSD, Sun). */ ++#define SIGINFO 29 /* Information request (4.4 BSD). */ ++#define SIGUSR1 30 /* User-defined signal 1 (POSIX). */ ++#define SIGUSR2 31 /* User-defined signal 2 (POSIX). */ ++ ++#endif /* included. */ ++ ++#define _NSIG 129 /* Biggest signal number + 1. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sigset.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sigset.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sigset.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sigset.h 2008-02-17 14:48:16.000000000 +0100 +@@ -0,0 +1,140 @@ ++/* __sig_atomic_t, __sigset_t, and related definitions. FreeBSD version. ++ Copyright (C) 1994-1996, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SIGSET_H_types ++# define _SIGSET_H_types 1 ++ ++typedef int __sig_atomic_t; ++ ++/* A `sigset_t' has a bit for each signal. */ ++__extension__ typedef struct ++ { ++ __extension__ union ++ { ++ unsigned int __sigbits[4]; ++ unsigned int __bits[4]; ++ }; ++ } __sigset_t; ++ ++#endif ++ ++ ++/* We only want to define these functions if was actually ++ included; otherwise we were included just to define the types. Since we ++ are namespace-clean, it wouldn't hurt to define extra macros. But ++ trouble can be caused by functions being defined (e.g., any global ++ register vars declared later will cause compilation errors). */ ++ ++#if !defined _SIGSET_H_fns && defined _SIGNAL_H ++# define _SIGSET_H_fns 1 ++ ++# ifndef _EXTERN_INLINE ++# define _EXTERN_INLINE __extern_inline ++# endif ++ ++/* Return a mask that includes the bit for SIG only. */ ++# define __sigmask(sig) ((unsigned int) 1 << ((sig) - 1) % 32) ++ ++/* Return the word index for SIG. */ ++# define __sigword(sig) (((sig) - 1) >> 5) ++ ++# if defined __GNUC__ && __GNUC__ >= 2 ++# define __sigemptyset(set) \ ++ (__extension__ ({ sigset_t *__set = (set); \ ++ __set->__sigbits[0] = 0; __set->__sigbits[1] = 0; \ ++ __set->__sigbits[2] = 0; __set->__sigbits[3] = 0; \ ++ 0; })) ++# define __sigfillset(set) \ ++ (__extension__ ({ sigset_t *__set = (set); \ ++ __set->__sigbits[0] = ~0; __set->__sigbits[1] = ~0; \ ++ __set->__sigbits[2] = ~0; __set->__sigbits[3] = ~0; \ ++ 0; })) ++ ++# ifdef __USE_GNU ++/* The POSIX does not specify for handling the whole signal set in one ++ command. This is often wanted and so we define three more functions ++ here. */ ++# define __sigisemptyset(set) \ ++ (__extension__ ({ const sigset_t *__set = (set); \ ++ __set->__sigbits[0] == 0 \ ++ && __set->__sigbits[1] == 0 \ ++ && __set->__sigbits[2] == 0 \ ++ && __set->__sigbits[3] == 0; })) ++# define __sigandset(dest, left, right) \ ++ (__extension__ ({ sigset_t *__dest = (dest); \ ++ const sigset_t *__left = (left); \ ++ const sigset_t *__right = (right); \ ++ __dest->__sigbits[0] = \ ++ __left->__sigbits[0] & __right->__sigbits[0]; \ ++ __dest->__sigbits[1] = \ ++ __left->__sigbits[1] & __right->__sigbits[1]; \ ++ __dest->__sigbits[2] = \ ++ __left->__sigbits[2] & __right->__sigbits[2]; \ ++ __dest->__sigbits[3] = \ ++ __left->__sigbits[3] & __right->__sigbits[3]; \ ++ 0; })) ++# define __sigorset(dest, left, right) \ ++ (__extension__ ({ sigset_t *__dest = (dest); \ ++ const sigset_t *__left = (left); \ ++ const sigset_t *__right = (right); \ ++ __dest->__sigbits[0] = \ ++ __left->__sigbits[0] | __right->__sigbits[0]; \ ++ __dest->__sigbits[1] = \ ++ __left->__sigbits[1] | __right->__sigbits[1]; \ ++ __dest->__sigbits[2] = \ ++ __left->__sigbits[2] | __right->__sigbits[2]; \ ++ __dest->__sigbits[3] = \ ++ __left->__sigbits[3] | __right->__sigbits[3]; \ ++ 0; })) ++# endif ++# endif ++ ++/* These functions needn't check for a bogus signal number -- error ++ checking is done in the non __ versions. */ ++ ++extern int __sigismember (__const __sigset_t *, int); ++extern int __sigaddset (__sigset_t *, int); ++extern int __sigdelset (__sigset_t *, int); ++ ++# ifdef __USE_EXTERN_INLINES ++ ++_EXTERN_INLINE int ++__sigismember (__const __sigset_t *__set, int __sig) ++{ ++ return (__set->__sigbits[__sigword (__sig)] & __sigmask (__sig) ? 1 : 0); ++} ++ ++_EXTERN_INLINE int ++__sigaddset (__sigset_t *__set, int __sig) ++{ ++ __set->__sigbits[__sigword (__sig)] |= __sigmask (__sig); ++ return 0; ++} ++ ++_EXTERN_INLINE int ++__sigdelset (__sigset_t *__set, int __sig) ++{ ++ __set->__sigbits[__sigword (__sig)] &= ~__sigmask (__sig); ++ return 0; ++} ++ ++# endif ++ ++ ++#endif /* ! _SIGSET_H_fns. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/socket.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/socket.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/socket.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/socket.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,381 @@ ++/* System-specific socket constants and types. FreeBSD version. ++ Copyright (C) 1991-1992,1994-1999,2000-2002 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef __BITS_SOCKET_H ++#define __BITS_SOCKET_H 1 ++ ++#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H ++# error "Never include directly; use instead." ++#endif ++ ++#define __need_size_t ++#define __need_NULL ++#include ++ ++#include /* XXX Is this allowed? */ ++#include ++ ++/* Type for length arguments in socket calls. */ ++#ifndef __socklen_t_defined ++typedef __socklen_t socklen_t; ++# define __socklen_t_defined ++#endif ++ ++ ++/* Types of sockets. */ ++enum __socket_type ++{ ++ SOCK_STREAM = 1, /* Sequenced, reliable, connection-based ++ byte streams. */ ++#define SOCK_STREAM SOCK_STREAM ++ SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams ++ of fixed maximum length. */ ++#define SOCK_DGRAM SOCK_DGRAM ++ SOCK_RAW = 3, /* Raw protocol interface. */ ++#define SOCK_RAW SOCK_RAW ++ SOCK_RDM = 4, /* Reliably-delivered messages. */ ++#define SOCK_RDM SOCK_RDM ++ SOCK_SEQPACKET = 5 /* Sequenced, reliable, connection-based, ++ datagrams of fixed maximum length. */ ++#define SOCK_SEQPACKET SOCK_SEQPACKET ++}; ++ ++/* Protocol families. */ ++#define PF_UNSPEC 0 /* Unspecified. */ ++#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */ ++#define PF_UNIX PF_LOCAL /* Old BSD name for PF_LOCAL. */ ++#define PF_FILE PF_LOCAL /* POSIX name for PF_LOCAL. */ ++#define PF_INET 2 /* IP protocol family. */ ++#define PF_IMPLINK 3 /* ARPAnet IMP protocol. */ ++#define PF_PUP 4 /* PUP protocols. */ ++#define PF_CHAOS 5 /* MIT Chaos protocols. */ ++#define PF_NS 6 /* Xerox NS protocols. */ ++#define PF_ISO 7 /* ISO protocols. */ ++#define PF_OSI PF_ISO ++#define PF_ECMA 8 /* ECMA protocols. */ ++#define PF_DATAKIT 9 /* AT&T Datakit protocols. */ ++#define PF_CCITT 10 /* CCITT protocols (X.25 et al). */ ++#define PF_SNA 11 /* IBM SNA protocol. */ ++#define PF_DECnet 12 /* DECnet protocols. */ ++#define PF_DLI 13 /* Direct data link interface. */ ++#define PF_LAT 14 /* DEC Local Area Transport protocol. */ ++#define PF_HYLINK 15 /* NSC Hyperchannel protocol. */ ++#define PF_APPLETALK 16 /* Don't use this. */ ++#define PF_ROUTE 17 /* Internal Routing Protocol. */ ++#define PF_LINK 18 /* Link layer interface. */ ++#define PF_XTP 19 /* eXpress Transfer Protocol (no AF). */ ++#define PF_COIP 20 /* Connection-oriented IP, aka ST II. */ ++#define PF_CNT 21 /* Computer Network Technology. */ ++#define PF_RTIP 22 /* Help Identify RTIP packets. **/ ++#define PF_IPX 23 /* Novell Internet Protocol. */ ++#define PF_SIP 24 /* Simple Internet Protocol. */ ++#define PF_PIP 25 /* Help Identify PIP packets. */ ++#define PF_ISDN 26 /* Integrated Services Digital Network. */ ++#define PF_KEY 27 /* Internal key-management function. */ ++#define PF_INET6 28 /* IP version 6. */ ++#define PF_NATM 29 /* Native ATM access. */ ++#define PF_ATM 30 /* ATM. */ ++#define PF_HDRCMPLT 31 /* Used by BPF to not rewrite headers in ++ interface output routine. */ ++#define PF_NETGRAPH 32 /* Netgraph sockets. */ ++#define PF_MAX 33 ++ ++/* Address families. */ ++#define AF_UNSPEC PF_UNSPEC ++#define AF_LOCAL PF_LOCAL ++#define AF_UNIX PF_UNIX ++#define AF_FILE PF_FILE ++#define AF_INET PF_INET ++#define AF_IMPLINK PF_IMPLINK ++#define AF_PUP PF_PUP ++#define AF_CHAOS PF_CHAOS ++#define AF_NS PF_NS ++#define AF_ISO PF_ISO ++#define AF_OSI PF_OSI ++#define AF_ECMA PF_ECMA ++#define AF_DATAKIT PF_DATAKIT ++#define AF_CCITT PF_CCITT ++#define AF_SNA PF_SNA ++#define AF_DECnet PF_DECnet ++#define AF_DLI PF_DLI ++#define AF_LAT PF_LAT ++#define AF_HYLINK PF_HYLINK ++#define AF_APPLETALK PF_APPLETALK ++#define AF_ROUTE PF_ROUTE ++#define AF_LINK PF_LINK ++#define pseudo_AF_XTP PF_XTP ++#define AF_COIP PF_COIP ++#define AF_CNT PF_CNT ++#define pseudo_AF_RTIP PF_RTIP ++#define AF_IPX PF_IPX ++#define AF_SIP PF_SIP ++#define pseudo_AF_PIP PF_PIP ++#define AF_ISDN PF_ISDN ++#define AF_E164 AF_ISDN /* CCITT E.164 recommendation. */ ++#define pseudo_AF_KEY PF_KEY ++#define AF_INET6 PF_INET6 ++#define AF_NATM PF_NATM ++#define AF_ATM PF_ATM ++#define pseudo_AF_HDRCMPLT PF_HDRCMPLT ++#define AF_NETGRAPH PF_NETGRAPH ++#define AF_MAX PF_MAX ++ ++/* Maximum queue length specifiable by listen. */ ++#define SOMAXCONN 128 /* 5 on the original 4.4 BSD. */ ++ ++/* Get the definition of the macro to define the common sockaddr members. */ ++#include ++ ++/* Structure describing a generic socket address. */ ++struct sockaddr ++ { ++ __SOCKADDR_COMMON (sa_); /* Common data: address family and length. */ ++ char sa_data[14]; /* Address data. */ ++ }; ++ ++ ++/* Structure large enough to hold any socket address (with the historical ++ exception of AF_UNIX). We reserve 128 bytes. */ ++#if ULONG_MAX > 0xffffffff ++# define __ss_aligntype __uint64_t ++#else ++# define __ss_aligntype __uint32_t ++#endif ++#define _SS_SIZE 128 ++#define _SS_PADSIZE (_SS_SIZE - (2 * sizeof (__ss_aligntype))) ++ ++struct sockaddr_storage ++ { ++ __SOCKADDR_COMMON (ss_); /* Address family, etc. */ ++ __ss_aligntype __ss_align; /* Force desired alignment. */ ++ char __ss_padding[_SS_PADSIZE]; ++ }; ++ ++ ++/* Bits in the FLAGS argument to `send', `recv', et al. */ ++enum ++ { ++ MSG_OOB = 0x01, /* Process out-of-band data. */ ++#define MSG_OOB MSG_OOB ++ MSG_PEEK = 0x02, /* Peek at incoming messages. */ ++#define MSG_PEEK MSG_PEEK ++ MSG_DONTROUTE = 0x04, /* Don't use local routing. */ ++#define MSG_DONTROUTE MSG_DONTROUTE ++ MSG_EOR = 0x08, /* Data completes record. */ ++#define MSG_EOR MSG_EOR ++ MSG_TRUNC = 0x10, /* Data discarded before delivery. */ ++#define MSG_TRUNC MSG_TRUNC ++ MSG_CTRUNC = 0x20, /* Control data lost before delivery. */ ++#define MSG_CTRUNC MSG_CTRUNC ++ MSG_WAITALL = 0x40, /* Wait for full request or error. */ ++#define MSG_WAITALL MSG_WAITALL ++ MSG_DONTWAIT = 0x80, /* This message should be nonblocking. */ ++#define MSG_DONTWAIT MSG_DONTWAIT ++ MSG_EOF = 0x100, /* Data completes connection. */ ++#define MSG_EOF MSG_EOF ++ MSG_COMPAT = 0x8000,/* Used in sendit(). */ ++#define MSG_COMPAT MSG_COMPAT ++ MSG_NOSIGNAL = 0x20000 /* do not generate SIGPIPE on EOF */ ++#if 0 /* available since FreeBSD 6.0 */ ++#define MSG_NOSIGNAL MSG_NOSIGNAL ++#endif ++ }; ++ ++ ++/* Structure describing messages sent by ++ `sendmsg' and received by `recvmsg'. */ ++struct msghdr ++ { ++ void *msg_name; /* Address to send to/receive from. */ ++ socklen_t msg_namelen; /* Length of address data. */ ++ ++ struct iovec *msg_iov; /* Vector of data to send/receive into. */ ++ int msg_iovlen; /* Number of elements in the vector. */ ++ ++ void *msg_control; /* Ancillary data (eg BSD filedesc passing). */ ++ socklen_t msg_controllen; /* Ancillary data buffer length. */ ++ ++ int msg_flags; /* Flags in received message. */ ++ }; ++ ++/* Structure used for storage of ancillary data object information. */ ++struct cmsghdr ++ { ++ socklen_t cmsg_len; /* Length of data in cmsg_data plus length ++ of cmsghdr structure. */ ++ int cmsg_level; /* Originating protocol. */ ++ int cmsg_type; /* Protocol specific type. */ ++#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L ++ __extension__ unsigned char __cmsg_data __flexarr __attribute__ ((aligned (__alignof__(size_t)))); /* Ancillary data. */ ++#endif ++ }; ++ ++#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg) ++ ++#define CMSG_FIRSTHDR(mhdr) \ ++ ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \ ++ ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL) ++ ++#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \ ++ & (size_t) ~(sizeof (size_t) - 1)) ++#define CMSG_SPACE(len) (CMSG_ALIGN (len) \ ++ + CMSG_ALIGN (sizeof (struct cmsghdr))) ++#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len)) ++ ++/* Ancillary data object manipulation macros. */ ++#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L ++# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data) ++#else ++# define CMSG_DATA(cmsg) ((unsigned char *) (cmsg) + CMSG_ALIGN(sizeof (struct cmsghdr))) ++#endif ++ ++extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr, ++ struct cmsghdr *__cmsg) __THROW; ++#ifdef __USE_EXTERN_INLINES ++# ifndef _EXTERN_INLINE ++# define _EXTERN_INLINE extern __inline ++# endif ++_EXTERN_INLINE struct cmsghdr * ++__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)) ++{ ++ if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr)) ++ /* The kernel header does this so there may be a reason. */ ++ return 0; ++ ++ __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg ++ + CMSG_ALIGN (__cmsg->cmsg_len)); ++ if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control ++ + __mhdr->msg_controllen) ++ || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len) ++ > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen))) ++ /* No more entries. */ ++ return 0; ++ return __cmsg; ++} ++#endif /* Use `extern inline'. */ ++ ++/* Socket level message types. */ ++enum ++ { ++ SCM_RIGHTS = 0x01, /* Access rights (array of int). */ ++#define SCM_RIGHTS SCM_RIGHTS ++ SCM_TIMESTAMP = 0x02, /* Timestamp (struct timeval). */ ++#define SCM_TIMESTAMP SCM_TIMESTAMP ++ SCM_CREDS = 0x03 /* Process creds (struct cmsgcred). */ ++#define SCM_CREDS SCM_CREDS ++ }; ++ ++/* Unfortunately, BSD practice dictates this structure be of fixed size. ++ If there are more than CMGROUP_MAX groups, the list is truncated. ++ (On GNU systems, the `cmcred_euid' field is just the first in the ++ list of effective UIDs.) */ ++#define CMGROUP_MAX 16 ++ ++/* Structure delivered by SCM_CREDS. This describes the identity of the ++ sender of the data simultaneously received on the socket. By BSD ++ convention, this is included only when a sender on a AF_LOCAL socket ++ sends cmsg data of this type and size; the sender's structure is ++ ignored, and the system fills in the various IDs of the sender process. */ ++struct cmsgcred ++ { ++ __pid_t cmcred_pid; ++ __uid_t cmcred_uid; ++ __uid_t cmcred_euid; ++ __gid_t cmcred_gid; ++ short cmcred_ngroups; ++ __gid_t cmcred_groups[CMGROUP_MAX]; ++ }; ++ ++/* Protocol number used to manipulate socket-level options ++ with `getsockopt' and `setsockopt'. */ ++#define SOL_SOCKET 0xffff ++ ++/* Socket-level options for `getsockopt' and `setsockopt'. */ ++enum ++ { ++ SO_DEBUG = 0x0001, /* Record debugging information. */ ++#define SO_DEBUG SO_DEBUG ++ SO_ACCEPTCONN = 0x0002, /* Accept connections on socket. */ ++#define SO_ACCEPTCONN SO_ACCEPTCONN ++ SO_REUSEADDR = 0x0004, /* Allow reuse of local addresses. */ ++#define SO_REUSEADDR SO_REUSEADDR ++ SO_KEEPALIVE = 0x0008, /* Keep connections alive and send ++ SIGPIPE when they die. */ ++#define SO_KEEPALIVE SO_KEEPALIVE ++ SO_DONTROUTE = 0x0010, /* Don't do local routing. */ ++#define SO_DONTROUTE SO_DONTROUTE ++ SO_BROADCAST = 0x0020, /* Allow transmission of ++ broadcast messages. */ ++#define SO_BROADCAST SO_BROADCAST ++ SO_USELOOPBACK = 0x0040, /* Use the software loopback to avoid ++ hardware use when possible. */ ++#define SO_USELOOPBACK SO_USELOOPBACK ++ SO_LINGER = 0x0080, /* Block on close of a reliable ++ socket to transmit pending data. */ ++#define SO_LINGER SO_LINGER ++ SO_OOBINLINE = 0x0100, /* Receive out-of-band data in-band. */ ++#define SO_OOBINLINE SO_OOBINLINE ++ SO_REUSEPORT = 0x0200, /* Allow local address and port reuse. */ ++#define SO_REUSEPORT SO_REUSEPORT ++ SO_TIMESTAMP = 0x0400, /* Timestamp received dgram traffic. */ ++#define SO_TIMESTAMP SO_TIMESTAMP ++ SO_SNDBUF = 0x1001, /* Send buffer size. */ ++#define SO_SNDBUF SO_SNDBUF ++ SO_RCVBUF = 0x1002, /* Receive buffer. */ ++#define SO_RCVBUF SO_RCVBUF ++ SO_SNDLOWAT = 0x1003, /* Send low-water mark. */ ++#define SO_SNDLOWAT SO_SNDLOWAT ++ SO_RCVLOWAT = 0x1004, /* Receive low-water mark. */ ++#define SO_RCVLOWAT SO_RCVLOWAT ++ SO_SNDTIMEO = 0x1005, /* Send timeout. */ ++#define SO_SNDTIMEO SO_SNDTIMEO ++ SO_RCVTIMEO = 0x1006, /* Receive timeout. */ ++#define SO_RCVTIMEO SO_RCVTIMEO ++ SO_ERROR = 0x1007, /* Get and clear error status. */ ++#define SO_ERROR SO_ERROR ++ SO_STYLE = 0x1008, /* Get socket connection style. */ ++#define SO_STYLE SO_STYLE ++ SO_TYPE = SO_STYLE /* Compatible name for SO_STYLE. */ ++#define SO_TYPE SO_TYPE ++ }; ++ ++/* Structure used to manipulate the SO_LINGER option. */ ++struct linger ++ { ++ int l_onoff; /* Nonzero to linger on close. */ ++ int l_linger; /* Time to linger. */ ++ }; ++ ++ ++#ifdef __USE_BSD ++ ++struct sf_hdtr; ++ ++__BEGIN_DECLS ++ ++extern int bsd_sendfile (int __in_fd, int __out_sock, ++ __off_t __in_offset, size_t __nbytes, ++ struct sf_hdtr *__hdtr, __off_t *__sockbytes, ++ int __flags) __THROW; ++ ++__END_DECLS ++ ++#endif /* Use BSD */ ++ ++#endif /* bits/socket.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/stat.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/stat.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/stat.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/stat.h 2007-12-09 13:56:26.000000000 +0100 +@@ -0,0 +1,199 @@ ++/* Copyright (C) 1992, 1996-1997, 2000, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_STAT_H ++# error "Never include directly; use instead." ++#endif ++ ++/* This structure needs to be defined in accordance with the ++ implementation of __stat, __fstat, and __lstat. */ ++ ++#include ++ ++/* Versions of the 'struct stat' data structure. */ ++#define _STAT_VER_ostat 0 /* 'struct ostat' in /usr/src/sys/sys/stat.h */ ++#define _STAT_VER_stat 1 /* 'struct stat' in /usr/src/sys/sys/stat.h */ ++#define _STAT_VER_nstat 2 /* 'struct nstat' in /usr/src/sys/sys/stat.h */ ++#define _STAT_VER_gstat 3 /* glibc's 'struct stat' without LFS */ ++/* By default we use _STAT_VER_gstat, but we support also _STAT_VER_stat */ ++#define _STAT_VER _STAT_VER_gstat ++ ++/* Structure describing file characteristics. */ ++struct stat ++ { ++ __dev_t st_dev; /* Device containing the file. */ ++#ifndef __USE_FILE_OFFSET64 ++ __ino_t st_ino; /* File serial number. */ ++#else ++ __ino64_t st_ino; /* File serial number. */ ++#endif ++ ++ __uint32_t st_mode; /* File mode. */ ++ __uint32_t st_nlink; /* Link count. */ ++ ++ __uid_t st_uid; /* User ID of the file's owner. */ ++ __gid_t st_gid; /* Group ID of the file's group. */ ++ ++ __dev_t st_rdev; /* Device number, if device. */ ++ ++#ifdef __USE_MISC ++ /* Nanosecond resolution timestamps are stored in a format ++ equivalent to 'struct timespec'. This is the type used ++ whenever possible but the Unix namespace rules do not allow the ++ identifier 'timespec' to appear in the header. ++ Therefore we have to handle the use of this header in strictly ++ standard-compliant sources special. */ ++ struct timespec st_atim; /* Time of last access. */ ++ struct timespec st_mtim; /* Time of last modification. */ ++ struct timespec st_ctim; /* Time of last status change. */ ++# define st_atime st_atim.tv_sec /* Backward compatibility. */ ++# define st_mtime st_mtim.tv_sec ++# define st_ctime st_ctim.tv_sec ++#else ++ __time_t st_atime; /* Time of last access. */ ++ long int st_atimensec; /* Nanoseconds of last access. */ ++ __time_t st_mtime; /* Time of last modification. */ ++ long int st_mtimensec; /* Nanoseconds of last modification. */ ++ __time_t st_ctime; /* Time of last status change. */ ++ long int st_ctimensec; /* Nanoseconds of last status change. */ ++#endif ++ ++ __off_t st_size; /* Size of file, in bytes. */ ++ ++ __blkcnt_t st_blocks; /* Number of 512-byte blocks allocated. */ ++ ++ __blksize_t st_blksize; /* Optimal block size for I/O. */ ++#define _STATBUF_ST_BLKSIZE /* Tell code we have this member. */ ++ ++ __uint32_t st_flags; /* User defined flags. */ ++ ++ __uint32_t st_gen; /* Generation number. */ ++ ++ __quad_t __unused1[2]; ++ }; ++ ++#ifdef __USE_LARGEFILE64 ++struct stat64 ++ { ++ __dev_t st_dev; /* Device containing the file. */ ++ __ino64_t st_ino; /* File serial number. */ ++ ++ __uint32_t st_mode; /* File mode. */ ++ __uint32_t st_nlink; /* Link count. */ ++ ++ __uid_t st_uid; /* User ID of the file's owner. */ ++ __gid_t st_gid; /* Group ID of the file's group. */ ++ ++ __dev_t st_rdev; /* Device number, if device. */ ++ ++#ifdef __USE_MISC ++ /* Nanosecond resolution timestamps are stored in a format ++ equivalent to 'struct timespec'. This is the type used ++ whenever possible but the Unix namespace rules do not allow the ++ identifier 'timespec' to appear in the header. ++ Therefore we have to handle the use of this header in strictly ++ standard-compliant sources special. */ ++ struct timespec st_atim; /* Time of last access. */ ++ struct timespec st_mtim; /* Time of last modification. */ ++ struct timespec st_ctim; /* Time of last status change. */ ++# define st_atime st_atim.tv_sec /* Backward compatibility. */ ++# define st_mtime st_mtim.tv_sec ++# define st_ctime st_ctim.tv_sec ++#else ++ __time_t st_atime; /* Time of last access. */ ++ long int st_atimensec; /* Nanoseconds of last access. */ ++ __time_t st_mtime; /* Time of last modification. */ ++ long int st_mtimensec; /* Nanoseconds of last modification. */ ++ __time_t st_ctime; /* Time of last status change. */ ++ long int st_ctimensec; /* Nanoseconds of last status change. */ ++#endif ++ ++ __off_t st_size; /* Size of file, in bytes. */ ++ ++ __blkcnt_t st_blocks; /* Number of 512-byte blocks allocated. */ ++ ++ __blksize_t st_blksize; /* Optimal block size for I/O. */ ++ ++ __uint32_t st_flags; /* User defined flags. */ ++ ++ __uint32_t st_gen; /* Generation number. */ ++ ++ __quad_t __unused1[2]; ++ }; ++#endif ++ ++/* Encoding of the file mode. These are the standard Unix values, ++ but POSIX.1 does not specify what values should be used. */ ++ ++#define __S_IFMT 0170000 /* These bits determine file type. */ ++ ++/* File types. */ ++#define __S_IFDIR 0040000 /* Directory. */ ++#define __S_IFCHR 0020000 /* Character device. */ ++#define __S_IFBLK 0060000 /* Block device. */ ++#define __S_IFREG 0100000 /* Regular file. */ ++#define __S_IFLNK 0120000 /* Symbolic link. */ ++#define __S_IFSOCK 0140000 /* Socket. */ ++#define __S_IFWHT 0160000 /* Whiteout. */ ++#define __S_IFIFO 0010000 /* FIFO. */ ++ ++/* POSIX.1b objects. */ ++#define __S_TYPEISMQ(buf) 0 ++#define __S_TYPEISSEM(buf) 0 ++#define __S_TYPEISSHM(buf) 0 ++ ++/* Protection bits. */ ++ ++#define __S_ISUID 04000 /* Set user ID on execution. */ ++#define __S_ISGID 02000 /* Set group ID on execution. */ ++#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */ ++#define __S_IREAD 0400 /* Read by owner. */ ++#define __S_IWRITE 0200 /* Write by owner. */ ++#define __S_IEXEC 0100 /* Execute by owner. */ ++ ++#ifdef __USE_BSD ++ ++/* Definitions of flags stored in file flags word. */ ++ ++/* Super-user and owner changeable flags. */ ++# define UF_SETTABLE 0x0000ffff /* mask of owner changeable flags */ ++# define UF_NODUMP 0x00000001 /* do not dump file */ ++# define UF_IMMUTABLE 0x00000002 /* file may not be changed */ ++# define UF_APPEND 0x00000004 /* writes to file may only append */ ++# define UF_OPAQUE 0x00000008 /* directory is opaque wrt. union */ ++# define UF_NOUNLINK 0x00000010 /* file may not be removed or renamed */ ++ ++/* Super-user changeable flags. */ ++# define SF_SETTABLE 0xffff0000 /* mask of superuser changeable flags */ ++# define SF_ARCHIVED 0x00010000 /* file is archived */ ++# define SF_IMMUTABLE 0x00020000 /* file may not be changed */ ++# define SF_APPEND 0x00040000 /* writes to file may only append */ ++# define SF_NOUNLINK 0x00100000 /* file may not be removed or renamed */ ++# define SF_SNAPSHOT 0x00200000 /* snapshot inode */ ++ ++__BEGIN_DECLS ++ ++/* Set file flags for FILE to FLAGS. */ ++extern int chflags (__const char *__file, unsigned long int __flags) __THROW; ++ ++/* Set file flags of the file referred to by FD to FLAGS. */ ++extern int fchflags (int __fd, unsigned long int __flags) __THROW; ++ ++__END_DECLS ++ ++#endif /* __USE_BSD */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/stat16.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/stat16.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/stat16.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/stat16.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,56 @@ ++/* Copyright (C) 2002, 2006 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* This structure corresponds to the standard FreeBSD 'struct stat' ++ (i.e. _STAT_VER_stat), and is used by the stat() system call family. */ ++ ++struct stat16 ++ { ++ __dev_t st_dev; /* Device containing the file. */ ++ __ino_t st_ino; /* File serial number. */ ++ ++ __uint16_t st_mode; /* File mode. */ ++ __uint16_t st_nlink; /* Link count. */ ++ ++ __uid_t st_uid; /* User ID of the file's owner. */ ++ __gid_t st_gid; /* Group ID of the file's group. */ ++ ++ __dev_t st_rdev; /* Device number, if device. */ ++ ++ struct timespec st_atimespec; /* time of last access */ ++ struct timespec st_mtimespec; /* time of last data modification */ ++ struct timespec st_ctimespec; /* time of last file status change */ ++ ++ __off_t st_size; /* Size of file, in bytes. */ ++ ++ __blkcnt_t st_blocks; /* Number of 512-byte blocks allocated. */ ++ ++ __blksize_t st_blksize; /* Optimal block size for I/O. */ ++ ++ __uint32_t st_flags; /* User defined flags. */ ++ ++ __uint32_t st_gen; /* Generation number. */ ++ ++ __uint32_t __unused1; ++ ++ long int st_birthtime; /* Time of file creation. */ ++ long int st_birthtimensec; /* Nanoseconds of file creation. */ ++ ++#define _BIRTH_PADSIZE (2*(8 - sizeof (long))) ++ char __birth_padding[_BIRTH_PADSIZE]; ++ }; +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/statfs.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/statfs.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/statfs.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/statfs.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,91 @@ ++/* Definition of `struct statfs', information about a filesystem. ++ Copyright (C) 1996-1997, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _BITS_STATFS_H ++#define _BITS_STATFS_H 1 ++ ++#if !defined _SYS_STATFS_H && !defined _SYS_MOUNT_H ++# error "Never include directly; use instead." ++#endif ++ ++#include ++ ++struct statfs ++ { ++ unsigned long f_version; ++ unsigned long f_bsize; ++ unsigned long f_iosize; ++#ifndef __USE_FILE_OFFSET64 ++ __fsblkcnt_t f_blocks; ++ __fsblkcnt_t f_bfree; ++ __fsblkcnt_t f_bavail; ++ __fsfilcnt_t f_files; ++ __fsfilcnt_t f_ffree; ++#else ++ __fsblkcnt64_t f_blocks; ++ __fsblkcnt64_t f_bfree; ++ __fsblkcnt64_t f_bavail; ++ __fsfilcnt64_t f_files; ++ __fsfilcnt64_t f_ffree; ++#endif ++ __fsid_t f_fsid; ++ __uid_t f_owner; ++ int f_type; ++ int f_flags; ++ unsigned long int f_syncwrites; ++ unsigned long int f_asyncwrites; ++ char f_fstypename[16]; ++ char f_mntonname[80]; ++ unsigned long int f_syncreads; ++ unsigned long int f_asyncreads; ++ unsigned short f_namemax; ++ char f_mntfromname[80]; ++ short __unused3; ++ long __unused4[2]; ++ }; ++ ++#ifdef __USE_LARGEFILE64 ++struct statfs64 ++ { ++ unsigned long f_version; ++ unsigned long f_bsize; ++ unsigned long f_iosize; ++ __fsblkcnt64_t f_blocks; ++ __fsblkcnt64_t f_bfree; ++ __fsblkcnt64_t f_bavail; ++ __fsfilcnt64_t f_files; ++ __fsfilcnt64_t f_ffree; ++ __fsid_t f_fsid; ++ __uid_t f_owner; ++ int f_type; ++ int f_flags; ++ unsigned long int f_syncwrites; ++ unsigned long int f_asyncwrites; ++ char f_fstypename[16]; ++ char f_mntonname[80]; ++ unsigned long int f_syncreads; ++ unsigned long int f_asyncreads; ++ unsigned short f_namemax; ++ char f_mntfromname[80]; ++ short __unused3; ++ long __unused4[2]; ++ }; ++#endif ++ ++#endif /* _BITS_STATFS_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/statvfs.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/statvfs.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/statvfs.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/statvfs.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,95 @@ ++/* Definition of `struct statvfs', information about a filesystem. ++ Copyright (C) 1998, 2000-2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_STATVFS_H ++# error "Never include directly; use instead." ++#endif ++ ++#include ++ ++#if __WORDSIZE == 32 ++#define _STATVFSBUF_F_UNUSED ++#endif ++ ++struct statvfs ++ { ++ unsigned long int f_bsize; ++ unsigned long int f_frsize; ++#ifndef __USE_FILE_OFFSET64 ++ __fsblkcnt_t f_blocks; ++ __fsblkcnt_t f_bfree; ++ __fsblkcnt_t f_bavail; ++ __fsfilcnt_t f_files; ++ __fsfilcnt_t f_ffree; ++ __fsfilcnt_t f_favail; ++#else ++ __fsblkcnt64_t f_blocks; ++ __fsblkcnt64_t f_bfree; ++ __fsblkcnt64_t f_bavail; ++ __fsfilcnt64_t f_files; ++ __fsfilcnt64_t f_ffree; ++ __fsfilcnt64_t f_favail; ++#endif ++ unsigned long int f_fsid; ++#ifdef _STATVFSBUF_F_UNUSED ++ int __f_unused; ++#endif ++ unsigned long int f_flag; ++ unsigned long int f_namemax; ++ unsigned int f_spare[6]; ++ }; ++ ++#ifdef __USE_LARGEFILE64 ++struct statvfs64 ++ { ++ unsigned long int f_bsize; ++ unsigned long int f_frsize; ++ __fsblkcnt64_t f_blocks; ++ __fsblkcnt64_t f_bfree; ++ __fsblkcnt64_t f_bavail; ++ __fsfilcnt64_t f_files; ++ __fsfilcnt64_t f_ffree; ++ __fsfilcnt64_t f_favail; ++ unsigned long int f_fsid; ++#ifdef _STATVFSBUF_F_UNUSED ++ int __f_unused; ++#endif ++ unsigned long int f_flag; ++ unsigned long int f_namemax; ++ unsigned int f_spare[6]; ++ }; ++#endif ++ ++/* Definitions for the flag in `f_flag'. */ ++enum ++{ ++ ST_RDONLY = 1, /* Mount read-only. */ ++#define ST_RDONLY ST_RDONLY ++ ST_NOSUID = 2 /* Ignore suid and sgid bits. */ ++#define ST_NOSUID ST_NOSUID ++#ifdef __USE_GNU ++ , ++ ST_NODEV = 4, /* Disallow access to device special files. */ ++# define ST_NODEV ST_NODEV ++ ST_NOEXEC = 8, /* Disallow program execution. */ ++# define ST_NOEXEC ST_NOEXEC ++ ST_SYNCHRONOUS = 16 /* Writes are synced at once. */ ++# define ST_SYNCHRONOUS ST_SYNCHRONOUS ++#endif /* Use GNU. */ ++}; +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sys_errlist.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sys_errlist.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sys_errlist.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/sys_errlist.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,33 @@ ++/* Declare sys_errlist and sys_nerr, or don't. Compatibility (do) version. ++ Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _STDIO_H ++# error "Never include directly; use instead." ++#endif ++ ++/* sys_errlist and sys_nerr are deprecated. Use strerror instead. */ ++ ++#ifdef __USE_BSD ++extern int sys_nerr; ++extern __const char *__const sys_errlist[]; ++#endif ++#ifdef __USE_GNU ++extern int _sys_nerr; ++extern __const char *__const _sys_errlist[]; ++#endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/syslog-path.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/syslog-path.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/syslog-path.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/syslog-path.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,31 @@ ++/* -- _PATH_LOG definition ++ Copyright (C) 2006 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_SYSLOG_H ++# error "Never include this file directly. Use instead" ++#endif ++ ++#ifndef _BITS_SYSLOG_PATH_H ++#define _BITS_SYSLOG_PATH_H 1 ++ ++/* On kFreeBSD, named pipes are not allowed in /dev (devfs), so we pick this ++ alternate path. */ ++#define _PATH_LOG "/var/run/log" ++ ++#endif /* bits/syslog-path.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/termios.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/termios.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/termios.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/termios.h 2008-02-10 18:08:48.000000000 +0100 +@@ -0,0 +1,259 @@ ++/* termios type and macro definitions. FreeBSD version. ++ Copyright (C) 1993-1994,1996-1997,1999,2001-2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _TERMIOS_H ++# error "Never include directly; use instead." ++#endif ++ ++/* These macros are also defined in some files (with ++ numerically identical values), but this serves to shut up cpp's ++ complaining. */ ++#ifdef __USE_BSD ++ ++# ifdef MDMBUF ++# undef MDMBUF ++# endif ++# ifdef FLUSHO ++# undef FLUSHO ++# endif ++# ifdef PENDIN ++# undef PENDIN ++# endif ++ ++#endif /* __USE_BSD */ ++ ++#ifdef ECHO ++# undef ECHO ++#endif ++#ifdef TOSTOP ++# undef TOSTOP ++#endif ++#ifdef NOFLSH ++# undef NOFLSH ++#endif ++ ++ ++/* Type of terminal control flag masks. */ ++typedef unsigned int tcflag_t; ++ ++/* Type of control characters. */ ++typedef unsigned char cc_t; ++ ++/* Type of baud rate specifiers. */ ++typedef unsigned int speed_t; ++ ++/* Terminal control structure. */ ++struct termios ++{ ++ /* Input modes. */ ++ tcflag_t c_iflag; ++#define IGNBRK (1 << 0) /* Ignore break condition. */ ++#define BRKINT (1 << 1) /* Signal interrupt on break. */ ++#define IGNPAR (1 << 2) /* Ignore characters with parity errors. */ ++#define PARMRK (1 << 3) /* Mark parity and framing errors. */ ++#define INPCK (1 << 4) /* Enable input parity check. */ ++#define ISTRIP (1 << 5) /* Strip 8th bit off characters. */ ++#define INLCR (1 << 6) /* Map NL to CR on input. */ ++#define IGNCR (1 << 7) /* Ignore CR. */ ++#define ICRNL (1 << 8) /* Map CR to NL on input. */ ++#define IXON (1 << 9) /* Enable start/stop output control. */ ++#define IXOFF (1 << 10) /* Enable start/stop input control. */ ++#ifdef __USE_BSD ++# define IXANY (1 << 11) /* Any character will restart after stop. */ ++# define IMAXBEL (1 << 13) /* Ring bell when input queue is full. */ ++#endif ++ ++ /* Output modes. */ ++ tcflag_t c_oflag; ++#define OPOST (1 << 0) /* Perform output processing. */ ++#ifdef __USE_BSD ++# define ONLCR (1 << 1) /* Map NL to CR-NL on output. */ ++# define OXTABS (1 << 2) /* Expand tabs to spaces. */ ++# define ONOEOT (1 << 3) /* Discard EOT (^D) on output. */ ++#endif ++ ++ /* Control modes. */ ++ tcflag_t c_cflag; ++#ifdef __USE_BSD ++# define CIGNORE (1 << 0) /* Ignore these control flags. */ ++#endif ++#define CSIZE (CS5|CS6|CS7|CS8) /* Number of bits per byte (mask). */ ++#define CS5 (0 << 8) /* 5 bits per byte. */ ++#define CS6 (1 << 8) /* 6 bits per byte. */ ++#define CS7 (2 << 8) /* 7 bits per byte. */ ++#define CS8 (3 << 8) /* 8 bits per byte. */ ++#define CSTOPB (1 << 10) /* Two stop bits instead of one. */ ++#define CREAD (1 << 11) /* Enable receiver. */ ++#define PARENB (1 << 12) /* Parity enable. */ ++#define PARODD (1 << 13) /* Odd parity instead of even. */ ++#define HUPCL (1 << 14) /* Hang up on last close. */ ++#define CLOCAL (1 << 15) /* Ignore modem status lines. */ ++#ifdef __USE_BSD ++# define CCTS_OFLOW (1 << 16) /* CTS flow control of output. */ ++# define CRTS_IFLOW (1 << 17) /* RTS flow control of input. */ ++# define CRTSCTS (CCTS_OFLOW|CRTS_IFLOW) /* CTS/RTS flow control. */ ++# define CDTR_IFLOW (1 << 18) /* DTR flow control of input. */ ++# define CDSR_OFLOW (1 << 19) /* DSR flow control of output. */ ++# define CCAR_OFLOW (1 << 20) /* DCD flow control of output. */ ++# define MDMBUF (1 << 20) /* Carrier flow control of output. */ ++#endif ++ ++ /* Local modes. */ ++ tcflag_t c_lflag; ++#ifdef __USE_BSD ++# define ECHOKE (1 << 0) /* Visual erase for KILL. */ ++#endif ++#define _ECHOE (1 << 1) /* Visual erase for ERASE. */ ++#define ECHOE _ECHOE ++#define _ECHOK (1 << 2) /* Echo NL after KILL. */ ++#define ECHOK _ECHOK ++#define _ECHO (1 << 3) /* Enable echo. */ ++#define ECHO _ECHO ++#define _ECHONL (1 << 4) /* Echo NL even if ECHO is off. */ ++#define ECHONL _ECHONL ++#ifdef __USE_BSD ++# define ECHOPRT (1 << 5) /* Hardcopy visual erase. */ ++# define ECHOCTL (1 << 6) /* Echo control characters as ^X. */ ++#endif ++#define _ISIG (1 << 7) /* Enable signals. */ ++#define ISIG _ISIG ++#define _ICANON (1 << 8) /* Do erase and kill processing. */ ++#define ICANON _ICANON ++#ifdef __USE_BSD ++# define ALTWERASE (1 << 9) /* Alternate WERASE algorithm. */ ++#endif ++#define _IEXTEN (1 << 10) /* Enable DISCARD and LNEXT. */ ++#define IEXTEN _IEXTEN ++#define _EXTPROC (1 << 11) /* External processing. */ ++#define EXTPROC _EXTPROC ++#define _TOSTOP (1 << 22) /* Send SIGTTOU for background output. */ ++#define TOSTOP _TOSTOP ++#ifdef __USE_BSD ++# define FLUSHO (1 << 23) /* Output being flushed (state). */ ++# define NOKERNINFO (1 << 25) /* Disable VSTATUS. */ ++# define PENDIN (1 << 29) /* Retype pending input (state). */ ++#endif ++#define _NOFLSH (1 << 31) /* Disable flush after interrupt. */ ++#define NOFLSH _NOFLSH ++ ++ /* Control characters. */ ++#define VEOF 0 /* End-of-file character [ICANON]. */ ++#define VEOL 1 /* End-of-line character [ICANON]. */ ++#ifdef __USE_BSD ++# define VEOL2 2 /* Second EOL character [ICANON]. */ ++#endif ++#define VERASE 3 /* Erase character [ICANON]. */ ++#ifdef __USE_BSD ++# define VWERASE 4 /* Word-erase character [ICANON]. */ ++#endif ++#define VKILL 5 /* Kill-line character [ICANON]. */ ++#ifdef __USE_BSD ++# define VREPRINT 6 /* Reprint-line character [ICANON]. */ ++#endif ++#define VINTR 8 /* Interrupt character [ISIG]. */ ++#define VQUIT 9 /* Quit character [ISIG]. */ ++#define VSUSP 10 /* Suspend character [ISIG]. */ ++#ifdef __USE_BSD ++# define VDSUSP 11 /* Delayed suspend character [ISIG]. */ ++#endif ++#define VSTART 12 /* Start (X-ON) character [IXON, IXOFF]. */ ++#define VSTOP 13 /* Stop (X-OFF) character [IXON, IXOFF]. */ ++#ifdef __USE_BSD ++# define VLNEXT 14 /* Literal-next character [IEXTEN]. */ ++# define VDISCARD 15 /* Discard character [IEXTEN]. */ ++#endif ++#define VMIN 16 /* Minimum number of bytes read at once [!ICANON]. */ ++#define VTIME 17 /* Time-out value (tenths of a second) [!ICANON]. */ ++#ifdef __USE_BSD ++# define VSTATUS 18 /* Status character [ICANON]. */ ++#endif ++#define NCCS 20 ++ cc_t c_cc[NCCS]; ++ ++ /* Input and output baud rates. */ ++#ifdef __USE_BSD ++ speed_t c_ispeed, c_ospeed; ++# define __ispeed c_ispeed ++# define __ospeed c_ospeed ++#else ++ speed_t __ispeed, __ospeed; ++#endif ++#define B0 0 /* Hang up. */ ++#define B50 50 /* 50 baud. */ ++#define B75 75 /* 75 baud. */ ++#define B110 110 /* 110 baud. */ ++#define B134 134 /* 134.5 baud. */ ++#define B150 150 /* 150 baud. */ ++#define B200 200 /* 200 baud. */ ++#define B300 300 /* 300 baud. */ ++#define B600 600 /* 600 baud. */ ++#define B1200 1200 /* 1200 baud. */ ++#define B1800 1800 /* 1800 baud. */ ++#define B2400 2400 /* 2400 baud. */ ++#define B4800 4800 /* 4800 baud. */ ++#define B9600 9600 /* 9600 baud. */ ++#define B19200 19200 /* 19200 baud. */ ++#define B38400 38400 /* 38400 baud. */ ++#define B76800 76800 ++#ifdef __USE_MISC ++# define EXTA 19200 ++# define EXTB 38400 ++#endif ++#define B7200 7200 ++#define B14400 14400 ++#define B28800 28800 ++#define B57600 57600 ++#define B115200 115200 ++#define B230400 230400 ++#define B460800 460800 ++#define B500000 500000 ++#define B576000 576000 ++#define B921600 921600 ++#define B1000000 1000000 ++#define B1152000 1152000 ++#define B1500000 1500000 ++#define B2000000 2000000 ++#define B2500000 2500000 ++#define B3000000 3000000 ++#define B3500000 3500000 ++#define B4000000 4000000 ++#define __MAX_BAUD B4000000 ++}; ++ ++#define _IOT_termios /* Hurd ioctl type field. */ \ ++ _IOT (_IOTS (tcflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2) ++ ++/* Values for the OPTIONAL_ACTIONS argument to `tcsetattr'. */ ++#define TCSANOW 0 /* Change immediately. */ ++#define TCSADRAIN 1 /* Change when pending output is written. */ ++#define TCSAFLUSH 2 /* Flush pending input before changing. */ ++#ifdef __USE_BSD ++# define TCSASOFT 0x10 /* Flag: Don't alter hardware state. */ ++#endif ++ ++/* Values for the QUEUE_SELECTOR argument to `tcflush'. */ ++#define TCIFLUSH 1 /* Discard data received but not yet read. */ ++#define TCOFLUSH 2 /* Discard data written but not yet sent. */ ++#define TCIOFLUSH 3 /* Discard all pending data. */ ++ ++/* Values for the ACTION argument to `tcflow'. */ ++#define TCOOFF 1 /* Suspend output. */ ++#define TCOON 2 /* Restart suspended output. */ ++#define TCIOFF 3 /* Send a STOP character. */ ++#define TCION 4 /* Send a START character. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/typesizes.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/typesizes.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/typesizes.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/typesizes.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,66 @@ ++/* bits/typesizes.h -- underlying types for *_t. kFreeBSD version. ++ Copyright (C) 2002, 2003 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _BITS_TYPES_H ++# error "Never include directly; use instead." ++#endif ++ ++#ifndef _BITS_TYPESIZES_H ++#define _BITS_TYPESIZES_H 1 ++ ++/* See for the meaning of these macros. This file exists so ++ that need not vary across different GNU platforms. */ ++ ++#define __DEV_T_TYPE __U32_TYPE ++#define __UID_T_TYPE __U32_TYPE ++#define __GID_T_TYPE __U32_TYPE ++#define __INO_T_TYPE __U32_TYPE ++#define __INO64_T_TYPE __UQUAD_TYPE ++#define __MODE_T_TYPE __U16_TYPE ++#define __NLINK_T_TYPE __U16_TYPE ++#define __OFF_T_TYPE __SQUAD_TYPE ++#define __OFF64_T_TYPE __SQUAD_TYPE ++#define __PID_T_TYPE __S32_TYPE ++#define __RLIM_T_TYPE __SQUAD_TYPE ++#define __RLIM64_T_TYPE __SQUAD_TYPE ++#define __BLKCNT_T_TYPE __SQUAD_TYPE ++#define __BLKCNT64_T_TYPE __SQUAD_TYPE ++#define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE ++#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE ++#define __FSFILCNT_T_TYPE __ULONGWORD_TYPE ++#define __FSFILCNT64_T_TYPE __UQUAD_TYPE ++#define __ID_T_TYPE __U32_TYPE ++#define __CLOCK_T_TYPE __S32_TYPE ++#define __TIME_T_TYPE __SLONGWORD_TYPE ++#define __USECONDS_T_TYPE __U32_TYPE ++#define __SUSECONDS_T_TYPE __SLONGWORD_TYPE ++#define __DADDR_T_TYPE __S32_TYPE ++#define __SWBLK_T_TYPE __S32_TYPE ++#define __KEY_T_TYPE __SLONGWORD_TYPE ++#define __CLOCKID_T_TYPE __S32_TYPE ++#define __TIMER_T_TYPE __S32_TYPE ++#define __BLKSIZE_T_TYPE __U32_TYPE ++#define __FSID_T_TYPE struct { int __val[2]; } ++#define __SSIZE_T_TYPE __SWORD_TYPE ++ ++/* Number of descriptors that can fit in an `fd_set'. */ ++#define __FD_SETSIZE 1024 ++ ++ ++#endif /* bits/typesizes.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/uio.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/uio.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/uio.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/uio.h 2006-11-22 11:44:31.000000000 +0100 +@@ -0,0 +1,49 @@ ++/* Copyright (C) 1996-1997, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_UIO_H ++# error "Never include directly; use instead." ++#endif ++ ++ ++/* `struct iovec' -- Structure describing a section of memory. */ ++ ++struct iovec ++{ ++ /* Starting address. */ ++ __ptr_t iov_base; ++ /* Length in bytes. */ ++ size_t iov_len; ++}; ++ ++/* Maximum number of 'struct iovec's that can be passed to a readv() or ++ writev() system call. For larger arrays of 'struct iovec', the libc ++ uses a single read() or write() call to guarantee atomicity. */ ++#define UIO_MAXIOV 1024 ++ ++#ifdef __USE_BSD ++enum uio_rw { UIO_READ, UIO_WRITE }; ++ ++/* Segment flag values. */ ++enum uio_seg { ++ UIO_USERSPACE, /* from user data space */ ++ UIO_SYSSPACE, /* from system space */ ++ UIO_NOCOPY /* don't copy, already in object */ ++}; ++#endif ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/utsname.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/utsname.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/utsname.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/utsname.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,27 @@ ++/* Copyright (C) 1997, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_UTSNAME_H ++# error "Never include directly; use instead." ++#endif ++ ++/* Length of the entries in 'struct utsname' is 32. */ ++#define _UTSNAME_LENGTH 32 ++ ++/* But the version entry is longer. */ ++#define _UTSNAME_VERSION_LENGTH 256 +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/waitflags.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/waitflags.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/waitflags.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/bits/waitflags.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,36 @@ ++/* Definitions of flag bits for `waitpid' et al. ++ Copyright (C) 1992, 1996-1997, 2000, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#if !defined _SYS_WAIT_H && !defined _STDLIB_H ++# error "Never include directly; use instead." ++#endif ++ ++ ++/* Bits in the third argument to `waitpid'. */ ++#define WNOHANG 1 /* Don't block waiting. */ ++#define WUNTRACED 2 /* Report status of stopped children. */ ++ ++/* Bits in the fourth argument to `waitid'. */ ++#define WSTOPPED 2 /* Report stopped child (same as WUNTRACED). */ ++#define WCONTINUED 4 /* Report continued child. */ ++ ++#define __WCLONE 0x80000000 /* Wait for cloned process. */ ++#ifdef __USE_BSD ++# define WLINUXCLONE __WCLONE /* FreeBSD name for __WCLONE. */ ++#endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/brk.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/brk.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/brk.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/brk.c 2007-11-21 16:53:13.000000000 +0100 +@@ -0,0 +1,53 @@ ++/* Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Robert Millan ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++#ifndef SYS_break ++#define SYS_break SYS_obreak ++#endif ++ ++int __syscall(int number, ...); ++ ++extern void _end; ++ ++/* sbrk.c expects this. */ ++void *__curbrk = &_end; ++ ++/* Set the end of the process's data space to ADDR. ++ Return 0 if successful, -1 if not. */ ++int ++__brk (addr) ++ void *addr; ++{ ++ if (addr < &_end) ++ return 0; ++ ++ if (__syscall (SYS_break, addr) == -1) ++ { ++ __set_errno (ENOMEM); ++ return -1; ++ } ++ ++ __curbrk = addr; ++ return 0; ++} ++weak_alias (__brk, brk) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/check_fds.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/check_fds.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/check_fds.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/check_fds.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1 @@ ++void __libc_check_standard_fds (void) {;} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/check_pf.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/check_pf.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/check_pf.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/check_pf.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/clock_getres.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/clock_getres.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/clock_getres.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/clock_getres.c 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,33 @@ ++/* Copyright (C) 2006 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++int __syscall_clock_getres(clockid_t clock_id, struct timespec *tp); ++libc_hidden_proto (__syscall_clock_getres) ++ ++# define SYSDEP_GETRES \ ++ case CLOCK_REALTIME: \ ++ case CLOCK_MONOTONIC: \ ++ retval = INLINE_SYSCALL (clock_getres, 2, clock_id, res); \ ++ break ++ ++/* We handled the REALTIME clock here. */ ++# define HANDLED_REALTIME 1 ++ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/clock_gettime.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/clock_gettime.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/clock_gettime.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/clock_gettime.c 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,33 @@ ++/* Copyright (C) 2006 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include "kernel-posix-cpu-timers.h" ++ ++int __syscall_clock_gettime(clockid_t clock_id, struct timespec *tp); ++libc_hidden_proto (__syscall_clock_gettime) ++ ++# define SYSDEP_GETTIME \ ++ case CLOCK_REALTIME: \ ++ case CLOCK_MONOTONIC: \ ++ retval = INLINE_SYSCALL (clock_gettime, 2, clock_id, tp); \ ++ break ++ ++/* We handled the REALTIME clock here. */ ++# define HANDLED_REALTIME 1 ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/clock_settime.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/clock_settime.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/clock_settime.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/clock_settime.c 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,32 @@ ++/* Copyright (C) 2006 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include "kernel-posix-cpu-timers.h" ++ ++int __syscall_clock_settime(clockid_t clock_id, const struct timespec *tp); ++libc_hidden_proto (__syscall_clock_settime) ++ ++# define SYSDEP_SETTIME \ ++ case CLOCK_REALTIME: \ ++ retval = INLINE_SYSCALL (clock_settime, 2, clock_id, tp); \ ++ break ++/* We handled the REALTIME clock here. */ ++# define HANDLED_REALTIME 1 ++ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/clone.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/clone.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/clone.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/clone.c 2008-01-06 03:10:51.000000000 +0100 +@@ -0,0 +1,105 @@ ++/* Create a thread. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#define __clone __no_broken_clone_decl ++#include ++#include ++#include ++#include ++#include ++#undef __clone ++ ++/* __start_thread (flags, child_stack, fn, arg) ++ is roughly equivalent to ++ ++ int retval = __rfork (flags); ++ if (retval == 0) ++ { ++ // Here we are in the child thread. ++ %stackpointer = child_stack; ++ _exit (fn (arg)); ++ } ++ return retval; ++ ++ but it cannot be done in portable C because it must access fn and arg ++ after having replaced the stack pointer. */ ++ ++extern int __start_thread (int flags, void *child_stack, ++ int (*fn) (void *), void *arg); ++ ++int __clone (int (*fn) (void *), void *child_stack, int flags, void *arg) ++{ ++ int rfork_flags = RFPROC; ++ ++ if (fn == NULL || child_stack == NULL) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ ++ /* This implementation of clone() does not support all Linux flags. */ ++ if (flags & ~(CSIGNAL | CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND ++ | CLONE_VFORK | CLONE_SYSVSEM)) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ ++ if ((flags & CSIGNAL) != 0 && (flags & CSIGNAL) != SIGCHLD) ++ { ++ if ((flags & CSIGNAL) & ~RFTHPNMASK) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ rfork_flags |= (RFLINUXTHPN | ((flags & CSIGNAL) << RFTHPNSHIFT)); ++ } ++ ++ if (flags & CLONE_VM) ++ rfork_flags |= RFMEM; ++ ++ if (flags & CLONE_FS) ++ /* Sharing the filesystem related info (umask, cwd, root dir) ++ is not supported by rfork. Ignore this; let's hope programs ++ will set their umask and cwd before spawning threads. */ ++ ; ++ ++ if (flags & CLONE_SYSVSEM) ++ /* Ignore this; it has been introduced into linuxthreads in post 2.4 glibc */ ++ ; ++ ++ if (!(flags & CLONE_FILES)) ++ rfork_flags |= RFFDG; ++ ++ if (flags & CLONE_SIGHAND) ++ { ++ rfork_flags |= RFSIGSHARE; ++ /* Also set the undocumented flag RFTHREAD. It has the effect that when ++ the thread leader exits, all threads belonging to it are killed. */ ++ rfork_flags |= RFTHREAD; ++ } ++ ++ if (flags & CLONE_VFORK) ++ rfork_flags |= RFPPWAIT; ++ ++ return __start_thread (rfork_flags, child_stack, fn, arg); ++} ++ ++weak_alias (__clone, clone) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/configure ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/configure +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/configure 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/configure 2007-02-08 21:21:06.000000000 +0100 +@@ -0,0 +1,342 @@ ++# This file is generated from configure.in by Autoconf. DO NOT EDIT! ++ # Local configure fragment for sysdeps/unix/bsd/bsd4.4/kfreebsd. ++ ++case "$machine" in ++ x86_64*) ++ echo "Adding extra sysnames for kfreebsd/x86_64/elf" ++ sysnames="ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/elf $sysnames" ++ ;; ++esac ++ ++# The kFreeBSD headers can be found in ++# /usr/src/sys/ ++# Check whether this directory is available. ++if test -z "$sysheaders" && ++ test "x$cross_compiling" = xno && ++ test -d /usr/src/sys/ ; then ++ sysheaders="/usr/src/sys/" ++ ccheaders=`$CC -print-file-name=include` ++ SYSINCLUDES="-I $sysheaders" ++fi ++ ++# Don't bother trying to generate any glue code to be compatible with the ++# existing system library, because we are the only system library. ++inhibit_glue=yes ++ ++if test -n "$sysheaders"; then ++ OLD_CPPFLAGS=$CPPFLAGS ++ CPPFLAGS="$CPPFLAGS $SYSINCLUDES" ++fi ++ ++ ++echo "$as_me:$LINENO: checking for egrep" >&5 ++echo $ECHO_N "checking for egrep... $ECHO_C" >&6 ++if test "${ac_cv_prog_egrep+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if echo a | (grep -E '(a|b)') >/dev/null 2>&1 ++ then ac_cv_prog_egrep='grep -E' ++ else ac_cv_prog_egrep='egrep' ++ fi ++fi ++echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 ++echo "${ECHO_T}$ac_cv_prog_egrep" >&6 ++ EGREP=$ac_cv_prog_egrep ++ ++ ++echo "$as_me:$LINENO: checking installed kFreeBSD kernel header files" >&5 ++echo $ECHO_N "checking installed kFreeBSD kernel header files... $ECHO_C" >&6 ++if test "${libc_cv_kfreebsd540+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#if !defined(__FreeBSD_kernel_version) && defined(__FreeBSD_version) ++#define __FreeBSD_kernel_version __FreeBSD_version ++#endif ++#if !defined __FreeBSD_kernel_version || __FreeBSD_kernel_version < (5 *10000+ 4 *100+ 0) /* 5.4.0 */ ++eat flaming death ++#endif ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "eat flaming death" >/dev/null 2>&1; then ++ libc_cv_kfreebsd540='TOO OLD!' ++else ++ libc_cv_kfreebsd540='5.4.0 or later' ++fi ++rm -f conftest* ++ ++fi ++echo "$as_me:$LINENO: result: $libc_cv_kfreebsd540" >&5 ++echo "${ECHO_T}$libc_cv_kfreebsd540" >&6 ++if test "$libc_cv_kfreebsd540" != '5.4.0 or later'; then ++ { { echo "$as_me:$LINENO: error: GNU libc requires kernel header files from ++kFreeBSD 5.4.0 or later to be installed before configuring. ++The kernel header files are found usually in /usr/src/sys/; make sure ++these directories use files from kFreeBSD 5.4.0 or later. ++This check uses , so ++make sure that file was built correctly when installing the kernel header ++files. To use kernel headers not from /usr/src/sys/, use the ++configure option --with-headers." >&5 ++echo "$as_me: error: GNU libc requires kernel header files from ++kFreeBSD 5.4.0 or later to be installed before configuring. ++The kernel header files are found usually in /usr/src/sys/; make sure ++these directories use files from kFreeBSD 5.4.0 or later. ++This check uses , so ++make sure that file was built correctly when installing the kernel header ++files. To use kernel headers not from /usr/src/sys/, use the ++configure option --with-headers." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++# Check whether --enable-compatible-utmp or --disable-compatible-utmp was given. ++if test "${enable_compatible_utmp+set}" = set; then ++ enableval="$enable_compatible_utmp" ++ enable_utmp_compat=$enableval ++else ++ enable_utmp_compat=no ++fi; ++if test "$enable_utmp_compat" = no; then ++ utmp_subdir=utmp-utmpx ++else ++ utmp_subdir=utmp-compat ++fi ++sysnames="$sysnames sysdeps/unix/bsd/bsd4.4/kfreebsd/$utmp_subdir" ++ ++# If the user gave a minimal version number test whether the available ++# kernel headers are young enough. Additionally we have minimal ++# kernel versions for some architectures. If a previous configure fragment ++# set arch_minimum_kernel already, let that override our defaults here. ++# Note that we presume such a fragment has set libc_cv_gcc_unwind_find_fde ++# if appropriate too. ++test -n "$arch_minimum_kernel" || ++case "$machine" in ++ i386*) ++ libc_cv_gcc_unwind_find_fde=yes ++ arch_minimum_kernel=5.4.0 ++ ;; ++ x86_64*) ++ arch_minimum_kernel=5.4.0 ++ ;; ++ *) ++ arch_minimum_kernel=5.4.0 ++ ;; ++esac ++if test -n "$minimum_kernel"; then ++ ++ user_version=$((`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 10000 + \2 \* 100 + \3/'`)) ++ arch_version=$((`echo "$arch_minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 10000 + \2 \* 100 + \3/'`)) ++ ++ if test $user_version -lt $arch_version; then ++ { echo "$as_me:$LINENO: WARNING: minimum kernel version reset to $arch_minimum_kernel" >&5 ++echo "$as_me: WARNING: minimum kernel version reset to $arch_minimum_kernel" >&2;} ++ minimum_kernel=$arch_minimum_kernel ++ fi ++else ++ if test $arch_minimum_kernel != '5.4.0'; then ++ minimum_kernel=$arch_minimum_kernel ++ fi ++fi ++ ++if test -n "$minimum_kernel"; then ++ echo "$as_me:$LINENO: checking for kernel header at least $minimum_kernel" >&5 ++echo $ECHO_N "checking for kernel header at least $minimum_kernel... $ECHO_C" >&6 ++ decnum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/(\1 * 10000 + \2 * 100 + \3)/'`; ++ abinum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1,\2,\3/'`; ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#if !defined(__FreeBSD_kernel_version) && defined(__FreeBSD_version) ++#define __FreeBSD_kernel_version __FreeBSD_version ++#endif ++#if __FreeBSD_kernel_version < $decnum ++eat flaming death ++#endif ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "eat flaming death" >/dev/null 2>&1; then ++ libc_minimum_kernel='too old!' ++else ++ libc_minimum_kernel=ok ++fi ++rm -f conftest* ++ ++ echo "$as_me:$LINENO: result: $libc_minimum_kernel" >&5 ++echo "${ECHO_T}$libc_minimum_kernel" >&6 ++ if test "$libc_minimum_kernel" = ok; then ++ cat >>confdefs.h <<_ACEOF ++#define __KFREEBSD_KERNEL_VERSION $decnum ++_ACEOF ++ ++ cat >>confdefs.h <<_ACEOF ++#define __ABI_TAG_VERSION $abinum ++_ACEOF ++ ++ else ++ { { echo "$as_me:$LINENO: error: *** The available kernel headers are older than the requested ++*** compatible kernel version" >&5 ++echo "$as_me: error: *** The available kernel headers are older than the requested ++*** compatible kernel version" >&2;} ++ { (exit 1); exit 1; }; } ++ fi ++fi ++ ++if test -n "$sysheaders"; then ++ CPPFLAGS=$OLD_CPPFLAGS ++fi ++# The Linux filesystem standard prescribes where to place "essential" ++# files. I.e., when the installation prefix is "/usr" we have to place ++# shared library objects and the configuration files on the root partition ++# in /lib and /etc. ++case "$prefix" in ++/usr | /usr/) ++ # 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib ++ case $machine in ++ sparc/sparc64 | x86_64 | powerpc/powerpc64 | s390/s390-64 | \ ++ mips/mips64/n64/* ) ++ libc_cv_slibdir="/lib64" ++ if test "$libdir" = '${exec_prefix}/lib'; then ++ libdir='${exec_prefix}/lib64'; ++ # Locale data can be shared between 32bit and 64bit libraries ++ libc_cv_localedir='${exec_prefix}/lib/locale' ++ fi ++ ;; ++ mips/mips64/n32/* ) ++ libc_cv_slibdir="/lib32" ++ if test "$libdir" = '${exec_prefix}/lib'; then ++ libdir='${exec_prefix}/lib32'; ++ # Locale data can be shared between 32bit and 64bit libraries ++ libc_cv_localedir='${exec_prefix}/lib/locale' ++ fi ++ ;; ++ *) ++ libc_cv_slibdir="/lib" ++ ;; ++ esac ++ # Allow the user to override the path with --sysconfdir ++ if test $sysconfdir = '${prefix}/etc'; then ++ libc_cv_sysconfdir=/etc ++ else ++ libc_cv_sysconfdir=$sysconfdir ++ fi ++ libc_cv_rootsbindir="/sbin" ++ ;; ++esac ++ ++ ++# Put exception handling support into libc, so that not every shared ++# library needs to include it. ++# FIXME: Does not work yet. ++libc_cv_gcc_unwind_find_fde=no ++ ++ ++# Under kFreeBSD the LinuxThreads or (may be later) NPTL add-on should be available. ++case $add_ons in ++ # Only one of the add-ons should be available. ++ *linuxthreads*nptl*|*nptl*linuxthreads*) ++ echo "\ ++*** LinuxThreads and NPTL add-ons are both available. Only one must be used." ++ exit 1 ++ ;; ++ # It is available. Good. ++ *linuxthreads*) ++ linuxthreads_missing= ++ ;; ++ *nptl*) ++ linuxthreads_missing= ++ ;; ++ *) ++ linuxthreads_missing=yes ++ ;; ++esac ++ ++if test "$linuxthreads_missing"; then ++ if test $enable_sanity = yes; then ++ echo "\ ++*** On GNU/kFreeBSD systems it is normal to compile GNU libc with the ++*** \`linuxthreads' add-on. Without that, the library will be ++*** incompatible with normal GNU/kFreeBSD systems. ++*** If you really mean to not use this add-on, run configure again ++*** using the extra parameter \`--disable-sanity-checks'." ++ exit 1 ++ else ++ echo "\ ++*** WARNING: Are you sure you do not want to use the \`linuxthreads' ++*** add-on?" ++ fi ++fi ++ ++if test "$prefix" = "/usr/local" -o "$prefix" = "/usr/local/" -o "$prefix" = "NONE"; then ++ if test $enable_sanity = yes; then ++ echo "\ ++*** On GNU/kFreeBSD systems the GNU C Library should not be installed into ++*** /usr/local since this might make your system totally unusable. ++*** We strongly advise to use a different prefix. For details read the FAQ. ++*** If you really mean to do this, run configure again using the extra ++*** parameter \`--disable-sanity-checks'." ++ exit 1 ++ else ++ echo "\ ++*** WARNING: Do you really want to install the GNU C Library into /usr/local? ++*** This might make your system totally unusable, for details read the FAQ." ++ fi ++fi ++ ++ ++# One kFreeBSD we use ldconfig. ++use_ldconfig=yes ++ ++# We need some extensions to the `ldd' script. ++case "$machine" in ++ x86_64*) ++ ldd_rewrite_script=../ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ldd-rewrite.sed ++ ;; ++ *) ++ ;; ++esac ++ ++ ++if test $host = $build; then ++ # If $prefix/include/{net,scsi} are symlinks, make install will ++ # clobber what they're linked to (probably a kernel tree). ++ # test -L ought to work on all Linux boxes. ++ if test "x$prefix" != xNONE; then ++ ac_prefix=$prefix ++ else ++ ac_prefix=$ac_default_prefix ++ fi ++ echo "$as_me:$LINENO: checking for symlinks in ${ac_prefix}/include" >&5 ++echo $ECHO_N "checking for symlinks in ${ac_prefix}/include... $ECHO_C" >&6 ++ ac_message= ++ if test -L ${ac_prefix}/include/net; then ++ ac_message="$ac_message ++ ${ac_prefix}/include/net is a symlink" ++ fi ++ if test -L ${ac_prefix}/include/scsi; then ++ ac_message="$ac_message ++ ${ac_prefix}/include/scsi is a symlink" ++ fi ++ if test -n "$ac_message"; then ++ { { echo "$as_me:$LINENO: error: $ac_message ++\`make install' will destroy the target of the link(s). ++Delete the links and re-run configure, or better still, move the entire ++${ac_prefix}/include directory out of the way." >&5 ++echo "$as_me: error: $ac_message ++\`make install' will destroy the target of the link(s). ++Delete the links and re-run configure, or better still, move the entire ++${ac_prefix}/include directory out of the way." >&2;} ++ { (exit 1); exit 1; }; } ++ else ++ echo "$as_me:$LINENO: result: ok" >&5 ++echo "${ECHO_T}ok" >&6 ++ fi ++fi +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/configure.in ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/configure.in +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/configure.in 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/configure.in 2007-02-08 21:21:06.000000000 +0100 +@@ -0,0 +1,268 @@ ++GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. ++# Local configure fragment for sysdeps/unix/bsd/bsd4.4/kfreebsd. ++ ++case "$machine" in ++ x86_64*) ++ echo "Adding extra sysnames for kfreebsd/x86_64/elf" ++ sysnames="ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/elf $sysnames" ++ ;; ++esac ++ ++# The kFreeBSD headers can be found in ++# /usr/src/sys/ ++# Check whether this directory is available. ++if test -z "$sysheaders" && ++ test "x$cross_compiling" = xno && ++ test -d /usr/src/sys/ ; then ++ sysheaders="/usr/src/sys/" ++ ccheaders=`$CC -print-file-name=include` ++ dnl We don't have to use -nostdinc. We just want one more directory ++ dnl to be used. ++ SYSINCLUDES="-I $sysheaders" ++fi ++ ++# Don't bother trying to generate any glue code to be compatible with the ++# existing system library, because we are the only system library. ++inhibit_glue=yes ++ ++define([LIBC_KFREEBSD_VERSION],[5.4.0])dnl ++if test -n "$sysheaders"; then ++ OLD_CPPFLAGS=$CPPFLAGS ++ CPPFLAGS="$CPPFLAGS $SYSINCLUDES" ++fi ++define([libc_cv_kfreebsdVER], [libc_cv_kfreebsd]patsubst(LIBC_KFREEBSD_VERSION,[\.]))dnl ++AC_CACHE_CHECK(installed kFreeBSD kernel header files, libc_cv_kfreebsdVER, [dnl ++AC_EGREP_CPP([eat flaming death], [#include ++#if !defined(__FreeBSD_kernel_version) && defined(__FreeBSD_version) ++#define __FreeBSD_kernel_version __FreeBSD_version ++#endif ++#if !defined __FreeBSD_kernel_version || __FreeBSD_kernel_version < ]dnl ++patsubst(LIBC_KFREEBSD_VERSION,[^\([^.]*\)\.\([^.]*\)\.\([^.]*\)$],dnl ++[ (\1 *10000+ \2 *100+ \3) /* \1.\2.\3 */])[ ++eat flaming death ++#endif], ++ libc_cv_kfreebsdVER='TOO OLD!', ++ libc_cv_kfreebsdVER='LIBC_KFREEBSD_VERSION or later')]) ++if test "$libc_cv_kfreebsdVER" != 'LIBC_KFREEBSD_VERSION or later'; then ++ AC_MSG_ERROR([GNU libc requires kernel header files from ++kFreeBSD LIBC_KFREEBSD_VERSION or later to be installed before configuring. ++The kernel header files are found usually in /usr/src/sys/; make sure ++these directories use files from kFreeBSD LIBC_KFREEBSD_VERSION or later. ++This check uses , so ++make sure that file was built correctly when installing the kernel header ++files. To use kernel headers not from /usr/src/sys/, use the ++configure option --with-headers.]) ++fi ++ ++AC_ARG_ENABLE(compatible-utmp, dnl ++[ --disable-compatible-utmp use a struct utmp which is the same as struct ++ utmpx, as on kFreeBSD, but incompatible with FreeBSD], ++ enable_utmp_compat=$enableval, enable_utmp_compat=no) ++if test "$enable_utmp_compat" = no; then ++ utmp_subdir=utmp-utmpx ++else ++ utmp_subdir=utmp-compat ++fi ++sysnames="$sysnames sysdeps/unix/bsd/bsd4.4/kfreebsd/$utmp_subdir" ++ ++# If the user gave a minimal version number test whether the available ++# kernel headers are young enough. Additionally we have minimal ++# kernel versions for some architectures. If a previous configure fragment ++# set arch_minimum_kernel already, let that override our defaults here. ++# Note that we presume such a fragment has set libc_cv_gcc_unwind_find_fde ++# if appropriate too. ++test -n "$arch_minimum_kernel" || ++case "$machine" in ++ i386*) ++ libc_cv_gcc_unwind_find_fde=yes ++ arch_minimum_kernel=5.4.0 ++ ;; ++ x86_64*) ++ arch_minimum_kernel=5.4.0 ++ ;; ++ *) ++ arch_minimum_kernel=5.4.0 ++ ;; ++esac ++if test -n "$minimum_kernel"; then ++ changequote(,) ++ user_version=$((`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 10000 + \2 \* 100 + \3/'`)) ++ arch_version=$((`echo "$arch_minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 10000 + \2 \* 100 + \3/'`)) ++ changequote([,]) ++ if test $user_version -lt $arch_version; then ++ AC_MSG_WARN([minimum kernel version reset to $arch_minimum_kernel]) ++ minimum_kernel=$arch_minimum_kernel ++ fi ++else ++ if test $arch_minimum_kernel != '5.4.0'; then ++ minimum_kernel=$arch_minimum_kernel ++ fi ++fi ++ ++if test -n "$minimum_kernel"; then ++ AC_MSG_CHECKING(for kernel header at least $minimum_kernel) ++changequote(,)dnl ++ decnum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/(\1 * 10000 + \2 * 100 + \3)/'`; ++ abinum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1,\2,\3/'`; ++changequote([,])dnl ++ AC_EGREP_CPP([eat flaming death], [#include ++#if !defined(__FreeBSD_kernel_version) && defined(__FreeBSD_version) ++#define __FreeBSD_kernel_version __FreeBSD_version ++#endif ++#if __FreeBSD_kernel_version < $decnum ++eat flaming death ++#endif], libc_minimum_kernel='too old!', libc_minimum_kernel=ok) ++ AC_MSG_RESULT($libc_minimum_kernel) ++ if test "$libc_minimum_kernel" = ok; then ++ AC_DEFINE_UNQUOTED(__KFREEBSD_KERNEL_VERSION, $decnum) ++ AC_DEFINE_UNQUOTED(__ABI_TAG_VERSION, $abinum) ++ else ++ AC_MSG_ERROR([*** The available kernel headers are older than the requested ++*** compatible kernel version]) ++ fi ++fi ++ ++if test -n "$sysheaders"; then ++ CPPFLAGS=$OLD_CPPFLAGS ++fi ++# The Linux filesystem standard prescribes where to place "essential" ++# files. I.e., when the installation prefix is "/usr" we have to place ++# shared library objects and the configuration files on the root partition ++# in /lib and /etc. ++case "$prefix" in ++/usr | /usr/) ++ # 64-bit libraries on bi-arch platforms go in /lib64 instead of /lib ++ case $machine in ++ sparc/sparc64 | x86_64 | powerpc/powerpc64 | s390/s390-64 | \ ++ mips/mips64/n64/* ) ++ libc_cv_slibdir="/lib64" ++ if test "$libdir" = '${exec_prefix}/lib'; then ++ libdir='${exec_prefix}/lib64'; ++ # Locale data can be shared between 32bit and 64bit libraries ++ libc_cv_localedir='${exec_prefix}/lib/locale' ++ fi ++ ;; ++ mips/mips64/n32/* ) ++ libc_cv_slibdir="/lib32" ++ if test "$libdir" = '${exec_prefix}/lib'; then ++ libdir='${exec_prefix}/lib32'; ++ # Locale data can be shared between 32bit and 64bit libraries ++ libc_cv_localedir='${exec_prefix}/lib/locale' ++ fi ++ ;; ++ *) ++ libc_cv_slibdir="/lib" ++ ;; ++ esac ++ # Allow the user to override the path with --sysconfdir ++ if test $sysconfdir = '${prefix}/etc'; then ++ libc_cv_sysconfdir=/etc ++ else ++ libc_cv_sysconfdir=$sysconfdir ++ fi ++ libc_cv_rootsbindir="/sbin" ++ ;; ++esac ++ ++ ++# Put exception handling support into libc, so that not every shared ++# library needs to include it. ++# FIXME: Does not work yet. ++libc_cv_gcc_unwind_find_fde=no ++ ++ ++# Under kFreeBSD the LinuxThreads or (may be later) NPTL add-on should be available. ++case $add_ons in ++ # Only one of the add-ons should be available. ++ *linuxthreads*nptl*|*nptl*linuxthreads*) ++ echo "\ ++*** LinuxThreads and NPTL add-ons are both available. Only one must be used." ++ exit 1 ++ ;; ++ # It is available. Good. ++ *linuxthreads*) ++ linuxthreads_missing= ++ ;; ++ *nptl*) ++ linuxthreads_missing= ++ ;; ++ *) ++ linuxthreads_missing=yes ++ ;; ++esac ++ ++if test "$linuxthreads_missing"; then ++ if test $enable_sanity = yes; then ++ echo "\ ++*** On GNU/kFreeBSD systems it is normal to compile GNU libc with the ++*** \`linuxthreads' add-on. Without that, the library will be ++*** incompatible with normal GNU/kFreeBSD systems. ++*** If you really mean to not use this add-on, run configure again ++*** using the extra parameter \`--disable-sanity-checks'." ++ exit 1 ++ else ++ echo "\ ++*** WARNING: Are you sure you do not want to use the \`linuxthreads' ++*** add-on?" ++ fi ++fi ++ ++if test "$prefix" = "/usr/local" -o "$prefix" = "/usr/local/" -o "$prefix" = "NONE"; then ++ if test $enable_sanity = yes; then ++ echo "\ ++*** On GNU/kFreeBSD systems the GNU C Library should not be installed into ++*** /usr/local since this might make your system totally unusable. ++*** We strongly advise to use a different prefix. For details read the FAQ. ++*** If you really mean to do this, run configure again using the extra ++*** parameter \`--disable-sanity-checks'." ++ exit 1 ++ else ++ echo "\ ++*** WARNING: Do you really want to install the GNU C Library into /usr/local? ++*** This might make your system totally unusable, for details read the FAQ." ++ fi ++fi ++ ++ ++# One kFreeBSD we use ldconfig. ++use_ldconfig=yes ++ ++# We need some extensions to the `ldd' script. ++changequote(,) ++case "$machine" in ++ x86_64*) ++ ldd_rewrite_script=../ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ldd-rewrite.sed ++ ;; ++ *) ++ ;; ++esac ++changequote([,]) ++ ++if test $host = $build; then ++ # If $prefix/include/{net,scsi} are symlinks, make install will ++ # clobber what they're linked to (probably a kernel tree). ++ # test -L ought to work on all Linux boxes. ++ if test "x$prefix" != xNONE; then ++ ac_prefix=$prefix ++ else ++ ac_prefix=$ac_default_prefix ++ fi ++ AC_MSG_CHECKING([for symlinks in ${ac_prefix}/include]) ++ ac_message= ++ if test -L ${ac_prefix}/include/net; then ++ ac_message="$ac_message ++ ${ac_prefix}/include/net is a symlink" ++ fi ++ if test -L ${ac_prefix}/include/scsi; then ++ ac_message="$ac_message ++ ${ac_prefix}/include/scsi is a symlink" ++ fi ++ if test -n "$ac_message"; then ++ AC_MSG_ERROR([$ac_message ++\`make install' will destroy the target of the link(s). ++Delete the links and re-run configure, or better still, move the entire ++${ac_prefix}/include directory out of the way.]) ++ else ++ AC_MSG_RESULT(ok) ++ fi ++fi +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/connect.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/connect.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/connect.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/connect.c 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,69 @@ ++/* Copyright (C) 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Aurelien Jarno , 2005. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++/* According to POSIX.1-2004 the len argument specifies the length of ++ the sockaddr structure pointed to by the addrarg argument. However ++ the FreeBSD kernel waits the actual length of the address stored ++ there. The code below emulate this behaviour. */ ++ ++extern int __libc_sa_len (sa_family_t __af); ++extern int __libc_sa_len_internal (sa_family_t __af); ++ ++extern int __syscall_connect (int fd, __CONST_SOCKADDR_ARG addr, ++ socklen_t addrlen); ++libc_hidden_proto (__syscall_connect) ++ ++/* Open a connection on socket FD to peer at ADDR (which LEN bytes long). ++ For connectionless socket types, just set the default address to send to ++ and the only address from which to accept transmissions. ++ Return 0 on success, -1 for errors. */ ++ ++int ++__libc_connect (int fd, __CONST_SOCKADDR_ARG addr, socklen_t addrlen) ++{ ++ socklen_t new_addrlen; ++ ++#ifndef NOT_IN_libc ++ new_addrlen = INTUSE(__libc_sa_len) ((addr.__sockaddr__)->sa_family); ++#else ++ new_addrlen = __libc_sa_len ((addr.__sockaddr__)->sa_family); ++#endif ++ ++ /* Only allow a smaller size, otherwise it could lead to ++ stack corruption */ ++ if (new_addrlen < addrlen) ++ addrlen = new_addrlen; ++ ++ /* We pass 3 arguments. */ ++ if (SINGLE_THREAD_P) ++ return INLINE_SYSCALL (connect, 3, fd, addr, addrlen); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ int result = INLINE_SYSCALL (connect, 3, fd, addr, addrlen); ++ LIBC_CANCEL_RESET (oldtype); ++ return result; ++} ++ ++strong_alias (__libc_connect, __connect_internal) ++weak_alias (__libc_connect, __connect) ++weak_alias (__libc_connect, connect) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-execstack.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-execstack.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-execstack.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-execstack.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,58 @@ ++/* Stack executability handling for GNU dynamic linker. Linux version. ++ Copyright (C) 2003, 2004 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ ++extern int __stack_prot attribute_relro attribute_hidden; ++ ++ ++int ++internal_function ++_dl_make_stack_executable (void **stack_endp) ++{ ++ /* This gives us the highest/lowest page that needs to be changed. */ ++ uintptr_t page = ((uintptr_t) *stack_endp ++ & -(intptr_t) GLRO(dl_pagesize)); ++ ++ /* Challenge the caller. */ ++ if (__builtin_expect (__check_caller (RETURN_ADDRESS (0), ++ allow_ldso|allow_libpthread) != 0, 0) ++ || __builtin_expect (*stack_endp != __libc_stack_end, 0)) ++ return EPERM; ++ ++ if (__builtin_expect (__mprotect ((void *) page, GLRO(dl_pagesize), ++ __stack_prot) != 0, 0)) ++ return errno; ++ ++ /* Clear the address. */ ++ *stack_endp = NULL; ++ ++ /* Remember that we changed the permission. */ ++ GL(dl_stack_flags) |= PF_X; ++ ++ return 0; ++} ++rtld_hidden_def (_dl_make_stack_executable) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-machine.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-machine.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-machine.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-machine.h 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,31 @@ ++/* Dynamic linker magic for glibc on FreeBSD kernel. ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Aurelien Jarno , 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* Contrary to most kernels which use ELFOSABI_SYSV aka ELFOSABI_NONE, ++ FreeBSD uses ELFOSABI_FREEBSD for the OSABI field. */ ++ ++# define VALID_ELF_OSABI(osabi) (osabi == ELFOSABI_FREEBSD) ++# define VALID_ELF_ABIVERSION(ver) (ver == 0) ++# define VALID_ELF_HEADER(hdr,exp,size) \ ++ memcmp (hdr,exp,size-2) == 0 \ ++ && VALID_ELF_OSABI (hdr[EI_OSABI]) \ ++ && VALID_ELF_ABIVERSION (hdr[EI_ABIVERSION]) ++ ++#include_next +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-osinfo.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-osinfo.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-osinfo.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-osinfo.h 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,120 @@ ++/* Operating system specific code for generic dynamic loader functions. ++ Copyright (C) 2006 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#ifndef MIN ++# define MIN(a,b) (((a)<(b))?(a):(b)) ++#endif ++ ++#ifdef SHARED ++/* This is the function used in the dynamic linker to print the fatal error ++ message. */ ++static inline void ++__attribute__ ((__noreturn__)) ++dl_fatal (const char *str) ++{ ++ _dl_dprintf (2, str); ++ _exit (1); ++} ++#endif ++ ++ ++#define DL_SYSDEP_OSCHECK(FATAL) \ ++ do { \ ++ /* Test whether the kernel is new enough. This test is only \ ++ performed if the library is not compiled to run on all \ ++ kernels. */ \ ++ if (__KFREEBSD_KERNEL_VERSION > 0) \ ++ { \ ++ char bufmem[64]; \ ++ char *buf = bufmem; \ ++ unsigned int version; \ ++ int parts; \ ++ char *cp; \ ++ struct utsname uts; \ ++ \ ++ /* Try the uname syscall */ \ ++ if (! __uname (&uts)) \ ++ { \ ++ /* Now convert it into a number. The string consists of at most \ ++ three parts. */ \ ++ version = 0; \ ++ parts = 0; \ ++ buf = uts.release; \ ++ cp = buf; \ ++ while ((*cp >= '0') && (*cp <= '9')) \ ++ { \ ++ unsigned int here = *cp++ - '0'; \ ++ \ ++ while ((*cp >= '0') && (*cp <= '9')) \ ++ { \ ++ here *= 10; \ ++ here += *cp++ - '0'; \ ++ } \ ++ \ ++ ++parts; \ ++ version *= 100; \ ++ version |= here; \ ++ \ ++ if (*cp++ != '.') \ ++ /* Another part following? */ \ ++ break; \ ++ } \ ++ \ ++ if (parts == 2) \ ++ version *= 100; \ ++ \ ++ if (parts == 1) \ ++ version *= 10000; \ ++ \ ++ /* Now we can test with the required version. */ \ ++ if (version < __KFREEBSD_KERNEL_VERSION) \ ++ /* Not sufficent. */ \ ++ FATAL ("FATAL: kernel too old\n"); \ ++ \ ++ GLRO(dl_osversion) = version; \ ++ } \ ++ } \ ++ } while (0) ++ ++static inline uintptr_t __attribute__ ((always_inline)) ++_dl_setup_stack_chk_guard (void) ++{ ++ uintptr_t ret; ++#ifdef ENABLE_STACKGUARD_RANDOMIZE ++ int fd = __open ("/dev/urandom", O_RDONLY); ++ if (fd >= 0) ++ { ++ ssize_t reslen = __read (fd, &ret, sizeof (ret)); ++ __close (fd); ++ if (reslen == (ssize_t) sizeof (ret)) ++ return ret; ++ } ++#endif ++ ret = 0; ++ unsigned char *p = (unsigned char *) &ret; ++ p[sizeof (ret) - 1] = 255; ++ p[sizeof (ret) - 2] = '\n'; ++ return ret; ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fcntl.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fcntl.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fcntl.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fcntl.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstat.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstat.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstat.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstat.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,40 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++#include "stat16conv.c" ++ ++int ++__fhstat (const fhandle_t *fhp, struct stat *buf) ++{ ++ struct stat16 buf16; ++ ++ if (__syscall_fhstat (fhp, &buf16) < 0) ++ return -1; ++ ++ /* Convert a 'struct stat16' to 'struct stat'. */ ++ stat16_to_stat (&buf16, buf); ++ ++ return 0; ++} ++ ++weak_alias (__fhstat, fhstat) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstat64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstat64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstat64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstat64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,38 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++#include "stat16conv.c" ++ ++int ++fhstat64 (const fhandle_t *fhp, struct stat64 *buf) ++{ ++ struct stat16 buf16; ++ ++ if (__syscall_fhstat (fhp, &buf16) < 0) ++ return -1; ++ ++ /* Convert a 'struct stat16' to 'struct stat64'. */ ++ stat16_to_stat64 (&buf16, buf); ++ ++ return 0; ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstatfs.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstatfs.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstatfs.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstatfs.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,35 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++#include "statfsconv.c" ++ ++int ++fhstatfs (const fhandle_t *fhp, struct statfs *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_fhstatfs (fhp, &kbuf) < 0) ++ return -1; ++ ++ statfs5_to_statfs (&kbuf, buf); ++ ++ return 0; ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstatfs64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstatfs64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstatfs64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fhstatfs64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,36 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++#include "statfsconv.c" ++ ++int ++fhstatfs64 (const fhandle_t *fhp, struct statfs64 *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_fhstatfs (fhp, &kbuf) < 0) ++ return -1; ++ ++ /* Convert a 'struct statfs' to 'struct statfs64'. */ ++ statfs5_to_statfs64 (&kbuf, buf); ++ ++ return 0; ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatfs.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatfs.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatfs.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatfs.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,38 @@ ++/* Return information about the filesystem on which FD resides. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++#include "statfsconv.c" ++ ++/* Return information about the filesystem on which FD resides. */ ++int ++__fstatfs (int fd, struct statfs *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_fstatfs (fd, &kbuf) < 0) ++ return -1; ++ ++ statfs5_to_statfs (&kbuf, buf); ++ ++ return 0; ++} ++weak_alias (__fstatfs, fstatfs) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatfs64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatfs64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatfs64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatfs64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,40 @@ ++/* Return information about the filesystem on which FD resides. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++#include "statfsconv.c" ++ ++/* Return information about the filesystem on which FD resides. */ ++int ++__fstatfs64 (int fd, struct statfs64 *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_fstatfs (fd, &kbuf) < 0) ++ return -1; ++ ++ /* Convert a 'struct statfs' to 'struct statfs64'. */ ++ statfs5_to_statfs64 (&kbuf, buf); ++ ++ return 0; ++} ++ ++weak_alias (__fstatfs64, fstatfs64) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatvfs.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatvfs.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatvfs.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatvfs.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,40 @@ ++/* Return information about the filesystem on which FD resides. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++#include "statfsconv.c" ++ ++/* Return information about the filesystem on which FD resides. */ ++int ++fstatvfs (int fd, struct statvfs *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_fstatfs (fd, &kbuf) < 0) ++ return -1; ++ ++ /* Convert a 'struct statfs' to 'struct statvfs'. */ ++ statfs5_to_statvfs (&kbuf, buf); ++ ++ return 0; ++} ++libc_hidden_def (fstatvfs) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatvfs64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatvfs64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatvfs64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fstatvfs64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,41 @@ ++/* Return information about the filesystem on which FD resides. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++#include "statfsconv.c" ++ ++/* Return information about the filesystem on which FD resides. */ ++int ++__fstatvfs64 (int fd, struct statvfs64 *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_fstatfs (fd, &kbuf) < 0) ++ return -1; ++ ++ /* Convert a 'struct statfs' to 'struct statvfs64'. */ ++ statfs5_to_statvfs64 (&kbuf, buf); ++ ++ return 0; ++} ++ ++weak_alias (__fstatvfs64, fstatvfs64) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ftruncate.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ftruncate.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ftruncate.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ftruncate.c 2007-11-21 16:53:13.000000000 +0100 +@@ -0,0 +1,41 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++/* The real system call has a word of padding before the 64-bit off_t ++ argument. */ ++extern int __syscall_freebsd6_ftruncate (int __fd, int __unused1, ++ __off_t __length) __THROW; ++libc_hidden_proto (__syscall_freebsd6_ftruncate) ++ ++int ++__ftruncate (int fd, __off_t length) ++{ ++ /* We pass 2 arguments in 4 words. */ ++ return INLINE_SYSCALL (freebsd6_ftruncate, 2, fd, 0, length); ++} ++ ++weak_alias (__ftruncate, ftruncate) ++ ++/* 'ftruncate64' is the same as 'ftruncate', because __off64_t == __off_t. */ ++strong_alias (__ftruncate, __ftruncate64) ++weak_alias (__ftruncate64, ftruncate64) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ftruncate64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ftruncate64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ftruncate64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ftruncate64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1 @@ ++/* 'ftruncate64' is the same as 'ftruncate', because __off64_t == __off_t. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fxstat.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fxstat.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fxstat.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fxstat.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,48 @@ ++/* fxstat using FreeBSD fstat, nfstat system calls. ++ Copyright (C) 1991,1995-1997,2000,2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++#include "stat16conv.c" ++ ++int ++__fxstat (int vers, int fd, struct stat *buf) ++{ ++ if (__builtin_expect (vers == _STAT_VER, 1)) ++ { ++ struct stat16 buf16; ++ int result = __syscall_fstat (fd, __ptrvalue (&buf16)); ++ if (result == 0) ++ stat16_to_stat (&buf16, buf); ++ return result; ++ } ++ else if (__builtin_expect (vers == _STAT_VER_stat, 1)) ++ return __syscall_fstat (fd, CHECK_1 ((struct stat16 *) buf)); ++ else ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++} ++hidden_def (__fxstat) ++ ++weak_alias (__fxstat, _fxstat) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fxstat64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fxstat64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/fxstat64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/fxstat64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,44 @@ ++/* fxstat using FreeBSD fstat, nfstat system calls. ++ Copyright (C) 1991,1995-1997,2000,2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++#include "stat16conv.c" ++ ++int ++__fxstat64 (int vers, int fd, struct stat64 *buf) ++{ ++ if (__builtin_expect (vers == _STAT_VER, 1)) ++ { ++ struct stat16 buf16; ++ int result = __syscall_fstat (fd, __ptrvalue (&buf16)); ++ if (result == 0) ++ stat16_to_stat64 (&buf16, buf); ++ return result; ++ } ++ else ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++} ++hidden_def (__fxstat64) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getcwd.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getcwd.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getcwd.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getcwd.c 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,91 @@ ++/* Determine current working directory. FreeBSD version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++/* The system calls only makes a lookup in the VFS cache, which can easily ++ fail. Therefore we use the generic version as a fallback. */ ++extern int __syscall_getcwd (char *__unbounded buf, unsigned int size); ++libc_hidden_proto (__syscall_getcwd) ++ ++static char *generic_getcwd (char *buf, size_t size) internal_function; ++ ++char * ++__getcwd (char *buf, size_t size) ++{ ++ char tmpbuf[PATH_MAX]; ++ ++ if (INLINE_SYSCALL (getcwd, 2, tmpbuf, PATH_MAX) >= 0) ++ { ++ size_t len = strlen (tmpbuf) + 1; ++ ++ if (size == 0) ++ { ++ if (__builtin_expect (buf != NULL, 0)) ++ { ++ __set_errno (EINVAL); ++ return NULL; ++ } ++ ++ buf = (char *) malloc (len); ++ if (__builtin_expect (buf == NULL, 0)) ++ { ++ __set_errno (ENOMEM); ++ return NULL; ++ } ++ } ++ else ++ { ++ if (size < len) ++ { ++ __set_errno (ERANGE); ++ return NULL; ++ } ++ ++ if (buf == NULL) ++ { ++ buf = (char *) malloc (size); ++ if (__builtin_expect (buf == NULL, 0)) ++ { ++ __set_errno (ENOMEM); ++ return NULL; ++ } ++ } ++ } ++ ++ memcpy (buf, tmpbuf, len); ++ return buf; ++ } ++ return generic_getcwd (buf, size); ++} ++ ++weak_alias (__getcwd, getcwd) ++ ++/* Get the code for the generic version. */ ++#define GETCWD_RETURN_TYPE static char * internal_function ++#define __getcwd generic_getcwd ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdents.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdents.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdents.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdents.c 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,90 @@ ++/* Read directory entries, 3 argument function. FreeBSD version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++#if 1 ++ ++/* Use the 3-argument system call. */ ++ ++extern int __syscall_getdents (int fd, char *buf, size_t nbytes); ++libc_hidden_proto (__syscall_getdents) ++ ++/* Read directory entries from FD into BUF, reading at most NBYTES. ++ Returns the number of bytes read; zero when at end of directory; or ++ -1 for errors. */ ++ssize_t ++internal_function ++__getdents (int fd, char *buf, size_t nbytes) ++{ ++ return __syscall_getdents (fd, buf, nbytes); ++} ++ ++/* Export getdents(). Not an internal_function. */ ++ssize_t ++getdents (int fd, char *buf, size_t nbytes) ++{ ++ return __syscall_getdents (fd, buf, nbytes); ++} ++ ++#else ++ ++/* Use the 4-argument system call. */ ++ ++extern int __syscall_getdirentries (int fd, char *buf, unsigned int nbytes, ++ long *basep); ++ ++/* Read directory entries from FD into BUF, reading at most NBYTES. ++ Returns the number of bytes read; zero when at end of directory; or ++ -1 for errors. */ ++ssize_t ++internal_function ++__getdents (int fd, char *buf, size_t nbytes) ++{ ++ /* On 64-bit platforms, the system call differs from this function ++ because it takes an 'unsigned int', not a 'size_t'. */ ++ unsigned int nbytes32; ++ ++ nbytes32 = nbytes; ++ if (nbytes32 == nbytes) ++ return __syscall_getdirentries (fd, buf, nbytes32, NULL); ++ else ++ { ++ /* NBYTES is too large. */ ++ __set_errno (EINVAL); ++ return -1; ++ } ++} ++ ++/* Export getdents(). Not an internal_function. */ ++ssize_t ++getdents (int fd, char *buf, size_t nbytes) ++{ ++ return __getdents (fd, buf, nbytes); ++} ++ ++#endif ++ ++/* Since 'struct dirent64' == 'struct dirent', the functions '__getdents64' ++ and '__getdents' are equal. */ ++strong_alias (__getdents, __getdents64) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdents64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdents64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdents64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdents64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1 @@ ++/* We have the function getdirentries64 in file getdirentries64.c. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdirentries.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdirentries.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdirentries.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdirentries.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,100 @@ ++/* Read directory entries, 4 argument function. FreeBSD version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef GETDIRENTRIES ++# define GETDIRENTRIES getdirentries ++# define OFF_T off_t ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++ ++#if 1 ++ ++/* Use the 4-argument system call. */ ++ ++extern int __syscall_getdirentries (int fd, char *buf, unsigned int nbytes, ++ long *basep); ++ ++/* Read directory entries from FD into BUF, reading at most NBYTES. ++ Reading starts at offset *BASEP, and *BASEP is updated with the new ++ position after reading. Returns the number of bytes read; zero when at ++ end of directory; or -1 for errors. */ ++/* FIXME: This is not what this function does. It starts reading at the ++ current position of FD, not at *BASEP. */ ++ssize_t ++GETDIRENTRIES (int fd, char *buf, size_t nbytes, OFF_T *basep) ++{ ++ /* On 32-bit platforms, the system call differs from this function because ++ it takes a 'long *', not an 'OFF_T *'. On 64-bit platforms, the system ++ call differs from this function because it takes an 'unsigned int', not ++ a 'size_t'. */ ++ unsigned int nbytes32; ++ ++ nbytes32 = nbytes; ++ if (nbytes32 == nbytes) ++ { ++ long base; ++ int result = __syscall_getdirentries (fd, buf, nbytes32, &base); ++ ++ if (result >= 0 && basep != NULL) ++ *basep = base; ++ return result; ++ } ++ else ++ { ++ /* NBYTES is too large. */ ++ __set_errno (EINVAL); ++ return -1; ++ } ++} ++ ++#else ++ ++/* Use the 3-argument system call. */ ++ ++extern int __syscall_getdents (int fd, char *buf, size_t nbytes); ++ ++/* Read directory entries from FD into BUF, reading at most NBYTES. ++ Reading starts at offset *BASEP, and *BASEP is updated with the new ++ position after reading. Returns the number of bytes read; zero when at ++ end of directory; or -1 for errors. */ ++/* FIXME: This is not what this function does. It starts reading at the ++ current position of FD, not at *BASEP. */ ++ssize_t ++GETDIRENTRIES (int fd, char *buf, size_t nbytes, OFF_T *basep) ++{ ++ OFF_T base = 0; ++ ssize_t result; ++ ++ if (basep) ++ base = __lseek (fd, (off_t) 0, SEEK_CUR); ++ ++ result = __syscall_getdents (fd, buf, nbytes); ++ ++ if (basep && result >= 0) ++ *basep = base; ++ return result; ++} ++ ++#endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdirentries64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdirentries64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdirentries64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getdirentries64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,5 @@ ++/* Since 'struct dirent64' == 'struct dirent', the functions 'getdirentries64' ++ and 'getdirentries' differ only in the type of the BASEP argument. */ ++#define GETDIRENTRIES getdirentries64 ++#define OFF_T off64_t ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getfsstat.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getfsstat.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getfsstat.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getfsstat.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,49 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++#include "statfsconv.c" ++ ++int ++__getfsstat (struct statfs *buf, long bufsize, int flags) ++{ ++ long bufcount; ++ struct statfs_fbsd5 *tmpbuf; ++ int count, i; ++ ++ if (bufsize < 0) ++ bufsize = 0; ++ bufcount = bufsize / sizeof (struct statfs); ++ ++ if ((bufcount == 0) || (buf == NULL)) ++ tmpbuf = NULL; ++ else ++ tmpbuf = alloca(bufcount * sizeof (struct statfs_fbsd5)); ++ ++ count = __syscall_getfsstat (tmpbuf, bufcount * sizeof (struct statfs_fbsd5), flags); ++ if (tmpbuf && count > 0) ++ for (i = count - 1; i >= 0; i--) ++ statfs5_to_statfs (&tmpbuf[i], &buf[i]); ++ ++ return count; ++} ++ ++weak_alias (__getfsstat, getfsstat) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getfsstat64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getfsstat64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getfsstat64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getfsstat64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,49 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++#include "statfsconv.c" ++ ++int ++__getfsstat64 (struct statfs64 *buf, long bufsize, int flags) ++{ ++ long bufcount; ++ struct statfs_fbsd5 *tmpbuf; ++ int count, i; ++ ++ if (bufsize < 0) ++ bufsize = 0; ++ bufcount = bufsize / sizeof (struct statfs64); ++ ++ if ((bufcount == 0) || (buf == NULL)) ++ tmpbuf = NULL; ++ else ++ tmpbuf = alloca(bufcount * sizeof (struct statfs_fbsd5)); ++ ++ count = __syscall_getfsstat (tmpbuf, bufcount * sizeof (struct statfs_fbsd5), flags); ++ if (tmpbuf && count > 0) ++ for (i = count - 1; i >= 0; i--) ++ statfs5_to_statfs64 (&tmpbuf[i], &buf[i]); ++ ++ return count; ++} ++ ++weak_alias (__getfsstat64, getfsstat64) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/gethostid.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/gethostid.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/gethostid.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/gethostid.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,37 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++/* Return the current machine's Internet number. */ ++long int ++gethostid (void) ++{ ++ /* Fetch sysctl value of "kern.hostid". */ ++ int request[2] = { CTL_KERN, KERN_HOSTID }; ++ int result; ++ size_t result_len = sizeof (result); ++ ++ if (__sysctl (request, 2, &result, &result_len, NULL, 0) < 0) ++ /* Dummy result. */ ++ return 0; ++ ++ return result; ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/gethostname.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/gethostname.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/gethostname.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/gethostname.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,52 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++/* Put the name of the current host in no more than LEN bytes of NAME. ++ The result is null-terminated if LEN is large enough for the full ++ name and the terminator. */ ++ ++int ++__gethostname (char *name, size_t len) ++{ ++ /* Fetch the "kern.hostname" sysctl value. */ ++ int request[2] = { CTL_KERN, KERN_HOSTNAME }; ++ size_t result_len = len; ++ ++ if (__sysctl (request, 2, name, &result_len, NULL, 0) < 0) ++ { ++ if (errno == ENOMEM) ++ __set_errno (ENAMETOOLONG); ++ return -1; ++ } ++ ++ if (result_len >= len) ++ { ++ __set_errno (ENAMETOOLONG); ++ return -1; ++ } ++ ++ name[result_len] = '\0'; ++ return 0; ++} ++ ++weak_alias (__gethostname, gethostname) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getloadavg.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getloadavg.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getloadavg.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getloadavg.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,53 @@ ++/* Get system load averages. FreeBSD version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++struct loadavg ++ { ++ unsigned int ldavg[3]; ++ long fscale; ++ }; ++ ++/* Put the 1 minute, 5 minute and 15 minute load averages into the first ++ NELEM elements of LOADAVG. Return the number written (never more than ++ three, but may be less than NELEM), or -1 if an error occurred. */ ++int ++getloadavg (double loadavg[], int nelem) ++{ ++ if (nelem > 3) ++ nelem = 3; ++ if (nelem > 0) ++ { ++ /* Fetch the "vm.loadavg" sysctl value. */ ++ int request[2] = { CTL_VM, VM_LOADAVG }; ++ struct loadavg result; ++ size_t result_len = sizeof (result); ++ int i; ++ ++ if (__sysctl (request, 2, &result, &result_len, NULL, 0) < 0) ++ return -1; ++ ++ for (i = 0; i < nelem; i++) ++ loadavg[i] = (double) result.ldavg[i] / (double) result.fscale; ++ } ++ return nelem; ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getlogin.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getlogin.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getlogin.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getlogin.c 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,50 @@ ++/* Non-reentrant function to return the current login name. FreeBSD version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* Defined in getlogin_r.c. */ ++extern char *__getlogin_cache; ++extern char __getlogin_cache_room[MAXLOGNAME]; ++ ++extern int __syscall_getlogin (char *__name, size_t __name_len); ++libc_hidden_proto (__syscall_getlogin) ++ ++/* Return the login name of the user, or NULL if it can't be determined. ++ The returned pointer, if not NULL, is good only until the next call. */ ++ ++char * ++getlogin (void) ++{ ++ if (__getlogin_cache == NULL) ++ { ++ if (INLINE_SYSCALL (getlogin, 2, __getlogin_cache_room, MAXLOGNAME) < 0) ++ return NULL; ++ /* The system call should return a NULL terminated name. */ ++ if (__memchr (__getlogin_cache_room, '\0', MAXLOGNAME) == NULL) ++ abort (); ++ __getlogin_cache = __getlogin_cache_room; ++ } ++ return (__getlogin_cache[0] ? __getlogin_cache : NULL); ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getlogin_r.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getlogin_r.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getlogin_r.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getlogin_r.c 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,70 @@ ++/* Reentrant function to return the current login name. FreeBSD version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Cache the system call's return value. */ ++char *__getlogin_cache; ++/* The kernel never returns more than MAXLOGNAME bytes, therefore we don't ++ need more than that either. */ ++char __getlogin_cache_room[MAXLOGNAME]; ++ ++extern int __syscall_getlogin (char *__name, size_t __name_len); ++libc_hidden_proto (__syscall_getlogin) ++ ++/* Return at most NAME_LEN characters of the login name of the user in NAME. ++ If it cannot be determined or some other error occurred, return the error ++ code. Otherwise return 0. ++ Note that the getlogin_r function in FreeBSD libc returns a 'char *', ++ but SUSV2 wants a return type of 'int'. */ ++ ++int ++getlogin_r (char *name, size_t name_len) ++{ ++ size_t len; ++ ++ if (__getlogin_cache == NULL) ++ { ++ if (INLINE_SYSCALL (getlogin, 2, __getlogin_cache_room, MAXLOGNAME) < 0) ++ return -1; ++ /* The system call should return a NULL terminated name. */ ++ if (__memchr (__getlogin_cache_room, '\0', MAXLOGNAME) == NULL) ++ abort (); ++ __getlogin_cache = __getlogin_cache_room; ++ } ++ ++ len = strlen (__getlogin_cache); ++ if (__builtin_expect (len < name_len, 1)) ++ { ++ memcpy (name, __getlogin_cache, len + 1); ++ return 0; ++ } ++ else ++ { ++ __set_errno (ERANGE); ++ return -1; ++ } ++} ++libc_hidden_def (getlogin_r) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getmntinfo.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getmntinfo.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getmntinfo.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getmntinfo.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,80 @@ ++/* Return list of mounted filesystems. FreeBSD version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++static int mntbufsize; ++static struct statfs *mntbuf; ++ ++/* Return list of mounted filesystems. ++ Inherently not multithread-safe. */ ++int ++__getmntinfo (struct statfs **mntbufp, int flags) ++{ ++ for (;;) ++ { ++ int count = __getfsstat (NULL, 0, flags); ++ int count2; ++ ++ if (count < 0) ++ return 0; ++ ++ if (count == 0) ++ { ++ __set_errno (0); ++ return 0; ++ } ++ ++ if (count > mntbufsize) ++ { ++ if (mntbuf != NULL) ++ free (mntbuf); ++ mntbufsize = 0; ++ mntbuf = (struct statfs *) malloc (count * sizeof (struct statfs)); ++ if (mntbuf == NULL) ++ { ++ __set_errno (ENOMEM); ++ return 0; ++ } ++ mntbufsize = count; ++ } ++ ++ count2 = __getfsstat (mntbuf, count * sizeof (struct statfs), flags); ++ ++ if (count2 < 0) ++ return 0; ++ ++ if (count2 == 0) ++ { ++ __set_errno (0); ++ return 0; ++ } ++ ++ if (count2 <= count) ++ { ++ *mntbufp = mntbuf; ++ return count2; ++ } ++ } ++} ++ ++weak_alias (__getmntinfo, getmntinfo) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getmntinfo64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getmntinfo64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getmntinfo64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getmntinfo64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,78 @@ ++/* Return list of mounted filesystems. FreeBSD version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++static int mntbufsize; ++static struct statfs64 *mntbuf; ++ ++/* Return list of mounted filesystems. ++ Inherently not multithread-safe. */ ++int ++getmntinfo64 (struct statfs64 **mntbufp, int flags) ++{ ++ for (;;) ++ { ++ int count = __getfsstat64 (NULL, 0, flags); ++ int count2; ++ ++ if (count < 0) ++ return 0; ++ ++ if (count == 0) ++ { ++ __set_errno (0); ++ return 0; ++ } ++ ++ if (count > mntbufsize) ++ { ++ if (mntbuf != NULL) ++ free (mntbuf); ++ mntbufsize = 0; ++ mntbuf = (struct statfs64 *) malloc (count * sizeof (struct statfs64)); ++ if (mntbuf == NULL) ++ { ++ __set_errno (ENOMEM); ++ return 0; ++ } ++ mntbufsize = count; ++ } ++ ++ count2 = __getfsstat64 (mntbuf, count * sizeof (struct statfs64), flags); ++ ++ if (count2 < 0) ++ return 0; ++ ++ if (count2 == 0) ++ { ++ __set_errno (0); ++ return 0; ++ } ++ ++ if (count2 <= count) ++ { ++ *mntbufp = mntbuf; ++ return count2; ++ } ++ } ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getpagesize.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getpagesize.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getpagesize.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getpagesize.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,42 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++/* Return the system page size. */ ++int ++__getpagesize (void) ++{ ++ static int cached_pagesize /* = 0 */; ++ ++ if (cached_pagesize == 0) ++ { ++ /* Fetch sysctl value of "hw.pagesize". */ ++ int request[2] = { CTL_HW, HW_PAGESIZE }; ++ size_t result_len = sizeof (cached_pagesize); ++ ++ if (__sysctl (request, 2, &cached_pagesize, &result_len, NULL, 0) < 0) ++ return -1; ++ } ++ return cached_pagesize; ++} ++libc_hidden_def (__getpagesize) ++ ++weak_alias (__getpagesize, getpagesize) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getpt.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getpt.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getpt.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getpt.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,92 @@ ++/* Copyright (C) 1998-1999, 2000-2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++ ++/* Prefix for master pseudo terminal nodes. */ ++#define _PATH_PTY "/dev/pty" ++ ++ ++/* Letters indicating a series of pseudo terminals. */ ++#ifndef PTYNAME1 ++#define PTYNAME1 "pqrs" ++#endif ++const char __libc_ptyname1[] attribute_hidden = PTYNAME1; ++ ++/* Letters indicating the position within a series. */ ++#ifndef PTYNAME2 ++#define PTYNAME2 "0123456789abcdefghijklmnopqrstuv"; ++#endif ++const char __libc_ptyname2[] attribute_hidden = PTYNAME2; ++ ++ ++/* Open a master pseudo terminal and return its file descriptor. */ ++int ++__posix_openpt (int oflag) ++{ ++ char buf[sizeof (_PATH_PTY) + 2]; ++ const char *p, *q; ++ char *s; ++ ++ s = __mempcpy (buf, _PATH_PTY, sizeof (_PATH_PTY) - 1); ++ /* s[0] and s[1] will be filled in the loop. */ ++ s[2] = '\0'; ++ ++ for (p = __libc_ptyname1; *p != '\0'; ++p) ++ { ++ s[0] = *p; ++ ++ for (q = __libc_ptyname2; *q != '\0'; ++q) ++ { ++ int fd; ++ ++ s[1] = *q; ++ ++ fd = __open (buf, oflag); ++ if (fd >= 0) ++ { ++ if (!(oflag & O_NOCTTY)) ++ __ioctl (fd, TIOCSCTTY, NULL); ++ ++ return fd; ++ } ++ ++ if (errno == ENOENT) ++ return -1; ++ } ++ } ++ ++ __set_errno (ENOENT); ++ return -1; ++} ++ ++weak_alias (__posix_openpt, posix_openpt) ++ ++ ++int ++__getpt (void) ++{ ++ return __posix_openpt (O_RDWR); ++} ++ ++weak_alias (__getpt, getpt) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getrlimit64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getrlimit64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getrlimit64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getrlimit64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1 @@ ++/* 'getrlimit64' is the same as 'getrlimit', because __rlim64_t == __rlim_t. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getsysstats.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getsysstats.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/getsysstats.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/getsysstats.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,108 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++ ++int ++__get_nprocs (void) ++{ ++ /* Fetch sysctl value of "hw.ncpu". */ ++ int request[2] = { CTL_HW, HW_NCPU }; ++ int result; ++ size_t result_len = sizeof (result); ++ ++ if (__sysctl (request, 2, &result, &result_len, NULL, 0) < 0) ++ /* Dummy result. */ ++ return 1; ++ ++ return result; ++} ++ ++weak_alias (__get_nprocs, get_nprocs) ++ ++ ++int ++__get_nprocs_conf (void) ++{ ++ /* We don't know how to distinguish between configured and active CPUs. */ ++ return __get_nprocs (); ++} ++ ++weak_alias (__get_nprocs_conf, get_nprocs_conf) ++ ++ ++long int ++__get_phys_pages (void) ++{ ++ /* Fetch sysctl value of "hw.physmem". This is a little smaller than ++ the real installed memory size, but so what. */ ++ int request[2] = { CTL_HW, HW_PHYSMEM }; ++ int result; ++ size_t result_len = sizeof (result); ++ ++ if (__sysctl (request, 2, &result, &result_len, NULL, 0) < 0) ++ return -1; ++ ++ return result; ++} ++ ++weak_alias (__get_phys_pages, get_phys_pages) ++ ++ ++long int ++__get_avphys_pages (void) ++{ ++#if 1 ++ int result1; ++ int result2; ++ { ++ /* Fetch sysctl value of "vm.stats.vm.v_inactive_count". */ ++ size_t result_len = sizeof (result1); ++ ++ if (__sysctlbyname ("vm.stats.vm.v_inactive_count", &result1, &result_len, ++ NULL, 0) < 0) ++ return -1; ++ } ++ { ++ /* Fetch sysctl value of "vm.stats.vm.v_free_count". */ ++ size_t result_len = sizeof (result2); ++ ++ if (__sysctlbyname ("vm.stats.vm.v_free_count", &result2, &result_len, ++ NULL, 0) < 0) ++ return -1; ++ } ++ ++ return result1 + result2; ++#else ++ /* This does not appear to work. */ ++ /* Fetch v_inactive_count field of sysctl value of "vm.vmmeter". */ ++ int request[2] = { CTL_VM, VM_METER }; ++ struct vmmeter result; ++ size_t result_len = sizeof (result); ++ ++ if (__sysctl (request, 2, &result, &result_len, NULL, 0) < 0) ++ return -1; ++ ++ return result.v_inactive_count; ++#endif ++} ++ ++weak_alias (__get_avphys_pages, get_avphys_pages) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/glob.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/glob.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/glob.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/glob.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,3 @@ ++/* 'glob64' is different from 'glob', because ++ 'struct stat64' != 'struct stat'. */ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/glob64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/glob64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/glob64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/glob64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,3 @@ ++/* 'glob64' is different from 'glob', because ++ 'struct stat64' != 'struct stat'. */ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/gtty.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/gtty.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/gtty.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/gtty.c 2007-11-21 16:53:13.000000000 +0100 +@@ -0,0 +1,3 @@ ++/* just use internal functions */ ++#define ioctl __ioctl ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/Makefile ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/Makefile +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/Makefile 2008-01-03 11:28:10.000000000 +0100 +@@ -0,0 +1,19 @@ ++# Additional header files to be installed in $prefix/include: ++ ++ifeq ($(subdir),misc) ++sysdep_headers += \ ++ sys/io.h \ ++ sys/perm.h \ ++ sys/vm86.h ++endif ++ ++# Additional functions, and particular system calls: ++ ++ifeq ($(subdir),misc) ++# For and . ++sysdep_routines += i386_get_ioperm i386_set_ioperm iopl ++# For . ++sysdep_routines += i386_vm86 ++# For . ++sysdep_routines += i386_get_ldt i386_set_ldt ++endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/Versions ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/Versions +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/Versions 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/Versions 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,7 @@ ++libc { ++ GLIBC_2.2.6 { ++ i386_get_ioperm; i386_set_ioperm; i386_vm86; ++ ioperm; iopl; ++ i386_get_ldt; i386_set_ldt; ++ } ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/bits/mcontext.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/bits/mcontext.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/bits/mcontext.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/bits/mcontext.h 2007-09-09 19:25:26.000000000 +0200 +@@ -0,0 +1,111 @@ ++/* Machine-dependent processor state structure for FreeBSD. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. i386 version. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#if !defined _SYS_UCONTEXT_H ++# error "Never use directly; include instead." ++#endif ++ ++/*- ++ * Copyright (c) 1999 Marcel Moolenaar ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer ++ * in this position and unchanged. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ * ++ * based on $FreeBSD: src/sys/i386/include/ucontext.h,v 1.10 2002/12/02 19:58:55 deischen Exp $ ++ */ ++ ++/* Whole processor state. */ ++typedef struct ++ { ++ /* ++ * The first 20 fields must match the definition of ++ * sigcontext. So that we can support sigcontext ++ * and ucontext_t at the same time. ++ */ ++ ++ int mc_onstack; /* Nonzero if running on sigstack. */ ++ ++ /* Segment registers. */ ++ int mc_gs; ++ int mc_fs; ++ int mc_es; ++ int mc_ds; ++ ++ /* "General" registers. These members are in the order that the i386 ++ `pusha' and `popa' instructions use (`popa' ignores %esp). */ ++ int mc_edi; ++ int mc_esi; ++ int mc_ebp; ++ int mc_isp; /* Not used; sc_esp is used instead. */ ++ int mc_ebx; ++ int mc_edx; ++ int mc_ecx; ++ int mc_eax; ++ ++ int mc_trapno; ++ int mc_err; ++ ++ int mc_eip; /* Instruction pointer. */ ++ int mc_cs; /* Code segment register. */ ++ ++ int mc_efl; /* Processor flags. */ ++ ++ int mc_esp; /* This stack pointer is used. */ ++ int mc_ss; /* Stack segment register. */ ++ ++ int mc_len; /* sizeof(mcontext_t) */ ++#define _MC_FPFMT_NODEV 0x10000 /* device not present or configured */ ++#define _MC_FPFMT_387 0x10001 ++#define _MC_FPFMT_XMM 0x10002 ++ int mc_fpformat; ++#define _MC_FPOWNED_NONE 0x20000 /* FP state not used */ ++#define _MC_FPOWNED_FPU 0x20001 /* FP state came from FPU */ ++#define _MC_FPOWNED_PCB 0x20002 /* FP state came from PCB */ ++ int mc_ownedfp; ++ int mc_spare1[1]; /* align next field to 16 bytes */ ++ /* ++ * See for the internals of mc_fpstate[]. ++ */ ++ int mc_fpstate[128] __attribute__((aligned(16))); ++ int mc_spare2[8]; ++ } mcontext_t; ++ ++/* Traditional BSD names for some members. */ ++#define mc_eflags mc_efl +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/bits/sigcontext.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/bits/sigcontext.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/bits/sigcontext.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/bits/sigcontext.h 2007-09-09 19:18:17.000000000 +0200 +@@ -0,0 +1,97 @@ ++/* Machine-dependent signal context structure for FreeBSD. i386 version. ++ Copyright (C) 1991-1992,1994,1997,2001-2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H ++# error "Never use directly; include instead." ++#endif ++ ++#ifndef _BITS_SIGCONTEXT_H ++#define _BITS_SIGCONTEXT_H 1 ++ ++/* State of this thread when the signal was taken. ++ The unions below are for compatibility with Linux (whose sigcontext ++ components don't have sc_ prefix) */ ++struct sigcontext ++ { ++ __sigset_t sc_mask; /* Blocked signals to restore. */ ++ int sc_onstack; /* Nonzero if running on sigstack. */ ++ ++ /* Segment registers. */ ++ union { int sc_gs; int gs; }; ++ union { int sc_fs; int fs; }; ++ union { int sc_es; int es; }; ++ union { int sc_ds; int ds; }; ++ ++ /* "General" registers. These members are in the order that the i386 ++ `pusha' and `popa' instructions use (`popa' ignores %esp). */ ++ union { int sc_edi; int edi; }; ++ union { int sc_esi; int esi; }; ++ union { int sc_ebp; int ebp; }; ++ union { int sc_isp; int isp; }; /* Not used; sc_esp is used instead. */ ++ union { int sc_ebx; int ebx; }; ++ union { int sc_edx; int edx; }; ++ union { int sc_ecx; int ecx; }; ++ union { int sc_eax; int eax; }; ++ ++ union { int sc_trapno; int trapno; }; ++ union { int sc_err; int err; }; ++ ++ union { int sc_eip; int eip; }; /* Instruction pointer. */ ++ union { int sc_cs; int cs; }; /* Code segment register. */ ++ ++ union { int sc_efl; int eflags; }; /* Processor flags. */ ++ ++ union { int sc_esp; int esp; }; /* This stack pointer is used. */ ++ union { int sc_ss; int ss; }; /* Stack segment register. */ ++ ++ int sc_len; /* sizeof(mcontext_t) */ ++ /* ++ * XXX - See and for ++ * the following fields. ++ */ ++ int sc_fpformat; ++ int sc_ownedfp; ++ int sc_spare1[1]; ++ int sc_fpstate[128] __attribute__((aligned(16))); ++ int sc_spare2[8]; ++ }; ++ ++/* Traditional BSD names for some members. */ ++#define sc_sp sc_esp /* Stack pointer. */ ++#define sc_fp sc_ebp /* Frame pointer. */ ++#define sc_pc sc_eip /* Process counter. */ ++#define sc_ps sc_efl ++#define sc_eflags sc_efl ++ ++#if 1 /* FIXME: These need verification. */ ++ ++/* Codes for SIGILL. */ ++#define ILL_PRIVIN_FAULT 1 ++#define ILL_ALIGN_FAULT 14 ++#define ILL_FPOP_FAULT 24 ++ ++/* Codes for SIGBUS. */ ++#define BUS_PAGE_FAULT 12 ++#define BUS_SEGNP_FAULT 26 ++#define BUS_STK_FAULT 27 ++#define BUS_SEGM_FAULT 29 ++ ++#endif ++ ++#endif /* _BITS_SIGCONTEXT_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/bits/time.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/bits/time.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/bits/time.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/bits/time.h 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,89 @@ ++/* System-dependent timing definitions. FreeBSD version. ++ Copyright (C) 1996-1997, 1999, 2000, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* ++ * Never include this file directly; use instead. ++ */ ++ ++#ifndef __need_timeval ++# ifndef _BITS_TIME_H ++# define _BITS_TIME_H 1 ++ ++/* ISO/IEC 9899:1990 7.12.1: ++ The macro `CLOCKS_PER_SEC' is the number per second of the value ++ returned by the `clock' function. */ ++/* CAE XSH, Issue 4, Version 2: ++ The value of CLOCKS_PER_SEC is required to be 1 million on all ++ XSI-conformant systems. */ ++# define CLOCKS_PER_SEC 1000000l ++ ++# if !defined __STRICT_ANSI__ && !defined __USE_XOPEN2K ++/* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK ++ presents the real value for clock ticks per second for the system. */ ++# define CLK_TCK 128 ++# endif ++ ++# ifdef __USE_POSIX199309 ++/* Identifier for system-wide realtime clock. */ ++# define CLOCK_REALTIME 0 ++/* High-resolution timer from the CPU. */ ++# define CLOCK_PROCESS_CPUTIME_ID 2 ++/* Thread-specific CPU-time clock. */ ++# define CLOCK_THREAD_CPUTIME_ID 3 ++/* Monotonic system-wide clock. */ ++# define CLOCK_MONOTONIC 4 ++/* These are BSD specific clocks. */ ++# ifdef __USE_BSD ++# define CLOCK_VIRTUAL 1 ++# define CLOCK_PROF 2 ++# endif ++ ++/* Flag to indicate time is absolute. */ ++# define TIMER_ABSTIME 1 ++# endif ++ ++ ++/* Getkerninfo clock information structure */ ++struct clockinfo ++ { ++ int hz; /* clock frequency */ ++ int tick; /* micro-seconds per hz tick */ ++ int spare; ++ int stathz; /* statistics clock frequency */ ++ int profhz; /* profiling clock frequency */ ++ }; ++ ++# endif /* bits/time.h */ ++#endif ++ ++#ifdef __need_timeval ++# undef __need_timeval ++# ifndef _STRUCT_TIMEVAL ++# define _STRUCT_TIMEVAL 1 ++# include ++ ++/* A time value that is accurate to the nearest ++ microsecond but also has a range of years. */ ++struct timeval ++ { ++ __time_t tv_sec; /* Seconds. */ ++ __suseconds_t tv_usec; /* Microseconds. */ ++ }; ++# endif /* struct timeval */ ++#endif /* need timeval */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/dl-machine.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/dl-machine.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/dl-machine.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/dl-machine.h 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,124 @@ ++/* Machine-dependent ELF dynamic relocation inline functions. ++ FreeBSD i386 specific version of dl_platform_init() ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++ ++/* For FreeBSD we redefine an initialization function. ++ This is called very early in dl_sysdep_start. */ ++ ++#include_next ++ ++#undef DL_PLATFORM_INIT ++#define DL_PLATFORM_INIT dl_platform_kfreebsd_i386_init () ++ ++#ifndef _DL_MACHINE_KFREEBSD ++#define _DL_MACHINE_KFREEBSD ++ ++#define X86_EFLAGS_AC 0x00040000 /* Alignment Check */ ++#define X86_EFLAGS_ID 0x00200000 /* CPUID detection flag */ ++ ++static inline int try_flip_flags(int val) ++{ ++ int ret; ++ __asm__( ++ "pushfl\n\t" ++ "pushfl\n\t" ++ "popl %%ecx\n\t" ++ "xorl %%ecx,%%eax\n\t" ++ "pushl %%eax\n\t" ++ "popfl\n\t" ++ "pushfl\n\t" ++ "popl %%eax\n\t" ++ "xorl %%ecx,%%eax\n\t" ++ "popfl\n\t" ++ : "=a" (ret) ++ : "0" (val) ++ : "cx" ++ ); ++ return ret; ++} ++ ++static inline void cpuid(int op, int *eax, int *edx) ++{ ++ __asm__( ++ "push %%ebx\n\t" ++ "cpuid\n\t" ++ "pop %%ebx\n\t" ++ : "=a" (*eax), ++ "=d" (*edx) ++ : "0" (op) ++ : "cx" ++ ); ++} ++ ++static inline void __attribute__ ((unused)) ++dl_platform_kfreebsd_i386_init (void) ++{ ++ if ((GLRO(dl_platform) == NULL) || (*GLRO(dl_platform) == '\0')) ++ { ++ /* we don't have reasonable AT_PLATFORM from kernel ++ try to use cpuid to get one, also guess AT_HWCAP */ ++ ++ int val, hwcap; ++ ++ val = try_flip_flags(X86_EFLAGS_AC | X86_EFLAGS_ID); ++ ++ if (!(val & X86_EFLAGS_AC)) ++ { ++ /* 386 */ ++ GLRO(dl_platform) = GLRO(dl_x86_platforms)[0]; ++ GLRO(dl_hwcap) = 0; ++ } ++ else if (!(val & X86_EFLAGS_ID)) ++ { ++ /* 486 */ ++ GLRO(dl_platform) = GLRO(dl_x86_platforms)[1]; ++ GLRO(dl_hwcap) = 0; ++ } ++ else ++ { ++ cpuid(0, &val, &hwcap); ++ if (val == 0) ++ { ++ /* 486 */ ++ GLRO(dl_platform) = GLRO(dl_x86_platforms)[1]; ++ GLRO(dl_hwcap) = 0; ++ } ++ else ++ { ++ cpuid(1, &val, &hwcap); ++ GLRO(dl_hwcap) = hwcap; ++ switch (val & 0xf00) ++ { ++ case 0x400: /* 486 */ ++ GLRO(dl_platform) = GLRO(dl_x86_platforms)[1]; ++ break; ++ case 0x500: /* 586 */ ++ GLRO(dl_platform) = GLRO(dl_x86_platforms)[2]; ++ break; ++ default: /* 686 */ ++ GLRO(dl_platform) = GLRO(dl_x86_platforms)[3]; ++ } ++ } ++ } ++ } ++} ++ ++#endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/dl-procinfo.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/dl-procinfo.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/dl-procinfo.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/dl-procinfo.h 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/get_clockfreq.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/get_clockfreq.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/get_clockfreq.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/get_clockfreq.c 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/getcontext.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/getcontext.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/getcontext.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/getcontext.S 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,38 @@ ++/* Save current context. ++ Copyright (C) 2006 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++.text ++ENTRY(__getcontext) ++ clc ++ movl 0(%esp), %ecx /* save the return PC value */ ++ ++ DO_CALL (getcontext, 1) ++ jb SYSCALL_ERROR_LABEL ++ ++ addl $4, %esp /* remove stale return address */ ++ jmp *%ecx ++ ++L(pseudo_end): ++ ret ++ ++PSEUDO_END(__getcontext) ++ ++weak_alias(__getcontext, getcontext) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_get_ioperm.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_get_ioperm.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_get_ioperm.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_get_ioperm.c 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,36 @@ ++/* Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++int ++i386_get_ioperm (unsigned long int from, unsigned long int *num, int *turned_on) ++{ ++ struct i386_ioperm_args args; ++ ++ args.start = from; ++ ++ if (__sysarch (I386_GET_IOPERM, &args) < 0) ++ return -1; ++ ++ *num = args.length; ++ *turned_on = args.enable; ++ ++ return 0; ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_get_ldt.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_get_ldt.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_get_ldt.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_get_ldt.c 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,38 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ Contributed by Robert Millan ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++int ++i386_get_ldt (int from, union descriptor *descs, int num) ++{ ++ struct i386_ldt_args args; ++ ++ args.start = from; ++ args.descs = descs; ++ args.num = num; ++ ++ if (__sysarch (I386_GET_LDT, &args) < 0) ++ return -1; ++ ++ return 0; ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_set_ioperm.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_set_ioperm.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_set_ioperm.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_set_ioperm.c 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,34 @@ ++/* Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++int ++i386_set_ioperm (unsigned long int from, unsigned long int num, int turn_on) ++{ ++ struct i386_ioperm_args args; ++ ++ args.start = from; ++ args.length = num; ++ args.enable = turn_on; ++ ++ return __sysarch (I386_SET_IOPERM, &args); ++} ++ ++strong_alias (i386_set_ioperm, ioperm) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_set_ldt.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_set_ldt.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_set_ldt.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_set_ldt.c 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,38 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ Contributed by Robert Millan ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++int ++i386_set_ldt (int from, union descriptor *descs, int num) ++{ ++ struct i386_ldt_args args; ++ ++ args.start = from; ++ args.descs = descs; ++ args.num = num; ++ ++ if (__sysarch (I386_SET_LDT, &args) < 0) ++ return -1; ++ ++ return 0; ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_vm86.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_vm86.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_vm86.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i386_vm86.c 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,31 @@ ++/* Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++int ++i386_vm86 (int cmd, void *arg) ++{ ++ struct i386_vm86_args args; ++ ++ args.sub_op = cmd; ++ args.sub_args = arg; ++ ++ return __sysarch (I386_VM86, &args); ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i486/linuxthreads/pt-machine.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i486/linuxthreads/pt-machine.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i486/linuxthreads/pt-machine.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i486/linuxthreads/pt-machine.h 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,8 @@ ++ ++/* i486+ is almost same as plain i386 version */ ++#include_next ++ ++/* but compare-and-swap is always available */ ++ ++#undef TEST_FOR_COMPARE_AND_SWAP ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i586/linuxthreads/pt-machine.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i586/linuxthreads/pt-machine.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i586/linuxthreads/pt-machine.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i586/linuxthreads/pt-machine.h 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,8 @@ ++ ++/* i486+ is almost same as plain i386 version */ ++#include_next ++ ++/* but compare-and-swap is always available */ ++ ++#undef TEST_FOR_COMPARE_AND_SWAP ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i686/linuxthreads/pt-machine.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i686/linuxthreads/pt-machine.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i686/linuxthreads/pt-machine.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/i686/linuxthreads/pt-machine.h 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,8 @@ ++ ++/* i486+ is almost same as plain i386 version */ ++#include_next ++ ++/* but compare-and-swap is always available */ ++ ++#undef TEST_FOR_COMPARE_AND_SWAP ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/iopl.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/iopl.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/iopl.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/iopl.c 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,54 @@ ++/* Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Robert Millan ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include /* open */ ++#include /* close */ ++ ++static int __iopl_fd = -1; ++ ++int ++iopl (int level) ++ { ++ switch (level) ++ { ++ case 3: ++ if (__iopl_fd != -1) ++ return 0; ++ ++ __iopl_fd = open ("/dev/io", O_RDWR); ++ if (__iopl_fd == -1) ++ { ++ if (errno == EACCES) ++ __set_errno (EPERM); ++ return -1; ++ } ++ return 0; ++ ++ case 0: ++ if (__iopl_fd != -1) ++ if (close (__iopl_fd) == -1) ++ return 1; ++ return 0; ++ ++ default: ++ __set_errno (EINVAL); ++ return -1; ++ } ++ } +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/ldconfig.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/ldconfig.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/ldconfig.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/ldconfig.h 2007-01-05 11:36:38.000000000 +0100 +@@ -0,0 +1,37 @@ ++/* Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++#define SYSDEP_KNOWN_INTERPRETER_NAMES \ ++ { "/lib/ld.so.1", FLAG_ELF_LIBC6 }, \ ++ { "/libexec/ld-elf.so.1", FLAG_ELF_LIBC5 }, ++ ++#define SYSDEP_KNOWN_LIBRARY_NAMES \ ++ { "libc.so.0.1", FLAG_ELF_LIBC6 }, \ ++ { "libm.so.1", FLAG_ELF_LIBC6 }, \ ++ { "libc.so.4", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.4", FLAG_ELF_LIBC5 }, \ ++ { "libc.so.5", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.5", FLAG_ELF_LIBC5 }, \ ++ { "libc.so.6", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.6", FLAG_ELF_LIBC5 }, \ ++ { "libc.so.7", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.7", FLAG_ELF_LIBC5 }, \ ++ { "libc.so.8", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.8", FLAG_ELF_LIBC5 }, +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/linuxthreads/pt-machine.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/linuxthreads/pt-machine.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/linuxthreads/pt-machine.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/linuxthreads/pt-machine.h 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,76 @@ ++/* Machine-dependent pthreads configuration and inline functions. ++ ix86 version for FreeBSD. ++ Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Petr Salinger, 2005. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public License as ++ published by the Free Software Foundation; either version 2.1 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef _FREEBSD_PT_MACHINE_H ++#define _FREEBSD_PT_MACHINE_H 1 ++ ++/* ++ some parts are common with linux/i386 version ++ ++ linux specific parts should be in ++ linuxthreads/sysdeps/unix/sysv/linux/i386/ ++ but they are included directly in ++ linuxthreads/sysdeps/i386/ ++ ++ so include them ++ ++ */ ++ ++#include ++#include ++ ++/* hack them */ ++ ++#ifndef __ASSEMBLER__ ++ ++#undef INIT_THREAD_SELF ++#undef FREE_THREAD ++ ++/* The P4 and above really want some help to prevent overheating. */ ++#define BUSY_WAIT_NOP __asm__ ("rep; nop") ++ ++/* and add few FreeBSD specifics */ ++ ++#include ++ ++/* Initialize the thread-unique value. */ ++ ++#define INIT_THREAD_SELF(descr, nr) \ ++{ \ ++ long tmp; \ ++ tmp = (long) descr; \ ++ if (sysarch(I386_SET_GSBASE, &tmp) != 0) \ ++ { \ ++ abort(); \ ++ } \ ++} ++ ++#define FREE_THREAD(descr, nr) do { } while (0) ++ ++#endif /* __ASSEMBLER__ */ ++ ++/* We want the OS to assign stack addresses. */ ++#define FLOATING_STACKS 1 ++ ++/* Maximum size of the stack if the rlimit is unlimited. */ ++#define ARCH_STACK_MAX_SIZE 8*1024*1024 ++ ++#endif /* _FREEBSD_PT_MACHINE_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/linuxthreads/sysdep-cancel.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/linuxthreads/sysdep-cancel.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/linuxthreads/sysdep-cancel.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/linuxthreads/sysdep-cancel.h 2007-05-23 05:32:13.000000000 +0200 +@@ -0,0 +1,166 @@ ++/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Jakub Jelinek , 2002. ++ Modification for FreeBSD by Petr Salinger, 2005. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#ifndef __ASSEMBLER__ ++# include ++#endif ++ ++#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt ++ ++# undef PSEUDO ++# define PSEUDO(name, syscall_name, args) \ ++ .text; \ ++ ENTRY (name) \ ++ SINGLE_THREAD_P; \ ++ jne L(pseudo_cancel); \ ++ DO_CALL (syscall_name, args); \ ++ jb SYSCALL_ERROR_LABEL; \ ++ ret; \ ++ L(pseudo_cancel): \ ++ CENABLE \ ++ movl %eax, %ecx; \ ++ movl $SYS_ify (syscall_name), %eax; \ ++ int $0x80; \ ++ PUSHRESULT; \ ++ movl %ecx, %eax; \ ++ CDISABLE; \ ++ POPRESULT; \ ++ jb SYSCALL_ERROR_LABEL; \ ++ L(pseudo_end): ++ ++/* ++ on FreeBSD some syscalls return result in pair edx+eax, ++ therefore proper way would be ++ ++# define PUSHRESULT pushl %edx; pushl %eax; pushfl ++# define POPRESULT popfl; popl %eax; popl %edx ++ ++ for FreeBSD 5.4 affected syscalls are ++ ++ lseek() ++ fork() ++ vfork() ++ rfork() ++ pipe() ++ ++ none of them is cancelable, therefore ++*/ ++ ++# define PUSHRESULT pushl %eax; cfi_adjust_cfa_offset (4); pushfl; cfi_adjust_cfa_offset (4) ++# define POPRESULT popfl; cfi_adjust_cfa_offset (-4); popl %eax; cfi_adjust_cfa_offset (-4) ++ ++# ifdef IS_IN_libpthread ++# define CENABLE call __pthread_enable_asynccancel; ++# define CDISABLE call __pthread_disable_asynccancel ++# elif defined IS_IN_librt ++# ifdef PIC ++# define CENABLE pushl %ebx; \ ++ cfi_adjust_cfa_offset (4); \ ++ cfi_rel_offset (ebx, 0); \ ++ call __i686.get_pc_thunk.bx; \ ++ addl $_GLOBAL_OFFSET_TABLE_, %ebx; \ ++ call __librt_enable_asynccancel@PLT; \ ++ popl %ebx; \ ++ cfi_adjust_cfa_offset (-4); \ ++ cfi_restore (ebx); ++# define CDISABLE pushl %ebx; \ ++ cfi_adjust_cfa_offset (4); \ ++ cfi_rel_offset (ebx, 0); \ ++ call __i686.get_pc_thunk.bx; \ ++ addl $_GLOBAL_OFFSET_TABLE_, %ebx; \ ++ call __librt_disable_asynccancel@PLT; \ ++ popl %ebx; \ ++ cfi_adjust_cfa_offset (-4); \ ++ cfi_restore (ebx); ++# else ++# define CENABLE call __librt_enable_asynccancel; ++# define CDISABLE call __librt_disable_asynccancel ++# endif ++# else ++# define CENABLE call __libc_enable_asynccancel; ++# define CDISABLE call __libc_disable_asynccancel ++# endif ++ ++#if !defined NOT_IN_libc ++# define __local_multiple_threads __libc_multiple_threads ++#elif defined IS_IN_libpthread ++# define __local_multiple_threads __pthread_multiple_threads ++#else ++# define __local_multiple_threads __librt_multiple_threads ++#endif ++ ++# ifndef __ASSEMBLER__ ++# if defined FLOATING_STACKS && USE___THREAD && defined PIC ++# define SINGLE_THREAD_P \ ++ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ ++ p_header.data.multiple_threads) == 0, 1) ++# else ++extern int __local_multiple_threads ++# if !defined NOT_IN_libc || defined IS_IN_libpthread ++ attribute_hidden; ++# else ++ ; ++# endif ++# define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1) ++# endif ++# else ++# if !defined PIC ++# define SINGLE_THREAD_P cmpl $0, __local_multiple_threads ++# elif defined FLOATING_STACKS && USE___THREAD ++# define SINGLE_THREAD_P cmpl $0, %gs:MULTIPLE_THREADS_OFFSET ++# else ++# if !defined NOT_IN_libc || defined IS_IN_libpthread ++# define __SINGLE_THREAD_CMP cmpl $0, __local_multiple_threads@GOTOFF(%ecx) ++# else ++# define __SINGLE_THREAD_CMP \ ++ movl __local_multiple_threads@GOT(%ecx), %ecx;\ ++ cmpl $0, (%ecx) ++# endif ++# if !defined HAVE_HIDDEN || !USE___THREAD ++# define SINGLE_THREAD_P \ ++ SETUP_PIC_REG (cx); \ ++ addl $_GLOBAL_OFFSET_TABLE_, %ecx; \ ++ __SINGLE_THREAD_CMP ++# else ++# define SINGLE_THREAD_P \ ++ call __i686.get_pc_thunk.cx; \ ++ addl $_GLOBAL_OFFSET_TABLE_, %ecx; \ ++ __SINGLE_THREAD_CMP ++# endif ++# endif ++# endif ++ ++#elif !defined __ASSEMBLER__ ++ ++/* This code should never be used but we define it anyhow. */ ++# define SINGLE_THREAD_P (1) ++# define NO_CANCELLATION 1 ++ ++#endif ++ ++#ifndef __ASSEMBLER__ ++# define RTLD_SINGLE_THREAD_P \ ++ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ ++ p_header.data.multiple_threads) == 0, 1) ++#endif ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/linuxthreads/tls.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/linuxthreads/tls.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/linuxthreads/tls.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/linuxthreads/tls.h 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,93 @@ ++/* Definition for thread-local data handling. linuxthreads/i386 version. ++ Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Modification for FreeBSD by Petr Salinger, 2005. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _FREEBSD_TLS_H ++#define _FREEBSD_TLS_H ++ ++#include ++ ++/* We can support TLS only if the floating-stack support is available. ++ To avoid bothering with the TLS support code at all, ++ use configure --without-tls. ++ ++ We need USE_TLS to be consistently defined, for ldsodefs.h conditionals. ++ But some of the code below can cause problems in building libpthread ++*/ ++ ++#if defined HAVE_TLS_SUPPORT \ ++ && (defined FLOATING_STACKS || !defined IS_IN_libpthread) ++ ++# ifndef __ASSEMBLER__ ++ ++#undef TLS_INIT_TP ++#undef TLS_SETUP_GS_SEGMENT ++ ++#include ++#include ++ ++ ++/* Code to initially initialize the thread pointer. This might need ++ special attention since 'errno' is not yet available and if the ++ operation can cause a failure 'errno' must not be touched. */ ++ ++# define TLS_DO_SET_GSBASE(descr) \ ++({ \ ++ long base = (long) descr; \ ++ int result; \ ++ asm volatile ( \ ++ "pushl %3\n\t" \ ++ "pushl %2\n\t" \ ++ "pushl %1\n\t" \ ++ "int $0x80\n\t" \ ++ "popl %3\n\t" \ ++ "popl %3\n\t" \ ++ "popl %3\n\t" \ ++ : "=a" (result) \ ++ : "0" (SYS_sysarch), \ ++ "i" (I386_SET_GSBASE), \ ++ "d" (&base) \ ++ : "memory", "cc" ); \ ++ result; \ ++}) ++ ++# define TLS_SETUP_GS_SEGMENT(descr, secondcall) \ ++ (TLS_DO_SET_GSBASE(descr) \ ++ ? "set_thread_area failed when setting up thread-local storage\n" : NULL) ++ ++/* The value of this macro is null if successful, or an error string. */ ++ ++# define TLS_INIT_TP(descr, secondcall) \ ++ ({ \ ++ void *_descr = (descr); \ ++ tcbhead_t *head = _descr; \ ++ \ ++ head->tcb = _descr; \ ++ /* For now the thread descriptor is at the same address. */ \ ++ head->self = _descr; \ ++ \ ++ INIT_SYSINFO; \ ++ TLS_SETUP_GS_SEGMENT (_descr, secondcall); \ ++ }) ++ ++# endif /* __ASSEMBLER__ */ ++ ++#endif /* HAVE_TLS_SUPPORT && (FLOATING_STACKS || !IS_IN_libpthread) */ ++ ++#endif /* _FREEBSD_TLS_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/makecontext.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/makecontext.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/makecontext.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/makecontext.S 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,113 @@ ++/* Create new context. ++ Copyright (C) 2001,02 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper , 2001. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++#include ++ ++ ++ENTRY(__makecontext) ++ movl 4(%esp), %eax ++ ++ /* Load the address of the function we are supposed to run. */ ++ movl 8(%esp), %ecx ++ ++ /* Compute the address of the stack. The information comes from ++ to us_stack element. */ ++ movl oSS_SP(%eax), %edx ++ movl %ecx, oEIP(%eax) ++ addl oSS_SIZE(%eax), %edx ++ ++ /* Put the next context on the new stack (from the uc_link ++ element). */ ++ movl oLINK(%eax), %ecx ++ movl %ecx, -4(%edx) ++ ++ /* Remember the number of parameters for the exit handler since ++ it has to remove them. We store the number in the EBX register ++ which the function we will call must preserve. */ ++ movl 12(%esp), %ecx ++ movl %ecx, oEBX(%eax) ++ ++ /* Make room on the new stack for the parameters. */ ++ negl %ecx ++ leal -8(%edx,%ecx,4), %edx ++ negl %ecx ++ /* Store the future stack pointer. */ ++ movl %edx, oESP(%eax) ++ ++ /* Copy all the parameters. */ ++ jecxz 2f ++1: movl 12(%esp,%ecx,4), %eax ++ movl %eax, (%edx,%ecx,4) ++ decl %ecx ++ jnz 1b ++2: ++ ++ /* If the function we call returns we must continue with the ++ context which is given in the uc_link element. To do this ++ set the return address for the function the user provides ++ to a little bit of helper code which does the magic (see ++ below). */ ++#ifdef PIC ++ call 1f ++1: popl %ecx ++ addl $L(exitcode)-1b, %ecx ++ movl %ecx, (%edx) ++#else ++ movl $L(exitcode), (%edx) ++#endif ++ /* 'makecontext' returns no value. */ ++ ret ++ ++ /* This is the helper code which gets called if a function which ++ is registered with 'makecontext' returns. In this case we ++ have to install the context listed in the uc_link element of ++ the context 'makecontext' manipulated at the time of the ++ 'makecontext' call. If the pointer is NULL the process must ++ terminate. */ ++L(exitcode): ++ /* This removes the parameters passed to the function given to ++ 'makecontext' from the stack. EBX contains the number of ++ parameters (see above). */ ++ leal (%esp,%ebx,4), %esp ++ ++#ifdef PIC ++ call 1f ++1: popl %ebx ++ addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx ++#endif ++ popl %eax /* This is the next context. */ ++ testl %eax, %eax ++ je 2f /* If it is zero exit. */ ++ ++ pushl %eax ++ call JUMPTARGET(__setcontext) ++ /* If this returns (which can happen if the syscall fails) we'll ++ exit the program with the return error value (-1). */ ++ ++2: pushl %eax ++ call HIDDEN_JUMPTARGET(exit) ++ /* The 'exit' call should never return. In case it does cause ++ the process to terminate. */ ++ hlt ++END(__makecontext) ++ ++weak_alias(__makecontext, makecontext) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/rfork.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/rfork.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/rfork.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/rfork.S 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,44 @@ ++/* Copyright (C) 1991-1992, 1994-1995, 1997, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++.text; ++ENTRY (__rfork) ++ /* save the return PC value into ECX, ++ preserve stack frame with argument */ ++ movl 0(%esp), %ecx; ++ DO_CALL (rfork, 1) ++ jb SYSCALL_ERROR_LABEL; ++ /* R1 is now 0 for the parent and 1 for the child. Decrement it to ++ make it -1 (all bits set) for the parent, and 0 (no bits set) ++ for the child. Then AND it with R0, so the parent gets ++ R0&-1==R0, and the child gets R0&0==0. */ ++ decl %edx ++ andl %edx, %eax ++ ++ popl %edx ++ cfi_adjust_cfa_offset(-4) ++ jmp *%ecx ++ ++L(pseudo_end): ++ ret ++PSEUDO_END (__rfork) ++ ++weak_alias (__rfork, rfork) ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sigcontextinfo.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sigcontextinfo.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sigcontextinfo.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sigcontextinfo.h 2007-11-15 15:46:16.000000000 +0100 +@@ -0,0 +1,35 @@ ++/* Copyright (C) 1998, 1999, 2001, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* ++native FreeBSD: ++ sighandler(int signum, int code, struct sigcontext * sg, void * fault_ip) ++posix like: ++ sighandler(int signum, siginfo_t * si, struct sigcontext * sg, void * fault_ip) ++*/ ++ ++#define SIGCONTEXT long _code, struct sigcontext * _sg, void * ++#define SIGCONTEXT_EXTRA_ARGS _code, _sg, ++ ++/* really, really, rest of glibc expects that struct sigcontext is the last argument */ ++#define GET_PC(ctx) ((void *) (_sg)->sc_eip) ++#define GET_FRAME(ctx) ((void *) (_sg)->sc_ebp) ++#define GET_STACK(ctx) ((void *) (_sg)->sc_esp) ++ ++#define CALL_SIGHANDLER(handler, signo, ctx) \ ++ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx)) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/start_thread.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/start_thread.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/start_thread.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/start_thread.S 2008-01-27 20:08:25.000000000 +0100 +@@ -0,0 +1,207 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* __start_thread (flags, stack, func, arg) ++ calls __rfork (flags), and in the child sets the stack pointer and then ++ calls _exit (func (arg)). ++ It cannot be done in portable C. */ ++ ++#include ++#include ++#define SIG_SETMASK 3 ++ ++ .text ++ENTRY (__start_thread) ++ /* End FDE now, because in the child the unwind info will be ++ wrong. */ ++ cfi_endproc ++ ++ /* There is a window of a few instructions, right after the rfork ++ system call, where the handling of a signal would write garbage ++ into the stack shared by the parent and the child (assuming ++ RFMEM is set in flags). To solve this: 1. We block all signals ++ around the rfork system call and unblock them afterwards in ++ the parent and in the child (but only after changing the stack ++ pointer). 2. The child accesses only values passed in registers ++ and on its own stack. This way, if the parent is scheduled to ++ run first, and handles a signal, it will not affect the child; ++ and if the child runs first, and handles a signal, it will use ++ the child's stack and not affect the parent. ++ We need to pass 7 words of info to the child: stack, func, arg, ++ and the signal mask to restore. Since we have only 4 call-saved ++ registers available (%ebx, %esi, %edi, %ebp), we pass only the ++ stack pointer in a register, and the rest through the child's ++ stack. */ ++ pushl %ebp ++ movl %esp, %ebp ++ subl $36, %esp ++ movl %ebx, 32(%esp) ++ ++ movl 8(%ebp), %eax /* flags */ ++ testl $32, %eax /* flags & RFMEM */ ++ jz L(simple) ++ ++ /* Block all signals. */ ++ movl $-1, %eax ++ movl %eax, 16(%esp) ++ movl %eax, 20(%esp) ++ movl %eax, 24(%esp) ++ movl %eax, 28(%esp) ++ leal 16(%esp), %eax ++ movl $SIG_SETMASK, 4(%esp) ++ movl %eax, 8(%esp) ++ movl %eax, 12(%esp) ++ DO_CALL (sigprocmask, 3) ++ jb L(error) ++ ++ /* Copy all info to the child's stack. */ ++ movl 12(%ebp), %ebx /* stack */ ++ subl $32, %ebx /* room for func, arg, sigset_t */ ++ andl $-16, %ebx /* make it 16-bytes aligned */ ++ movl 16(%ebp), %eax /* func */ ++ movl 20(%ebp), %edx /* arg */ ++ movl %eax, 4(%ebx) ++ movl %edx, (%ebx) ++ movl 16(%esp), %eax /* sigset_t word 0 */ ++ movl 20(%esp), %edx /* sigset_t word 1 */ ++ movl %eax, 16(%ebx) ++ movl %edx, 20(%ebx) ++ movl 24(%esp), %eax /* sigset_t word 2 */ ++ movl 28(%esp), %edx /* sigset_t word 3 */ ++ movl %eax, 24(%ebx) ++ movl %edx, 28(%ebx) ++ ++ /* Perform the rfork system call. */ ++ movl 8(%ebp), %eax /* flags */ ++ movl %eax, 4(%esp) ++ DO_CALL (rfork, 1) ++ jb L(error_unmask) ++ ++ /* %edx is now 0 for the parent and 1 for the child. */ ++ testl %edx, %edx ++ jnz L(child) ++ ++ /* Save the child pid, currently in %eax. */ ++ movl %eax, %ebx ++ ++ /* Restore the previous signal mask. */ ++ leal 16(%esp), %eax ++ movl $SIG_SETMASK, 4(%esp) ++ movl %eax, 8(%esp) ++ movl $0, 12(%esp) ++ DO_CALL (sigprocmask, 3) ++ ++ /* Return the child pid, currently in %ebx. */ ++ movl %ebx, %eax ++ addl $32, %esp ++ popl %ebx ++ popl %ebp ++ ret ++ ++L(child):/* Here we are in the child thread. */ ++ ++ /* Set the stack pointer. */ ++ movl %ebx, %esp ++ /* Terminate the stack frame. */ ++ subl %ebp, %ebp ++ ++ movl 4(%esp), %edi ++ ++ /* Restore the previous signal mask. */ ++ leal 16(%esp), %eax ++ movl $SIG_SETMASK, 4(%esp) ++ movl %eax, 8(%esp) ++ movl $0, 12(%esp) ++ DO_CALL (sigprocmask, 3) ++ ++L(child1): ++ /* Call func (arg). */ ++ call *%edi ++ ++ /* Call _exit. */ ++#ifdef PIC ++ call L(here) ++L(here): ++ popl %ebx ++ addl $_GLOBAL_OFFSET_TABLE_+[.-L(here)], %ebx ++#endif ++ pushl %eax ++ call HIDDEN_JUMPTARGET (_exit) ++ ++L(simple):/* Simple case without signal mask handling. */ ++ ++ /* Copy all info to the child's stack. */ ++ movl 12(%ebp), %ebx /* stack */ ++ subl $8, %ebx /* room for func, arg */ ++ andl $-16, %ebx /* make it 16-bytes aligned */ ++ movl 16(%ebp), %eax /* func */ ++ movl 20(%ebp), %edx /* arg */ ++ movl %eax, 4(%ebx) ++ movl %edx, (%ebx) ++ ++ /* Perform the rfork system call. */ ++ movl 8(%ebp), %eax /* flags */ ++ movl %eax, 4(%esp) ++ DO_CALL (rfork, 1) ++ jb L(error) ++ ++ /* %edx is now 0 for the parent and 1 for the child. */ ++ testl %edx, %edx ++ jnz L(simple_child) ++ ++ /* Return the child pid, currently in %eax. */ ++ addl $32, %esp ++ popl %ebx ++ popl %ebp ++L(pseudo_end): ++ ret ++ ++L(simple_child):/* Here we are in the child thread. */ ++ ++ /* Set the stack pointer. */ ++ movl %ebx, %esp ++ /* Terminate the stack frame. */ ++ subl %ebp, %ebp ++ ++ movl 4(%esp), %edi ++ ++ jmp L(child1) ++ ++L(error_unmask): ++ ++ /* Save the error code, currently in %eax. */ ++ movl %eax, %ebx ++ ++ /* Restore the previous signal mask. */ ++ leal 16(%esp), %eax ++ movl $SIG_SETMASK, 4(%esp) ++ movl %eax, 8(%esp) ++ movl $0, 12(%esp) ++ DO_CALL (sigprocmask, 3) ++ ++ /* load saved error code */ ++ movl %ebx, %eax ++ ++L(error): ++ addl $32, %esp ++ popl %ebx ++ popl %ebp ++ jmp SYSCALL_ERROR_LABEL ++ cfi_startproc ++PSEUDO_END (__start_thread) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/swapcontext.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/swapcontext.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/swapcontext.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/swapcontext.S 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,32 @@ ++/* swap current context. ++ Copyright (C) 2006 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++.text ++ENTRY(__swapcontext) ++ clc ++ DO_CALL (swapcontext, 2) ++ jb SYSCALL_ERROR_LABEL ++L(pseudo_end): ++ ret ++ ++PSEUDO_END(__swapcontext) ++ ++weak_alias(__swapcontext, swapcontext) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys/io.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys/io.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys/io.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys/io.h 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,180 @@ ++/* Copyright (C) 1996, 2000, 2002, 2004 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_IO_H ++#define _SYS_IO_H 1 ++ ++#include ++ ++__BEGIN_DECLS ++ ++/* If TURN_ON is TRUE, request for permission to do direct i/o on the ++ port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O ++ permission off for that range. This call requires root privileges. ++ ++ Portability note: not all kFreeBSD platforms support this call. Most ++ platforms based on the PC I/O architecture probably will, however. */ ++extern int ioperm (unsigned long int __from, unsigned long int __num, ++ int __turn_on) __THROW; ++ ++/* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to ++ access any I/O port is granted. This call requires root ++ privileges. */ ++extern int iopl (int __level) __THROW; ++ ++#if defined __GNUC__ && __GNUC__ >= 2 ++ ++static __inline unsigned char ++inb (unsigned short int port) ++{ ++ unsigned char _v; ++ ++ __asm__ __volatile__ ("inb %w1,%0":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned char ++inb_p (unsigned short int port) ++{ ++ unsigned char _v; ++ ++ __asm__ __volatile__ ("inb %w1,%0\noutb %%al,$0x80":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned short int ++inw (unsigned short int port) ++{ ++ unsigned short _v; ++ ++ __asm__ __volatile__ ("inw %w1,%0":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned short int ++inw_p (unsigned short int port) ++{ ++ unsigned short int _v; ++ ++ __asm__ __volatile__ ("inw %w1,%0\noutb %%al,$0x80":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned int ++inl (unsigned short int port) ++{ ++ unsigned int _v; ++ ++ __asm__ __volatile__ ("inl %w1,%0":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned int ++inl_p (unsigned short int port) ++{ ++ unsigned int _v; ++ __asm__ __volatile__ ("inl %w1,%0\noutb %%al,$0x80":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline void ++outb (unsigned char value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outb %b0,%w1": :"a" (value), "Nd" (port)); ++} ++ ++static __inline void ++outb_p (unsigned char value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outb %b0,%w1\noutb %%al,$0x80": :"a" (value), ++ "Nd" (port)); ++} ++ ++static __inline void ++outw (unsigned short int value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outw %w0,%w1": :"a" (value), "Nd" (port)); ++ ++} ++ ++static __inline void ++outw_p (unsigned short int value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outw %w0,%w1\noutb %%al,$0x80": :"a" (value), ++ "Nd" (port)); ++} ++ ++static __inline void ++outl (unsigned int value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outl %0,%w1": :"a" (value), "Nd" (port)); ++} ++ ++static __inline void ++outl_p (unsigned int value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outl %0,%w1\noutb %%al,$0x80": :"a" (value), ++ "Nd" (port)); ++} ++ ++static __inline void ++insb (unsigned short int port, void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; insb":"=D" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++insw (unsigned short int port, void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; insw":"=D" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++insl (unsigned short int port, void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; insl":"=D" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++outsb (unsigned short int port, const void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; outsb":"=S" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++outsw (unsigned short int port, const void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; outsw":"=S" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++outsl (unsigned short int port, const void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; outsl":"=S" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++#endif /* GNU C */ ++ ++__END_DECLS ++#endif /* _SYS_IO_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys/perm.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys/perm.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys/perm.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys/perm.h 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,43 @@ ++/* Copyright (C) 1996, 1999, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_PERM_H ++#define _SYS_PERM_H 1 ++ ++#include ++ ++__BEGIN_DECLS ++ ++/* Set port input/output permissions. */ ++extern int ioperm (unsigned long int __from, unsigned long int __num, ++ int __turn_on) __THROW; ++ ++ ++/* Change I/O privilege level. */ ++extern int iopl (int __level) __THROW; ++ ++extern int i386_set_ioperm (unsigned long int __from, unsigned long int __num, ++ int __turn_on) __THROW; ++ ++/* Retrieve a contiguous range of port input/output permissions. */ ++extern int i386_get_ioperm (unsigned long int __from, unsigned long int *__num, ++ int *__turned_on) __THROW; ++ ++__END_DECLS ++ ++#endif /* _SYS_PERM_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys/vm86.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys/vm86.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys/vm86.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys/vm86.h 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,53 @@ ++/* Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_VM86_H ++#define _SYS_VM86_H 1 ++ ++#include ++ ++/* Possible values for the 'cmd' argument to i386_vm86. */ ++enum ++ { ++ VM86_INIT = 1, ++#define VM86_INIT VM86_INIT ++ VM86_GET_VME = 3 ++#define VM86_GET_VME VM86_GET_VME ++ }; ++ ++/* Argument structure for VM86_INIT. */ ++struct vm86_init_args ++ { ++ int debug; ++ int cpu_type; ++ unsigned char int_map[32]; ++ }; ++ ++/* Argument structure for VM86_GET_VME. */ ++struct vm86_vme_args ++ { ++ int state; ++ }; ++ ++__BEGIN_DECLS ++ ++extern int i386_vm86 (int __cmd, void *__arg); ++ ++__END_DECLS ++ ++#endif /* _SYS_VM86_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys_fork.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys_fork.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys_fork.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys_fork.S 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,34 @@ ++/* Copyright (C) 1991-1992, 1994-1995, 1997, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++.text; ++ENTRY (__syscall_fork) ++ DO_CALL (fork, 0) ++ jb SYSCALL_ERROR_LABEL; ++ /* R1 is now 0 for the parent and 1 for the child. Decrement it to ++ make it -1 (all bits set) for the parent, and 0 (no bits set) ++ for the child. Then AND it with R0, so the parent gets ++ R0&-1==R0, and the child gets R0&0==0. */ ++ decl r1 ++ andl r1, r0 ++L(pseudo_end): ++ ret ++PSEUDO_END (__syscall_fork) ++libc_hidden_def (__syscall_fork) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys_lseek.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys_lseek.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys_lseek.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sys_lseek.S 2007-11-21 16:53:12.000000000 +0100 +@@ -0,0 +1,32 @@ ++/* Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++/* lseek returns a 64-bit result in %eax, %edx. This means that in the ++ error case we have to set both %eax and %edx to -1. */ ++ ++PSEUDO_NOERRNO(__syscall_freebsd6_lseek, freebsd6_lseek, 4) ++ jnb L(no_error) ++ call SYSCALL_ERROR_LABEL; ++ orl $-1, %edx; ++L(pseudo_end): ++L(no_error): ++ ret ++PSEUDO_END(__syscall_freebsd6_lseek) ++libc_hidden_def (__syscall_freebsd6_lseek) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sysarch.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sysarch.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sysarch.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sysarch.h 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,81 @@ ++/* Parameters for the architecture specific system call. i386 version. ++ Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYSARCH_H ++#define _SYSARCH_H 1 ++ ++#include ++ ++/* Function that can be used as first argument to 'sysarch'. */ ++enum ++ { ++ I386_GET_LDT = 0, ++#define I386_GET_LDT I386_GET_LDT ++ I386_SET_LDT = 1, ++#define I386_SET_LDT I386_SET_LDT ++ I386_GET_IOPERM = 3, ++#define I386_GET_IOPERM I386_GET_IOPERM ++ I386_SET_IOPERM = 4, ++#define I386_SET_IOPERM I386_SET_IOPERM ++ I386_VM86 = 6, ++#define I386_VM86 I386_VM86 ++ I386_GET_FSBASE = 7, ++#define I386_GET_FSBASE I386_GET_FSBASE ++ I386_SET_FSBASE = 8, ++#define I386_SET_FSBASE I386_SET_FSBASE ++ I386_GET_GSBASE = 9, ++#define I386_GET_GSBASE I386_GET_GSBASE ++ I386_SET_GSBASE = 10 ++#define I386_SET_GSBASE I386_SET_GSBASE ++ }; ++ ++/* Argument struct for I386_GET_LDT and I386_SET_LDT. */ ++struct i386_ldt_args ++ { ++ int start; ++ union descriptor *descs; ++ int num; ++ }; ++ ++/* Argument struct for I386_GET_IOPERM and I386_SET_IOPERM. */ ++struct i386_ioperm_args ++ { ++ unsigned int start; ++ unsigned int length; ++ int enable; ++ }; ++ ++/* Argument struct for I386_VM86. */ ++struct i386_vm86_args ++ { ++ int sub_op; ++ void *sub_args; ++ }; ++ ++__BEGIN_DECLS ++ ++extern int sysarch (int __cmd, void *__arg); ++ ++#ifdef _LIBC ++extern int __sysarch (int __cmd, void *__arg); ++#endif ++ ++__END_DECLS ++ ++#endif /* _SYSARCH_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/syscall.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/syscall.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/syscall.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/syscall.S 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,34 @@ ++/* Copyright (C) 1993, 1995-1998, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++ .text; ++ENTRY (__syscall) ++ popl %ecx /* Pop return address into %ecx. */ ++ cfi_adjust_cfa_offset (-4) ++ movl 0(%esp), %eax /* Load syscall number into %eax. */ ++ int $0x80 /* Do the system call. */ ++ pushl %ecx /* Push back return address. */ ++ cfi_adjust_cfa_offset (4) ++ jb SYSCALL_ERROR_LABEL; /* Jump to error handler if error. */ ++ ++L(pseudo_end): ++ ret /* Return to caller. */ ++PSEUDO_END (__syscall) ++weak_alias (__syscall, syscall) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sysdep.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sysdep.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sysdep.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sysdep.S 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,38 @@ ++/* Copyright (C) 1995-1998, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++/* The following code is only used in the shared library when we ++ compile the reentrant version. Otherwise each system call defines ++ its own version. */ ++ ++#ifndef PIC ++ ++/* The syscall stubs jump here when they detect an error. ++ The code for FreeBSD is identical to the canonical Unix/i386 code. */ ++ ++#undef CALL_MCOUNT ++#define CALL_MCOUNT /* Don't insert the profiling call, it clobbers %eax. */ ++ ++ .text ++ENTRY (__syscall_error) ++#define __syscall_error __syscall_error_1 ++#include ++ ++#endif /* !PIC */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sysdep.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sysdep.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sysdep.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/sysdep.h 2007-05-26 13:09:59.000000000 +0200 +@@ -0,0 +1,235 @@ ++/* Copyright (C) 1992,1993,1995-2000,2002,2003,2004 ++ Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper, , August 1995. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _FREEBSD_I386_SYSDEP_H ++#define _FREEBSD_I386_SYSDEP_H 1 ++ ++/* There is some commonality. */ ++#include ++#include ++#include ++/* Defines RTLD_PRIVATE_ERRNO and USE_DL_SYSINFO. */ ++#include ++#include ++ ++#ifdef __ASSEMBLER__ ++ ++/* We don't want the label for the error handle to be global when we define ++ it here. */ ++#ifdef PIC ++# define SYSCALL_ERROR_LABEL 0f ++#else ++# define SYSCALL_ERROR_LABEL syscall_error ++#endif ++ ++#undef PSEUDO ++#define PSEUDO(name, syscall_name, args) \ ++ .text; \ ++ ENTRY (name) \ ++ DO_CALL (syscall_name, args); \ ++ jb SYSCALL_ERROR_LABEL; \ ++ L(pseudo_end): ++ ++#undef PSEUDO_END ++#define PSEUDO_END(name) \ ++ SYSCALL_ERROR_HANDLER \ ++ END (name) ++ ++#undef PSEUDO_NOERRNO ++#define PSEUDO_NOERRNO(name, syscall_name, args) \ ++ .text; \ ++ ENTRY (name) \ ++ DO_CALL (syscall_name, args) ++ ++#undef PSEUDO_END_NOERRNO ++#define PSEUDO_END_NOERRNO(name) \ ++ END (name) ++ ++#define ret_NOERRNO ret ++ ++/* The function has to return the error code. */ ++#undef PSEUDO_ERRVAL ++#define PSEUDO_ERRVAL(name, syscall_name, args) \ ++ .text; \ ++ ENTRY (name) \ ++ DO_CALL (syscall_name, args); \ ++ ++#undef PSEUDO_END_ERRVAL ++#define PSEUDO_END_ERRVAL(name) \ ++ END (name) ++ ++#define ret_ERRVAL ret ++ ++#ifndef PIC ++# define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */ ++#else ++ ++# if RTLD_PRIVATE_ERRNO ++# define SYSCALL_ERROR_HANDLER \ ++0:SETUP_PIC_REG(cx); \ ++ addl $_GLOBAL_OFFSET_TABLE_, %ecx; \ ++ movl %eax, rtld_errno@GOTOFF(%ecx); \ ++ orl $-1, %eax; \ ++ jmp L(pseudo_end); ++ ++# elif defined _LIBC_REENTRANT ++ ++# if USE___THREAD ++# ifndef NOT_IN_libc ++# define SYSCALL_ERROR_ERRNO __libc_errno ++# else ++# define SYSCALL_ERROR_ERRNO errno ++# endif ++# define SYSCALL_ERROR_HANDLER \ ++0:SETUP_PIC_REG (cx); \ ++ addl $_GLOBAL_OFFSET_TABLE_, %ecx; \ ++ movl SYSCALL_ERROR_ERRNO@GOTNTPOFF(%ecx), %ecx; \ ++ SYSCALL_ERROR_HANDLER_TLS_STORE (%eax, %ecx); \ ++ orl $-1, %eax; \ ++ jmp L(pseudo_end); ++# ifndef NO_TLS_DIRECT_SEG_REFS ++# define SYSCALL_ERROR_HANDLER_TLS_STORE(src, destoff) \ ++ movl src, %gs:(destoff) ++# else ++# define SYSCALL_ERROR_HANDLER_TLS_STORE(src, destoff) \ ++ addl %gs:0, destoff; \ ++ movl src, (destoff) ++# endif ++# else ++# define SYSCALL_ERROR_HANDLER \ ++0:pushl %ebx; \ ++ cfi_adjust_cfa_offset (4); \ ++ cfi_rel_offset (ebx, 0); \ ++ SETUP_PIC_REG (bx); \ ++ addl $_GLOBAL_OFFSET_TABLE_, %ebx; \ ++ pushl %eax; \ ++ cfi_adjust_cfa_offset (4); \ ++ PUSH_ERRNO_LOCATION_RETURN; \ ++ call BP_SYM (__errno_location)@PLT; \ ++ POP_ERRNO_LOCATION_RETURN; \ ++ popl %ecx; \ ++ cfi_adjust_cfa_offset (-4); \ ++ popl %ebx; \ ++ cfi_adjust_cfa_offset (-4); \ ++ cfi_restore (ebx); \ ++ movl %ecx, (%eax); \ ++ orl $-1, %eax; \ ++ jmp L(pseudo_end); ++/* A quick note: it is assumed that the call to `__errno_location' does ++ not modify the stack! */ ++# endif ++# else ++/* Store (%eax) into errno through the GOT. */ ++# define SYSCALL_ERROR_HANDLER \ ++0:SETUP_PIC_REG(cx); \ ++ addl $_GLOBAL_OFFSET_TABLE_, %ecx; \ ++ movl errno@GOT(%ecx), %ecx; \ ++ movl %eax, (%ecx); \ ++ orl $-1, %eax; \ ++ jmp L(pseudo_end); ++# endif /* _LIBC_REENTRANT */ ++#endif /* PIC */ ++ ++/* ++ FreeBSD expects the system call arguments on the stack, ++ syscall number is in %eax. ++ return value is in %eax + %edx ++ error is signaled via cflags. ++ all other data registers are preserved ++ ++ syscall number %eax call-clobbered ++ ++ The stack layout upon entering the function is: ++ ++ 20(%esp) Arg# 5 ++ 16(%esp) Arg# 4 ++ 12(%esp) Arg# 3 ++ 8(%esp) Arg# 2 ++ 4(%esp) Arg# 1 ++ (%esp) Return address ++ ++ (Of course a function with say 3 arguments does not have entries for ++ arguments 4 and 5.) ++ ++*/ ++ ++#undef DO_CALL ++#define DO_CALL(syscall_name, args) \ ++ movl $SYS_ify (syscall_name), %eax; \ ++ int $0x80 \ ++ ++#else /* !__ASSEMBLER__ */ ++ ++#include ++ ++/* Consistency check for position-independent code. */ ++#ifdef __PIC__ ++# define check_consistency() \ ++ ({ int __res; \ ++ __asm__ __volatile__ \ ++ ("call __i686.get_pc_thunk.cx;" \ ++ "addl $_GLOBAL_OFFSET_TABLE_, %%ecx;" \ ++ "subl %%ebx, %%ecx;" \ ++ "je 1f;" \ ++ "ud2;" \ ++ "1:\n" \ ++ ".section .gnu.linkonce.t.__i686.get_pc_thunk.cx,\"ax\",@progbits;" \ ++ ".globl __i686.get_pc_thunk.cx;" \ ++ ".hidden __i686.get_pc_thunk.cx;" \ ++ ".type __i686.get_pc_thunk.cx,@function;" \ ++ "__i686.get_pc_thunk.cx:" \ ++ "movl (%%esp), %%ecx;" \ ++ "ret;" \ ++ ".previous" \ ++ : "=c" (__res)); \ ++ __res; }) ++#endif ++ ++#endif /* __ASSEMBLER__ */ ++ ++ ++/* Pointer mangling support. */ ++#if defined NOT_IN_libc && defined IS_IN_rtld ++/* We cannot use the thread descriptor because in ld.so we use setjmp ++ earlier than the descriptor is initialized. Using a global variable ++ is too complicated here since we have no PC-relative addressing mode. */ ++#else ++# ifdef __ASSEMBLER__ ++# define PTR_MANGLE(reg) xorl %gs:POINTER_GUARD, reg; \ ++ roll $9, reg ++# define PTR_DEMANGLE(reg) rorl $9, reg; \ ++ xorl %gs:POINTER_GUARD, reg ++# else ++# define PTR_MANGLE(var) asm ("xorl %%gs:%c2, %0\n" \ ++ "roll $9, %0" \ ++ : "=r" (var) \ ++ : "0" (var), \ ++ "i" (offsetof (tcbhead_t, \ ++ pointer_guard))) ++# define PTR_DEMANGLE(var) asm ("rorl $9, %0\n" \ ++ "xorl %%gs:%c2, %0" \ ++ : "=r" (var) \ ++ : "0" (var), \ ++ "i" (offsetof (tcbhead_t, \ ++ pointer_guard))) ++# endif ++#endif ++ ++#endif /* _FREEBSD_I386_SYSDEP_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/ucontext_i.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/ucontext_i.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/ucontext_i.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/ucontext_i.h 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,38 @@ ++/* Offsets and other constants needed in the *context() function ++ implementation. ++ Copyright (C) 2001 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* Offsets of the fields in the ucontext_t structure. */ ++#define oSIGMASK 0 ++#define oGS 20 ++#define oFS 24 ++#define oEDI 36 ++#define oESI 40 ++#define oEBP 44 ++#define oEBX 52 ++#define oEDX 56 ++#define oECX 60 ++#define oEAX 64 ++ ++#define oEIP 76 ++#define oESP 88 ++ ++#define oLINK 656 ++#define oSS_SP 660 ++#define oSS_SIZE 664 +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/vfork.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/vfork.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/vfork.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/i386/vfork.S 2006-10-18 09:59:56.000000000 +0200 +@@ -0,0 +1,58 @@ ++/* Copyright (C) 1999, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++/* Clone the calling process, but without copying the whole address space. ++ The calling process is suspended until the new process exits or is ++ replaced by a call to `execve'. Return -1 for errors, 0 to the new process, ++ and the process ID of the new process to the old process. */ ++ ++ENTRY (__vfork) ++ ++ /* Pop the return PC value into ECX. */ ++ popl %ecx ++ cfi_adjust_cfa_offset(-4) ++ ++ /* Perform the system call. */ ++ DO_CALL (vfork, 0) ++ jb L(error) /* Branch forward if it failed. */ ++ ++ /* In the parent process, %edx == 0, %eax == child pid. */ ++ /* In the child process, %edx == 1, %eax == parent pid. */ ++ ++ /* Change %eax to be 0 in the child process. */ ++ decl %edx ++ andl %edx, %eax ++ ++ /* Jump to the return PC. */ ++ jmp *%ecx ++ ++L(error): ++ /* Push back the return PC. */ ++ pushl %ecx ++ cfi_adjust_cfa_offset(4) ++ ++ /* Branch to the error handler, hidden in PSEUDO_END. */ ++ jmp SYSCALL_ERROR_LABEL ++L(pseudo_end): ++ ret ++PSEUDO_END (__vfork) ++libc_hidden_def (__vfork) ++ ++weak_alias (__vfork, vfork) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/if_index.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/if_index.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/if_index.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/if_index.c 2006-11-22 11:44:31.000000000 +0100 +@@ -0,0 +1,303 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ ++typedef int (*if_fn) (void *private, unsigned int index, const char *name); ++ ++/* Iterate through all present interfaces. ++ Call FN once for every interface, returning immediately if FN returns ++ a nonzero value. */ ++static void ++if_iterate (if_fn fn, void *private) ++{ ++ int request[6] = { CTL_NET, PF_ROUTE, 0, 0, NET_RT_IFLIST, 0 }; ++ char *buf; ++ size_t bufsize = 512; ++ char *bufend; ++ char *p; ++ ++ /* Call the kernel function sysctl_iflist() in /usr/src/sys/net/rtsock.c. */ ++ for (;;) ++ { ++ buf = alloca (bufsize); ++ if (__sysctl (request, 6, buf, &bufsize, NULL, 0) >= 0) ++ break; ++ if (errno != ENOMEM) ++ return; ++ bufsize *= 2; ++ } ++ ++ bufend = buf + bufsize; ++ for (p = buf; p < bufend; ) ++ { ++ struct if_msghdr *msg = (struct if_msghdr *) p; ++ ++ if (msg->ifm_version != RTM_VERSION) ++ abort (); ++ ++ switch (msg->ifm_type) ++ { ++ case RTM_IFINFO: ++ if (msg->ifm_addrs & RTA_IFP) ++ { ++ unsigned int index; ++ struct sockaddr_dl *sdl; ++ char namebuf[IFNAMSIZ + 1]; ++ size_t namelen; ++ ++ index = msg->ifm_index; ++ if (index == 0) ++ abort (); ++ ++ sdl = (struct sockaddr_dl *) (msg + 1); ++ namelen = sdl->sdl_nlen; ++ /* Avoid overflowing namebuf[]. */ ++ if (namelen > IFNAMSIZ) ++ namelen = IFNAMSIZ; ++ memcpy (namebuf, sdl->sdl_data, namelen); ++ namebuf[namelen] = '\0'; ++ ++ /* Call FN now. */ ++ if (fn (private, index, namebuf)) ++ return; ++ } ++ break; ++ ++ case RTM_NEWADDR: ++ break; ++ ++ default: ++ abort (); ++ } ++ ++ p += msg->ifm_msglen; ++ } ++} ++ ++/* ------------------------------------------------------------------------- */ ++ ++struct nametoindex_locals ++ { ++ const char *name; ++ unsigned int index; ++ }; ++ ++static int ++nametoindex_aux (void *private, unsigned int index, const char *name) ++{ ++ struct nametoindex_locals *l = (struct nametoindex_locals *) private; ++ if (strcmp (name, l->name) == 0) ++ { ++ l->index = index; ++ return 1; ++ } ++ return 0; ++} ++ ++/* Return the index of an interface given by name. */ ++unsigned int ++if_nametoindex (const char *ifname) ++{ ++ struct nametoindex_locals l; ++ ++ l.name = ifname; ++ l.index = 0; ++ if_iterate (nametoindex_aux, &l); ++ ++ return l.index; ++} ++libc_hidden_def (if_nametoindex) ++ ++/* ------------------------------------------------------------------------- */ ++ ++struct indextoname_locals ++ { ++ unsigned int index; ++ char *name; ++ char *retval; ++ }; ++ ++static int ++indextoname_aux (void *private, unsigned int index, const char *name) ++{ ++ struct indextoname_locals *l = (struct indextoname_locals *) private; ++ if (index == l->index) ++ { ++ strncpy (l->name, name, IF_NAMESIZE); ++ l->retval = l->name; ++ return 1; ++ } ++ __set_errno (ENXIO); ++ return 0; ++} ++ ++/* Return the name of an interface given by name. */ ++char * ++if_indextoname (unsigned int ifindex, char *ifname) ++{ ++ struct indextoname_locals l; ++ ++ l.index = ifindex; ++ l.name = ifname; ++ l.retval = NULL; ++ if_iterate (indextoname_aux, &l); ++ return l.retval; ++} ++libc_hidden_def (if_indextoname) ++ ++/* ------------------------------------------------------------------------- */ ++ ++struct nameindex_locals ++ { ++ /* Resizable array of 'struct if_nameindex'. */ ++ struct if_nameindex *s_array; ++ size_t s_len; ++ size_t s_allocated; ++ /* Resizable array of char. */ ++ char *c_array; ++ size_t c_len; ++ size_t c_allocated; ++ /* Out-of-memory indicator. */ ++ int oom; ++ }; ++ ++static void ++add_s (struct nameindex_locals *l, unsigned int index, char *name) ++{ ++ if (l->s_len == l->s_allocated) ++ { ++ size_t new_allocated = 2 * l->s_allocated + 1; ++ struct if_nameindex *new_array = ++ (struct if_nameindex *) ++ realloc (l->s_array, new_allocated * sizeof (struct if_nameindex)); ++ if (new_array == NULL) ++ { ++ l->oom = 1; ++ return; ++ } ++ l->s_array = new_array; ++ l->s_allocated = new_allocated; ++ } ++ /* Now l->s_len < l->s_allocated. */ ++ l->s_array[l->s_len].if_index = index; ++ l->s_array[l->s_len].if_name = name; ++ l->s_len++; ++} ++ ++static __inline size_t ++add_c (struct nameindex_locals *l, const char *name) ++{ ++ size_t n = strlen (name) + 1; ++ size_t result_offset; ++ if (l->c_len + n > l->c_allocated) ++ { ++ size_t new_allocated = ++ (l->c_len + n < 2 * l->c_allocated + 1 ++ ? l->c_len + n ++ : 2 * l->c_allocated + 1); ++ char *new_array = (char *) realloc (l->c_array, new_allocated); ++ if (new_array == NULL) ++ { ++ l->oom = 1; ++ return 0; ++ } ++ l->c_array = new_array; ++ l->c_allocated = new_allocated; ++ } ++ /* Now l->c_len + n <= l->c_allocated. */ ++ result_offset = l->c_len; ++ memcpy (l->c_array + l->c_len, name, n); ++ l->c_len += n; ++ return result_offset; ++} ++ ++static int ++nameindex_aux (void *private, unsigned int index, const char *name) ++{ ++ struct nameindex_locals *l = (struct nameindex_locals *) private; ++ ++ size_t name_offset = add_c (l, name); ++ if (!l->oom) ++ { ++ add_s (l, index, (char *) NULL + name_offset); ++ if (!l->oom) ++ return 0; ++ } ++ return 1; ++} ++ ++/* Return an array of 'struct if_nameindex', one for each present ++ interface. */ ++struct if_nameindex * ++if_nameindex (void) ++{ ++ struct nameindex_locals l; ++ ++ l.s_array = NULL; l.s_len = 0; l.s_allocated = 0; ++ l.c_array = NULL; l.c_len = 0; l.c_allocated = 0; ++ l.oom = 0; ++ if_iterate (nameindex_aux, &l); ++ if (!l.oom) ++ { ++ /* Convert all offsets to real pointers. */ ++ struct if_nameindex *p; ++ struct if_nameindex *p_end; ++ ++ for (p = l.s_array, p_end = p + l.s_len; p < p_end; p++) ++ p->if_name = l.c_array + (p->if_name - (char *) NULL); ++ ++ /* Add a terminating entry. */ ++ add_s (&l, 0, NULL); ++ } ++ if (l.oom) ++ { ++ free (l.s_array); ++ free (l.c_array); ++ __set_errno (ENOMEM); ++ return NULL; ++ } ++ return l.s_array; ++} ++libc_hidden_def (if_nameindex) ++ ++/* ------------------------------------------------------------------------- */ ++ ++/* Free an array returned by if_nameindex(). */ ++void ++if_freenameindex (struct if_nameindex *ifn) ++{ ++ if (ifn != NULL) ++ { ++ /* Free c_array. */ ++ free (ifn[0].if_name); ++ /* Free s_array. */ ++ free (ifn); ++ } ++} ++libc_hidden_def (if_freenameindex) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ifaddrs.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ifaddrs.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ifaddrs.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ifaddrs.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,171 @@ ++/* getifaddrs -- get names and addresses of all network interfaces ++ Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++/* Create a linked list of `struct ifaddrs' structures, one for each ++ network interface on the host machine. If successful, store the ++ list in *IFAP and return 0. On errors, return -1 and set `errno'. */ ++int ++getifaddrs (struct ifaddrs **ifap) ++{ ++ /* This implementation handles only IPv4 interfaces. ++ The various ioctls below will only work on an AF_INET socket. ++ Some different mechanism entirely must be used for IPv6. */ ++ int fd = __socket (AF_INET, SOCK_DGRAM, 0); ++ struct ifreq *ifreqs; ++ int nifs; ++ ++ if (fd < 0) ++ return -1; ++ ++ __ifreq (&ifreqs, &nifs, fd); ++ if (ifreqs == NULL) /* XXX doesn't distinguish error vs none */ ++ { ++ __close (fd); ++ return -1; ++ } ++ ++ /* Now we have the list of interfaces and each one's address. ++ Put it into the expected format and fill in the remaining details. */ ++ if (nifs == 0) ++ *ifap = NULL; ++ else ++ { ++ struct ++ { ++ struct ifaddrs ia; ++ struct sockaddr addr, netmask, broadaddr; ++ char name[IF_NAMESIZE]; ++ } *storage; ++ struct ifreq *ifr; ++ int i, j; ++ ++ storage = malloc (nifs * sizeof storage[0]); ++ if (storage == NULL) ++ { ++ __close (fd); ++ __if_freereq (ifreqs, nifs); ++ return -1; ++ } ++ ++ i = 0; ++ j = 0; ++ ifr = ifreqs; ++ do ++ { ++ struct ifreq *next_ifr = __if_nextreq (ifr); ++ ++ /* Fill in all pointers to the storage we've already allocated. */ ++ storage[i].ia.ifa_next = &storage[i + 1].ia; ++ storage[i].ia.ifa_addr = &storage[i].addr; ++ storage[i].ia.ifa_netmask = &storage[i].netmask; ++ storage[i].ia.ifa_broadaddr = &storage[i].broadaddr; /* & dstaddr */ ++ ++ /* Now copy the information we already have from SIOCGIFCONF. */ ++ storage[i].ia.ifa_name = strncpy (storage[i].name, ifr->ifr_name, ++ sizeof storage[i].name); ++ storage[i].addr = ifr->ifr_addr; ++ ++ /* The SIOCGIFCONF call filled in only the name and address. ++ Now we must also ask for the other information we need. */ ++ ++ if (__ioctl (fd, SIOCGIFFLAGS, ifr) < 0) ++ break; ++ ++ /* Ignore interfaces that are down. */ ++ if (ifr->ifr_flags & IFF_UP) ++ { ++ storage[i].ia.ifa_flags = ifr->ifr_flags; ++ ++ /* Retrieve the value for storage[i].ia.ifa_netmask. */ ++ ifr->ifr_addr = storage[i].addr; ++ if (__ioctl (fd, SIOCGIFNETMASK, ifr) < 0) ++ break; ++ storage[i].netmask = ifr->ifr_netmask; ++ ++ /* Retrieve the value for storage[i].ia.ifa_broadaddr. */ ++ if (ifr->ifr_flags & IFF_BROADCAST) ++ { ++ ifr->ifr_addr = storage[i].addr; ++ if (__ioctl (fd, SIOCGIFBRDADDR, ifr) < 0) ++ break; ++ storage[i].broadaddr = ifr->ifr_broadaddr; ++ } ++ else if (ifr->ifr_flags & IFF_POINTOPOINT) ++ { ++ ifr->ifr_addr = storage[i].addr; ++ if (__ioctl (fd, SIOCGIFDSTADDR, ifr) < 0) ++ break; ++ storage[i].broadaddr = ifr->ifr_dstaddr; ++ } ++ else ++ /* Just 'cause. */ ++ memset (&storage[i].broadaddr, 0, sizeof storage[i].broadaddr); ++ ++ storage[i].ia.ifa_data = NULL; /* Nothing here for now. */ ++ ++ ++i; ++ } ++ ++ ++j; ++ ifr = next_ifr; ++ } while (j < nifs); ++ if (j < nifs) /* Broke out early on error. */ ++ { ++ __close (fd); ++ free (storage); ++ __if_freereq (ifreqs, nifs); ++ return -1; ++ } ++ ++ if (i == 0) ++ *ifap = NULL; ++ else ++ { ++ storage[i - 1].ia.ifa_next = NULL; ++ *ifap = &storage[0].ia; ++ } ++ ++ __close (fd); ++ __if_freereq (ifreqs, nifs); ++ } ++ ++ return 0; ++} ++#ifndef getifaddrs ++libc_hidden_def (getifaddrs) ++#endif ++ ++void ++freeifaddrs (struct ifaddrs *ifa) ++{ ++ free (ifa); ++} ++libc_hidden_def (freeifaddrs) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ifreq.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ifreq.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ifreq.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ifreq.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,93 @@ ++/* Copyright (C) 1999, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++/* The FreeBSD ioctl SIOCGIFCONF returns the list if interfaces as a ++ concatenation of records of different size, each having at least ++ sizeof (struct ifreq) bytes. */ ++ ++ ++void ++__ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd) ++{ ++ int fd = sockfd; ++ struct ifconf ifc; ++ int rq_len; ++ int nifs; ++ char *ifstart; ++ char *ifend; ++ struct ifreq *ifr; ++ /* FreeBSD has many interfaces, many of them are usually down. */ ++# define RQ_IFS 16 ++ /* We have to assume all records are of limited size, so that we know ++ when we can stop enlarging the buffer. */ ++# define RQ_MAXSIZE 256 ++ ++ if (fd < 0) ++ fd = __opensock (); ++ if (fd < 0) ++ { ++ *num_ifs = 0; ++ *ifreqs = NULL; ++ return; ++ } ++ ++ ifc.ifc_buf = NULL; ++ rq_len = RQ_IFS * sizeof (struct ifreq) + RQ_MAXSIZE; ++ for (;;) ++ { ++ ifc.ifc_len = rq_len; ++ ifc.ifc_buf = realloc (ifc.ifc_buf, ifc.ifc_len); ++ if (ifc.ifc_buf == NULL || __ioctl (fd, SIOCGIFCONF, &ifc) < 0) ++ { ++ if (ifc.ifc_buf) ++ free (ifc.ifc_buf); ++ ++ if (fd != sockfd) ++ __close (fd); ++ *num_ifs = 0; ++ *ifreqs = NULL; ++ return; ++ } ++ if (ifc.ifc_len + RQ_MAXSIZE <= rq_len) ++ break; ++ rq_len *= 2; ++ } ++ ++ nifs = 0; ++ ifstart = (char *) ifc.ifc_buf; ++ ifend = ifstart + ifc.ifc_len; ++ for (ifr = (struct ifreq *) ifstart; ++ (char *) ifr < ifend; ++ ifr = __if_nextreq (ifr)) ++ nifs++; ++ ++ if (fd != sockfd) ++ __close (fd); ++ ++ *num_ifs = nifs; ++ *ifreqs = realloc (ifc.ifc_buf, ifc.ifc_len); ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/init-first.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/init-first.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/init-first.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/init-first.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,128 @@ ++/* Initialization code run first thing by the ELF startup code. Linux version. ++ Copyright (C) 1995-1999,2000,01,02,03,2004 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++/* The function is called from assembly stubs the compiler can't see. */ ++static void init (int, char **, char **) __attribute__ ((used)); ++ ++/* Set nonzero if we have to be prepared for more then one libc being ++ used in the process. Safe assumption if initializer never runs. */ ++int __libc_multiple_libcs attribute_hidden = 1; ++ ++/* Remember the command line argument and enviroment contents for ++ later calls of initializers for dynamic libraries. */ ++int __libc_argc attribute_hidden; ++char **__libc_argv attribute_hidden; ++ ++ ++static void ++init (int argc, char **argv, char **envp) ++{ ++#ifdef USE_NONOPTION_FLAGS ++ extern void __getopt_clean_environment (char **); ++#endif ++ ++ __libc_multiple_libcs = &_dl_starting_up && !_dl_starting_up; ++ ++ /* Make sure we don't initialize twice. */ ++ if (!__libc_multiple_libcs) ++ { ++ /* Set the FPU control word to the proper default value if the ++ kernel would use a different value. (In a static program we ++ don't have this information.) */ ++#if 0 ++ /* at least on kFreeBSD set it even if SHARED, ++ fixes "make check" failures like math/test-fpucw.out */ ++#ifdef SHARED ++ if (__fpu_control != GLRO(dl_fpu_control)) ++#endif ++#endif ++ __setfpucw (__fpu_control); ++ } ++ ++ /* Save the command-line arguments. */ ++ __libc_argc = argc; ++ __libc_argv = argv; ++ __environ = envp; ++ ++#ifndef SHARED ++ __libc_init_secure (); ++ ++ /* First the initialization which normally would be done by the ++ dynamic linker. */ ++ _dl_non_dynamic_init (); ++#endif ++ ++ __init_misc (argc, argv, envp); ++ ++#ifdef USE_NONOPTION_FLAGS ++ /* This is a hack to make the special getopt in GNU libc working. */ ++ __getopt_clean_environment (envp); ++#endif ++ ++#ifdef SHARED ++ __libc_global_ctors (); ++#endif ++} ++ ++#ifdef SHARED ++ ++strong_alias (init, _init); ++ ++extern void __libc_init_first (void); ++ ++void ++__libc_init_first (void) ++{ ++} ++ ++#else ++extern void __libc_init_first (int argc, char **argv, char **envp); ++ ++void ++__libc_init_first (int argc, char **argv, char **envp) ++{ ++ init (argc, argv, envp); ++} ++#endif ++ ++ ++/* This function is defined here so that if this file ever gets into ++ ld.so we will get a link error. Having this file silently included ++ in ld.so causes disaster, because the _init definition above will ++ cause ld.so to gain an init function, which is not a cool thing. */ ++ ++extern void _dl_start (void) __attribute__ ((noreturn)); ++ ++void ++_dl_start (void) ++{ ++ abort (); ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/kernel-features.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/kernel-features.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/kernel-features.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/kernel-features.h 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,43 @@ ++/* Set flags signalling availability of kernel features based on given ++ kernel version number. ++ Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef __KFREEBSD_KERNEL_VERSION ++/* We assume the worst; all kernels should be supported. */ ++# define __KFREEBSD_KERNEL_VERSION 0 ++#endif ++ ++/* We assume for __KFREEBSD_KERNEL_VERSION the same encoding used in ++ osreldate.h. I.e., the major, minor, and subminor are all ++ concatenated, with two digits for each. This means we can do ++ numeric comparisons. ++ ++ In the following we will define certain symbols depending on ++ whether the describes kernel feature is available in the kernel ++ version given by __KFREEBSD_KERNEL_VERSION. We are not always exactly ++ recording the correct versions in which the features were ++ introduced. If somebody cares these values can afterwards be ++ corrected. */ ++ ++/* No real-time signals in FreeBSD 5.x or 6.x. */ ++#define __ASSUME_REALTIME_SIGNALS 0 ++ ++/* Use signals #32, #33, #34 for internal linuxthreads communication */ ++#define PTHREAD_SIGBASE 32 ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/kernel-posix-cpu-timers.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/kernel-posix-cpu-timers.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/kernel-posix-cpu-timers.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/kernel-posix-cpu-timers.h 2006-10-19 23:20:31.000000000 +0200 +@@ -0,0 +1,5 @@ ++/* Parameters for the FreeBSD kernel ABI for CPU clocks. */ ++ ++#define CPUCLOCK_WHICH(clock) ((clock) & (clockid_t) CPUCLOCK_CLOCK_MASK) ++#define CPUCLOCK_CLOCK_MASK 7 ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ldsodefs.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ldsodefs.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ldsodefs.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ldsodefs.h 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,39 @@ ++/* Run-time dynamic linker data structures for loaded ELF shared objects. ++ Copyright (C) 2001, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _LDSODEFS_H ++ ++/* Get the real definitions. */ ++#include_next ++ ++/* Now define our stuff. */ ++ ++/* FreeBSD puts some extra information into an auxiliary vector when it ++ execs ELF executables. Note that it uses AT_* values of 10 and 11 ++ to denote something different than AT_NOTELF and AT_UID, but this is ++ not a problem since elf/dl-support.c ignores these AT_* values. */ ++#define HAVE_AUX_VECTOR ++ ++/* Used by static binaries to check the auxiliary vector. */ ++extern void _dl_aux_init (ElfW(auxv_t) *av) internal_function; ++ ++/* Initialization which is normally done by the dynamic linker. */ ++extern void _dl_non_dynamic_init (void) internal_function; ++ ++#endif /* ldsodefs.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/Implies ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/Implies +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/Implies 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/Implies 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1 @@ ++pthread +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/Makefile ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/Makefile +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/Makefile 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,3 @@ ++ifeq ($(subdir),linuxthreads) ++sysdep_routines += register-atfork unregister-atfork ++endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/Versions ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/Versions +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/Versions 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/Versions 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,5 @@ ++libc { ++ GLIBC_2.3.2 { ++ __register_atfork; ++ } ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/allocrtsig.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/allocrtsig.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/allocrtsig.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/allocrtsig.c 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,4 @@ ++#include ++strong_alias (__libc_current_sigrtmin, __libc_current_sigrtmin_private); ++strong_alias (__libc_current_sigrtmax, __libc_current_sigrtmax_private); ++strong_alias (__libc_allocate_rtsig, __libc_allocate_rtsig_private); +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/local_lim.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/local_lim.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/local_lim.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/local_lim.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,48 @@ ++/* Minimum guaranteed maximum values for system limits. FreeBSD version. ++ Copyright (C) 1993-1998, 2000, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++/* The number of data keys per process. */ ++#define _POSIX_THREAD_KEYS_MAX 128 ++/* This is the value this implementation supports. */ ++#define PTHREAD_KEYS_MAX 1024 ++ ++/* Controlling the iterations of destructors for thread-specific data. */ ++#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 ++/* Number of iterations this implementation does. */ ++#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS ++ ++/* The number of threads per process. */ ++#define _POSIX_THREAD_THREADS_MAX 64 ++/* This is the value this implementation supports. */ ++#define PTHREAD_THREADS_MAX 1024 ++ ++/* Maximum amount by which a process can descrease its asynchronous I/O ++ priority level. */ ++#define AIO_PRIO_DELTA_MAX 20 ++ ++/* Minimum size for a thread. We are free to choose a reasonable value. */ ++#define PTHREAD_STACK_MIN 16384 ++ ++/* Maximum number of POSIX timers available. */ ++#define TIMER_MAX 256 ++ ++/* Maximum number of timer expiration overruns. */ ++#define DELAYTIMER_MAX 2147483647 +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/posix_opt.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/posix_opt.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/posix_opt.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/posix_opt.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,190 @@ ++/* Define POSIX options for FreeBSD. ++ Copyright (C) 1996-1997, 1999, 2000, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* ++ * Never include this file directly; use instead. ++ */ ++ ++#ifndef _BITS_POSIX_OPT_H ++#define _BITS_POSIX_OPT_H 1 ++ ++/* Job control is supported. */ ++#define _POSIX_JOB_CONTROL 1 ++ ++/* Processes have a saved set-user-ID and a saved set-group-ID. */ ++#define _POSIX_SAVED_IDS 1 ++ ++/* Priority scheduling is supported. */ ++#define _POSIX_PRIORITY_SCHEDULING 200112L ++ ++/* Synchronizing file data is supported. */ ++#define _POSIX_SYNCHRONIZED_IO 200112L ++ ++/* The fsync function is present. */ ++#define _POSIX_FSYNC 200112L ++ ++/* Mapping of files to memory is supported. */ ++#define _POSIX_MAPPED_FILES 200112L ++ ++/* Locking of all memory is supported. */ ++#define _POSIX_MEMLOCK 200112L ++ ++/* Locking of ranges of memory is supported. */ ++#define _POSIX_MEMLOCK_RANGE 200112L ++ ++/* Setting of memory protections is supported. */ ++#define _POSIX_MEMORY_PROTECTION 200112L ++ ++/* Only root can change owner of file. */ ++#define _POSIX_CHOWN_RESTRICTED 1 ++ ++/* `c_cc' member of 'struct termios' structure can be disabled by ++ using the value _POSIX_VDISABLE. */ ++#define _POSIX_VDISABLE ((unsigned char)'\377') ++ ++/* Filenames are not silently truncated. */ ++#define _POSIX_NO_TRUNC 1 ++/* X/Open realtime support is only partially available. */ ++#define _XOPEN_REALTIME -1 ++ ++/* X/Open realtime thread support is only partially available. */ ++#define _XOPEN_REALTIME_THREADS -1 ++ ++/* Implementation supports `poll' function. */ ++#define _POSIX_POLL 1 ++ ++/* Implementation supports `select' and `pselect' functions. */ ++#define _POSIX_SELECT 1 ++ ++/* XPG4.2 shared memory is supported. */ ++#define _XOPEN_SHM 1 ++ ++/* Tell we have POSIX threads. */ ++#define _POSIX_THREADS 200112L ++ ++/* We have the reentrant functions described in POSIX. */ ++#define _POSIX_REENTRANT_FUNCTIONS 1 ++#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L ++ ++/* We provide priority scheduling for threads. */ ++#define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L ++ ++/* We support user-defined stack sizes. */ ++#define _POSIX_THREAD_ATTR_STACKSIZE 200112L ++ ++/* We support user-defined stacks. */ ++#define _POSIX_THREAD_ATTR_STACKADDR 200112L ++ ++/* We support POSIX.1b semaphores, but only the non-shared form for now. */ ++#define _POSIX_SEMAPHORES 200112L ++ ++/* Real-time signals are not available. */ ++#define _POSIX_REALTIME_SIGNALS -1 ++ ++/* We support asynchronous I/O. */ ++#define _POSIX_ASYNCHRONOUS_IO 200112L ++#define _POSIX_ASYNC_IO 1 ++/* Alternative name for Unix98. */ ++#define _LFS_ASYNCHRONOUS_IO 1 ++/* Support for prioritization is not available. */ ++#define _POSIX_PRIORITIZED_IO -1 ++ ++/* The LFS support in asynchronous I/O is also available. */ ++#define _LFS64_ASYNCHRONOUS_IO 1 ++ ++/* The rest of the LFS is also available. */ ++#define _LFS_LARGEFILE 1 ++#define _LFS64_LARGEFILE 1 ++#define _LFS64_STDIO 1 ++ ++/* POSIX shared memory objects are implemented. */ ++#define _POSIX_SHARED_MEMORY_OBJECTS 200112L ++ ++/* CPU-time clocks somewhere supported. */ ++#define _POSIX_CPUTIME 0 ++ ++/* We support somewhere the clock also in threads. */ ++#define _POSIX_THREAD_CPUTIME 0 ++ ++/* GNU libc provides regular expression handling. */ ++#define _POSIX_REGEXP 1 ++ ++/* Reader/Writer locks are available. */ ++#define _POSIX_READER_WRITER_LOCKS 200112L ++ ++/* We have a POSIX shell. */ ++#define _POSIX_SHELL 1 ++ ++/* We support the Timeouts option. */ ++#define _POSIX_TIMEOUTS 200112L ++ ++/* We support spinlocks. */ ++#define _POSIX_SPIN_LOCKS 200112L ++ ++/* The `spawn' function family is supported. */ ++#define _POSIX_SPAWN 200112L ++ ++/* We have POSIX timers. */ ++#define _POSIX_TIMERS 200112L ++ ++/* The barrier functions are available. */ ++#define _POSIX_BARRIERS 200112L ++ ++/* POSIX message queues are not available. */ ++#define _POSIX_MESSAGE_PASSING -1 ++ ++/* Thread process-shared synchronization is not supported. */ ++#define _POSIX_THREAD_PROCESS_SHARED -1 ++ ++/* The monotonic clock is available. */ ++#define _POSIX_MONOTONIC_CLOCK 200112L ++ ++/* The clock selection interfaces are not available. */ ++#define _POSIX_CLOCK_SELECTION -1 ++ ++/* Advisory information interfaces are not available. */ ++#define _POSIX_ADVISORY_INFO -1 ++ ++/* IPv6 support is available. */ ++#define _POSIX_IPV6 200112L ++ ++/* Raw socket support is available. */ ++#define _POSIX_RAW_SOCKETS 200112L ++ ++/* We have at least one terminal. */ ++#define _POSIX2_CHAR_TERM 200112L ++ ++/* Neither process nor thread sporadic server interfaces is available. */ ++#define _POSIX_SPORADIC_SERVER -1 ++#define _POSIX_THREAD_SPORADIC_SERVER -1 ++ ++/* trace.h is not available. */ ++#define _POSIX_TRACE -1 ++#define _POSIX_TRACE_EVENT_FILTER -1 ++#define _POSIX_TRACE_INHERIT -1 ++#define _POSIX_TRACE_LOG -1 ++ ++/* Typed memory objects are not available. */ ++#define _POSIX_TYPED_MEMORY_OBJECTS -1 ++ ++/* No support for priority inheritance or protection. */ ++#define _POSIX_THREAD_PRIO_INHERIT -1 ++#define _POSIX_THREAD_PRIO_PROTECT -1 ++ ++#endif /* bits/posix_opt.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/sigthread.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/sigthread.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/sigthread.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/sigthread.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,38 @@ ++/* Signal handling function for threaded programs. ++ Copyright (C) 1998, 1999, 2000, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _BITS_SIGTHREAD_H ++#define _BITS_SIGTHREAD_H 1 ++ ++#if !defined _SIGNAL_H && !defined _PTHREAD_H ++# error "Never include this file directly. Use instead" ++#endif ++ ++/* Functions for handling signals. */ ++ ++/* Modify the signal mask for the calling thread. The arguments have ++ the same meaning as for sigprocmask(2). */ ++extern int pthread_sigmask (int __how, ++ __const __sigset_t *__restrict __newmask, ++ __sigset_t *__restrict __oldmask) __THROW; ++ ++/* Send signal SIGNO to the given thread. */ ++extern int pthread_kill (pthread_t __threadid, int __signo) __THROW; ++ ++#endif /* bits/sigthread.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/typesizes.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/typesizes.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/typesizes.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/bits/typesizes.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,66 @@ ++/* bits/typesizes.h -- underlying types for *_t. kFreeBSD version. ++ Copyright (C) 2002, 2003 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _BITS_TYPES_H ++# error "Never include directly; use instead." ++#endif ++ ++#ifndef _BITS_TYPESIZES_H ++#define _BITS_TYPESIZES_H 1 ++ ++/* See for the meaning of these macros. This file exists so ++ that need not vary across different GNU platforms. */ ++ ++#define __DEV_T_TYPE __U32_TYPE ++#define __UID_T_TYPE __U32_TYPE ++#define __GID_T_TYPE __U32_TYPE ++#define __INO_T_TYPE __U32_TYPE ++#define __INO64_T_TYPE __UQUAD_TYPE ++#define __MODE_T_TYPE __U16_TYPE ++#define __NLINK_T_TYPE __U16_TYPE ++#define __OFF_T_TYPE __SQUAD_TYPE ++#define __OFF64_T_TYPE __SQUAD_TYPE ++#define __PID_T_TYPE __S32_TYPE ++#define __RLIM_T_TYPE __SQUAD_TYPE ++#define __RLIM64_T_TYPE __SQUAD_TYPE ++#define __BLKCNT_T_TYPE __SQUAD_TYPE ++#define __BLKCNT64_T_TYPE __SQUAD_TYPE ++#define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE ++#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE ++#define __FSFILCNT_T_TYPE __ULONGWORD_TYPE ++#define __FSFILCNT64_T_TYPE __UQUAD_TYPE ++#define __ID_T_TYPE __U32_TYPE ++#define __CLOCK_T_TYPE __S32_TYPE ++#define __TIME_T_TYPE __SLONGWORD_TYPE ++#define __USECONDS_T_TYPE __U32_TYPE ++#define __SUSECONDS_T_TYPE __SLONGWORD_TYPE ++#define __DADDR_T_TYPE __S32_TYPE ++#define __SWBLK_T_TYPE __S32_TYPE ++#define __KEY_T_TYPE __SLONGWORD_TYPE ++#define __CLOCKID_T_TYPE __S32_TYPE ++#define __TIMER_T_TYPE __S32_TYPE ++#define __BLKSIZE_T_TYPE __U32_TYPE ++#define __FSID_T_TYPE struct { int __val[2]; } ++#define __SSIZE_T_TYPE __SWORD_TYPE ++ ++/* Number of descriptors that can fit in an `fd_set'. */ ++#define __FD_SETSIZE 1024 ++ ++ ++#endif /* bits/typesizes.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/execve.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/execve.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/execve.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/execve.c 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,2 @@ ++#include ++libc_hidden_proto (__syscall_execve ) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/fatal-prepare.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/fatal-prepare.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/fatal-prepare.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/fatal-prepare.h 2007-05-26 13:10:00.000000000 +0200 +@@ -0,0 +1,39 @@ ++/* Copyright (C) 2003, 2007 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++/* We have to completely disable cancellation. assert() must not be a ++ cancellation point but the implementation uses write() etc. */ ++#ifdef SHARED ++# include ++# define FATAL_PREPARE \ ++ { \ ++ int (*fp) (int, int *); \ ++ fp = __libc_pthread_functions.ptr_pthread_setcancelstate; \ ++ if (fp != NULL) \ ++ fp (PTHREAD_CANCEL_DISABLE, NULL); \ ++ } ++#else ++# pragma weak pthread_setcancelstate ++# define FATAL_PREPARE \ ++ { \ ++ if (pthread_setcancelstate != NULL) \ ++ pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, NULL); \ ++ } ++#endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/fork.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/fork.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/fork.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/fork.c 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/fork.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/fork.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/fork.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/fork.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/jmp-unwind.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/jmp-unwind.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/jmp-unwind.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/jmp-unwind.c 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/lowlevellock.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/lowlevellock.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/lowlevellock.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/lowlevellock.h 2007-08-07 11:25:14.000000000 +0200 +@@ -0,0 +1,47 @@ ++/* Copyright (C) 2007 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _LOWLEVELLOCK_H ++#define _LOWLEVELLOCK_H 1 ++ ++#include ++ ++typedef union ++{ ++ volatile void * uv; /* in fact struct umtx from */ ++ volatile int iv; ++ volatile long lv; ++ ++} __rtld_mrlock_t; ++ ++#define UMTX_OP_WAIT 2 /* */ ++#define UMTX_OP_WAKE 3 /* */ ++ ++extern int __syscall__umtx_op(void *, int, long, void*, void*); ++ ++static inline void lll_futex_wake(long *umtx, unsigned int nr_wakeup) ++{ ++ __syscall__umtx_op(umtx, UMTX_OP_WAKE, nr_wakeup, NULL, NULL); ++} ++ ++static inline void lll_futex_wait(long *umtx, unsigned int old_val) ++{ ++ __syscall__umtx_op(umtx, UMTX_OP_WAIT, old_val, NULL, NULL); ++} ++ ++#endif /* lowlevellock.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/pt-sigsuspend.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/pt-sigsuspend.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/pt-sigsuspend.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/pt-sigsuspend.S 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,29 @@ ++/* Internal sigsuspend system call for LinuxThreads. FreeBSD version. ++ Copyright (C) 2003 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++ ++#include ++ ++PSEUDO_NOERRNO(__pthread_sigsuspend, sigsuspend, 1) ++ ret_NOERRNO ++PSEUDO_END_NOERRNO(__pthread_sigsuspend) ++ ++PSEUDO(__syscall_sigsuspend, sigsuspend, 1) ++ ret ++PSEUDO_END(__syscall_sigsuspend) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/raise.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/raise.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/raise.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/raise.c 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/register-atfork.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/register-atfork.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/register-atfork.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/register-atfork.c 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/smp.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/smp.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/smp.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/smp.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,36 @@ ++/* Determine whether the host has multiple processors. FreeBSD version. ++ Copyright (C) 1996, 2002 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++ ++/* Test whether the machine has more than one processor. */ ++static inline int ++is_smp_system (void) ++{ ++ /* Fetch sysctl value of "hw.ncpu". */ ++ int request[] = { CTL_HW, HW_NCPU }; ++ int result; ++ size_t result_len = sizeof (result); ++ ++ if (__sysctl (request, 2, &result, &result_len, NULL, 0) < 0) ++ /* Dummy result. */ ++ return 0; ++ ++ return (result > 1); ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/unregister-atfork.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/unregister-atfork.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/unregister-atfork.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/linuxthreads/unregister-atfork.c 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/llseek.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/llseek.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/llseek.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/llseek.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,6 @@ ++/* We don't need a definition since the lseek64 function is what we need. */ ++/* llseek doesn't have a prototype. Since the second parameter is a ++ 64bit type, this results in wrong behaviour if no prototype is ++ provided. */ ++link_warning (llseek, "\ ++the `llseek' function may be dangerous; use `lseek64' instead.") +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/lseek.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/lseek.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/lseek.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/lseek.c 2007-11-21 16:53:13.000000000 +0100 +@@ -0,0 +1,86 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++/* The real system call has a word of padding before the 64-bit off_t ++ argument. */ ++extern __off_t __syscall_freebsd6_lseek (int __fd, int __unused1, __off_t __offset, ++ int __whence) __THROW; ++libc_hidden_proto (__syscall_freebsd6_lseek) ++ ++__off_t ++__libc_lseek (int fd, __off_t offset, int whence) ++{ ++#if 0 /* If the kernel would work right... */ ++ /* We pass 3 arguments in 5 words. */ ++ return INLINE_SYSCALL (freebsd6_lseek, 3, fd, 0, offset, whence); ++#else ++ /* According to POSIX:2001, if the resulting file offset would become ++ negative, this function has to return an EINVAL error and leave the ++ file offset unchanged. But the FreeBSD 4.0 kernel doesn't do this, ++ so we emulate it. */ ++ if (offset >= 0) ++ /* No risk that the file offset could become negative. */ ++ return INLINE_SYSCALL (freebsd6_lseek, 3, fd, 0, offset, whence); ++ else ++ { ++ /* Test whether the file offset becomes negative. */ ++ __off_t old_position; ++ __off_t new_position; ++ int saved_errno; ++ ++ saved_errno = errno; ++ old_position = INLINE_SYSCALL (freebsd6_lseek, 3, fd, 0, 0, SEEK_CUR); ++ errno = 0; ++ new_position = INLINE_SYSCALL (freebsd6_lseek, 3, fd, 0, offset, whence); ++ if (new_position < 0) ++ { ++ if (errno == 0) ++ { ++ /* The file offset became negative, and the kernel didn't ++ notice it. */ ++ if (old_position >= 0) ++ INLINE_SYSCALL (freebsd6_lseek, 3, fd, 0, old_position, SEEK_SET); ++ new_position = -1; ++ errno = EINVAL; ++ } ++ } ++ else ++ errno = saved_errno; ++ return new_position; ++ } ++#endif ++} ++ ++weak_alias (__libc_lseek, __lseek) ++libc_hidden_def (__lseek) ++weak_alias (__libc_lseek, lseek) ++ ++/* 'lseek64' is the same as 'lseek', because __off64_t == __off_t. */ ++strong_alias (__libc_lseek, __libc_lseek64) ++weak_alias (__libc_lseek64, __lseek64) ++weak_alias (__lseek64, lseek64) ++ ++/* 'llseek' is the same as 'lseek', because __off64_t == __off_t. */ ++strong_alias (__libc_lseek, __llseek) ++weak_alias (__llseek, llseek) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/lseek64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/lseek64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/lseek64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/lseek64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1 @@ ++/* 'lseek64' is the same as 'lseek', because __off64_t == __off_t. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/lxstat.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/lxstat.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/lxstat.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/lxstat.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,49 @@ ++/* lxstat using FreeBSD lstat, nlstat system calls. ++ Copyright (C) 1991,1995-1997,2000,2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++#include "stat16conv.c" ++ ++int ++__lxstat (int vers, const char *file, struct stat *buf) ++{ ++ if (__builtin_expect (vers == _STAT_VER, 1)) ++ { ++ struct stat16 buf16; ++ int result = __syscall_lstat (CHECK_STRING (file), __ptrvalue (&buf16)); ++ if (result == 0) ++ stat16_to_stat (&buf16, buf); ++ return result; ++ } ++ else if (__builtin_expect (vers == _STAT_VER_stat, 1)) ++ return __syscall_lstat (CHECK_STRING (file), ++ CHECK_1 ((struct stat16 *) buf)); ++ else ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++} ++hidden_def (__lxstat) ++ ++weak_alias (__lxstat, _lxstat) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/lxstat64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/lxstat64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/lxstat64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/lxstat64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,44 @@ ++/* lxstat using FreeBSD lstat, nlstat system calls. ++ Copyright (C) 1991,1995-1997,2000,2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++#include "stat16conv.c" ++ ++int ++__lxstat64 (int vers, const char *file, struct stat64 *buf) ++{ ++ if (__builtin_expect (vers == _STAT_VER, 1)) ++ { ++ struct stat16 buf16; ++ int result = __syscall_lstat (CHECK_STRING (file), __ptrvalue (&buf16)); ++ if (result == 0) ++ stat16_to_stat64 (&buf16, buf); ++ return result; ++ } ++ else ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++} ++hidden_def (__lxstat64) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/mmap.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/mmap.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/mmap.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/mmap.c 2007-11-21 16:53:13.000000000 +0100 +@@ -0,0 +1,84 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* The real system call has a word of padding before the 64-bit off_t ++ argument. */ ++extern void *__syscall_freebsd6_mmap (void *__addr, size_t __len, int __prot, ++ int __flags, int __fd, int __unused1, ++ __off_t __offset) __THROW; ++libc_hidden_proto (__syscall_freebsd6_mmap) ++ ++extern ssize_t __syscall_freebsd6_pread (int __fd, void *__buf, size_t __nbytes, ++ int __unused1, __off_t __offset) __THROW; ++ ++libc_hidden_proto (__syscall_freebsd6_pread) ++void * ++__mmap (void *addr, size_t len, int prot, int flags, int fd, __off_t offset) ++{ ++ void *result; ++ ++ /* Validity checks not done by the kernel. */ ++ if ((flags & MAP_FIXED) || (offset != 0)) ++ { ++ int pagesize = __getpagesize (); ++ ++ if (((flags & MAP_FIXED) ++ && (__builtin_expect (pagesize & (pagesize - 1), 0) ++ ? (unsigned long) addr % pagesize ++ : (unsigned long) addr & (pagesize - 1))) ++ || (__builtin_expect (pagesize & (pagesize - 1), 0) ++ ? offset % pagesize ++ : offset & (pagesize - 1))) ++ { ++ __set_errno (EINVAL); ++ return (void *) (-1); ++ } ++ } ++ ++ /* We pass 7 arguments in 8 words. */ ++ /* for ANON mapping we must pass -1 in place of fd */ ++ if (flags & MAP_ANON) ++ return INLINE_SYSCALL (freebsd6_mmap, 7, addr, len, prot, flags, -1, 0, offset); ++ result = INLINE_SYSCALL (freebsd6_mmap, 7, addr, len, prot, flags, fd, 0, offset); ++ ++ if (result != (void *) (-1) && fd >= 0 && len > 0) ++ { ++ /* Force an update of the atime. POSIX:2001 mandates that this happens ++ at some time between the mmap() call and the first page-in. Since ++ the FreeBSD 4.0 kernel doesn't update the atime upon a page-in, we ++ do it here. */ ++ char dummy; ++ ++ INLINE_SYSCALL (freebsd6_pread, 5, fd, &dummy, 1, 0, offset); ++ } ++ ++ return result; ++} ++ ++weak_alias (__mmap, mmap) ++ ++/* 'mmap64' is the same as 'mmap', because __off64_t == __off_t. */ ++strong_alias (__mmap, __mmap64) ++weak_alias (__mmap64, mmap64) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/mmap64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/mmap64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/mmap64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/mmap64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1 @@ ++/* 'mmap64' is the same as 'mmap', because __off64_t == __off_t. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/munmap.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/munmap.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/munmap.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/munmap.c 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,41 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++extern int __syscall_munmap (void *__addr, size_t __len) __THROW; ++libc_hidden_proto (__syscall_munmap) ++ ++int ++__munmap (void *addr, size_t len) ++{ ++ int pagesize = __getpagesize (); ++ if ((unsigned long) addr & (pagesize - 1)) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ return INLINE_SYSCALL (munmap, 2, addr, len); ++} ++ ++weak_alias (__munmap, munmap) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/net/ethernet.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/net/ethernet.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/net/ethernet.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/net/ethernet.h 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,76 @@ ++/* Copyright (C) 1997, 1999, 2001, 2006 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* Based on the FreeBSD version of this file. Curiously, that file ++ lacks a copyright in the header. */ ++ ++#ifndef __NET_ETHERNET_H ++#define __NET_ETHERNET_H 1 ++ ++#include ++#include ++#include /* IEEE 802.3 Ethernet constants */ ++ ++__BEGIN_DECLS ++ ++/* This is a name for the 48 bit ethernet address available on many ++ systems. */ ++struct ether_addr ++{ ++ u_int8_t ether_addr_octet[ETH_ALEN]; ++} __attribute__ ((__packed__)); ++ ++/* 10Mb/s ethernet header */ ++struct ether_header ++{ ++ u_int8_t ether_dhost[ETH_ALEN]; /* destination eth addr */ ++ u_int8_t ether_shost[ETH_ALEN]; /* source ether addr */ ++ u_int16_t ether_type; /* packet type ID field */ ++} __attribute__ ((__packed__)); ++ ++/* Ethernet protocol ID's */ ++#define ETHERTYPE_PUP 0x0200 /* Xerox PUP */ ++#define ETHERTYPE_IP 0x0800 /* IP */ ++#define ETHERTYPE_ARP 0x0806 /* Address resolution */ ++#define ETHERTYPE_REVARP 0x8035 /* Reverse ARP */ ++ ++#define ETHER_ADDR_LEN ETH_ALEN /* size of ethernet addr */ ++#define ETHER_TYPE_LEN 2 /* bytes in type field */ ++#define ETHER_CRC_LEN 4 /* bytes in CRC field */ ++#define ETHER_HDR_LEN ETH_HLEN /* total octets in header */ ++#define ETHER_MIN_LEN (ETH_ZLEN + ETHER_CRC_LEN) /* min packet length */ ++#define ETHER_MAX_LEN (ETH_FRAME_LEN + ETHER_CRC_LEN) /* max packet length */ ++ ++/* make sure ethenet length is valid */ ++#define ETHER_IS_VALID_LEN(foo) \ ++ ((foo) >= ETHER_MIN_LEN && (foo) <= ETHER_MAX_LEN) ++ ++/* ++ * The ETHERTYPE_NTRAILER packet types starting at ETHERTYPE_TRAIL have ++ * (type-ETHERTYPE_TRAIL)*512 bytes of data followed ++ * by an ETHER type (as given above) and then the (variable-length) header. ++ */ ++#define ETHERTYPE_TRAIL 0x1000 /* Trailer packet */ ++#define ETHERTYPE_NTRAILER 16 ++ ++#define ETHERMTU ETH_DATA_LEN ++#define ETHERMIN (ETHER_MIN_LEN - ETHER_HDR_LEN - ETHER_CRC_LEN) ++ ++__END_DECLS ++ ++#endif /* net/ethernet.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/net/if.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/net/if.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/net/if.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/net/if.h 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,328 @@ ++/* ++ * Copyright (c) 1982, 1986, 1989, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)if.h 8.1 (Berkeley) 6/10/93 ++ * $FreeBSD: src/sys/net/if.h,v 1.88.2.2 2004/09/13 05:11:40 brooks Exp $ ++ */ ++ ++#ifndef _NET_IF_H_ ++#define _NET_IF_H_ ++ ++#include ++ ++#include ++ ++#include ++#include ++ ++struct ifnet; ++ ++/* ++ * Length of interface external name, including terminating '\0'. ++ * Note: this is the same size as a generic device's external name. ++ */ ++#define IF_NAMESIZE 16 ++#define IFNAMSIZ IF_NAMESIZE ++#define IF_MAXUNIT 0x7fff /* historical value */ ++ ++/* ++ * Structure used to query names of interface cloners. ++ */ ++ ++struct if_clonereq { ++ int ifcr_total; /* total cloners (out) */ ++ int ifcr_count; /* room for this many in user buffer */ ++ char *ifcr_buffer; /* buffer for cloner names */ ++}; ++ ++/* ++ * Structure describing information about an interface ++ * which may be of interest to management entities. ++ */ ++struct if_data { ++ /* generic interface information */ ++ unsigned char ifi_type; /* ethernet, tokenring, etc */ ++ unsigned char ifi_physical; /* e.g., AUI, Thinnet, 10base-T, etc */ ++ unsigned char ifi_addrlen; /* media address length */ ++ unsigned char ifi_hdrlen; /* media header length */ ++ unsigned char ifi_link_state; /* current link state */ ++ unsigned char ifi_recvquota; /* polling quota for receive intrs */ ++ unsigned char ifi_xmitquota; /* polling quota for xmit intrs */ ++ unsigned char ifi_datalen; /* length of this data struct */ ++ unsigned long ifi_mtu; /* maximum transmission unit */ ++ unsigned long ifi_metric; /* routing metric (external only) */ ++ unsigned long ifi_baudrate; /* linespeed */ ++ /* volatile statistics */ ++ unsigned long ifi_ipackets; /* packets received on interface */ ++ unsigned long ifi_ierrors; /* input errors on interface */ ++ unsigned long ifi_opackets; /* packets sent on interface */ ++ unsigned long ifi_oerrors; /* output errors on interface */ ++ unsigned long ifi_collisions; /* collisions on csma interfaces */ ++ unsigned long ifi_ibytes; /* total number of octets received */ ++ unsigned long ifi_obytes; /* total number of octets sent */ ++ unsigned long ifi_imcasts; /* packets received via multicast */ ++ unsigned long ifi_omcasts; /* packets sent via multicast */ ++ unsigned long ifi_iqdrops; /* dropped on input, this interface */ ++ unsigned long ifi_noproto; /* destined for unsupported protocol */ ++ unsigned long ifi_hwassist; /* HW offload capabilities */ ++ time_t ifi_epoch; /* time of attach or stat reset */ ++#ifdef __alpha__ ++ u_int ifi_timepad; /* time_t is int, not long on alpha */ ++#endif ++ struct timeval ifi_lastchange; /* time of last administrative change */ ++}; ++ ++#define IFF_UP 0x1 /* interface is up */ ++#define IFF_BROADCAST 0x2 /* broadcast address valid */ ++#define IFF_DEBUG 0x4 /* turn on debugging */ ++#define IFF_LOOPBACK 0x8 /* is a loopback net */ ++#define IFF_POINTOPOINT 0x10 /* interface is point-to-point link */ ++#define IFF_SMART 0x20 /* interface manages own routes */ ++#define IFF_RUNNING 0x40 /* resources allocated */ ++#define IFF_NOARP 0x80 /* no address resolution protocol */ ++#define IFF_PROMISC 0x100 /* receive all packets */ ++#define IFF_ALLMULTI 0x200 /* receive all multicast packets */ ++#define IFF_OACTIVE 0x400 /* transmission in progress */ ++#define IFF_SIMPLEX 0x800 /* can't hear own transmissions */ ++#define IFF_LINK0 0x1000 /* per link layer defined bit */ ++#define IFF_LINK1 0x2000 /* per link layer defined bit */ ++#define IFF_LINK2 0x4000 /* per link layer defined bit */ ++#define IFF_ALTPHYS IFF_LINK2 /* use alternate physical connection */ ++#define IFF_MULTICAST 0x8000 /* supports multicast */ ++#define IFF_POLLING 0x10000 /* Interface is in polling mode. */ ++#define IFF_PPROMISC 0x20000 /* user-requested promisc mode */ ++#define IFF_MONITOR 0x40000 /* user-requested monitor mode */ ++#define IFF_STATICARP 0x80000 /* static ARP */ ++#define IFF_NEEDSGIANT 0x100000 /* hold Giant over if_start calls */ ++ ++/* flags set internally only: */ ++#define IFF_CANTCHANGE \ ++ (IFF_BROADCAST|IFF_POINTOPOINT|IFF_RUNNING|IFF_OACTIVE|\ ++ IFF_SIMPLEX|IFF_MULTICAST|IFF_ALLMULTI|IFF_SMART|IFF_PROMISC|\ ++ IFF_POLLING) ++ ++/* ++ * Values for if_link_state. ++ */ ++#define LINK_STATE_UNKNOWN 0 /* link invalid/unknown */ ++#define LINK_STATE_DOWN 1 /* link is down */ ++#define LINK_STATE_UP 2 /* link is up */ ++ ++/* ++ * Some convenience macros used for setting ifi_baudrate. ++ * XXX 1000 vs. 1024? --thorpej@netbsd.org ++ */ ++#define IF_Kbps(x) ((x) * 1000) /* kilobits/sec. */ ++#define IF_Mbps(x) (IF_Kbps((x) * 1000)) /* megabits/sec. */ ++#define IF_Gbps(x) (IF_Mbps((x) * 1000)) /* gigabits/sec. */ ++ ++/* Capabilities that interfaces can advertise. */ ++#define IFCAP_RXCSUM 0x0001 /* can offload checksum on RX */ ++#define IFCAP_TXCSUM 0x0002 /* can offload checksum on TX */ ++#define IFCAP_NETCONS 0x0004 /* can be a network console */ ++#define IFCAP_VLAN_MTU 0x0008 /* VLAN-compatible MTU */ ++#define IFCAP_VLAN_HWTAGGING 0x0010 /* hardware VLAN tag support */ ++#define IFCAP_JUMBO_MTU 0x0020 /* 9000 byte MTU supported */ ++#define IFCAP_POLLING 0x0040 /* driver supports polling */ ++ ++#define IFCAP_HWCSUM (IFCAP_RXCSUM | IFCAP_TXCSUM) ++ ++#define IFQ_MAXLEN 50 ++#define IFNET_SLOWHZ 1 /* granularity is 1 second */ ++ ++/* ++ * Message format for use in obtaining information about interfaces ++ * from getkerninfo and the routing socket ++ */ ++struct if_msghdr { ++ unsigned short ifm_msglen; /* to skip over non-understood messages */ ++ unsigned char ifm_version; /* future binary compatibility */ ++ unsigned char ifm_type; /* message type */ ++ int ifm_addrs; /* like rtm_addrs */ ++ int ifm_flags; /* value of if_flags */ ++ unsigned short ifm_index; /* index for associated ifp */ ++ struct if_data ifm_data;/* statistics and other data about if */ ++}; ++ ++/* ++ * Message format for use in obtaining information about interface addresses ++ * from getkerninfo and the routing socket ++ */ ++struct ifa_msghdr { ++ unsigned short ifam_msglen; /* to skip over non-understood messages */ ++ unsigned char ifam_version; /* future binary compatibility */ ++ unsigned char ifam_type; /* message type */ ++ int ifam_addrs; /* like rtm_addrs */ ++ int ifam_flags; /* value of ifa_flags */ ++ unsigned short ifam_index; /* index for associated ifp */ ++ int ifam_metric; /* value of ifa_metric */ ++}; ++ ++/* ++ * Message format for use in obtaining information about multicast addresses ++ * from the routing socket ++ */ ++struct ifma_msghdr { ++ unsigned short ifmam_msglen; /* to skip over non-understood messages */ ++ unsigned char ifmam_version; /* future binary compatibility */ ++ unsigned char ifmam_type; /* message type */ ++ int ifmam_addrs; /* like rtm_addrs */ ++ int ifmam_flags; /* value of ifa_flags */ ++ unsigned short ifmam_index; /* index for associated ifp */ ++}; ++ ++/* ++ * Message format announcing the arrival or departure of a network interface. ++ */ ++struct if_announcemsghdr { ++ unsigned short ifan_msglen; /* to skip over non-understood messages */ ++ unsigned char ifan_version; /* future binary compatibility */ ++ unsigned char ifan_type; /* message type */ ++ unsigned short ifan_index; /* index for associated ifp */ ++ char ifan_name[IFNAMSIZ]; /* if name, e.g. "en0" */ ++ unsigned short ifan_what; /* what type of announcement */ ++}; ++ ++#define IFAN_ARRIVAL 0 /* interface arrival */ ++#define IFAN_DEPARTURE 1 /* interface departure */ ++ ++/* ++ * Interface request structure used for socket ++ * ioctl's. All interface ioctl's must have parameter ++ * definitions which begin with ifr_name. The ++ * remainder may be interface specific. ++ */ ++struct ifreq { ++ char ifr_name[IFNAMSIZ]; /* if name, e.g. "en0" */ ++ union { ++ struct sockaddr ifru_addr; ++ struct sockaddr ifru_dstaddr; ++ struct sockaddr ifru_broadaddr; ++ struct sockaddr ifru_netmask; ++ short ifru_flags[2]; ++ short ifru_index; ++ int ifru_metric; ++ int ifru_mtu; ++ int ifru_phys; ++ int ifru_media; ++ char *ifru_data; ++ int ifru_cap[2]; ++ } ifr_ifru; ++#define ifr_addr ifr_ifru.ifru_addr /* address */ ++#define ifr_dstaddr ifr_ifru.ifru_dstaddr /* other end of p-to-p link */ ++#define ifr_broadaddr ifr_ifru.ifru_broadaddr /* broadcast address */ ++#define ifr_netmask ifr_ifru.ifru_netmask /* interface net mask */ ++#define ifr_flags ifr_ifru.ifru_flags[0] /* flags (low 16 bits) */ ++#define ifr_flagshigh ifr_ifru.ifru_flags[1] /* flags (high 16 bits) */ ++#define ifr_metric ifr_ifru.ifru_metric /* metric */ ++#define ifr_mtu ifr_ifru.ifru_mtu /* mtu */ ++#define ifr_phys ifr_ifru.ifru_phys /* physical wire */ ++#define ifr_media ifr_ifru.ifru_media /* physical media */ ++#define ifr_data ifr_ifru.ifru_data /* for use by interface */ ++#define ifr_reqcap ifr_ifru.ifru_cap[0] /* requested capabilities */ ++#define ifr_curcap ifr_ifru.ifru_cap[1] /* current capabilities */ ++#define ifr_index ifr_ifru.ifru_index /* interface index */ ++}; ++ ++#define _SIZEOF_ADDR_IFREQ(ifr) \ ++ ((ifr).ifr_addr.sa_len > sizeof(struct sockaddr) ? \ ++ (sizeof(struct ifreq) - sizeof(struct sockaddr) + \ ++ (ifr).ifr_addr.sa_len) : sizeof(struct ifreq)) ++ ++struct ifaliasreq { ++ char ifra_name[IFNAMSIZ]; /* if name, e.g. "en0" */ ++ struct sockaddr ifra_addr; ++ struct sockaddr ifra_broadaddr; ++ struct sockaddr ifra_mask; ++}; ++ ++struct ifmediareq { ++ char ifm_name[IFNAMSIZ]; /* if name, e.g. "en0" */ ++ int ifm_current; /* current media options */ ++ int ifm_mask; /* don't care mask */ ++ int ifm_status; /* media status */ ++ int ifm_active; /* active options */ ++ int ifm_count; /* # entries in ifm_ulist array */ ++ int *ifm_ulist; /* media words */ ++}; ++ ++/* ++ * Structure used to retrieve aux status data from interfaces. ++ * Kernel suppliers to this interface should respect the formatting ++ * needed by ifconfig(8): each line starts with a TAB and ends with ++ * a newline. The canonical example to copy and paste is in if_tun.c. ++ */ ++ ++#define IFSTATMAX 800 /* 10 lines of text */ ++struct ifstat { ++ char ifs_name[IFNAMSIZ]; /* if name, e.g. "en0" */ ++ char ascii[IFSTATMAX + 1]; ++}; ++ ++/* ++ * Structure used in SIOCGIFCONF request. ++ * Used to retrieve interface configuration ++ * for machine (useful for programs which ++ * must know all networks accessible). ++ */ ++struct ifconf { ++ int ifc_len; /* size of associated buffer */ ++ union { ++ char *ifcu_buf; ++ struct ifreq *ifcu_req; ++ } ifc_ifcu; ++#define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */ ++#define ifc_req ifc_ifcu.ifcu_req /* array of structures returned */ ++}; ++ ++ ++/* ++ * Structure for SIOC[AGD]LIFADDR ++ */ ++struct if_laddrreq { ++ char iflr_name[IFNAMSIZ]; ++ unsigned int flags; ++#define IFLR_PREFIX 0x8000 /* in: prefix given out: kernel fills id */ ++ unsigned int prefixlen; /* in/out */ ++ struct sockaddr_storage addr; /* in/out */ ++ struct sockaddr_storage dstaddr; /* out */ ++}; ++ ++struct if_nameindex { ++ unsigned int if_index; /* 1, 2, ... */ ++ char *if_name; /* null terminated name: "le0", ... */ ++}; ++ ++__BEGIN_DECLS ++void if_freenameindex(struct if_nameindex *); ++char *if_indextoname(unsigned int, char *); ++struct if_nameindex *if_nameindex(void); ++unsigned int if_nametoindex(const char *); ++__END_DECLS ++ ++#endif /* !_NET_IF_H_ */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/net/if_ether.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/net/if_ether.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/net/if_ether.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/net/if_ether.h 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,104 @@ ++/* Copyright (C) 2006 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _NET_IF_ETHER_H ++#define _NET_IF_ETHER_H 1 ++ ++/* ++ * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble ++ * and FCS/CRC (frame check sequence). ++ */ ++ ++#define ETH_ALEN 6 /* Octets in one ethernet addr */ ++#define ETH_HLEN 14 /* Total octets in header. */ ++#define ETH_ZLEN 60 /* Min. octets in frame sans FCS */ ++#define ETH_DATA_LEN 1500 /* Max. octets in payload */ ++#define ETH_FRAME_LEN 1514 /* Max. octets in frame sans FCS */ ++ ++/* ++ * These are the defined Ethernet Protocol ID's. ++ */ ++ ++#define ETH_P_LOOP 0x0060 /* Ethernet Loopback packet */ ++#define ETH_P_PUP 0x0200 /* Xerox PUP packet */ ++#define ETH_P_PUPAT 0x0201 /* Xerox PUP Addr Trans packet */ ++#define ETH_P_IP 0x0800 /* Internet Protocol packet */ ++#define ETH_P_X25 0x0805 /* CCITT X.25 */ ++#define ETH_P_ARP 0x0806 /* Address Resolution packet */ ++#define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] */ ++#define ETH_P_IEEEPUP 0x0a00 /* Xerox IEEE802.3 PUP packet */ ++#define ETH_P_IEEEPUPAT 0x0a01 /* Xerox IEEE802.3 PUP Addr Trans packet */ ++#define ETH_P_DEC 0x6000 /* DEC Assigned proto */ ++#define ETH_P_DNA_DL 0x6001 /* DEC DNA Dump/Load */ ++#define ETH_P_DNA_RC 0x6002 /* DEC DNA Remote Console */ ++#define ETH_P_DNA_RT 0x6003 /* DEC DNA Routing */ ++#define ETH_P_LAT 0x6004 /* DEC LAT */ ++#define ETH_P_DIAG 0x6005 /* DEC Diagnostics */ ++#define ETH_P_CUST 0x6006 /* DEC Customer use */ ++#define ETH_P_SCA 0x6007 /* DEC Systems Comms Arch */ ++#define ETH_P_RARP 0x8035 /* Reverse Addr Res packet */ ++#define ETH_P_ATALK 0x809B /* Appletalk DDP */ ++#define ETH_P_AARP 0x80F3 /* Appletalk AARP */ ++#define ETH_P_8021Q 0x8100 /* 802.1Q VLAN Extended Header */ ++#define ETH_P_IPX 0x8137 /* IPX over DIX */ ++#define ETH_P_IPV6 0x86DD /* IPv6 over bluebook */ ++#define ETH_P_WCCP 0x883E /* Web-cache coordination protocol ++ * defined in draft-wilson-wrec-wccp-v2-00.txt */ ++#define ETH_P_PPP_DISC 0x8863 /* PPPoE discovery messages */ ++#define ETH_P_PPP_SES 0x8864 /* PPPoE session messages */ ++#define ETH_P_MPLS_UC 0x8847 /* MPLS Unicast traffic */ ++#define ETH_P_MPLS_MC 0x8848 /* MPLS Multicast traffic */ ++#define ETH_P_ATMMPOA 0x884c /* MultiProtocol Over ATM */ ++#define ETH_P_ATMFATE 0x8884 /* Frame-based ATM Transport ++ * over Ethernet ++ */ ++#define ETH_P_AOE 0x88A2 /* ATA over Ethernet */ ++ ++/* ++ * Non DIX types. Won't clash for 1500 types. ++ */ ++ ++#define ETH_P_802_3 0x0001 /* Dummy type for 802.3 frames */ ++#define ETH_P_AX25 0x0002 /* Dummy protocol id for AX.25 */ ++#define ETH_P_ALL 0x0003 /* Every packet (be careful!!!) */ ++#define ETH_P_802_2 0x0004 /* 802.2 frames */ ++#define ETH_P_SNAP 0x0005 /* Internal only */ ++#define ETH_P_DDCMP 0x0006 /* DEC DDCMP: Internal only */ ++#define ETH_P_WAN_PPP 0x0007 /* Dummy type for WAN PPP frames*/ ++#define ETH_P_PPP_MP 0x0008 /* Dummy type for PPP MP frames */ ++#define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */ ++#define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/ ++#define ETH_P_TR_802_2 0x0011 /* 802.2 frames */ ++#define ETH_P_MOBITEX 0x0015 /* Mobitex (kaz@cafe.net) */ ++#define ETH_P_CONTROL 0x0016 /* Card specific control frames */ ++#define ETH_P_IRDA 0x0017 /* Linux-IrDA */ ++#define ETH_P_ECONET 0x0018 /* Acorn Econet */ ++#define ETH_P_HDLC 0x0019 /* HDLC frames */ ++#define ETH_P_ARCNET 0x001A /* 1A for ArcNet :-) */ ++ ++/* ++ * This is an Ethernet frame header. ++ */ ++ ++struct ethhdr { ++ unsigned char h_dest[ETH_ALEN]; /* destination eth addr */ ++ unsigned char h_source[ETH_ALEN]; /* source ether addr */ ++ unsigned short h_proto; /* packet type ID field */ ++} __attribute__((packed)); ++ ++#endif /* net/if_ether.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/netinet/if_ether.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/netinet/if_ether.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/netinet/if_ether.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/netinet/if_ether.h 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,138 @@ ++/* Copyright (C) 1996, 1997, 1999, 2006 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef __NETINET_IF_ETHER_H ++ ++#define __NETINET_IF_ETHER_H 1 ++#include ++#include ++ ++#include ++ ++#ifdef __USE_BSD ++/* ++ * Copyright (c) 1982, 1986, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)if_ether.h 8.3 (Berkeley) 5/2/95 ++ * $FreeBSD$ ++ */ ++ ++#include ++#include ++#include ++ ++__BEGIN_DECLS ++/* ++ * Ethernet Address Resolution Protocol. ++ * ++ * See RFC 826 for protocol description. Structure below is adapted ++ * to resolving internet addresses. Field names used correspond to ++ * RFC 826. ++ */ ++struct ether_arp { ++ struct arphdr ea_hdr; /* fixed-size header */ ++ u_int8_t arp_sha[ETH_ALEN]; /* sender hardware address */ ++ u_int8_t arp_spa[4]; /* sender protocol address */ ++ u_int8_t arp_tha[ETH_ALEN]; /* target hardware address */ ++ u_int8_t arp_tpa[4]; /* target protocol address */ ++}; ++#define arp_hrd ea_hdr.ar_hrd ++#define arp_pro ea_hdr.ar_pro ++#define arp_hln ea_hdr.ar_hln ++#define arp_pln ea_hdr.ar_pln ++#define arp_op ea_hdr.ar_op ++ ++struct sockaddr_inarp { ++ __SOCKADDR_COMMON (sin_); ++ in_port_t sin_port; /* Port number. */ ++ struct in_addr sin_addr; /* Internet address. */ ++ struct in_addr sin_srcaddr; ++ unsigned short sin_tos; ++ unsigned short sin_other; ++#define SIN_PROXY 1 ++}; ++ ++/* ++ * IP and ethernet specific routing flags ++ */ ++#define RTF_USETRAILERS RTF_PROTO1 /* use trailers */ ++#define RTF_ANNOUNCE RTF_PROTO2 /* announce new arp entry */ ++ ++/* ++ * Macro to map an IP multicast address to an Ethernet multicast address. ++ * The high-order 25 bits of the Ethernet address are statically assigned, ++ * and the low-order 23 bits are taken from the low end of the IP address. ++ */ ++#define ETHER_MAP_IP_MULTICAST(ipaddr, enaddr) \ ++ /* struct in_addr *ipaddr; */ \ ++ /* u_char enaddr[ETH_ALEN]; */ \ ++{ \ ++ (enaddr)[0] = 0x01; \ ++ (enaddr)[1] = 0x00; \ ++ (enaddr)[2] = 0x5e; \ ++ (enaddr)[3] = ((u_int8_t *)ipaddr)[1] & 0x7f; \ ++ (enaddr)[4] = ((u_int8_t *)ipaddr)[2]; \ ++ (enaddr)[5] = ((u_int8_t *)ipaddr)[3]; \ ++} ++ ++/* ++ * Macro to map an IP6 multicast address to an Ethernet multicast address. ++ * The high-order 16 bits of the Ethernet address are statically assigned, ++ * and the low-order 32 bits are taken from the low end of the IP6 address. ++ */ ++#define ETHER_MAP_IPV6_MULTICAST(ip6addr, enaddr) \ ++/* struct in6_addr *ip6addr; */ \ ++/* u_char enaddr[ETH_ALEN]; */ \ ++{ \ ++ (enaddr)[0] = 0x33; \ ++ (enaddr)[1] = 0x33; \ ++ (enaddr)[2] = ((u_int8_t *)ip6addr)[12]; \ ++ (enaddr)[3] = ((u_int8_t *)ip6addr)[13]; \ ++ (enaddr)[4] = ((u_int8_t *)ip6addr)[14]; \ ++ (enaddr)[5] = ((u_int8_t *)ip6addr)[15]; \ ++} ++ ++__END_DECLS ++#endif /* __USE_BSD */ ++ ++#endif /* netinet/if_ether.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/netinet/ip_icmp.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/netinet/ip_icmp.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/netinet/ip_icmp.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/netinet/ip_icmp.h 2007-01-10 11:18:12.000000000 +0100 +@@ -0,0 +1,296 @@ ++/* Copyright (C) 1991-1993, 1995-1997, 1999, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef __NETINET_IP_ICMP_H ++#define __NETINET_IP_ICMP_H 1 ++ ++#include ++#include ++ ++__BEGIN_DECLS ++ ++struct icmphdr ++{ ++ u_int8_t type; /* message type */ ++ u_int8_t code; /* type sub-code */ ++ u_int16_t checksum; ++ union ++ { ++ struct ++ { ++ u_int16_t id; ++ u_int16_t sequence; ++ } echo; /* echo datagram */ ++ u_int32_t gateway; /* gateway address */ ++ struct ++ { ++ u_int16_t __unused; ++ u_int16_t mtu; ++ } frag; /* path mtu discovery */ ++ } un; ++}; ++ ++#define ICMP_ECHOREPLY 0 /* Echo Reply */ ++#define ICMP_DEST_UNREACH 3 /* Destination Unreachable */ ++#define ICMP_SOURCE_QUENCH 4 /* Source Quench */ ++#define ICMP_REDIRECT 5 /* Redirect (change route) */ ++#define ICMP_ECHO 8 /* Echo Request */ ++#define ICMP_TIME_EXCEEDED 11 /* Time Exceeded */ ++#define ICMP_PARAMETERPROB 12 /* Parameter Problem */ ++#define ICMP_TIMESTAMP 13 /* Timestamp Request */ ++#define ICMP_TIMESTAMPREPLY 14 /* Timestamp Reply */ ++#define ICMP_INFO_REQUEST 15 /* Information Request */ ++#define ICMP_INFO_REPLY 16 /* Information Reply */ ++#define ICMP_ADDRESS 17 /* Address Mask Request */ ++#define ICMP_ADDRESSREPLY 18 /* Address Mask Reply */ ++#define NR_ICMP_TYPES 18 ++ ++ ++/* Codes for UNREACH. */ ++#define ICMP_NET_UNREACH 0 /* Network Unreachable */ ++#define ICMP_HOST_UNREACH 1 /* Host Unreachable */ ++#define ICMP_PROT_UNREACH 2 /* Protocol Unreachable */ ++#define ICMP_PORT_UNREACH 3 /* Port Unreachable */ ++#define ICMP_FRAG_NEEDED 4 /* Fragmentation Needed/DF set */ ++#define ICMP_SR_FAILED 5 /* Source Route failed */ ++#define ICMP_NET_UNKNOWN 6 ++#define ICMP_HOST_UNKNOWN 7 ++#define ICMP_HOST_ISOLATED 8 ++#define ICMP_NET_ANO 9 ++#define ICMP_HOST_ANO 10 ++#define ICMP_NET_UNR_TOS 11 ++#define ICMP_HOST_UNR_TOS 12 ++#define ICMP_PKT_FILTERED 13 /* Packet filtered */ ++#define ICMP_PREC_VIOLATION 14 /* Precedence violation */ ++#define ICMP_PREC_CUTOFF 15 /* Precedence cut off */ ++#define NR_ICMP_UNREACH 15 /* instead of hardcoding immediate value */ ++ ++/* Codes for REDIRECT. */ ++#define ICMP_REDIR_NET 0 /* Redirect Net */ ++#define ICMP_REDIR_HOST 1 /* Redirect Host */ ++#define ICMP_REDIR_NETTOS 2 /* Redirect Net for TOS */ ++#define ICMP_REDIR_HOSTTOS 3 /* Redirect Host for TOS */ ++ ++/* Codes for TIME_EXCEEDED. */ ++#define ICMP_EXC_TTL 0 /* TTL count exceeded */ ++#define ICMP_EXC_FRAGTIME 1 /* Fragment Reass time exceeded */ ++ ++ ++#ifdef __USE_BSD ++/* ++ * Copyright (c) 1982, 1986, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)ip_icmp.h 8.1 (Berkeley) 6/10/93 ++ */ ++ ++#include ++#include ++ ++/* ++ * Internal of an ICMP Router Advertisement ++ */ ++struct icmp_ra_addr ++{ ++ u_int32_t ira_addr; ++ u_int32_t ira_preference; ++}; ++ ++struct icmp ++{ ++ u_int8_t icmp_type; /* type of message, see below */ ++ u_int8_t icmp_code; /* type sub code */ ++ u_int16_t icmp_cksum; /* ones complement checksum of struct */ ++ union ++ { ++ u_char ih_pptr; /* ICMP_PARAMPROB */ ++ struct in_addr ih_gwaddr; /* gateway address */ ++ struct ih_idseq /* echo datagram */ ++ { ++ u_int16_t icd_id; ++ u_int16_t icd_seq; ++ } ih_idseq; ++ u_int32_t ih_void; ++ ++ /* ICMP_UNREACH_NEEDFRAG -- Path MTU Discovery (RFC1191) */ ++ struct ih_pmtu ++ { ++ u_int16_t ipm_void; ++ u_int16_t ipm_nextmtu; ++ } ih_pmtu; ++ ++ struct ih_rtradv ++ { ++ u_int8_t irt_num_addrs; ++ u_int8_t irt_wpa; ++ u_int16_t irt_lifetime; ++ } ih_rtradv; ++ } icmp_hun; ++#define icmp_pptr icmp_hun.ih_pptr ++#define icmp_gwaddr icmp_hun.ih_gwaddr ++#define icmp_id icmp_hun.ih_idseq.icd_id ++#define icmp_seq icmp_hun.ih_idseq.icd_seq ++#define icmp_void icmp_hun.ih_void ++#define icmp_pmvoid icmp_hun.ih_pmtu.ipm_void ++#define icmp_nextmtu icmp_hun.ih_pmtu.ipm_nextmtu ++#define icmp_num_addrs icmp_hun.ih_rtradv.irt_num_addrs ++#define icmp_wpa icmp_hun.ih_rtradv.irt_wpa ++#define icmp_lifetime icmp_hun.ih_rtradv.irt_lifetime ++ union ++ { ++ struct ++ { ++ u_int32_t its_otime; ++ u_int32_t its_rtime; ++ u_int32_t its_ttime; ++ } id_ts; ++ struct ++ { ++ struct ip idi_ip; ++ /* options and then 64 bits of data */ ++ } id_ip; ++ struct icmp_ra_addr id_radv; ++ u_int32_t id_mask; ++ u_int8_t id_data[1]; ++ } icmp_dun; ++#define icmp_otime icmp_dun.id_ts.its_otime ++#define icmp_rtime icmp_dun.id_ts.its_rtime ++#define icmp_ttime icmp_dun.id_ts.its_ttime ++#define icmp_ip icmp_dun.id_ip.idi_ip ++#define icmp_radv icmp_dun.id_radv ++#define icmp_mask icmp_dun.id_mask ++#define icmp_data icmp_dun.id_data ++}; ++ ++/* ++ * Lower bounds on packet lengths for various types. ++ * For the error advice packets must first insure that the ++ * packet is large enough to contain the returned ip header. ++ * Only then can we do the check to see if 64 bits of packet ++ * data have been returned, since we need to check the returned ++ * ip header length. ++ */ ++#define ICMP_MINLEN 8 /* abs minimum */ ++#define ICMP_TSLEN (8 + 3 * sizeof (n_time)) /* timestamp */ ++#define ICMP_MASKLEN 12 /* address mask */ ++#define ICMP_ADVLENMIN (8 + sizeof (struct ip) + 8) /* min */ ++#ifndef _IP_VHL ++#define ICMP_ADVLEN(p) (8 + ((p)->icmp_ip.ip_hl << 2) + 8) ++ /* N.B.: must separately check that ip_hl >= 5 */ ++#else ++#define ICMP_ADVLEN(p) (8 + (IP_VHL_HL((p)->icmp_ip.ip_vhl) << 2) + 8) ++ /* N.B.: must separately check that header length >= 5 */ ++#endif ++ ++/* ++ * Definition of type and code field values. ++ */ ++#define ICMP_ECHOREPLY 0 /* echo reply */ ++#define ICMP_UNREACH 3 /* dest unreachable, codes: */ ++#define ICMP_UNREACH_NET 0 /* bad net */ ++#define ICMP_UNREACH_HOST 1 /* bad host */ ++#define ICMP_UNREACH_PROTOCOL 2 /* bad protocol */ ++#define ICMP_UNREACH_PORT 3 /* bad port */ ++#define ICMP_UNREACH_NEEDFRAG 4 /* IP_DF caused drop */ ++#define ICMP_UNREACH_SRCFAIL 5 /* src route failed */ ++#define ICMP_UNREACH_NET_UNKNOWN 6 /* unknown net */ ++#define ICMP_UNREACH_HOST_UNKNOWN 7 /* unknown host */ ++#define ICMP_UNREACH_ISOLATED 8 /* src host isolated */ ++#define ICMP_UNREACH_NET_PROHIB 9 /* prohibited access */ ++#define ICMP_UNREACH_HOST_PROHIB 10 /* ditto */ ++#define ICMP_UNREACH_TOSNET 11 /* bad tos for net */ ++#define ICMP_UNREACH_TOSHOST 12 /* bad tos for host */ ++#define ICMP_UNREACH_FILTER_PROHIB 13 /* admin prohib */ ++#define ICMP_UNREACH_HOST_PRECEDENCE 14 /* host prec vio. */ ++#define ICMP_UNREACH_PRECEDENCE_CUTOFF 15 /* prec cutoff */ ++#define ICMP_SOURCEQUENCH 4 /* packet lost, slow down */ ++#define ICMP_REDIRECT 5 /* shorter route, codes: */ ++#define ICMP_REDIRECT_NET 0 /* for network */ ++#define ICMP_REDIRECT_HOST 1 /* for host */ ++#define ICMP_REDIRECT_TOSNET 2 /* for tos and net */ ++#define ICMP_REDIRECT_TOSHOST 3 /* for tos and host */ ++#define ICMP_ALTHOSTADDR 6 /* alternate host address */ ++#define ICMP_ECHO 8 /* echo service */ ++#define ICMP_ROUTERADVERT 9 /* router advertisement */ ++#define ICMP_ROUTERADVERT_NORMAL 0 /* normal advertisement */ ++#define ICMP_ROUTERADVERT_NOROUTE_COMMON 16 /* selective routing */ ++#define ICMP_ROUTERSOLICIT 10 /* router solicitation */ ++#define ICMP_TIMXCEED 11 /* time exceeded, code: */ ++#define ICMP_TIMXCEED_INTRANS 0 /* ttl==0 in transit */ ++#define ICMP_TIMXCEED_REASS 1 /* ttl==0 in reass */ ++#define ICMP_PARAMPROB 12 /* ip header bad */ ++#define ICMP_PARAMPROB_ERRATPTR 0 /* error at param ptr */ ++#define ICMP_PARAMPROB_OPTABSENT 1 /* req. opt. absent */ ++#define ICMP_PARAMPROB_LENGTH 2 /* bad length */ ++#define ICMP_TSTAMP 13 /* timestamp request */ ++#define ICMP_TSTAMPREPLY 14 /* timestamp reply */ ++#define ICMP_IREQ 15 /* information request */ ++#define ICMP_IREQREPLY 16 /* information reply */ ++#define ICMP_MASKREQ 17 /* address mask request */ ++#define ICMP_MASKREPLY 18 /* address mask reply */ ++#define ICMP_TRACEROUTE 30 /* traceroute */ ++#define ICMP_DATACONVERR 31 /* data conversion error */ ++#define ICMP_MOBILE_REDIRECT 32 /* mobile host redirect */ ++#define ICMP_IPV6_WHEREAREYOU 33 /* IPv6 where-are-you */ ++#define ICMP_IPV6_IAMHERE 34 /* IPv6 i-am-here */ ++#define ICMP_MOBILE_REGREQUEST 35 /* mobile registration req */ ++#define ICMP_MOBILE_REGREPLY 36 /* mobile registration reply */ ++#define ICMP_SKIP 39 /* SKIP */ ++#define ICMP_PHOTURIS 40 /* Photuris */ ++#define ICMP_PHOTURIS_UNKNOWN_INDEX 1 /* unknown sec index */ ++#define ICMP_PHOTURIS_AUTH_FAILED 2 /* auth failed */ ++#define ICMP_PHOTURIS_DECRYPT_FAILED 3 /* decrypt failed */ ++ ++#define ICMP_MAXTYPE 40 ++ ++#define ICMP_INFOTYPE(type) \ ++ ((type) == ICMP_ECHOREPLY || (type) == ICMP_ECHO || \ ++ (type) == ICMP_ROUTERADVERT || (type) == ICMP_ROUTERSOLICIT || \ ++ (type) == ICMP_TSTAMP || (type) == ICMP_TSTAMPREPLY || \ ++ (type) == ICMP_IREQ || (type) == ICMP_IREQREPLY || \ ++ (type) == ICMP_MASKREQ || (type) == ICMP_MASKREPLY) ++ ++#endif /* __USE_BSD */ ++ ++__END_DECLS ++ ++#endif /* netinet/ip_icmp.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/netinet/tcp.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/netinet/tcp.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/netinet/tcp.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/netinet/tcp.h 2006-10-18 09:59:55.000000000 +0200 +@@ -0,0 +1,258 @@ ++/* netinet/tcp.h ++ Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* ++ * Copyright (c) 1982, 1986, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)tcp.h 8.1 (Berkeley) 6/10/93 ++ */ ++ ++#ifndef _NETINET_TCP_H ++#define _NETINET_TCP_H 1 ++ ++#include ++ ++/* ++ * User-settable options (used with setsockopt). ++ */ ++#define TCP_NODELAY 1 /* Don't delay send to coalesce packets */ ++#define TCP_MAXSEG 2 /* Set maximum segment size */ ++#define TCP_NOPUSH 4 /* Don't push last block of write */ ++#define TCP_NOOPT 8 /* Don't use TCP options */ ++ ++#ifdef __USE_MISC ++# include ++ ++# ifdef __FAVOR_BSD ++typedef u_int32_t tcp_seq; ++typedef u_int32_t tcp_cc; /* connection count, per RFC 1644 */ ++/* ++ * TCP header. ++ * Per RFC 793, September, 1981. ++ */ ++struct tcphdr ++ { ++ u_int16_t th_sport; /* source port */ ++ u_int16_t th_dport; /* destination port */ ++ tcp_seq th_seq; /* sequence number */ ++ tcp_seq th_ack; /* acknowledgement number */ ++# if __BYTE_ORDER == __LITTLE_ENDIAN ++ u_int8_t th_x2:4; /* (unused) */ ++ u_int8_t th_off:4; /* data offset */ ++# endif ++# if __BYTE_ORDER == __BIG_ENDIAN ++ u_int8_t th_off:4; /* data offset */ ++ u_int8_t th_x2:4; /* (unused) */ ++# endif ++ u_int8_t th_flags; ++# define TH_FIN 0x01 ++# define TH_SYN 0x02 ++# define TH_RST 0x04 ++# define TH_PUSH 0x08 ++# define TH_ACK 0x10 ++# define TH_URG 0x20 ++ u_int16_t th_win; /* window */ ++ u_int16_t th_sum; /* checksum */ ++ u_int16_t th_urp; /* urgent pointer */ ++}; ++ ++# else /* !__FAVOR_BSD */ ++struct tcphdr ++ { ++ u_int16_t source; ++ u_int16_t dest; ++ u_int32_t seq; ++ u_int32_t ack_seq; ++# if __BYTE_ORDER == __LITTLE_ENDIAN ++ u_int16_t res1:4; ++ u_int16_t doff:4; ++ u_int16_t fin:1; ++ u_int16_t syn:1; ++ u_int16_t rst:1; ++ u_int16_t psh:1; ++ u_int16_t ack:1; ++ u_int16_t urg:1; ++ u_int16_t res2:2; ++# elif __BYTE_ORDER == __BIG_ENDIAN ++ u_int16_t doff:4; ++ u_int16_t res1:4; ++ u_int16_t res2:2; ++ u_int16_t urg:1; ++ u_int16_t ack:1; ++ u_int16_t psh:1; ++ u_int16_t rst:1; ++ u_int16_t syn:1; ++ u_int16_t fin:1; ++# else ++# error "Adjust your defines" ++# endif ++ u_int16_t window; ++ u_int16_t check; ++ u_int16_t urg_ptr; ++}; ++# endif /* __FAVOR_BSD */ ++ ++enum ++{ ++ TCP_ESTABLISHED = 1, ++ TCP_SYN_SENT, ++ TCP_SYN_RECV, ++ TCP_FIN_WAIT1, ++ TCP_FIN_WAIT2, ++ TCP_TIME_WAIT, ++ TCP_CLOSE, ++ TCP_CLOSE_WAIT, ++ TCP_LAST_ACK, ++ TCP_LISTEN, ++ TCP_CLOSING /* now a valid state */ ++}; ++ ++# define TCPOPT_EOL 0 ++# define TCPOPT_NOP 1 ++# define TCPOPT_MAXSEG 2 ++# define TCPOLEN_MAXSEG 4 ++# define TCPOPT_WINDOW 3 ++# define TCPOLEN_WINDOW 3 ++# define TCPOPT_SACK_PERMITTED 4 /* Experimental */ ++# define TCPOLEN_SACK_PERMITTED 2 ++# define TCPOPT_SACK 5 /* Experimental */ ++# define TCPOPT_TIMESTAMP 8 ++# define TCPOLEN_TIMESTAMP 10 ++# define TCPOLEN_TSTAMP_APPA (TCPOLEN_TIMESTAMP+2) /* appendix A */ ++# define TCPOPT_TSTAMP_HDR \ ++ (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_TIMESTAMP<<8|TCPOLEN_TIMESTAMP) ++#define TCPOPT_CC 11 /* CC options: RFC-1644 */ ++#define TCPOPT_CCNEW 12 ++#define TCPOPT_CCECHO 13 ++#define TCPOLEN_CC 6 ++#define TCPOLEN_CC_APPA (TCPOLEN_CC+2) ++#define TCPOPT_CC_HDR(ccopt) \ ++ (TCPOPT_NOP<<24|TCPOPT_NOP<<16|(ccopt)<<8|TCPOLEN_CC) ++ ++/* ++ * Default maximum segment size for TCP. ++ * With an IP MSS of 576, this is 536, ++ * but 512 is probably more convenient. ++ * This should be defined as MIN(512, IP_MSS - sizeof (struct tcpiphdr)). ++ */ ++# define TCP_MSS 512 ++ ++/* ++ * Default maximum segment size for TCP6. ++ * With an IP MSS of 1280, this is 1220, ++ * but 1024 is probably more convenient. ++ * This should be defined as MIN(1024, IP6_MSS - sizeof (struct tcpip6hdr)). ++ */ ++# define TCP6_MSS 1024 ++ ++# define TCP_MAXWIN 65535 /* largest value for (unscaled) window */ ++# define TTCP_CLIENT_SND_WND 4096 /* default send window for T/TCP client */ ++ ++# define TCP_MAX_WINSHIFT 14 /* maximum window shift */ ++ ++#define TCP_MAXBURST 4 /* maximum segments in a burst */ ++ ++#define TCP_MAXHLEN (0xf<<2) /* max length of header in bytes */ ++#define TCP_MAXOLEN (TCP_MAXHLEN - sizeof (struct tcphdr)) ++ /* max space left for options */ ++ ++# define SOL_TCP 6 /* TCP level */ ++ ++ ++# define TCPI_OPT_TIMESTAMPS 1 ++# define TCPI_OPT_SACK 2 ++# define TCPI_OPT_WSCALE 4 ++# define TCPI_OPT_ECN 8 ++ ++/* Values for tcpi_state. */ ++enum tcp_ca_state ++{ ++ TCP_CA_Open = 0, ++ TCP_CA_Disorder = 1, ++ TCP_CA_CWR = 2, ++ TCP_CA_Recovery = 3, ++ TCP_CA_Loss = 4 ++}; ++ ++struct tcp_info ++{ ++ u_int8_t tcpi_state; ++ u_int8_t tcpi_ca_state; ++ u_int8_t tcpi_retransmits; ++ u_int8_t tcpi_probes; ++ u_int8_t tcpi_backoff; ++ u_int8_t tcpi_options; ++ u_int8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; ++ ++ u_int32_t tcpi_rto; ++ u_int32_t tcpi_ato; ++ u_int32_t tcpi_snd_mss; ++ u_int32_t tcpi_rcv_mss; ++ ++ u_int32_t tcpi_unacked; ++ u_int32_t tcpi_sacked; ++ u_int32_t tcpi_lost; ++ u_int32_t tcpi_retrans; ++ u_int32_t tcpi_fackets; ++ ++ /* Times. */ ++ u_int32_t tcpi_last_data_sent; ++ u_int32_t tcpi_last_ack_sent; /* Not remembered, sorry. */ ++ u_int32_t tcpi_last_data_recv; ++ u_int32_t tcpi_last_ack_recv; ++ ++ /* Metrics. */ ++ u_int32_t tcpi_pmtu; ++ u_int32_t tcpi_rcv_ssthresh; ++ u_int32_t tcpi_rtt; ++ u_int32_t tcpi_rttvar; ++ u_int32_t tcpi_snd_ssthresh; ++ u_int32_t tcpi_snd_cwnd; ++ u_int32_t tcpi_advmss; ++ u_int32_t tcpi_reordering; ++}; ++ ++#endif /* Misc. */ ++ ++#endif /* netinet/tcp.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/nfs/nfs.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/nfs/nfs.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/nfs/nfs.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/nfs/nfs.h 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,3 @@ ++#include ++#include ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/not-cancel.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/not-cancel.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/not-cancel.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/not-cancel.h 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,88 @@ ++/* Uncancelable versions of cancelable interfaces. kFreeBSD version. ++ Copyright (C) 2003, 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper , 2003. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++/* Uncancelable open. */ ++#define open_not_cancel(name, flags, mode) \ ++ INLINE_SYSCALL (open, 3, (const char *) (name), (flags), (mode)) ++#define open_not_cancel_2(name, flags) \ ++ INLINE_SYSCALL (open, 2, (const char *) (name), (flags)) ++ ++/* Uncancelable openat. */ ++#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt ++extern int __openat_nocancel (int fd, const char *fname, int oflag, ++ mode_t mode) attribute_hidden; ++extern int __openat64_nocancel (int fd, const char *fname, int oflag, ++ mode_t mode) attribute_hidden; ++#else ++# define __openat_nocancel(fd, fname, oflag, mode) \ ++ openat (fd, fname, oflag, mode) ++# define __openat64_nocancel(fd, fname, oflag, mode) \ ++ openat64 (fd, fname, oflag, mode) ++#endif ++ ++#define openat_not_cancel(fd, fname, oflag, mode) \ ++ __openat_nocancel (fd, fname, oflag, mode) ++#define openat_not_cancel_3(fd, fname, oflag) \ ++ __openat_nocancel (fd, fname, oflag, 0) ++#define openat64_not_cancel(fd, fname, oflag, mode) \ ++ __openat64_nocancel (fd, fname, oflag, mode) ++#define openat64_not_cancel_3(fd, fname, oflag) \ ++ __openat64_nocancel (fd, fname, oflag, 0) ++ ++/* Uncancelable close. */ ++#define close_not_cancel(fd) \ ++ INLINE_SYSCALL (close, 1, fd) ++#define close_not_cancel_no_status(fd) \ ++ INLINE_SYSCALL (close, 1, fd) ++ ++/* Uncancelable read. */ ++#define read_not_cancel(fd, buf, n) \ ++ INLINE_SYSCALL (read, 3, (fd), (buf), (n)) ++ ++/* Uncancelable write. */ ++#define write_not_cancel(fd, buf, n) \ ++ INLINE_SYSCALL (write, 3, (fd), (buf), (n)) ++ ++/* Uncancelable writev. */ ++#define writev_not_cancel_no_status(fd, iov, n) \ ++ INLINE_SYSCALL (writev, 3, (fd), (iov), (n)) ++ ++/* Uncancelable fcntl. */ ++#define fcntl_not_cancel(fd, cmd, val) \ ++ __fcntl_nocancel (fd, cmd, val) ++ ++/* Uncancelable waitpid. */ ++# define waitpid_not_cancel(pid, stat_loc, options) \ ++ INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL) ++ ++/* Uncancelable pause. */ ++# define pause_not_cancel() \ ++ __pause_nocancel () ++ ++/* Uncancelable nanosleep. */ ++# define nanosleep_not_cancel(requested_time, remaining) \ ++ INLINE_SYSCALL (nanosleep, 2, requested_time, remaining) ++ ++/* Uncancelable sigsuspend. */ ++#define sigsuspend_not_cancel(set) \ ++ INLINE_SYSCALL (sigsuspend, 1, set) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ntp_gettime.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ntp_gettime.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ntp_gettime.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ntp_gettime.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,62 @@ ++/* Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++#ifndef ntptimeval ++#define ntptimeval ntptimeval4 ++#endif ++ ++int ++ntp_gettime (struct ntptimeval *ntv) ++{ ++ /* Fetch sysctl value of "kern.ntp_pll.gettime". */ ++ /* The 'struct ntptimeval' has grown in size. */ ++ union ++ { ++ struct ntptimeval3 tv3; ++ struct ntptimeval4 tv4; ++ } tv; ++ size_t size = sizeof (tv); ++ int request[2] = { CTL_KERN, KERN_NTP_PLL }; ++ ++ if (__sysctl (request, 2, &tv, &size, NULL, 0) >= 0) ++ { ++ if (size == sizeof (struct ntptimeval3)) ++ { ++ if (ntv) ++ { ++ ntv->time = tv.tv3.time; ++ ntv->maxerror = tv.tv3.maxerror; ++ ntv->esterror = tv.tv3.esterror; ++ ntv->tai = 0; ++ ntv->time_state = tv.tv3.time_state; ++ } ++ return tv.tv3.time_state; ++ } ++ if (size == sizeof (struct ntptimeval4)) ++ { ++ if (ntv) ++ *ntv = tv.tv4; ++ return tv.tv4.time_state; ++ } ++ } ++ return TIME_ERROR; ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/open.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/open.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/open.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/open.c 2007-11-21 16:53:13.000000000 +0100 +@@ -0,0 +1,89 @@ ++/* Copyright (C) 1999, 2000, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++int ++__libc_open (const char *file, int oflag, ...) ++{ ++ int mode = 0; ++ int fd; ++ ++ if (oflag & O_CREAT) ++ { ++ va_list arg; ++ va_start (arg, oflag); ++ mode = va_arg (arg, int); ++ va_end (arg); ++ } ++ ++ if (SINGLE_THREAD_P) ++ { ++ fd = INLINE_SYSCALL (open, 3, file, oflag, mode); ++ } ++ else ++ { ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ fd = INLINE_SYSCALL (open, 3, file, oflag, mode); ++ LIBC_CANCEL_RESET (oldtype); ++ } ++ ++ if (fd >= 0 && (oflag & O_TRUNC)) ++ { ++ /* Set the modification time. The kernel ought to do this. */ ++ int saved_errno = errno; ++ struct timeval tv[2]; ++ ++ if (__gettimeofday (&tv[1], NULL) >= 0) ++ { ++ struct stat statbuf; ++ ++ if (__fxstat (_STAT_VER, fd, &statbuf) >= 0) ++ { ++ tv[0].tv_sec = statbuf.st_atime; ++ tv[0].tv_usec = 0; ++ ++#ifdef NOT_IN_libc ++ futimes (fd, tv); ++#else ++ __futimes (fd, tv); ++#endif ++ } ++ } ++ __set_errno (saved_errno); ++ } ++ ++ return fd; ++} ++libc_hidden_def (__libc_open) ++ ++weak_alias (__libc_open, __open) ++libc_hidden_weak (__open) ++ ++weak_alias (__libc_open, open) ++ ++strong_alias (__libc_open, __libc_open64) ++weak_alias (__libc_open64, __open64) ++weak_alias (__libc_open64, open64) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/open64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/open64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/open64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/open64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,2 @@ ++/* 'open64' is the same as 'open', because __off64_t == __off_t and ++ O_LARGEFILE == 0. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/openat.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/openat.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/openat.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/openat.c 2007-12-20 02:11:34.000000000 +0100 +@@ -0,0 +1,95 @@ ++/* Copyright (C) 2005, 2006 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++int ++__openat_nocancel (fd, file, oflag, mode) ++ int fd; ++ const char *file; ++ int oflag; ++ mode_t mode; ++{ ++ if (fd != AT_FDCWD && file[0] != '/') ++ { ++ /* Check FD is associated with a directory. */ ++ struct stat64 st; ++ if (__fxstat64 (_STAT_VER, fd, &st) != 0) ++ /* errno is already set correctly. */ ++ return -1; ++ ++ if (!S_ISDIR (st.st_mode)) ++ __set_errno (ENOTDIR); ++ else ++ __set_errno (ENOSYS); ++ return -1; ++ } ++ return INLINE_SYSCALL (open, 3, file, oflag, mode); ++} ++ ++ ++/* Open FILE with access OFLAG. Interpret relative paths relative to ++ the directory associated with FD. If OFLAG includes O_CREAT, a ++ third argument is the file protection. */ ++int ++__openat (fd, file, oflag) ++ int fd; ++ const char *file; ++ int oflag; ++{ ++ mode_t mode = 0; ++ if (oflag & O_CREAT) ++ { ++ va_list arg; ++ va_start (arg, oflag); ++ mode = va_arg (arg, int); ++ va_end (arg); ++ } ++ ++ if (SINGLE_THREAD_P) ++ return __openat_nocancel (fd, file, oflag, mode); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ ++ int res = __openat_nocancel (fd, file, oflag, mode); ++ ++ LIBC_CANCEL_RESET (oldtype); ++ ++ return res; ++} ++libc_hidden_def (__openat) ++weak_alias (__openat, openat) ++ ++/* openat64 is just the same as openat for us. */ ++strong_alias (__openat, __openat64) ++strong_alias (__openat_nocancel, __openat64_nocancel) ++libc_hidden_weak (__openat64) ++weak_alias (__openat64, openat64) ++ ++stub_warning (openat) ++stub_warning (openat64) ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/openat64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/openat64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/openat64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/openat64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,2 @@ ++/* 'openat64' is the same as 'open', because __off64_t == __off_t and ++ O_LARGEFILE == 0. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/paths.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/paths.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/paths.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/paths.h 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,74 @@ ++/* ++ * Copyright (c) 1989, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)paths.h 8.1 (Berkeley) 6/2/93 ++ */ ++ ++#ifndef _PATHS_H_ ++#define _PATHS_H_ ++ ++/* Default search path. */ ++#define _PATH_DEFPATH "/usr/bin:/bin" ++/* All standard utilities path. */ ++#define _PATH_STDPATH "/usr/bin:/bin:/usr/sbin:/sbin" ++ ++#define _PATH_BSHELL "/bin/sh" ++#define _PATH_CONSOLE "/dev/console" ++#define _PATH_CSHELL "/bin/csh" ++#define _PATH_DEVDB "/var/run/dev.db" ++#define _PATH_DEVNULL "/dev/null" ++#define _PATH_DRUM "/dev/drum" ++#define _PATH_KLOG "/dev/klog" ++#define _PATH_KMEM "/dev/kmem" ++#define _PATH_LASTLOG "/var/log/lastlog" ++/* FIFOs are not permitted in /dev, so we use /var/run/log instead of /dev/log */ ++#define _PATH_MAILDIR "/var/mail" ++#define _PATH_MAN "/usr/share/man" ++#define _PATH_MEM "/dev/mem" ++#define _PATH_MNTTAB "/etc/fstab" ++#define _PATH_MOUNTED "/etc/mtab" ++#define _PATH_NOLOGIN "/etc/nologin" ++#define _PATH_PRESERVE "/var/preserve" ++#define _PATH_RWHODIR "/var/rwho" ++#define _PATH_SENDMAIL "/usr/sbin/sendmail" ++#define _PATH_SHADOW "/etc/shadow" ++#define _PATH_SHELLS "/etc/shells" ++#define _PATH_TTY "/dev/tty" ++#define _PATH_UNIX "/kernel" ++#define _PATH_UTMP "/var/run/utmp" ++#define _PATH_VI "/usr/bin/vi" ++#define _PATH_WTMP "/var/log/wtmp" ++ ++/* Provide trailing slash, since mostly used for building pathnames. */ ++#define _PATH_DEV "/dev/" ++#define _PATH_TMP "/tmp/" ++#define _PATH_VARDB "/var/db/" ++#define _PATH_VARRUN "/var/run/" ++#define _PATH_VARTMP "/var/tmp/" ++ ++#endif /* !_PATHS_H_ */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/pread.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/pread.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/pread.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/pread.c 2007-11-21 16:53:13.000000000 +0100 +@@ -0,0 +1,50 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++/* The real system call has a word of padding before the 64-bit off_t ++ argument. */ ++extern ssize_t __syscall_freebsd6_pread (int __fd, void *__buf, size_t __nbytes, ++ int __unused1, __off_t __offset) __THROW; ++libc_hidden_proto(__syscall_freebsd6_pread) ++ ++ssize_t ++__libc_pread (int fd, void *buf, size_t nbytes, __off_t offset) ++{ ++ /* We pass 5 arguments in 6 words. */ ++ if (SINGLE_THREAD_P) ++ return INLINE_SYSCALL (freebsd6_pread, 5, fd, buf, nbytes, 0, offset); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ ssize_t result = INLINE_SYSCALL (freebsd6_pread, 5, fd, buf, nbytes, 0, offset); ++ LIBC_CANCEL_RESET (oldtype); ++ return result; ++} ++ ++strong_alias (__libc_pread, __pread) ++weak_alias (__pread, pread) ++ ++/* 'pread64' is the same as 'pread', because __off64_t == __off_t. */ ++strong_alias (__libc_pread, __libc_pread64) ++weak_alias (__libc_pread64, __pread64) ++weak_alias (__libc_pread64, pread64) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/pread64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/pread64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/pread64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/pread64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1 @@ ++/* 'pread64' is the same as 'pread', because __off64_t == __off_t. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/prof-freq.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/prof-freq.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/prof-freq.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/prof-freq.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,47 @@ ++/* Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++struct clockinfo ++{ ++ int hz; /* Clock frequency. */ ++ int tick; /* Microseconds per hz tick, = 1000000 / hz. */ ++ int tickadj; /* Clock skew rate for adjtime(). */ ++ int stathz; /* Statistics clock frequency. */ ++ int profhz; /* Profiling clock frequency. */ ++}; ++ ++int ++__profile_frequency (void) ++{ ++ /* Fetch the "kern.clockrate" sysctl value. */ ++ int request[2] = { CTL_KERN, KERN_CLOCKRATE }; ++ struct clockinfo result; ++ size_t result_len = sizeof (result); ++ ++ if (__sysctl (request, 2, &result, &result_len, NULL, 0) < 0) ++ /* Dummy result. */ ++ return 1; ++ ++ /* Yes, hz, not profhz. On i386, the value is 100, not 1024. */ ++ return result.hz; ++} ++libc_hidden_def (__profile_frequency) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ptrace.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ptrace.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ptrace.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ptrace.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,68 @@ ++/* Copyright (C) 1995-1998, 2000, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++extern int __syscall_ptrace (enum __ptrace_request request, pid_t pid, ++ void *addr, void *data); ++ ++int ++ptrace (enum __ptrace_request request, ...) ++{ ++ int res, ret; ++ va_list ap; ++ pid_t pid; ++ void *addr, *data; ++ ++ /* Usually 4 arguments are given, except when request == PTRACE_TRACEME. ++ But it doesn't harm to peek at the stack in this case as well. */ ++ va_start (ap, request); ++ pid = va_arg (ap, pid_t); ++ addr = va_arg (ap, void *); ++ data = va_arg (ap, void *); ++ va_end (ap); ++ ++ switch (request) ++ { ++ case PTRACE_PEEKTEXT: ++ case PTRACE_PEEKDATA: ++#ifdef PTRACE_PEEKUSER ++ case PTRACE_PEEKUSER: ++#endif ++ res = INLINE_SYSCALL (ptrace, 4, request, pid, addr, &ret); ++ if (res >= 0) ++ { ++ /* ret can be -1 even for successful operation. */ ++ __set_errno (0); ++ return ret; ++ } ++ break; ++ ++ default: ++ res = INLINE_SYSCALL (ptrace, 4, request, pid, addr, data); ++ break; ++ } ++ ++ return res; ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ptsname.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ptsname.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ptsname.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ptsname.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,104 @@ ++/* Copyright (C) 1998, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ ++/* Static buffer for `ptsname'. */ ++static char buffer[sizeof (_PATH_TTY) + 2]; ++ ++ ++/* Return the pathname of the pseudo terminal slave associated with ++ the master FD is open on, or NULL on errors. ++ The returned storage is good until the next call to this function. */ ++char * ++ptsname (int fd) ++{ ++ return __ptsname_r (fd, buffer, sizeof (buffer)) != 0 ? NULL : buffer; ++} ++ ++/* The are declared in getpt.c. */ ++extern const char __libc_ptyname1[] attribute_hidden; ++extern const char __libc_ptyname2[] attribute_hidden; ++ ++ ++/* Store at most BUFLEN characters of the pathname of the slave pseudo ++ terminal associated with the master FD is open on in BUF. ++ Return 0 on success, otherwise an error number. */ ++int ++__ptsname_r (int fd, char *buf, size_t buflen) ++{ ++ int saved_errno = errno; ++ struct stat64 st; ++ char *p; ++ ++ if (buf == NULL) ++ { ++ __set_errno (EINVAL); ++ return EINVAL; ++ } ++ ++ /* Don't call isatty (fd) - it usually fails with errno = EAGAIN. */ ++ ++ if (__fxstat64 (_STAT_VER, fd, &st) < 0) ++ return errno; ++ ++ /* Check if FD really is a master pseudo terminal. */ ++ if (!(S_ISCHR (st.st_mode))) ++ { ++ __set_errno (ENOTTY); ++ return ENOTTY; ++ } ++ ++ if (buflen < sizeof (_PATH_TTY) + 2) ++ { ++ __set_errno (ERANGE); ++ return ERANGE; ++ } ++ ++ /* Construct the slave's pathname. */ ++ /* instead of strlen(_PATH_DEV) we use (sizeof (_PATH_DEV) - 1) */ ++ p = __mempcpy (buf, _PATH_DEV, sizeof (_PATH_DEV) - 1); ++ buflen -= (sizeof (_PATH_DEV) - 1); ++ if(__sysctlbyname("kern.devname", p, &buflen, &st.st_rdev, sizeof (st.st_rdev)) < 0) ++ return errno; ++ p[0] = 't'; ++ ++ if (__xstat64 (_STAT_VER, buf, &st) < 0) ++ return errno; ++ ++ /* Check if the pathname we're about to return might be ++ slave pseudo terminal of the given master pseudo terminal. */ ++ if (!(S_ISCHR (st.st_mode))) ++ { ++ /* This really is a configuration problem. */ ++ __set_errno (ENOTTY); ++ return ENOTTY; ++ } ++ ++ __set_errno (saved_errno); ++ return 0; ++} ++weak_alias (__ptsname_r, ptsname_r) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/pwrite.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/pwrite.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/pwrite.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/pwrite.c 2007-11-21 16:53:13.000000000 +0100 +@@ -0,0 +1,50 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++/* The real system call has a word of padding before the 64-bit off_t ++ argument. */ ++extern ssize_t __syscall_freebsd6_pwrite (int __fd, const void *__buf, size_t __nbytes, ++ int __unused1, __off_t __offset) __THROW; ++libc_hidden_proto(__syscall_freebsd6_pwrite) ++ ++ssize_t ++__libc_pwrite (int fd, const void *buf, size_t nbytes, __off_t offset) ++{ ++ /* We pass 5 arguments in 6 words. */ ++ if (SINGLE_THREAD_P) ++ return INLINE_SYSCALL (freebsd6_pwrite, 5, fd, buf, nbytes, 0, offset); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ ssize_t result = INLINE_SYSCALL (freebsd6_pwrite, 5, fd, buf, nbytes, 0, offset); ++ LIBC_CANCEL_RESET (oldtype); ++ return result; ++} ++ ++strong_alias (__libc_pwrite, __pwrite) ++weak_alias (__pwrite, pwrite) ++ ++/* 'pwrite64' is the same as 'pwrite', because __off64_t == __off_t. */ ++strong_alias (__libc_pwrite, __libc_pwrite64) ++weak_alias (__libc_pwrite64, __pwrite64) ++weak_alias (__libc_pwrite64, pwrite64) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/pwrite64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/pwrite64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/pwrite64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/pwrite64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1 @@ ++/* 'pwrite64' is the same as 'pwrite', because __off64_t == __off_t. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,11 @@ ++/* 'readdir64' is the same as 'readdir', because ++ struct dirent64 == struct dirent. */ ++ ++#define readdir64 __no_readdir64_decl ++#define __readdir64 __no___readdir64_decl ++#include ++#undef __readdir64 ++#undef readdir64 ++ ++strong_alias (__readdir, __readdir64) ++weak_alias (__readdir64, readdir64) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,2 @@ ++/* 'readdir64' is the same as 'readdir', because ++ struct dirent64 == struct dirent. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir64_r.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir64_r.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir64_r.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir64_r.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,2 @@ ++/* 'readdir64_r' is the same as 'readdir_r', because ++ struct dirent64 == struct dirent. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir_r.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir_r.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir_r.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/readdir_r.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,11 @@ ++/* 'readdir64_r' is the same as 'readdir_r', because ++ struct dirent64 == struct dirent. */ ++ ++#define readdir64_r __no_readdir64_r_decl ++#define __readdir64_r __no___readdir64_r_decl ++#include ++#undef __readdir64_r ++#undef readdir64_r ++ ++strong_alias (__readdir_r, __readdir64_r) ++weak_alias (__readdir64_r, readdir64_r) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/readv.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/readv.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/readv.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/readv.c 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,57 @@ ++/* readv for FreeBSD. ++ Copyright (C) 1997-1998, 2000, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++extern ssize_t __syscall_readv (int, __const struct iovec *__unbounded, int); ++libc_hidden_proto(__syscall_readv) ++ ++static ssize_t __atomic_readv_replacement (int, __const struct iovec *, ++ int) internal_function; ++ ++ssize_t ++__libc_readv (int fd, const struct iovec *vector, int count) ++{ ++ if (count <= UIO_MAXIOV) ++ { ++ if (SINGLE_THREAD_P) ++ return INLINE_SYSCALL (readv, 3, fd, CHECK_N (vector, count), count); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ ssize_t result = INLINE_SYSCALL (readv, 3, fd, CHECK_N (vector, count), count); ++ LIBC_CANCEL_RESET (oldtype); ++ return result; ++ ++ } ++ else ++ return __atomic_readv_replacement (fd, vector, count); ++} ++strong_alias (__libc_readv, __readv) ++weak_alias (__libc_readv, readv) ++ ++#define __libc_readv static internal_function __atomic_readv_replacement ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/recv.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/recv.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/recv.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/recv.c 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,41 @@ ++/* Copyright (C) 2001-2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++/* The real syscall's name. See sysdeps/unix/inet/syscalls.list. */ ++#define __syscall_recvfrom __libc_recvfrom ++ssize_t __libc_recvfrom(int s, void *buf, size_t len, int flags, ++ struct sockaddr *from, socklen_t *fromlen); ++libc_hidden_proto (__libc_recvfrom) ++ ++/* Read N bytes into BUF from socket FD. ++ Return the number of bytes read or -1 for error. */ ++ ++ssize_t ++__libc_recv (int fd, void *buf, size_t n, int flags) ++{ ++ return INLINE_SYSCALL (recvfrom, 6, fd, buf, n, flags, NULL, NULL); ++} ++ ++weak_alias (__libc_recv, __recv) ++weak_alias (__libc_recv, recv) ++ ++LIBC_CANCEL_HANDLED (); /* in __libc_recvfrom */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/rtld-lowlevel.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/rtld-lowlevel.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/rtld-lowlevel.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/rtld-lowlevel.h 2007-07-29 16:07:34.000000000 +0200 +@@ -0,0 +1,131 @@ ++/* Definitions for lowlevel handling in ld.so, FreeBSD variant ++ Copyright (C) 2006-2007 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _RTLD_LOWLEVEL_H ++#define _RTLD_LOWLEVEL_H 1 ++ ++#include ++#include ++ ++/* Special multi-reader lock used in ld.so. */ ++#define __RTLD_MRLOCK_WRITER 1 ++#define __RTLD_MRLOCK_RWAIT 2 ++#define __RTLD_MRLOCK_WWAIT 4 ++#define __RTLD_MRLOCK_RBITS \ ++ ~(__RTLD_MRLOCK_WRITER | __RTLD_MRLOCK_RWAIT | __RTLD_MRLOCK_WWAIT) ++#define __RTLD_MRLOCK_INC 8 ++#define __RTLD_MRLOCK_TRIES 5 ++ ++#define __rtld_mrlock_define(CLASS,NAME) \ ++ CLASS __rtld_mrlock_t NAME; ++ ++ ++#define _RTLD_MRLOCK_INITIALIZER 0 ++#define __rtld_mrlock_initialize(NAME) \ ++ (void) ((NAME).lv = 0) ++ ++ ++#define __rtld_mrlock_lock(lock) \ ++ do { \ ++ __label__ out; \ ++ while (1) \ ++ { \ ++ int oldval; \ ++ for (int tries = 0; tries < __RTLD_MRLOCK_TRIES; ++tries) \ ++ { \ ++ oldval = (lock).iv; \ ++ while (__builtin_expect ((oldval \ ++ & (__RTLD_MRLOCK_WRITER \ ++ | __RTLD_MRLOCK_WWAIT)) \ ++ == 0, 1)) \ ++ { \ ++ int newval = ((oldval & __RTLD_MRLOCK_RBITS) \ ++ + __RTLD_MRLOCK_INC); \ ++ int ret = atomic_compare_and_exchange_val_acq (&(lock.iv), \ ++ newval, \ ++ oldval); \ ++ if (__builtin_expect (ret == oldval, 1)) \ ++ goto out; \ ++ oldval = ret; \ ++ } \ ++ atomic_delay (); \ ++ } \ ++ if ((oldval & __RTLD_MRLOCK_RWAIT) == 0) \ ++ { \ ++ atomic_or (&(lock.iv), __RTLD_MRLOCK_RWAIT); \ ++ oldval |= __RTLD_MRLOCK_RWAIT; \ ++ } \ ++ lll_futex_wait (&(lock), oldval); \ ++ } \ ++ out:; \ ++ } while (0) ++ ++ ++#define __rtld_mrlock_unlock(lock) \ ++ do { \ ++ int oldval = atomic_exchange_and_add (&(lock.iv), -__RTLD_MRLOCK_INC); \ ++ if (__builtin_expect ((oldval \ ++ & (__RTLD_MRLOCK_RBITS | __RTLD_MRLOCK_WWAIT)) \ ++ == (__RTLD_MRLOCK_INC | __RTLD_MRLOCK_WWAIT), 0)) \ ++ /* We have to wake all threads since there might be some queued \ ++ readers already. */ \ ++ lll_futex_wake (&(lock), 0x7fffffff); \ ++ } while (0) ++ ++ ++/* There can only ever be one thread trying to get the exclusive lock. */ ++#define __rtld_mrlock_change(lock) \ ++ do { \ ++ __label__ out; \ ++ while (1) \ ++ { \ ++ int oldval; \ ++ for (int tries = 0; tries < __RTLD_MRLOCK_TRIES; ++tries) \ ++ { \ ++ oldval = lock.iv; \ ++ while (__builtin_expect ((oldval & __RTLD_MRLOCK_RBITS) == 0, 1)) \ ++ { \ ++ int newval = ((oldval & __RTLD_MRLOCK_RWAIT) \ ++ + __RTLD_MRLOCK_WRITER); \ ++ int ret = atomic_compare_and_exchange_val_acq (&(lock.iv), \ ++ newval, \ ++ oldval); \ ++ if (__builtin_expect (ret == oldval, 1)) \ ++ goto out; \ ++ oldval = ret; \ ++ } \ ++ atomic_delay (); \ ++ } \ ++ atomic_or (&(lock.iv), __RTLD_MRLOCK_WWAIT); \ ++ oldval |= __RTLD_MRLOCK_WWAIT; \ ++ lll_futex_wait (&(lock), oldval); \ ++ } \ ++ out:; \ ++ } while (0) ++ ++ ++#define __rtld_mrlock_done(lock) \ ++ do { \ ++ int oldval = atomic_exchange_and_add (&(lock.iv), -__RTLD_MRLOCK_WRITER); \ ++ if (__builtin_expect ((oldval & __RTLD_MRLOCK_RWAIT) != 0, 0)) \ ++ lll_futex_wake (&(lock), 0x7fffffff); \ ++ } while (0) ++ ++ ++#endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sa_len.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sa_len.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sa_len.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sa_len.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,44 @@ ++/* Copyright (C) 1998, 1999, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++#include ++#include ++#include ++#include ++ ++int ++__libc_sa_len (sa_family_t af) ++{ ++ switch (af) ++ { ++ case AF_APPLETALK: ++ return sizeof (struct sockaddr_at); ++ case AF_INET: ++ return sizeof (struct sockaddr_in); ++ case AF_INET6: ++ return sizeof (struct sockaddr_in6); ++ case AF_IPX: ++ return sizeof (struct sockaddr_ipx); ++ case AF_LOCAL: ++ return sizeof (struct sockaddr_un); ++ } ++ return 0; ++} ++INTDEF(__libc_sa_len) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sbrk.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sbrk.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sbrk.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sbrk.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sched_getp.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sched_getp.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sched_getp.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sched_getp.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,45 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++/* Retrieve scheduling parameters for a particular process. */ ++int ++__sched_getparam (pid_t pid, struct sched_param *param) ++{ ++ /* kFreeBSD return bogus values for SYS_sched_param (see PR kern/76485); ++ fortunately the same information can be retrieved through the rtprio() ++ system call. */ ++ struct rtprio rtp; ++ ++ if (__rtprio (RTP_LOOKUP, pid, &rtp) >= 0) ++ { ++ if (RTP_PRIO_IS_REALTIME (rtp.type)) ++ param->sched_priority = RTP_PRIO_MAX - rtp.prio; ++ else ++ param->sched_priority = 0; ++ } ++ ++ return 0; ++} ++ ++weak_alias (__sched_getparam, sched_getparam) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/seekdir.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/seekdir.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/seekdir.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/seekdir.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,2 @@ ++/* Avoid , which doesn't pass the testsuite. */ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/semctl.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/semctl.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/semctl.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/semctl.c 2007-11-21 16:53:13.000000000 +0100 +@@ -0,0 +1,87 @@ ++/* Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Robert Millan ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/*- ++ * Copyright (c) 2002 Doug Rabson ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ */ ++ ++#include ++#include ++#include /* va_list */ ++#include /* NULL */ ++#include ++ ++/* union semun from FreeBSD */ ++/* ++ * semctl's arg parameter structure ++ */ ++union semun ++{ ++ int val; /* value for SETVAL */ ++ struct semid_ds *buf; /* buffer for IPC_STAT & IPC_SET */ ++ unsigned short *array; /* array for GETALL & SETALL */ ++}; ++ ++int __syscall(int number, ...); ++ ++int ++semctl (int semid, int semnum, int cmd, ...) ++{ ++ va_list ap; ++ union semun semun; ++ union semun *semun_ptr; ++ ++ va_start (ap, cmd); ++ if (cmd == IPC_SET || cmd == IPC_STAT || cmd == GETALL ++ || cmd == SETVAL || cmd == SETALL) ++ { ++ semun = va_arg (ap, union semun); ++ semun_ptr = &semun; ++ } ++ else ++ { ++ semun_ptr = NULL; ++ } ++ va_end (ap); ++ ++ return __syscall (SYS_semctl, semid, semnum, cmd, semun_ptr); ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/send.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/send.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/send.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/send.c 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,47 @@ ++/* Copyright (C) 2001-2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++extern ssize_t __syscall_sendto (int fd, __const __ptr_t buf, ++ size_t n, int flags, ++ __CONST_SOCKADDR_ARG addr, ++ socklen_t addrlen); ++libc_hidden_proto (__syscall_sendto) ++ ++/* Send N bytes of BUF to socket FD. ++ Return the number of bytes sent or -1. */ ++ ++ssize_t ++__libc_send (int fd, const void *buf, size_t n, int flags) ++{ ++ if (SINGLE_THREAD_P) ++ return INLINE_SYSCALL (sendto, 6, fd, buf, n, flags, NULL, 0); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ int result = INLINE_SYSCALL (sendto, 6, fd, buf, n, flags, NULL, 0); ++ LIBC_CANCEL_RESET (oldtype); ++ return result; ++} ++ ++weak_alias (__libc_send, __send) ++libc_hidden_weak (__send) ++ ++weak_alias (__send, send) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sendto.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sendto.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sendto.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sendto.c 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,70 @@ ++/* Copyright (C) 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Aurelien Jarno , 2005. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++/* According to POSIX.1-2004 the len argument specifies the length of ++ the sockaddr structure pointed to by the addrarg argument. However ++ the FreeBSD kernel waits the actual length of the address stored ++ there. The code below emulate this behaviour. */ ++ ++extern int __libc_sa_len (sa_family_t __af); ++extern int __libc_sa_len_internal (sa_family_t __af); ++ ++extern ssize_t __syscall_sendto (int fd, __const void * buf, ++ size_t n, int flags, ++ __CONST_SOCKADDR_ARG addr, ++ socklen_t addrlen); ++libc_hidden_proto (__syscall_sendto) ++ ++/* Send N bytes of BUF on socket FD to peer at address ADDR (which is ++ * ADDR_LEN bytes long). Returns the number sent, or -1 for errors. */ ++ ++ ++ssize_t ++__libc_sendto (int fd, __const void * buf, size_t n, int flags, ++ __CONST_SOCKADDR_ARG addr, socklen_t addrlen) ++{ ++ socklen_t new_addrlen; ++ ++#ifndef NOT_IN_libc ++ new_addrlen = INTUSE(__libc_sa_len) ((addr.__sockaddr__)->sa_family); ++#else ++ new_addrlen = __libc_sa_len ((addr.__sockaddr__)->sa_family); ++#endif ++ ++ /* Only allow a smaller size, otherwise it could lead to ++ stack corruption */ ++ if (new_addrlen < addrlen) ++ addrlen = new_addrlen; ++ ++ /* We pass 6 arguments. */ ++ if (SINGLE_THREAD_P) ++ return INLINE_SYSCALL (sendto, 6, fd, buf, n, flags, addr, addrlen); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ int result = INLINE_SYSCALL (sendto, 6, fd, buf, n, flags, addr, addrlen); ++ LIBC_CANCEL_RESET (oldtype); ++ return result; ++} ++ ++weak_alias (__libc_sendto, __sendto) ++weak_alias (__libc_sendto, sendto) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sethostid.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sethostid.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sethostid.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sethostid.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,37 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++/* Set the current machine's Internet number to ID. ++ This call is restricted to the super-user. */ ++ ++int ++sethostid (long int id) ++{ ++ /* Set the "kern.hostid" sysctl value. */ ++ int value = id; ++ int request[2] = { CTL_KERN, KERN_HOSTID }; ++ ++ if (__sysctl (request, 2, NULL, NULL, &value, sizeof (value)) < 0) ++ return -1; ++ ++ return 0; ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sethostname.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sethostname.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sethostname.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sethostname.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,37 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++/* Set the name of the current host to NAME, which is LEN bytes long ++ (excluding a possible trailing NUL byte). This call is restricted to ++ the super-user. */ ++ ++int ++sethostname (const char *name, size_t len) ++{ ++ /* Set the "kern.hostname" sysctl value. */ ++ int request[2] = { CTL_KERN, KERN_HOSTNAME }; ++ ++ if (__sysctl (request, 2, NULL, NULL, (void *) name, len) < 0) ++ return -1; ++ ++ return 0; ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/setlogin.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/setlogin.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/setlogin.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/setlogin.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,34 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++/* Defined in getlogin_r.c. */ ++extern char *__getlogin_cache; ++ ++extern int __syscall_setlogin (const char *__name); ++ ++int ++setlogin (const char *name) ++{ ++ /* FIXME: Not multithread-safe. */ ++ __getlogin_cache = NULL; ++ return INLINE_SYSCALL (setlogin, 1, name); ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/setrlimit64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/setrlimit64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/setrlimit64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/setrlimit64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1 @@ ++/* 'setrlimit64' is the same as 'setrlimit', because __rlim64_t == __rlim_t. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigaction.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigaction.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigaction.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigaction.c 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,47 @@ ++/* Copyright (C) 1991,1995,1996,1997,2002,2004 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __syscall_sigaction (int __sig, const struct sigaction *__act, struct sigaction *__oact) __THROW; ++libc_hidden_proto (__syscall_sigaction) ++ ++int ++__libc_sigaction (sig, act, oact) ++ int sig; ++ const struct sigaction *act; ++ struct sigaction *oact; ++{ ++ if (sig <= 0 || sig >= NSIG) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ ++ return INLINE_SYSCALL (sigaction, 3, sig, act, oact); ++} ++libc_hidden_def (__libc_sigaction) ++ ++#ifndef LIBC_SIGACTION ++weak_alias (__libc_sigaction, __sigaction) ++libc_hidden_weak (__sigaction) ++weak_alias (__libc_sigaction, sigaction) ++#endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigreturn.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigreturn.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigreturn.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigreturn.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,3 @@ ++/* The sigreturn syscall cannot be explicitly called on FreeBSD, only ++ implicitly by returning from a signal handler. */ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigset-cvt-mask.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigset-cvt-mask.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigset-cvt-mask.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigset-cvt-mask.h 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,36 @@ ++/* Convert between lowlevel sigmask and libc representation of sigset_t. ++ FreeBSD version. ++ Copyright (C) 1998, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++static inline int __attribute__ ((unused)) ++sigset_set_old_mask (sigset_t *set, int mask) ++{ ++ set->__sigbits[0] = (unsigned int) mask; ++ set->__sigbits[1] = 0; ++ set->__sigbits[2] = 0; ++ set->__sigbits[3] = 0; ++ ++ return 0; ++} ++ ++static inline int __attribute__ ((unused)) ++sigset_get_old_mask (const sigset_t *set) ++{ ++ return (unsigned int) set->__sigbits[0]; ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigstack.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigstack.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigstack.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sigstack.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,3 @@ ++/* We can reuse the Linux implementation with some tricks. */ ++#define __NR_sigaltstack 1 ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sleep.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sleep.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sleep.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sleep.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,44 @@ ++/* Implementation of the POSIX sleep function using nanosleep. ++ Copyright (C) 1996-1999, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++/* The default implementation of sleep() in sysdeps/posix/sleep.c, based on ++ SIGALRM, does not mix well with threads. Therefore we use the nanosleep() ++ system call. */ ++unsigned int ++__sleep (unsigned int seconds) ++{ ++ struct timespec ts = { tv_sec: seconds, tv_nsec: 0 }; ++ int ret; ++ ++ /* This is not necessary but some buggy programs depend on this. */ ++ if (seconds == 0) ++ return 0; ++ ++ ret = __nanosleep (&ts, &ts); ++ ++ if (ret == 0) ++ return 0; ++ ++ /* Round remaining time. */ ++ return (unsigned int) ts.tv_sec + (ts.tv_nsec >= 500000000L); ++} ++ ++weak_alias (__sleep, sleep) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/stat16conv.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/stat16conv.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/stat16conv.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/stat16conv.c 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,80 @@ ++/* Convert between different 'struct stat' formats. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++extern int __syscall_fhstat (const fhandle_t *fhp, struct stat16 *buf); ++extern int __syscall_fstat (int, struct stat16 *__unbounded); ++extern int __syscall_lstat (const char *__unbounded, struct stat16 *__unbounded); ++extern int __syscall_stat (const char *__unbounded, struct stat16 *__unbounded); ++libc_hidden_proto (__syscall_fhstat) ++libc_hidden_proto (__syscall_fstat) ++libc_hidden_proto (__syscall_lstat) ++libc_hidden_proto (__syscall_stat) ++ ++/* Convert a 'struct stat16' to 'struct stat'. */ ++static inline void ++stat16_to_stat (const struct stat16 *p16, struct stat *q) ++{ ++ q->st_dev = p16->st_dev; ++ q->st_ino = p16->st_ino; ++ q->st_mode = p16->st_mode; ++ q->st_nlink = p16->st_nlink; ++ q->st_uid = p16->st_uid; ++ q->st_gid = p16->st_gid; ++ q->st_rdev = p16->st_rdev; ++ q->st_atim = p16->st_atimespec; ++ q->st_mtim = p16->st_mtimespec; ++ q->st_ctim = p16->st_ctimespec; ++ q->st_size = p16->st_size; ++ q->st_blocks = p16->st_blocks; ++ q->st_blksize = p16->st_blksize; ++ q->st_flags = p16->st_flags; ++ q->st_gen = p16->st_gen; ++#if 0 ++ memcpy (q->__unused1, p16->__unused2, sizeof (p16->__unused2)); ++#endif ++} ++ ++/* Convert a 'struct stat16' to 'struct stat64'. */ ++static inline void ++stat16_to_stat64 (const struct stat16 *p16, struct stat64 *q) ++{ ++ q->st_dev = p16->st_dev; ++ q->st_ino = p16->st_ino; ++ q->st_mode = p16->st_mode; ++ q->st_nlink = p16->st_nlink; ++ q->st_uid = p16->st_uid; ++ q->st_gid = p16->st_gid; ++ q->st_rdev = p16->st_rdev; ++ q->st_atim = p16->st_atimespec; ++ q->st_mtim = p16->st_mtimespec; ++ q->st_ctim = p16->st_ctimespec; ++ q->st_size = p16->st_size; ++ q->st_blocks = p16->st_blocks; ++ q->st_blksize = p16->st_blksize; ++ q->st_flags = p16->st_flags; ++ q->st_gen = p16->st_gen; ++#if 0 ++ memcpy (q->__unused1, p16->__unused2, sizeof (p16->__unused2)); ++#endif ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/statconv.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/statconv.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/statconv.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/statconv.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,46 @@ ++/* Convert between different 'struct stat' formats. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++/* Convert a 'struct stat' to 'struct stat64'. */ ++static inline void ++stat_to_stat64 (const struct stat *p32, struct stat64 *p64) ++{ ++ p64->st_dev = p32->st_dev; ++ p64->st_ino = p32->st_ino; ++ p64->st_mode = p32->st_mode; ++ p64->st_nlink = p32->st_nlink; ++ p64->st_uid = p32->st_uid; ++ p64->st_gid = p32->st_gid; ++ p64->st_rdev = p32->st_rdev; ++ p64->st_atime = p32->st_atime; ++ p64->st_atimensec = p32->st_atimensec; ++ p64->st_mtime = p32->st_mtime; ++ p64->st_mtimensec = p32->st_mtimensec; ++ p64->st_ctime = p32->st_ctime; ++ p64->st_ctimensec = p32->st_ctimensec; ++ p64->st_size = p32->st_size; ++ p64->st_blocks = p32->st_blocks; ++ p64->st_blksize = p32->st_blksize; ++ p64->st_flags = p32->st_flags; ++ p64->st_gen = p32->st_gen; ++ memcpy (p64->__unused1, p32->__unused1, sizeof (p32->__unused1)); ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/statfs.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/statfs.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/statfs.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/statfs.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,40 @@ ++/* Return information about the filesystem on which FILE resides. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++#include "statfsconv.c" ++ ++/* Return information about the filesystem on which FILE resides. */ ++int ++__statfs (const char *file, struct statfs *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_statfs (file, &kbuf) < 0) ++ return -1; ++ ++ /* Convert a 'struct statfs' to 'struct statvfs'. */ ++ statfs5_to_statfs (&kbuf, buf); ++ ++ return 0; ++} ++libc_hidden_def (__statfs) ++weak_alias (__statfs, statfs) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/statfs64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/statfs64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/statfs64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/statfs64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,37 @@ ++/* Return information about the filesystem on which FILE resides. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++#include "statfsconv.c" ++ ++/* Return information about the filesystem on which FILE resides. */ ++int ++statfs64 (const char *file, struct statfs64 *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_statfs (file, &kbuf) < 0) ++ return -1; ++ ++ statfs5_to_statfs64 (&kbuf, buf); ++ ++ return 0; ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/statfsconv.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/statfsconv.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/statfsconv.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/statfsconv.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,203 @@ ++/* Convert between different 'struct statfs' and 'struct statvfs' formats. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ Contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* ++ * filesystem statistics ++ */ ++ ++#define MFSNAMELEN 16 /* length of type name including null */ ++#define MNAMELEN 88 /* size of on/from name bufs */ ++ ++struct statfs_fbsd5 { ++ uint32_t f_version; /* structure version number */ ++ uint32_t f_type; /* type of filesystem */ ++ uint64_t f_flags; /* copy of mount exported flags */ ++ uint64_t f_bsize; /* filesystem fragment size */ ++ uint64_t f_iosize; /* optimal transfer block size */ ++ uint64_t f_blocks; /* total data blocks in filesystem */ ++ uint64_t f_bfree; /* free blocks in filesystem */ ++ int64_t f_bavail; /* free blocks avail to non-superuser */ ++ uint64_t f_files; /* total file nodes in filesystem */ ++ int64_t f_ffree; /* free nodes avail to non-superuser */ ++ uint64_t f_syncwrites; /* count of sync writes since mount */ ++ uint64_t f_asyncwrites; /* count of async writes since mount */ ++ uint64_t f_syncreads; /* count of sync reads since mount */ ++ uint64_t f_asyncreads; /* count of async reads since mount */ ++ uint64_t f_spare[10]; /* unused spare */ ++ uint32_t f_namemax; /* maximum filename length */ ++ __uid_t f_owner; /* user that mounted the filesystem */ ++ __fsid_t f_fsid; /* filesystem id */ ++ char f_charspare[80]; /* spare string space */ ++ char f_fstypename[MFSNAMELEN]; /* filesystem type name */ ++ char f_mntfromname[MNAMELEN]; /* mounted filesystem */ ++ char f_mntonname[MNAMELEN]; /* directory on which mounted */ ++}; ++ ++extern int __syscall_getfsstat(struct statfs_fbsd5 *buf, long bufsize, int flags); ++extern int __syscall_statfs(const char *path, struct statfs_fbsd5 *buf); ++extern int __syscall_fstatfs(int fd, struct statfs_fbsd5 *buf); ++extern int __syscall_fhstatfs(const struct fhandle *u_fhp, struct statfs_fbsd5 *buf); ++ ++ ++/* ++ * Convert a FreeBSD 5.x format statfs structure to an glibc format statfs structure. ++ */ ++ ++static inline void ++statfs5_to_statfs(const struct statfs_fbsd5 *pk, struct statfs *p32) ++{ ++ memset(p32, 0, sizeof(*p32)); ++ ++ p32->f_version = pk->f_version; ++ p32->f_bsize = MIN(pk->f_bsize, ULONG_MAX); ++ p32->f_iosize = MIN(pk->f_iosize, ULONG_MAX); ++ ++ p32->f_blocks = MIN(pk->f_blocks, ULONG_MAX); ++ p32->f_bfree = MIN(pk->f_bfree, ULONG_MAX); ++ p32->f_bavail = MIN(pk->f_bavail, ULONG_MAX); ++ p32->f_files = MIN(pk->f_files, ULONG_MAX); ++ p32->f_ffree = MIN(pk->f_ffree, ULONG_MAX); ++ ++ p32->f_fsid = pk->f_fsid; ++ p32->f_owner = pk->f_owner; ++ p32->f_type = pk->f_type; ++ p32->f_flags = pk->f_flags; ++ ++ p32->f_syncwrites = MIN(pk->f_syncwrites, ULONG_MAX); ++ p32->f_asyncwrites = MIN(pk->f_asyncwrites, ULONG_MAX); ++ p32->f_syncreads = MIN(pk->f_syncreads, ULONG_MAX); ++ p32->f_asyncreads = MIN(pk->f_asyncreads, ULONG_MAX); ++ ++ p32->f_namemax = MIN(pk->f_namemax, USHRT_MAX); ++ ++ memcpy(p32->f_fstypename, pk->f_fstypename, sizeof (p32->f_fstypename)); ++ memcpy(p32->f_mntonname, pk->f_mntonname, sizeof (p32->f_mntonname)); ++ memcpy(p32->f_mntfromname,pk->f_mntfromname,sizeof (p32->f_mntfromname)); ++} ++ ++ ++/* ++ * Convert a FreeBSD 5.x format statfs structure to an glibc format statfs64 structure. ++ */ ++ ++static inline void ++statfs5_to_statfs64(const struct statfs_fbsd5 *pk, struct statfs64 *p64) ++{ ++ memset(p64, 0, sizeof(*p64)); ++ ++ p64->f_version = pk->f_version; ++ p64->f_bsize = MIN(pk->f_bsize, ULONG_MAX); ++ p64->f_iosize = MIN(pk->f_iosize, ULONG_MAX); ++ ++ p64->f_blocks = pk->f_blocks; ++ p64->f_bfree = pk->f_bfree; ++ p64->f_bavail = pk->f_bavail; ++ p64->f_files = pk->f_files; ++ p64->f_ffree = pk->f_ffree; ++ ++ p64->f_fsid = pk->f_fsid; ++ p64->f_owner = pk->f_owner; ++ p64->f_type = pk->f_type; ++ p64->f_flags = pk->f_flags; ++ ++ p64->f_syncwrites = MIN(pk->f_syncwrites, ULONG_MAX); ++ p64->f_asyncwrites = MIN(pk->f_asyncwrites, ULONG_MAX); ++ p64->f_syncreads = MIN(pk->f_syncreads, ULONG_MAX); ++ p64->f_asyncreads = MIN(pk->f_asyncreads, ULONG_MAX); ++ ++ p64->f_namemax = MIN(pk->f_namemax, USHRT_MAX); ++ ++ memcpy(p64->f_fstypename, pk->f_fstypename, sizeof (p64->f_fstypename)); ++ memcpy(p64->f_mntonname, pk->f_mntonname, sizeof (p64->f_mntonname)); ++ memcpy(p64->f_mntfromname,pk->f_mntfromname,sizeof (p64->f_mntfromname)); ++} ++ ++ ++/* ++ * Convert a FreeBSD 5.x format statfs structure to an glibc format statvfs structure. ++ */ ++ ++static inline void ++statfs5_to_statvfs (const struct statfs_fbsd5 *pk, struct statvfs *p32) ++{ ++ /* FIXME: What is the difference between f_bsize and f_frsize ? */ ++ p32->f_bsize = MIN(pk->f_bsize, ULONG_MAX); ++ p32->f_frsize = MIN(pk->f_bsize, ULONG_MAX); ++ ++ p32->f_blocks = MIN(pk->f_blocks, ULONG_MAX); ++ p32->f_bfree = MIN(pk->f_bfree, ULONG_MAX); ++ p32->f_bavail = MIN(pk->f_bavail, ULONG_MAX); ++ p32->f_files = MIN(pk->f_files, ULONG_MAX); ++ p32->f_ffree = MIN(pk->f_ffree, ULONG_MAX); ++ p32->f_favail = MIN(pk->f_ffree, ULONG_MAX); /* Hmm. May be filesystem dependent. */ ++ ++ memcpy(&(p32->f_fsid), &(pk->f_fsid), sizeof(__fsid_t)); ++ ++ p32->f_flag = ++ (pk->f_flags & MNT_RDONLY ? ST_RDONLY : 0) ++ | (pk->f_flags & MNT_NOSUID ? ST_NOSUID : 0) ++ | (pk->f_flags & MNT_NODEV ? ST_NODEV : 0) ++ | (pk->f_flags & MNT_NOEXEC ? ST_NOEXEC : 0) ++ | (pk->f_flags & MNT_SYNCHRONOUS ? ST_SYNCHRONOUS : 0); ++ p32->f_namemax = pk->f_namemax; ++ ++ memset (p32->f_spare, '\0', sizeof (p32->f_spare)); ++} ++ ++ ++/* ++ * Convert a FreeBSD 5.x format statfs structure to an glibc format statvfs64 structure. ++ */ ++ ++static inline void ++statfs5_to_statvfs64 (const struct statfs_fbsd5 *pk, struct statvfs64 *p64) ++{ ++ /* FIXME: What is the difference between f_bsize and f_frsize ? */ ++ p64->f_bsize = MIN(pk->f_bsize, ULONG_MAX); ++ p64->f_frsize = MIN(pk->f_bsize, ULONG_MAX); ++ ++ p64->f_blocks = pk->f_blocks; ++ p64->f_bfree = pk->f_bfree; ++ p64->f_bavail = pk->f_bavail; ++ p64->f_files = pk->f_files; ++ p64->f_ffree = pk->f_ffree; ++ p64->f_favail = pk->f_ffree; /* Hmm. May be filesystem dependent. */ ++ ++ memcpy(&(p64->f_fsid), &(pk->f_fsid), sizeof(__fsid_t)); ++ ++ p64->f_flag = ++ (pk->f_flags & MNT_RDONLY ? ST_RDONLY : 0) ++ | (pk->f_flags & MNT_NOSUID ? ST_NOSUID : 0) ++ | (pk->f_flags & MNT_NODEV ? ST_NODEV : 0) ++ | (pk->f_flags & MNT_NOEXEC ? ST_NOEXEC : 0) ++ | (pk->f_flags & MNT_SYNCHRONOUS ? ST_SYNCHRONOUS : 0); ++ p64->f_namemax = pk->f_namemax; ++ ++ memset (p64->f_spare, '\0', sizeof (p64->f_spare)); ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/statvfs.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/statvfs.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/statvfs.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/statvfs.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,40 @@ ++/* Return information about the filesystem on which FILE resides. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++#include "statfsconv.c" ++ ++/* Return information about the filesystem on which FILE resides. */ ++int ++statvfs (const char *file, struct statvfs *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_statfs (file, &kbuf) < 0) ++ return -1; ++ ++ /* Convert a 'struct statfs' to 'struct statvfs'. */ ++ statfs5_to_statvfs (&kbuf, buf); ++ ++ return 0; ++} ++libc_hidden_weak (statvfs) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/statvfs64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/statvfs64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/statvfs64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/statvfs64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,41 @@ ++/* Return information about the filesystem on which FILE resides. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++#include "statfsconv.c" ++ ++/* Return information about the filesystem on which FILE resides. */ ++int ++__statvfs64 (const char *file, struct statvfs64 *buf) ++{ ++ struct statfs_fbsd5 kbuf; ++ ++ if (__syscall_statfs (file, &kbuf) < 0) ++ return -1; ++ ++ /* Convert a 'struct statfs' to 'struct statvfs64'. */ ++ statfs5_to_statvfs64 (&kbuf, buf); ++ ++ return 0; ++} ++ ++weak_alias (__statvfs64, statvfs64) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/stty.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/stty.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/stty.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/stty.c 2007-11-21 16:53:13.000000000 +0100 +@@ -0,0 +1,3 @@ ++/* just use internal functions */ ++#define ioctl __ioctl ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/kd.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/kd.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/kd.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/kd.h 2007-07-29 16:06:15.000000000 +0200 +@@ -0,0 +1,25 @@ ++/* Copyright (C) 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_KD_H ++#define _SYS_KD_H 1 ++ ++#include ++#include ++ ++#endif /* sys/kd.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/mount.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/mount.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/mount.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/mount.h 2007-12-09 13:56:26.000000000 +0100 +@@ -0,0 +1,447 @@ ++/* Header file for handling mounted filesystems. FreeBSD version. ++ Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_MOUNT_H ++#define _SYS_MOUNT_H 1 ++ ++#include ++ ++/* Retrieving the list of mounted filesystems. */ ++ ++#include ++#include ++#include ++#include ++ ++/* ++ * File identifier. ++ * These are unique per filesystem on a single machine. ++ */ ++#define MAXFIDSZ 16 ++ ++struct fid { ++ u_short fid_len; /* length of data in bytes */ ++ u_short fid_reserved; /* force longword alignment */ ++ char fid_data[MAXFIDSZ]; /* data (variable length) */ ++}; ++ ++/* ++ * filesystem statistics ++ */ ++#define MFSNAMELEN 16 /* length of type name including null */ ++#define MNAMELEN 88 /* size of on/from name bufs */ ++#define STATFS_VERSION 0x20030518 /* current version number */ ++ ++ ++/* ++ * User specifiable flags. ++ */ ++#define MNT_RDONLY 0x00000001 /* read only filesystem */ ++#define MNT_SYNCHRONOUS 0x00000002 /* filesystem written synchronously */ ++#define MNT_NOEXEC 0x00000004 /* can't exec from filesystem */ ++#define MNT_NOSUID 0x00000008 /* don't honor setuid bits on fs */ ++#define MNT_NODEV 0x00000010 /* don't interpret special files */ ++#define MNT_UNION 0x00000020 /* union with underlying filesystem */ ++#define MNT_ASYNC 0x00000040 /* filesystem written asynchronously */ ++#define MNT_SUIDDIR 0x00100000 /* special handling of SUID on dirs */ ++#define MNT_SOFTDEP 0x00200000 /* soft updates being done */ ++#define MNT_NOSYMFOLLOW 0x00400000 /* do not follow symlinks */ ++#define MNT_GJOURNAL 0x02000000 /* GEOM journal support enabled */ ++#define MNT_JAILDEVFS 0x02000000 /* jail-friendly DEVFS behaviour */ ++#define MNT_MULTILABEL 0x04000000 /* MAC support for individual objects */ ++#define MNT_ACLS 0x08000000 /* ACL support enabled */ ++#define MNT_NOATIME 0x10000000 /* disable update of file access time */ ++#define MNT_NOCLUSTERR 0x40000000 /* disable cluster read */ ++#define MNT_NOCLUSTERW 0x80000000 /* disable cluster write */ ++ ++/* ++ * NFS export related mount flags. ++ */ ++#define MNT_EXRDONLY 0x00000080 /* exported read only */ ++#define MNT_EXPORTED 0x00000100 /* filesystem is exported */ ++#define MNT_DEFEXPORTED 0x00000200 /* exported to the world */ ++#define MNT_EXPORTANON 0x00000400 /* use anon uid mapping for everyone */ ++#define MNT_EXKERB 0x00000800 /* exported with Kerberos uid mapping */ ++#define MNT_EXPUBLIC 0x20000000 /* public export (WebNFS) */ ++ ++/* ++ * Flags set by internal operations, ++ * but visible to the user. ++ * XXX some of these are not quite right.. (I've never seen the root flag set) ++ */ ++#define MNT_LOCAL 0x00001000 /* filesystem is stored locally */ ++#define MNT_QUOTA 0x00002000 /* quotas are enabled on filesystem */ ++#define MNT_ROOTFS 0x00004000 /* identifies the root filesystem */ ++#define MNT_USER 0x00008000 /* mounted by a user */ ++#define MNT_IGNORE 0x00800000 /* do not show entry in df */ ++ ++/* ++ * Mask of flags that are visible to statfs(). ++ * XXX I think that this could now become (~(MNT_CMDFLAGS)) ++ * but the 'mount' program may need changing to handle this. ++ */ ++#define MNT_VISFLAGMASK (MNT_RDONLY | MNT_SYNCHRONOUS | MNT_NOEXEC | \ ++ MNT_NOSUID | MNT_NODEV | MNT_UNION | \ ++ MNT_ASYNC | MNT_EXRDONLY | MNT_EXPORTED | \ ++ MNT_DEFEXPORTED | MNT_EXPORTANON| MNT_EXKERB | \ ++ MNT_LOCAL | MNT_USER | MNT_QUOTA | \ ++ MNT_ROOTFS | MNT_NOATIME | MNT_NOCLUSTERR| \ ++ MNT_NOCLUSTERW | MNT_SUIDDIR | MNT_SOFTDEP | \ ++ MNT_IGNORE | MNT_EXPUBLIC | MNT_NOSYMFOLLOW | \ ++ MNT_JAILDEVFS | MNT_MULTILABEL | MNT_ACLS) ++ ++/* Mask of flags that can be updated. */ ++#define MNT_UPDATEMASK (MNT_NOSUID | MNT_NOEXEC | MNT_NODEV | \ ++ MNT_SYNCHRONOUS | MNT_UNION | MNT_ASYNC | \ ++ MNT_NOATIME | \ ++ MNT_NOSYMFOLLOW | MNT_IGNORE | MNT_JAILDEVFS | \ ++ MNT_NOCLUSTERR | MNT_NOCLUSTERW | MNT_SUIDDIR | \ ++ MNT_ACLS | MNT_USER) ++ ++/* ++ * External filesystem command modifier flags. ++ * Unmount can use the MNT_FORCE flag. ++ * XXX These are not STATES and really should be somewhere else. ++ */ ++#define MNT_UPDATE 0x00010000 /* not a real mount, just an update */ ++#define MNT_DELEXPORT 0x00020000 /* delete export host lists */ ++#define MNT_RELOAD 0x00040000 /* reload filesystem data */ ++#define MNT_FORCE 0x00080000 /* force unmount or readonly change */ ++#define MNT_SNAPSHOT 0x01000000 /* snapshot the filesystem */ ++#define MNT_BYFSID 0x08000000 /* specify filesystem by ID. */ ++#define MNT_CMDFLAGS (MNT_UPDATE | MNT_DELEXPORT | MNT_RELOAD | \ ++ MNT_FORCE | MNT_SNAPSHOT | MNT_BYFSID) ++/* ++ * Internal filesystem control flags stored in mnt_kern_flag. ++ * ++ * MNTK_UNMOUNT locks the mount entry so that name lookup cannot proceed ++ * past the mount point. This keeps the subtree stable during mounts ++ * and unmounts. ++ * ++ * MNTK_UNMOUNTF permits filesystems to detect a forced unmount while ++ * dounmount() is still waiting to lock the mountpoint. This allows ++ * the filesystem to cancel operations that might otherwise deadlock ++ * with the unmount attempt (used by NFS). ++ */ ++#define MNTK_UNMOUNTF 0x00000001 /* forced unmount in progress */ ++#define MNTK_ASYNC 0x00000002 /* filtered async flag */ ++#define MNTK_SOFTDEP 0x00000004 /* async disabled by softdep */ ++#define MNTK_NOINSMNTQ 0x00000008 /* insmntque is not allowed */ ++#define MNTK_UNMOUNT 0x01000000 /* unmount in progress */ ++#define MNTK_MWAIT 0x02000000 /* waiting for unmount to finish */ ++#define MNTK_WANTRDWR 0x04000000 /* upgrade to read/write requested */ ++#define MNTK_SUSPEND2 0x04000000 /* block secondary writes */ ++#define MNTK_SUSPEND 0x08000000 /* request write suspension */ ++#define MNTK_SUSPENDED 0x10000000 /* write operations are suspended */ ++#define MNTK_MPSAFE 0x20000000 /* Filesystem is MPSAFE. */ ++#define MNTK_NOKNOTE 0x80000000 /* Don't send KNOTEs from VOP hooks */ ++#define MNTK_LOOKUP_SHARED 0x40000000 /* FS supports shared lock lookups */ ++ ++/* ++ * Sysctl CTL_VFS definitions. ++ * ++ * Second level identifier specifies which filesystem. Second level ++ * identifier VFS_VFSCONF returns information about all filesystems. ++ * Second level identifier VFS_GENERIC is non-terminal. ++ */ ++#define VFS_VFSCONF 0 /* get configured filesystems */ ++#define VFS_GENERIC 0 /* generic filesystem information */ ++/* ++ * Third level identifiers for VFS_GENERIC are given below; third ++ * level identifiers for specific filesystems are given in their ++ * mount specific header files. ++ */ ++#define VFS_MAXTYPENUM 1 /* int: highest defined filesystem type */ ++#define VFS_CONF 2 /* struct: vfsconf for filesystem given ++ as next argument */ ++ ++/* ++ * Flags for various system call interfaces. ++ * ++ * waitfor flags to vfs_sync() and getfsstat() ++ */ ++#define MNT_WAIT 1 /* synchronously wait for I/O to complete */ ++#define MNT_NOWAIT 2 /* start all I/O, but do not wait for it */ ++#define MNT_LAZY 3 /* push data not written by filesystem syncer */ ++ ++/* ++ * Generic file handle ++ */ ++struct fhandle { ++ fsid_t fh_fsid; /* Filesystem id of mount point */ ++ struct fid fh_fid; /* Filesys specific id */ ++}; ++typedef struct fhandle fhandle_t; ++ ++/* ++ * Export arguments for local filesystem mount calls. ++ */ ++struct export_args { ++ int ex_flags; /* export related flags */ ++ uid_t ex_root; /* mapping for root uid */ ++ struct xucred ex_anon; /* mapping for anonymous user */ ++ struct sockaddr *ex_addr; /* net address to which exported */ ++ u_char ex_addrlen; /* and the net address length */ ++ struct sockaddr *ex_mask; /* mask of valid bits in saddr */ ++ u_char ex_masklen; /* and the smask length */ ++ char *ex_indexfile; /* index file for WebNFS URLs */ ++}; ++ ++/* ++ * Structure holding information for a publicly exported filesystem ++ * (WebNFS). Currently the specs allow just for one such filesystem. ++ */ ++struct nfs_public { ++ int np_valid; /* Do we hold valid information */ ++ fhandle_t np_handle; /* Filehandle for pub fs (internal) */ ++ struct mount *np_mount; /* Mountpoint of exported fs */ ++ char *np_index; /* Index file */ ++}; ++ ++/* ++ * Filesystem configuration information. One of these exists for each ++ * type of filesystem supported by the kernel. These are searched at ++ * mount time to identify the requested filesystem. ++ * ++ * XXX: Never change the first two arguments! ++ */ ++struct vfsconf { ++ u_int vfc_version; /* ABI version number */ ++ char vfc_name[MFSNAMELEN]; /* filesystem type name */ ++ struct vfsops *vfc_vfsops; /* filesystem operations vector */ ++ int vfc_typenum; /* historic filesystem type number */ ++ int vfc_refcount; /* number mounted of this type */ ++ int vfc_flags; /* permanent flags */ ++ struct vfsoptdecl *vfc_opts; /* mount options */ ++ TAILQ_ENTRY(vfsconf) vfc_list; /* list of vfscons */ ++}; ++ ++/* Userland version of the struct vfsconf. */ ++struct xvfsconf { ++ struct vfsops *vfc_vfsops; /* filesystem operations vector */ ++ char vfc_name[MFSNAMELEN]; /* filesystem type name */ ++ int vfc_typenum; /* historic filesystem type number */ ++ int vfc_refcount; /* number mounted of this type */ ++ int vfc_flags; /* permanent flags */ ++ struct vfsconf *vfc_next; /* next in list */ ++}; ++ ++#ifndef BURN_BRIDGES ++struct ovfsconf { ++ void *vfc_vfsops; ++ char vfc_name[32]; ++ int vfc_index; ++ int vfc_refcount; ++ int vfc_flags; ++}; ++#endif ++ ++/* ++ * NB: these flags refer to IMPLEMENTATION properties, not properties of ++ * any actual mounts; i.e., it does not make sense to change the flags. ++ */ ++#define VFCF_STATIC 0x00010000 /* statically compiled into kernel */ ++#define VFCF_NETWORK 0x00020000 /* may get data over the network */ ++#define VFCF_READONLY 0x00040000 /* writes are not implemented */ ++#define VFCF_SYNTHETIC 0x00080000 /* data does not represent real files */ ++#define VFCF_LOOPBACK 0x00100000 /* aliases some other mounted FS */ ++#define VFCF_UNICODE 0x00200000 /* stores file names as Unicode*/ ++#define VFCF_JAIL 0x00400000 /* can be mounted from within a jail */ ++ ++typedef uint32_t fsctlop_t; ++ ++struct vfsidctl { ++ int vc_vers; /* should be VFSIDCTL_VERS1 (below) */ ++ fsid_t vc_fsid; /* fsid to operate on. */ ++ char vc_fstypename[MFSNAMELEN]; ++ /* type of fs 'nfs' or '*' */ ++ fsctlop_t vc_op; /* operation VFS_CTL_* (below) */ ++ void *vc_ptr; /* pointer to data structure. */ ++ size_t vc_len; /* sizeof said structure. */ ++ u_int32_t vc_spare[12]; /* spare (must be zero). */ ++}; ++ ++/* vfsidctl API version. */ ++#define VFS_CTL_VERS1 0x01 ++ ++/* ++ * New style VFS sysctls, do not reuse/conflict with the namespace for ++ * private sysctls. ++ * All "global" sysctl ops have the 33rd bit set: ++ * 0x...1.... ++ * Private sysctl ops should have the 33rd bit unset. ++ */ ++#define VFS_CTL_QUERY 0x00010001 /* anything wrong? (vfsquery) */ ++#define VFS_CTL_TIMEO 0x00010002 /* set timeout for vfs notification */ ++#define VFS_CTL_NOLOCKS 0x00010003 /* disable file locking */ ++ ++struct vfsquery { ++ u_int32_t vq_flags; ++ u_int32_t vq_spare[31]; ++}; ++ ++/* vfsquery flags */ ++#define VQ_NOTRESP 0x0001 /* server down */ ++#define VQ_NEEDAUTH 0x0002 /* server bad auth */ ++#define VQ_LOWDISK 0x0004 /* we're low on space */ ++#define VQ_MOUNT 0x0008 /* new filesystem arrived */ ++#define VQ_UNMOUNT 0x0010 /* filesystem has left */ ++#define VQ_DEAD 0x0020 /* filesystem is dead, needs force unmount */ ++#define VQ_ASSIST 0x0040 /* filesystem needs assistance from external ++ program */ ++#define VQ_NOTRESPLOCK 0x0080 /* server lockd down */ ++#define VQ_FLAG0100 0x0100 /* placeholder */ ++#define VQ_FLAG0200 0x0200 /* placeholder */ ++#define VQ_FLAG0400 0x0400 /* placeholder */ ++#define VQ_FLAG0800 0x0800 /* placeholder */ ++#define VQ_FLAG1000 0x1000 /* placeholder */ ++#define VQ_FLAG2000 0x2000 /* placeholder */ ++#define VQ_FLAG4000 0x4000 /* placeholder */ ++#define VQ_FLAG8000 0x8000 /* placeholder */ ++ ++ ++struct iovec; ++struct uio; ++ ++ ++#include ++ ++struct stat; ++ ++__BEGIN_DECLS ++ ++/* Mounting and unmounting filesystems. */ ++int fhopen(const struct fhandle *, int); ++int fhstat(const struct fhandle *, struct stat *); ++int fhstatfs(const struct fhandle *, struct statfs *); ++int fstatfs(int, struct statfs *); ++int getfh(const char *, fhandle_t *); ++int getfsstat(struct statfs *, long, int); ++int getmntinfo(struct statfs **, int); ++int lgetfh(const char *, fhandle_t *); ++int mount(const char *, const char *, int, void *); ++int nmount(struct iovec *, unsigned int, int); ++int statfs(const char *, struct statfs *); ++int unmount(const char *, int); ++ ++/* C library stuff */ ++int getvfsbyname(const char *, struct xvfsconf *); ++ ++/* getfsstat() appears in BSD 4.4. A variant of this API is found on OSF/1, ++ but on that system the user also needs to include . */ ++ ++#ifndef __USE_FILE_OFFSET64 ++extern int getfsstat (struct statfs *__buf, long __bufsize, ++ int __flags) __THROW; ++#else ++# ifdef __REDIRECT ++extern int __REDIRECT (getfsstat, ++ (struct statfs *__buf, long __bufsize, int __flags), ++ getfsstat64); ++# else ++# define getfsstat getfsstat64 ++# endif ++#endif ++#ifdef __USE_LARGEFILE64 ++extern int getfsstat64 (struct statfs64 *__buf, long __bufsize, ++ int __flags) __THROW; ++#endif ++ ++#ifdef _LIBC ++extern int __getfsstat (struct statfs *__buf, long __bufsize, int __flags); ++extern int __getfsstat64 (struct statfs64 *__buf, long __bufsize, int __flags); ++#endif ++ ++/* getmntinfo() appears in BSD 4.4. */ ++ ++#ifndef __USE_FILE_OFFSET64 ++extern int getmntinfo (struct statfs **__mntbufp, int __flags) __THROW; ++#else ++# ifdef __REDIRECT ++extern int __REDIRECT (getmntinfo, ++ (struct statfs **__mntbufp, int __flags), ++ getmntinfo64); ++# else ++# define getmntinfo getmntinfo64 ++# endif ++#endif ++#ifdef __USE_LARGEFILE64 ++extern int getmntinfo64 (struct statfs64 **__mntbufp, int __flags) __THROW; ++#endif ++ ++#ifdef _LIBC ++extern int __getmntinfo (struct statfs **__mntbufp, int __flags); ++#endif ++ ++__END_DECLS ++ ++ ++/* Opening files on specified mounted filesystems. ++ These system calls are reserved to the superuser, for security reasons. */ ++ ++#include ++ ++__BEGIN_DECLS ++ ++/* Return in *FHP the file handle corresponding to the file or directory ++ PATH. */ ++extern int getfh (__const char *__path, fhandle_t *__fhp) __THROW; ++ ++/* Open a file handle *FHP, using the open() like FLAGS. Return the ++ new file descriptor. */ ++extern int fhopen (__const fhandle_t *__fhp, int __flags) __THROW; ++ ++/* Get file attributes for the file whose handle is *FHP, and return them ++ in *BUF. Like fhopen + fstat + close. */ ++#ifndef __USE_FILE_OFFSET64 ++extern int fhstat (__const fhandle_t *__fhp, struct stat *__buf) __THROW; ++#else ++# ifdef __REDIRECT ++extern int __REDIRECT (fhstat, ++ (__const fhandle_t *__fhp, struct stat *__buf), ++ fhstat64); ++# else ++# define fhstat fhstat64 ++# endif ++#endif ++#ifdef __USE_LARGEFILE64 ++extern int fhstat64 (__const fhandle_t *__fhp, struct stat64 *__buf) __THROW; ++#endif ++ ++/* Return information about the filesystem on which the file resides whose ++ handle is *FHP. Like fhopen + fstatfs + close. */ ++#ifndef __USE_FILE_OFFSET64 ++extern int fhstatfs (__const fhandle_t *__fhp, struct statfs *__buf) __THROW; ++#else ++# ifdef __REDIRECT ++extern int __REDIRECT (fhstatfs, ++ (__const fhandle_t *__fhp, struct statfs *__buf), ++ fhstatfs64); ++# else ++# define fhstatfs fhstatfs64 ++# endif ++#endif ++#ifdef __USE_LARGEFILE64 ++extern int fhstatfs64 (__const fhandle_t *__fhp, ++ struct statfs64 *__buf) __THROW; ++#endif ++ ++__END_DECLS ++ ++#endif /* _SYS_MOUNT_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/param.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/param.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/param.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/param.h 2007-07-29 16:06:15.000000000 +0200 +@@ -0,0 +1,237 @@ ++/* Copyright (C) 1995,1996,1997,2000,2001,2003 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_PARAM_H ++#define _SYS_PARAM_H 1 ++ ++#include ++#include ++ ++#ifndef NULL ++#define NULL 0 ++#endif ++ ++/* ++ * __FreeBSD_version numbers are documented in the Porter's Handbook. ++ * If you bump the version for any reason, you should update the documentation ++ * there. ++ * Currently this lives here: ++ * ++ * doc/en_US.ISO8859-1/books/porters-handbook/book.sgml ++ * ++ * scheme is: <0 if release branch, otherwise 1>xx ++ */ ++#include ++ ++/* Some inet code expects that this file defines the 'u_int32_t' type. */ ++#include ++ ++/* ++ * Machine-independent constants (some used in following include files). ++ * Redefined constants are from POSIX 1003.1 limits file. ++ * ++ * MAXCOMLEN should be >= sizeof(ac_comm) (see ) ++ * MAXLOGNAME should be == UT_NAMESIZE+1 (see ) ++ */ ++ ++#define MAXCOMLEN 19 /* max command name remembered */ ++#define MAXINTERP 32 /* max interpreter file name length */ ++#define MAXLOGNAME 17 /* max login name length (incl. NUL) */ ++#define MAXUPRC CHILD_MAX /* max simultaneous processes */ ++#define NCARGS ARG_MAX /* max bytes for an exec function */ ++#define NGROUPS NGROUPS_MAX /* max number groups */ ++#define NOGROUP 65535 /* marker for empty group set member */ ++#define MAXHOSTNAMELEN 256 /* max hostname size */ ++#define SPECNAMELEN 63 /* max length of devicename */ ++#define TTY_NAME_MAX SPECNAMELEN ++ ++/* BSD names for some values. */ ++ ++#define NBBY CHAR_BIT ++#ifndef NGROUPS ++# define NGROUPS NGROUPS_MAX ++#endif ++#define MAXSYMLINKS 32 ++#define CANBSIZ MAX_CANON ++#define NCARGS ARG_MAX ++#define MAXPATHLEN PATH_MAX ++ ++/* The following is not really correct but it is a value we used for a ++ long time and which seems to be usable. People should not use NOFILE ++ anyway. */ ++#define NOFILE OPEN_MAX ++ ++/* Bit map related macros. */ ++#define setbit(a,i) ((a)[(i)/NBBY] |= 1<<((i)%NBBY)) ++#define clrbit(a,i) ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY))) ++#define isset(a,i) ((a)[(i)/NBBY] & (1<<((i)%NBBY))) ++#define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0) ++ ++/* Macros for counting and rounding. */ ++#ifndef howmany ++# define howmany(x, y) (((x) + ((y) - 1)) / (y)) ++#endif ++#ifdef __GNUC__ ++# define roundup(x, y) (__builtin_constant_p (y) && powerof2 (y) \ ++ ? (((x) + (y) - 1) & ~((y) - 1)) \ ++ : ((((x) + ((y) - 1)) / (y)) * (y))) ++#else ++# define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y)) ++#endif ++#define powerof2(x) ((((x) - 1) & (x)) == 0) ++ ++/* Macros for min/max. */ ++#define MIN(a,b) (((a)<(b))?(a):(b)) ++#define MAX(a,b) (((a)>(b))?(a):(b)) ++ ++/* Machine type dependent parameters. */ ++#include ++ ++#ifndef DEV_BSHIFT ++#define DEV_BSHIFT 9 /* log2(DEV_BSIZE) */ ++#endif ++#define DEV_BSIZE (1<>PAGE_SHIFT) ++#endif ++ ++/* ++ * btodb() is messy and perhaps slow because `bytes' may be an off_t. We ++ * want to shift an unsigned type to avoid sign extension and we don't ++ * want to widen `bytes' unnecessarily. Assume that the result fits in ++ * a daddr_t. ++ */ ++#ifndef btodb ++#define btodb(bytes) /* calculates (bytes / DEV_BSIZE) */ \ ++ (sizeof (bytes) > sizeof(long) \ ++ ? (daddr_t)((unsigned long long)(bytes) >> DEV_BSHIFT) \ ++ : (daddr_t)((unsigned long)(bytes) >> DEV_BSHIFT)) ++#endif ++ ++#ifndef dbtob ++#define dbtob(db) /* calculates (db * DEV_BSIZE) */ \ ++ ((off_t)(db) << DEV_BSHIFT) ++#endif ++ ++#endif /* _NO_NAMESPACE_POLLUTION */ ++ ++#define PRIMASK 0x0ff ++#define PCATCH 0x100 /* OR'd with pri for tsleep to check signals */ ++#define PDROP 0x200 /* OR'd with pri to stop re-entry of interlock mutex */ ++ ++#define NBPW sizeof(int) /* number of bytes per word (integer) */ ++ ++#define CMASK 022 /* default file mask: S_IWGRP|S_IWOTH */ ++ ++#define NODEV (dev_t)(-1) /* non-existent device */ ++ ++#define CBLOCK 128 /* Clist block size, must be a power of 2. */ ++#define CBQSIZE (CBLOCK/NBBY) /* Quote bytes/cblock - can do better. */ ++ /* Data chars/clist. */ ++#define CBSIZE (CBLOCK - sizeof(struct cblock *) - CBQSIZE) ++#define CROUND (CBLOCK - 1) /* Clist rounding. */ ++ ++/* ++ * File system parameters and macros. ++ * ++ * MAXBSIZE - Filesystems are made out of blocks of at most MAXBSIZE bytes ++ * per block. MAXBSIZE may be made larger without effecting ++ * any existing filesystems as long as it does not exceed MAXPHYS, ++ * and may be made smaller at the risk of not being able to use ++ * filesystems which require a block size exceeding MAXBSIZE. ++ * ++ * BKVASIZE - Nominal buffer space per buffer, in bytes. BKVASIZE is the ++ * minimum KVM memory reservation the kernel is willing to make. ++ * Filesystems can of course request smaller chunks. Actual ++ * backing memory uses a chunk size of a page (PAGE_SIZE). ++ * ++ * If you make BKVASIZE too small you risk seriously fragmenting ++ * the buffer KVM map which may slow things down a bit. If you ++ * make it too big the kernel will not be able to optimally use ++ * the KVM memory reserved for the buffer cache and will wind ++ * up with too-few buffers. ++ * ++ * The default is 16384, roughly 2x the block size used by a ++ * normal UFS filesystem. ++ */ ++#define MAXBSIZE 65536 /* must be power of 2 */ ++#define BKVASIZE 16384 /* must be power of 2 */ ++#define BKVAMASK (BKVASIZE-1) ++ ++/* ++ * Scale factor for scaled integers used to count %cpu time and load avgs. ++ * ++ * The number of CPU `tick's that map to a unique `%age' can be expressed ++ * by the formula (1 / (2 ^ (FSHIFT - 11))). The maximum load average that ++ * can be calculated (assuming 32 bits) can be closely approximated using ++ * the formula (2 ^ (2 * (16 - FSHIFT))) for (FSHIFT < 15). ++ * ++ * For the scheduler to maintain a 1:1 mapping of CPU `tick' to `%age', ++ * FSHIFT must be at least 11; this gives us a maximum load avg of ~1024. ++ */ ++#define FSHIFT 11 /* bits to right of fixed binary point */ ++#define FSCALE (1<> (PAGE_SHIFT - DEV_BSHIFT)) ++ ++#define ctodb(db) /* calculates pages to devblks */ \ ++ ((db) << (PAGE_SHIFT - DEV_BSHIFT)) ++ ++#endif /* _SYS_PARAM_H_ */ ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/ptrace.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/ptrace.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/ptrace.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/ptrace.h 2007-07-29 16:06:15.000000000 +0200 +@@ -0,0 +1,132 @@ ++/* `ptrace' debugger support interface. FreeBSD version. ++ Copyright (C) 1996-1999, 2000, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_PTRACE_H ++#define _SYS_PTRACE_H 1 ++ ++#include ++ ++__BEGIN_DECLS ++ ++/* Type of the REQUEST argument to `ptrace.' */ ++enum __ptrace_request ++{ ++ /* Indicate that the process making this request should be traced. ++ All signals received by this process can be intercepted by its ++ parent, and its parent can use the other `ptrace' requests. */ ++ PTRACE_TRACEME = 0, ++#define PT_TRACE_ME PTRACE_TRACEME ++ ++ /* Return the word in the process's text space at address ADDR. */ ++ PTRACE_PEEKTEXT = 1, ++#define PT_READ_I PTRACE_PEEKTEXT ++ ++ /* Return the word in the process's data space at address ADDR. */ ++ PTRACE_PEEKDATA = 2, ++#define PT_READ_D PTRACE_PEEKDATA ++ ++#if 1 /* NB: removed in FreeBSD 4.6 */ ++ /* Return the word in the process's user area at offset ADDR. */ ++ PTRACE_PEEKUSER = 3, ++#define PT_READ_U PTRACE_PEEKUSER ++#endif ++ ++ /* Write the word DATA into the process's text space at address ADDR. */ ++ PTRACE_POKETEXT = 4, ++#define PT_WRITE_I PTRACE_POKETEXT ++ ++ /* Write the word DATA into the process's data space at address ADDR. */ ++ PTRACE_POKEDATA = 5, ++#define PT_WRITE_D PTRACE_POKEDATA ++ ++#if 1 /* NB: removed in FreeBSD 4.6 */ ++ /* Write the word DATA into the process's user area at offset ADDR. */ ++ PTRACE_POKEUSER = 6, ++#define PT_WRITE_U PTRACE_POKEUSER ++#endif ++ ++ /* Continue the process. */ ++ PTRACE_CONT = 7, ++#define PT_CONTINUE PTRACE_CONT ++ ++ /* Kill the process. */ ++ PTRACE_KILL = 8, ++#define PT_KILL PTRACE_KILL ++ ++ /* Single step the process. ++ This is not supported on all machines. */ ++ PTRACE_SINGLESTEP = 9, ++#define PT_STEP PTRACE_SINGLESTEP ++ ++ /* Attach to a process that is already running. */ ++ PTRACE_ATTACH = 10, ++#define PT_ATTACH PTRACE_ATTACH ++ ++ /* Detach from a process attached to with PTRACE_ATTACH. */ ++ PTRACE_DETACH = 11, ++#define PT_DETACH PTRACE_DETACH ++ ++ /* CPU specific requests start here. */ ++ __PTRACE_FIRSTMACH = 32, ++ ++ /* Get all general purpose registers used by a processes. ++ This is not supported on all machines. */ ++ PTRACE_GETREGS, ++#define PT_GETREGS PTRACE_GETREGS ++ ++ /* Set all general purpose registers used by a processes. ++ This is not supported on all machines. */ ++ PTRACE_SETREGS, ++#define PT_SETREGS PTRACE_SETREGS ++ ++ /* Get all floating point registers used by a processes. ++ This is not supported on all machines. */ ++ PTRACE_GETFPREGS, ++#define PT_GETFPREGS PTRACE_GETFPREGS ++ ++ /* Set all floating point registers used by a processes. ++ This is not supported on all machines. */ ++ PTRACE_SETFPREGS, ++#define PT_SETFPREGS PTRACE_SETFPREGS ++ ++ /* Get all debug registers used by a processes. ++ This is not supported on all machines. */ ++ PTRACE_GETDBREGS, ++#define PT_GETDBREGS PTRACE_GETDBREGS ++ ++ /* Set all debug registers used by a processes. ++ This is not supported on all machines. */ ++ PTRACE_SETDBREGS ++#define PT_SETDBREGS PTRACE_SETDBREGS ++}; ++ ++/* Perform process tracing functions. REQUEST is one of the values ++ above, and determines the action to be taken. ++ For all requests except PTRACE_TRACEME, PID specifies the process to be ++ traced. ++ ++ PID and the other arguments described above for the various requests should ++ appear (those that are used for the particular request) as: ++ pid_t PID, void *ADDR, int DATA, void *ADDR2 ++ after REQUEST. */ ++extern int ptrace (enum __ptrace_request __request, ...) __THROW; ++ ++__END_DECLS ++ ++#endif /* _SYS_PTRACE_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/rfork.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/rfork.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/rfork.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/rfork.h 2007-07-29 16:06:15.000000000 +0200 +@@ -0,0 +1,91 @@ ++/* Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* ++ * Copyright (c) 1989, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)unistd.h 8.2 (Berkeley) 1/7/94 ++ * $FreeBSD: src/sys/sys/unistd.h,v 1.22.2.1 2000/03/18 23:20:12 jasone Exp $ ++ */ ++ ++#ifndef _SYS_RFORK_H ++#define _SYS_RFORK_H ++ ++#include ++ ++/* ++ * rfork() options. ++ * ++ * XXX currently, operations without RFPROC set are not supported. ++ */ ++#define RFNAMEG (1<<0) /* UNIMPL new plan9 `name space' */ ++#define RFENVG (1<<1) /* UNIMPL copy plan9 `env space' */ ++#define RFFDG (1<<2) /* copy fd table */ ++#define RFNOTEG (1<<3) /* UNIMPL create new plan9 `note group' */ ++#define RFPROC (1<<4) /* change child (else changes curproc) */ ++#define RFMEM (1<<5) /* share `address space' */ ++#define RFNOWAIT (1<<6) /* parent need not wait() on child */ ++#define RFCNAMEG (1<<10) /* UNIMPL zero plan9 `name space' */ ++#define RFCENVG (1<<11) /* UNIMPL zero plan9 `env space' */ ++#define RFCFDG (1<<12) /* zero fd table */ ++#define RFTHREAD (1<<13) /* enable kernel thread support */ ++#define RFSIGSHARE (1<<14) /* share signal handlers */ ++#define RFLINUXTHPN (1<<16) /* do linux clone exit parent notification */ ++#define RFPPWAIT (1<<31) /* parent sleeps until child exits (vfork) */ ++ ++#define RFTHPNSHIFT 24 /* reserve bits 24-30 */ ++#define RFTHPNMASK 0x7F /* for compatibility with linuxthreads/clone() */ ++ /* allow to specify "clone exit parent notification" signal */ ++#define RFTHPNSIGNUM(flags) (((flags) >> RFTHPNSHIFT) & RFTHPNMASK) ++ ++__BEGIN_DECLS ++ ++extern int rfork (int __flags) __THROW; ++ ++#ifdef _LIBC ++extern int __rfork (int __flags); ++#endif ++ ++__END_DECLS ++ ++#endif /* _SYS_RFORK_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/swap.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/swap.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/swap.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/swap.h 2007-07-29 16:06:15.000000000 +0200 +@@ -0,0 +1,34 @@ ++/* Calls to enable swapping on specified locations. FreeBSD version. ++ Copyright (C) 1996-1997, 2000, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef __SYS_SWAP_H ++ ++#define __SYS_SWAP_H 1 ++#include ++ ++ ++__BEGIN_DECLS ++ ++/* Make the block special device PATH available to the system for swapping. ++ This call is restricted to the super-user. */ ++extern int swapon (__const char *__path) __THROW; ++ ++__END_DECLS ++ ++#endif /* sys/swap.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/syscall.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/syscall.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/syscall.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/syscall.h 2007-12-20 02:11:33.000000000 +0100 +@@ -0,0 +1,419 @@ ++/* Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYSCALL_H ++#define _SYSCALL_H 1 ++ ++#define SYS_syscall 0 ++#define SYS_exit 1 ++#define SYS_fork 2 ++#define SYS_read 3 ++#define SYS_write 4 ++#define SYS_open 5 ++#define SYS_close 6 ++#define SYS_wait4 7 ++ /* 8 is old creat */ ++#define SYS_link 9 ++#define SYS_unlink 10 ++ /* 11 is obsolete execv */ ++#define SYS_chdir 12 ++#define SYS_fchdir 13 ++#define SYS_mknod 14 ++#define SYS_chmod 15 ++#define SYS_chown 16 ++#define SYS_obreak 17 ++#define SYS_freebsd4_getfsstat 18 ++ /* 19 is old lseek */ ++#define SYS_getpid 20 ++#define SYS_mount 21 ++#define SYS_unmount 22 ++#define SYS_setuid 23 ++#define SYS_getuid 24 ++#define SYS_geteuid 25 ++#define SYS_ptrace 26 ++#define SYS_recvmsg 27 ++#define SYS_sendmsg 28 ++#define SYS_recvfrom 29 ++#define SYS_accept 30 ++#define SYS_getpeername 31 ++#define SYS_getsockname 32 ++#define SYS_access 33 ++#define SYS_chflags 34 ++#define SYS_fchflags 35 ++#define SYS_sync 36 ++#define SYS_kill 37 ++ /* 38 is old stat */ ++#define SYS_getppid 39 ++ /* 40 is old lstat */ ++#define SYS_dup 41 ++#define SYS_pipe 42 ++#define SYS_getegid 43 ++#define SYS_profil 44 ++#define SYS_ktrace 45 ++ /* 46 is old sigaction */ ++#define SYS_getgid 47 ++ /* 48 is old sigprocmask */ ++#define SYS_getlogin 49 ++#define SYS_setlogin 50 ++#define SYS_acct 51 ++ /* 52 is old sigpending */ ++#define SYS_sigaltstack 53 ++#define SYS_ioctl 54 ++#define SYS_reboot 55 ++#define SYS_revoke 56 ++#define SYS_symlink 57 ++#define SYS_readlink 58 ++#define SYS_execve 59 ++#define SYS_umask 60 ++#define SYS_chroot 61 ++ /* 62 is old fstat */ ++ /* 63 is old getkerninfo */ ++ /* 64 is old getpagesize */ ++#define SYS_msync 65 ++#define SYS_vfork 66 ++ /* 67 is obsolete vread */ ++ /* 68 is obsolete vwrite */ ++#define SYS_sbrk 69 ++#define SYS_sstk 70 ++ /* 71 is old mmap */ ++#define SYS_vadvise 72 ++#define SYS_munmap 73 ++#define SYS_mprotect 74 ++#define SYS_madvise 75 ++ /* 76 is obsolete vhangup */ ++ /* 77 is obsolete vlimit */ ++#define SYS_mincore 78 ++#define SYS_getgroups 79 ++#define SYS_setgroups 80 ++#define SYS_getpgrp 81 ++#define SYS_setpgid 82 ++#define SYS_setitimer 83 ++ /* 84 is old wait */ ++#define SYS_swapon 85 ++#define SYS_getitimer 86 ++ /* 87 is old gethostname */ ++ /* 88 is old sethostname */ ++#define SYS_getdtablesize 89 ++#define SYS_dup2 90 ++#define SYS_fcntl 92 ++#define SYS_select 93 ++#define SYS_fsync 95 ++#define SYS_setpriority 96 ++#define SYS_socket 97 ++#define SYS_connect 98 ++ /* 99 is old accept */ ++#define SYS_getpriority 100 ++ /* 101 is old send */ ++ /* 102 is old recv */ ++ /* 103 is old sigreturn */ ++#define SYS_bind 104 ++#define SYS_setsockopt 105 ++#define SYS_listen 106 ++ /* 107 is obsolete vtimes */ ++ /* 108 is old sigvec */ ++ /* 109 is old sigblock */ ++ /* 110 is old sigsetmask */ ++ /* 111 is old sigsuspend */ ++ /* 112 is old sigstack */ ++ /* 113 is old recvmsg */ ++ /* 114 is old sendmsg */ ++ /* 115 is obsolete vtrace */ ++#define SYS_gettimeofday 116 ++#define SYS_getrusage 117 ++#define SYS_getsockopt 118 ++#define SYS_readv 120 ++#define SYS_writev 121 ++#define SYS_settimeofday 122 ++#define SYS_fchown 123 ++#define SYS_fchmod 124 ++ /* 125 is old recvfrom */ ++#define SYS_setreuid 126 ++#define SYS_setregid 127 ++#define SYS_rename 128 ++ /* 129 is old truncate */ ++ /* 130 is old ftruncate */ ++#define SYS_flock 131 ++#define SYS_mkfifo 132 ++#define SYS_sendto 133 ++#define SYS_shutdown 134 ++#define SYS_socketpair 135 ++#define SYS_mkdir 136 ++#define SYS_rmdir 137 ++#define SYS_utimes 138 ++ /* 139 is obsolete 4.2 sigreturn */ ++#define SYS_adjtime 140 ++ /* 141 is old getpeername */ ++ /* 142 is old gethostid */ ++ /* 143 is old sethostid */ ++ /* 144 is old getrlimit */ ++ /* 145 is old setrlimit */ ++ /* 146 is old killpg */ ++#define SYS_setsid 147 ++#define SYS_quotactl 148 ++ /* 149 is old quota */ ++ /* 150 is old getsockname */ ++#define SYS_nfssvc 155 ++ /* 156 is old getdirentries */ ++#define SYS_freebsd4_statfs 157 ++#define SYS_freebsd4_fstatfs 158 ++#define SYS_lgetfh 160 ++#define SYS_getfh 161 ++#define SYS_getdomainname 162 ++#define SYS_setdomainname 163 ++#define SYS_uname 164 ++#define SYS_sysarch 165 ++#define SYS_rtprio 166 ++#define SYS_semsys 169 ++#define SYS_msgsys 170 ++#define SYS_shmsys 171 ++#define SYS_freebsd6_pread 173 ++#define SYS_freebsd6_pwrite 174 ++#define SYS_ntp_adjtime 176 ++#define SYS_setgid 181 ++#define SYS_setegid 182 ++#define SYS_seteuid 183 ++#define SYS_stat 188 ++#define SYS_fstat 189 ++#define SYS_lstat 190 ++#define SYS_pathconf 191 ++#define SYS_fpathconf 192 ++#define SYS_getrlimit 194 ++#define SYS_setrlimit 195 ++#define SYS_getdirentries 196 ++#define SYS_freebsd6_mmap 197 ++#define SYS___syscall 198 ++#define SYS_freebsd6_lseek 199 ++#define SYS_freebsd6_truncate 200 ++#define SYS_freebsd6_ftruncate 201 ++#define SYS_sysctl 202 ++#define SYS_mlock 203 ++#define SYS_munlock 204 ++#define SYS_undelete 205 ++#define SYS_futimes 206 ++#define SYS_getpgid 207 ++#define SYS_poll 209 ++#define SYS_semctl 220 ++#define SYS_semget 221 ++#define SYS_semop 222 ++#define SYS_msgctl 224 ++#define SYS_msgget 225 ++#define SYS_msgsnd 226 ++#define SYS_msgrcv 227 ++#define SYS_shmat 228 ++#define SYS_shmctl 229 ++#define SYS_shmdt 230 ++#define SYS_shmget 231 ++#define SYS_clock_gettime 232 ++#define SYS_clock_settime 233 ++#define SYS_clock_getres 234 ++#define SYS_ktimer_create 235 ++#define SYS_ktimer_delete 236 ++#define SYS_ktimer_settime 237 ++#define SYS_ktimer_gettime 238 ++#define SYS_ktimer_getoverrun 239 ++#define SYS_nanosleep 240 ++#define SYS_ntp_gettime 248 ++#define SYS_minherit 250 ++#define SYS_rfork 251 ++#define SYS_openbsd_poll 252 ++#define SYS_issetugid 253 ++#define SYS_lchown 254 ++#define SYS_aio_read 255 ++#define SYS_aio_write 256 ++#define SYS_lio_listio 257 ++#define SYS_getdents 272 ++#define SYS_lchmod 274 ++#define SYS_netbsd_lchown 275 ++#define SYS_lutimes 276 ++#define SYS_netbsd_msync 277 ++#define SYS_nstat 278 ++#define SYS_nfstat 279 ++#define SYS_nlstat 280 ++#define SYS_preadv 289 ++#define SYS_pwritev 290 ++#define SYS_freebsd4_fhstatfs 297 ++#define SYS_fhopen 298 ++#define SYS_fhstat 299 ++#define SYS_modnext 300 ++#define SYS_modstat 301 ++#define SYS_modfnext 302 ++#define SYS_modfind 303 ++#define SYS_kldload 304 ++#define SYS_kldunload 305 ++#define SYS_kldfind 306 ++#define SYS_kldnext 307 ++#define SYS_kldstat 308 ++#define SYS_kldfirstmod 309 ++#define SYS_getsid 310 ++#define SYS_setresuid 311 ++#define SYS_setresgid 312 ++ /* 313 is obsolete signanosleep */ ++#define SYS_aio_return 314 ++#define SYS_aio_suspend 315 ++#define SYS_aio_cancel 316 ++#define SYS_aio_error 317 ++#define SYS_oaio_read 318 ++#define SYS_oaio_write 319 ++#define SYS_olio_listio 320 ++#define SYS_yield 321 ++ /* 322 is obsolete thr_sleep */ ++ /* 323 is obsolete thr_wakeup */ ++#define SYS_mlockall 324 ++#define SYS_munlockall 325 ++#define SYS_getcwd 326 ++#define SYS_sched_setparam 327 ++#define SYS_sched_getparam 328 ++#define SYS_sched_setscheduler 329 ++#define SYS_sched_getscheduler 330 ++#define SYS_sched_yield 331 ++#define SYS_sched_get_priority_max 332 ++#define SYS_sched_get_priority_min 333 ++#define SYS_sched_rr_get_interval 334 ++#define SYS_utrace 335 ++#define SYS_freebsd4_sendfile 336 ++#define SYS_kldsym 337 ++#define SYS_jail 338 ++#define SYS_sigprocmask 340 ++#define SYS_sigsuspend 341 ++#define SYS_freebsd4_sigaction 342 ++#define SYS_sigpending 343 ++#define SYS_freebsd4_sigreturn 344 ++#define SYS_sigtimedwait 345 ++#define SYS_sigwaitinfo 346 ++#define SYS_acl_get_file 347 ++#define SYS_acl_set_file 348 ++#define SYS_acl_get_fd 349 ++#define SYS_acl_set_fd 350 ++#define SYS_acl_delete_file 351 ++#define SYS_acl_delete_fd 352 ++#define SYS_acl_aclcheck_file 353 ++#define SYS_acl_aclcheck_fd 354 ++#define SYS_extattrctl 355 ++#define SYS_extattr_set_file 356 ++#define SYS_extattr_get_file 357 ++#define SYS_extattr_delete_file 358 ++#define SYS_aio_waitcomplete 359 ++#define SYS_getresuid 360 ++#define SYS_getresgid 361 ++#define SYS_kqueue 362 ++#define SYS_kevent 363 ++#define SYS_extattr_set_fd 371 ++#define SYS_extattr_get_fd 372 ++#define SYS_extattr_delete_fd 373 ++#define SYS_setugid 374 ++#define SYS_nfsclnt 375 ++#define SYS_eaccess 376 ++#define SYS_nmount 378 ++#define SYS_kse_exit 379 ++#define SYS_kse_wakeup 380 ++#define SYS_kse_create 381 ++#define SYS_kse_thr_interrupt 382 ++#define SYS_kse_release 383 ++#define SYS_mac_get_proc 384 ++#define SYS_mac_set_proc 385 ++#define SYS_mac_get_fd 386 ++#define SYS_mac_get_file 387 ++#define SYS_mac_set_fd 388 ++#define SYS_mac_set_file 389 ++#define SYS_kenv 390 ++#define SYS_lchflags 391 ++#define SYS_uuidgen 392 ++#define SYS_sendfile 393 ++#define SYS_mac_syscall 394 ++#define SYS_getfsstat 395 ++#define SYS_statfs 396 ++#define SYS_fstatfs 397 ++#define SYS_fhstatfs 398 ++#define SYS_ksem_close 400 ++#define SYS_ksem_post 401 ++#define SYS_ksem_wait 402 ++#define SYS_ksem_trywait 403 ++#define SYS_ksem_init 404 ++#define SYS_ksem_open 405 ++#define SYS_ksem_unlink 406 ++#define SYS_ksem_getvalue 407 ++#define SYS_ksem_destroy 408 ++#define SYS_mac_get_pid 409 ++#define SYS_mac_get_link 410 ++#define SYS_mac_set_link 411 ++#define SYS_extattr_set_link 412 ++#define SYS_extattr_get_link 413 ++#define SYS_extattr_delete_link 414 ++#define SYS_mac_execve 415 ++#define SYS_sigaction 416 ++#define SYS_sigreturn 417 ++#define SYS_getcontext 421 ++#define SYS_setcontext 422 ++#define SYS_swapcontext 423 ++#define SYS_swapoff 424 ++#define SYS_acl_get_link 425 ++#define SYS_acl_set_link 426 ++#define SYS_acl_delete_link 427 ++#define SYS_acl_aclcheck_link 428 ++#define SYS_sigwait 429 ++#define SYS_thr_create 430 ++#define SYS_thr_exit 431 ++#define SYS_thr_self 432 ++#define SYS_thr_kill 433 ++#define SYS__umtx_lock 434 ++#define SYS__umtx_unlock 435 ++#define SYS_jail_attach 436 ++#define SYS_extattr_list_fd 437 ++#define SYS_extattr_list_file 438 ++#define SYS_extattr_list_link 439 ++#define SYS_kse_switchin 440 ++#define SYS_ksem_timedwait 441 ++#define SYS_thr_suspend 442 ++#define SYS_thr_wake 443 ++#define SYS_kldunloadf 444 ++#define SYS_audit 445 ++#define SYS_auditon 446 ++#define SYS_getauid 447 ++#define SYS_setauid 448 ++#define SYS_getaudit 449 ++#define SYS_setaudit 450 ++#define SYS_getaudit_addr 451 ++#define SYS_setaudit_addr 452 ++#define SYS_auditctl 453 ++#define SYS__umtx_op 454 ++#define SYS_thr_new 455 ++#define SYS_sigqueue 456 ++#define SYS_kmq_open 457 ++#define SYS_kmq_setattr 458 ++#define SYS_kmq_timedreceive 459 ++#define SYS_kmq_timedsend 460 ++#define SYS_kmq_notify 461 ++#define SYS_kmq_unlink 462 ++#define SYS_abort2 463 ++#define SYS_thr_set_name 464 ++#define SYS_aio_fsync 465 ++#define SYS_rtprio_thread 466 ++#define SYS_sctp_peeloff 471 ++#define SYS_sctp_generic_sendmsg 472 ++#define SYS_sctp_generic_sendmsg_iov 473 ++#define SYS_sctp_generic_recvmsg 474 ++#define SYS_pread 475 ++#define SYS_pwrite 476 ++#define SYS_mmap 477 ++#define SYS_lseek 478 ++#define SYS_truncate 479 ++#define SYS_ftruncate 480 ++#define SYS_thr_kill2 481 ++#define SYS_MAXSYSCALL 482 ++ ++#endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/sysmacros.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/sysmacros.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/sysmacros.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/sysmacros.h 2007-07-29 16:06:15.000000000 +0200 +@@ -0,0 +1,36 @@ ++/* Definitions of macros to access `dev_t' values. FreeBSD version. ++ Copyright (C) 1996-1997, 1999, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_SYSMACROS_H ++#define _SYS_SYSMACROS_H 1 ++ ++/* For compatibility we provide alternative names. ++ ++ The problem here is that compilers other than GCC probably don't ++ have the `long long' type and so `dev_t' is actually an array. */ ++#define major(dev) ((int)(((unsigned int) (dev) >> 8) & 0xff)) ++#define minor(dev) ((int)((dev) & 0xffff00ff)) ++#define makedev(major, minor) (((major) << 8) | (minor)) ++ ++/* Access the functions with their new names. */ ++#define gnu_dev_major(dev) major (dev) ++#define gnu_dev_minor(dev) minor (dev) ++#define gnu_dev_makedev(maj, min) makedev (maj, min) ++ ++#endif /* sys/sysmacros.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/ttydefaults.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/ttydefaults.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/ttydefaults.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/ttydefaults.h 2007-07-29 16:06:15.000000000 +0200 +@@ -0,0 +1,96 @@ ++/*- ++ * Copyright (c) 1982, 1986, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * (c) UNIX System Laboratories, Inc. ++ * All or some portions of this file are derived from material licensed ++ * to the University of California by American Telephone and Telegraph ++ * Co. or Unix System Laboratories, Inc. and are reproduced herein with ++ * the permission of UNIX System Laboratories, Inc. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 4. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94 ++ */ ++ ++/* ++ * System wide defaults for terminal state. FreeBSD version. ++ */ ++#ifndef _SYS_TTYDEFAULTS_H_ ++#define _SYS_TTYDEFAULTS_H_ ++ ++/* ++ * Defaults on "first" open. ++ */ ++#define TTYDEF_IFLAG (BRKINT | ICRNL | IMAXBEL | IXON | IXANY) ++#define TTYDEF_OFLAG (OPOST | ONLCR) ++#define TTYDEF_LFLAG (ECHO | ICANON | ISIG | IEXTEN | ECHOE|ECHOKE|ECHOCTL) ++#define TTYDEF_CFLAG (CREAD | CS8 | HUPCL) ++#define TTYDEF_SPEED (B9600) ++ ++/* ++ * Control Character Defaults ++ */ ++#define CTRL(x) (x&037) ++#define CEOF CTRL('d') ++#ifdef _POSIX_VDISABLE ++# define CEOL _POSIX_VDISABLE ++#else ++# define CEOL ((unsigned char)'\377') /* XXX avoid _POSIX_VDISABLE */ ++#endif ++#define CERASE 0177 ++#define CINTR CTRL('c') ++#define CSTATUS CTRL('t') ++#define CKILL CTRL('u') ++#define CMIN 1 ++#define CQUIT 034 /* FS, ^\ */ ++#define CSUSP CTRL('z') ++#define CTIME 0 ++#define CDSUSP CTRL('y') ++#define CSTART CTRL('q') ++#define CSTOP CTRL('s') ++#define CLNEXT CTRL('v') ++#define CDISCARD CTRL('o') ++#define CWERASE CTRL('w') ++#define CREPRINT CTRL('r') ++#define CEOT CEOF ++/* compat */ ++#define CBRK CEOL ++#define CRPRNT CREPRINT ++#define CFLUSH CDISCARD ++ ++/* PROTECTED INCLUSION ENDS HERE */ ++#endif /* !_SYS_TTYDEFAULTS_H_ */ ++ ++/* ++ * #define TTYDEFCHARS to include an array of default control characters. ++ */ ++#ifdef TTYDEFCHARS ++cc_t ttydefchars[NCCS] = { ++ CEOF, CEOL, CEOL, CERASE, CWERASE, CKILL, CREPRINT, ++ _POSIX_VDISABLE, CINTR, CQUIT, CSUSP, CDSUSP, CSTART, CSTOP, CLNEXT, ++ CDISCARD, CMIN, CTIME, CSTATUS, _POSIX_VDISABLE ++}; ++#undef TTYDEFCHARS ++#endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/ucontext.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/ucontext.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/ucontext.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sys/ucontext.h 2007-07-29 16:06:15.000000000 +0200 +@@ -0,0 +1,48 @@ ++/* Data structures for user-level context switching. Generic version. ++ Copyright (C) 1997-1999, 2001-2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* This file's definitions suffice for any platform where all ++ the machine-specific state is described in `struct sigcontext'. */ ++ ++#ifndef _SYS_UCONTEXT_H ++#define _SYS_UCONTEXT_H 1 ++ ++#include ++#include ++ ++/* We need the signal context definitions even if they are not used ++ included in . */ ++#include ++ ++/* This include file defines the type 'mcontext_t'. */ ++#include ++ ++/* Userlevel context. */ ++typedef struct ucontext ++ { ++ __sigset_t uc_sigmask; ++ mcontext_t uc_mcontext; ++ struct ucontext *uc_link; ++ stack_t uc_stack; ++ int uc_flags; ++#define UCF_SWAPPED 0x00000001 /* Used by swapcontext(3). */ ++ int __unused1[4]; ++ } ucontext_t; ++ ++#endif /* sys/ucontext.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/syscalls-inline.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/syscalls-inline.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/syscalls-inline.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/syscalls-inline.h 2007-11-21 16:53:13.000000000 +0100 +@@ -0,0 +1,54 @@ ++/* prototypes of generally used "inline syscalls" ++ Copyright (C) 2006 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef KFREEBSD_INLINE_SYSCALLS_H ++#define KFREEBSD_INLINE_SYSCALLS_H ++ ++#include ++#define __need_sigset_t ++#include ++ ++struct iovec; ++struct rusage; ++struct timespec; ++ ++int __syscall_open(const char *path, int flags, ...); ++int __syscall_close(int fd); ++libc_hidden_proto (__syscall_open) ++libc_hidden_proto (__syscall_close) ++ ++ssize_t __syscall_read(int fd, void *buf, size_t nbyte); ++ssize_t __syscall_write(int fd, const void *buf, size_t nbyte); ++ssize_t __syscall_writev(int fd, const struct iovec *iovp, int iovcnt); ++libc_hidden_proto (__syscall_read) ++libc_hidden_proto (__syscall_write) ++libc_hidden_proto (__syscall_writev) ++ ++int __syscall_fcntl(int fd, int cmd, ...); ++int __syscall_fork(void); ++int __syscall_wait4(int pid, int *status, int options, struct rusage *rusage); ++int __syscall_sigsuspend (const sigset_t *set); ++int __syscall_nanosleep (const struct timespec *requested_time, struct timespec *remaining); ++libc_hidden_proto (__syscall_fcntl) ++libc_hidden_proto (__syscall_fork) ++libc_hidden_proto (__syscall_wait4) ++libc_hidden_proto (__syscall_sigsuspend) ++libc_hidden_proto (__syscall_nanosleep) ++ ++#endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/syscalls.list ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/syscalls.list +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/syscalls.list 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/syscalls.list 2007-11-21 16:53:13.000000000 +0100 +@@ -0,0 +1,157 @@ ++# File name Caller Syscall name # args Strong name Weak names ++ ++acl_aclcheck_fd - acl_aclcheck_fd i:iip __acl_aclcheck_fd ++acl_aclcheck_file - acl_aclcheck_file i:sip __acl_aclcheck_file ++acl_delete_fd - acl_delete_fd i:ii __acl_delete_fd ++acl_delete_file - acl_delete_file i:si __acl_delete_file ++acl_get_fd - acl_get_fd i:iip __acl_get_fd ++acl_get_file - acl_get_file i:sip __acl_get_file ++acl_set_fd - acl_set_fd i:iip __acl_set_fd ++acl_set_file - acl_set_file i:sip __acl_set_file ++sys_aio_cancel - aio_cancel i:ip __syscall_aio_cancel ++sys_aio_error - aio_error i:p __syscall_aio_error ++sys_aio_read - aio_read i:p __syscall_aio_read ++sys_aio_return - aio_return i:p __syscall_aio_return ++sys_aio_suspend - aio_suspend i:bnP __syscall_aio_suspend ++sys_aio_waitcomplete - aio_waitcomplete i:pp __syscall_aio_waitcomplete ++sys_aio_write - aio_write i:p __syscall_aio_write ++sys_clock_getres - clock_getres i:ip __syscall_clock_getres ++sys_clock_gettime - clock_gettime i:ip __syscall_clock_gettime ++sys_clock_settime - clock_settime i:ip __syscall_clock_settime ++sys_execve - execve i:ppp __syscall_execve ++extattrctl - extattrctl i:sisI extattrctl ++extattr_delete_file - extattr_delete_file i:ss extattr_delete_file ++extattr_get_file - extattr_get_file i:ssbn extattr_get_file ++extattr_set_file - extattr_set_file i:ssbn extattr_set_file ++fhopen - fhopen i:pi fhopen ++sys_fork - fork i: __syscall_fork fork ++sys_fhstat - fhstat i:pp __syscall_fhstat ++sys_getfsstat - getfsstat i:pii __syscall_getfsstat ++sys_statfs - statfs i:sp __syscall_statfs ++sys_fstatfs - fstatfs i:ip __syscall_fstatfs ++sys_fhstatfs - fhstatfs i:pp __syscall_fhstatfs ++sys_fstat - fstat i:ip __syscall_fstat ++sys_ftruncate - freebsd6_ftruncate i:iii __syscall_freebsd6_ftruncate ++futimes - futimes i:ip __futimes futimes ++sys_getcwd - getcwd i:bn __syscall_getcwd ++sys_getdents - getdents i:ibn __syscall_getdents ++sys_getdirentries - getdirentries i:ibnP __syscall_getdirentries ++getfh - getfh i:sp getfh ++sys_getlogin - getlogin i:bn __syscall_getlogin ++getpgid - getpgid i:i __getpgid __getpgid_internal getpgid ++getpgrp - getpgrp i: getpgrp ++getresgid - getresgid i:ppp getresgid ++getresuid - getresuid i:ppp getresuid ++getrlimit - getrlimit i:ip __getrlimit getrlimit getrlimit64 ++getsid - getsid i:i getsid ++issetugid - issetugid i: issetugid ++jail - jail i:p jail ++kldfind - kldfind i:s kldfind ++kldfirstmod - kldfirstmod i:i kldfirstmod ++kldload - kldload i:s kldload ++kldnext - kldnext i:i kldnext ++kldstat - kldstat i:ip kldstat ++kldsym - kldsym i:iip kldsym ++kldunload - kldunload i:i kldunload ++kldunloadf - kldunloadf i:ii kldunloadf ++ktrace - ktrace i:siii ktrace ++lchmod - lchmod i:si lchmod ++lchown - lchown i:sii __lchown lchown ++sys_lio_listio - lio_listio i:ibnP __syscall_lio_listio ++sys_lseek - freebsd6_lseek i:iiii __syscall_freebsd6_lseek ++sys_lstat - lstat i:sp __syscall_lstat ++lutimes - lutimes i:sp __lutimes lutimes ++posix_madvise - madvise i:pii posix_madvise ++minherit - minherit i:aii minherit ++mincore - mincore i:anV mincore ++mlock - mlock i:bn mlock ++mlockall - mlockall i:i mlockall ++mkfifo - mkfifo i:si __mkfifo mkfifo ++sys_mknod - mknod i:sii __syscall_mknod ++sys_mmap - freebsd6_mmap b:aniiiii __syscall_freebsd6_mmap ++sys_munmap munmap munmap i:pi __syscall_munmap ++modfind - modfind i:s modfind ++modfnext - modfnext i:i modfnext ++modnext - modnext i:i modnext ++modstat - modstat i:ip modstat ++mount - mount i:ssiP mount ++msgctl - msgctl i:iip msgctl ++msgget - msgget i:ii msgget ++msgrcv - msgrcv Ci:ibnii __libc_msgrcv msgrcv ++msgsnd - msgsnd Ci:ibni __libc_msgsnd msgsnd ++munlock - munlock i:ai munlock ++munlockall - munlockall i: munlockall ++nanosleep - nanosleep Ci:pp __libc_nanosleep __nanosleep nanosleep ++nmount - nmount i:pii nmount ++sys_nfstat - nfstat i:ip __syscall_nfstat ++sys_nlstat - nlstat i:sp __syscall_nlstat ++sys_nstat - nstat i:sp __syscall_nstat ++ntp_adjtime - ntp_adjtime i:p ntp_adjtime ++obreak - obreak i:a __syscall_obreak ++sys_open - open i:siv __syscall_open ++poll - poll Ci:pii __poll poll ++sys_pread - freebsd6_pread i:ibnii __syscall_freebsd6_pread ++sys_ptrace - ptrace i:iipi __syscall_ptrace ++sys_pwrite - freebsd6_pwrite i:ibnii __syscall_freebsd6_pwrite ++quotactl - quotactl i:siip quotactl ++sys_readv - readv i:ipi __syscall_readv ++rfork - rfork i:i __rfork rfork ++rtprio - rtprio i:iip __rtprio rtprio ++sched_gets - sched_getscheduler i:i __sched_getscheduler sched_getscheduler ++sched_primax - sched_get_priority_max i:i __sched_get_priority_max sched_get_priority_max ++sched_primin - sched_get_priority_min i:i __sched_get_priority_min sched_get_priority_min ++sched_rr_gi - sched_rr_get_interval i:ip __sched_rr_get_interval sched_rr_get_interval ++sched_setp - sched_setparam i:ip __sched_setparam sched_setparam ++sched_sets - sched_setscheduler i:iip __sched_setscheduler sched_setscheduler ++sched_yield - sched_yield i: __sched_yield sched_yield ++semget - semget i:iii semget ++semop - semop i:ipi semop ++bsd_sendfile - sendfile i:iiiippi bsd_sendfile ++setegid - setegid i:i setegid ++seteuid - seteuid i:i seteuid ++setgid - setgid i:i __setgid setgid ++sys_setlogin - setlogin i:s __syscall_setlogin ++setpgid - setpgid i:ii __setpgid setpgid ++setresgid - setresgid i:iii setresgid ++setresuid - setresuid i:iii setresuid ++setrlimit - setrlimit i:ip __setrlimit setrlimit setrlimit64 ++setsid - setsid i: __setsid setsid ++setuid - setuid i:i __setuid setuid ++shmat - shmat i:iai shmat ++shmctl - shmctl i:iip shmctl ++shmdt - shmdt i:a shmdt ++shmget - shmget i:iii shmget ++sys_sigaction - sigaction i:ipp __syscall_sigaction ++sigpending - sigpending i:p sigpending ++sigprocmask - sigprocmask i:iPP __sigprocmask sigprocmask ++sigsuspend - sigsuspend Ci:p __sigsuspend sigsuspend ++sigwaitinfo - sigwaitinfo Ci:pp __sigwaitinfo sigwaitinfo ++sigtimedwait - sigtimedwait Ci:ppP __sigtimedwait sigtimedwait ++sys_stat - stat i:sp __syscall_stat ++sysarch - sysarch i:ip __sysarch sysarch ++sysctl - sysctl i:pibNbn __sysctl sysctl ++sys_truncate - freebsd6_truncate i:sii __syscall_freebsd6_truncate ++undelete - undelete i:s undelete ++unmount - unmount i:si unmount ++utrace - utrace i:bn utrace ++sys_writev - writev i:ipi __syscall_writev ++yield - yield i: __syscall_yield ++wait4 - wait4 i:iWiP __syscall_wait4 __wait4 wait4 ++sys_close - close i:i __syscall_close ++sys_fcntl - fcntl i:iiF __syscall_fcntl ++sys_write - write i:ibn __syscall_write ++sys_read - read i:ibn __syscall_read ++sys_connect - connect i:ipi __syscall_connect ++sys_bind - bind i:ipi __syscall_bind ++sys_sendto - sendto i:ibnibn __syscall_sendto ++sys_nanosleep EXTRA nanosleep i:pp __syscall_nanosleep ++sys_sigsuspend EXTRA sigsuspend i:p __syscall_sigsuspend ++swapcontext - swapcontext i:pp __swapcontext swapcontext ++swapon - swapon i:s swapon ++swapoff - swapoff i:s swapoff ++getcontext - getcontext i:p __getcontext getcontext ++setcontext - setcontext i:p __setcontext setcontext ++kqueue EXTRA kqueue i: __kqueue kqueue ++kevent EXTRA kevent i:ipipip __kevent kevent ++sys_umtx - _umtx_op i:piipp __syscall__umtx_op ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sysconf.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sysconf.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sysconf.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sysconf.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,50 @@ ++/* Get file-specific information about a file. ++ Copyright (C) 2006 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static long int posix_sysconf (int name); ++ ++/* Get the value of the system variable NAME. */ ++long int ++__sysconf (int name) ++{ ++ if (name == _SC_CPUTIME || name == _SC_THREAD_CPUTIME) ++ { ++#if HP_TIMING_AVAIL ++ // XXX We can add here test for machines which cannot support a ++ // XXX usable TSC. ++ return 200112L; ++#else ++ return -1; ++#endif ++ } ++ return posix_sysconf (name); ++} ++ ++/* Now the POSIX version. */ ++#undef __sysconf ++#define __sysconf static posix_sysconf ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sysctlbyname.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sysctlbyname.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/sysctlbyname.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/sysctlbyname.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,44 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++/* Read or write system parameters. */ ++int ++__sysctlbyname (const char *name, void *oldval, size_t *oldlenp, void *newval, size_t newlen) ++{ ++ int request[CTL_MAXNAME]; ++ size_t requestlen = sizeof (request); ++ ++ /* Convert the string NAME to a binary encoded request. The kernel ++ contains a routine for doing this, called "name2oid". But the way ++ to call it is a little bit strange. */ ++ int name2oid_request[2] = { 0, 3 }; ++ if (__sysctl (name2oid_request, 2, request, &requestlen, ++ (void *) name, strlen (name)) ++ < 0) ++ return -1; ++ ++ /* Now call sysctl using the binary encoded request. */ ++ return __sysctl (request, requestlen / sizeof (int), ++ oldval, oldlenp, newval, newlen); ++} ++ ++weak_alias (__sysctlbyname, sysctlbyname) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/tcdrain.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/tcdrain.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/tcdrain.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/tcdrain.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,41 @@ ++/* Copyright (C) 1995, 1996, 1997, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* Wait for pending output to be written on FD. */ ++int ++__libc_tcdrain (int fd) ++{ ++ if (SINGLE_THREAD_P) ++ return __ioctl (fd, TIOCDRAIN); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ ++ int result = __ioctl (fd, TIOCDRAIN); ++ ++ LIBC_CANCEL_RESET (oldtype); ++ ++ return result; ++} ++weak_alias (__libc_tcdrain, tcdrain) ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/tcflow.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/tcflow.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/tcflow.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/tcflow.c 2007-11-21 16:53:13.000000000 +0100 +@@ -0,0 +1,4 @@ ++/* just use internal functions */ ++#define tcgetattr __tcgetattr ++#define write __write ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/telldir.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/telldir.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/telldir.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/telldir.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,2 @@ ++/* Avoid , which doesn't pass the testsuite. */ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/truncate.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/truncate.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/truncate.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/truncate.c 2007-11-21 16:53:13.000000000 +0100 +@@ -0,0 +1,41 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++/* The real system call has a word of padding before the 64-bit off_t ++ argument. */ ++extern int __syscall_freebsd6_truncate (const char *__file, int __unused1, ++ __off_t __length) __THROW; ++libc_hidden_proto (__syscall_freebsd6_truncate) ++ ++int ++__truncate (const char *file, __off_t length) ++{ ++ /* We pass 2 arguments in 4 words. */ ++ return INLINE_SYSCALL (freebsd6_truncate, 2, file, 0, length); ++} ++ ++weak_alias (__truncate, truncate) ++ ++/* 'truncate64' is the same as 'truncate', because __off64_t == __off_t. */ ++strong_alias (__truncate, __truncate64) ++weak_alias (__truncate64, truncate64) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/truncate64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/truncate64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/truncate64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/truncate64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1 @@ ++/* 'truncate64' is the same as 'truncate', because __off64_t == __off_t. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ulimit.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ulimit.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ulimit.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ulimit.c 2007-11-21 16:53:13.000000000 +0100 +@@ -0,0 +1,5 @@ ++/* just use internal functions */ ++#define getrlimit __getrlimit ++#define setrlimit __setrlimit ++#define sysconf __sysconf ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/uname.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/uname.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/uname.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/uname.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,110 @@ ++/* Copyright (C) 2002, 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible . ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++#define SYSNAME "GNU/kFreeBSD" ++#define SYSNAME_LEN 13 ++ ++/* Check for bounds in pre-processor */ ++#if SYSNAME_LEN > _UTSNAME_SYSNAME_LENGTH ++#error ++#endif ++ ++/* Put information about the system in NAME. */ ++int ++__uname (struct utsname *name) ++{ ++ int request[2] = { CTL_KERN }; ++ size_t len; ++ ++ /* Fill sysname: "uname -s". */ ++ strcpy (name->sysname, SYSNAME); ++ ++ /* Fill nodename: "uname -n". Fetch sysctl "kern.hostname". */ ++ request[1] = KERN_HOSTNAME; ++ len = sizeof (name->nodename); ++ if (__sysctl (request, 2, name->nodename, &len, NULL, 0) >= 0) ++ { ++ if (len < sizeof (name->nodename)) ++ name->nodename[len] = '\0'; ++ } ++ ++ /* Fill release: "uname -r". Fetch sysctl "kern.osrelease". */ ++ request[1] = KERN_OSRELEASE; ++ len = sizeof (name->release); ++ if (__sysctl (request, 2, name->release, &len, NULL, 0) >= 0) ++ { ++ if (len < sizeof (name->release)) ++ name->release[len] = '\0'; ++ } ++ ++ /* Fill version: "uname -v". Fetch sysctl "kern.version". */ ++ request[1] = KERN_VERSION; ++ len = sizeof (name->version); ++ if (__sysctl (request, 2, name->version, &len, NULL, 0) >= 0) ++ { ++ if (len < sizeof (name->version)) ++ name->version[len] = '\0'; ++ } ++ ++ /* Remove trailing whitespace. Turn non-trailing whitespace to ++ spaces. */ ++ { ++ char *p0 = name->version; ++ char *p = p0 + __strnlen (p0, sizeof (name->version)); ++ ++ while (p > p0 && (p[-1] == '\t' || p[-1] == '\n' || p[-1] == ' ')) ++ *--p = '\0'; ++ ++ while (p > p0) ++ { ++ --p; ++ if (*p == '\t' || *p == '\n') ++ *p = ' '; ++ } ++ } ++ ++#ifdef __x86_64__ ++ /* Check for bounds in pre-processor */ ++# if 7 > _UTSNAME_MACHINE_LENGTH ++# error ++# endif ++ /* Pristine FreeBSD kernel would return "amd64". Avoid that. */ ++ strcpy (name->machine, "x86_64"); ++#else ++ /* Fill machine: "uname -m". Fetch sysctl "hw.machine". */ ++ request[0] = CTL_HW; ++ request[1] = HW_MACHINE; ++ len = sizeof (name->machine); ++ if (__sysctl (request, 2, name->machine, &len, NULL, 0) >= 0) ++ { ++ if (len < sizeof (name->machine)) ++ name->machine[len] = '\0'; ++ } ++#endif ++ ++ return 0; ++} ++libc_hidden_def (__uname) ++weak_alias (__uname, uname) ++libc_hidden_def (uname) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/unlockpt.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/unlockpt.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/unlockpt.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/unlockpt.c 2007-11-21 16:53:13.000000000 +0100 +@@ -0,0 +1,45 @@ ++/* Copyright (C) 2007 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++ ++int ++__unlockpt (int fd) ++{ ++ struct stat64 st; ++ ++ /* there is no need/way to do unlocking of slave pseudo-terminal device, ++ just check whether fd might be valid master pseudo-terminal device */ ++ ++ if (__fxstat64 (_STAT_VER, fd, &st) < 0) ++ return -1; ++ ++ if (!(S_ISCHR (st.st_mode))) ++ { ++ __set_errno (ENOTTY); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++weak_alias (__unlockpt, unlockpt) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/usleep.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/usleep.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/usleep.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/usleep.c 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,50 @@ ++/* Implementation of the BSD usleep function using nanosleep. ++ Copyright (C) 1996-1997, 1999, 2001-2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++int ++usleep (useconds_t useconds) ++{ ++ unsigned int sec; ++ unsigned int usec; ++ struct timespec ts; ++ ++ /* POSIX:2001 says that useconds >= 1000000 is invalid; nevertheless let's ++ be forgiving. */ ++ if (__builtin_expect (useconds < 1000000, 1)) ++ { ++ sec = 0; ++ usec = useconds; ++ } ++ else ++ { ++ sec = useconds / 1000000; ++ usec = useconds % 1000000; ++ } ++ ++ ts.tv_sec = sec; ++ ts.tv_nsec = usec * 1000; /* Multiply as 32-bit integers. */ ++ ++ /* Note the usleep() is a cancellation point. But since we call ++ nanosleep() which itself is a cancellation point we do not have ++ to do anything here. */ ++ return __nanosleep (&ts, NULL); ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ustat.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ustat.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/ustat.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/ustat.c 2006-12-05 15:28:42.000000000 +0100 +@@ -0,0 +1,66 @@ ++/* Return info on filesystem. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++int ++ustat (dev_t dev, struct ustat *ubuf) ++{ ++ int mntcount; ++ struct statfs *mntlist; ++ ++ /* Search for the device among the f_mntfromname fields of all mounted ++ filesystems. */ ++ mntcount = __getmntinfo (&mntlist, 0); ++ if (mntcount == 0 && errno != 0) ++ return -1; ++ if (mntcount > 0) ++ { ++ int i; ++ ++ for (i = 0; i < mntcount; i++) ++ { ++ struct statfs *mnt = &mntlist[i]; ++ struct stat statbuf; ++ ++ if ((__strnlen (mnt->f_mntfromname, sizeof (mnt->f_mntfromname)) ++ < sizeof (mnt->f_mntfromname)) ++ && __xstat (_STAT_VER, mnt->f_mntfromname, &statbuf) >= 0 ++ && S_ISBLK (statbuf.st_mode) ++ && statbuf.st_rdev == dev) ++ { ++ /* Found the device. Now produce the result. */ ++ memset (ubuf, '\0', sizeof (struct ustat)); ++ ubuf->f_tfree = mnt->f_bfree; ++ ubuf->f_tinode = mnt->f_ffree; ++ return 0; ++ } ++ } ++ } ++ ++ /* DEV is not among the mounted devices. */ ++ __set_errno (EINVAL); ++ return -1; ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/Makefile ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/Makefile +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/Makefile 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,6 @@ ++# Additional functions: ++ ++ifeq ($(subdir),login) ++# For . ++sysdep_routines += utmpconv ++endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/bits/utmp.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/bits/utmp.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/bits/utmp.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/bits/utmp.h 2006-10-18 09:59:57.000000000 +0200 +@@ -0,0 +1,50 @@ ++/* The `struct utmp' type, describing entries in the utmp file. For FreeBSD. ++ Copyright (C) 1993, 1996-1997, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _UTMP_H ++# error "Never include directly; use instead." ++#endif ++ ++#include ++#include ++ ++ ++#define UT_NAMESIZE 16 ++#define UT_LINESIZE 8 ++#define UT_HOSTSIZE 16 ++ ++ ++struct lastlog ++ { ++ time_t ll_time; ++ char ll_line[UT_LINESIZE]; ++ char ll_host[UT_HOSTSIZE]; ++ }; ++ ++struct utmp ++ { ++ char ut_line[UT_LINESIZE]; ++ char ut_user[UT_NAMESIZE]; ++#define ut_name ut_user ++ char ut_host[UT_HOSTSIZE]; ++ __time_t ut_time; ++ }; ++ ++ ++#define _HAVE_UT_HOST 1 /* We have the ut_host field. */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutmp.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutmp.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutmp.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutmp.c 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,31 @@ ++/* Copyright (C) 1999, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++extern int __utmpx_to_utmp (const struct utmpx *, struct utmp *); ++ ++/* Copy the information in UTMPX to UTMP. */ ++void ++getutmp (const struct utmpx *utmpx, struct utmp *utmp) ++{ ++ if (__utmpx_to_utmp (utmpx, utmp) < 0) ++ memset (utmp, '\0', sizeof (struct utmp)); ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutmpx.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutmpx.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutmpx.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutmpx.c 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,31 @@ ++/* Copyright (C) 1999, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++extern int __utmp_to_utmpx (const struct utmp *, struct utmpx *); ++ ++/* Copy the information in UTMP to UTMPX. */ ++void ++getutmpx (const struct utmp *utmp, struct utmpx *utmpx) ++{ ++ if (__utmp_to_utmpx (utmp, utmpx) < 0) ++ memset (utmpx, '\0', sizeof (struct utmpx)); ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutxent.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutxent.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutxent.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutxent.c 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,46 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++extern int __utmp_to_utmpx (const struct utmp *, struct utmpx *); ++ ++/* Static buffer to store the result. */ ++static struct utmpx buffer; ++ ++struct utmpx * ++__getutxent (void) ++{ ++ for (;;) ++ { ++ struct utmp *tmp = __getutent (); ++ ++ if (tmp == NULL) ++ return NULL; ++ ++ if (__utmp_to_utmpx (tmp, &buffer) >= 0) ++ return &buffer; ++ ++ /* Skip entries that cannot be converted to utmpx. */ ++ } ++} ++ ++weak_alias (__getutxent, getutxent) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutxid.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutxid.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutxid.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutxid.c 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,68 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++extern struct utmpx *__getutxent (void); ++ ++struct utmpx * ++getutxid (const struct utmpx *id) ++{ ++ switch (id->ut_type) ++ { ++ case INIT_PROCESS: ++ case LOGIN_PROCESS: ++ case USER_PROCESS: ++ case DEAD_PROCESS: ++ for (;;) ++ { ++ struct utmpx *next = __getutxent (); ++ ++ if (next == NULL) ++ return NULL; ++ ++ switch (next->ut_type) ++ { ++ case INIT_PROCESS: ++ case LOGIN_PROCESS: ++ case USER_PROCESS: ++ case DEAD_PROCESS: ++ if (strncmp (next->ut_id, id->ut_id, sizeof (id->ut_id)) == 0) ++ return next; ++ break; ++ default: ++ break; ++ } ++ } ++ ++ default: ++ for (;;) ++ { ++ struct utmpx *next = __getutxent (); ++ ++ if (next == NULL) ++ return NULL; ++ ++ if (next->ut_type == id->ut_type) ++ return next; ++ } ++ } ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutxline.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutxline.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutxline.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/getutxline.c 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,40 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++extern struct utmpx *__getutxent (void); ++ ++struct utmpx * ++getutxline (const struct utmpx *line) ++{ ++ for (;;) ++ { ++ struct utmpx *next = __getutxent (); ++ ++ if (next == NULL) ++ return NULL; ++ ++ if ((next->ut_type == LOGIN_PROCESS || next->ut_type == USER_PROCESS) ++ && strncmp (next->ut_line, line->ut_line, __UT_LINESIZE) == 0) ++ return next; ++ } ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/pututxline.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/pututxline.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/pututxline.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/pututxline.c 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,50 @@ ++/* Copyright (C) 1998, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++extern int __utmp_to_utmpx (const struct utmp *, struct utmpx *); ++extern int __utmpx_to_utmp (const struct utmpx *, struct utmp *); ++ ++/* Static buffer to store the result. */ ++static struct utmpx buffer; ++ ++struct utmpx * ++pututxline (const struct utmpx *utmpx) ++{ ++ struct utmp tmp; ++ ++ if (__utmpx_to_utmp (utmpx, &tmp) >= 0) ++ { ++ struct utmp *tmpres = __pututline (&tmp); ++ ++ if (tmpres != NULL) ++ { ++ if (__utmp_to_utmpx (tmpres, &buffer) >= 0) ++ return &buffer; ++ ++ /* Hmm. We wrote a 'struct utmp' that we cannot convert back ++ to 'struct utmpx'. Shouldn't happen that often. */ ++ return NULL; ++ } ++ } ++ return NULL; ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/updwtmpx.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/updwtmpx.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/updwtmpx.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/updwtmpx.c 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,31 @@ ++/* Copyright (C) 1998, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++extern int __utmpx_to_utmp (const struct utmpx *, struct utmp *); ++ ++void ++updwtmpx (const char *wtmpx_file, const struct utmpx *utmpx) ++{ ++ struct utmp tmp; ++ ++ if (__utmpx_to_utmp (utmpx, &tmp) >= 0) ++ __updwtmp (wtmpx_file, &tmp); ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/utmp-equal.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/utmp-equal.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/utmp-equal.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/utmp-equal.h 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,50 @@ ++/* Copyright (C) 1996-1999,2000-2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++#include ++ ++/* Test whether two entries match. */ ++static int ++__utmp_equal (const struct utmp *entry, const struct utmp *match) ++{ ++ /* This implementation is consistent with the __utmp_to_utmpx function. */ ++ return ++ (!((entry->ut_line[0] == '\0' && entry->ut_name[0] == '\0' ++ && entry->ut_host[0] == '\0') ++ || ((entry->ut_line[0] == '~' || entry->ut_line[0] == '{' ++ || entry->ut_line[0] == '|') ++ && entry->ut_line[1] == '\0')) ++ && ++ !((match->ut_line[0] == '\0' && match->ut_name[0] == '\0' ++ && match->ut_host[0] == '\0') ++ || ((match->ut_line[0] == '~' || match->ut_line[0] == '{' ++ || match->ut_line[0] == '|') ++ && match->ut_line[1] == '\0')) ++ && ++#if _HAVE_UT_ID - 0 ++ (entry->ut_id[0] && match->ut_id[0] ++ ? strncmp (entry->ut_id, match->ut_id, sizeof match->ut_id) == 0 ++ : strncmp (entry->ut_line, match->ut_line, sizeof match->ut_line) == 0) ++#else ++ strncmp (entry->ut_line, match->ut_line, sizeof match->ut_line) == 0 ++#endif ++ ); ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/utmp_file.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/utmp_file.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/utmp_file.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/utmp_file.c 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/utmpconv.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/utmpconv.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/utmpconv.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-compat/utmpconv.c 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,227 @@ ++/* Convert between 'struct utmp' and 'struct utmx'. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* We reuse the 'struct utmp' file format also for 'struct utmpx' records. ++ The mapping from 'struct utmp' to 'struct utmpx' is injective; the ++ reverse mapping succeeds only when common conventions are respected. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* Compare two 'struct utmpx' records. */ ++int ++__utmpx_equal (const struct utmpx *u1, const struct utmpx *u2) ++{ ++ return (u1->ut_type == u2->ut_type) ++ && (u1->ut_pid == u2->ut_pid) ++ && (strncmp (u1->ut_line, u2->ut_line, __UT_LINESIZE) == 0) ++ && (strncmp (u1->ut_id, u2->ut_id, sizeof (u1->ut_id)) == 0) ++ && (strncmp (u1->ut_user, u2->ut_user, __UT_NAMESIZE) == 0) ++ && (strncmp (u1->ut_host, u2->ut_host, __UT_HOSTSIZE) == 0) ++ && (u1->ut_exit.e_termination == u2->ut_exit.e_termination) ++ && (u1->ut_exit.e_exit == u2->ut_exit.e_exit) ++ && (u1->ut_session == u2->ut_session) ++ && (u1->ut_tv.tv_sec == u2->ut_tv.tv_sec) ++ && (u1->ut_tv.tv_usec == u2->ut_tv.tv_usec) ++ && (memcmp (u1->ut_addr_v6, u2->ut_addr_v6, sizeof (u1->ut_addr_v6)) ++ == 0); ++} ++ ++int ++__utmp_to_utmpx (const struct utmp *u, struct utmpx *ux) ++{ ++ memset (ux, '\0', sizeof (struct utmpx)); ++ ++ if (u->ut_line[0] == '\0' && u->ut_name[0] == '\0' && u->ut_host[0] == '\0') ++ { ++ ux->ut_type = EMPTY; ++ } ++ else ++ { ++ if (u->ut_line[0] == '~' && u->ut_line[1] == '\0') ++ { ++ if (strncmp (u->ut_name, "runlevel", UT_NAMESIZE) == 0) ++ ux->ut_type = RUN_LVL; ++ else if (strncmp (u->ut_name, "reboot", UT_NAMESIZE) == 0) ++ ux->ut_type = BOOT_TIME; ++ else if (strncmp (u->ut_name, "acct", UT_NAMESIZE) == 0) ++ ux->ut_type = ACCOUNTING; ++ else ++ return -1; ++ } ++ else if (u->ut_line[0] == '{' && u->ut_line[1] == '\0') ++ { ++ if (strncmp (u->ut_name, "date", UT_NAMESIZE) == 0) ++ ux->ut_type = NEW_TIME; ++ else ++ return -1; ++ } ++ else if (u->ut_line[0] == '|' && u->ut_line[1] == '\0') ++ { ++ if (strncmp (u->ut_name, "date", UT_NAMESIZE) == 0) ++ ux->ut_type = OLD_TIME; ++ else ++ return -1; ++ } ++ else ++ { ++ if (strncmp (u->ut_name, "INIT", UT_NAMESIZE) == 0) ++ ux->ut_type = INIT_PROCESS; ++ else if (strncmp (u->ut_name, "LOGIN", UT_NAMESIZE) == 0) ++ ux->ut_type = LOGIN_PROCESS; ++ else if (strncmp (u->ut_name, "", UT_NAMESIZE) == 0) ++ ux->ut_type = DEAD_PROCESS; ++ else ++ ux->ut_type = USER_PROCESS; ++ ++ if (ux->ut_type == LOGIN_PROCESS || ux->ut_type == USER_PROCESS) ++ strncpy (ux->ut_user, u->ut_name, UT_NAMESIZE); ++ ++ if (strncmp (u->ut_line, "tty", 3) == 0) ++ { ++ strncpy (ux->ut_line, u->ut_line, UT_LINESIZE); ++ strncpy (ux->ut_id, u->ut_line + 3, sizeof (ux->ut_id)); ++ } ++ else ++ { ++ strncpy (ux->ut_id, u->ut_line, sizeof (ux->ut_id)); ++ } ++ } ++ ++ strncpy (ux->ut_host, u->ut_host, UT_HOSTSIZE); ++ ++ /* Hack: Recover the ut_pid from the hidden place after the host. */ ++ if (__strnlen (u->ut_host, UT_HOSTSIZE) < UT_HOSTSIZE - 2) ++ { ++ const char *hidden = u->ut_host + strlen (u->ut_host) + 1; ++ ++ if (hidden[0] != '\0') ++ { ++ size_t n = UT_HOSTSIZE - strlen (u->ut_host) - 1; ++ char buf[UT_HOSTSIZE]; ++ unsigned long pid; ++ char *endp; ++ ++ strncpy (buf, hidden, n); ++ buf[n] = '\0'; ++ ++ pid = strtoul (buf, &endp, 10); ++ if (endp != buf && *endp == '\0') ++ ux->ut_pid = pid; ++ } ++ } ++ ++ ux->ut_tv.tv_sec = u->ut_time; ++ ux->ut_tv.tv_usec = 0; ++ } ++ ++ return 0; ++} ++ ++int ++__utmpx_to_utmp (const struct utmpx *ux, struct utmp *u) ++{ ++ char buf[10+1]; ++ ++ switch (ux->ut_type) ++ { ++ case EMPTY: ++ strncpy (u->ut_line, "", UT_LINESIZE); ++ strncpy (u->ut_name, "", UT_NAMESIZE); ++ strncpy (u->ut_host, "", UT_HOSTSIZE); ++ break; ++ ++ case RUN_LVL: ++ strncpy (u->ut_line, "~", UT_LINESIZE); ++ strncpy (u->ut_name, "runlevel", UT_NAMESIZE); ++ strncpy (u->ut_host, ux->ut_host, UT_HOSTSIZE); ++ break; ++ ++ case BOOT_TIME: ++ strncpy (u->ut_line, "~", UT_LINESIZE); ++ strncpy (u->ut_name, "reboot", UT_NAMESIZE); ++ strncpy (u->ut_host, ux->ut_host, UT_HOSTSIZE); ++ break; ++ ++ case NEW_TIME: ++ strncpy (u->ut_line, "{", UT_LINESIZE); ++ strncpy (u->ut_name, "date", UT_NAMESIZE); ++ strncpy (u->ut_host, ux->ut_host, UT_HOSTSIZE); ++ break; ++ ++ case OLD_TIME: ++ strncpy (u->ut_line, "|", UT_LINESIZE); ++ strncpy (u->ut_name, "date", UT_NAMESIZE); ++ strncpy (u->ut_host, ux->ut_host, UT_HOSTSIZE); ++ break; ++ ++ case INIT_PROCESS: ++ case LOGIN_PROCESS: ++ case USER_PROCESS: ++ case DEAD_PROCESS: ++ if (ux->ut_line[0] != '\0') ++ strncpy (u->ut_line, ux->ut_line, UT_LINESIZE); ++ else ++ strncpy (u->ut_line, ux->ut_id, sizeof (ux->ut_id)); ++ switch (ux->ut_type) ++ { ++ case INIT_PROCESS: ++ strncpy (u->ut_name, "INIT", UT_NAMESIZE); ++ break; ++ case LOGIN_PROCESS: ++ strncpy (u->ut_name, "LOGIN", UT_NAMESIZE); ++ break; ++ case USER_PROCESS: ++ strncpy (u->ut_name, ux->ut_user, UT_NAMESIZE); ++ break; ++ case DEAD_PROCESS: ++ strncpy (u->ut_name, "", UT_NAMESIZE); ++ break; ++ } ++ strncpy (u->ut_host, ux->ut_host, UT_HOSTSIZE); ++ break; ++ ++ case ACCOUNTING: ++ strncpy (u->ut_line, "~", UT_LINESIZE); ++ strncpy (u->ut_name, "acct", UT_NAMESIZE); ++ strncpy (u->ut_host, ux->ut_host, UT_HOSTSIZE); ++ break; ++ ++ default: ++ return -1; ++ } ++ ++ u->ut_time = ux->ut_tv.tv_sec; ++ ++ /* Hack: Put the ut_pid at a hidden place where there is likely room. */ ++ if (ux->ut_pid != 0) ++ { ++ size_t room = UT_HOSTSIZE - strlen (u->ut_host) - 1; ++ ++ sprintf (buf, "%lu", (unsigned long) ux->ut_pid); ++ if (strlen (buf) <= room) ++ strncpy (u->ut_host + strlen (u->ut_host) + 1, buf, room); ++ } ++ ++ return 0; ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-utmpx/utmp_file.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-utmpx/utmp_file.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-utmpx/utmp_file.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/utmp-utmpx/utmp_file.c 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/wait.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/wait.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/wait.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/wait.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/wait3.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/wait3.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/wait3.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/wait3.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/waitpid.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/waitpid.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/waitpid.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/waitpid.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,56 @@ ++/* Copyright (C) 1991,95,96,97,2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* Wait for a child matching PID to die. ++ If PID is greater than 0, match any process whose process ID is PID. ++ If PID is (pid_t) -1, match any process. ++ If PID is (pid_t) 0, match any process with the ++ same process group as the current process. ++ If PID is less than -1, match any process whose ++ process group is the absolute value of PID. ++ If the WNOHANG bit is set in OPTIONS, and that child ++ is not already dead, return (pid_t) 0. If successful, ++ return PID and store the dead child's status in STAT_LOC. ++ Return (pid_t) -1 for errors. If the WUNTRACED bit is set in OPTIONS, ++ return status for stopped children; otherwise don't. */ ++pid_t ++__libc_waitpid (pid_t pid, int *stat_loc, int options) ++{ ++ if (SINGLE_THREAD_P) ++ { ++ return INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL); ++ } ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ ++ int result = INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL); ++ ++ LIBC_CANCEL_RESET (oldtype); ++ ++ return result; ++} ++ ++weak_alias (__libc_waitpid, __waitpid) ++libc_hidden_weak (__waitpid) ++weak_alias (__libc_waitpid, waitpid) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/writev.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/writev.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/writev.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/writev.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,57 @@ ++/* writev for FreeBSD. ++ Copyright (C) 1997-1998, 2000, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++extern ssize_t __syscall_writev (int, const struct iovec *__unbounded, int); ++ ++static ssize_t __atomic_writev_replacement (int, const struct iovec *, ++ int) internal_function; ++ ++ssize_t ++__libc_writev (int fd, const struct iovec *vector, int count) ++{ ++ if (count <= UIO_MAXIOV) ++ { ++ if (SINGLE_THREAD_P) ++ return INLINE_SYSCALL (writev, 3, fd, CHECK_N (vector, count), count); ++ ++ int oldtype = LIBC_CANCEL_ASYNC (); ++ ssize_t result = INLINE_SYSCALL (writev, 3, fd, CHECK_N (vector, count), count); ++ LIBC_CANCEL_RESET (oldtype); ++ return result; ++ ++ } ++ else ++ return __atomic_writev_replacement (fd, vector, count); ++} ++strong_alias (__libc_writev, __writev) ++weak_alias (__libc_writev, writev) ++ ++#define __libc_writev static internal_function __atomic_writev_replacement ++#include ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/Makefile ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/Makefile +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/Makefile 2008-01-03 11:28:06.000000000 +0100 +@@ -0,0 +1,17 @@ ++32bit-predefine = __i386__ ++64bit-predefine = __x86_64__ ++ ++# Additional header files to be installed in $prefix/include: ++ ++ifeq ($(subdir),misc) ++sysdep_headers += \ ++ sys/io.h \ ++ sys/perm.h ++endif ++ ++# Additional functions, and particular system calls: ++ ++ifeq ($(subdir),misc) ++# For and . ++sysdep_routines += iopl ++endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/Versions ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/Versions +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/Versions 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/Versions 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,5 @@ ++libc { ++ GLIBC_2.3.4 { ++ iopl; ++ } ++} +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/bits/mcontext.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/bits/mcontext.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/bits/mcontext.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/bits/mcontext.h 2007-09-09 19:27:04.000000000 +0200 +@@ -0,0 +1,167 @@ ++/* Machine-dependent processor state structure for FreeBSD. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. x86_64 version. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#if !defined _SYS_UCONTEXT_H ++# error "Never use directly; include instead." ++#endif ++ ++/*- ++ * Copyright (c) 2003 Peter Wemm ++ * Copyright (c) 1999 Marcel Moolenaar ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer ++ * in this position and unchanged. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ * ++ * based on $FreeBSD: src/sys/amd64/include/ucontext.h,v 1.18 2003/11/08 04:39:22 peter Exp $ ++ */ ++ ++#ifdef __i386__ ++ ++/* Whole processor state. */ ++typedef struct ++ { ++ /* ++ * The first 20 fields must match the definition of ++ * sigcontext. So that we can support sigcontext ++ * and ucontext_t at the same time. ++ */ ++ ++ int mc_onstack; /* Nonzero if running on sigstack. */ ++ ++ /* Segment registers. */ ++ int mc_gs; ++ int mc_fs; ++ int mc_es; ++ int mc_ds; ++ ++ /* "General" registers. These members are in the order that the i386 ++ `pusha' and `popa' instructions use (`popa' ignores %esp). */ ++ int mc_edi; ++ int mc_esi; ++ int mc_ebp; ++ int mc_isp; /* Not used; sc_esp is used instead. */ ++ int mc_ebx; ++ int mc_edx; ++ int mc_ecx; ++ int mc_eax; ++ ++ int mc_trapno; ++ int mc_err; ++ ++ int mc_eip; /* Instruction pointer. */ ++ int mc_cs; /* Code segment register. */ ++ ++ int mc_efl; /* Processor flags. */ ++ ++ int mc_esp; /* This stack pointer is used. */ ++ int mc_ss; /* Stack segment register. */ ++ ++ int mc_len; /* sizeof(mcontext_t) */ ++#define _MC_FPFMT_NODEV 0x10000 /* device not present or configured */ ++#define _MC_FPFMT_387 0x10001 ++#define _MC_FPFMT_XMM 0x10002 ++ int mc_fpformat; ++#define _MC_FPOWNED_NONE 0x20000 /* FP state not used */ ++#define _MC_FPOWNED_FPU 0x20001 /* FP state came from FPU */ ++#define _MC_FPOWNED_PCB 0x20002 /* FP state came from PCB */ ++ int mc_ownedfp; ++ int mc_spare1[1]; /* align next field to 16 bytes */ ++ /* ++ * See for the internals of mc_fpstate[]. ++ */ ++ int mc_fpstate[128] __attribute__((aligned(16))); ++ int mc_spare2[8]; ++ } mcontext_t; ++ ++#else ++ ++/* Whole processor state. */ ++typedef struct ++ { ++ /* ++ * The first 20 fields must match the definition of ++ * sigcontext. So that we can support sigcontext ++ * and ucontext_t at the same time. ++ */ ++ long mc_onstack; /* XXX - sigcontext compat. */ ++ long mc_rdi; /* machine state (struct trapframe) */ ++ long mc_rsi; ++ long mc_rdx; ++ long mc_rcx; ++ long mc_r8; ++ long mc_r9; ++ long mc_rax; ++ long mc_rbx; ++ long mc_rbp; ++ long mc_r10; ++ long mc_r11; ++ long mc_r12; ++ long mc_r13; ++ long mc_r14; ++ long mc_r15; ++ long mc_trapno; ++ long mc_addr; ++ long mc_flags; ++ long mc_err; ++ long mc_rip; ++ long mc_cs; ++ long mc_rflags; ++ long mc_rsp; ++ long mc_ss; ++ ++ long mc_len; /* sizeof(mcontext_t) */ ++#define _MC_FPFMT_NODEV 0x10000 /* device not present or configured */ ++#define _MC_FPFMT_XMM 0x10002 ++ long mc_fpformat; ++#define _MC_FPOWNED_NONE 0x20000 /* FP state not used */ ++#define _MC_FPOWNED_FPU 0x20001 /* FP state came from FPU */ ++#define _MC_FPOWNED_PCB 0x20002 /* FP state came from PCB */ ++ long mc_ownedfp; ++ /* ++ * See for the internals of mc_fpstate[]. ++ */ ++ long mc_fpstate[64] __attribute__((aligned(16))); ++ long mc_spare[8]; ++} mcontext_t; ++ ++#endif ++ ++/* Traditional BSD names for some members. */ ++#define mc_eflags mc_efl +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/bits/sigcontext.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/bits/sigcontext.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/bits/sigcontext.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/bits/sigcontext.h 2007-09-09 19:18:08.000000000 +0200 +@@ -0,0 +1,147 @@ ++/* Machine-dependent signal context structure for FreeBSD. i386 version. ++ Copyright (C) 1991-1992,1994,1997,2001-2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H ++# error "Never use directly; include instead." ++#endif ++ ++#ifndef _BITS_SIGCONTEXT_H ++#define _BITS_SIGCONTEXT_H 1 ++ ++#ifdef __i386__ ++ ++/* State of this thread when the signal was taken. ++ The unions below are for compatibility with Linux (whose sigcontext ++ components don't have sc_ prefix) */ ++struct sigcontext ++ { ++ __sigset_t sc_mask; /* Blocked signals to restore. */ ++ int sc_onstack; /* Nonzero if running on sigstack. */ ++ ++ /* Segment registers. */ ++ union { int sc_gs; int gs; }; ++ union { int sc_fs; int fs; }; ++ union { int sc_es; int es; }; ++ union { int sc_ds; int ds; }; ++ ++ /* "General" registers. These members are in the order that the i386 ++ `pusha' and `popa' instructions use (`popa' ignores %esp). */ ++ union { int sc_edi; int edi; }; ++ union { int sc_esi; int esi; }; ++ union { int sc_ebp; int ebp; }; ++ union { int sc_isp; int isp; }; /* Not used; sc_esp is used instead. */ ++ union { int sc_ebx; int ebx; }; ++ union { int sc_edx; int edx; }; ++ union { int sc_ecx; int ecx; }; ++ union { int sc_eax; int eax; }; ++ ++ union { int sc_trapno; int trapno; }; ++ union { int sc_err; int err; }; ++ ++ union { int sc_eip; int eip; }; /* Instruction pointer. */ ++ union { int sc_cs; int cs; }; /* Code segment register. */ ++ ++ union { int sc_efl; int eflags; }; /* Processor flags. */ ++ ++ union { int sc_esp; int esp; }; /* This stack pointer is used. */ ++ union { int sc_ss; int ss; }; /* Stack segment register. */ ++ ++ int sc_len; /* sizeof(mcontext_t) */ ++ /* ++ * XXX - See and for ++ * the following fields. ++ */ ++ int sc_fpformat; ++ int sc_ownedfp; ++ int sc_spare1[1]; ++ int sc_fpstate[128] __attribute__((aligned(16))); ++ int sc_spare2[8]; ++ }; ++ ++/* Traditional BSD names for some members. */ ++#define sc_sp sc_esp /* Stack pointer. */ ++#define sc_fp sc_ebp /* Frame pointer. */ ++#define sc_pc sc_eip /* Process counter. */ ++#define sc_ps sc_efl ++#define sc_eflags sc_efl ++ ++#if 1 /* FIXME: These need verification. */ ++ ++/* Codes for SIGILL. */ ++#define ILL_PRIVIN_FAULT 1 ++#define ILL_ALIGN_FAULT 14 ++#define ILL_FPOP_FAULT 24 ++ ++/* Codes for SIGBUS. */ ++#define BUS_PAGE_FAULT 12 ++#define BUS_SEGNP_FAULT 26 ++#define BUS_STK_FAULT 27 ++#define BUS_SEGM_FAULT 29 ++ ++#endif ++ ++#else ++ ++struct sigcontext ++ { ++ __sigset_t sc_mask; /* Blocked signals to restore. */ ++ long sc_onstack; /* Nonzero if running on sigstack. */ ++ union { long sc_rdi; long rdi;}; ++ union { long sc_rsi; long rsi;}; ++ union { long sc_rdx; long rdx;}; ++ union { long sc_rcx; long rcx;}; ++ union { long sc_r8; long r8;}; ++ union { long sc_r9; long r9;}; ++ union { long sc_rax; long rax;}; ++ union { long sc_rbx; long rbx;}; ++ union { long sc_rbp; long rbp;}; ++ union { long sc_r10; long r10;}; ++ union { long sc_r11; long r11;}; ++ union { long sc_r12; long r12;}; ++ union { long sc_r13; long r13;}; ++ union { long sc_r14; long r14;}; ++ union { long sc_r15; long r15;}; ++ union { long sc_trapno; long trapno;}; ++ union { long sc_addr; long addr;}; ++ union { long sc_flags; long flags;}; ++ union { long sc_err; long err;}; ++ union { long sc_rip; long rip;}; ++ union { long sc_cs; long cs;}; ++ union { long sc_rflags; long rflags;}; ++ union { long sc_rsp; long rsp;}; ++ union { long sc_ss; long ss;}; ++ long sc_len; /* sizeof(mcontext_t) */ ++ /* ++ * XXX - See and for ++ * the following fields. ++ */ ++ long sc_fpformat; ++ long sc_ownedfp; ++ long sc_fpstate[64] __attribute__((aligned(16))); ++ long sc_spare[8]; ++ }; ++ ++/* Traditional BSD names for some members. */ ++#define sc_sp sc_rsp /* Stack pointer. */ ++#define sc_fp sc_rbp /* Frame pointer. */ ++#define sc_pc sc_rip /* Process counter. */ ++ ++#endif ++ ++#endif /* _BITS_SIGCONTEXT_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/bits/time.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/bits/time.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/bits/time.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/bits/time.h 2007-09-09 18:57:02.000000000 +0200 +@@ -0,0 +1,89 @@ ++/* System-dependent timing definitions. FreeBSD version. ++ Copyright (C) 1996-1997, 1999, 2000, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* ++ * Never include this file directly; use instead. ++ */ ++ ++#ifndef __need_timeval ++# ifndef _BITS_TIME_H ++# define _BITS_TIME_H 1 ++ ++/* ISO/IEC 9899:1990 7.12.1: ++ The macro `CLOCKS_PER_SEC' is the number per second of the value ++ returned by the `clock' function. */ ++/* CAE XSH, Issue 4, Version 2: ++ The value of CLOCKS_PER_SEC is required to be 1 million on all ++ XSI-conformant systems. */ ++# define CLOCKS_PER_SEC 1000000l ++ ++# if !defined __STRICT_ANSI__ && !defined __USE_XOPEN2K ++/* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK ++ presents the real value for clock ticks per second for the system. */ ++# define CLK_TCK 128 ++# endif ++ ++# ifdef __USE_POSIX199309 ++/* Identifier for system-wide realtime clock. */ ++# define CLOCK_REALTIME 0 ++/* High-resolution timer from the CPU. */ ++# define CLOCK_PROCESS_CPUTIME_ID 2 ++/* Thread-specific CPU-time clock. */ ++# define CLOCK_THREAD_CPUTIME_ID 3 ++/* Monotonic system-wide clock. */ ++# define CLOCK_MONOTONIC 4 ++/* These are BSD specific clocks. */ ++# ifdef __USE_BSD ++# define CLOCK_VIRTUAL 1 ++# define CLOCK_PROF 2 ++# endif ++ ++/* Flag to indicate time is absolute. */ ++# define TIMER_ABSTIME 1 ++# endif ++ ++ ++/* Getkerninfo clock information structure */ ++struct clockinfo ++ { ++ int hz; /* clock frequency */ ++ int tick; /* micro-seconds per hz tick */ ++ int spare; ++ int stathz; /* statistics clock frequency */ ++ int profhz; /* profiling clock frequency */ ++ }; ++ ++# endif /* bits/time.h */ ++#endif ++ ++#ifdef __need_timeval ++# undef __need_timeval ++# ifndef _STRUCT_TIMEVAL ++# define _STRUCT_TIMEVAL 1 ++# include ++ ++/* A time value that is accurate to the nearest ++ microsecond but also has a range of years. */ ++struct timeval ++ { ++ __time_t tv_sec; /* Seconds. */ ++ __suseconds_t tv_usec; /* Microseconds. */ ++ }; ++# endif /* struct timeval */ ++#endif /* need timeval */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-cache.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-cache.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-cache.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-cache.h 2007-01-05 11:36:38.000000000 +0100 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-machine.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-machine.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-machine.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-machine.h 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,80 @@ ++/* Machine-dependent ELF dynamic relocation inline functions. FreeBSD/amd64 version. ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifdef dl_machine_h ++#include_next ++#else ++#include_next ++ ++#undef RTLD_START ++ ++/* Initial entry point code for the dynamic linker. ++ The C function `_dl_start' is the real entry point; ++ its return value is the user program's entry point. */ ++#define RTLD_START asm ("\n\ ++.text\n\ ++ .align 16\n\ ++.globl _start\n\ ++# we dont use it: .globl _dl_start_user\n\ ++_start:\n\ ++ # align stack.\n\ ++ andq $-16, %rsp\n\ ++ # save argument pointer.\n\ ++ movq %rdi, %r13\n\ ++ call _dl_start\n\ ++# we dont use it: _dl_start_user:\n\ ++ # Save the user entry point address in %r12.\n\ ++ movq %rax, %r12\n\ ++ # See if we were run as a command with the executable file\n\ ++ # name as an extra leading argument.\n\ ++ movl _dl_skip_args(%rip), %eax\n\ ++ # get the original argument count.\n\ ++ movq 0(%r13), %rdx\n\ ++ # Adjust the pointer to skip _dl_skip_args words.\n\ ++ leaq (%r13,%rax,8), %r13\n\ ++ # Subtract _dl_skip_args from argc.\n\ ++ subl %eax, %edx\n\ ++ # Put argc on adjusted place\n\ ++ movq %rdx, 0(%r13)\n\ ++ # Call _dl_init (struct link_map *main_map, int argc, char **argv, char **env)\n\ ++ # argc -> rsi\n\ ++ movq %rdx, %rsi\n\ ++ # _dl_loaded -> rdi\n\ ++ movq _rtld_local(%rip), %rdi\n\ ++ # env -> rcx\n\ ++ leaq 16(%r13,%rdx,8), %rcx\n\ ++ # argv -> rdx\n\ ++ leaq 8(%r13), %rdx\n\ ++ # Clear %rbp to mark outermost frame obviously even for constructors.\n\ ++ xorl %ebp, %ebp\n\ ++ # Call the function to run the initializers.\n\ ++ call _dl_init_internal@PLT\n\ ++ # Pass our finalizer function to the user in %rdx, as per ELF ABI draft.\n\ ++ leaq _dl_fini(%rip), %rdx\n\ ++ # And make sure %rdi points to argc stored on the stack.\n\ ++ movq %r13, %rdi\n\ ++ # Pass finalizer function also in %rsi, as per C calling convention.\n\ ++ movq %rdx, %rsi\n\ ++ # Jump to the user's entry point.\n\ ++ jmp *%r12\n\ ++.previous\n\ ++"); ++ ++#endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-procinfo.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-procinfo.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-procinfo.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-procinfo.c 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-procinfo.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-procinfo.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-procinfo.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/dl-procinfo.h 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1 @@ ++#include +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/elf/start.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/elf/start.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/elf/start.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/elf/start.S 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,143 @@ ++/* Startup code for FreeBSD/amd64 ABI. ++ Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Andreas Jaeger , 2001. ++ FreeBSD modification by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ In addition to the permissions in the GNU Lesser General Public ++ License, the Free Software Foundation gives you unlimited ++ permission to link the compiled version of this file with other ++ programs, and to distribute those programs without any restriction ++ coming from the use of this file. (The GNU Lesser General Public ++ License restrictions do apply in other respects; for example, they ++ cover modification of the file, and distribution when not linked ++ into another program.) ++ ++ Note that people who make modified versions of this file are not ++ obligated to grant this special exception for their modified ++ versions; it is their choice whether to do so. The GNU Lesser ++ General Public License gives permission to release a modified ++ version without this exception; this exception also makes it ++ possible to release a modified version which carries forward this ++ exception. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* This is the canonical entry point, usually the first thing in the text ++ segment. The SVR4/i386 ABI (pages 3-31, 3-32) says that when the entry ++ point runs, most registers' values are unspecified, except for a few. ++ Blindly applied on amd64: ++ ++ %rdx Contains a function pointer to be registered with `atexit'. ++ This is how the dynamic linker arranges to have DT_FINI ++ functions called for shared libraries that have been loaded ++ before this code runs. ++ ++ %rsp The stack contains the arguments and environment: ++ 0(%rsp) argc ++ 8(%rsp) argv[0] ++ ... ++ (8*argc)(%rsp) NULL ++ (8*(argc+1))(%rsp) envp[0] ++ ... ++ NULL ++ ++ But on amd64 %rsp also have to be 16-byte aligned, ++ standard C calling convention already passes arguments in registers. ++ ++ FreeBSD uses %edi as pointer to arguments and environment, %rsp is passed aligned. ++ On entry from kernel, %rsp=%rdi or %rsp=%rdi-8, ++ on entry from ld.so, glibc might set up it slightly differently. ++ ++ On FreeBSD, we use %rsi for passing function pointer to rtld_fini(). ++ On entry from FreeBSD kernel, %rsi is cleared, %rdx is not cleared, ++ on entry from ld.so, glibc sets both %rsi and %rdx to point to rtld_fini(). ++ ++ Used interface (via %rdi, %rsi) is equal to standard C calling interface for ++ ++ void _start(void *arg, void *rtld_fini()); ++ ++*/ ++ ++#include "bp-sym.h" ++ ++ .text ++ .globl _start ++ .type _start,@function ++_start: ++ /* Clear the frame pointer. The ABI suggests this be done, to mark ++ the outermost frame obviously. */ ++ xorl %ebp, %ebp /* zero extending clears whole rbp */ ++ ++ /* Extract the arguments as encoded on the stack and set up ++ the arguments for __libc_start_main (int (*main) (int, char **, char **), ++ int argc, char *argv, ++ void (*init) (void), void (*fini) (void), ++ void (*rtld_fini) (void), void *stack_end). ++ The arguments are passed via registers and on the stack: ++ main: %rdi ++ argc: %rsi ++ argv: %rdx ++ init: %rcx ++ fini: %r8 ++ rtld_fini: %r9 ++ stack_end: stack. */ ++ ++ movq %rsi, %r9 /* Address of the shared library termination ++ function. */ ++ movq 0(%rdi), %rsi /* argument count. */ ++ leaq 8(%rdi), %rdx /* argv starts just at above argc. */ ++ ++ /* Align the stack to a 16 byte boundary to follow the ABI. */ ++ andq $~15, %rsp ++ ++ pushq %rax /* Push garbage because we push 8 more bytes. */ ++ ++ /* Provide the highest stack address to the user code (for stacks ++ which grow downwards). */ ++ pushq %rsp ++ ++#ifdef SHARED ++ /* Pass address of our own entry points to .fini and .init. */ ++ movq __libc_csu_fini@GOTPCREL(%rip), %r8 ++ movq __libc_csu_init@GOTPCREL(%rip), %rcx ++ ++ movq BP_SYM (main)@GOTPCREL(%rip), %rdi ++ ++ /* Call the user's main function, and exit with its value. ++ But let the libc call main. */ ++ call BP_SYM (__libc_start_main)@PLT ++#else ++ /* Pass address of our own entry points to .fini and .init. */ ++ movq $__libc_csu_fini, %r8 ++ movq $__libc_csu_init, %rcx ++ ++ movq $BP_SYM (main), %rdi ++ ++ /* Call the user's main function, and exit with its value. ++ But let the libc call main. */ ++ call BP_SYM (__libc_start_main) ++#endif ++ ++ hlt /* Crash if somehow `exit' does return. */ ++ ++/* Define a symbol for the first piece of initialized data. */ ++ .data ++ .globl __data_start ++__data_start: ++ .long 0 ++ .weak data_start ++ data_start = __data_start +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/get_clockfreq.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/get_clockfreq.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/get_clockfreq.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/get_clockfreq.c 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1 @@ ++#include "../i386/get_clockfreq.c" +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/getcontext.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/getcontext.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/getcontext.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/getcontext.S 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,38 @@ ++/* Save current context. ++ Copyright (C) 2006 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++.text ++ENTRY(__getcontext) ++ clc ++ movq 0(%rsp), %rsi /* save the return PC value */ ++ ++ DO_CALL (getcontext, 1) ++ jb SYSCALL_ERROR_LABEL ++ ++ addq $8, %rsp /* remove stale return address */ ++ jmp *%rsi ++ ++L(pseudo_end): ++ ret ++ ++PSEUDO_END(__getcontext) ++ ++weak_alias(__getcontext, getcontext) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/iopl.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/iopl.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/iopl.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/iopl.c 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1 @@ ++#include "../i386/iopl.c" +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ldconfig.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ldconfig.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ldconfig.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ldconfig.h 2007-01-05 11:36:38.000000000 +0100 +@@ -0,0 +1,39 @@ ++/* Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++#define SYSDEP_KNOWN_INTERPRETER_NAMES \ ++ { "/lib/ld.so.1", FLAG_ELF_LIBC6 }, \ ++ { "/lib/ld-kfreebsd-x86-64.so.1", FLAG_ELF_LIBC6 }, \ ++ { "/lib64/ld-kfreebsd-x86-64.so.1", FLAG_ELF_LIBC6 }, \ ++ { "/libexec/ld-elf.so.1", FLAG_ELF_LIBC5 }, ++ ++#define SYSDEP_KNOWN_LIBRARY_NAMES \ ++ { "libc.so.0.1", FLAG_ELF_LIBC6 }, \ ++ { "libm.so.1", FLAG_ELF_LIBC6 }, \ ++ { "libc.so.4", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.4", FLAG_ELF_LIBC5 }, \ ++ { "libc.so.5", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.5", FLAG_ELF_LIBC5 }, \ ++ { "libc.so.6", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.6", FLAG_ELF_LIBC5 }, \ ++ { "libc.so.7", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.7", FLAG_ELF_LIBC5 }, \ ++ { "libc.so.8", FLAG_ELF_LIBC5 }, \ ++ { "libm.so.8", FLAG_ELF_LIBC5 }, +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ldd-rewrite.sed ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ldd-rewrite.sed +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ldd-rewrite.sed 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ldd-rewrite.sed 2007-01-05 11:36:38.000000000 +0100 +@@ -0,0 +1,3 @@ ++/LD_TRACE_LOADED_OBJECTS=1/a\ ++add_env="$add_env LD_LIBRARY_VERSION=\\$verify_out" ++s_^\(RTLDLIST=\)\(.*lib\)\(\|64\)\(/[^/]*\)\(-kfreebsd-x86-64\)\(\.so\.[0-9.]*\)[ ]*$_\1"\2\4\6 \264\4\5\6"_ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/Makefile ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/Makefile +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/Makefile 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/Makefile 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,4 @@ ++ifeq ($(subdir),linuxthreads) ++CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions \ ++ -fno-asynchronous-unwind-tables $(fno-unit-at-a-time) ++endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/asm/prctl.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/asm/prctl.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/asm/prctl.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/asm/prctl.h 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1 @@ ++/* placeholder to make linuxthreads/sysdeps/x86_64/pt-machine.h happy */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/pt-machine.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/pt-machine.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/pt-machine.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/pt-machine.h 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,51 @@ ++/* Machine-dependent pthreads configuration and inline functions. ++ x86-64 FreeBSD version. ++ Copyright (C) 2001, 2002, 2003, 2004 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _FREEBSD_PT_MACHINE_H ++#define _FREEBSD_PT_MACHINE_H 1 ++ ++/* ++ almost all parts are common with linux version ++ */ ++ ++#include ++ ++#ifndef __ASSEMBLER__ ++ ++/* and only one FreeBSD specifics */ ++ ++#include ++ ++/* Initialize the thread-unique value. */ ++ ++#undef INIT_THREAD_SELF ++#define INIT_THREAD_SELF(descr, nr) \ ++{ \ ++ long tmp; \ ++ tmp = (long) descr; \ ++ if (sysarch(AMD64_SET_FSBASE, &tmp) != 0) \ ++ { \ ++ abort(); \ ++ } \ ++} ++ ++#endif /* !__ASSEMBLER__ */ ++ ++#endif /* pt-machine.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/sysdep-cancel.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/sysdep-cancel.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/sysdep-cancel.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/sysdep-cancel.h 2007-05-23 05:32:13.000000000 +0200 +@@ -0,0 +1,145 @@ ++/* Copyright (C) 2002, 2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Jakub Jelinek , 2002. ++ Modification for FreeBSD contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#ifndef __ASSEMBLER__ ++# include ++#endif ++ ++/* Syscalls with more than 6 arguments are not supported here. */ ++ ++#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt ++ ++# undef PSEUDO ++# define PSEUDO(name, syscall_name, args) \ ++ .text; \ ++ ENTRY (name) \ ++ SINGLE_THREAD_P; \ ++ jne L(pseudo_cancel); \ ++ DO_CALL (syscall_name, args); \ ++ jb SYSCALL_ERROR_LABEL; \ ++ ret; \ ++ L(pseudo_cancel): \ ++ /* Save registers that might get destroyed. */ \ ++ SAVESTK_##args \ ++ PUSHARGS_##args \ ++ CENABLE \ ++ /* Restore registers. */ \ ++ POPARGS_##args \ ++ RESTSTK_##args \ ++ /* The return value from CENABLE is argument for CDISABLE. */ \ ++ movq %rax, (%rsp); \ ++ movl $SYS_ify (syscall_name), %eax; \ ++ syscall; \ ++ popq %rdi; cfi_adjust_cfa_offset(-8); \ ++ pushfq; cfi_adjust_cfa_offset(8); \ ++ /* Save %rax since it's the return/error code from the syscall. */ \ ++ movq %rax, 8(%rsp); \ ++ CDISABLE \ ++ popfq; cfi_adjust_cfa_offset(-8); \ ++ /* fetch the error code from the syscall. */ \ ++ popq %rax; cfi_adjust_cfa_offset(-8); \ ++ /* adjust rsp, do not change flags */ \ ++ popq %rdx; cfi_adjust_cfa_offset(-8); \ ++ jb SYSCALL_ERROR_LABEL; \ ++ L(pseudo_end): ++ ++# define PUSHARGS_0 /* Nothing. */ ++# define PUSHARGS_1 PUSHARGS_0 movq %rdi, 8(%rsp); ++# define PUSHARGS_2 PUSHARGS_1 movq %rsi, 16(%rsp); ++# define PUSHARGS_3 PUSHARGS_2 movq %rdx, 24(%rsp); ++# define PUSHARGS_4 PUSHARGS_3 movq %rcx, 32(%rsp); ++# define PUSHARGS_5 PUSHARGS_4 movq %r8, 40(%rsp); ++# define PUSHARGS_6 PUSHARGS_5 movq %r9, 48(%rsp); ++ ++# define POPARGS_0 /* Nothing. */ ++# define POPARGS_1 POPARGS_0 movq 8(%rsp), %rdi; ++# define POPARGS_2 POPARGS_1 movq 16(%rsp), %rsi; ++# define POPARGS_3 POPARGS_2 movq 24(%rsp), %rdx; ++# define POPARGS_4 POPARGS_3 movq 32(%rsp), %r10; ++# define POPARGS_5 POPARGS_4 movq 40(%rsp), %r8; ++# define POPARGS_6 POPARGS_5 movq 48(%rsp), %r9; ++ ++/* We always have to align the stack before calling a function. */ ++# define SAVESTK_0 subq $24, %rsp;cfi_adjust_cfa_offset(24); ++# define SAVESTK_1 SAVESTK_0 ++# define SAVESTK_2 SAVESTK_1 ++# define SAVESTK_3 subq $40, %rsp;cfi_adjust_cfa_offset(40); ++# define SAVESTK_4 SAVESTK_3 ++# define SAVESTK_5 subq $56, %rsp;cfi_adjust_cfa_offset(56); ++# define SAVESTK_6 SAVESTK_5 ++ ++# define RESTSTK_0 /* Nothing. */ ++# define RESTSTK_1 RESTSTK_0 ++# define RESTSTK_2 RESTSTK_1 ++# define RESTSTK_3 addq $16, %rsp;cfi_adjust_cfa_offset(-16); ++# define RESTSTK_4 RESTSTK_3 ++# define RESTSTK_5 addq $32, %rsp;cfi_adjust_cfa_offset(-32); ++# define RESTSTK_6 RESTSTK_5 ++ ++# ifdef IS_IN_libpthread ++# define CENABLE call __pthread_enable_asynccancel; ++# define CDISABLE call __pthread_disable_asynccancel; ++# define __local_multiple_threads __pthread_multiple_threads ++# elif !defined NOT_IN_libc ++# define CENABLE call __libc_enable_asynccancel; ++# define CDISABLE call __libc_disable_asynccancel; ++# define __local_multiple_threads __libc_multiple_threads ++# else ++# define CENABLE call __librt_enable_asynccancel@plt; ++# define CDISABLE call __librt_disable_asynccancel@plt; ++# endif ++ ++# if defined IS_IN_libpthread || !defined NOT_IN_libc ++# ifndef __ASSEMBLER__ ++extern int __local_multiple_threads attribute_hidden; ++# define SINGLE_THREAD_P \ ++ __builtin_expect (__local_multiple_threads == 0, 1) ++# else ++# define SINGLE_THREAD_P cmpl $0, __local_multiple_threads(%rip) ++# endif ++ ++# else ++ ++# ifndef __ASSEMBLER__ ++# define SINGLE_THREAD_P \ ++ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ ++ p_header.data.multiple_threads) == 0, 1) ++# else ++# define SINGLE_THREAD_P cmpl $0, %fs:MULTIPLE_THREADS_OFFSET ++# endif ++ ++# endif ++ ++#elif !defined __ASSEMBLER__ ++ ++/* This code should never be used but we define it anyhow. */ ++# define SINGLE_THREAD_P (1) ++# define NO_CANCELLATION 1 ++ ++#endif ++ ++#ifndef __ASSEMBLER__ ++# define RTLD_SINGLE_THREAD_P \ ++ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ ++ p_header.data.multiple_threads) == 0, 1) ++#endif +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/tls.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/tls.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/tls.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/linuxthreads/tls.h 2007-08-07 11:53:42.000000000 +0200 +@@ -0,0 +1,62 @@ ++/* Definitions for thread-local data handling. linuxthreads/x86-64 version. ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Modification for FreeBSD by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _FREEBSD_TLS_H ++#define _FREEBSD_TLS_H ++ ++#include ++ ++#ifdef HAVE_TLS_SUPPORT ++ ++# ifndef __ASSEMBLER__ ++ ++#include ++#include ++ ++/* Code to initially initialize the thread pointer. This might need ++ special attention since 'errno' is not yet available and if the ++ operation can cause a failure 'errno' must not be touched. */ ++ ++# undef TLS_INIT_TP ++# define TLS_INIT_TP(descr, secondcall) \ ++ ({ \ ++ void *_descr = (descr); \ ++ tcbhead_t *head = _descr; \ ++ long int _result; \ ++ \ ++ head->tcb = _descr; \ ++ /* For now the thread descriptor is at the same address. */ \ ++ head->self = _descr; \ ++ \ ++ asm volatile ("syscall" \ ++ : "=a" (_result) \ ++ : "0" ((unsigned long int) SYS_sysarch), \ ++ "D" ((unsigned long int) AMD64_SET_FSBASE), \ ++ "S" (&_descr) \ ++ : "memory", "cc", "cx", "dx", "r8", "r9", "r10", "r11"); \ ++ \ ++ _result ? "cannot set %fs base address for thread-local storage" : 0; \ ++ }) ++ ++ ++# endif /* HAVE_TLS_SUPPORT */ ++#endif /* __ASSEMBLER__ */ ++ ++#endif /* tls.h */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/makecontext.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/makecontext.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/makecontext.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/makecontext.S 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,146 @@ ++/* makecontext() for FreeBSD/amd64. ++ Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++/* ++ void makecontext(ucontext_t *ucp, void *func(), int argc, ...); ++ ++ ++ input parameters: ++ ++ rdi ucp ++ rsi func ++ edx argc ++ rcx arg1 -> ucp.rdi ++ r8 arg2 -> ucp.rsi ++ r9 arg3 -> ucp.rdx ++ 8(%rsp) arg4 -> ucp.rcx ++ 16(%rsp) arg5 -> ucp.r8 ++ 24(%rsp) arg6 -> ucp.r9 ++ i*8+24(%rsp) arg(6+i)-> future stack ++ ++*/ ++ ++ENTRY(__makecontext) ++ ++ /* Compute the address of the stack. ++ The information comes from us_stack element. */ ++ movq oSS_SP(%rdi), %rax ++ addq oSS_SIZE(%rdi), %rax ++ ++ /* Put start addr into ucp */ ++ movq %rsi, oRIP(%rdi) ++ ++ /* properly align future stack */ ++ andq $-16, %rax ++ subq $8, %rax ++ ++ /* Put the next context into preserved ucp.rbx ++ (from the uc_link element). */ ++ movq oLINK(%rdi), %rsi ++ movq %rsi, oRBX(%rdi) ++ ++ /* save future registers arguments */ ++ ++ orl %edx, %edx ++ jz L(param_done) ++ ++ decl %edx ++ movq %rcx, oRDI(%rdi) ++ jz L(param_done) ++ ++ decl %edx ++ movq %r8, oRSI(%rdi) ++ jz L(param_done) ++ ++ decl %edx ++ movq %r9, oRDX(%rdi) ++ jz L(param_done) ++ ++ movq 8(%rsp), %rsi ++ decl %edx ++ movq %rsi, oRCX(%rdi) ++ jz L(param_done) ++ ++ movq 16(%rsp), %rcx ++ decl %edx ++ movq %rcx, oR8(%rdi) ++ jz L(param_done) ++ ++ movq 24(%rsp), %rsi ++ decl %edx ++ movq %rsi, oR9(%rdi) ++ jz L(param_done) ++ ++ /* we have to copy some arguments also on the future stack */ ++ movl %edx, %ecx ++ negq %rdx ++ leaq -16(%rax,%rdx,8), %rax /* we a litle bit waste stack space */ ++ orq $8, %rax ++ ++1: movq 24(%rsp,%rcx,8), %rsi ++ movq %rsi,(%rax,%rcx,8) ++ loop 1b ++ ++L(param_done): ++ ++ /* Store the future stack pointer and chain helper code. */ ++ leaq L(exitcode)(%rip), %rdx ++ movq %rax, oRSP(%rdi) ++ movq %rdx, (%rax) ++ ++ /* 'makecontext' returns no value. */ ++ ret ++ ++/***************************************************************************/ ++ ++ /* This is the helper code which gets called if a function which ++ is registered with 'makecontext' returns. In this case we ++ have to install the context listed in the uc_link element of ++ the context 'makecontext' manipulated at the time of the ++ 'makecontext' call. If the pointer is NULL the process must ++ terminate. */ ++ ++L(exitcode): ++ /* we don't bother with extra arguments left on the stack ++ - more than 6 arguments is rare ++ - setcontext changes stacks immediately ++ - exit will call _exit in near future ++ */ ++ ++ testq %rbx, %rbx /* If it is zero exit. */ ++ jz 2f ++ ++ movq %rbx, %rdi ++ call JUMPTARGET(__setcontext) ++ /* If this returns (which can happen if the syscall fails) we'll ++ exit the program with the return error value (-1). */ ++ ++2: movq %rax, %rdi ++ call HIDDEN_JUMPTARGET(exit) ++ /* The 'exit' call should never return. In case it does cause ++ the process to terminate. */ ++ hlt ++END(__makecontext) ++ ++weak_alias(__makecontext, makecontext) ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/pipe.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/pipe.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/pipe.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/pipe.S 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,32 @@ ++/* Copyright (C) 2006 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++.text ++ENTRY (__pipe) ++ DO_CALL (pipe, 1) ++ jb SYSCALL_ERROR_LABEL ++ movl %eax, 0(%rdi) ++ movl %edx, 4(%rdi) ++ xorl %eax, %eax ++L(pseudo_end): ++ ret ++PSEUDO_END (__pipe) ++libc_hidden_def (__pipe) ++weak_alias (__pipe, pipe) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/readelflib.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/readelflib.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/readelflib.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/readelflib.c 2007-02-05 15:33:41.000000000 +0100 +@@ -0,0 +1,62 @@ ++/* Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Andreas Jaeger , 1999 and ++ Jakub Jelinek , 1999. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++ ++int process_elf32_file (const char *file_name, const char *lib, int *flag, ++ unsigned int *osversion, char **soname, ++ void *file_contents, size_t file_length); ++int process_elf64_file (const char *file_name, const char *lib, int *flag, ++ unsigned int *osversion, char **soname, ++ void *file_contents, size_t file_length); ++ ++/* Returns 0 if everything is ok, != 0 in case of error. */ ++int ++process_elf_file (const char *file_name, const char *lib, int *flag, ++ unsigned int *osversion, char **soname, void *file_contents, ++ size_t file_length) ++{ ++ ElfW(Ehdr) *elf_header = (ElfW(Ehdr) *) file_contents; ++ int ret; ++ ++ if (elf_header->e_ident [EI_CLASS] == ELFCLASS32) ++ return process_elf32_file (file_name, lib, flag, osversion, soname, ++ file_contents, file_length); ++ else ++ { ++ ret = process_elf64_file (file_name, lib, flag, osversion, soname, ++ file_contents, file_length); ++ /* x86-64 64bit libraries are always LIBC6. */ ++ if (!ret) ++ *flag = FLAG_X8664_LIB64|FLAG_ELF_LIBC6; ++ return ret; ++ } ++} ++ ++#undef __ELF_NATIVE_CLASS ++#undef process_elf_file ++#define process_elf_file process_elf32_file ++#define __ELF_NATIVE_CLASS 32 ++#include "elf/readelflib.c" ++ ++#undef __ELF_NATIVE_CLASS ++#undef process_elf_file ++#define process_elf_file process_elf64_file ++#define __ELF_NATIVE_CLASS 64 ++#include "elf/readelflib.c" +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/rfork.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/rfork.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/rfork.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/rfork.S 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,44 @@ ++/* Copyright (C) 1991-1992, 1994-1995, 1997, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++.text; ++ENTRY (__rfork) ++ /* save the return PC value into RSI */ ++ movq 0(%rsp), %rsi; ++ DO_CALL (rfork, 1) ++ jb SYSCALL_ERROR_LABEL; ++ /* R1 is now 0 for the parent and 1 for the child. Decrement it to ++ make it -1 (all bits set) for the parent, and 0 (no bits set) ++ for the child. Then AND it with R0, so the parent gets ++ R0&-1==R0, and the child gets R0&0==0. */ ++ decq %rdx ++ andq %rdx, %rax ++ ++ popq %rdx ++ cfi_adjust_cfa_offset(-8) ++ ++ jmp *%rsi ++ ++L(pseudo_end): ++ ret ++PSEUDO_END (__rfork) ++ ++weak_alias (__rfork, rfork) ++ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sigcontextinfo.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sigcontextinfo.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sigcontextinfo.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sigcontextinfo.h 2007-11-15 15:46:16.000000000 +0100 +@@ -0,0 +1,35 @@ ++/* Copyright (C) 1998, 1999, 2001, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* ++native FreeBSD: ++ sighandler(int signum, int code, struct sigcontext * sg, void * fault_ip) ++posix like: ++ sighandler(int signum, siginfo_t * si, struct sigcontext * sg, void * fault_ip) ++*/ ++ ++#define SIGCONTEXT long _code, struct sigcontext * _sg, void * ++#define SIGCONTEXT_EXTRA_ARGS _code, _sg, ++ ++/* really, really, rest of glibc expects that struct sigcontext is the last argument */ ++#define GET_PC(ctx) ((void *) (_sg)->sc_rip) ++#define GET_FRAME(ctx) ((void *) (_sg)->sc_rbp) ++#define GET_STACK(ctx) ((void *) (_sg)->sc_rsp) ++ ++#define CALL_SIGHANDLER(handler, signo, ctx) \ ++ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx)) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/start_thread.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/start_thread.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/start_thread.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/start_thread.S 2008-01-06 03:10:36.000000000 +0100 +@@ -0,0 +1,196 @@ ++/* Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Bruno Haible , 2002. ++ Modification for amd64 contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* __start_thread (flags, stack, func, arg) ++ calls __rfork (flags), and in the child sets the stack pointer and then ++ calls _exit (func (arg)). ++ It cannot be done in portable C. */ ++ ++/* ++ The parameters are passed in registers: ++ rdi: flags for rfork ++ rsi: child_stack ++ rdx: func ++ rcx: arg ++*/ ++ ++#include ++#include ++ ++#define SIG_SETMASK 3 ++ ++/* There is a window of a few instructions, right after the rfork ++ system call, where the handling of a signal would write garbage ++ into the stack shared by the parent and the child (assuming ++ RFMEM is set in flags). To solve this: 1. We block all signals ++ around the rfork system call and unblock them afterwards in ++ the parent and in the child (but only after changing the stack ++ pointer). 2. The child accesses only values passed in registers ++ and on its own stack. This way, if the parent is scheduled to ++ run first, and handles a signal, it will not affect the child; ++ and if the child runs first, and handles a signal, it will use ++ the child's stack and not affect the parent. ++*/ ++ ++ .text ++ENTRY (__start_thread) ++ ++ /* Insert the argument onto the new aligned stack. */ ++ andq $-16,%rsi ++ subq $16,%rsi ++ movq %rcx,8(%rsi) ++ ++ /* Save the function pointer. It will be popped off in the child */ ++ movq %rdx,0(%rsi) ++ ++ testq $32, %rdi /* flags & RFMEM */ ++ jnz L(complex) ++ ++ /* Do the system call. */ ++ movl $SYS_ify(rfork),%eax ++ /* End FDE now, because in the child the unwind info will be ++ wrong. */ ++ cfi_endproc; ++ syscall /* rdi and rsi are extra preserved */ ++ ++ jb SYSCALL_ERROR_LABEL ++ ++ testq %rdx,%rdx /* 0 for the parent and 1 for the child */ ++ jz L(pseudo_end) /* just return in parent */ ++ ++L(thread_start): ++ ++ /* set up stack */ ++ movq %rsi, %rsp ++ ++ /* Clear the frame pointer. The ABI suggests this be done, to mark ++ the outermost frame obviously. */ ++ xorl %ebp, %ebp ++ ++L(thread_start2): ++ ++ /* Set up arguments for the function call. */ ++ popq %rax /* Function to call. */ ++ popq %rdi /* Argument. */ ++ call *%rax ++ ++ /* Call exit with return value from function call. */ ++ movq %rax, %rdi ++ call HIDDEN_JUMPTARGET (_exit) ++ ++ ++/****************************************************************************************************** ++ * ++ * and now the complex one ... ++ * ++ ******************************************************************************************************/ ++ ++L(complex): ++ ++ subq $32, %rsp ++ ++ /* save arguments - flags and stack */ ++ movq %rdi,0(%rsp) ++ movq %rsi,8(%rsp) ++ ++ /* Block all signals. */ ++ orq $-1, %rax ++ movq %rax, 16(%rsp) ++ movq %rax, 24(%rsp) ++ ++ leaq 16(%rsp), %rsi ++ movl $SIG_SETMASK, %edi ++ movq %rsi,%rdx ++ DO_CALL (sigprocmask, 3) ++ jb L(error) ++ ++ /* restore arguments - flags and stack */ ++ movq 0(%rsp),%rdi ++ movq 8(%rsp),%rsi ++ ++ /* Copy mask info into the child's stack. */ ++ ++ subq $16,%rsi ++ movq 16(%rsp),%rcx ++ movq 24(%rsp),%rdx ++ movq %rcx, 0(%rsi) ++ movq %rdx, 8(%rsi) ++ ++ /* Perform the rfork system call. */ ++ DO_CALL (rfork, 1) ++ jb L(error_unmask) ++ ++ /* %rdx is now 0 for the parent and 1 for the child. */ ++ testq %rdx, %rdx ++ jnz L(child) ++ ++ /* Save the child pid, currently in %rax. */ ++ movq %rax, 0(%rsp) ++ ++ /* Restore the previous signal mask. */ ++ movl $SIG_SETMASK, %edi ++ leaq 16(%rsp), %rsi ++ xorl %edx,%edx ++ DO_CALL (sigprocmask, 3) ++ ++ /* Return the child pid, saved on stack. */ ++ movq 0(%rsp), %rax ++ addq $32, %rsp ++L(pseudo_end): ++ ret ++ ++L(error_unmask): ++ ++ /* Save the error code, currently in %rax. */ ++ movq %rax, 0(%rsp) ++ ++ /* Restore the previous signal mask. */ ++ movq $SIG_SETMASK, %rdi ++ leaq 16(%rsp), %rsi ++ xorl %edx,%edx ++ DO_CALL (sigprocmask, 3) ++ ++ /* load saved error code */ ++ movq 0(%rsp), %rax ++ ++L(error): ++ addq $32, %rsp ++ jmp SYSCALL_ERROR_LABEL ++ ++L(child):/* Here we are in the child thread. */ ++ ++ /* set up stack */ ++ movq %rsi, %rsp ++ ++ /* Clear the frame pointer. The ABI suggests this be done, to mark ++ the outermost frame obviously. */ ++ xorl %ebp, %ebp ++ ++ /* Restore the previous signal mask. */ ++ movq $SIG_SETMASK, %rdi ++ xorl %edx,%edx ++ DO_CALL (sigprocmask, 3) ++ ++ addq $16, %rsp ++ jmp L(thread_start2) ++ ++ cfi_startproc; ++ ++PSEUDO_END (__start_thread) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/swapcontext.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/swapcontext.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/swapcontext.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/swapcontext.S 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,32 @@ ++/* swap current context. ++ Copyright (C) 2006 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++.text ++ENTRY(__swapcontext) ++ clc ++ DO_CALL (swapcontext, 2) ++ jb SYSCALL_ERROR_LABEL ++L(pseudo_end): ++ ret ++ ++PSEUDO_END(__swapcontext) ++ ++weak_alias(__swapcontext, swapcontext) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sys/io.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sys/io.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sys/io.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sys/io.h 2008-01-03 11:26:15.000000000 +0100 +@@ -0,0 +1,171 @@ ++/* Copyright (C) 1996, 2000, 2002, 2004 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_IO_H ++#define _SYS_IO_H 1 ++ ++#include ++ ++__BEGIN_DECLS ++ ++/* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to ++ access any I/O port is granted. This call requires root ++ privileges. */ ++extern int iopl (int __level) __THROW; ++ ++#if defined __GNUC__ && __GNUC__ >= 2 ++ ++static __inline unsigned char ++inb (unsigned short int port) ++{ ++ unsigned char _v; ++ ++ __asm__ __volatile__ ("inb %w1,%0":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned char ++inb_p (unsigned short int port) ++{ ++ unsigned char _v; ++ ++ __asm__ __volatile__ ("inb %w1,%0\noutb %%al,$0x80":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned short int ++inw (unsigned short int port) ++{ ++ unsigned short _v; ++ ++ __asm__ __volatile__ ("inw %w1,%0":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned short int ++inw_p (unsigned short int port) ++{ ++ unsigned short int _v; ++ ++ __asm__ __volatile__ ("inw %w1,%0\noutb %%al,$0x80":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned int ++inl (unsigned short int port) ++{ ++ unsigned int _v; ++ ++ __asm__ __volatile__ ("inl %w1,%0":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline unsigned int ++inl_p (unsigned short int port) ++{ ++ unsigned int _v; ++ __asm__ __volatile__ ("inl %w1,%0\noutb %%al,$0x80":"=a" (_v):"Nd" (port)); ++ return _v; ++} ++ ++static __inline void ++outb (unsigned char value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outb %b0,%w1": :"a" (value), "Nd" (port)); ++} ++ ++static __inline void ++outb_p (unsigned char value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outb %b0,%w1\noutb %%al,$0x80": :"a" (value), ++ "Nd" (port)); ++} ++ ++static __inline void ++outw (unsigned short int value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outw %w0,%w1": :"a" (value), "Nd" (port)); ++ ++} ++ ++static __inline void ++outw_p (unsigned short int value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outw %w0,%w1\noutb %%al,$0x80": :"a" (value), ++ "Nd" (port)); ++} ++ ++static __inline void ++outl (unsigned int value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outl %0,%w1": :"a" (value), "Nd" (port)); ++} ++ ++static __inline void ++outl_p (unsigned int value, unsigned short int port) ++{ ++ __asm__ __volatile__ ("outl %0,%w1\noutb %%al,$0x80": :"a" (value), ++ "Nd" (port)); ++} ++ ++static __inline void ++insb (unsigned short int port, void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; insb":"=D" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++insw (unsigned short int port, void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; insw":"=D" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++insl (unsigned short int port, void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; insl":"=D" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++outsb (unsigned short int port, const void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; outsb":"=S" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++outsw (unsigned short int port, const void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; outsw":"=S" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++static __inline void ++outsl (unsigned short int port, const void *addr, unsigned long int count) ++{ ++ __asm__ __volatile__ ("cld ; rep ; outsl":"=S" (addr), ++ "=c" (count):"d" (port), "0" (addr), "1" (count)); ++} ++ ++#endif /* GNU C */ ++ ++__END_DECLS ++#endif /* _SYS_IO_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sys/perm.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sys/perm.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sys/perm.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sys/perm.h 2008-01-03 11:27:09.000000000 +0100 +@@ -0,0 +1,31 @@ ++/* Copyright (C) 1996, 1999, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_PERM_H ++#define _SYS_PERM_H 1 ++ ++#include ++ ++__BEGIN_DECLS ++ ++/* Change I/O privilege level. */ ++extern int iopl (int __level) __THROW; ++ ++__END_DECLS ++ ++#endif /* _SYS_PERM_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sys_fork.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sys_fork.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sys_fork.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sys_fork.S 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,36 @@ ++/* Copyright (C) 1991-1992, 1994-1995, 1997, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++.text; ++ENTRY (__syscall_fork) ++ DO_CALL (fork, 0) ++ jb SYSCALL_ERROR_LABEL; ++ /* R1 is now 0 for the parent and 1 for the child. Decrement it to ++ make it -1 (all bits set) for the parent, and 0 (no bits set) ++ for the child. Then AND it with R0, so the parent gets ++ R0&-1==R0, and the child gets R0&0==0. */ ++ ++ decq %rdx ++ andq %rdx, %rax ++ ++L(pseudo_end): ++ ret ++PSEUDO_END (__syscall_fork) ++libc_hidden_def (__syscall_fork) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sysarch.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sysarch.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sysarch.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sysarch.h 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,48 @@ ++/* Parameters for the architecture specific system call. amd64 version. ++ Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYSARCH_H ++#define _SYSARCH_H 1 ++ ++#include ++ ++/* Function that can be used as first argument to 'sysarch'. */ ++ ++#define I386_GET_FSBASE 7 ++#define I386_SET_FSBASE 8 ++#define I386_GET_GSBASE 9 ++#define I386_SET_GSBASE 10 ++ ++/* Leave space for 0-127 for to avoid translating syscalls */ ++#define AMD64_GET_FSBASE 128 ++#define AMD64_SET_FSBASE 129 ++#define AMD64_GET_GSBASE 130 ++#define AMD64_SET_GSBASE 131 ++ ++__BEGIN_DECLS ++ ++extern int sysarch (int __cmd, void *__arg); ++ ++#ifdef _LIBC ++extern int __sysarch (int __cmd, void *__arg); ++#endif ++ ++__END_DECLS ++ ++#endif /* _SYSARCH_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/syscall.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/syscall.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/syscall.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/syscall.S 2007-11-16 13:47:48.000000000 +0100 +@@ -0,0 +1,31 @@ ++/* Copyright (C) 2006 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Modification for FreeBSD contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++ .text ++ENTRY (__syscall) ++ movq %rcx, %r10 ++ movl $SYS_ify (syscall), %eax ++ syscall ++ jb SYSCALL_ERROR_LABEL ++L(pseudo_end): ++ ret ++PSEUDO_END (__syscall) ++weak_alias (__syscall, syscall) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sysdep.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sysdep.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sysdep.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sysdep.S 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,40 @@ ++/* Copyright (C) 2001, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++/* The following code is only used in the shared library when we ++ compile the reentrant version. Otherwise each system call defines ++ each own version. */ ++ ++#ifndef PIC ++ ++/* The syscall stubs jump here when they detect an error. ++ The code for Linux is almost identical to the canonical Unix ++ code, except that the error number in %rax is negated. */ ++ ++#undef CALL_MCOUNT ++#define CALL_MCOUNT /* Don't insert the profiling call, it clobbers %rax. */ ++ ++ .text ++ENTRY (__syscall_error) ++ ++#define __syscall_error __syscall_error_1 ++#include ++ ++#endif /* !PIC */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sysdep.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sysdep.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sysdep.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/sysdep.h 2007-05-26 13:10:00.000000000 +0200 +@@ -0,0 +1,233 @@ ++/* Copyright (C) 2001,02,03,04 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Modification for FreeBSD contributed by Petr Salinger, 2006. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _KFREEBSD_X86_64_SYSDEP_H ++#define _KFREEBSD_X86_64_SYSDEP_H 1 ++ ++/* There is some commonality. */ ++#include ++#include ++#include ++#include ++ ++#ifdef IS_IN_rtld ++# include /* Defines RTLD_PRIVATE_ERRNO. */ ++#endif ++ ++ ++#ifdef __ASSEMBLER__ ++ ++/* We don't want the label for the error handle to be global when we define ++ it here. */ ++#ifdef PIC ++# define SYSCALL_ERROR_LABEL 0f ++#else ++# define SYSCALL_ERROR_LABEL syscall_error ++#endif ++ ++#undef PSEUDO ++#define PSEUDO(name, syscall_name, args) \ ++ .text; \ ++ ENTRY (name) \ ++ DO_CALL (syscall_name, args); \ ++ jb SYSCALL_ERROR_LABEL; \ ++ L(pseudo_end): ++ ++#undef PSEUDO_END ++#define PSEUDO_END(name) \ ++ SYSCALL_ERROR_HANDLER \ ++ END (name) ++ ++#undef PSEUDO_NOERRNO ++#define PSEUDO_NOERRNO(name, syscall_name, args) \ ++ .text; \ ++ ENTRY (name) \ ++ DO_CALL (syscall_name, args) ++ ++#undef PSEUDO_END_NOERRNO ++#define PSEUDO_END_NOERRNO(name) \ ++ END (name) ++ ++#define ret_NOERRNO ret ++ ++#undef PSEUDO_ERRVAL ++#define PSEUDO_ERRVAL(name, syscall_name, args) \ ++ .text; \ ++ ENTRY (name) \ ++ DO_CALL (syscall_name, args); \ ++ ++#undef PSEUDO_END_ERRVAL ++#define PSEUDO_END_ERRVAL(name) \ ++ END (name) ++ ++#define ret_ERRVAL ret ++ ++#ifndef PIC ++#define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */ ++#elif RTLD_PRIVATE_ERRNO ++# define SYSCALL_ERROR_HANDLER \ ++0: \ ++ leaq rtld_errno(%rip), %rcx; \ ++ movl %eax, (%rcx); \ ++ orq $-1, %rax; \ ++ jmp L(pseudo_end); ++#elif USE___THREAD ++# ifndef NOT_IN_libc ++# define SYSCALL_ERROR_ERRNO __libc_errno ++# else ++# define SYSCALL_ERROR_ERRNO errno ++# endif ++# define SYSCALL_ERROR_HANDLER \ ++0: \ ++ movq SYSCALL_ERROR_ERRNO@GOTTPOFF(%rip), %rcx;\ ++ movl %eax, %fs:(%rcx); \ ++ orq $-1, %rax; \ ++ jmp L(pseudo_end); ++#elif defined _LIBC_REENTRANT ++/* Store (%eax) into errno through the GOT. ++ Note that errno occupies only 4 bytes. */ ++# define SYSCALL_ERROR_HANDLER \ ++0: \ ++ pushq %rax; \ ++ cfi_adjust_cfa_offset(8); \ ++ PUSH_ERRNO_LOCATION_RETURN; \ ++ call BP_SYM (__errno_location)@PLT; \ ++ POP_ERRNO_LOCATION_RETURN; \ ++ popq %rdx; \ ++ cfi_adjust_cfa_offset(-8); \ ++ movl %edx, (%rax); \ ++ orq $-1, %rax; \ ++ jmp L(pseudo_end); ++ ++/* A quick note: it is assumed that the call to `__errno_location' does ++ not modify the stack! */ ++#else /* Not _LIBC_REENTRANT. */ ++# define SYSCALL_ERROR_HANDLER \ ++0:movq errno@GOTPCREL(%RIP), %rcx; \ ++ movl %eax, (%rcx); \ ++ orq $-1, %rax; \ ++ jmp L(pseudo_end); ++#endif /* PIC */ ++ ++/* The FreeBSD/amd64 kernel expects the system call parameters in ++ registers according to the following table: ++ ++ syscall number rax ++ arg 1 rdi ++ arg 2 rsi ++ arg 3 rdx ++ arg 4 r10 ++ arg 5 r8 ++ arg 6 r9 ++ ++ The FreeBSD kernel internal syscall usage of registers: ++ ++ preserved: ++ stack pointer rsp ++ C preserved rbx, rbp, r12-r15 ++ some input params rdi, rsi ++ ++ destroyed: ++ return value(s) rax, rdx, eflags ++ return address from syscall rcx ++ eflags from syscall r11 ++ used internally r8-r10 ++ ++ Normal function call, including calls to the system call stub ++ functions in the libc, get the first six parameters passed in ++ registers and the seventh parameter and later on the stack. The ++ register use is as follows: ++ ++ system call number in the DO_CALL macro ++ arg 1 rdi ++ arg 2 rsi ++ arg 3 rdx ++ arg 4 rcx ++ arg 5 r8 ++ arg 6 r9 ++ ++ We have to take care that the stack is aligned to 16 bytes. When ++ called the stack is not aligned since the return address has just ++ been pushed. ++ ++*/ ++ ++#undef DO_CALL ++#define DO_CALL(syscall_name, args) \ ++ DOARGS_##args \ ++ movl $SYS_ify (syscall_name), %eax; \ ++ syscall; ++ ++#define DOARGS_0 /* nothing */ ++#define DOARGS_1 /* nothing */ ++#define DOARGS_2 /* nothing */ ++#define DOARGS_3 /* nothing */ ++#define DOARGS_4 movq %rcx, %r10; ++#define DOARGS_5 DOARGS_4 ++#define DOARGS_6 DOARGS_5 ++#define DOARGS_7 DOARGS_6 ++#define DOARGS_8 DOARGS_7 ++ ++#else /* !__ASSEMBLER__ */ ++ ++#include ++ ++#endif /* __ASSEMBLER__ */ ++ ++ ++/* Pointer mangling support. */ ++#if defined NOT_IN_libc && defined IS_IN_rtld ++/* We cannot use the thread descriptor because in ld.so we use setjmp ++ earlier than the descriptor is initialized. */ ++# ifdef __ASSEMBLER__ ++# define PTR_MANGLE(reg) xorq __pointer_chk_guard_local(%rip), reg; \ ++ rolq $17, reg ++# define PTR_DEMANGLE(reg) rorq $17, reg; \ ++ xorq __pointer_chk_guard_local(%rip), reg ++# else ++# define PTR_MANGLE(reg) asm ("xorq __pointer_chk_guard_local(%%rip), %0\n" \ ++ "rolq $17, %0" \ ++ : "=r" (reg) : "0" (reg)) ++# define PTR_DEMANGLE(reg) asm ("rorq $17, %0\n" \ ++ "xorq __pointer_chk_guard_local(%%rip), %0" \ ++ : "=r" (reg) : "0" (reg)) ++# endif ++#else ++# ifdef __ASSEMBLER__ ++# define PTR_MANGLE(reg) xorq %fs:POINTER_GUARD, reg; \ ++ rolq $17, reg ++# define PTR_DEMANGLE(reg) rorq $17, reg; \ ++ xorq %fs:POINTER_GUARD, reg ++# else ++# define PTR_MANGLE(var) asm ("xorq %%fs:%c2, %0\n" \ ++ "rolq $17, %0" \ ++ : "=r" (var) \ ++ : "0" (var), \ ++ "i" (offsetof (tcbhead_t, \ ++ pointer_guard))) ++# define PTR_DEMANGLE(var) asm ("rorq $17, %0\n" \ ++ "xorq %%fs:%c2, %0" \ ++ : "=r" (var) \ ++ : "0" (var), \ ++ "i" (offsetof (tcbhead_t, \ ++ pointer_guard))) ++# endif ++#endif ++ ++#endif /* _KFREEBSD_X86_64_SYSDEP_H */ +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ucontext_i.h ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ucontext_i.h +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ucontext_i.h 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/ucontext_i.h 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,38 @@ ++/* Offsets needed in the makecontext() function implementation. ++ Copyright (C) 2006 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* Offsets of the fields in the ucontext_t structure. */ ++ ++#define oRDI 24 ++#define oRSI 32 ++#define oRDX 40 ++#define oRCX 48 ++#define oR8 56 ++#define oR9 64 ++ ++#define oRAX 72 ++#define oRBX 80 ++#define oRBP 88 ++ ++#define oRIP 176 ++#define oRSP 200 ++ ++#define oLINK 816 ++#define oSS_SP 824 ++#define oSS_SIZE 832 +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/vfork.S ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/vfork.S +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/vfork.S 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/x86_64/vfork.S 2006-10-18 09:59:58.000000000 +0200 +@@ -0,0 +1,58 @@ ++/* Copyright (C) 1999, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++/* Clone the calling process, but without copying the whole address space. ++ The calling process is suspended until the new process exits or is ++ replaced by a call to `execve'. Return -1 for errors, 0 to the new process, ++ and the process ID of the new process to the old process. */ ++ ++ENTRY (__vfork) ++ ++ /* Pop the return PC value into ESI. */ ++ popq %rsi ++ cfi_adjust_cfa_offset(-8) ++ ++ /* Perform the system call. */ ++ DO_CALL (vfork, 0) ++ jb L(error) /* Branch forward if it failed. */ ++ ++ /* In the parent process, %rdx == 0, %rax == child pid. */ ++ /* In the child process, %rdx == 1, %rax == parent pid. */ ++ ++ /* Change %rax to be 0 in the child process. */ ++ decq %rdx ++ andq %rdx, %rax ++ ++ /* Jump to the return PC. */ ++ jmp *%rsi ++ ++L(error): ++ /* Push back the return PC. */ ++ pushq %rsi ++ cfi_adjust_cfa_offset(8) ++ ++ /* Branch to the error handler, hidden in PSEUDO_END. */ ++ jmp SYSCALL_ERROR_LABEL ++L(pseudo_end): ++ ret ++PSEUDO_END (__vfork) ++libc_hidden_def (__vfork) ++ ++weak_alias (__vfork, vfork) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/xmknod.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/xmknod.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/xmknod.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/xmknod.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,48 @@ ++/* xmknod call using old-style Unix mknod and mkfifo system calls. ++ Copyright (C) 1991, 1993, 1995-1997, 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++extern int __syscall_mknod (const char *, mode_t, dev_t); ++extern int __mkfifo (const char *, mode_t); ++ ++/* Create a device file named PATH, with permission and special bits MODE ++ and device number DEV (which can be constructed from major and minor ++ device numbers with the `makedev' macro above). */ ++int ++__xmknod (int vers, const char *path, mode_t mode, dev_t *dev) ++{ ++ if (vers != _MKNOD_VER) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ ++ /* The FreeBSD mknod() system call cannot be used to create FIFOs; we ++ must use the mkfifo() system call for this purpose. */ ++ if (S_ISFIFO (mode)) ++ return __mkfifo (path, mode & ~S_IFMT); ++ ++ return __syscall_mknod (path, mode, *dev); ++} ++libc_hidden_def (__xmknod) ++ ++weak_alias (__xmknod, _xmknod) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/xstat.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/xstat.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/xstat.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/xstat.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,49 @@ ++/* xstat using FreeBSD stat, nstat system calls. ++ Copyright (C) 1991,1995-1997,2000,2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++#include "stat16conv.c" ++ ++int ++__xstat (int vers, const char *file, struct stat *buf) ++{ ++ if (__builtin_expect (vers == _STAT_VER, 1)) ++ { ++ struct stat16 buf16; ++ int result = __syscall_stat (CHECK_STRING (file), __ptrvalue (&buf16)); ++ if (result == 0) ++ stat16_to_stat (&buf16, buf); ++ return result; ++ } ++ else if (__builtin_expect (vers == _STAT_VER_stat, 1)) ++ return __syscall_stat (CHECK_STRING (file), ++ CHECK_1 ((struct stat16 *) buf)); ++ else ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++} ++hidden_def (__xstat) ++ ++weak_alias (__xstat, _xstat) +diff -x .svn -Nurd null/sysdeps/unix/bsd/bsd4.4/kfreebsd/xstat64.c ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/xstat64.c +--- null/sysdeps/unix/bsd/bsd4.4/kfreebsd/xstat64.c 1970-01-01 01:00:00.000000000 +0100 ++++ ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/xstat64.c 2006-10-18 09:59:59.000000000 +0200 +@@ -0,0 +1,44 @@ ++/* xstat using FreeBSD stat, nstat system calls. ++ Copyright (C) 1991,1995-1997,2000,2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++#include "stat16conv.c" ++ ++int ++__xstat64 (int vers, const char *file, struct stat64 *buf) ++{ ++ if (__builtin_expect (vers == _STAT_VER, 1)) ++ { ++ struct stat16 buf16; ++ int result = __syscall_stat (CHECK_STRING (file), __ptrvalue (&buf16)); ++ if (result == 0) ++ stat16_to_stat64 (&buf16, buf); ++ return result; ++ } ++ else ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++} ++hidden_def (__xstat64) --- glibc-2.7.orig/debian/patches/kfreebsd/local-scripts.diff +++ glibc-2.7/debian/patches/kfreebsd/local-scripts.diff @@ -0,0 +1,117 @@ +diff -urN glibc-2.3.2.orig/abi-tags glibc-2.3.2/abi-tags +--- abi-tags 2002-09-21 02:28:19.000000000 +0200 ++++ abi-tags 2005-06-12 17:58:26.000000000 +0200 +@@ -22,7 +22,7 @@ + + .*-sun-solaris2.* 2 2.0.0 # just an arbitrary value + +-.*-.*-freebsd.*-gnu.* 3 4.0.0 # earliest compatible kernel version ++.*-.*-kfreebsd.* 3 5.4.0 # earliest compatible kernel version + + # There is no catch-all default here because every supported OS that uses + # ELF must have its own unique ABI tag. +diff -urN glibc-2.3.2.orig/configure glibc-2.3.2/configure +--- configure 2005-06-12 17:39:18.000000000 +0200 ++++ configure 2005-06-12 18:02:40.000000000 +0200 +@@ -1742,7 +1742,7 @@ + # i586-linuxaout is mangled into i586-pc-linux-gnuaout + linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*) + ;; +-gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*) ++gnu* | linux* | freebsd* | netbsd* | k*bsd* | sysv4* | solaris2* | irix6*) + # These systems (almost) always use the ELF format. + elf=yes + ;; +@@ -1785,7 +1785,7 @@ + ### + if test -z "$enable_hacker_mode"; then + case "$machine-$host_os" in +- *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*) ++ *-linux* | *-gnu* | *-kfreebsd* | arm*-none* | powerpc-aix4.3.*) + ;; + *) + echo "*** The GNU C library is currently not available for this platform." +@@ -1883,7 +1883,7 @@ + case "$os" in + gnu*) + base_os=mach/hurd ;; +-netbsd* | 386bsd* | freebsd* | bsdi*) ++netbsd* | 386bsd* | freebsd* | bsdi* | k*bsd*) + base_os=unix/bsd/bsd4.4 ;; + osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*) + base_os=unix/bsd ;; +diff -urN glibc-2.3.2.orig/configure.in glibc-2.3.2/configure.in +--- configure.in 2005-06-12 17:39:21.000000000 +0200 ++++ configure.in 2005-06-12 18:01:28.000000000 +0200 +@@ -316,7 +316,7 @@ + # i586-linuxaout is mangled into i586-pc-linux-gnuaout + linux*ecoff* | linux*aout* | gnu*aout* | gnu*ecoff*) + ;; +-gnu* | linux* | freebsd* | netbsd* | sysv4* | solaris2* | irix6*) ++gnu* | linux* | freebsd* | netbsd* | k*bsd* | sysv4* | solaris2* | irix6*) + # These systems (almost) always use the ELF format. + elf=yes + ;; +@@ -359,7 +359,7 @@ + ### + if test -z "$enable_hacker_mode"; then + case "$machine-$host_os" in +- *-linux* | *-gnu* | arm*-none* | powerpc-aix4.3.*) ++ *-linux* | *-gnu* | *-kfreebsd* | arm*-none* | powerpc-aix4.3.*) + ;; + *) + echo "*** The GNU C library is currently not available for this platform." +@@ -458,7 +458,7 @@ + case "$os" in + gnu*) + base_os=mach/hurd ;; +-netbsd* | 386bsd* | freebsd* | bsdi*) ++netbsd* | 386bsd* | freebsd* | bsdi* | k*bsd*) + base_os=unix/bsd/bsd4.4 ;; + osf* | sunos* | ultrix* | newsos* | dynix* | *bsd*) + base_os=unix/bsd ;; +diff -urN glibc-2.3.2.orig/shlib-versions glibc-2.3.2/shlib-versions +--- shlib-versions 2002-09-05 11:31:49.000000000 +0200 ++++ shlib-versions 2005-06-12 18:06:19.000000000 +0200 +@@ -26,6 +26,7 @@ + x86_64-.*-linux.* DEFAULT GLIBC_2.2.5 + powerpc64-.*-linux.* DEFAULT GLIBC_2.3 + .*-.*-gnu-gnu.* DEFAULT GLIBC_2.2.6 ++.*-.*-kfreebsd.* DEFAULT GLIBC_2.3 + + # Configuration Library=version Earliest symbol set (optional) + # ------------- --------------- ------------------------------ +@@ -39,6 +40,7 @@ + hppa.*-.*-.* libm=6 GLIBC_2.2 + .*-.*-linux.* libm=6 + .*-.*-gnu-gnu.* libm=6 ++.*-.*-kfreebsd.* libm=1 + + # We provide libc.so.6 for Linux kernel versions 2.0 and later. + alpha.*-.*-linux.* libc=6.1 +@@ -49,6 +51,7 @@ + sparc64-.*-linux.* libc=6 GLIBC_2.2 + hppa.*-.*-.* libc=6 GLIBC_2.2 + .*-.*-linux.* libc=6 ++.*-.*-kfreebsd.* libc=0.1 + + # libmachuser.so.1 corresponds to mach/*.defs as of Utah's UK22 release. + .*-.*-gnu-gnu.* libmachuser=1 +@@ -73,6 +73,7 @@ + powerpc64.*-.*-linux.* ld=ld64.so.1 GLIBC_2.3 + cris-.*-linux.* ld=ld.so.1 GLIBC_2.2 + x86_64-.*-linux.* ld=ld-linux-x86-64.so.2 GLIBC_2.2.5 ++x86_64-.*-kfreebsd.* ld=ld-kfreebsd-x86-64.so.1 + # We use the ELF ABI standard name for the default. + .*-.*-.* ld=ld.so.1 + +diff -urN glibc-2.3.2.orig/linuxthreads/shlib-versions glibc-2.3.2/linuxthreads/shlib-versions +--- linuxthreads/shlib-versions 2002-09-05 12:14:21.000000000 +0200 ++++ linuxthreads/shlib-versions 2005-06-15 01:40:37.000000000 +0200 +@@ -8,4 +8,5 @@ + cris-.*-linux.* libpthread=0 GLIBC_2.2 + x86_64-.*-linux.* libpthread=0 GLIBC_2.2.5 + powerpc64-.*-linux.* libpthread=0 GLIBC_2.3 +-.*-.*-linux.* libpthread=0 ++.*-.*-kfreebsd.* libpthread=0 GLIBC_2.3 ++.*-.*-.* libpthread=0 --- glibc-2.7.orig/debian/patches/kfreebsd/local-memusage_no_mremap.diff +++ glibc-2.7/debian/patches/kfreebsd/local-memusage_no_mremap.diff @@ -0,0 +1,19 @@ +--- malloc/memusage.c~ 2006-06-12 15:45:13.000000000 +0200 ++++ malloc/memusage.c 2006-06-12 15:45:13.000000000 +0200 +@@ -650,6 +650,8 @@ + return result; + } + ++#include <_G_config.h> ++#ifdef _G_HAVE_MREMAP + + /* `mmap' replacement. We do not have to keep track of the sizesince + `munmap' will get it as a parameter. */ +@@ -715,6 +717,7 @@ + /* Return the pointer to the user buffer. */ + return result; + } ++#endif + + + /* `munmap' replacement. */ --- glibc-2.7.orig/debian/patches/kfreebsd/local-ftw.diff +++ glibc-2.7/debian/patches/kfreebsd/local-ftw.diff @@ -0,0 +1,51 @@ + +disable usage of unimplemented *at functions +revert to previous behaviour, inspired by + http://sourceware.org/ml/glibc-cvs/2006-q1/msg00636.html + http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/io/ftw.c.diff?cvsroot=glibc&r1=1.50&r2=1.51 + + +--- io/ftw.c~ 2006-06-26 19:35:23.000000000 +0200 ++++ io/ftw.c 2006-06-26 19:35:23.000000000 +0200 +@@ -338,6 +338,7 @@ + { + assert (data->dirstreams[data->actdir] == NULL); + ++#if 0 + if (dfdp != NULL && *dfdp != -1) + { + int fd = openat64_not_cancel_3 (*dfdp, data->dirbuf + data->ftw.base, +@@ -347,6 +348,7 @@ + close_not_cancel_no_status (fd); + } + else ++#endif + { + const char *name = ((data->flags & FTW_CHDIR) + ? data->dirbuf + data->ftw.base: data->dirbuf); +@@ -401,10 +403,12 @@ + *((char *) __mempcpy (data->dirbuf + data->ftw.base, name, namlen)) = '\0'; + + int statres; ++#if 0 + if (dir->streamfd != -1) + statres = FXSTATAT (_STAT_VER, dir->streamfd, name, &st, + (data->flags & FTW_PHYS) ? AT_SYMLINK_NOFOLLOW : 0); + else ++#endif + { + if ((data->flags & FTW_CHDIR) == 0) + name = data->dirbuf; +@@ -424,10 +428,12 @@ + flag = FTW_SLN; + else + { ++#if 0 + if (dir->streamfd != -1) + statres = FXSTATAT (_STAT_VER, dir->streamfd, name, &st, + AT_SYMLINK_NOFOLLOW); + else ++#endif + statres = LXSTAT (_STAT_VER, name, &st); + if (statres == 0 && S_ISLNK (st.st_mode)) + flag = FTW_SLN; --- glibc-2.7.orig/debian/patches/ubuntu/stack-guard-quick-randomization.diff +++ glibc-2.7/debian/patches/ubuntu/stack-guard-quick-randomization.diff @@ -0,0 +1,110 @@ +Taken from http://cvs.fedora.redhat.com/viewvc//devel/glibc/ +based on Jakub Jelinek's patch to glibc. +Index: glibc-2.7/sysdeps/unix/sysv/linux/dl-osinfo.h +=================================================================== +--- glibc-2.7.orig/sysdeps/unix/sysv/linux/dl-osinfo.h 2007-09-15 15:54:08.000000000 -0700 ++++ glibc-2.7/sysdeps/unix/sysv/linux/dl-osinfo.h 2009-07-29 23:34:11.000000000 -0700 +@@ -18,12 +18,15 @@ + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + ++#include + #include + #include + #include + #include + #include + #include ++#include ++#include + + #ifndef MIN + # define MIN(a,b) (((a)<(b))?(a):(b)) +@@ -171,5 +174,31 @@ + unsigned char *p = (unsigned char *) &ret; + p[sizeof (ret) - 1] = 255; + p[sizeof (ret) - 2] = '\n'; ++#ifdef HP_TIMING_NOW ++ hp_timing_t hpt; ++ HP_TIMING_NOW (hpt); ++ hpt = (hpt & 0xffff) << 8; ++ ret ^= hpt; ++#endif ++ uintptr_t stk; ++ /* Avoid GCC being too smart. */ ++ asm ("" : "=r" (stk) : "r" (p)); ++ stk &= 0x7ffff0; ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++ stk <<= (__WORDSIZE - 23); ++#elif __WORDSIZE == 64 ++ stk <<= 31; ++#endif ++ ret ^= stk; ++ /* Avoid GCC being too smart. */ ++ p = (unsigned char *) &errno; ++ asm ("" : "=r" (stk) : "r" (p)); ++ stk &= 0x7fff00; ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++ stk <<= (__WORDSIZE - 29); ++#else ++ stk >>= 8; ++#endif ++ ret ^= stk; + return ret; + } +Index: b/elf/tst-stackguard1.c +=================================================================== +--- a/elf/tst-stackguard1.c ++++ b/elf/tst-stackguard1.c +@@ -160,17 +160,21 @@ + the 16 runs, something is very wrong. */ + int ndifferences = 0; + int ndefaults = 0; ++ int npartlyrandomized = 0; + for (i = 0; i < N; ++i) + { + if (child_stack_chk_guards[i] != child_stack_chk_guards[i+1]) + ndifferences++; + else if (child_stack_chk_guards[i] == default_guard) + ndefaults++; ++ else if (*(char *) &child_stack_chk_guards[i] == 0) ++ npartlyrandomized++; + } + +- printf ("differences %d defaults %d\n", ndifferences, ndefaults); ++ printf ("differences %d defaults %d partly randomized %d\n", ++ ndifferences, ndefaults, npartlyrandomized); + +- if (ndifferences < N / 2 && ndefaults < N / 2) ++ if ((ndifferences + ndefaults + npartlyrandomized) < 3 * N / 4) + { + puts ("stack guard canaries are not randomized enough"); + puts ("nor equal to the default canary value"); +Index: b/nptl/tst-stackguard1.c +=================================================================== +--- a/nptl/tst-stackguard1.c ++++ b/nptl/tst-stackguard1.c +@@ -190,17 +190,21 @@ + the 16 runs, something is very wrong. */ + int ndifferences = 0; + int ndefaults = 0; ++ int npartlyrandomized = 0; + for (i = 0; i < N; ++i) + { + if (child_stack_chk_guards[i] != child_stack_chk_guards[i+1]) + ndifferences++; + else if (child_stack_chk_guards[i] == default_guard) + ndefaults++; ++ else if (*(char *) &child_stack_chk_guards[i] == 0) ++ npartlyrandomized++; + } + +- printf ("differences %d defaults %d\n", ndifferences, ndefaults); ++ printf ("differences %d defaults %d partly randomized %d\n", ++ ndifferences, ndefaults, npartlyrandomized); + +- if (ndifferences < N / 2 && ndefaults < N / 2) ++ if ((ndifferences + ndefaults + npartlyrandomized) < 3 * N / 4) + { + puts ("stack guard canaries are not randomized enough"); + puts ("nor equal to the default canary value"); --- glibc-2.7.orig/debian/patches/ubuntu/README +++ glibc-2.7/debian/patches/ubuntu/README @@ -0,0 +1,3 @@ +Patches in this directory are hacks done for Ubuntu directly. These might +include things like splitting out langpacks or launchpad/rosetta integration. + --- glibc-2.7.orig/debian/patches/ubuntu/local-altlocaledir.diff +++ glibc-2.7/debian/patches/ubuntu/local-altlocaledir.diff @@ -0,0 +1,35 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: support alternative gettext tree in +# DP: /usr/share/locale-langpack +# DP: Dpatch author: Martin Pitt +# DP: Patch author: Martin Pitt +# DP: Upstream status: Ubuntu-Specific +# DP: Date: 2004-12-06 20:44:10 CET + +--- glibc-2.3.5.orig/intl/l10nflist.c ++++ glibc-2.3.5/intl/l10nflist.c +@@ -267,7 +267,7 @@ _nl_make_l10nflist (l10nfile_list, dirli + + retval = (struct loaded_l10nfile *) + malloc (sizeof (*retval) + (__argz_count (dirlist, dirlist_len) +- * (1 << pop (mask)) ++ * 2 * (1 << pop (mask)) + * sizeof (struct loaded_l10nfile *))); + if (retval == NULL) + return NULL; +@@ -310,6 +310,15 @@ _nl_make_l10nflist (l10nfile_list, dirli + language, territory, codeset, + normalized_codeset, modifier, filename, 1); + } ++ const char* langpack_dir = "/usr/share/locale-langpack"; ++ for (cnt = mask; cnt >= 0; --cnt) ++ if ((cnt & ~mask) == 0) ++ { ++ retval->successor[entries++] ++ = _nl_make_l10nflist (l10nfile_list, langpack_dir, strlen (langpack_dir) + 1, cnt, ++ language, territory, codeset, ++ normalized_codeset, modifier, filename, 1); ++ } + retval->successor[entries] = NULL; + + return retval; --- glibc-2.7.orig/debian/patches/m32r/local-ports-m32r.diff +++ glibc-2.7/debian/patches/m32r/local-ports-m32r.diff @@ -0,0 +1,5424 @@ +diff --exclude=CVS -upNr ports/ChangeLog.m32r ports/ChangeLog.m32r +--- ports/ChangeLog.m32r 1970-01-01 09:00:00.000000000 +0900 ++++ ports/ChangeLog.m32r 2006-05-09 10:23:08.000000000 +0900 +@@ -0,0 +1,297 @@ ++2006-06-07 Kazuhiro Inaoka ++ * sysdeps/unix/sysv/linux/m32r/configure: Removed ++ libc_cv_gcc_unwind_find=yes, because we provide _Unwind_Find_FDE ++ from libgcc. ++ * sysdeps/unix/sysv/linux/m32r/configure: Ditto. ++ ++2006-04-24 Kazuhiro Inaoka ++ * sysdeps/m32r/setjmp.h : Avoid stdlib/isomac.out Error. ++ ++2006-04-06 Kazuhiro Inaoka ++ * sysdeps/unix/sysv/linux/m32r/linuxthreads/sysdep-cancel.h : ++ Changed for IS_IN_librt case. Gather a common SYSCALL_ERROR_HANDLER ++ code. ++ ++2006-03-24 Kazuhiro Inaoka ++ * sysdeps/unix/sysv/linux/m32r/linuxthreads/sysdep-cancel.h : ++ Recoverd the code before 2006-03-02. ++ ++2006-03-22 Kazuhiro Inaoka ++ * Rebuild by gcc-3.4.3-13.0.3. ++ * sysdeps/m32r/strlen.S (strlen): Disable pre-read codes. ++ * sysdeps/unix/sysv/linux/m32r/mmap.S (strlen): Set an Error Code ++ when using an illegal offset value. ++ ++2006-03-02 Kazuhiro Inaoka ++ * sysdeps/unix/sysv/linux/m32r/clone.S (__clone): Changes for ++ the new system call calling convention of the kernel. ++ Marged calling SYSCALL_ERROR_HANDLER. ++ * sysdeps/unix/sysv/linux/m32r/sysdep.h : Use @GOT, @PLT, @GOTOFF. ++ Add "|| nop" after trap. Marged calling SYSCALL_ERROR_HANDLER. ++ * sysdeps/unix/sysv/linux/m32r/brk.c (__brk): Ditto. ++ * sysdeps/unix/sysv/linux/m32r/flushcache.S (__brk): Ditto. ++ * sysdeps/unix/sysv/linux/m32r/sigaction.c : Ditto. ++ * sysdeps/unix/m32r/sysdep.S : Ditto. ++ * sysdeps/m32r/bsd-_setjmp.S (_setjmp): Ditto. ++ * sysdeps/m32r/bsd-setjmp.S (setjmp): Ditto. ++ * sysdeps/m32r/setjmp.S (__sigsetjmp): Ditto. ++ * sysdeps/m32r/dl-machine.h : Ditto. ++ * sysdeps/m32r/m32r-mcount.S (_mcount): Ditto. ++ * sysdeps/m32r/sysdep.h : Ditto. ++ * sysdeps/unix/sysv/linux/m32r/linuxthreads/sysdep-cancel.h : ++ Use @GOT, @PLT, @GOTOFF. Fixed typo. Changed for IS_IN_librt case. ++ Removed UNDOCARGS2_*. Removed UNDOCARGS_5 DOCARGS_5 verbose saving. ++ sigaction.cv ++ ++2006-03-01 Kazuhiro Inaoka ++ ++ * sysdeps/unix/sysv/linux/m32r/bits/fcntl.h ++ [__USE_GNU] (F_SETLEASE. F_GETLEASE, F_NOTIFY): New macros. ++ [__USE_GNU] (LOCK_MAND, LOCK_READ, LOCK_WRITE, LOCK_RW): New macros. ++ [__USE_GNU] (DN_ACCESS, DN_MODIFY, DN_CREATE, DN_DELETE, DN_RENAME, ++ DN_ATTRIB, DN_MULTISHOT): New macros. ++ ++2006-01-26 Kazuhiro Inaoka ++ ++ * sysdeps/unix/sysv/linux/m32r/brk.c (__brk): Fixed conflist r0 on ++ asm(). ++ ++2006-01-18 Kazuhiro Inaoka ++ ++ * sysdeps/unix/m32r/sysdep.S: Changed to avoid redefined ++ error of symbol `__syscall_error_1'. ++ ++2005-11-22 Kazuhiro Inaoka ++ ++ * sysdeps/m32r/dl-machine.h (elf_machine_rela): Support ++ R_M32R_10_PCREL_RELA. ++ Remove a code to use relocation field at R_M32R_26_PCREL_RELA ++ and R_M32R_18_PCREL_RELA. The field must be 0 with RELA. ++ ++2005-11-18 Kazuhiro Inaoka ++ ++ * sysdeps/m32r/bits/setjmp.h (_JMPBUF_UNWINDS): Remove unnecessary &. ++ Make sure only setjmp.h or pthread.h are allow to include ++ bits/setjmp.h. ++ ++2005-10-21 Hirokazu Takata ++ ++ * sysdeps/m32r/memset.S: Update for m32r2. ++ ++2005-10-20 Kazuhiro Inaoka ++ ++ * sysdeps/m32r/elf/start.S: Support Update PIE. ++ ++2005-10-19 Kazuhiro Inaoka ++ ++ * sysdeps/unix/sysv/linux/m32r/socket.S: Remove weak_alias ++ to create listen if NO_WEAK_ALIAS is defined. ++ ++2005-10-14 Kazuhiro Inaoka ++ ++ * sysdeps/m32r/gccframe.h: New file for dwarf2-unwind. ++ * sysdeps/unix/sysv/linux/m32r/configure: Support dwarf2-unwind. ++ ++2005-07-15 ++ ++ * sysdeps/m32r/dl-machine.h: Support R_M32R_REL32. ++ It's important to change with elf/elf.h. ++ ++2005-03-03 Hirokazu Takata ++ ++ * sysdeps/unix/sysv/linux/m32r/kernel-features.h: Removed ++ __ASSUME_VFORK_SYSCALL. ++ ++2005-02-22 Kazuhiro Inaoka ++ ++ * sysdeps/unix/sysv/linux/m32r/linuxthreads/vfork.S: Changed for ++ __ASSUME_VFORK_SYSCALL. ++ * sysdeps/unix/sysv/linux/m32r/vfork.S: Ditto. ++ ++2005-02-15 Kazuhiro Inaoka ++ ++ * sysdeps/unix/sysv/linux/m32r/socket.S: Added .fillinsn. ++ ++2005-02-10 Kazuhiro Inaoka ++ ++ * sysdeps/unix/sysv/linux/m32r/linuxthreads/vfork.S: Changed to ++ reference pthread_create. ++ ++2005-02-04 Kazuhiro Inaoka ++ ++ * sysdeps/unix/sysv/linux/m32r/linuxthreads/sysdep-cancel.h: ++ Support thread cancel. ++ * sysdeps/unix/sysv/linux/m32r/linuxthreads/vfork.S: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/clone.S: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/socket.S: Ditto. ++ ++2005-01-31 Kazuhiro Inaoka ++ ++ * sysdeps/unix/sysv/linux/m32r/socket.S: Removed # in macro body. ++ * sysdeps/unix/sysv/linux/Makefile: Removed gnulib, gnulib-static. ++ * sysdeps/unix/sysv/linux/sigaction.c: Changed ++ to "kernel-features.h" ++ ++2004-12-20 NIIBE Yutaka ++ ++ * sysdeps/unix/sysv/linux/m32r/kernel-features.h: Port for ++ kernel-2.6.9. ++ * sysdeps/unix/sysv/linux/m32r/getgid.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/sigaction.c: Ditto. ++ * glibc-20041101/sysdeps/unix/sysv/linux/i386/fcntl.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/chown.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/getresgid.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/getresuid.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/getrlimit.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/getrlimit64.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/lchown.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/msgctl.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/semctl.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/setfsgid.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/setfsuid.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/setrlimit.c: Ditto. ++ * sysdeps/unix/sysv/linux/m32r/shmctl.c: Ditto. ++ * ++ ++2004-10-26 Kazuhiro Inaoka ++ ++ * ChangeLog.m32r: Fix typo in comment. ++ * sysdeps/m32r/preconfigure: Removed. ++ * sysdeps/m32r/configure.in: New file. ++ * sysdeps/m32r/configure: New generated file. ++ * sysdeps/m32r/linuxthreads/pspinlock.c (__pthread_spin_lock): ++ Changed INLINE_SYSCALL to INTERNAL_SYSCALL. ++ (__pthread_spin_trylock): Ditto. ++ * sysdeps/unix/sysv/linux/m32r/Versions: Removed GLIBC_2.2 ++ versioning, Added GLIBC_2.3 versioning. ++ ++2004-10-25 Kazuhiro Inaoka ++ ++ Moved from separate m32r-linuxthreads into m32r/linuxthreads ++ subdirs: ++ 2004-09-09 Kazuhiro Inaoka ++ * sysdeps/m32r/pspinlock.c: New file. ++ * sysdeps/m32r/pt-machine.h: New file ++ * sysdeps/m32r/preconfigure: Renamed from configure. ++ * sysdeps/m32r/shlib-versions: Moved from top level.. ++ * sysdeps/unix/sysv/linux/m32r/Makefile: Add static-gnulilb ++ environment value difinition. ++ ++2004-10-19 Kazuhiro Inaoka ++ ++ * m32r/configure: Changed into the simple rule. ++ ++2004-10-08 Kazuhiro Inaoka ++ ++ * sysdeps/unix/sysv/linux/m32r/mmap.S (__mmap): Use sys_mmap2. ++ ++2004-10-05 Kazuhiro Inaoka ++ ++ * sysdeps/m32r/dl-machine.h (elf_machine_rela_relative): Replace ++ static inline by auto inline, add always_inline attribute. ++ (elf_machine_rela): Likewise. ++ (elf_machine_lazy_rel): Likewise. ++ (elf_machine_runtime_setup): add always_inline attribute. ++ * sysdeps/unix/sysv/linux/m32r/bits/mman.h: Define PROT_GROWSDOWN ++ and PROT_GROWSUP. ++ * sysdeps/unix/sysv/linux/m32r/sysdep.h (SYSCALL_ERROR_HANDLER): ++ Define RTLD_PRIVATE_ERRNO variant. include . ++ ++2004-09-14 Kazuhiro Inaoka ++ ++ * configure: check for assembler line separator ++ ++2004-09-09 Kazuhiro Inaoka ++ ++ * configure, Makefile: Do nothing ++ * shlib-versions: New file. ++ * sysdeps/unix/m32r/sysdep.h: Use relative pathnames. ++ * sysdeps/unix/sysv/linux/m32r/sysdep.h: Use relative ++ pathnames. ++ * sysdeps/unix/sysv/linux/m32r/sysdep.S: Use relative ++ pathnames. ++ * sysdeps/m32r/init-first.c: Remove file ++ ++2004-09-09 Kazuhiro Inaoka ++ ++ * sysdeps/m32r/Implies: New file ++ * sysdeps/m32r/Makefile: New file ++ * sysdeps/m32r/__longjmp.S: New file ++ * sysdeps/m32r/bits/endian.h: New file ++ * sysdeps/m32r/bits/huge_val.h: New file ++ * sysdeps/m32r/bits/setjmp.h: New file ++ * sysdeps/m32r/bsd-_setjmp.S: New file ++ * sysdeps/m32r/bsd-setjmp.S: New file ++ * sysdeps/m32r/dl-machine.h: New file ++ * sysdeps/m32r/elf/start.S: New file ++ * sysdeps/m32r/gmp-mparam.h: New file ++ * sysdeps/m32r/init-first.c: New file ++ * sysdeps/m32r/m32r-mcount.S: New file ++ * sysdeps/m32r/machine-gmon.h: New file ++ * sysdeps/m32r/memcpy.S: New file ++ * sysdeps/m32r/memset.S: New file ++ * sysdeps/m32r/memusage.h: New file ++ * sysdeps/m32r/setjmp.S: New file ++ * sysdeps/m32r/stackinfo.h: New file ++ * sysdeps/m32r/strlen.S: New file ++ * sysdeps/m32r/sys/ucontext.h: New file ++ * sysdeps/m32r/sysdep.h: New file ++ * sysdeps/unix/m32r/Makefile: New file ++ * sysdeps/unix/m32r/sysdep.S: New file ++ * sysdeps/unix/m32r/sysdep.h: New file ++ * sysdeps/unix/sysv/linux/m32r/Dist: New file ++ * sysdeps/unix/sysv/linux/m32r/Makefile: New file ++ * sysdeps/unix/sysv/linux/m32r/Versions: New file ++ * sysdeps/unix/sysv/linux/m32r/bits/fcntl.h: New file ++ * sysdeps/unix/sysv/linux/m32r/bits/mman.h: New file ++ * sysdeps/unix/sysv/linux/m32r/bits/resource.h: New file ++ * sysdeps/unix/sysv/linux/m32r/brk.c: New file ++ * sysdeps/unix/sysv/linux/m32r/chown.c: New file ++ * sysdeps/unix/sysv/linux/m32r/clone.S: New file ++ * sysdeps/unix/sysv/linux/m32r/fchown.c: New file ++ * sysdeps/unix/sysv/linux/m32r/fcntl.c: New file ++ * sysdeps/unix/sysv/linux/m32r/flushcache.S: New file ++ * sysdeps/unix/sysv/linux/m32r/fxstat.c: New file ++ * sysdeps/unix/sysv/linux/m32r/getegid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/geteuid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/getgroups.c: New file ++ * sysdeps/unix/sysv/linux/m32r/getresgid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/getresuid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/getrlimit.c: New file ++ * sysdeps/unix/sysv/linux/m32r/getrlimit64.c: New file ++ * sysdeps/unix/sysv/linux/m32r/getuid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/lchown.c: New file ++ * sysdeps/unix/sysv/linux/m32r/lockf64.c: New file ++ * sysdeps/unix/sysv/linux/m32r/lxstat.c: New file ++ * sysdeps/unix/sysv/linux/m32r/m32r-stub.c: New file ++ * sysdeps/unix/sysv/linux/m32r/mmap.S: New file ++ * sysdeps/unix/sysv/linux/m32r/msgctl.c: New file ++ * sysdeps/unix/sysv/linux/m32r/pipe.S: New file ++ * sysdeps/unix/sysv/linux/m32r/profil-counter.h: New file ++ * sysdeps/unix/sysv/linux/m32r/semctl.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setegid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/seteuid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setfsgid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setfsuid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setgid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setgroups.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setregid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setresgid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setresuid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setreuid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setrlimit.c: New file ++ * sysdeps/unix/sysv/linux/m32r/setuid.c: New file ++ * sysdeps/unix/sysv/linux/m32r/shmctl.c: New file ++ * sysdeps/unix/sysv/linux/m32r/sigcontextinfo.h: New file ++ * sysdeps/unix/sysv/linux/m32r/socket.S: New file ++ * sysdeps/unix/sysv/linux/m32r/sys/cachectl.h: New file ++ * sysdeps/unix/sysv/linux/m32r/sys/io.h: New file ++ * sysdeps/unix/sysv/linux/m32r/sys/tas.h: New file ++ * sysdeps/unix/sysv/linux/m32r/sys/ucontext.h: New file ++ * sysdeps/unix/sysv/linux/m32r/sys/user.h: New file ++ * sysdeps/unix/sysv/linux/m32r/syscall.S: New file ++ * sysdeps/unix/sysv/linux/m32r/syscalls.list: New file ++ * sysdeps/unix/sysv/linux/m32r/sysdep.S: New file ++ * sysdeps/unix/sysv/linux/m32r/sysdep.h: New file ++ * sysdeps/unix/sysv/linux/m32r/vfork.S: New file ++ * sysdeps/unix/sysv/linux/m32r/xstat.c: New file +diff --exclude=CVS -upNr ports/sysdeps/m32r/Implies ports/sysdeps/m32r/Implies +--- ports/sysdeps/m32r/Implies 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/Implies 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,3 @@ ++wordsize-32 ++ieee754/flt-32 ++ieee754/dbl-64 +diff --exclude=CVS -upNr ports/sysdeps/m32r/Makefile ports/sysdeps/m32r/Makefile +--- ports/sysdeps/m32r/Makefile 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/Makefile 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,7 @@ ++# m32r/ELF specific definitions. ++ ++# The assembler on m32r needs the -fPIC flag even when it's assembler code. ++#ASFLAGS-.os = -fPIC ++ifeq ($(subdir),gmon) ++sysdep_routines += m32r-mcount ++endif +diff --exclude=CVS -upNr ports/sysdeps/m32r/__longjmp.S ports/sysdeps/m32r/__longjmp.S +--- ports/sysdeps/m32r/__longjmp.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/__longjmp.S 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,43 @@ ++/* longjmp for M32R. ++ Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#define _SETJMP_H ++#define _ASM ++#include ++ ++/* __longjmp(jmpbuf, val) */ ++ ++ENTRY (__longjmp) ++ ld r8, @r0+ ++ ld r9, @r0+ ++ ld r10, @r0+ ++ ld r11, @r0+ ++ ld r12, @r0+ ++ ld r13, @r0+ ++ ld r2, @r0+ /* lr */ ++ ld r15, @r0 /* sp */ ++ ++ mv r0,r1 ++ bnez r0, 1f /* get the return value in place */ ++ ldi r0, #1 /* can't let setjmp() return zero! */ ++ .fillinsn ++1: ++ jmp r2 ++END (__longjmp) +diff --exclude=CVS -upNr ports/sysdeps/m32r/bits/endian.h ports/sysdeps/m32r/bits/endian.h +--- ports/sysdeps/m32r/bits/endian.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/bits/endian.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,13 @@ ++/* M32R is bi-endian. */ ++ ++#ifndef _ENDIAN_H ++# error "Never use directly; include instead." ++#endif ++ ++#ifdef __LITTLE_ENDIAN__ ++#define __BYTE_ORDER __LITTLE_ENDIAN ++#define __FLOAT_WORD_ORDER __LITTLE_ENDIAN ++#else ++#define __BYTE_ORDER __BIG_ENDIAN ++#define __FLOAT_WORD_ORDER __BIG_ENDIAN ++#endif +diff --exclude=CVS -upNr ports/sysdeps/m32r/bits/huge_val.h ports/sysdeps/m32r/bits/huge_val.h +--- ports/sysdeps/m32r/bits/huge_val.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/bits/huge_val.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,56 @@ ++/* `HUGE_VAL' constants for IEEE 754 machines (where it is infinity). ++ Used by and functions for overflow. ++ M32R version. ++ Copyright (C) 1992, 95, 96, 97, 98, 99, 2000, 2004 ++ 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _MATH_H ++# error "Never use directly; include instead." ++#endif ++ ++/* IEEE positive infinity (-HUGE_VAL is negative infinity). */ ++ ++#if __GNUC_PREREQ(3,3) ++# define HUGE_VAL (__builtin_huge_val()) ++#elif __GNUC_PREREQ(2,96) ++# define HUGE_VAL (__extension__ 0x1.0p2047) ++#elif defined __GNUC__ ++ ++# define HUGE_VAL \ ++ (__extension__ \ ++ ((union { unsigned __l __attribute__((__mode__(__DI__))); double __d; }) \ ++ { __l: 0x000000007ff00000ULL }).__d) ++ ++#else /* not GCC */ ++ ++# include ++ ++typedef union { unsigned char __c[8]; double __d; } __huge_val_t; ++ ++# if __BYTE_ORDER == __BIG_ENDIAN ++# define __HUGE_VAL_bytes { 0, 0, 0, 0, 0x7f, 0xf0, 0, 0 } ++# endif ++# if __BYTE_ORDER == __LITTLE_ENDIAN ++# define __HUGE_VAL_bytes { 0, 0, 0xf0, 0x7f, 0, 0, 0, 0 } ++# endif ++ ++static __huge_val_t __huge_val = { __HUGE_VAL_bytes }; ++# define HUGE_VAL (__huge_val.__d) ++ ++#endif /* GCC. */ +diff --exclude=CVS -upNr ports/sysdeps/m32r/bits/setjmp.h ports/sysdeps/m32r/bits/setjmp.h +--- ports/sysdeps/m32r/bits/setjmp.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/bits/setjmp.h 2006-05-09 10:22:45.000000000 +0900 +@@ -0,0 +1,57 @@ ++/* Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* Define the machine-dependent type `jmp_buf'. M32R version. */ ++#ifndef _BITS_SETJMP_H ++#define _BITS_SETJMP_H 1 ++ ++#if !defined _SETJMP_H && !defined _PTHREAD_H ++# error "Never include directly; use instead." ++#endif ++ ++#ifndef _ASM ++typedef struct ++ { ++ /* Callee-saved registers r8 through r15. */ ++ int __regs[8]; ++ ++ /* Program counter. */ ++ void * __pc; ++ } __jmp_buf[1]; ++#endif ++ ++#if defined __USE_MISC || defined _ASM ++#define JB_R8 0 ++#define JB_R9 1 ++#define JB_R10 2 ++#define JB_R11 3 ++#define JB_R12 4 ++#define JB_FP 5 ++#define JB_LR 6 ++#define JB_SP 7 ++#define JB_PC 8 ++ ++#define JB_SIZE (4 * 9) ++#endif ++ ++/* Test if longjmp to JMPBUF would unwind the frame ++ containing a local variable at ADDRESS. */ ++#define _JMPBUF_UNWINDS(jmpbuf, address) \ ++ ((void *) (address) < (jmpbuf)[0].__regs[JB_SP]) ++ ++#endif /* bits/setjmp.h */ +diff --exclude=CVS -upNr ports/sysdeps/m32r/bsd-_setjmp.S ports/sysdeps/m32r/bsd-_setjmp.S +--- ports/sysdeps/m32r/bsd-_setjmp.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/bsd-_setjmp.S 2006-03-02 11:15:18.000000000 +0900 +@@ -0,0 +1,43 @@ ++/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. M32R version. ++ Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* This just does a tail-call to `__sigsetjmp (ARG, 0)'. ++ We cannot do it in C because it must be a tail-call, so frame-unwinding ++ in setjmp doesn't clobber the state restored by longjmp. */ ++ ++#include ++ ++ENTRY (_setjmp) ++#ifdef SHARED ++ mv r2,lr ++ bl.s .+4 ++ ld24 r1,#_GLOBAL_OFFSET_TABLE_ ++ add r1,lr ++ mv lr,r2 ++ ++ ld24 r2,C_SYMBOL_NAME(__sigsetjmp@GOT) ++ add r2,r1 ++ ld r2,@r2 ++#else ++ LDIMM (r2, C_SYMBOL_NAME(__sigsetjmp)) ++#endif ++ ldi r1, #0 /* Pass a second argument of zero. */ ++ jmp r2 ++END (_setjmp) ++libc_hidden_def(_setjmp) +diff --exclude=CVS -upNr ports/sysdeps/m32r/bsd-setjmp.S ports/sysdeps/m32r/bsd-setjmp.S +--- ports/sysdeps/m32r/bsd-setjmp.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/bsd-setjmp.S 2006-03-02 11:15:35.000000000 +0900 +@@ -0,0 +1,42 @@ ++/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. M32R version. ++ Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* This just does a tail-call to `__sigsetjmp (ARG, 1)'. ++ We cannot do it in C because it must be a tail-call, so frame-unwinding ++ in setjmp doesn't clobber the state restored by longjmp. */ ++ ++#include ++ ++ENTRY (setjmp) ++#ifdef SHARED ++ mv r2,lr ++ bl.s .+4 ++ ld24 r1,#_GLOBAL_OFFSET_TABLE_ ++ add r1,lr ++ mv lr,r2 ++ ++ ld24 r2,C_SYMBOL_NAME(__sigsetjmp@GOT) ++ add r2,r1 ++ ld r2,@r2 ++#else ++ LDIMM (r2, C_SYMBOL_NAME(__sigsetjmp)) ++#endif ++ ldi r1, #1 /* Pass a second argument of one. */ ++ jmp r2 ++END (setjmp) +diff --exclude=CVS -upNr ports/sysdeps/m32r/configure ports/sysdeps/m32r/configure +--- ports/sysdeps/m32r/configure 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/configure 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,7 @@ ++# This file is generated from configure.in by Autoconf. DO NOT EDIT! ++ ++libc_cv_asm_line_sep='!' ++cat >>confdefs.h <<_ACEOF ++#define ASM_LINE_SEP $libc_cv_asm_line_sep ++_ACEOF ++ +diff --exclude=CVS -upNr ports/sysdeps/m32r/configure.in ports/sysdeps/m32r/configure.in +--- ports/sysdeps/m32r/configure.in 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/configure.in 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,5 @@ ++GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. ++ ++dnl M32R uses `;' to start comments and `!' for line separator. ++libc_cv_asm_line_sep='!' ++AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep) +diff --exclude=CVS -upNr ports/sysdeps/m32r/dl-machine.h ports/sysdeps/m32r/dl-machine.h +--- ports/sysdeps/m32r/dl-machine.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/dl-machine.h 2006-03-02 11:28:06.000000000 +0900 +@@ -0,0 +1,814 @@ ++/* Machine-dependent ELF dynamic relocation inline functions. M32R version. ++ Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef dl_machine_h ++#define dl_machine_h ++ ++/* Only dummy. This doesn't work. */ ++ ++#define ELF_MACHINE_NAME "M32R" ++ ++#include ++ ++#include ++ ++/* Define the M32R_OLD_ABI, if you want to keep compatibility with ++ an old Renesas relocs */ ++#ifdef M32R_OLD_ABI ++#define R_M32R_16_SAMPLE 1 ++#define R_M32R_32_SAMPLE 2 ++#define R_M32R_24_SAMPLE 3 ++#define R_M32R_10_PCREL_SAMPLE 4 ++#define R_M32R_18_PCREL_SAMPLE 5 ++#define R_M32R_26_PCREL_SAMPLE 6 ++#define R_M32R_HI16_ULO_SAMPLE 7 ++#define R_M32R_HI16_SLO_SAMPLE 8 ++#define R_M32R_LO16_SAMPLE 9 ++#define R_M32R_SDA16_SAMPLE 10 ++ ++#define R_M32R_GOT24_SAMPLE 11 /* conflict */ ++#define R_M32R_26_PLTREL_SAMPLE 12 /* conflict */ ++#define R_M32R_GOT16_HI_ULO_SAMPLE 13 ++#define R_M32R_GOT16_HI_SLO_SAMPLE 14 ++#define R_M32R_GOT16_LO_SAMPLE 15 ++#define R_M32R_GOTPC24_SAMPLE 16 ++#define R_M32R_COPY_SAMPLE 17 ++#define R_M32R_GLOB_DAT_SAMPLE 18 ++#define R_M32R_JMP_SLOT_SAMPLE 19 ++#define R_M32R_RELATIVE_SAMPLE 20 ++#define R_M32R_GNU_VTINHERIT_SAMPLE 21 ++#define R_M32R_GNU_VTENTRY_SAMPLE 22 ++#endif /* M32R_OLD_ABI */ ++ ++/* Return nonzero iff ELF header is compatible with the running host. */ ++static inline int __attribute__ ((unused)) ++elf_machine_matches_host (const Elf32_Ehdr *ehdr) ++{ ++ return (ehdr->e_machine == EM_M32R); ++} ++ ++ ++/* Return the link-time address of _DYNAMIC. Conveniently, this is the ++ first element of the GOT. This must be inlined in a function which ++ uses global data. */ ++static inline Elf32_Addr __attribute__ ((unused)) ++elf_machine_dynamic (void) ++{ ++ register Elf32_Addr *got; ++ asm (" bl.s .+4\n" ++ " ld24 %0,#_GLOBAL_OFFSET_TABLE_\n" ++ " add %0,lr" :"=r" (got) : : "lr" ); ++ return *got; ++} ++ ++ ++/* Return the run-time load address of the shared object. */ ++static inline Elf32_Addr __attribute__ ((unused)) ++elf_machine_load_address (void) ++{ ++ Elf32_Addr addr; ++ asm (" ld24 r0,#here\n\t" ++ " add r0,r12\n\t" ++ " ld r0,@r0\n\t" ++ "here: \n\t" ++ " ld24 r1,#_GLOBAL_OFFSET_TABLE_\n\t" ++ " mv r2,r12\n\t" ++ " sub r2,r1\n\t" ++ " sub r2,r0\n\t" ++ " mv %0,r2" ++ : "=r" (addr) : : "r0", "r1", "r2" ); ++ return addr; ++} ++ ++ ++/* Set up the loaded object described by L so its unrelocated PLT ++ entries will jump to the on-demand fixup code in dl-runtime.c. */ ++ ++static inline int __attribute__ ((unused, always_inline)) ++elf_machine_runtime_setup (struct link_map *l, int lazy, int profile) ++{ ++ Elf32_Addr *got; ++ extern void _dl_runtime_resolve (Elf32_Word); ++ extern void _dl_runtime_profile (Elf32_Word); ++ ++ if (l->l_info[DT_JMPREL] && lazy) ++ { ++ /* The GOT entries for functions in the PLT have not yet been filled ++ in. Their initial contents will arrange when called to load an ++ offset into the .rela.plt section and _GLOBAL_OFFSET_TABLE_[1], ++ and then jump to _GLOBAL_OFFSET_TABLE[2]. */ ++ got = (Elf32_Addr *) D_PTR (l, l_info[DT_PLTGOT]); ++ got[1] = (Elf32_Addr) l; /* Identify this shared object. */ ++ ++ /* The got[2] entry contains the address of a function which gets ++ called to get the address of a so far unresolved function and ++ jump to it. The profiling extension of the dynamic linker allows ++ to intercept the calls to collect information. In this case we ++ don't store the address in the GOT so that all future calls also ++ end in this function. */ ++ if (profile) ++ { ++ got[2] = (Elf32_Addr) &_dl_runtime_profile; ++ /* Say that we really want profiling and the timers are started. */ ++ GL(dl_profile_map) = l; ++ } ++ else ++ /* This function will get called to fix up the GOT entry indicated by ++ the offset on the stack, and then jump to the resolved address. */ ++ got[2] = (Elf32_Addr) &_dl_runtime_resolve; ++ } ++ return lazy; ++} ++ ++/* This code is used in dl-runtime.c to call the `fixup' function ++ and then redirect to the address it returns. */ ++ ++#define ELF_MACHINE_RUNTIME_FIXUP_ARGS int plt_type ++ ++#ifdef SHARED ++#define FUN_ADDR( func ) "\n\ ++ bl.s .+4 \n\ ++ ld24 r12,#_GLOBAL_OFFSET_TABLE_ \n\ ++ add r12,lr \n\ ++ ld24 r4,#" #func "@GOT \n\ ++ add r4,r12 \n\ ++ ld r4,@r4" ++#else ++#define FUN_ADDR( func ) "\ ++ seth r4,#high( " #func " ) \n\ ++ or3 r4,r4,#low( " #func " )" ++#endif ++ ++#define FGR_SAVE "" ++#define FGR_LOAD "" ++ ++#ifdef M32R_OLD_NEWABI ++#define LOAD_ARGS_FROM_STACK( name ) "\n\ ++ mv r7,lr \n\ ++ ; OLD_PLT to keep compatible mode only \n\ ++ bl.s .+4 \n\ ++ .fillinsn \n\ ++ addi lr,# " #name " -. \n\ ++ beq r6,lr,1f \n\ ++ ; OLT_PLT ABI \n\ ++ pop r4 ; link map address \n\ ++ pop r5 ; reloc offset \n\ ++ .fillinsn \n\ ++1: \n\ ++ mv lr,r7" ++#else ++#define LOAD_ARGS_FROM_STACK( name ) "\n\ ++ ; DELETE FOR NEW ABI pop r4 ; link map address \n\ ++ ; DELETE FOR NEW ABI pop r5 ; reloc offset\n" ++#endif ++ ++#ifndef PROF ++# define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\ ++ .text \n\ ++ .globl _dl_runtime_resolve \n\ ++ .type _dl_runtime_resolve, @function \n\ ++ \n\ ++ .balign 4 \n\ ++_dl_runtime_resolve: \n\ ++ " LOAD_ARGS_FROM_STACK( _dl_runtime_resolve ) " \n\ ++ push r0 \n\ ++ push r1 \n\ ++ push r2 \n\ ++ push r3 \n\ ++ push r12 \n\ ++ " FGR_SAVE " \n\ ++ push lr \n\ ++ \n\ ++ ; fixup( ELF_MACHINE_RUNTIME_TRAMPOLINE, link_map, reloc_offset ) \n\ ++ ;mv r0,*** ; plt_type (dummy) \n\ ++ \n\ ++ mv r1,r4 ; link map address \n\ ++ mv r2,r5 ; reloc offset \n\ ++ \n\ ++ " FUN_ADDR( fixup ) " \n\ ++ \n\ ++ jl r4 ; Call resolver. \n\ ++ mv r4,r0 ; value \n\ ++ \n\ ++ pop lr ; Get register content back. \n\ ++ " FGR_LOAD " \n\ ++ pop r12 \n\ ++ pop r3 \n\ ++ pop r2 \n\ ++ pop r1 \n\ ++ pop r0 \n\ ++ \n\ ++ jmp r4 ; Jump to function address. \n\ ++ \n\ ++ .balign 4 \n\ ++ .size _dl_runtime_resolve, .-_dl_runtime_resolve \n\ ++ \n\ ++ .globl _dl_runtime_profile \n\ ++ .type _dl_runtime_profile, @function \n\ ++ \n\ ++ .balign 4 \n\ ++_dl_runtime_profile: \n\ ++ " LOAD_ARGS_FROM_STACK( _dl_runtime_profile ) " \n\ ++ push r0 \n\ ++ push r1 \n\ ++ push r2 \n\ ++ push r3 \n\ ++ push r12 \n\ ++ " FGR_SAVE " \n\ ++ push lr \n\ ++ \n\ ++ ; profile_fixup( ELF_MACHINE_RUNTIME_TRAMPOLINE, link_map, reloc_offset ) \n\ ++ ;mv r0,*** ; plt_type (dummy) \n\ ++ mv r1,r4 ; link map address \n\ ++ mv r2,r5 ; reloc offset \n\ ++ \n\ ++ " FUN_ADDR( profile_fixup ) " \n\ ++ \n\ ++ jl r4 ; Call resolver. \n\ ++ mv r4,r0 ; value \n\ ++ \n\ ++ pop lr ; Get register content back. \n\ ++ " FGR_LOAD " \n\ ++ pop r12 \n\ ++ pop r3 \n\ ++ pop r2 \n\ ++ pop r1 \n\ ++ pop r0 \n\ ++ \n\ ++ jmp r4 ; Jump to function address. \n\ ++ \n\ ++ .balign 4 \n\ ++ .size _dl_runtime_profile, .-_dl_runtime_profile \n\ ++ .previous \n\ ++"); ++#else ++# define ELF_MACHINE_RUNTIME_TRAMPOLINE asm ("\ ++ .text \n\ ++ .globl _dl_runtime_resolve \n\ ++ .globl _dl_runtime_profile \n\ ++ .type _dl_runtime_resolve, @function \n\ ++ .type _dl_runtime_profile, @function \n\ ++ \n\ ++ .balign 4 \n\ ++_dl_runtime_resolve: \n\ ++_dl_runtime_profile: \n\ ++ " LOAD_ARGS_FROM_STACK( _dl_runtime_resolve ) " \n\ ++ push r0 \n\ ++ push r1 \n\ ++ push r2 \n\ ++ push r3 \n\ ++ push r12 \n\ ++ " FGR_SAVE " \n\ ++ push lr \n\ ++ \n\ ++ ; fixup( ELF_MACHINE_RUNTIME_TRAMPOLINE, link_map, reloc_offset ) \n\ ++ ;mv r0,*** ; plt_type (dummy) \n\ ++ mv r1,r4 ; link map address \n\ ++ mv r2,r5 ; reloc offset \n\ ++ \n\ ++ " FUN_ADDR( fixup ) " \n\ ++ \n\ ++ jl r4 ; Call resolver. \n\ ++ mv r4,r0 ; value \n\ ++ \n\ ++ pop lr ; Get register content back. \n\ ++ " FGR_LOAD " \n\ ++ pop r12 \n\ ++ pop r3 \n\ ++ pop r2 \n\ ++ pop r1 \n\ ++ pop r0 \n\ ++ \n\ ++ jmp r4 ; Jump to function address. \n\ ++ \n\ ++ .balign 4 \n\ ++ .size _dl_runtime_resolve, .-_dl_runtime_resolve \n\ ++ .size _dl_runtime_profile, .-_dl_runtime_profile \n\ ++ .previous \n\ ++"); ++#endif ++ ++/* Mask identifying addresses reserved for the user program, ++ where the dynamic linker should not map anything. */ ++#define ELF_MACHINE_USER_ADDRESS_MASK 0x80000000UL ++ ++/* Initial entry point code for the dynamic linker. ++ The C function `_dl_start' is the real entry point; ++ its return value is the user program's entry point. */ ++ ++#define RTLD_START asm ("\ ++.text\n\ ++.globl _start\n\ ++.globl _dl_start_user\n\ ++_start:\n\ ++ mv r0,r15\n\ ++ bl _dl_start\n\ ++_dl_start_user:\n\ ++ ; Save the user entry point address in r8.\n\ ++ mv r8,r0\n\ ++ ; Point r12 at the GOT.\n\ ++ bl.s .+4\n\ ++ ld24 r12,#_GLOBAL_OFFSET_TABLE_\n\ ++ add r12,lr\n\ ++ ; Store the highest stack address\n\ ++ ld24 r0,#__libc_stack_end@GOT ; __libc_stack_end@GOT \n\ ++ add r0,r12\n\ ++ ld r0,@r0\n\ ++ st r15,@r0\n\ ++ ; See if we were run as a command with the executable file\n\ ++ ; name as an extra leading argument.\n\ ++ ld24 r0,#_dl_skip_args@GOT ; _dl_skip_args@GOT \n\ ++ add r0,r12\n\ ++ ld r0,@r0\n\ ++ ld r0,@r0\n\ ++ ; Get the original argument count.\n\ ++ ld r1,@r15\n\ ++ ; Subtract _dl_skip_args from it.\n\ ++ sub r1,r0\n\ ++ ; Adjust the stack pointer to skip _dl_skip_args words.\n\ ++ slli r0,#2\n\ ++ add r15,r0\n\ ++ ; Store back the modified argument count.\n\ ++ st r1,@r15\n\ ++ ; Compute argv address and envp.\n\ ++ mv r2,r15\n\ ++ addi r2,#4\n\ ++ mv r3,r1\n\ ++ addi r3,#1\n\ ++ slli r3,#2\n\ ++ add r3,r2\n\ ++ ld24 r0,#_rtld_local@GOT\n\ ++ add r0,r12\n\ ++ ld r0,@r0\n\ ++ ld r0,@r0\n\ ++ ; Call _dl_init.\n\ ++ bl _dl_init@PLT ; _dl_init@PLT \n\ ++ .fillinsn\n\ ++1: ; Pass our finalizer function to the user in r4, as per ELF ABI.\n\ ++ ld24 r0,#_dl_fini@GOT ; _dl_fini@GOT \n\ ++ add r0,r12\n\ ++ ld r0,@r0\n\ ++ ; Jump to the user's entry point.\n\ ++ jmp r8\n\ ++.previous\n\ ++"); ++ ++/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so ++ PLT entries should not be allowed to define the value. ++ ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one ++ of the main executable's symbols, as for a COPY reloc. */ ++#ifdef M32R_OLD_ABI ++/* for oldtype relocation compatibility */ ++#define elf_machine_type_class(type) \ ++ ((((type) == R_M32R_JMP_SLOT || (type) == R_M32R_JMP_SLOT_SAMPLE) * ELF_RTYPE_CLASS_PLT) \ ++ | (((type) == R_M32R_COPY || (type) == R_M32R_COPY_SAMPLE) * ELF_RTYPE_CLASS_COPY)) ++#else ++#define elf_machine_type_class(type) \ ++ ((((type) == R_M32R_JMP_SLOT) * ELF_RTYPE_CLASS_PLT) \ ++ | (((type) == R_M32R_COPY) * ELF_RTYPE_CLASS_COPY)) ++#endif ++ ++/* A reloc type used for ld.so cmdline arg lookups to reject PLT entries. */ ++#ifdef M32R_OLD_ABI ++/* for oldtype relocation compatibility */ ++#define ELF_MACHINE_JMP_SLOT \ ++ R_M32R_JMP_SLOT || ELFW(R_TYPE)(reloc->r_info) == R_M32R_JMP_SLOT_SAMPLE ++#else ++#define ELF_MACHINE_JMP_SLOT R_M32R_JMP_SLOT ++#endif ++ ++/* M32R never uses Elf32_Rel relocations. */ ++#define ELF_MACHINE_NO_REL 1 ++ ++/* We define an initialization functions. This is called very early in ++ _dl_sysdep_start. */ ++#define DL_PLATFORM_INIT dl_platform_init () ++ ++static inline void __attribute__ ((unused)) ++dl_platform_init (void) ++{ ++ if (GLRO(dl_platform) != NULL && *GLRO(dl_platform) == '\0') ++ /* Avoid an empty string which would disturb us. */ ++ GLRO(dl_platform) = NULL; ++} ++ ++static inline Elf32_Addr ++elf_machine_fixup_plt (struct link_map *map, lookup_t t, ++ const Elf32_Rela *reloc, ++ Elf32_Addr *reloc_addr, Elf32_Addr value) ++{ ++ return *reloc_addr = value; ++} ++ ++/* Return the final value of a plt relocation. */ ++static inline Elf32_Addr ++elf_machine_plt_value (struct link_map *map, const Elf32_Rela *reloc, ++ Elf32_Addr value) ++{ ++ return value + reloc->r_addend; ++} ++ ++#endif /* !dl_machine_h */ ++ ++#ifdef RESOLVE ++ ++extern char **_dl_argv; ++ ++/* Perform the relocation specified by RELOC and SYM (which is fully resolved). ++ MAP is the object containing the reloc. */ ++ ++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, ++ void *const reloc_addr_arg) ++{ ++ Elf32_Addr *const reloc_addr = reloc_addr_arg; ++ const unsigned int r_type = ELF32_R_TYPE (reloc->r_info); ++ Elf32_Addr value; ++ ++#define COPY_UNALIGNED_WORD(swp, twp, align) \ ++ { \ ++ void *__s = (swp), *__t = (twp); \ ++ unsigned char *__s1 = __s, *__t1 = __t; \ ++ unsigned short *__s2 = __s, *__t2 = __t; \ ++ unsigned long *__s4 = __s, *__t4 = __t; \ ++ switch ((align)) \ ++ { \ ++ case 0: \ ++ *__t4 = *__s4; \ ++ break; \ ++ case 2: \ ++ *__t2++ = *__s2++; \ ++ *__t2 = *__s2; \ ++ break; \ ++ default: \ ++ *__t1++ = *__s1++; \ ++ *__t1++ = *__s1++; \ ++ *__t1++ = *__s1++; \ ++ *__t1 = *__s1; \ ++ break; \ ++ } \ ++ } ++#define COPY_UNALIGNED_HWORD(swp, twp, align) \ ++ { \ ++ void *__s = (swp), *__t = (twp); \ ++ unsigned char *__s1 = __s, *__t1 = __t; \ ++ unsigned short *__s2 = __s, *__t2 = __t; \ ++ switch ((align)) \ ++ { \ ++ case 0: \ ++ *__t2 = *__s2; \ ++ break; \ ++ default: \ ++ *__t1++ = *__s1++; \ ++ *__t1 = *__s1; \ ++ break; \ ++ } \ ++ } ++ ++#ifdef M32R_OLD_ABI ++/* for oldtype relocation compatibility */ ++ if (__builtin_expect (r_type == R_M32R_RELATIVE || r_type == R_M32R_RELATIVE_SAMPLE, 0)) ++#else ++ if (__builtin_expect (r_type == R_M32R_RELATIVE, 0)) ++#endif ++ { ++#ifndef RTLD_BOOTSTRAP ++ if (map != &GL(dl_rtld_map)) /* Already done in rtld itself. */ ++#endif ++ { ++ if (reloc->r_addend) ++ value = map->l_addr + reloc->r_addend; ++ else ++ { ++ COPY_UNALIGNED_WORD (reloc_addr_arg, &value, ++ (int) reloc_addr_arg & 3); ++ value += map->l_addr; ++ } ++ COPY_UNALIGNED_WORD (&value, reloc_addr_arg, ++ (int) reloc_addr_arg & 3); ++ } ++ } ++#ifndef RTLD_BOOTSTRAP ++ else if (__builtin_expect (r_type == R_M32R_NONE, 0)) ++ return; ++#endif ++ else ++ { ++ const Elf32_Sym *const refsym = sym; ++#ifndef RTLD_BOOTSTRAP ++ Elf32_Addr tmp_value; ++#endif ++ value = RESOLVE (&sym, version, r_type); ++ if (sym) ++ value += sym->st_value; ++ value += reloc->r_addend; ++ ++ switch (r_type) ++ { ++#ifdef M32R_OLD_ABI ++ case R_M32R_COPY_SAMPLE: ++#endif ++ case R_M32R_COPY: ++ if (sym == NULL) ++ /* This can happen in trace mode if an object could not be ++ found. */ ++ break; ++ if (sym->st_size > refsym->st_size ++ || (sym->st_size < refsym->st_size && GLRO(dl_verbose))) ++ { ++ const char *strtab; ++ ++ strtab = (const char *) D_PTR (map, l_info[DT_STRTAB]); ++ _dl_error_printf ("\ ++%s: Symbol `%s' has different size in shared object, consider re-linking\n", ++ _dl_argv[0] ?: "", ++ strtab + refsym->st_name); ++ } ++ memcpy (reloc_addr, (void *) value, MIN (sym->st_size, ++ refsym->st_size)); ++ break; ++#ifdef M32R_OLD_ABI ++ case R_M32R_GLOB_DAT_SAMPLE: ++#endif ++ case R_M32R_GLOB_DAT: ++#if 0 /* 20021129 1 -> 0 */ ++ case R_M32R_32: ++ *reloc_addr = value; ++ break; ++#endif /* 20021129 1 -> 0 */ ++#ifdef M32R_OLD_ABI ++ case R_M32R_JMP_SLOT_SAMPLE: ++#endif ++ case R_M32R_JMP_SLOT: ++ elf_machine_fixup_plt(map, 0, reloc, reloc_addr, value); ++ break; ++#if 1 /* 20021129 0 -> 1 */ ++#ifdef M32R_OLD_ABI ++ case R_M32R_32_SAMPLE: ++#endif ++ case R_M32R_32_RELA: ++#ifndef RTLD_BOOTSTRAP ++#ifdef M32R_OLD_ABI ++ case R_M32R_24_SAMPLE: ++ case R_M32R_16_SAMPLE: ++ case R_M32R_HI16_ULO_SAMPLE: ++ case R_M32R_HI16_SLO_SAMPLE: ++ case R_M32R_LO16_SAMPLE: ++ case R_M32R_SDA16_SAMPLE: ++#endif ++ case R_M32R_24_RELA: ++ case R_M32R_16_RELA: ++ case R_M32R_HI16_ULO_RELA: ++ case R_M32R_HI16_SLO_RELA: ++ case R_M32R_LO16_RELA: ++ case R_M32R_SDA16_RELA: ++#endif ++ case R_M32R_REL32: ++ { ++#ifndef RTLD_BOOTSTRAP ++ /* This is defined in rtld.c, but nowhere in the static ++ libc.a; make the reference weak so static programs can ++ still link. This declaration cannot be done when ++ compiling rtld.c (i.e. #ifdef RTLD_BOOTSTRAP) because ++ rtld.c contains the common defn for _dl_rtld_map, which ++ is incompatible with a weak decl in the same file. */ ++# ifndef SHARED ++ weak_extern (GL(dl_rtld_map)); ++# endif ++ if (map == &GL(dl_rtld_map)) ++ /* Undo the relocation done here during bootstrapping. ++ Now we will relocate it anew, possibly using a ++ binding found in the user program or a loaded library ++ rather than the dynamic linker's built-in definitions ++ used while loading those libraries. */ ++ value -= map->l_addr + refsym->st_value + reloc->r_addend; ++#endif ++#ifdef M32R_OLD_ABI ++ if (r_type == R_M32R_32_SAMPLE ++ || r_type == R_M32R_32_RELA) ++#else ++ if (r_type == R_M32R_32_RELA) ++#endif ++ { ++ COPY_UNALIGNED_WORD (&value, reloc_addr_arg, ++ (int) reloc_addr_arg & 3); ++ } ++#ifndef RTLD_BOOTSTRAP ++#ifdef M32R_OLD_ABI ++ else if (r_type == R_M32R_16_SAMPLE ++ || r_type == R_M32R_16_RELA) ++#else ++ else if (r_type == R_M32R_16_RELA) ++#endif ++ { ++ COPY_UNALIGNED_HWORD (&value, reloc_addr_arg, ++ (int) reloc_addr_arg & 3); ++ } ++ else if (r_type == R_M32R_REL32) ++ { ++ value = (value - (Elf32_Addr) reloc_addr); ++ COPY_UNALIGNED_WORD (&value, reloc_addr_arg, ++ (int) reloc_addr_arg & 3); ++ } ++ else ++ { ++ COPY_UNALIGNED_WORD (reloc_addr_arg, &tmp_value, ++ (int) reloc_addr_arg & 3); ++ switch (r_type) ++ { ++#ifdef M32R_OLD_ABI ++ case R_M32R_24_SAMPLE: ++ if (value & 0xff000000) ++ { ++ _dl_signal_error (0, map->l_name, NULL, ++ "R_M32R_24 relocation overflow"); ++ } ++ value = (tmp_value & ~0xffffff) | (value & 0xffffff); ++ break; ++#endif ++ case R_M32R_24_RELA: ++ if (value & 0xff000000) ++ { ++ _dl_signal_error (0, map->l_name, NULL, ++ "R_M32R_24_RELA relocation overflow"); ++ } ++ value = (tmp_value & ~0xffffff) | (value & 0xffffff); ++ break; ++#ifdef M32R_OLD_ABI ++ case R_M32R_HI16_ULO_SAMPLE: ++#endif ++ case R_M32R_HI16_ULO_RELA: ++ value = (tmp_value & ~0xffff) | ((value >>16) & 0xffff); ++ break; ++#ifdef M32R_OLD_ABI ++ case R_M32R_HI16_SLO_SAMPLE: ++#endif ++ case R_M32R_HI16_SLO_RELA: ++ if (value & 0x8000) ++ value += 0x10000; ++ value = (tmp_value & ~0xffff) | ((value >>16) & 0xffff); ++ break; ++#ifdef M32R_OLD_ABI ++ case R_M32R_LO16_SAMPLE: ++ case R_M32R_SDA16_SAMPLE: ++#endif ++ case R_M32R_LO16_RELA: ++ case R_M32R_SDA16_RELA: ++ value = (tmp_value & ~0xffff) | (value & 0xffff); ++ break; ++ } ++ COPY_UNALIGNED_WORD (&value, reloc_addr_arg, ++ (int) reloc_addr_arg & 3); ++ } ++#endif ++ break; ++ } ++#ifndef RTLD_BOOTSTRAP ++#ifdef M32R_OLD_ABI ++ case R_M32R_26_PCREL_SAMPLE: ++ COPY_UNALIGNED_WORD (reloc_addr_arg, &tmp_value, ++ (int) reloc_addr_arg & 3); ++ value += (signed long)(((tmp_value & 0xffffff) ^ 0x800000) - 0x800000) << 2; ++ value = value - (Elf32_Addr) reloc_addr; ++ if ((signed long)value < -0x2000000 || 0x1fffffc < (signed long)value) ++ { ++ _dl_signal_error (0, map->l_name, NULL, ++ "R_M32R_26_PCREL relocation overflow"); ++ } ++ value = (tmp_value & ~0xffffff) | ((value >> 2) & 0xffffff); ++ COPY_UNALIGNED_WORD (&value, reloc_addr_arg, (int) reloc_addr_arg & 3); ++ break; ++#endif ++ case R_M32R_26_PCREL_RELA: ++ COPY_UNALIGNED_WORD (reloc_addr_arg, &tmp_value, ++ (int) reloc_addr_arg & 3); ++ value = value - (Elf32_Addr) reloc_addr; ++ if ((signed long)value < -0x2000000 || 0x1fffffc < (signed long)value) ++ { ++ _dl_signal_error (0, map->l_name, NULL, ++ "R_M32R_26_PCREL_RELA relocation overflow"); ++ } ++ value = (tmp_value & ~0xffffff) | ((value >> 2) & 0xffffff); ++ COPY_UNALIGNED_WORD (&value, reloc_addr_arg, ++ (int) reloc_addr_arg & 3); ++ break; ++#ifdef M32R_OLD_ABI ++ case R_M32R_18_PCREL_SAMPLE: ++ COPY_UNALIGNED_WORD (reloc_addr_arg, &tmp_value, ++ (int) reloc_addr_arg & 3); ++ value += (signed long)((tmp_value & 0xffff) ^ 0x8000) - 0x8000) << 2; ++ value = value - (Elf32_Addr) reloc_addr; ++ if ((signed long)value < -0x20000 || 0x1fffc < (signed long)value) ++ { ++ _dl_signal_error (0, map->l_name, NULL, ++ "R_M32R_18_PCREL relocation overflow"); ++ } ++ value = (tmp_value & ~0xffff) | ((value >> 2) & 0xffff); ++ COPY_UNALIGNED_WORD (&value, reloc_addr_arg, ++ (int) reloc_addr_arg & 3); ++ break; ++#endif ++ case R_M32R_18_PCREL_RELA: ++ COPY_UNALIGNED_WORD (reloc_addr_arg, &tmp_value, ++ (int) reloc_addr_arg & 3); ++ value = value - (Elf32_Addr) reloc_addr; ++ if ((signed long)value < -0x20000 || 0x1fffc < (signed long)value) ++ { ++ _dl_signal_error (0, map->l_name, NULL, ++ "R_M32R_18_PCREL_RELA relocation overflow"); ++ } ++ value = (tmp_value & ~0xffff) | ((value >> 2) & 0xffff); ++ COPY_UNALIGNED_WORD (&value, reloc_addr_arg, ++ (int) reloc_addr_arg & 3); ++ break; ++#endif ++#ifdef M32R_OLD_ABI ++ case R_M32R_10_PCREL_SAMPLE: ++#else ++ case R_M32R_10_PCREL_RELA: ++#endif ++ { ++ unsigned short tmp_hvalue; ++ COPY_UNALIGNED_HWORD (reloc_addr_arg, &tmp_hvalue, ++ (int) reloc_addr_arg & 3); ++ value = value - (Elf32_Addr) reloc_addr; ++ if ((signed long)value < -0x200 || 0x1fc < (signed long)value) ++ { ++#ifdef M32R_OLD_ABI ++ _dl_signal_error (0, map->l_name, NULL, ++ "R_M32R_10_PCREL relocation overflow"); ++#else ++ _dl_signal_error (0, map->l_name, NULL, ++ "R_M32R_10_PCREL_RELA relocation overflow"); ++#endif ++ } ++ tmp_hvalue = (tmp_hvalue & ~0xff) | ((value >> 2) & 0xff); ++ COPY_UNALIGNED_HWORD (&tmp_hvalue, reloc_addr_arg, ++ (int) reloc_addr_arg & 3); ++ break; ++ } ++#endif /* 20021129 0 -> 1 */ ++ default: ++ _dl_reloc_bad_type (map, r_type, 0); ++ break; ++ } ++ } ++} ++ ++auto inline void ++__attribute ((always_inline)) ++elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc, ++ void *const reloc_addr_arg) ++{ ++ Elf32_Addr value; ++ ++ if (reloc->r_addend) ++ value = l_addr + reloc->r_addend; ++ else ++ { ++ COPY_UNALIGNED_WORD (reloc_addr_arg, &value, (int) reloc_addr_arg & 3); ++ value += l_addr; ++ } ++ COPY_UNALIGNED_WORD (&value, reloc_addr_arg, (int) reloc_addr_arg & 3); ++ ++#undef COPY_UNALIGNED_WORD ++#undef COPY_UNALIGNED_HWORD ++} ++ ++auto inline void ++__attribute ((always_inline)) ++elf_machine_lazy_rel (struct link_map *map, ++ Elf32_Addr l_addr, const Elf32_Rela *reloc) ++{ ++ Elf32_Addr *const reloc_addr = (void *) (l_addr + reloc->r_offset); ++ /* Check for unexpected PLT reloc type. */ ++#ifdef M32R_OLD_ABI ++ if (ELF32_R_TYPE (reloc->r_info) == R_M32R_JMP_SLOT ++ || ELF32_R_TYPE (reloc->r_info) == R_M32R_JMP_SLOT_SAMPLE) ++#else ++ if (ELF32_R_TYPE (reloc->r_info) == R_M32R_JMP_SLOT) ++#endif ++ *reloc_addr += l_addr; ++ else ++ _dl_reloc_bad_type (map, ELF32_R_TYPE (reloc->r_info), 1); ++} ++ ++#endif /* RESOLVE */ +diff --exclude=CVS -upNr ports/sysdeps/m32r/elf/start.S ports/sysdeps/m32r/elf/start.S +--- ports/sysdeps/m32r/elf/start.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/elf/start.S 2006-03-02 11:31:52.000000000 +0900 +@@ -0,0 +1,109 @@ ++/* Startup code for M32R & ELF. ++ Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* This is the canonical entry point, usually the first thing in the text ++ segment. ++ ++ Note that the code in the .init section has already been run. ++ This includes _init and _libc_init ++ ++ ++ At this entry point, most registers' values are unspecified, except: ++ ++ r0 Contains a function pointer to be registered with `atexit'. ++ This is how the dynamic linker arranges to have DT_FINI ++ functions called for shared libraries that have been loaded ++ before this code runs. ++ ++ sp The stack contains the arguments and environment: ++ @(0,sp) argc ++ @(4,sp) argv[0] ++ ... ++ @((4*argc),sp) NULL ++ @((4*(argc+1)),sp) envp[0] ++ ... ++ NULL ++*/ ++ ++#include "sysdep.h" ++#include "bp-sym.h" ++ ++ .text ++ .globl _start ++_start: ++ /* Clear the frame pointer since this is the outermost frame. */ ++ ldi r13, #0 ++#ifdef SHARED ++ bl.s .+4 ++ ld24 r12, #_GLOBAL_OFFSET_TABLE_ ++ add r12, lr ++#endif ++ ++ /* Pop argc off the stack and save a pointer to argv */ ++ pop r1 ++ mv r2, sp ++ ++ /* Push the last arguments to main() onto the stack */ ++ push r0 ++#ifdef SHARED ++ ld24 r0, #__libc_csu_fini@GOT ++ add r0,r12 ++ ld r0,@r0 ++#else ++ LDIMM (r0, __libc_csu_fini) ++#endif ++ push r0 ++ ++ /* Set up the other arguments for main() that go in registers */ ++#ifdef SHARED ++ ld24 r0,#BP_SYM (main@GOT) ++ add r0,r12 ++ ld r0,@r0 ++ ld24 r3, #__libc_csu_init@GOT ++ add r3,r12 ++ ld r3,@r3 ++#else ++ LDIMM (r0, BP_SYM (main)) ++ LDIMM (r3, __libc_csu_init) ++#endif ++ ++ /* __libc_start_main (main, argc, argv, init, fini, rtld_fini) */ ++ ++ /* Let the libc call main and exit with its return code. */ ++#ifdef SHARED ++ bl BP_SYM (__libc_start_main@PLT) ++#else ++ LDIMM (r4, BP_SYM (__libc_start_main)) ++ jl r4 ++#endif ++ /* should never get here....*/ ++#ifdef SHARED ++ bl abort@PLT ++#else ++ LDIMM (r4, abort) ++ jl r4 ++#endif ++ ++/* Define a symbol for the first piece of initialized data. */ ++ .data ++ .globl __data_start ++__data_start: ++ .long 0 ++ .weak data_start ++ data_start = __data_start +diff --exclude=CVS -upNr ports/sysdeps/m32r/gccframe.h ports/sysdeps/m32r/gccframe.h +--- ports/sysdeps/m32r/gccframe.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/gccframe.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,22 @@ ++/* Definition of object in frame unwind info. m32r version. ++ Copyright (C) 2001 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#define DWARF_FRAME_REGISTERS 20 ++ ++#include +diff --exclude=CVS -upNr ports/sysdeps/m32r/gmp-mparam.h ports/sysdeps/m32r/gmp-mparam.h +--- ports/sysdeps/m32r/gmp-mparam.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/gmp-mparam.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,30 @@ ++/* gmp-mparam.h -- Compiler/machine parameter header file. ++ ++Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ ++This file is part of the GNU MP Library. ++ ++The GNU MP Library is free software; you can redistribute it and/or modify ++it under the terms of the GNU Library General Public License as published by ++the Free Software Foundation; either version 2 of the License, or (at your ++option) any later version. ++ ++The GNU MP Library is distributed in the hope that it will be useful, but ++WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public ++License for more details. ++ ++You should have received a copy of the GNU Library General Public License ++along with the GNU MP Library; see the file COPYING.LIB. If not, write to ++the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, ++MA 02111-1307, USA. */ ++ ++#define BITS_PER_MP_LIMB 32 ++#define BYTES_PER_MP_LIMB 4 ++#define BITS_PER_LONGINT 32 ++#define BITS_PER_INT 32 ++#define BITS_PER_SHORTINT 16 ++#define BITS_PER_CHAR 8 ++ ++#define IEEE_DOUBLE_BIG_ENDIAN 0 ++#define IEEE_DOUBLE_MIXED_ENDIAN 1 +diff --exclude=CVS -upNr ports/sysdeps/m32r/linuxthreads/pspinlock.c ports/sysdeps/m32r/linuxthreads/pspinlock.c +--- ports/sysdeps/m32r/linuxthreads/pspinlock.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/linuxthreads/pspinlock.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,70 @@ ++/* POSIX spinlock implementation. M32R version. ++ Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#include ++#include "internals.h" ++ ++int ++__pthread_spin_lock (pthread_spinlock_t *lock) ++{ ++ while (INTERNAL_SYSCALL (tas, , 1, lock)); ++ return 0; ++} ++weak_alias (__pthread_spin_lock, pthread_spin_lock) ++ ++ ++int ++__pthread_spin_trylock (pthread_spinlock_t *lock) ++{ ++ unsigned int val; ++ ++ if ((val = *lock) == 0) ++ val = INTERNAL_SYSCALL (tas, , 1, lock); ++ return (val > 0 ? EBUSY : 0); ++} ++weak_alias (__pthread_spin_trylock, pthread_spin_trylock) ++ ++ ++int ++__pthread_spin_unlock (pthread_spinlock_t *lock) ++{ ++ return *lock = 0; ++} ++weak_alias (__pthread_spin_unlock, pthread_spin_unlock) ++ ++ ++int ++__pthread_spin_init (pthread_spinlock_t *lock, int pshared) ++{ ++ /* We can ignore the `pshared' parameter. Since we are busy-waiting ++ all processes which can access the memory location `lock' points ++ to can use the spinlock. */ ++ return *lock = 0; ++} ++weak_alias (__pthread_spin_init, pthread_spin_init) ++ ++ ++int ++__pthread_spin_destroy (pthread_spinlock_t *lock) ++{ ++ /* Nothing to do. */ ++ return 0; ++} ++weak_alias (__pthread_spin_destroy, pthread_spin_destroy) +diff --exclude=CVS -upNr ports/sysdeps/m32r/linuxthreads/pt-machine.h ports/sysdeps/m32r/linuxthreads/pt-machine.h +--- ports/sysdeps/m32r/linuxthreads/pt-machine.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/linuxthreads/pt-machine.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,55 @@ ++/* Machine-dependent pthreads configuration and inline functions. ++ M32R version. ++ Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef _PT_MACHINE_H ++#define _PT_MACHINE_H 1 ++ ++#include ++#include ++ ++#ifndef __ASSEMBLER__ ++#ifndef PT_EI ++# define PT_EI extern inline ++#endif ++ ++extern long int testandset (int *spinlock); ++extern int __compare_and_swap (long int *p, long int oldval, long int newval); ++ ++/* Spinlock implementation; required. */ ++PT_EI long int ++testandset (int *spinlock) ++{ ++ int ret; ++ ++ ret = INLINE_SYSCALL (tas, 1, spinlock); ++ return ret; ++} ++ ++#define lock_held(p) *(p) ++ ++/* Get some notion of the current stack. Need not be exactly the top ++ of the stack, just something somewhere in the current frame. */ ++#define CURRENT_STACK_FRAME stack_pointer ++register char * stack_pointer __asm__ ("r15"); ++ ++#endif /* __ASSEMBLER__ */ ++ ++#endif /* pt-machine.h */ ++ +diff --exclude=CVS -upNr ports/sysdeps/m32r/m32r-mcount.S ports/sysdeps/m32r/m32r-mcount.S +--- ports/sysdeps/m32r/m32r-mcount.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/m32r-mcount.S 2006-03-02 11:17:40.000000000 +0900 +@@ -0,0 +1,67 @@ ++/* m32r-specific implemetation of profiling support. ++ Copyright (C) 2003 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++ ++ ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(_mcount) ++ ASM_TYPE_DIRECTIVE(C_SYMBOL_NAME(_mcount), function) ++ .balign 4 ++C_LABEL(_mcount) ++ /* Save the caller-clobbered registers. */ ++ push r0 ++ push r1 ++ push r2 ++ push r3 ++ push r4 ++ push r5 ++ push r6 ++ push r7 ++ push lr ++ ld r0,@(36,sp) ++ mv r1,lr ++ ++#ifdef __PIC__ ++ push r12 ++ bl.s .+4 ++ ld24 r12,#_GLOBAL_OFFSET_TABLE_ ++ add r12,lr ++ ld24 lr,#__mcount_internal@GOT ++ add lr,r12 ++ ld lr,@(lr) ++ jl lr ++ pop r12 ++#else ++ bl __mcount_internal ++#endif ++ /* Pop the saved registers. Please note that `mcount' has no ++ return value. */ ++ pop lr ++ pop r7 ++ pop r6 ++ pop r5 ++ pop r4 ++ pop r3 ++ pop r2 ++ pop r1 ++ pop r0 ++ ret ++ ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount)) ++ ++#undef mcount ++weak_alias(_mcount, mcount) +diff --exclude=CVS -upNr ports/sysdeps/m32r/machine-gmon.h ports/sysdeps/m32r/machine-gmon.h +--- ports/sysdeps/m32r/machine-gmon.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/machine-gmon.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,34 @@ ++/* Machine-dependent definitions for profiling support. M32R version. ++ Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* NOTYET */ ++ ++/* We must not pollute the global namespace. */ ++#define mcount_internal __mcount_internal ++ ++void mcount_internal (u_long frompc, u_long selfpc); ++ ++#define _MCOUNT_DECL(frompc, selfpc) \ ++void mcount_internal (u_long frompc, u_long selfpc) ++ ++ ++/* Define MCOUNT as empty since we have the implementation in another ++ file. */ ++#define MCOUNT ++ +diff --exclude=CVS -upNr ports/sysdeps/m32r/memcpy.S ports/sysdeps/m32r/memcpy.S +--- ports/sysdeps/m32r/memcpy.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/memcpy.S 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,62 @@ ++/* Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#include ++ ++/* ++ * void *memcpy(void *dst, const void *src, size_t n); ++ * No overlap between the memory of DST and of SRC are assumed. ++ * ++ * dst: r0 ++ * src: r1 ++ * n : r2 ++ */ ++ ++ENTRY(memcpy) ++ mv r4, r0 ++ mv r7, r0 ++ or r7, r1 ++ beq r0, r1, end_memcopy ++ beqz r2, end_memcopy ++ ++ and3 r7, r7, #3 ++ bnez r7, byte_copy ++ srl3 r3, r2, #2 ++ and3 r2, r2, #3 ++ beqz r3, byte_copy ++ addi r4, #-4 ++word_copy: ++ ld r7, @r1+ ++ addi r3, #-1 ++ st r7, @+r4 ++ bnez r3, word_copy ++ beqz r2, end_memcopy ++ addi r4, #4 ++byte_copy: ++ ldb r7, @r1 ++ addi r1, #1 ++ addi r2, #-1 ++ stb r7, @r4 ++ addi r4, #1 ++ bnez r2, byte_copy ++end_memcopy: ++ jmp r14 ++ nop ++END(memcpy) ++libc_hidden_builtin_def (memcpy) +diff --exclude=CVS -upNr ports/sysdeps/m32r/memset.S ports/sysdeps/m32r/memset.S +--- ports/sysdeps/m32r/memset.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/memset.S 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,184 @@ ++/* Copyright (C) 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++ ++/* void *memset(void *dst, int val, int len); ++ * ++ * dst: r0 ++ * val: r1 ++ * len: r2 ++ * ret: r0 ++ */ ++ ++ .text ++ ++#if defined(__m32r2__) ++ ++ENTRY(memset) ++ mv r4, r0 || cmpz r2 ++ jc r14 ; return if r2=0 ++ cmpui r2, #16 ++ bnc qword_align_check ++ cmpui r2, #4 ++ bc byte_set ++; case len >= 4 ++word_align_check: ++ and3 r3, r4, #3 ++ beqz r3, word_set ++; case no word-align ++ addi r3, #-4 ++ neg r3, r3 ; r3 = -(r3 - 4) ++align_word: ++ stb r1, @r4 || addi r4, #1 ++ addi r2, #-1 || addi r3, #-1 ++ bnez r3, align_word ++ cmpui r2, #4 ++ bc byte_set ++word_set: ++ and3 r1, r1, #0x00ff ; r1: abababab <-- ??????ab ++ sll3 r3, r1, #8 ++ or r1, r3 || addi r4, #-4 ++ sll3 r3, r1, #16 ++ or r1, r3 || addi r2, #-4 ++word_set_loop: ++ st r1, @+r4 || addi r2, #-4 ++ bgtz r2, word_set_loop ++ bnez r2, byte_set_wrap ++ st r1, @+r4 ++ jmp r14 ++ ++qword_align_check: ++ and3 r3, r4, #15 ++ bnez r3, word_align_check ++qword_set: ++ and3 r1, r1, #0x00ff ; r1: abababab <-- ??????ab ++ sll3 r3, r1, #8 ++ or r1, r3 || addi r4, #-4 ++ sll3 r3, r1, #16 ++ or r1, r3 || ldi r5, #16 ++qword_set_loop: ++ ld r3, @(4,r4) ; cache line allocate ++ st r1, @+r4 || addi r2, #-16 ++ st r1, @+r4 || cmpu r2, r5 ++ st r1, @+r4 ++ st r1, @+r4 ++ bnc qword_set_loop || cmpz r2 ++ jc r14 ++set_remainder: ++ cmpui r2, #4 ++ bc byte_set_wrap1 ++ addi r2, #-4 ++ bra word_set_loop ++ ++byte_set_wrap: ++ addi r2, #4 ++ cmpz r2 ++ jc r14 ; return if r2=0 ++byte_set_wrap1: ++ addi r4, #4 ++byte_set: ++ addi r2, #-1 || stb r1, @r4+ ++ bnez r2, byte_set ++end_memset: ++ jmp r14 ++END(memset) ++ ++#else ++ ++ENTRY(memset) ++ mv r4, r0 ++ beqz r2, end_memset ++ cmpui r2, #16 ++ bnc qword_align_check ++ cmpui r2, #4 ++ bc byte_set ++; case len >= 4 ++word_align_check: ++ and3 r3, r4, #3 ++ beqz r3, word_set ++; case no word-align ++ addi r3, #-4 ++ neg r3, r3 ; r3 = -(r3 - 4) ++align_word: ++ stb r1, @r4 ++ addi r4, #1 ++ addi r2, #-1 ++ addi r3, #-1 ++ bnez r3, align_word ++ cmpui r2, #4 ++ bc byte_set ++word_set: ++ and3 r1, r1, #0x00ff ; r1: abababab <-- ??????ab ++ sll3 r3, r1, #8 ++ or r1, r3 ++ sll3 r3, r1, #16 ++ or r1, r3 ++ addi r2, #-4 ++ addi r4, #-4 ++word_set_loop: ++ st r1, @+r4 ++ addi r2, #-4 ++ bgtz r2, word_set_loop ++ bnez r2, byte_set_wrap ++ st r1, @+r4 ++ jmp r14 ++ ++qword_align_check: ++ and3 r3, r4, #15 ++ bnez r3, word_align_check ++qword_set: ++ and3 r1, r1, #0x00ff ; r1: abababab <-- ??????ab ++ sll3 r3, r1, #8 ++ or r1, r3 ++ sll3 r3, r1, #16 ++ or r1, r3 ++ addi r4, #-4 ++qword_set_loop: ++ ld r3, @(4,r4) ; cache line allocate ++ addi r2, #-16 ++ st r1, @+r4 ++ st r1, @+r4 ++ cmpui r2, #16 ++ st r1, @+r4 ++ st r1, @+r4 ++ bnc qword_set_loop ++ bnez r2, set_remainder ++ jmp r14 ++set_remainder: ++ cmpui r2, #4 ++ bc byte_set_wrap1 ++ addi r2, #-4 ++ bra word_set_loop ++ ++byte_set_wrap: ++ addi r2, #4 ++ beqz r2, end_memset ++byte_set_wrap1: ++ addi r4, #4 ++byte_set: ++ addi r2, #-1 ++ stb r1, @r4 ++ addi r4, #1 ++ bnez r2, byte_set ++end_memset: ++ jmp r14 ++END(memset) ++ ++#endif ++libc_hidden_builtin_def (memset) +diff --exclude=CVS -upNr ports/sysdeps/m32r/memusage.h ports/sysdeps/m32r/memusage.h +--- ports/sysdeps/m32r/memusage.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/memusage.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,21 @@ ++/* Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#define GETSP() ({ register uintptr_t stack_ptr asm ("r15"); stack_ptr; }) ++ ++#include +diff --exclude=CVS -upNr ports/sysdeps/m32r/setjmp.S ports/sysdeps/m32r/setjmp.S +--- ports/sysdeps/m32r/setjmp.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/setjmp.S 2006-03-02 11:18:51.000000000 +0900 +@@ -0,0 +1,53 @@ ++/* setjmp for M32R. ++ Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#define _SETJMP_H ++#define _ASM ++#include ++ ++ENTRY (__sigsetjmp) ++ mv r2, r0 ++ /* Save registers */ ++ st r8, @r0 ++ st r9, @+r0 ++ st r10, @+r0 ++ st r11, @+r0 ++ st r12, @+r0 ++ st r13, @+r0 ++ st r14, @+r0 /* lr */ ++ st r15, @+r0 /* sp */ ++ mv r0, r2 ++ ++ /* Make a tail call to __sigjmp_save; it takes the same args. */ ++#ifdef SHARED ++ mv r2,lr ++ bl.s .+4 ++ ld24 r3,#_GLOBAL_OFFSET_TABLE_ ++ add r3,lr ++ mv lr,r2 ++ ++ ld24 r2,C_SYMBOL_NAME(__sigjmp_save@GOT) ++ add r2,r3 ++ ld r2,@r2 ++#else ++ LDIMM (r2, C_SYMBOL_NAME(__sigjmp_save)) ++#endif ++ jmp r2 ++END (__sigsetjmp) +diff --exclude=CVS -upNr ports/sysdeps/m32r/shlib-versions ports/sysdeps/m32r/shlib-versions +--- ports/sysdeps/m32r/shlib-versions 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/shlib-versions 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,2 @@ ++m32r.*-.*-linux.* DEFAULT GLIBC_2.3 ++m32r.*-.*-linux.* ld=ld-linux.so.2 +diff --exclude=CVS -upNr ports/sysdeps/m32r/stackinfo.h ports/sysdeps/m32r/stackinfo.h +--- ports/sysdeps/m32r/stackinfo.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/stackinfo.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,28 @@ ++/* Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* This file contains a bit of information about the stack allocation ++ of the processor. */ ++ ++#ifndef _STACKINFO_H ++#define _STACKINFO_H 1 ++ ++/* On SH the stack grows down. */ ++#define _STACK_GROWS_DOWN 1 ++ ++#endif /* stackinfo.h */ +diff --exclude=CVS -upNr ports/sysdeps/m32r/strlen.S ports/sysdeps/m32r/strlen.S +--- ports/sysdeps/m32r/strlen.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/strlen.S 2006-04-20 09:44:29.000000000 +0900 +@@ -0,0 +1,77 @@ ++/* Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#include ++ ++/* size_t strlen (const char *s) */ ++ ++ENTRY(strlen) ++ mv r6, r0 ++ ldi r2, #0 ++ and3 r0, r0, #3 ++ bnez r0, strlen_byte ++; ++strlen_word: ++ ld r0, @r6+ ++; ++ seth r5, #high(0x01010101) ++ or3 r5, r5, #low(0x01010101) ++ sll3 r7, r5, #7 ++strlen_word_loop: ++ not r4, r0 ; NOTE: If a null char. exists, return 0. ++ sub r0, r5 ; if ((x - 0x01010101) & ~x & 0x80808080) ++ and r4, r7 ; return 0; ++ and r4, r0 ++ bnez r4, strlen_last_bytes ++ ld r1, @r6+ ++ addi r2, #4 ++; ++ not r4, r1 ; NOTE: If a null char. exists, return 0. ++ sub r1, r5 ; if ((x - 0x01010101) & ~x & 0x80808080) ++ and r4, r7 ; return 0; ++ and r4, r1 ++ bnez r4, strlen_last_bytes ++ ld r0, @r6+ ++ addi r2, #4 ++ bra strlen_word_loop ++; ++strlen_byte: ++ ldb r1, @r6 ++ addi r6, #1 ++ beqz r1, strlen_exit ++ addi r2, #1 ++ bra strlen_byte ++; ++strlen_last_bytes: ++ ldi r0, #4 ++ addi r6, #-4 ++; ++strlen_byte_loop: ++ ldb r1, @r6 ++ addi r6, #1 ++ addi r0, #-1 ++ beqz r1, strlen_exit ++ addi r2, #1 ++ bnez r0, strlen_byte_loop ++; ++strlen_exit: ++ mv r0, r2 ++ jmp r14 ++END(strlen) ++libc_hidden_builtin_def (strlen) +diff --exclude=CVS -upNr ports/sysdeps/m32r/sys/ucontext.h ports/sysdeps/m32r/sys/ucontext.h +--- ports/sysdeps/m32r/sys/ucontext.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/sys/ucontext.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,102 @@ ++/* Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef _SYS_UCONTEXT_H ++#define _SYS_UCONTEXT_H 1 ++ ++#include ++#include ++ ++typedef int greg_t; ++ ++/* Number of general registers. */ ++#define NGREG 16 ++ ++/* Container for all general registers. */ ++typedef greg_t gregset_t[NGREG]; ++ ++/* Number of each register is the `gregset_t' array. */ ++enum ++{ ++ R0 = 0, ++#define R0 R0 ++ R1 = 1, ++#define R1 R1 ++ R2 = 2, ++#define R2 R2 ++ R3 = 3, ++#define R3 R3 ++ R4 = 4, ++#define R4 R4 ++ R5 = 5, ++#define R5 R5 ++ R6 = 6, ++#define R6 R6 ++ R7 = 7, ++#define R7 R7 ++ R8 = 8, ++#define R8 R8 ++ R9 = 9, ++#define R9 R9 ++ R10 = 10, ++#define R10 R10 ++ R11 = 11, ++#define R11 R11 ++ R12 = 12, ++#define R12 R12 ++ R13 = 13, ++#define R13 R13 ++ R14 = 14, ++#define R14 R14 ++ R15 = 15, ++#define R15 R15 ++}; ++ ++#if 0 ++/* FIXME */ ++typedef int freg_t; ++ ++/* Number of FPU registers. */ ++#define NFREG 16 ++ ++/* Structure to describe FPU registers. */ ++typedef freg_t fpregset_t[NFREG]; ++#endif ++ ++/* Context to describe whole processor state. */ ++typedef struct ++ { ++ gregset_t gregs; ++#if 0 ++ fpregset_t fpregs; ++ fpregset_t xfpregs; ++#endif ++ } mcontext_t; ++ ++/* Userlevel context. */ ++typedef struct ucontext ++ { ++ unsigned long int uc_flags; ++ struct ucontext *uc_link; ++ __sigset_t uc_sigmask; ++ stack_t uc_stack; ++ mcontext_t uc_mcontext; ++ long int uc_filler[5]; ++ } ucontext_t; ++ ++#endif /* sys/ucontext.h */ +diff --exclude=CVS -upNr ports/sysdeps/m32r/sysdep.h ports/sysdeps/m32r/sysdep.h +--- ports/sysdeps/m32r/sysdep.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/m32r/sysdep.h 2006-03-06 15:12:42.000000000 +0900 +@@ -0,0 +1,92 @@ ++/* Assembler macros for M32R. ++ Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++ ++#ifdef __ASSEMBLER__ ++ ++/* Syntactic details of assembler. */ ++ ++#ifdef HAVE_ELF ++ ++#define ALIGNARG(log2) log2 ++/* For ELF we need the `.type' directive to make shared libs work right. */ ++#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,@##typearg ++#define ASM_SIZE_DIRECTIVE(name) .size name,.-name ++ ++#define PLTJMP(_x) _x ++#define GOT(_x) _x ++ ++#else ++ ++#define ALIGNARG(log2) log2 ++#define ASM_TYPE_DIRECTIVE(name,type) /* Nothing is specified. */ ++#define ASM_SIZE_DIRECTIVE(name) /* Nothing is specified. */ ++ ++#define PLTJMP(_x) _x ++#define GOT(_x) _x ++ ++#endif ++ ++/* If compiled for profiling, call `mcount' at the start of each function. */ ++#ifdef PROF ++#ifdef __PIC__ ++#define CALL_MCOUNT \ ++ push r14 ! \ ++ ld24 r14,#mcount@GOT ! \ ++ add r14,r12 ! \ ++ ld r14,@r14 ! \ ++ jl r14 ! \ ++ pop r14 ++#else ++#define CALL_MCOUNT \ ++ push r14 ! \ ++ seth r14,#high(mcount) ! \ ++ or3 r14,r14,#low(mcount) ! \ ++ jl r14 ! \ ++ pop r14 ++#endif ++#else ++#define CALL_MCOUNT /* Do nothing. */ ++#endif ++ ++#undef CALL_MCOUNT /* Do nothing. */ ++#define CALL_MCOUNT /* Do nothing. */ ++ ++/* Define an entry point visible from C. */ ++#define ENTRY(name) \ ++ ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name) ! \ ++ ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),function) ! \ ++ .balign 4 ! \ ++ C_LABEL(name) ! \ ++ CALL_MCOUNT ++ ++#undef END ++#define END(name) \ ++ ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(name)) ++ ++#ifdef NO_UNDERSCORES ++/* Since C identifiers are not normally prefixed with an underscore ++ on this system, the asm identifier `syscall_error' intrudes on the ++ C name space. Make sure we use an innocuous name. */ ++#define syscall_error __syscall_error ++#define mcount _mcount ++#endif ++ ++#endif /* __ASSEMBLER__ */ +diff --exclude=CVS -upNr ports/sysdeps/unix/m32r/Makefile ports/sysdeps/unix/m32r/Makefile +--- ports/sysdeps/unix/m32r/Makefile 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/m32r/Makefile 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,4 @@ ++# m32r/ELF specific definitions. ++ ++# The assembler on m32r needs the -fPIC flag even when it's assembler code. ++ASFLAGS-.os = -fPIC +diff --exclude=CVS -upNr ports/sysdeps/unix/m32r/sysdep.S ports/sysdeps/unix/m32r/sysdep.S +--- ports/sysdeps/unix/m32r/sysdep.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/m32r/sysdep.S 2006-03-02 11:39:48.000000000 +0900 +@@ -0,0 +1,84 @@ ++/* Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#define _ERRNO_H ++#include ++ ++.globl C_SYMBOL_NAME(errno) ++.globl syscall_error ++ ++#undef syscall_error ++#ifdef NO_UNDERSCORES ++__syscall_error: ++#else ++syscall_error: ++#endif ++#if defined (EWOULDBLOCK_sys) && EWOULDBLOCK_sys != EAGAIN ++ /* We translate the system's EWOULDBLOCK error into EAGAIN. ++ The GNU C library always defines EWOULDBLOCK==EAGAIN. ++ EWOULDBLOCK_sys is the original number. */ ++ ldi r1, #EWOULDBLOCK_sys ++ bne r1, r0, skip ++ ldi r0, #EAGAIN ++skip: ++#endif ++ /* Store it in errno... */ ++#ifndef SHARED ++#ifndef _LIBC_REENTRANT ++ LDIMM (r1, C_SYMBOL_NAME(errno)) ++ st r0, @r1 ++#else ++ push r0 ++ push lr ++ LDIMM (r1, C_SYMBOL_NAME(__errno_location)) ++ jl r1 ++ pop lr ++ pop r1 ++ st r1, @r0 ++#endif ++#else ++ push r12 ++ push lr ++ bl.s .+4 ++ ld24 r12,#_GLOBAL_OFFSET_TABLE_ ++ add r12, lr ++#ifndef _LIBC_REENTRANT ++ mv r2, r0 ++ LDIMM (r1, C_SYMBOL_NAME(errno@GOT)) ++ add r1, r12 ++ ld r1, @r1 ++ st r2, @r1 ++#else ++ push r0 ++ LDIMM (r1, C_SYMBOL_NAME(__errno_location@GOT)) ++ add r1, r12 ++ ld r1, @r1 ++ jl r1 ++ pop r1 ++ st r1, @r0 ++#endif ++ pop lr ++ pop r12 ++#endif ++ /* And just kick back a -1. */ ++ ldi r0, #-1 ++ ret ++ ++#undef __syscall_error ++END(__syscall_error) +diff --exclude=CVS -upNr ports/sysdeps/unix/m32r/sysdep.h ports/sysdeps/unix/m32r/sysdep.h +--- ports/sysdeps/unix/m32r/sysdep.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/m32r/sysdep.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,33 @@ ++/* Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#include "../../m32r/sysdep.h" ++ ++#ifdef __ASSEMBLER__ ++ ++#define ret jmp r14 ++ ++/* The m32r move insn is d, s. */ ++#define MOVE(x,y) mv y,x ++ ++#define LDIMM(reg,x) \ ++ seth reg, #high(x) ! \ ++ or3 reg, reg, #low(x) ++ ++#endif +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/Dist ports/sysdeps/unix/sysv/linux/m32r/Dist +--- ports/sysdeps/unix/sysv/linux/m32r/Dist 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/Dist 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,9 @@ ++clone.S ++pipe.S ++flushcache.S ++setresuid.c ++setresgid.c ++setfsuid.c ++setfsgid.c ++sys/io.h ++sys/user.h +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/Makefile ports/sysdeps/unix/sysv/linux/m32r/Makefile +--- ports/sysdeps/unix/sysv/linux/m32r/Makefile 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/Makefile 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,16 @@ ++# m32r/ELF specific definitions. ++#gnulib := -lgcc ++#static-gnulib := -lgcc ++ ++# The assembler on m32r needs the -fPIC flag even when it's assembler code. ++ASFLAGS-.os = -fPIC ++ ++ifeq ($(subdir),io) ++sysdep_routines += pipe ++endif ++ ++ifeq ($(subdir),misc) ++sysdep_routines += m32r-stub tas \ ++ cachectl flushcache ++sysdep_headers += sys/io.h sys/tas.h sys/cachectl.h ++endif +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/Versions ports/sysdeps/unix/sysv/linux/m32r/Versions +--- ports/sysdeps/unix/sysv/linux/m32r/Versions 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/Versions 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,12 @@ ++libc { ++ GLIBC_2.3 { ++ # Needed by gcc ++ _flush_cache; ++ ++ # c* ++ cachectl; cacheflush; ++ ++ # t* ++ tas; ++ } ++} +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/bits/fcntl.h ports/sysdeps/unix/sysv/linux/m32r/bits/fcntl.h +--- ports/sysdeps/unix/sysv/linux/m32r/bits/fcntl.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/bits/fcntl.h 2006-03-01 17:17:36.000000000 +0900 +@@ -0,0 +1,179 @@ ++/* O_*, F_*, FD_* bit values for Linux. ++ Copyright (C) 2003, 2004, 2006 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef _FCNTL_H ++# error "Never use directly; include instead." ++#endif ++ ++ ++#include ++ ++/* open/fcntl - O_SYNC is only implemented on blocks devices and on files ++ located on an ext2 file system */ ++#define O_ACCMODE 0003 ++#define O_RDONLY 00 ++#define O_WRONLY 01 ++#define O_RDWR 02 ++#define O_CREAT 0100 /* not fcntl */ ++#define O_EXCL 0200 /* not fcntl */ ++#define O_NOCTTY 0400 /* not fcntl */ ++#define O_TRUNC 01000 /* not fcntl */ ++#define O_APPEND 02000 ++#define O_NONBLOCK 04000 ++#define O_NDELAY O_NONBLOCK ++#define O_SYNC 010000 ++#define O_FSYNC O_SYNC ++#define O_ASYNC 020000 ++ ++#ifdef __USE_GNU ++# define O_DIRECT 040000 /* Direct disk access. */ ++# define O_DIRECTORY 0200000 /* Must be a directory. */ ++# define O_NOFOLLOW 0400000 /* Do not follow links. */ ++#endif ++ ++/* For now Linux has synchronisity options for data and read operations. ++ We define the symbols here but let them do the same as O_SYNC since ++ this is a superset. */ ++#if defined __USE_POSIX199309 || defined __USE_UNIX98 ++# define O_DSYNC O_SYNC /* Synchronize data. */ ++# define O_RSYNC O_SYNC /* Synchronize read operations. */ ++#endif ++ ++#ifdef __USE_LARGEFILE64 ++# define O_LARGEFILE 0100000 ++#endif ++ ++/* Values for the second argument to `fcntl'. */ ++#define F_DUPFD 0 /* Duplicate file descriptor. */ ++#define F_GETFD 1 /* Get file descriptor flags. */ ++#define F_SETFD 2 /* Set file descriptor flags. */ ++#define F_GETFL 3 /* Get file status flags. */ ++#define F_SETFL 4 /* Set file status flags. */ ++#ifndef __USE_FILE_OFFSET64 ++# define F_GETLK 5 /* Get record locking info. */ ++# define F_SETLK 6 /* Set record locking info (non-blocking). */ ++# define F_SETLKW 7 /* Set record locking info (blocking). */ ++#else ++# define F_GETLK F_GETLK64 /* Get record locking info. */ ++# define F_SETLK F_SETLK64 /* Set record locking info (non-blocking).*/ ++# define F_SETLKW F_SETLKW64 /* Set record locking info (blocking). */ ++#endif ++#define F_GETLK64 12 /* Get record locking info. */ ++#define F_SETLK64 13 /* Set record locking info (non-blocking). */ ++#define F_SETLKW64 14 /* Set record locking info (blocking). */ ++ ++#if defined __USE_BSD || defined __USE_XOPEN2K ++# define F_SETOWN 8 /* Get owner of socket (receiver of SIGIO). */ ++# define F_GETOWN 9 /* Set owner of socket (receiver of SIGIO). */ ++#endif ++ ++#ifdef __USE_GNU ++# define F_SETSIG 10 /* Set number of signal to be sent. */ ++# define F_GETSIG 11 /* Get number of signal to be sent. */ ++#endif ++ ++#ifdef __USE_GNU ++# define F_SETLEASE 1024 /* Set a lease. */ ++# define F_GETLEASE 1025 /* Enquire what lease is active. */ ++# define F_NOTIFY 1026 /* Request notfications on a directory. */ ++#endif ++ ++/* For F_[GET|SET]FL. */ ++#define FD_CLOEXEC 1 /* actually anything with low bit set goes */ ++ ++/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */ ++#define F_RDLCK 0 /* Read lock. */ ++#define F_WRLCK 1 /* Write lock. */ ++#define F_UNLCK 2 /* Remove lock. */ ++ ++/* For old implementation of bsd flock(). */ ++#define F_EXLCK 4 /* or 3 */ ++#define F_SHLCK 8 /* or 4 */ ++ ++#ifdef __USE_BSD ++/* Operations for bsd flock(), also used by the kernel implementation. */ ++# define LOCK_SH 1 /* shared lock */ ++# define LOCK_EX 2 /* exclusive lock */ ++# define LOCK_NB 4 /* or'd with one of the above to prevent ++ blocking */ ++# define LOCK_UN 8 /* remove lock */ ++#endif ++ ++#ifdef __USE_GNU ++# define LOCK_MAND 32 /* This is a mandatory flock: */ ++# define LOCK_READ 64 /* ... which allows concurrent read operations. */ ++# define LOCK_WRITE 128 /* ... which allows concurrent write operations. */ ++# define LOCK_RW 192 /* ... Which allows concurrent read & write operations. */ ++#endif ++ ++#ifdef __USE_GNU ++/* Types of directory notifications that may be requested with F_NOTIFY. */ ++# define DN_ACCESS 0x00000001 /* File accessed. */ ++# define DN_MODIFY 0x00000002 /* File modified. */ ++# define DN_CREATE 0x00000004 /* File created. */ ++# define DN_DELETE 0x00000008 /* File removed. */ ++# define DN_RENAME 0x00000010 /* File renamed. */ ++# define DN_ATTRIB 0x00000020 /* File changed attibutes. */ ++# define DN_MULTISHOT 0x80000000 /* Don't remove notifier. */ ++#endif ++ ++struct flock ++ { ++ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ ++ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ ++#ifndef __USE_FILE_OFFSET64 ++ __off_t l_start; /* Offset where the lock begins. */ ++ __off_t l_len; /* Size of the locked area; zero means until EOF. */ ++#else ++ __off64_t l_start; /* Offset where the lock begins. */ ++ __off64_t l_len; /* Size of the locked area; zero means until EOF. */ ++#endif ++ __pid_t l_pid; /* Process holding the lock. */ ++ }; ++ ++#ifdef __USE_LARGEFILE64 ++struct flock64 ++ { ++ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ ++ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ ++ __off64_t l_start; /* Offset where the lock begins. */ ++ __off64_t l_len; /* Size of the locked area; zero means until EOF. */ ++ __pid_t l_pid; /* Process holding the lock. */ ++ }; ++#endif ++ ++/* Define some more compatibility macros to be backward compatible with ++ BSD systems which did not managed to hide these kernel macros. */ ++#ifdef __USE_BSD ++# define FAPPEND O_APPEND ++# define FFSYNC O_FSYNC ++# define FASYNC O_ASYNC ++# define FNONBLOCK O_NONBLOCK ++# define FNDELAY O_NDELAY ++#endif /* Use BSD. */ ++ ++/* Advise to `posix_fadvise'. */ ++#ifdef __USE_XOPEN2K ++# define POSIX_FADV_NORMAL 0 /* No further special treatment. */ ++# define POSIX_FADV_RANDOM 1 /* Expect random page references. */ ++# define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */ ++# define POSIX_FADV_WILLNEED 3 /* Will need these pages. */ ++# define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */ ++# define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */ ++#endif +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/bits/mman.h ports/sysdeps/unix/sysv/linux/m32r/bits/mman.h +--- ports/sysdeps/unix/sysv/linux/m32r/bits/mman.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/bits/mman.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,98 @@ ++/* Definitions for POSIX memory map interface. Linux/M32R version. ++ Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef _SYS_MMAN_H ++# error "Never include this file directly. Use instead" ++#endif ++ ++/* The following definitions basically come from the kernel headers. ++ But the kernel header is not namespace clean. */ ++ ++ ++/* Protections are chosen from these bits, OR'd together. The ++ implementation does not necessarily support PROT_EXEC or PROT_WRITE ++ without PROT_READ. The only guarantees are that no writing will be ++ allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */ ++ ++#define PROT_READ 0x1 /* Page can be read. */ ++#define PROT_WRITE 0x2 /* Page can be written. */ ++#define PROT_EXEC 0x4 /* Page can be executed. */ ++#define PROT_NONE 0x0 /* Page can not be accessed. */ ++#define PROT_GROWSDOWN 0x01000000 /* Extend change to start of ++ growsdown vma (mprotect only). */ ++#define PROT_GROWSUP 0x02000000 /* Extend change to start of ++ growsup vma (mprotect only). */ ++ ++ ++/* Sharing types (must choose one and only one of these). */ ++#define MAP_SHARED 0x01 /* Share changes. */ ++#define MAP_PRIVATE 0x02 /* Changes are private. */ ++#ifdef __USE_MISC ++# define MAP_TYPE 0x0f /* Mask for type of mapping. */ ++#endif ++ ++/* Other flags. */ ++#define MAP_FIXED 0x10 /* Interpret addr exactly. */ ++#ifdef __USE_MISC ++# define MAP_FILE 0 ++# define MAP_ANONYMOUS 0x20 /* Don't use a file. */ ++# define MAP_ANON MAP_ANONYMOUS ++#endif ++ ++/* These are Linux-specific. */ ++#ifdef __USE_MISC ++# define MAP_GROWSDOWN 0x0100 /* Stack-like segment. */ ++# define MAP_DENYWRITE 0x0800 /* ETXTBSY */ ++# define MAP_EXECUTABLE 0x1000 /* Mark it as an executable. */ ++# define MAP_LOCKED 0x2000 /* Lock the mapping. */ ++# define MAP_NORESERVE 0x4000 /* Don't check for reservations. */ ++#endif ++ ++/* Flags to `msync'. */ ++#define MS_ASYNC 1 /* Sync memory asynchronously. */ ++#define MS_SYNC 4 /* Synchronous memory sync. */ ++#define MS_INVALIDATE 2 /* Invalidate the caches. */ ++ ++/* Flags for `mlockall'. */ ++#define MCL_CURRENT 1 /* Lock all currently mapped pages. */ ++#define MCL_FUTURE 2 /* Lock all additions to address ++ space. */ ++ ++/* Flags for `mremap'. */ ++#ifdef __USE_GNU ++# define MREMAP_MAYMOVE 1 ++#endif ++ ++/* Advice to `madvise'. */ ++#ifdef __USE_BSD ++# define MADV_NORMAL 0 /* No further special treatment. */ ++# define MADV_RANDOM 1 /* Expect random page references. */ ++# define MADV_SEQUENTIAL 2 /* Expect sequential page references. */ ++# define MADV_WILLNEED 3 /* Will need these pages. */ ++# define MADV_DONTNEED 4 /* Don't need these pages. */ ++#endif ++ ++/* The POSIX people had to invent similar names for the same things. */ ++#ifdef __USE_XOPEN2K ++# define POSIX_MADV_NORMAL 0 /* No further special treatment. */ ++# define POSIX_MADV_RANDOM 1 /* Expect random page references. */ ++# define POSIX_MADV_SEQUENTIAL 2 /* Expect sequential page references. */ ++# define POSIX_MADV_WILLNEED 3 /* Will need these pages. */ ++# define POSIX_MADV_DONTNEED 4 /* Don't need these pages. */ ++#endif +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/bits/resource.h ports/sysdeps/unix/sysv/linux/m32r/bits/resource.h +--- ports/sysdeps/unix/sysv/linux/m32r/bits/resource.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/bits/resource.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,209 @@ ++/* Bit values & structures for resource limits. Linux/M32R version. ++ Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef _SYS_RESOURCE_H ++# error "Never use directly; include instead." ++#endif ++ ++#include ++ ++/* Transmute defines to enumerations. The macro re-definitions are ++ necessary because some programs want to test for operating system ++ features with #ifdef RUSAGE_SELF. In ISO C the reflexive ++ definition is a no-op. */ ++ ++/* Kinds of resource limit. */ ++enum __rlimit_resource ++{ ++ /* Per-process CPU limit, in seconds. */ ++ RLIMIT_CPU = 0, ++#define RLIMIT_CPU RLIMIT_CPU ++ ++ /* Largest file that can be created, in bytes. */ ++ RLIMIT_FSIZE = 1, ++#define RLIMIT_FSIZE RLIMIT_FSIZE ++ ++ /* Maximum size of data segment, in bytes. */ ++ RLIMIT_DATA = 2, ++#define RLIMIT_DATA RLIMIT_DATA ++ ++ /* Maximum size of stack segment, in bytes. */ ++ RLIMIT_STACK = 3, ++#define RLIMIT_STACK RLIMIT_STACK ++ ++ /* Largest core file that can be created, in bytes. */ ++ RLIMIT_CORE = 4, ++#define RLIMIT_CORE RLIMIT_CORE ++ ++ /* Largest resident set size, in bytes. ++ This affects swapping; processes that are exceeding their ++ resident set size will be more likely to have physical memory ++ taken from them. */ ++ RLIMIT_RSS = 5, ++#define RLIMIT_RSS RLIMIT_RSS ++ ++ /* Number of open files. */ ++ RLIMIT_NOFILE = 7, ++ RLIMIT_OFILE = RLIMIT_NOFILE, /* BSD name for same. */ ++#define RLIMIT_NOFILE RLIMIT_NOFILE ++#define RLIMIT_OFILE RLIMIT_OFILE ++ ++ /* Address space limit. */ ++ RLIMIT_AS = 9, ++#define RLIMIT_AS RLIMIT_AS ++ ++ /* Number of processes. */ ++ RLIMIT_NPROC = 6, ++#define RLIMIT_NPROC RLIMIT_NPROC ++ ++ /* Locked-in-memory address space. */ ++ RLIMIT_MEMLOCK = 8, ++#define RLIMIT_MEMLOCK RLIMIT_MEMLOCK ++ ++ /* Maximum number of file locks. */ ++ RLIMIT_LOCKS = 10, ++#define RLIMIT_LOCKS RLIMIT_LOCKS ++ ++ RLIMIT_NLIMITS = 11, ++ RLIM_NLIMITS = RLIMIT_NLIMITS ++#define RLIMIT_NLIMITS RLIMIT_NLIMITS ++#define RLIM_NLIMITS RLIM_NLIMITS ++}; ++ ++/* Value to indicate that there is no limit. */ ++#ifndef __USE_FILE_OFFSET64 ++# define RLIM_INFINITY ((unsigned long int)(~0UL)) ++#else ++# define RLIM_INFINITY 0xffffffffffffffffuLL ++#endif ++ ++#ifdef __USE_LARGEFILE64 ++# define RLIM64_INFINITY 0xffffffffffffffffuLL ++#endif ++ ++/* We can represent all limits. */ ++#define RLIM_SAVED_MAX RLIM_INFINITY ++#define RLIM_SAVED_CUR RLIM_INFINITY ++ ++ ++/* Type for resource quantity measurement. */ ++#ifndef __USE_FILE_OFFSET64 ++typedef __rlim_t rlim_t; ++#else ++typedef __rlim64_t rlim_t; ++#endif ++#ifdef __USE_LARGEFILE64 ++typedef __rlim64_t rlim64_t; ++#endif ++ ++struct rlimit ++ { ++ /* The current (soft) limit. */ ++ rlim_t rlim_cur; ++ /* The hard limit. */ ++ rlim_t rlim_max; ++ }; ++ ++#ifdef __USE_LARGEFILE64 ++struct rlimit64 ++ { ++ /* The current (soft) limit. */ ++ rlim64_t rlim_cur; ++ /* The hard limit. */ ++ rlim64_t rlim_max; ++ }; ++#endif ++ ++/* Whose usage statistics do you want? */ ++enum __rusage_who ++{ ++ /* The calling process. */ ++ RUSAGE_SELF = 0, ++#define RUSAGE_SELF RUSAGE_SELF ++ ++ /* All of its terminated child processes. */ ++ RUSAGE_CHILDREN = -1, ++#define RUSAGE_CHILDREN RUSAGE_CHILDREN ++ ++ /* Both. */ ++ RUSAGE_BOTH = -2 ++#define RUSAGE_BOTH RUSAGE_BOTH ++}; ++ ++#define __need_timeval ++#include /* For `struct timeval'. */ ++ ++/* Structure which says how much of each resource has been used. */ ++struct rusage ++ { ++ /* Total amount of user time used. */ ++ struct timeval ru_utime; ++ /* Total amount of system time used. */ ++ struct timeval ru_stime; ++ /* Maximum resident set size (in kilobytes). */ ++ long int ru_maxrss; ++ /* Amount of sharing of text segment memory ++ with other processes (kilobyte-seconds). */ ++ long int ru_ixrss; ++ /* Amount of data segment memory used (kilobyte-seconds). */ ++ long int ru_idrss; ++ /* Amount of stack memory used (kilobyte-seconds). */ ++ long int ru_isrss; ++ /* Number of soft page faults (i.e. those serviced by reclaiming ++ a page from the list of pages awaiting reallocation. */ ++ long int ru_minflt; ++ /* Number of hard page faults (i.e. those that required I/O). */ ++ long int ru_majflt; ++ /* Number of times a process was swapped out of physical memory. */ ++ long int ru_nswap; ++ /* Number of input operations via the file system. Note: This ++ and `ru_oublock' do not include operations with the cache. */ ++ long int ru_inblock; ++ /* Number of output operations via the file system. */ ++ long int ru_oublock; ++ /* Number of IPC messages sent. */ ++ long int ru_msgsnd; ++ /* Number of IPC messages received. */ ++ long int ru_msgrcv; ++ /* Number of signals delivered. */ ++ long int ru_nsignals; ++ /* Number of voluntary context switches, i.e. because the process ++ gave up the process before it had to (usually to wait for some ++ resource to be available). */ ++ long int ru_nvcsw; ++ /* Number of involuntary context switches, i.e. a higher priority process ++ became runnable or the current process used up its time slice. */ ++ long int ru_nivcsw; ++ }; ++ ++/* Priority limits. */ ++#define PRIO_MIN -20 /* Minimum priority a process can have. */ ++#define PRIO_MAX 20 /* Maximum priority a process can have. */ ++ ++/* The type of the WHICH argument to `getpriority' and `setpriority', ++ indicating what flavor of entity the WHO argument specifies. */ ++enum __priority_which ++{ ++ PRIO_PROCESS = 0, /* WHO is a process ID. */ ++#define PRIO_PROCESS PRIO_PROCESS ++ PRIO_PGRP = 1, /* WHO is a process group ID. */ ++#define PRIO_PGRP PRIO_PGRP ++ PRIO_USER = 2 /* WHO is a user ID. */ ++#define PRIO_USER PRIO_USER ++}; +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/brk.c ports/sysdeps/unix/sysv/linux/m32r/brk.c +--- ports/sysdeps/unix/sysv/linux/m32r/brk.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/brk.c 2006-03-02 12:30:59.000000000 +0900 +@@ -0,0 +1,50 @@ ++/* brk system call for Linux/M32R. ++ Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#include ++#include ++ ++/* This must be initialized data because commons can't have aliases. */ ++void *__curbrk = 0; ++ ++int ++__brk (void *addr) ++{ ++ void *newbrk; ++ register long r7 asm ("r7") = SYS_ify (brk); ++ register long r0 asm ("r0") = (long)addr; ++ ++ asm volatile ("trap #0x2 || nop\n\t" ++ "mv %0,r0\n" ++ : "=r"(newbrk), "+r" (r0) ++ : "r" (r7), "r" (r0) ++ ); ++ ++ __curbrk = newbrk; ++ ++ if (newbrk < addr) ++ { ++ __set_errno (ENOMEM); ++ return -1; ++ } ++ ++ return 0; ++} ++weak_alias (__brk, brk) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/chown.c ports/sysdeps/unix/sysv/linux/m32r/chown.c +--- ports/sysdeps/unix/sysv/linux/m32r/chown.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/chown.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,35 @@ ++/* Copyright (C) 2004 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include ++#include "kernel-features.h" ++ ++int ++__chown (const char *file, uid_t owner, gid_t group) ++{ ++ return INLINE_SYSCALL (chown32, 3, CHECK_STRING (file), owner, group); ++} ++libc_hidden_def (__chown) ++weak_alias (__chown, chown) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/clone.S ports/sysdeps/unix/sysv/linux/m32r/clone.S +--- ports/sysdeps/unix/sysv/linux/m32r/clone.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/clone.S 2006-03-02 17:39:21.000000000 +0900 +@@ -0,0 +1,89 @@ ++/* Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* clone() is even more special than fork() as it mucks with stacks ++ and invokes a function in the right context after its all over. */ ++ ++#include ++#define _ERRNO_H 1 ++#include ++ ++/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg, ++ pid_t *ptid, void *tls, pid_t *ctid); */ ++ ++ .text ++ENTRY(__clone) ++ /* sanity check arguments. */ ++ beqz r0, 1f ++ bnez r1, 2f ++ ++ .fillinsn ++1: ++ ldi r0, #-EINVAL ++ bra .Lsyscall_error ++ .fillinsn ++2: ++ /* insert the args onto the new stack */ ++ st r3, @-r1 ++ /* save the function pointer as the 0th element */ ++ st r0, @-r1 ++ ++ /* do the system call */ ++ mv r0, r2 ++ ld r2, @r15 ++ ld r3, @(8,r15) ++ ;ld RX, @(4,r15) /* FIXME: *tls */ ++ ldi r7, #SYS_ify(clone) ++ SYSCALL_INST ++ not r1, r0 ++ srai r1, #12 // r1=0 means r0 = -1 to -4095 ++ bnez r1, 3f // i.e. error in linux ++ ++ .fillinsn ++.Lsyscall_error: ++ SYSCALL_ERROR_HANDLER ++ .fillinsn ++3: ++ beqz r0, 4f ++ ret ++ .fillinsn ++4: ++ /* thread starts */ ++ ld r1, @r15 ++ ld r0, @(4,r15) ++ jl r1 ++ ++ /* we are done, passing the return value through r0 */ ++#ifdef SHARED ++ push r12 ++ push lr ++ bl.s .+4 ++ ld24 r12, #_GLOBAL_OFFSET_TABLE_ ++ add r12, lr ++ bl C_SYMBOL_NAME(_exit@PLT) ++ pop lr ++ pop r12 ++ ret ++#else ++ LDIMM (r1, C_SYMBOL_NAME(_exit)) ++ jmp r1 ++#endif ++ ++PSEUDO_END (__clone) ++ ++weak_alias (__clone, clone) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/configure ports/sysdeps/unix/sysv/linux/m32r/configure +--- ports/sysdeps/unix/sysv/linux/m32r/configure 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/configure 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,5 @@ ++# This file is generated from configure.in by Autoconf. DO NOT EDIT! ++ # Local configure fragment for m32r/sysdeps/unix/sysv/linux/m32r ++ ++arch_minimum_kernel=2.4.19 ++ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/configure.in ports/sysdeps/unix/sysv/linux/m32r/configure.in +--- ports/sysdeps/unix/sysv/linux/m32r/configure.in 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/configure.in 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,4 @@ ++# Local configure fragment for m32r/sysdeps/unix/sysv/linux/m32r ++ ++arch_minimum_kernel=2.4.19 ++ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/fchown.c ports/sysdeps/unix/sysv/linux/m32r/fchown.c +--- ports/sysdeps/unix/sysv/linux/m32r/fchown.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/fchown.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/fcntl.c ports/sysdeps/unix/sysv/linux/m32r/fcntl.c +--- ports/sysdeps/unix/sysv/linux/m32r/fcntl.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/fcntl.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/flushcache.S ports/sysdeps/unix/sysv/linux/m32r/flushcache.S +--- ports/sysdeps/unix/sysv/linux/m32r/flushcache.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/flushcache.S 2006-03-02 11:42:26.000000000 +0900 +@@ -0,0 +1,29 @@ ++/* Copyright (C) 2003, 2004 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++/* int _flush_cache(char *addr, int nbytes, int cache); */ ++ ++ .text ++ENTRY(__flush_cache) ++ trap #12 || nop ++ ret ++PSEUDO_END (__flush_cache) ++ ++weak_alias (__flush_cache, _flush_cache) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/fxstat.c ports/sysdeps/unix/sysv/linux/m32r/fxstat.c +--- ports/sysdeps/unix/sysv/linux/m32r/fxstat.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/fxstat.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/getegid.c ports/sysdeps/unix/sysv/linux/m32r/getegid.c +--- ports/sysdeps/unix/sysv/linux/m32r/getegid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/getegid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/geteuid.c ports/sysdeps/unix/sysv/linux/m32r/geteuid.c +--- ports/sysdeps/unix/sysv/linux/m32r/geteuid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/geteuid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/getgid.c ports/sysdeps/unix/sysv/linux/m32r/getgid.c +--- ports/sysdeps/unix/sysv/linux/m32r/getgid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/getgid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/getgroups.c ports/sysdeps/unix/sysv/linux/m32r/getgroups.c +--- ports/sysdeps/unix/sysv/linux/m32r/getgroups.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/getgroups.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,2 @@ ++/* We also have to rewrite the kernel gid_t to the user land type. */ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/getresgid.c ports/sysdeps/unix/sysv/linux/m32r/getresgid.c +--- ports/sysdeps/unix/sysv/linux/m32r/getresgid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/getresgid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,38 @@ ++/* Copyright (C) 2004 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++#include ++ ++#include ++#include ++#include ++ ++#include "kernel-features.h" ++ ++int ++__getresgid (gid_t *rgid, gid_t *egid, gid_t *sgid) ++{ ++ return INLINE_SYSCALL (getresgid32, 3, CHECK_1 (rgid), ++ CHECK_1 (egid), CHECK_1 (sgid)); ++} ++libc_hidden_def (__getresgid) ++weak_alias (__getresgid, getresgid) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/getresuid.c ports/sysdeps/unix/sysv/linux/m32r/getresuid.c +--- ports/sysdeps/unix/sysv/linux/m32r/getresuid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/getresuid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,38 @@ ++/* Copyright (C) 2004 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++#include ++ ++#include ++#include ++#include ++ ++#include "kernel-features.h" ++ ++int ++__getresuid (uid_t *ruid, uid_t *euid, uid_t *suid) ++{ ++ return INLINE_SYSCALL (getresuid32, 3, CHECK_1 (ruid), ++ CHECK_1 (euid), CHECK_1 (suid)); ++} ++libc_hidden_def (__getresuid) ++weak_alias (__getresuid, getresuid) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/getrlimit.c ports/sysdeps/unix/sysv/linux/m32r/getrlimit.c +--- ports/sysdeps/unix/sysv/linux/m32r/getrlimit.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/getrlimit.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,36 @@ ++/* Copyright (C) 1999, 2000, 2003, 2004 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include "kernel-features.h" ++ ++int ++__new_getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits) ++{ ++ return INLINE_SYSCALL (ugetrlimit, 2, resource, CHECK_1 (rlimits)); ++} ++ ++weak_alias (__new_getrlimit, __getrlimit); ++versioned_symbol (libc, __new_getrlimit, getrlimit, GLIBC_2_3); +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/getrlimit64.c ports/sysdeps/unix/sysv/linux/m32r/getrlimit64.c +--- ports/sysdeps/unix/sysv/linux/m32r/getrlimit64.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/getrlimit64.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,25 @@ ++/* Copyright (C) 2004 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#define getrlimit64 __new_getrlimit64 ++ ++#include ++ ++#undef getrlimit64 ++#include ++versioned_symbol (libc, __new_getrlimit64, getrlimit64, GLIBC_2_3); +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/getuid.c ports/sysdeps/unix/sysv/linux/m32r/getuid.c +--- ports/sysdeps/unix/sysv/linux/m32r/getuid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/getuid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/kernel-features.h ports/sysdeps/unix/sysv/linux/m32r/kernel-features.h +--- ports/sysdeps/unix/sysv/linux/m32r/kernel-features.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/kernel-features.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,17 @@ ++#define __ASSUME_32BITUIDS 1 ++#define __ASSUME_CLONE_THREAD_FLAGS 1 ++#define __ASSUME_FADVISE64_64_SYSCALL 1 ++#define __ASSUME_FCNTL64 1 ++#define __ASSUME_GETDENTS64_SYSCALL 1 ++#define __ASSUME_IPC64 1 ++#define __ASSUME_MMAP2_SYSCALL 1 ++#define __ASSUME_NEW_GETRLIMIT_SYSCALL 1 ++#define __ASSUME_SETRESGID_SYSCALL 1 ++#define __ASSUME_SETRESUID_SYSCALL 1 ++#define __ASSUME_STAT64_SYSCALL 1 ++#define __ASSUME_ST_INO_64_BIT 1 ++#define __ASSUME_TGKILL 1 ++#define __ASSUME_TRUNCATE64_SYSCALL 1 ++#define __ASSUME_UTIMES 1 ++ ++#include_next "kernel-features.h" +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/lchown.c ports/sysdeps/unix/sysv/linux/m32r/lchown.c +--- ports/sysdeps/unix/sysv/linux/m32r/lchown.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/lchown.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,35 @@ ++/* Copyright (C) 2004 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include ++#include "kernel-features.h" ++ ++int ++__lchown (const char *file, uid_t owner, gid_t group) ++{ ++ return INLINE_SYSCALL (lchown32, 3, CHECK_STRING (file), owner, group); ++} ++ ++weak_alias (__lchown, lchown) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/linuxthreads/sysdep-cancel.h ports/sysdeps/unix/sysv/linux/m32r/linuxthreads/sysdep-cancel.h +--- ports/sysdeps/unix/sysv/linux/m32r/linuxthreads/sysdep-cancel.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/linuxthreads/sysdep-cancel.h 2006-04-20 09:44:47.000000000 +0900 +@@ -0,0 +1,186 @@ ++/* Copyright (C) 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#ifndef __ASSEMBLER__ ++# include ++#endif ++ ++#if !defined NOT_IN_libc || defined IS_IN_libpthread || IS_IN_librt ++ ++# undef PSEUDO ++# define PSEUDO(name, syscall_name, args) \ ++ .text! \ ++ ENTRY(name)! \ ++ SINGLE_THREAD_P_INT ! \ ++ bnez r6, .Lpseudo_cancel ! \ ++ DO_CALL (syscall_name, args) ! \ ++ not r5,r0 ! \ ++ srai r5,12 ! \ ++ bnez r5,.Lpseudo_end ! \ ++ bra .Lsyscall_error ! \ ++ .fillinsn ! \ ++ .Lpseudo_cancel: ! \ ++ SAVE_REGS ! \ ++ /* save syscall args around CENABLE. */ \ ++ DOCARGS_##args ! \ ++ CENABLE ! \ ++ mv r8,r0 ! /* put mask back */ \ ++ /* restore syscall args */ \ ++ UNDOCARGS_##args ! \ ++ ldi r7, SYS_ify(syscall_name) ! /* do the call */ \ ++ SYSCALL_INST_##args ! \ ++ /* save syscall return value */ \ ++ push r0 ! \ ++ mv r0,r8 ! /* get mask back */ \ ++ CDISABLE ! \ ++ pop r0 ! /* retrive return value. */ \ ++ UNDOC2ARGS_##args ! \ ++ RESTORE_REGS ! \ ++ /* fix register damege. */ \ ++ not r5,r0 ! \ ++ srai r5,12 ! \ ++ bnez r5, .Lpseudo_end ! \ ++ .fillinsn ! \ ++ .Lsyscall_error: ! \ ++ SYSCALL_ERROR_HANDLER ! \ ++ .fillinsn ! \ ++ .Lpseudo_end: ! \ ++ ++# define DOCARGS_0 ++# define UNDOCARGS_0 ++# define UNDOC2ARGS_0 ++ ++# define DOCARGS_1 push r0 ++# define UNDOCARGS_1 pop r0 ++# define UNDOC2ARGS_1 ++ ++# define DOCARGS_2 push r1 ! push r0 ++# define UNDOCARGS_2 pop r0 ! pop r1 ++# define UNDOC2ARGS_2 ++ ++# define DOCARGS_3 push r2 ! push r1 ! push r0 ++# define UNDOCARGS_3 pop r0 ! pop r1 ! pop r2 ++# define UNDOC2ARGS_3 ++ ++# define DOCARGS_4 push r3 ! push r2 ! push r1 ! push r0 ++# define UNDOCARGS_4 pop r0 ! pop r1 ! pop r2 ! pop r3 ++# define UNDOC2ARGS_4 ++ ++# define DOCARGS_5 push r3 ! push r2 ! push r1 ! push r0 ++# if !defined PIC ++# define UNDOCARGS_5 pop r0 ! pop r1 ! pop r2 ! pop r3 ! ld r4, @(8,sp) ! push r4 ++# define UNDOC2ARGS_5 addi sp,#4 ++# else ++# define UNDOCARGS_5 pop r0 ! pop r1 ! pop r2 ! pop r3 ! ld r4, @(12,sp) ! push r4 ++# define UNDOC2ARGS_5 addi sp,#4 ++# endif ++ ++ ++# ifdef IS_IN_libpthread ++# ifdef PIC ++# define CENABLE bl __pthread_enable_asynccancel@PLT ++# define CDISABLE bl __pthread_disable_asynccancel@PLT ++# else ++# define CENABLE bl __pthread_enable_asynccancel ++# define CDISABLE bl __pthread_disable_asynccancel ++# endif ++# define __local_multiple_threads __pthread_multiple_threads ++# elif !defined NOT_IN_libc ++# ifdef PIC ++# define CENABLE bl __libc_enable_asynccancel@PLT ++# define CDISABLE bl __libc_disable_asynccancel@PLT ++# else ++# define CENABLE bl __libc_enable_asynccancel ++# define CDISABLE bl __libc_disable_asynccancel ++# endif ++# define __local_multiple_threads __libc_multiple_threads ++# else ++# ifdef PIC ++# define CENABLE bl __librt_enable_asynccancel@PLT ++# define CDISABLE bl __librt_disable_asynccancel@PLT ++# else ++# define CENABLE bl __librt_enable_asynccancel ++# define CDISABLE bl __librt_disable_asynccancel ++# endif ++# define __local_multiple_threads __librt_multiple_threads ++# endif ++ ++# ifndef __ASSEMBLER__ ++extern int __local_multiple_threads attribute_hidden; ++# define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1) ++# else ++# if !defined PIC ++# define SINGLE_THREAD_P_INT \ ++ seth r6,#shigh(__local_multiple_threads) ! \ ++ ld r6,@(low(__local_multiple_threads), r6) ++ ++# define SINGLE_THREAD_P SINGLE_THREAD_P_INT ++ ++# define SAVE_REGS \ ++ push lr ! push r8 ++ ++# define RESTORE_REGS \ ++ pop r8 ! pop lr ++ ++# else ++# if !defined NOT_IN_libc || defined IS_IN_libpthread ++# define SINGLE_THREAD_P_INT \ ++ mv r4,lr ! \ ++ bl.s .+4 ! \ ++ ld24 r5,#_GLOBAL_OFFSET_TABLE_ ! \ ++ seth r6,#high(__local_multiple_threads@GOTOFF) !\ ++ or3 r6,r6,#low(__local_multiple_threads@GOTOFF) !\ ++ add r5,lr ! \ ++ mv lr,r4 ! \ ++ add r6,r5 ! \ ++ ld r6,@r6 ++ ++# else ++# define SINGLE_THREAD_P_INT \ ++ mv r4,lr ! \ ++ bl.s .+4 ! \ ++ ld24 r5,#_GLOBAL_OFFSET_TABLE_ ! \ ++ ld24 r6,#__local_multiple_threads@GOT !\ ++ add r5,lr ! \ ++ mv lr,r4 ! \ ++ add r6,r5 ! \ ++ ld r6,@r6 ! \ ++ ld r6,@r6 ++ ++# endif ++ ++# define SINGLE_THREAD_P \ ++ SINGLE_THREAD_P_INT ++ ++# define SAVE_REGS \ ++ push lr ! push r8 ! push r12 ! mv r12, r5 ++ ++# define RESTORE_REGS \ ++ pop r12 ! pop r8 ! pop lr ++ ++# endif ++# endif ++ ++ ++#elif !defined __ASSEMBLER__ ++ ++/* This code should never be used but we define it anyhow. */ ++# define SINGLE_THREAD_P (1) ++ ++#endif +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/linuxthreads/vfork.S ports/sysdeps/unix/sysv/linux/m32r/linuxthreads/vfork.S +--- ports/sysdeps/unix/sysv/linux/m32r/linuxthreads/vfork.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/linuxthreads/vfork.S 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,75 @@ ++/* Copyright (C) 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#define _ERRNO_H 1 ++#include ++#include "kernel-features.h" ++/* Clone the calling process, but without copying the whole address space. ++ The calling process is suspended until the new process exits or is ++ replaced by a call to `execve'. Return -1 for errors, 0 to the new process, ++ and the process ID of the new process to the old process. */ ++ ++ENTRY (__vfork) ++#ifdef __NR_vfork ++ ++#ifdef SHARED ++ mv r4, lr ++ bl.s .+4 ++ ld24 r5, #_GLOBAL_OFFSET_TABLE_ ++ add r5, lr ++ mv lr, r4 ++ ++ seth r6, #high(__libc_pthread_functions@GOTOFF) ++ or3 r6, r6, #low(__libc_pthread_functions@GOTOFF) ++ add r6, r5 ++ ld r0, @r6 ++ ++ seth r6, #high(HIDDEN_JUMPTARGET(__fork)@GOTOFF) ++ or3 r6, r6, #low(HIDDEN_JUMPTARGET(__fork)@GOTOFF) ++ add r6, r5 ++ beqz r0, 5f ++ jmp r6 ++ .fillinsn ++5: ++#else ++ .weak pthread_create ++ seth r0, #shigh(pthread_create) ++ or3 r0, r0, #low(pthread_create) ++ bnez r0, HIDDEN_JUMPTARGET(__fork) ++#endif ++ ++ ldi r7, #__NR_vfork ++ SYSCALL_INST ++ not r1, r0 ++ srai r1, #12 // r1=0 means r0 = -1 to -4095 ++ bnez r1, 1f // i.e. error in linux ++ ++#endif ++ ++ SYSCALL_ERROR_HANDLER ++ ++ .fillinsn ++1: ++ ret ++ ++ ++PSEUDO_END (__vfork) ++libc_hidden_def(__vfork) ++ ++weak_alias (__vfork, vfork) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/lockf64.c ports/sysdeps/unix/sysv/linux/m32r/lockf64.c +--- ports/sysdeps/unix/sysv/linux/m32r/lockf64.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/lockf64.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/lxstat.c ports/sysdeps/unix/sysv/linux/m32r/lxstat.c +--- ports/sysdeps/unix/sysv/linux/m32r/lxstat.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/lxstat.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,2 @@ ++#include ++ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/m32r-stub.c ports/sysdeps/unix/sysv/linux/m32r/m32r-stub.c +--- ports/sysdeps/unix/sysv/linux/m32r/m32r-stub.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/m32r-stub.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,11 @@ ++#include ++ ++struct link_map _dl_rtld_map; ++ ++#ifndef __PIC__ ++void __pthread_initialize_minimal(void) ++{ ++} ++#endif ++ ++ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/mmap.S ports/sysdeps/unix/sysv/linux/m32r/mmap.S +--- ports/sysdeps/unix/sysv/linux/m32r/mmap.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/mmap.S 2006-04-20 09:44:30.000000000 +0900 +@@ -0,0 +1,59 @@ ++/* Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++ ++#define EINVAL 22 ++ ++/* ++__ptr_t ++__mmap (__ptr_t addr, size_t len, int prot, int flags, int fd, off_t offset); ++*/ ++ ++ENTRY (__mmap) ++ /* Push args and pass the address of 1st arg. ++ * The 5th and 6th args are already passed in the stack. ++ */ ++ ld r4, @sp // fd ++ ld r5, @(4,sp) // offset ++ and3 r6, r5, #0x00000fff ++ beqz r6, 2f ++ ldi r0, #-EINVAL ++ bra 0f ++ .fillinsn ++2: ++ srli r5, #12 ++ ++ ldi r7, #__NR_mmap2 ++ SYSCALL_INST ++ ++ .fillinsn ++0: ++ not r1, r0 ++ srai r1, #12 // r1=0 means r0 = -1 to -4095 ++ bnez r1, 1f // i.e. error in linux ++ ++ SYSCALL_ERROR_HANDLER ++ ++ .fillinsn ++1: ++ ret ++ ++PSEUDO_END (__mmap) ++ ++weak_alias (__mmap, mmap) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/msgctl.c ports/sysdeps/unix/sysv/linux/m32r/msgctl.c +--- ports/sysdeps/unix/sysv/linux/m32r/msgctl.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/msgctl.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,39 @@ ++/* Copyright (C) 1995, 1997, 1998, 2000, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper , August 1995. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include "kernel-features.h" ++#include ++ ++int ++__new_msgctl (int msqid, int cmd, struct msqid_ds *buf) ++{ ++ return INLINE_SYSCALL (ipc, 5, IPCOP_msgctl, ++ msqid, cmd | __IPC_64, 0, CHECK_1 (buf)); ++} ++ ++versioned_symbol (libc, __new_msgctl, msgctl, GLIBC_2_3); +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/pipe.S ports/sysdeps/unix/sysv/linux/m32r/pipe.S +--- ports/sysdeps/unix/sysv/linux/m32r/pipe.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/pipe.S 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,37 @@ ++/* Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++ ++ENTRY (__libc_pipe) ++ ldi r7, #__NR_pipe ++ SYSCALL_INST ++ not r1, r0 ++ srai r1, #12 // r1=0 means r0 = -1 to -4095 ++ bnez r1, 1f // i.e. error in linux ++ ++ SYSCALL_ERROR_HANDLER ++ .fillinsn ++1: ++ ldi r0, #0 ++ ret ++PSEUDO_END (__libc_pipe) ++ ++weak_alias (__libc_pipe, __pipe) ++libc_hidden_def (__pipe) ++weak_alias (__libc_pipe, pipe) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/profil-counter.h ports/sysdeps/unix/sysv/linux/m32r/profil-counter.h +--- ports/sysdeps/unix/sysv/linux/m32r/profil-counter.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/profil-counter.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,29 @@ ++/* Low-level statistical profiling support function. Linux/M32R version. ++ Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#include ++ ++static void ++profil_counter (int signo, SIGCONTEXT sc) ++{ ++ void *pc; ++ pc = GET_PC(sc); ++ profil_count (pc); ++} +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/semctl.c ports/sysdeps/unix/sysv/linux/m32r/semctl.c +--- ports/sysdeps/unix/sysv/linux/m32r/semctl.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/semctl.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,62 @@ ++/* Copyright (C) 1995,1997,1998,2000,2003,2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper , August 1995. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#include "kernel-features.h" ++#include ++ ++/* Define a `union semun' suitable for Linux here. */ ++union semun ++{ ++ int val; /* value for SETVAL */ ++ struct semid_ds *buf; /* buffer for IPC_STAT & IPC_SET */ ++ unsigned short int *array; /* array for GETALL & SETALL */ ++ struct seminfo *__buf; /* buffer for IPC_INFO */ ++ struct __old_semid_ds *__old_buf; ++}; ++ ++#include ++#include /* definition of CHECK_SEMCTL needs union semum */ ++ ++int ++__new_semctl (int semid, int semnum, int cmd, ...) ++{ ++ union semun arg; ++ va_list ap; ++ ++ va_start (ap, cmd); ++ ++ /* Get the argument. */ ++ arg = va_arg (ap, union semun); ++ ++ va_end (ap); ++ ++ return INLINE_SYSCALL (ipc, 5, IPCOP_semctl, semid, semnum, cmd | __IPC_64, ++ CHECK_SEMCTL (&arg, semid, cmd | __IPC_64)); ++} ++ ++versioned_symbol (libc, __new_semctl, semctl, GLIBC_2_3); +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setegid.c ports/sysdeps/unix/sysv/linux/m32r/setegid.c +--- ports/sysdeps/unix/sysv/linux/m32r/setegid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setegid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/seteuid.c ports/sysdeps/unix/sysv/linux/m32r/seteuid.c +--- ports/sysdeps/unix/sysv/linux/m32r/seteuid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/seteuid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setfsgid.c ports/sysdeps/unix/sysv/linux/m32r/setfsgid.c +--- ports/sysdeps/unix/sysv/linux/m32r/setfsgid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setfsgid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,34 @@ ++/* Copyright (C) 2004 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include "kernel-features.h" ++ ++int ++setfsgid (gid_t gid) ++{ ++ INTERNAL_SYSCALL_DECL (err); ++ /* No error checking. */ ++ return INTERNAL_SYSCALL (setfsgid32, err, 1, gid); ++} +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setfsuid.c ports/sysdeps/unix/sysv/linux/m32r/setfsuid.c +--- ports/sysdeps/unix/sysv/linux/m32r/setfsuid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setfsuid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,35 @@ ++/* Copyright (C) 2004 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++ ++#include ++#include "kernel-features.h" ++ ++int ++setfsuid (uid_t uid) ++{ ++ INTERNAL_SYSCALL_DECL (err); ++ /* No error checking. */ ++ return INTERNAL_SYSCALL (setfsuid32, err, 1, uid); ++} +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setgid.c ports/sysdeps/unix/sysv/linux/m32r/setgid.c +--- ports/sysdeps/unix/sysv/linux/m32r/setgid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setgid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setgroups.c ports/sysdeps/unix/sysv/linux/m32r/setgroups.c +--- ports/sysdeps/unix/sysv/linux/m32r/setgroups.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setgroups.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,2 @@ ++/* We also have to rewrite the kernel gid_t to the user land type. */ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setregid.c ports/sysdeps/unix/sysv/linux/m32r/setregid.c +--- ports/sysdeps/unix/sysv/linux/m32r/setregid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setregid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setresgid.c ports/sysdeps/unix/sysv/linux/m32r/setresgid.c +--- ports/sysdeps/unix/sysv/linux/m32r/setresgid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setresgid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setresuid.c ports/sysdeps/unix/sysv/linux/m32r/setresuid.c +--- ports/sysdeps/unix/sysv/linux/m32r/setresuid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setresuid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setreuid.c ports/sysdeps/unix/sysv/linux/m32r/setreuid.c +--- ports/sysdeps/unix/sysv/linux/m32r/setreuid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setreuid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setrlimit.c ports/sysdeps/unix/sysv/linux/m32r/setrlimit.c +--- ports/sysdeps/unix/sysv/linux/m32r/setrlimit.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setrlimit.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,37 @@ ++/* Copyright (C) 2004 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++ ++#include "kernel-features.h" ++ ++int ++__new_setrlimit (enum __rlimit_resource resource, const struct rlimit *rlimits) ++{ ++ return INLINE_SYSCALL (setrlimit, 2, resource, CHECK_1 (rlimits)); ++} ++ ++weak_alias (__new_setrlimit, __setrlimit); ++versioned_symbol (libc, __new_setrlimit, setrlimit, GLIBC_2_3); +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/setuid.c ports/sysdeps/unix/sysv/linux/m32r/setuid.c +--- ports/sysdeps/unix/sysv/linux/m32r/setuid.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/setuid.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/shmctl.c ports/sysdeps/unix/sysv/linux/m32r/shmctl.c +--- ports/sysdeps/unix/sysv/linux/m32r/shmctl.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/shmctl.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,40 @@ ++/* Copyright (C) 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper , August 1995. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "kernel-features.h" ++#include ++ ++int ++__new_shmctl (int shmid, int cmd, struct shmid_ds *buf) ++{ ++ return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, ++ shmid, cmd | __IPC_64, 0, CHECK_1 (buf)); ++} ++ ++versioned_symbol (libc, __new_shmctl, shmctl, GLIBC_2_3); +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/sigaction.c ports/sysdeps/unix/sysv/linux/m32r/sigaction.c +--- ports/sysdeps/unix/sysv/linux/m32r/sigaction.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/sigaction.c 2006-03-02 12:32:45.000000000 +0900 +@@ -0,0 +1,105 @@ ++/* POSIX.1 `sigaction' call for Linux/M32R. ++ Copyright (C) 2004 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++#include "kernel-features.h" ++ ++/* The difference here is that the sigaction structure used in the ++ kernel is not the same as we use in the libc. Therefore we must ++ translate it here. */ ++#include ++ ++/* We do not globally define the SA_RESTORER flag so do it here. */ ++#define SA_RESTORER 0x04000000 ++ ++/* Using the hidden attribute here does not change the code but it ++ helps to avoid warnings. */ ++#if defined HAVE_HIDDEN && defined HAVE_VISIBILITY_ATTRIBUTE \ ++ && !defined HAVE_BROKEN_VISIBILITY_ATTRIBUTE ++extern void restore_rt (void) asm ("__restore_rt") attribute_hidden; ++#else ++static void restore_rt (void) asm ("__restore_rt"); ++#endif ++ ++ ++/* If ACT is not NULL, change the action for SIG to *ACT. ++ If OACT is not NULL, put the old action for SIG in *OACT. */ ++int ++__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact) ++{ ++ int result; ++ struct kernel_sigaction kact, koact; ++ ++ if (act) ++ { ++ kact.k_sa_handler = act->sa_handler; ++ memcpy (&kact.sa_mask, &act->sa_mask, sizeof (sigset_t)); ++ kact.sa_flags = act->sa_flags | SA_RESTORER; ++ ++ kact.sa_restorer = &restore_rt; ++ } ++ ++ /* XXX The size argument hopefully will have to be changed to the ++ real size of the user-level sigset_t. */ ++ result = INLINE_SYSCALL (rt_sigaction, 4, ++ sig, act ? __ptrvalue (&kact) : NULL, ++ oact ? __ptrvalue (&koact) : NULL, _NSIG / 8); ++ if (oact && result >= 0) ++ { ++ oact->sa_handler = koact.k_sa_handler; ++ memcpy (&oact->sa_mask, &koact.sa_mask, sizeof (sigset_t)); ++ oact->sa_flags = koact.sa_flags; ++ oact->sa_restorer = koact.sa_restorer; ++ } ++ return result; ++} ++libc_hidden_def (__libc_sigaction) ++ ++#ifndef LIBC_SIGACTION ++weak_alias (__libc_sigaction, __sigaction) ++libc_hidden_weak (__sigaction) ++weak_alias (__libc_sigaction, sigaction) ++#endif ++ ++/* NOTE: Please think twice before making any changes to the bits of ++ code below. GDB needs some intimate knowledge about it to ++ recognize them as signal trampolines, and make backtraces through ++ signal handlers work right. Important are both the names ++ (__restore_rt) and the exact instruction sequence. ++ If you ever feel the need to make any changes, please notify the ++ appropriate GDB maintainer. */ ++ ++#define RESTORE(name, syscall) RESTORE2 (name, syscall) ++# define RESTORE2(name, syscall) \ ++asm \ ++ ( \ ++ "__" #name ":\n" \ ++ " ldi r7,#" #syscall "\n" \ ++ " trap #2 || nop\n" \ ++ ); ++/* The return code for realtime-signals. */ ++RESTORE (restore_rt, __NR_rt_sigreturn) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/sigcontextinfo.h ports/sysdeps/unix/sysv/linux/m32r/sigcontextinfo.h +--- ports/sysdeps/unix/sysv/linux/m32r/sigcontextinfo.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/sigcontextinfo.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,26 @@ ++/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Philip Blundell , 1999. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#define SIGCONTEXT struct sigcontext * ++#define SIGCONTEXT_EXTRA_ARGS ++#define GET_PC(ctx) ((void *)((ctx)->sc_bpc)) ++#define GET_FRAME(ctx) ((void *)((ctx)->sc_fp)) ++#define GET_STACK(ctx) ((void *)((ctx)->sc_spi)) ++#define CALL_SIGHANDLER(handler, signo, ctx) \ ++ (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx)) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/socket.S ports/sysdeps/unix/sysv/linux/m32r/socket.S +--- ports/sysdeps/unix/sysv/linux/m32r/socket.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/socket.S 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,155 @@ ++/* Copyright (C) 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#include ++ ++#define P(a, b) P2(a, b) ++#define P2(a, b) a##b ++ ++ .text ++/* The socket-oriented system calls are handled unusally in Linux. ++ They are all gated through the single `socketcall' system call number. ++ `socketcall' takes two arguments: the first is the subcode, specifying ++ which socket function is being called; and the second is a pointer to ++ the arguments to the specific function. ++ ++ The .S files for the other calls just #define socket and #include this. */ ++ ++#ifndef __socket ++#ifndef NO_WEAK_ALIAS ++#define __socket P(__,socket) ++#else ++#define __socket socket ++#endif ++#endif ++ ++#define PUSHARGS(x) PUSHARGS x ++ .macro PUSHARGS nargs ++ push r0 ++ .aif \nargs ge 2 ++ push r1 ++ .aif \nargs ge 3 ++ push r2 ++ .aif \nargs ge 4 ++ push r3 ++ /* If nargs is 5, caller has already pushed arg 5. */ ++ /* If nargs is 6, caller has already pushed arg 5, 6. */ ++ .aendi ++ .aendi ++ .aendi ++ .endm ++ ++#define PUSHARGS(x) PUSHARGS x ++ ++#define POPARGS_1 addi r15,#4 ++#define POPARGS_2 addi r15,#8 ++#define POPARGS_3 addi r15,#12 ++#define POPARGS_4 addi r15,#16 ++#define POPARGS_5 addi r15,#16 ++#define POPARGS_6 addi r15,#16 ++ ++#ifndef NARGS ++#define NARGS 3 /* If we were called with no wrapper, this is really socket() */ ++#endif ++ ++.globl __socket ++ENTRY (__socket) ++ /* This will not work in the case of a socket call being interrupted ++ by a signal. If the signal handler uses any stack the arguments ++ to socket will be trashed. The results of a restart of any ++ socket call are then unpredictable. */ ++ ++ /* Push args onto the stack. */ ++ /* PUSHARGS(NARGS) */ ++#if (NARGS >= 4) ++ push r3 ++ /* If nargs is 6, caller has already pushed arg 5, 6. */ ++ /* If nargs is 5, caller has already pushed arg 5. */ ++#endif ++#if (NARGS >= 3) ++ push r2 ++#endif ++#if (NARGS >= 2) ++ push r1 ++#endif ++ push r0 ++ ++#if defined NEED_CANCELLATION && defined CENABLE ++ SINGLE_THREAD_P ++ bnez r6, 2f ++#endif ++ ++ /* Do the system call trap. */ ++ ldi r0, #P(SOCKOP_,socket) ++ mv r1, r15 ++ ldi r7, #SYS_ify(socketcall) ++ SYSCALL_INST ++ ++ /* Pop args off the stack */ ++ P(POPARGS_,NARGS) ++ ++ not r1, r0 ++ srai r1, #12 // r1=0 means r0 = -1 to -4095 ++ bnez r1, 1f // i.e. error in linux ++ ++ SYSCALL_ERROR_HANDLER ++ .fillinsn ++1: ++ /* Successful; return the syscall's value. */ ++ ret ++ ++#if defined NEED_CANCELLATION && defined CENABLE ++ .fillinsn ++2: ++ SAVE_REGS ++ CENABLE ++ mv r8, r0 ++ ++ ldi r0, #P(SOCKOP_,socket) ++#if !defined PIC ++ add3 r1, r15, #8 ++#else ++ add3 r1, r15, #12 ++#endif ++ ldi r7, #SYS_ify(socketcall) ++ SYSCALL_INST ++ ++ push r0 ++ mv r0, r8 ++ CDISABLE ++ pop r0 ++ RESTORE_REGS ++ ++ P(POPARGS_,NARGS) ++ ++ not r1, r0 ++ srai r1, #12 // r1=0 means r0 = -1 to -4095 ++ bnez r1, 3f // i.e. error in linux ++ ++ SYSCALL_ERROR_HANDLER ++ .fillinsn ++3: ++ ret ++#endif ++ ++PSEUDO_END (__socket) ++ ++#ifndef NO_WEAK_ALIAS ++weak_alias (__socket, socket) ++#endif +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/sys/cachectl.h ports/sysdeps/unix/sysv/linux/m32r/sys/cachectl.h +--- ports/sysdeps/unix/sysv/linux/m32r/sys/cachectl.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/sys/cachectl.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,38 @@ ++/* Copyright (C) 2003, 2004 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _SYS_CACHECTL_H ++#define _SYS_CACHECTL_H 1 ++ ++#include ++ ++/* ++ * Get the kernel definition for the op bits. ++ */ ++#include ++ ++__BEGIN_DECLS ++ ++#ifdef __USE_MISC ++extern int cacheflush (void *addr, __const int nbytes, __const int op) __THROW; ++#endif ++extern int _flush_cache (char *addr, __const int nbytes, __const int op) __THROW; ++ ++__END_DECLS ++ ++#endif /* sys/cachectl.h */ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/sys/io.h ports/sysdeps/unix/sysv/linux/m32r/sys/io.h +--- ports/sysdeps/unix/sysv/linux/m32r/sys/io.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/sys/io.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,48 @@ ++/* Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef _SYS_IO_H ++ ++#define _SYS_IO_H 1 ++#include ++ ++__BEGIN_DECLS ++ ++/* If TURN_ON is TRUE, request for permission to do direct i/o on the ++ port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O ++ permission off for that range. This call requires root privileges. */ ++extern int ioperm (unsigned long int __from, unsigned long int __num, ++ int __turn_on) __THROW; ++ ++/* Set the I/O privilege level to LEVEL. If LEVEL is nonzero, ++ permission to access any I/O port is granted. This call requires ++ root privileges. */ ++extern int iopl (int __level) __THROW; ++ ++/* The functions that actually perform reads and writes. */ ++extern unsigned char inb (unsigned long int port) __THROW; ++extern unsigned short int inw (unsigned long int port) __THROW; ++extern unsigned long int inl (unsigned long int port) __THROW; ++ ++extern void outb (unsigned char value, unsigned long int port) __THROW; ++extern void outw (unsigned short value, unsigned long int port) __THROW; ++extern void outl (unsigned long value, unsigned long int port) __THROW; ++ ++__END_DECLS ++ ++#endif /* _SYS_IO_H */ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/sys/tas.h ports/sysdeps/unix/sysv/linux/m32r/sys/tas.h +--- ports/sysdeps/unix/sysv/linux/m32r/sys/tas.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/sys/tas.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,13 @@ ++#ifndef _SYS_TAS_H ++ ++#define _SYS_TAS_H 1 ++ ++#include ++ ++__BEGIN_DECLS ++ ++extern int tas(int *) __THROW; ++ ++__END_DECLS ++ ++#endif /* _SYS_TAS_H */ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/sys/ucontext.h ports/sysdeps/unix/sysv/linux/m32r/sys/ucontext.h +--- ports/sysdeps/unix/sysv/linux/m32r/sys/ucontext.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/sys/ucontext.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,111 @@ ++/* Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* Where is System V/SH ABI? */ ++ ++#ifndef _SYS_UCONTEXT_H ++#define _SYS_UCONTEXT_H 1 ++ ++#include ++#include ++ ++/* We need the signal context definitions even if they are not used ++ included in . */ ++#include ++ ++ ++typedef int greg_t; ++ ++/* Number of general registers. */ ++#define NFPREG 16 ++ ++/* Container for all general registers. */ ++typedef greg_t gregset_t[NFPREG]; ++ ++#if 0 ++#ifdef __USE_GNU ++/* Number of each register is the `gregset_t' array. */ ++enum ++{ ++ R0 = 0, ++#define R0 R0 ++ R1 = 1, ++#define R1 R1 ++ R2 = 2, ++#define R2 R2 ++ R3 = 3, ++#define R3 R3 ++ R4 = 4, ++#define R4 R4 ++ R5 = 5, ++#define R5 R5 ++ R6 = 6, ++#define R6 R6 ++ R7 = 7, ++#define R7 R7 ++ R8 = 8, ++#define R8 R8 ++ R9 = 9, ++#define R9 R9 ++ R10 = 10, ++#define R10 R10 ++ R11 = 11, ++#define R11 R11 ++ R12 = 12, ++#define R12 R12 ++ R13 = 13, ++#define R13 R13 ++ R14 = 14, ++#define R14 R14 ++ R15 = 15, ++#define R15 R15 ++}; ++#endif ++#endif /* 0 */ ++ ++typedef int freg_t; ++ ++/* Number of FPU registers. */ ++#define NFPREG 16 ++ ++/* Structure to describe FPU registers. */ ++typedef freg_t fpregset_t[NFPREG]; ++ ++/* Context to describe whole processor state. */ ++typedef struct ++ { ++ gregset_t gregs; ++ fpregset_t fpregs; ++ fpregset_t xfpregs; ++ unsigned int fpscr; ++ unsigned int fpul; ++ unsigned int macl; ++ unsigned int mach; ++ } mcontext_t; ++ ++/* Userlevel context. */ ++typedef struct ucontext ++ { ++ unsigned long int uc_flags; ++ struct ucontext *uc_link; ++ stack_t uc_stack; ++ mcontext_t uc_mcontext; ++ __sigset_t uc_sigmask; ++ } ucontext_t; ++ ++#endif /* sys/ucontext.h */ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/sys/user.h ports/sysdeps/unix/sysv/linux/m32r/sys/user.h +--- ports/sysdeps/unix/sysv/linux/m32r/sys/user.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/sys/user.h 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,26 @@ ++/* Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef _SYS_USER_H ++#define _SYS_USER_H 1 ++ ++#include ++ ++#include ++ ++#endif /* sys/user.h */ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/syscall.S ports/sysdeps/unix/sysv/linux/m32r/syscall.S +--- ports/sysdeps/unix/sysv/linux/m32r/syscall.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/syscall.S 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,41 @@ ++/* Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++ ++ENTRY (__syscall) ++ mv r7, r0 // syscall number ++ mv r0, r1 // p1 ++ mv r1, r2 // p2 ++ mv r2, r3 // p3 ++ ld r3, @(sp) // p4 ++ ld r4, @(4,sp) // p5 ++ ld r5, @(8,sp) // p6 ++ ld r6, @(12,sp) // p7 ++ SYSCALL_INST ++ not r1, r0 ++ srai r1, #12 // r1=0 means r0 = -1 to -4095 ++ bnez r1, 1f // i.e. error in linux ++ ++ SYSCALL_ERROR_HANDLER ++ .fillinsn ++1: ++ ret ++PSEUDO_END (__syscall) ++ ++weak_alias (__syscall, syscall) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/syscalls.list ports/sysdeps/unix/sysv/linux/m32r/syscalls.list +--- ports/sysdeps/unix/sysv/linux/m32r/syscalls.list 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/syscalls.list 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,4 @@ ++# File name Caller Syscall name # args Strong name Weak names ++tas - tas i:p __tas tas ++cachectl - cachectl i:pii __cachectl cachectl ++cacheflush - cacheflush i:pii __cacheflush cacheflush +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/sysdep.S ports/sysdeps/unix/sysv/linux/m32r/sysdep.S +--- ports/sysdeps/unix/sysv/linux/m32r/sysdep.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/sysdep.S 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1,32 @@ ++/* Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++ ++/* The syscall stubs jump here when they detect an error. ++ The code for Linux is almost identical to the canonical Unix ++ code, except that the error number in R0 is negated. */ ++ ++#undef CALL_MCOUNT ++#define CALL_MCOUNT /* Don't insert the profiling call, it clobbers R0. */ ++ ++ENTRY (__syscall_error) ++ neg r0, r0 ++ ++#define __syscall_error __syscall_error_1 ++#include "../../../m32r/sysdep.S" +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/sysdep.h ports/sysdeps/unix/sysv/linux/m32r/sysdep.h +--- ports/sysdeps/unix/sysv/linux/m32r/sysdep.h 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/sysdep.h 2006-03-02 12:29:40.000000000 +0900 +@@ -0,0 +1,294 @@ ++/* Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifndef _LINUX_M32R_SYSDEP_H ++#define _LINUX_M32R_SYSDEP_H 1 ++ ++/* There is some commonality. */ ++#include "../../../m32r/sysdep.h" ++ ++/* Defines RTLD_PRIVATE_ERRNO. */ ++#include ++ ++/* For Linux we can use the system call table in the header file ++ /usr/include/asm/unistd.h ++ of the kernel. But these symbols do not follow the SYS_* syntax ++ so we have to redefine the `SYS_ify' macro here. */ ++#undef SYS_ify ++#define SYS_ify(syscall_name) __NR_##syscall_name ++ ++#ifdef __ASSEMBLER__ ++ ++/* Linux uses a negative return value to indicate syscall errors, ++ unlike most Unices, which use the condition codes' carry flag. ++ ++ Since version 2.1 the return value of a system call might be ++ negative even if the call succeeded. E.g., the `lseek' system call ++ might return a large offset. Therefore we must not anymore test ++ for < 0, but test for a real error by making sure the value in R0 ++ is a real error number. Linus said he will make sure the no syscall ++ returns a value in -1 .. -4095 as a valid result so we can savely ++ test with -4095. */ ++ ++#define SYSCALL_INST trap #2 || nop ++#define SYSCALL_INST_0 trap #2 || nop ++#define SYSCALL_INST_1 trap #2 || nop ++#define SYSCALL_INST_2 trap #2 || nop ++#define SYSCALL_INST_3 trap #2 || nop ++#define SYSCALL_INST_4 trap #2 || nop ++#define SYSCALL_INST_5 \ ++ ld r4,@sp ! \ ++ trap #2 || nop ++#define SYSCALL_INST_STR_6 \ ++ ld r4,@sp ! \ ++ ld r5,@(4,sp) ! \ ++ trap #2 || nop ++#define SYSCALL_INST_STR_7 \ ++ ld r4,@sp ! \ ++ ld r5,@(4,sp) ! \ ++ ld r6,@(8,sp) ! \ ++ trap #2 || nop ++ ++#define DO_CALL( syscall_name, args ) \ ++ ldi r7,SYS_ify(syscall_name) ! \ ++ SYSCALL_INST_##args ++ ++#undef PSEUDO ++#define PSEUDO(name, syscall_name, args) \ ++ .text !\ ++ENTRY (name) !\ ++ DO_CALL (syscall_name, args) !\ ++ not r1,r0 !\ ++ srai r1,12 !\ ++ bnez r1,.Lpseudo_end !\ ++ SYSCALL_ERROR_HANDLER !\ ++ .fillinsn !\ ++ .Lpseudo_end: ++ ++#undef PSEUDO_END ++#define PSEUDO_END(name) \ ++ END (name) ++ ++#undef PSEUDO_NOERRNO ++#define PSEUDO_NOERRNO(name, syscall_name, args) \ ++ .text !\ ++ ENTRY (name) !\ ++ DO_CALL (syscall_name, args) ++ ++#undef PSEUDO_END_NOERRNO ++#define PSEUDO_END_NOERRNO(name) \ ++ END (name) ++ ++#define ret_NOERRNO ret ++ ++#define PSEUDO_ERRVAL(name, syscall_name, args) \ ++ .text !\ ++ ENTRY (name) !\ ++ DO_CALL (syscall_name, args) ++ ++#undef PSEUDO_END_ERRVAL ++#define PSEUDO_END_ERRVAL(name) \ ++ END (name) ++ ++#define ret_ERRVAL ret ++ ++#ifndef __PIC__ ++# define SYSCALL_ERROR_HANDLER \ ++ LDIMM (r1, C_SYMBOL_NAME(__syscall_error)) !\ ++ jmp r1 !\ ++ ++#else ++# if RTLD_PRIVATE_ERRNO ++# define SYSCALL_ERROR_HANDLER \ ++ neg r1,r0 !\ ++ mv r3,lr !\ ++ bl.s .+4 !\ ++ ld24 r2,#_GLOBAL_OFFSET_TABLE_ !\ ++ add r2,lr !\ ++ mv lr,r3 !\ ++ ld24 r0,#C_SYMBOL_NAME(rtld_errno@GOT) !\ ++ add r2,r0 !\ ++ ld r2,@r2 !\ ++ st r1,@r2 !\ ++ ldi r0,#-1 !\ ++ ret ++ ++# elif defined _LIBC_REENTRANT ++ ++# if USE___THREAD ++# ifndef NOT_IN_libc ++# define SYSCALL_ERROR_ERRNO __libc_errno@GOT ++# else ++# define SYSCALL_ERROR_ERRNO errno@GOT ++# endif ++# define SYSCALL_ERROR_HANDLER \ ++ neg r1,r0 !\ ++ mv r3,lr !\ ++ bl.s .+4 !\ ++ ld24 r2,#_GLOBAL_OFFSET_TABLE_ !\ ++ add r2,lr !\ ++ mv lr,r3 !\ ++ ld24 r0,#C_SYMBOL_NAME(SYSCALL_ERROR_ERRNO) !\ ++ add r2,r0 !\ ++ ld r2,@r2 !\ ++ st r1,@r2 !\ ++ ldi r0,#-1 !\ ++ ret ++ ++# else ++# define SYSCALL_ERROR_HANDLER \ ++ neg r1,r0 !\ ++ push r12 !\ ++ push lr !\ ++ push r1 !\ ++ bl.s .+4 !\ ++ ld24 r12,#_GLOBAL_OFFSET_TABLE_ !\ ++ add r12,lr !\ ++ ld24 r1,#C_SYMBOL_NAME(__errno_location@GOT) !\ ++ add r1,r12 !\ ++ ld r1,@r1 !\ ++ jl r1 !\ ++ pop r1 !\ ++ st r1,@r0 !\ ++ pop lr !\ ++ pop r12 !\ ++ ldi r0,#-1 !\ ++ ret !\ ++ ++# endif ++ ++# else ++/* Store (-r0) into errno through the GOT. */ ++# define SYSCALL_ERROR_HANDLER \ ++ neg r1,r0 !\ ++ mv r3,lr !\ ++ bl.s .+4 !\ ++ ld24 r2,#_GLOBAL_OFFSET_TABLE_ !\ ++ add r2,lr !\ ++ mv lr,r3 !\ ++ ld24 r0,#C_SYMBOL_NAME(errno@GOT) !\ ++ add r2,r0 !\ ++ ld r2,@r2 !\ ++ st r1,@r2 !\ ++ ldi r0,#-1 !\ ++ ret ++ ++# endif /* _LIBC_REENTRANT */ ++#endif /* __PIC__ */ ++ ++#define ret_ERRVAL ret ++ ++#else /* not __ASSEMBLER__ */ ++ ++#undef DO_CALL ++ ++#define SYSCALL_INST_STR "trap #2 || nop\n\t" ++ ++#define ASMFMT_0 \ ++ , "0" (r0) ++#define ASMFMT_1 \ ++ , "0" (r0) ++#define ASMFMT_2 \ ++ , "0" (r0), "r" (r1) ++#define ASMFMT_3 \ ++ , "0" (r0), "r" (r1), "r" (r2) ++#define ASMFMT_4 \ ++ , "0" (r0), "r" (r1), "r" (r2), "r" (r3) ++#define ASMFMT_5 \ ++ , "0" (r0), "r" (r1), "r" (r2), "r" (r3), "r" (r4) ++#define ASMFMT_6 \ ++ , "0" (r0), "r" (r1), "r" (r2), "r" (r3), "r" (r4), "r" (r5) ++#define ASMFMT_7 \ ++ , "0" (r0), "r" (r1), "r" (r2), "r" (r3), "r" (r4), "r" (r5), "r" (r6) ++ ++#define SUBSTITUTE_ARGS_0() \ ++ register long r0 asm ("r0") = 0 ++#define SUBSTITUTE_ARGS_1(arg1) \ ++ register long r0 asm ("r0") = (long)(arg1) ++#define SUBSTITUTE_ARGS_2(arg1, arg2) \ ++ register long r0 asm ("r0") = (long)(arg1); \ ++ register long r1 asm ("r1") = (long)(arg2) ++#define SUBSTITUTE_ARGS_3(arg1, arg2, arg3) \ ++ register long r0 asm ("r0") = (long)(arg1); \ ++ register long r1 asm ("r1") = (long)(arg2); \ ++ register long r2 asm ("r2") = (long)(arg3) ++#define SUBSTITUTE_ARGS_4(arg1, arg2, arg3, arg4) \ ++ register long r0 asm ("r0") = (long)(arg1); \ ++ register long r1 asm ("r1") = (long)(arg2); \ ++ register long r2 asm ("r2") = (long)(arg3); \ ++ register long r3 asm ("r3") = (long)(arg4) ++#define SUBSTITUTE_ARGS_5(arg1, arg2, arg3, arg4, arg5) \ ++ register long r0 asm ("r0") = (long)(arg1); \ ++ register long r1 asm ("r1") = (long)(arg2); \ ++ register long r2 asm ("r2") = (long)(arg3); \ ++ register long r3 asm ("r3") = (long)(arg4); \ ++ register long r4 asm ("r4") = (long)(arg5) ++#define SUBSTITUTE_ARGS_6(arg1, arg2, arg3, arg4, arg5, arg6) \ ++ register long r0 asm ("r0") = (long)(arg1); \ ++ register long r1 asm ("r1") = (long)(arg2); \ ++ register long r2 asm ("r2") = (long)(arg3); \ ++ register long r3 asm ("r3") = (long)(arg4); \ ++ register long r4 asm ("r4") = (long)(arg5); \ ++ register long r5 asm ("r5") = (long)(arg6) ++#define SUBSTITUTE_ARGS_7(arg1, arg2, arg3, arg4, arg5, arg6, arg7) \ ++ register long r0 asm ("r0") = (long)(arg1); \ ++ register long r1 asm ("r1") = (long)(arg2); \ ++ register long r2 asm ("r2") = (long)(arg3); \ ++ register long r3 asm ("r3") = (long)(arg4); \ ++ register long r4 asm ("r4") = (long)(arg5); \ ++ register long r5 asm ("r5") = (long)(arg6); \ ++ register long r6 asm ("r6") = (long)(arg7) ++ ++#undef INLINE_SYSCALL ++#define INLINE_SYSCALL(name, nr, args...) \ ++ ({ \ ++ unsigned int resultvar = INTERNAL_SYSCALL (name, , nr, args); \ ++ if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (resultvar, ), 0)) \ ++ { \ ++ __set_errno (INTERNAL_SYSCALL_ERRNO (resultvar, )); \ ++ resultvar = 0xffffffff; \ ++ } \ ++ (int) resultvar; }) ++ ++#undef INTERNAL_SYSCALL ++#define INTERNAL_SYSCALL(name, err, nr, args...) \ ++ ({ \ ++ register long r7 asm ("r7") = SYS_ify (name); \ ++ SUBSTITUTE_ARGS_##nr(args); \ ++ \ ++ asm volatile (SYSCALL_INST_STR "\n\t" \ ++ : "=r" (r0) \ ++ : "r" (r7) ASMFMT_##nr \ ++ : "memory"); \ ++ \ ++ (int) r0; }) ++ ++#undef INTERNAL_SYSCALL_DECL ++#define INTERNAL_SYSCALL_DECL(err) do { } while (0) ++ ++#undef INTERNAL_SYSCALL_ERROR_P ++#define INTERNAL_SYSCALL_ERROR_P(val, err) \ ++ ((unsigned int) (val) >= 0xfffff001u) ++ ++#undef INTERNAL_SYSCALL_ERRNO ++#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val)) ++ ++#endif /* __ASSEMBLER__ */ ++ ++#endif /* linux/m32r/sysdep.h */ +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/vfork.S ports/sysdeps/unix/sysv/linux/m32r/vfork.S +--- ports/sysdeps/unix/sysv/linux/m32r/vfork.S 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/vfork.S 2006-03-02 11:43:35.000000000 +0900 +@@ -0,0 +1,48 @@ ++/* Copyright (C) 2003, 2004 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 Library General Public License as ++ published by the Free Software Foundation; either version 2 of the ++ License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Library General Public License for more details. ++ ++ You should have received a copy of the GNU Library General Public ++ License along with the GNU C Library; see the file COPYING.LIB. If not, ++ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#include ++#define _ERRNO_H 1 ++#include ++ ++/* Clone the calling process, but without copying the whole address space. ++ The calling process is suspended until the new process exits or is ++ replaced by a call to `execve'. Return -1 for errors, 0 to the new process, ++ and the process ID of the new process to the old process. */ ++ ++ENTRY (__vfork) ++ ++#ifdef __NR_vfork ++ ldi r7, #__NR_vfork ++ SYSCALL_INST ++ not r1, r0 ++ srai r1, #12 // r1=0 means r0 = -1 to -4095 ++ bnez r1, 1f // i.e. error in linux ++ ++#endif ++ ++ SYSCALL_ERROR_HANDLER ++ ++ .fillinsn ++1: ++ ret ++ ++PSEUDO_END (__vfork) ++libc_hidden_def(__vfork) ++ ++weak_alias (__vfork, vfork) +diff --exclude=CVS -upNr ports/sysdeps/unix/sysv/linux/m32r/xstat.c ports/sysdeps/unix/sysv/linux/m32r/xstat.c +--- ports/sysdeps/unix/sysv/linux/m32r/xstat.c 1970-01-01 09:00:00.000000000 +0900 ++++ ports/sysdeps/unix/sysv/linux/m32r/xstat.c 2005-10-31 17:17:34.000000000 +0900 +@@ -0,0 +1 @@ ++#include --- glibc-2.7.orig/debian/patches/any/local-fhs-linux-paths.diff +++ glibc-2.7/debian/patches/any/local-fhs-linux-paths.diff @@ -0,0 +1,17 @@ +# DP: Description: Correct linux paths for FHS +# DP: Author: Unknown +# DP: Upstream status: Debian-Specific +# DP: Status Details: GNU doesn't follow the FHS. +# DP: Date: Unknown + +--- sysdeps/unix/sysv/linux/paths.h.orig ++++ sysdeps/unix/sysv/linux/paths.h +@@ -67,7 +67,7 @@ + /* Provide trailing slash, since mostly used for building pathnames. */ + #define _PATH_DEV "/dev/" + #define _PATH_TMP "/tmp/" +-#define _PATH_VARDB "/var/db/" ++#define _PATH_VARDB "/var/lib/misc/" + #define _PATH_VARRUN "/var/run/" + #define _PATH_VARTMP "/var/tmp/" + --- glibc-2.7.orig/debian/patches/any/cvs-tzfile.diff +++ glibc-2.7/debian/patches/any/cvs-tzfile.diff @@ -0,0 +1,21 @@ +2007-11-05 Ulrich Drepper + + * time/tzfile.c (__tzfile_read): Fix check for version 0 data files. + Patch by Szymon Siwek . + +=================================================================== +RCS file: /cvs/glibc/libc/time/tzfile.c,v +retrieving revision 1.69 +retrieving revision 1.70 +diff -u -r1.69 -r1.70 +--- libc/time/tzfile.c 2007/10/17 14:44:26 1.69 ++++ libc/time/tzfile.c 2007/11/06 01:03:43 1.70 +@@ -381,7 +381,7 @@ + else + tzspec[tzspec_len - 1] = '\0'; + } +- else if (sizeof (time_t) == 4 && tzhead.tzh_version != '\0') ++ else if (sizeof (time_t) == 4 && tzhead.tzh_version[0] != '\0') + { + /* Get the TZ string. */ + if (__builtin_expect (fread_unlocked ((void *) &tzhead, sizeof (tzhead), --- glibc-2.7.orig/debian/patches/any/cvs-strerror_r.diff +++ glibc-2.7/debian/patches/any/cvs-strerror_r.diff @@ -0,0 +1,444 @@ +2008-03-30 Ulrich Drepper + + [BZ #5443] + * intl/dcigettext.c (__dcigettext): Get reader lock for locale data + before looking for translation. + * locale/duplocale.c: Transform __libc_setlocale_lock into rwlock. + * locale/freelocale.c: Likewise. + * locale/newlocale.c: Likewise. + * locale/setlocale.c: Likewise. + Based partially on a patch by ryo@np.css.fujitsu.com. + +2008-03-30 Jakub Jelinek + + * intl/dcigettext.c (_nl_find_msg): Reread nconversions after + acquiring wrlock. Do conv_tab allocation while holding lock. + * intl/Makefile: Add rules to build and run tst-gettext6. + * intl/tst-gettext6.c: New test. + * intl/tst-gettext6.sh: New file. + +--- glibc-2.7.orig/intl/Makefile ++++ glibc-2.7/intl/Makefile +@@ -1,4 +1,4 @@ +-# Copyright (C) 1995-2003, 2005 Free Software Foundation, Inc. ++# Copyright (C) 1995-2003, 2005, 2008 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 +@@ -32,11 +32,11 @@ + tst-codeset.sh tstcodeset.po \ + tst-gettext3.sh \ + tst-gettext4.sh tst-gettext4-de.po tst-gettext4-fr.po \ +- tst-gettext5.sh ++ tst-gettext5.sh tst-gettext6.sh + + include ../Makeconfig + +-multithread-test-srcs := tst-gettext4 tst-gettext5 ++multithread-test-srcs := tst-gettext4 tst-gettext5 tst-gettext6 + test-srcs := tst-gettext tst-translit tst-gettext2 tst-codeset tst-gettext3 + ifeq ($(have-thread-library),yes) + test-srcs += $(multithread-test-srcs) +@@ -67,7 +67,8 @@ + tests: $(objpfx)tst-translit.out $(objpfx)tst-gettext2.out \ + $(objpfx)tst-codeset.out $(objpfx)tst-gettext3.out + ifeq ($(have-thread-library),yes) +-tests: $(objpfx)tst-gettext4.out $(objpfx)tst-gettext5.out ++tests: $(objpfx)tst-gettext4.out $(objpfx)tst-gettext5.out \ ++ $(objpfx)tst-gettext6.out + endif + ifneq (no,$(PERL)) + tests: $(objpfx)mtrace-tst-gettext +@@ -90,6 +91,8 @@ + $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)intl/ + $(objpfx)tst-gettext5.out: tst-gettext5.sh $(objpfx)tst-gettext5 + $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)intl/ ++$(objpfx)tst-gettext6.out: tst-gettext6.sh $(objpfx)tst-gettext6 ++ $(SHELL) -e $< $(common-objpfx) '$(run-program-prefix)' $(common-objpfx)intl/ + endif + endif + +@@ -104,6 +107,7 @@ + CFLAGS-tst-gettext3.c = -DOBJPFX=\"$(objpfx)\" + CFLAGS-tst-gettext4.c = -DOBJPFX=\"$(objpfx)\" + CFLAGS-tst-gettext5.c = -DOBJPFX=\"$(objpfx)\" ++CFLAGS-tst-gettext6.c = -DOBJPFX=\"$(objpfx)\" + + ifeq ($(have-thread-library),yes) + ifeq (yes,$(build-shared)) +@@ -122,6 +126,7 @@ + $(objpfx)tst-gettext3.out: $(objpfx)tst-gettext.out + $(objpfx)tst-gettext4.out: $(objpfx)tst-gettext.out + $(objpfx)tst-gettext5.out: $(objpfx)tst-gettext.out ++$(objpfx)tst-gettext6.out: $(objpfx)tst-gettext.out + + CPPFLAGS += -D'LOCALEDIR="$(msgcatdir)"' \ + -D'LOCALE_ALIAS_PATH="$(msgcatdir)"' +--- glibc-2.7.orig/intl/dcigettext.c ++++ glibc-2.7/intl/dcigettext.c +@@ -1,5 +1,6 @@ + /* Implementation of the internal dcigettext function. +- Copyright (C) 1995-2005, 2006, 2007 Free Software Foundation, Inc. ++ Copyright (C) 1995-2005, 2006, 2007, 2008 ++ 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 +@@ -444,6 +445,11 @@ + : n == 1 ? (char *) msgid1 : (char *) msgid2); + #endif + ++#ifdef _LIBC ++ __libc_rwlock_define (extern, __libc_setlocale_lock attribute_hidden) ++ __libc_rwlock_rdlock (__libc_setlocale_lock); ++#endif ++ + __libc_rwlock_rdlock (_nl_state_lock); + + /* If DOMAINNAME is NULL, we are interested in the default domain. If +@@ -464,7 +470,7 @@ + search->category = category; + # ifdef HAVE_PER_THREAD_LOCALE + # ifdef _LIBC +- localename = __current_locale_name (category); ++ localename = strdupa (__current_locale_name (category)); + # endif + search->localename = localename; + # endif +@@ -488,6 +494,9 @@ + else + retval = (char *) (*foundp)->translation; + ++# ifdef _LIBC ++ __libc_rwlock_unlock (__libc_setlocale_lock); ++# endif + __libc_rwlock_unlock (_nl_state_lock); + return retval; + } +@@ -547,6 +556,7 @@ + /* We cannot get the current working directory. Don't signal an + error but simply return the default string. */ + FREE_BLOCKS (block_list); ++ __libc_rwlock_unlock (__libc_setlocale_lock); + __libc_rwlock_unlock (_nl_state_lock); + __set_errno (saved_errno); + return (plural == 0 +@@ -613,6 +623,7 @@ + { + no_translation: + FREE_BLOCKS (block_list); ++ __libc_rwlock_unlock (__libc_setlocale_lock); + __libc_rwlock_unlock (_nl_state_lock); + __set_errno (saved_errno); + return (plural == 0 +@@ -723,6 +734,7 @@ + if (plural) + retval = plural_lookup (domain, n, retval, retlen); + ++ __libc_rwlock_unlock (__libc_setlocale_lock); + __libc_rwlock_unlock (_nl_state_lock); + return retval; + } +--- /dev/null ++++ glibc-2.7/intl/tst-gettext6.c +@@ -0,0 +1,86 @@ ++/* Test that gettext() in multithreaded applications works correctly. ++ Copyright (C) 2008 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Jakub Jelinek , 2008. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++pthread_barrier_t b; ++ ++static void * ++tf (void *arg) ++{ ++ pthread_barrier_wait (&b); ++ return gettext ("Operation not permitted"); ++} ++ ++int ++test (void) ++{ ++ pthread_t th[4]; ++ unsetenv ("LANGUAGE"); ++ unsetenv ("OUTPUT_CHARSET"); ++ textdomain ("tstgettext6"); ++ bindtextdomain ("tstgettext6", OBJPFX "domaindir"); ++ setlocale (LC_ALL, "ja_JP.UTF-8"); ++ pthread_barrier_init (&b, NULL, 4); ++ for (int i = 0; i < 4; i++) ++ if (pthread_create (&th[i], NULL, tf, NULL)) ++ { ++ puts ("pthread_create failed"); ++ return 1; ++ } ++ for (int i = 0; i < 4; i++) ++ pthread_join (th[i], NULL); ++ return 0; ++} ++ ++int ++main (void) ++{ ++ for (int i = 0; i < 300; i++) ++ { ++ pid_t p = fork (); ++ if (p == -1) ++ { ++ printf ("fork failed: %m\n"); ++ return 1; ++ } ++ if (p == 0) ++ _exit (test ()); ++ int status; ++ wait (&status); ++ if (WIFEXITED (status) && WEXITSTATUS (status) != 0) ++ { ++ printf ("child exited with %d\n", WEXITSTATUS (status)); ++ return 1; ++ } ++ else if (WIFSIGNALED (status)) ++ { ++ printf ("child killed by signal %d\n", WTERMSIG (status)); ++ return 1; ++ } ++ } ++ return 0; ++} +--- /dev/null ++++ glibc-2.7/intl/tst-gettext6.sh +@@ -0,0 +1,41 @@ ++#! /bin/sh ++# Test that gettext() in multithreaded applications works correctly. ++# Copyright (C) 2008 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 ++# License as published by the Free Software Foundation; either ++# version 2.1 of the License, or (at your option) any later version. ++ ++# The GNU C Library is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# Lesser General Public License for more details. ++ ++# 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. ++ ++common_objpfx=$1 ++run_program_prefix=$2 ++objpfx=$3 ++ ++LC_ALL=C ++export LC_ALL ++ ++# Create the domain directory. ++mkdir -p ${objpfx}domaindir/ja_JP/LC_MESSAGES ++# Populate it. ++msgfmt -o ${objpfx}domaindir/ja_JP/LC_MESSAGES/tstgettext6.mo ../po/ja.po ++ ++GCONV_PATH=${common_objpfx}iconvdata ++export GCONV_PATH ++LOCPATH=${common_objpfx}localedata ++export LOCPATH ++ ++${run_program_prefix} ${objpfx}tst-gettext6 > ${objpfx}tst-gettext6.out ++ ++exit $? +--- glibc-2.7.orig/locale/duplocale.c ++++ glibc-2.7/locale/duplocale.c +@@ -1,5 +1,5 @@ + /* Duplicate handle for selection of locales. +- Copyright (C) 1997, 2000, 2001, 2002, 2005 Free Software Foundation, Inc. ++ Copyright (C) 1997,2000,2001,2002,2005,2008 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1997. + +@@ -27,7 +27,7 @@ + + + /* Lock for protecting global data. */ +-__libc_lock_define (extern , __libc_setlocale_lock attribute_hidden) ++__libc_rwlock_define (extern , __libc_setlocale_lock attribute_hidden) + + + __locale_t +@@ -54,7 +54,7 @@ + char *namep = (char *) (result + 1); + + /* We modify global data (the usage counts). */ +- __libc_lock_lock (__libc_setlocale_lock); ++ __libc_rwlock_wrlock (__libc_setlocale_lock); + + for (cnt = 0; cnt < __LC_LAST; ++cnt) + if (cnt != LC_ALL) +@@ -78,7 +78,7 @@ + result->__ctype_toupper = dataset->__ctype_toupper; + + /* It's done. */ +- __libc_lock_unlock (__libc_setlocale_lock); ++ __libc_rwlock_unlock (__libc_setlocale_lock); + } + + return result; +--- glibc-2.7.orig/locale/freelocale.c ++++ glibc-2.7/locale/freelocale.c +@@ -1,5 +1,5 @@ + /* Free data allocated by a call to setlocale_r +- Copyright (C) 1996, 1997, 2000, 2002, 2005 Free Software Foundation, Inc. ++ Copyright (C) 1996,1997,2000,2002,2005,2008 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1996. + +@@ -26,7 +26,7 @@ + + + /* Lock for protecting global data. */ +-__libc_lock_define (extern , __libc_setlocale_lock attribute_hidden) ++__libc_rwlock_define (extern , __libc_setlocale_lock attribute_hidden) + + + void +@@ -39,7 +39,7 @@ + return; + + /* We modify global data (the usage counts). */ +- __libc_lock_lock (__libc_setlocale_lock); ++ __libc_rwlock_wrlock (__libc_setlocale_lock); + + for (cnt = 0; cnt < __LC_LAST; ++cnt) + if (cnt != LC_ALL && dataset->__locales[cnt]->usage_count != UNDELETABLE) +@@ -47,7 +47,7 @@ + _nl_remove_locale (cnt, dataset->__locales[cnt]); + + /* It's done. */ +- __libc_lock_unlock (__libc_setlocale_lock); ++ __libc_rwlock_unlock (__libc_setlocale_lock); + + /* Free the locale_t handle itself. */ + free (dataset); +--- glibc-2.7.orig/locale/newlocale.c ++++ glibc-2.7/locale/newlocale.c +@@ -1,5 +1,5 @@ + /* Return a reference to locale information record. +- Copyright (C) 1996, 1997, 1999, 2000-2002, 2004, 2005, 2006 ++ Copyright (C) 1996, 1997, 1999, 2000-2002, 2004, 2005, 2006, 2008 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1996. +@@ -30,7 +30,7 @@ + + + /* Lock for protecting global data. */ +-__libc_lock_define (extern , __libc_setlocale_lock attribute_hidden) ++__libc_rwlock_define (extern , __libc_setlocale_lock attribute_hidden) + + + /* Use this when we come along an error. */ +@@ -162,7 +162,7 @@ + } + + /* Protect global data. */ +- __libc_lock_lock (__libc_setlocale_lock); ++ __libc_rwlock_wrlock (__libc_setlocale_lock); + + /* Now process all categories we are interested in. */ + names_len = 0; +@@ -183,7 +183,7 @@ + _nl_remove_locale (cnt, result.__locales[cnt]); + + /* Critical section left. */ +- __libc_lock_unlock (__libc_setlocale_lock); ++ __libc_rwlock_unlock (__libc_setlocale_lock); + return NULL; + } + +@@ -263,7 +263,7 @@ + } + + /* Critical section left. */ +- __libc_lock_unlock (__libc_setlocale_lock); ++ __libc_rwlock_unlock (__libc_setlocale_lock); + + /* Update the special members. */ + update: +--- glibc-2.7.orig/locale/setlocale.c ++++ glibc-2.7/locale/setlocale.c +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1991, 1992, 1995-2000, 2002, 2003, 2004, 2006 ++/* Copyright (C) 1991, 1992, 1995-2000, 2002, 2003, 2004, 2006, 2008 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + +@@ -123,7 +123,7 @@ + + + /* Lock for protecting global data. */ +-__libc_lock_define_initialized (, __libc_setlocale_lock attribute_hidden) ++__libc_rwlock_define_initialized (, __libc_setlocale_lock attribute_hidden) + + /* Defined in loadmsgcat.c. */ + extern int _nl_msg_cat_cntr; +@@ -314,7 +314,7 @@ + } + + /* Protect global data. */ +- __libc_lock_lock (__libc_setlocale_lock); ++ __libc_rwlock_wrlock (__libc_setlocale_lock); + + /* Load the new data for each category. */ + while (category-- > 0) +@@ -381,7 +381,7 @@ + free ((char *) newnames[category]); + + /* Critical section left. */ +- __libc_lock_unlock (__libc_setlocale_lock); ++ __libc_rwlock_unlock (__libc_setlocale_lock); + + /* Free the resources (the locale path variable). */ + free (locale_path); +@@ -394,7 +394,7 @@ + const char *newname[1] = { locale }; + + /* Protect global data. */ +- __libc_lock_lock (__libc_setlocale_lock); ++ __libc_rwlock_wrlock (__libc_setlocale_lock); + + if (CATEGORY_USED (category)) + { +@@ -446,7 +446,7 @@ + } + + /* Critical section left. */ +- __libc_lock_unlock (__libc_setlocale_lock); ++ __libc_rwlock_unlock (__libc_setlocale_lock); + + /* Free the resources (the locale path variable. */ + free (locale_path); --- glibc-2.7.orig/debian/patches/any/submitted-nis-netgrp.diff +++ glibc-2.7/debian/patches/any/submitted-nis-netgrp.diff @@ -0,0 +1,25 @@ +This assertion breaks applications if they redefine malloc/free functions, +malloc_usable_size may then report wrong values. This is true for instance +with bash, whereas bash-static works fine because it does not use its own +wrapper functions. See #322011 and merged bugs. + +# DP: Dpatch author: Denis Barbier +# DP: Patch author: Denis Barbier +# DP: Upstream status: BZ692 +# DP: Date: 2006-01-12 + + +--- nis/nss_nis/nis-netgrp.c.orig ++++ nis/nss_nis/nis-netgrp.c +@@ -72,7 +72,10 @@ + and the last byte is filled with NUL. So we can simply + use that buffer. */ + assert (len >= 0); +- assert (malloc_usable_size (netgrp->data) >= len + 1); ++ /* Call to malloc_usable_size disabled, this breaks if applications ++ redefine malloc/free with a different implementation. ++ This assert is always true, see yp_match. */ ++ /* assert (malloc_usable_size (netgrp->data) >= len + 1); */ + assert (netgrp->data[len] == '\0'); + + netgrp->data_size = len; --- glibc-2.7.orig/debian/patches/any/local-strfry.diff +++ glibc-2.7/debian/patches/any/local-strfry.diff @@ -0,0 +1,11 @@ +--- string/strfry.c.orig 2007-10-27 11:58:24.290000000 +0200 ++++ string/strfry.c 2007-10-27 11:58:46.350000000 +0200 +@@ -38,7 +38,7 @@ + } + + len = strlen (string) - 1; +- for (i = 0; i < len; ++i) ++ for (i = 0; i < len - 1; ++i) + { + int32_t j; + __random_r (&rdata, &j); --- glibc-2.7.orig/debian/patches/any/submitted-link-local_resolver.diff +++ glibc-2.7/debian/patches/any/submitted-link-local_resolver.diff @@ -0,0 +1,74 @@ +It seems that glibc's resolver does not support IPv6 link-local +addresses with an explicit scope (like fe80::[...]%eth0), in the +nameserver options in /etc/resolv.conf. Currently, nameservers with a +scope fail to be parsed. Nameservers with a link-local address (without +scope) are parsed and used, but obviously do not work (connect() fails +with EINVAL because a sin6_scope_id of 0 is used with the link-local +address). + +With the apparition of the new RDNSS option (RFC5006), which allows +for DNS configuration through stateless autoconf, we expect that IPv6 +link-local resolvers may be used, and set into /etc/resolv.conf. +Kernel-side support is included in Linux 2.6.24, and the corresponding +userland RDNSS daemon is currently under development and will be shipped +in the next release of the ndisc6 package. We would need glibc to +support this feature to integrate our work. + +Please review this patch, and consider it for application and submission +to upstream. + +--- resolv/res_init.c 2007-12-09 17:30:57.000000000 +0100 ++++ resolv/res_init.c 2007-12-09 18:19:40.000000000 +0100 +@@ -74,11 +74,14 @@ static const char rcsid[] = "$BINDId: re + #include + #include + ++#include + #include + #include + #include + ++#include + #include ++#include + #include + #include + #include +@@ -327,6 +330,8 @@ __res_vinit(res_state statp, int preinit + + if ((el = strchr(cp, '\n')) != NULL) + *el = '\0'; ++ if ((el = strchr(cp, SCOPE_DELIMITER)) != NULL) ++ *el = '\0'; + if ((*cp != '\0') && + (inet_pton(AF_INET6, cp, &a6) > 0)) { + struct sockaddr_in6 *sa6; +@@ -336,6 +341,27 @@ __res_vinit(res_state statp, int preinit + sa6->sin6_addr = a6; + sa6->sin6_family = AF_INET6; + sa6->sin6_port = htons(NAMESERVER_PORT); ++ ++ if (el != NULL) { ++ int try_numericscope = 0; ++ if (IN6_IS_ADDR_LINKLOCAL(&a6) ++ || IN6_IS_ADDR_MC_LINKLOCAL(&a6)) { ++ sa6->sin6_scope_id = if_nametoindex(el + 1); ++ if (sa6->sin6_scope_id == 0) ++ try_numericscope = 1; ++ } else ++ try_numericscope = 1; ++ ++ if (try_numericscope != 0) { ++ char *end; ++ assert(sizeof(uint32_t) <= sizeof(unsigned long)); ++ sa6->sin6_scope_id = (uint32_t) strtoul(el + 1, &end, 10); ++ if (*end != '\0') ++ sa6->sin6_scope_id = 0; ++ } ++ } else ++ sa6->sin6_scope_id = 0; ++ + statp->_u._ext.nsaddrs[nservall] = sa6; + statp->_u._ext.nssocks[nservall] = -1; + statp->_u._ext.nsmap[nservall] = MAXNS + 1; + --- glibc-2.7.orig/debian/patches/any/submitted-libgcc_s.so.diff +++ glibc-2.7/debian/patches/any/submitted-libgcc_s.so.diff @@ -0,0 +1,27 @@ +Index: sysdeps/generic/framestate.c +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/generic/framestate.c,v +retrieving revision 1.4 +diff -u -p -r1.4 framestate.c +--- sysdeps/generic/framestate.c 21 Feb 2004 09:07:05 -0000 1.4 ++++ sysdeps/generic/framestate.c 28 Jul 2007 21:19:14 -0000 +@@ -25,6 +25,10 @@ + #include + #undef __frame_state_for + ++#ifndef LIBGCC_S_SO ++#define LIBGCC_S_SO "libgcc_s.so.1" ++#endif ++ + typedef struct frame_state * (*framesf)(void *pc, struct frame_state *); + struct frame_state *__frame_state_for (void *pc, + struct frame_state *frame_state); +@@ -36,7 +40,7 @@ __frame_state_for (void *pc, struct fram + + if (frame_state_for == NULL) + { +- void *handle = __libc_dlopen ("libgcc_s.so.1"); ++ void *handle = __libc_dlopen (LIBGCC_S_SO); + + if (handle == NULL + || (frame_state_for --- glibc-2.7.orig/debian/patches/any/local-ldso-disable-hwcap.diff +++ glibc-2.7/debian/patches/any/local-ldso-disable-hwcap.diff @@ -0,0 +1,73 @@ +# DP: Allow hwcap's to be disabled with the existence of a file. This +# DP: makes it easier to do upgrades with optimized (hwcap) library +# DP: packages. +# DP: Author: Rewritten by Daniel Jacobowitz +# DP: Upstream status: Debian-Specific +# DP: Status Details: This isn't going to be acceptable upstream, we +# DP: only need it because we support in-place upgrades. +# DP: Date: 2003-10-28, (Updated 2005-01-02 gotom, 2007-05-20 aurel32) + +--- elf/dl-sysdep.c.orig ++++ elf/dl-sysdep.c +@@ -408,6 +408,20 @@ + /* For TLS enabled builds always add 'tls'. */ + ++cnt; + ++ if (__access ("/etc/ld.so.nohwcap", F_OK) == 0) ++ { ++ /* If hwcap is disabled, we only have the base directory to search. */ ++ result = (struct r_strlenpair *) malloc (sizeof (*result)); ++ if (result == NULL) ++ goto no_memory; ++ ++ result[0].str = (char *) result; /* Does not really matter. */ ++ result[0].len = 0; ++ ++ *sz = 1; ++ return result; ++ } ++ + /* Create temporary data structure to generate result table. */ + temp = (struct r_strlenpair *) alloca (cnt * sizeof (*temp)); + m = 0; +@@ -482,8 +496,11 @@ + *sz = 1 << cnt; + result = (struct r_strlenpair *) malloc (*sz * sizeof (*result) + total); + if (result == NULL) +- _dl_signal_error (ENOMEM, NULL, NULL, +- N_("cannot create capability list")); ++ { ++ no_memory: ++ _dl_signal_error (ENOMEM, NULL, NULL, ++ N_("cannot create capability list")); ++ } + + if (cnt == 1) + { +--- elf/dl-cache.c.orig ++++ elf/dl-cache.c +@@ -244,6 +244,7 @@ + if (cache_new != (void *) -1) + { + uint64_t platform; ++ int disable_hwcap = 0; + + /* This is where the strings start. */ + cache_data = (const char *) cache_new; +@@ -255,11 +256,16 @@ + if (platform != (uint64_t) -1) + platform = 1ULL << platform; + ++ if (__access ("/etc/ld.so.nohwcap", F_OK) == 0) ++ disable_hwcap = 1; ++ + /* Only accept hwcap if it's for the right platform. */ + #define _DL_HWCAP_TLS_MASK (1LL << 63) + #define HWCAP_CHECK \ + if (GLRO(dl_osversion) && lib->osversion > GLRO(dl_osversion)) \ + continue; \ ++ if (disable_hwcap && lib->hwcap != 0) \ ++ continue; \ + if (_DL_PLATFORMS_COUNT \ + && (lib->hwcap & _DL_HWCAP_PLATFORM) != 0 \ + && (lib->hwcap & _DL_HWCAP_PLATFORM) != platform) \ --- glibc-2.7.orig/debian/patches/any/local-ld-multiarch.diff +++ glibc-2.7/debian/patches/any/local-ld-multiarch.diff @@ -0,0 +1,29 @@ +2005-01-20 Tollef Fog Heen + + * Makeconfig: add multiarch support + +--- Makeconfig.orig ++++ Makeconfig +@@ -190,6 +190,11 @@ + endif + inst_libdir = $(install_root)$(libdir) + ++# Extra places to look for libraries ++ifndef extra_libdir ++extra_libdir = /lib/$(config-machine)-$(config-os):$(exec_prefix)/lib/$(config-machine)-$(config-os) ++endif ++ + # Where to install the shared library and dynamic linker. + ifndef slibdir + slibdir = $(exec_prefix)/lib +@@ -500,6 +505,10 @@ + default-rpath = $(libdir) + endif + ++ifdef extra_libdir ++default-rpath += :$(extra_libdir) ++endif ++ + ifndef link-extra-libs + link-extra-libs = $(LDLIBS-$(@F)) + link-extra-libs-static = $(link-extra-libs) --- glibc-2.7.orig/debian/patches/any/local-disable-nscd-host-caching.diff +++ glibc-2.7/debian/patches/any/local-disable-nscd-host-caching.diff @@ -0,0 +1,13 @@ +--- glibc-2.6.orig/nscd/nscd.conf ++++ glibc-2.6/nscd/nscd.conf +@@ -60,7 +60,9 @@ + max-db-size group 33554432 + auto-propagate group yes + +- enable-cache hosts yes ++# hosts caching is broken with gethostby* calls, hence is now disabled ++# per default. See /usr/share/doc/nscd/NEWS.Debian. ++ enable-cache hosts no + positive-time-to-live hosts 3600 + negative-time-to-live hosts 20 + suggested-size hosts 211 --- glibc-2.7.orig/debian/patches/any/cvs-gcc-4.3.diff +++ glibc-2.7/debian/patches/any/cvs-gcc-4.3.diff @@ -0,0 +1,49 @@ +commit 4400b128c82ef88061f9ab54fdb30737debce7cb +Author: Roland McGrath +Date: Fri Feb 1 00:20:07 2008 +0000 + + 2008-01-31 Roland McGrath + + [BZ #5442] + * configure.in: Use -print-file-name if it yields a directory, + for each of include and include-fixed. + * configure: Regenerated. + +diff --git a/configure b/configure +index 1f2cd4f..4b96978 100755 +--- a/configure ++++ b/configure +@@ -5065,8 +5065,12 @@ echo "$as_me: WARNING: + # header directory and add that to the list. NOTE: Only does the right + # thing on a system that doesn't need fixincludes. (Not presently a problem.) + if test -n "$sysheaders"; then +- ccheaders=`$CC -print-file-name=include` +- SYSINCLUDES="-nostdinc -isystem $ccheaders \ ++ SYSINCLUDES=-nostdinc ++ for d in include include-fixed; do ++ i=`$CC -print-file-name="$d"` && test "x$i" != "x$d" && ++ SYSINCLUDES="$SYSINCLUDES -isystem $i" ++ done ++ SYSINCLUDES="$SYSINCLUDES \ + -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`" + if test -n "$CXX"; then + cxxversion=`$CXX -dumpversion 2>&5` && +diff --git a/configure.in b/configure.in +index 6ea1b26..3098ebf 100644 +--- a/configure.in ++++ b/configure.in +@@ -914,8 +914,12 @@ test -n "$aux_missing" && AC_MSG_WARN([ + # header directory and add that to the list. NOTE: Only does the right + # thing on a system that doesn't need fixincludes. (Not presently a problem.) + if test -n "$sysheaders"; then +- ccheaders=`$CC -print-file-name=include` +- SYSINCLUDES="-nostdinc -isystem $ccheaders \ ++ SYSINCLUDES=-nostdinc ++ for d in include include-fixed; do ++ i=`$CC -print-file-name="$d"` && test "x$i" != x && test "x$i" != "x$d" && ++ SYSINCLUDES="$SYSINCLUDES -isystem $i" ++ done ++ SYSINCLUDES="$SYSINCLUDES \ + -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`" + if test -n "$CXX"; then + cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` && --- glibc-2.7.orig/debian/patches/any/local-linuxthreads-signals.diff +++ glibc-2.7/debian/patches/any/local-linuxthreads-signals.diff @@ -0,0 +1,14 @@ +--- linuxthreads/signals.c~ 2007-11-15 12:46:17.000000000 +0100 ++++ linuxthreads/signals.c 2007-11-15 12:46:17.000000000 +0100 +@@ -99,9 +99,11 @@ + if (act->sa_handler != SIG_IGN && act->sa_handler != SIG_DFL + && sig > 0 && sig < NSIG) + { ++#if !defined(__FreeBSD_kernel__) + if (act->sa_flags & SA_SIGINFO) + newact.sa_handler = (__sighandler_t) __pthread_sighandler_rt; + else ++#endif + newact.sa_handler = (__sighandler_t) __pthread_sighandler; + if (old == SIG_IGN || old == SIG_DFL || old == SIG_ERR) + __sighandler[sig].old = (arch_sighandler_t) act->sa_handler; --- glibc-2.7.orig/debian/patches/any/local-linuxthreads-defines.diff +++ glibc-2.7/debian/patches/any/local-linuxthreads-defines.diff @@ -0,0 +1,20 @@ + + linuxthreads still uses these defines + apply only for glibc 2.6 and above + +Index: config.make.in +=================================================================== +--- config.make.in.orig 2007-10-23 08:46:14.000000000 -0400 ++++ config.make.in 2007-10-23 08:50:24.000000000 -0400 +@@ -39,6 +39,11 @@ + all-warnings = @all_warnings@ + + elf = @elf@ ++have-protected = yes ++have-z-nodelete = yes ++have-z-nodlopen = yes ++have-z-initfirst = yes ++have-z-relro = yes + have-z-combreloc = @libc_cv_z_combreloc@ + have-z-execstack = @libc_cv_z_execstack@ + have-initfini = @libc_cv_have_initfini@ --- glibc-2.7.orig/debian/patches/any/local-rtld.diff +++ glibc-2.7/debian/patches/any/local-rtld.diff @@ -0,0 +1,47 @@ +2006-01-21 Aurelien Jarno + + * Makeconfig: new configuration variable rtlddir to change the + dynamic linker in the ELF binaries, which defaults to slibdir + +2005-08-30 Andreas Jochen + * Makeconfig: use rtlddir instead of slibdir + * elf/Makefile: likewise + +Index: Makeconfig +=================================================================== +--- Makeconfig.orig 2007-10-23 08:50:33.000000000 -0400 ++++ Makeconfig 2007-10-23 08:50:37.000000000 -0400 +@@ -201,6 +201,11 @@ + endif + inst_slibdir = $(install_root)$(slibdir) + ++# Directory of the dynamic linker in the ELF binaries ++ifndef rtlddir ++rtlddir := $(slibdir) ++endif ++ + # Prefix to put on files installed in $(libdir). For libraries `libNAME.a', + # the prefix is spliced between `lib' and the name, so the linker switch + # `-l$(libprefix)NAME' finds the library; for other files the prefix is +@@ -464,7 +469,7 @@ + endif + ifndef config-LDFLAGS + ifeq (yesyes,$(build-shared)$(elf)) +-config-LDFLAGS = -Wl,-dynamic-linker=$(slibdir)/$(rtld-installed-name) ++config-LDFLAGS = -Wl,-dynamic-linker=$(rtlddir)/$(rtld-installed-name) + endif + endif + ifndef link-libc +Index: elf/Makefile +=================================================================== +--- elf/Makefile.orig 2007-10-23 08:49:46.000000000 -0400 ++++ elf/Makefile 2007-10-23 08:50:37.000000000 -0400 +@@ -315,7 +315,7 @@ + | awk '($$7 ~ /^UND(|EF)$$/ && $$1 != "0:" && $$4 != "REGISTER") { print; p=1 } END { exit p != 0 }' + + # interp.c exists just to get this string into the libraries. +-CFLAGS-interp.c = -D'RUNTIME_LINKER="$(slibdir)/$(rtld-installed-name)"' \ ++CFLAGS-interp.c = -D'RUNTIME_LINKER="$(rtlddir)/$(rtld-installed-name)"' \ + -DNOT_IN_libc=1 + $(objpfx)interp.os: $(common-objpfx)config.make + --- glibc-2.7.orig/debian/patches/any/cvs-fchmodat.diff +++ glibc-2.7/debian/patches/any/cvs-fchmodat.diff @@ -0,0 +1,28 @@ +2007-12-12 Ulrich Drepper + + [BZ #5477] + * io/fchmodat.c: Fix typo in stub_warning use. + Patch by Petr Salinger. + +=================================================================== +RCS file: /cvs/glibc/libc/io/fchmodat.c,v +retrieving revision 1.1 +retrieving revision 1.2 +diff -u -r1.1 -r1.2 +--- libc/io/fchmodat.c 2006/01/05 10:32:41 1.1 ++++ libc/io/fchmodat.c 2007/12/12 17:53:01 1.2 +@@ -1,5 +1,5 @@ + /* Change the protections of file relative to open directory. Stub version. +- Copyright (C) 2006 Free Software Foundation, Inc. ++ Copyright (C) 2006, 2007 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 +@@ -45,6 +45,6 @@ + __set_errno (ENOSYS); + return -1; + } +-stub_warning (fchownat) ++stub_warning (fchmodat) + + #include --- glibc-2.7.orig/debian/patches/any/local-mktemp.diff +++ glibc-2.7/debian/patches/any/local-mktemp.diff @@ -0,0 +1,8 @@ +--- misc/mktemp.c.orig ++++ misc/mktemp.c +@@ -33,4 +33,4 @@ + return template; + } + +-link_warning (mktemp, "the use of `mktemp' is dangerous, better use `mkstemp'") ++link_warning (mktemp, "the use of `mktemp' is dangerous, better use `mkstemp' or `mkdtemp'") --- glibc-2.7.orig/debian/patches/any/local-dl-execstack.diff +++ glibc-2.7/debian/patches/any/local-dl-execstack.diff @@ -0,0 +1,33 @@ +# DP: Description: Support libraries that has execstack on <= 2.4.18 kernels. +# DP: Related bugs: #321718 +# DP: Dpatch author: GOTO Masanori +# DP: Patch author: GOTO Masanori +# DP: Upstream status: Not submitted +# DP: Status Details: Will be submitted +# DP: Date: 2005-08-19 + +2005-08-19 GOTO Masanori + + * sysdeps/unix/sysv/linux/dl-execstack.c: Check not only ENOMEM but + also EFAULT for pre 2.4.19 kernels. + +--- sysdeps/unix/sysv/linux/dl-execstack.c.orig ++++ sysdeps/unix/sysv/linux/dl-execstack.c +@@ -89,7 +89,7 @@ + page -= size; + else + { +- if (errno != ENOMEM) /* Unexpected failure mode. */ ++ if (errno != ENOMEM && errno != EFAULT) /* Unexpected failure mode. */ + { + result = errno; + goto out; +@@ -115,7 +115,7 @@ + page += size; + else + { +- if (errno != ENOMEM) /* Unexpected failure mode. */ ++ if (errno != ENOMEM && errno != EFAULT) /* Unexpected failure mode. */ + { + result = errno; + goto out; --- glibc-2.7.orig/debian/patches/any/submitted-clock-settime.diff +++ glibc-2.7/debian/patches/any/submitted-clock-settime.diff @@ -0,0 +1,12 @@ +http://sourceware.org/bugzilla/show_bug.cgi?id=4026 + +--- sysdeps/unix/sysv/linux/clock_settime.c.orig ++++ sysdeps/unix/sysv/linux/clock_settime.c +@@ -18,6 +18,7 @@ + + #include + #include ++#include + + #include "kernel-posix-cpu-timers.h" + #include --- glibc-2.7.orig/debian/patches/any/local-linuxthreads-lowlevellock.diff +++ glibc-2.7/debian/patches/any/local-linuxthreads-lowlevellock.diff @@ -0,0 +1,156 @@ +--- /dev/null ++++ linuxthreads/sysdeps/unix/sysv/linux/rtld-lowlevel.h +@@ -0,0 +1,153 @@ ++/* Defintions for lowlevel handling in ld.so. ++ Copyright (C) 2006 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#ifndef _RTLD_LOWLEVEL_H ++#define _RTLD_LOWLEVEL_H 1 ++ ++#include ++#include ++ ++ ++/* Special multi-reader lock used in ld.so. */ ++#define __RTLD_MRLOCK_WRITER 1 ++#define __RTLD_MRLOCK_RWAIT 2 ++#define __RTLD_MRLOCK_WWAIT 4 ++#define __RTLD_MRLOCK_RBITS \ ++ ~(__RTLD_MRLOCK_WRITER | __RTLD_MRLOCK_RWAIT | __RTLD_MRLOCK_WWAIT) ++#define __RTLD_MRLOCK_INC 8 ++#define __RTLD_MRLOCK_TRIES 5 ++ ++ ++typedef int __rtld_mrlock_t; ++ ++ ++#define __rtld_mrlock_define(CLASS,NAME) \ ++ CLASS __rtld_mrlock_t NAME; ++ ++ ++#define _RTLD_MRLOCK_INITIALIZER 0 ++#define __rtld_mrlock_initialize(NAME) \ ++ (void) ((NAME) = 0) ++ ++ ++#define __rtld_mrlock_lock(lock) \ ++ do { \ ++ __label__ out; \ ++ while (1) \ ++ { \ ++ int oldval; \ ++ for (int tries = 0; tries < __RTLD_MRLOCK_TRIES; ++tries) \ ++ { \ ++ oldval = lock; \ ++ while (__builtin_expect ((oldval \ ++ & (__RTLD_MRLOCK_WRITER \ ++ | __RTLD_MRLOCK_WWAIT)) \ ++ == 0, 1)) \ ++ { \ ++ int newval = ((oldval & __RTLD_MRLOCK_RBITS) \ ++ + __RTLD_MRLOCK_INC); \ ++ int ret = atomic_compare_and_exchange_val_acq (&(lock), \ ++ newval, \ ++ oldval); \ ++ if (__builtin_expect (ret == oldval, 1)) \ ++ goto out; \ ++ oldval = ret; \ ++ } \ ++ atomic_delay (); \ ++ } \ ++ if ((oldval & __RTLD_MRLOCK_RWAIT) == 0) \ ++ { \ ++ atomic_or (&(lock), __RTLD_MRLOCK_RWAIT); \ ++ oldval |= __RTLD_MRLOCK_RWAIT; \ ++ } \ ++ lll_futex_wait (lock, oldval); \ ++ } \ ++ out:; \ ++ } while (0) ++ ++ ++#define __rtld_mrlock_unlock(lock) \ ++ do { \ ++ int oldval = atomic_exchange_and_add (&(lock), -__RTLD_MRLOCK_INC); \ ++ if (__builtin_expect ((oldval \ ++ & (__RTLD_MRLOCK_RBITS | __RTLD_MRLOCK_WWAIT)) \ ++ == (__RTLD_MRLOCK_INC | __RTLD_MRLOCK_WWAIT), 0)) \ ++ /* We have to wake all threads since there might be some queued \ ++ readers already. */ \ ++ lll_futex_wake (&(lock), 0x7fffffff); \ ++ } while (0) ++ ++ ++/* There can only ever be one thread trying to get the exclusive lock. */ ++#define __rtld_mrlock_change(lock) \ ++ do { \ ++ __label__ out; \ ++ while (1) \ ++ { \ ++ int oldval; \ ++ for (int tries = 0; tries < __RTLD_MRLOCK_TRIES; ++tries) \ ++ { \ ++ oldval = lock; \ ++ while (__builtin_expect ((oldval & __RTLD_MRLOCK_RBITS) == 0, 1)) \ ++ { \ ++ int newval = ((oldval & __RTLD_MRLOCK_RWAIT) \ ++ + __RTLD_MRLOCK_WRITER); \ ++ int ret = atomic_compare_and_exchange_val_acq (&(lock), \ ++ newval, \ ++ oldval); \ ++ if (__builtin_expect (ret == oldval, 1)) \ ++ goto out; \ ++ oldval = ret; \ ++ } \ ++ atomic_delay (); \ ++ } \ ++ atomic_or (&(lock), __RTLD_MRLOCK_WWAIT); \ ++ oldval |= __RTLD_MRLOCK_WWAIT; \ ++ lll_futex_wait (lock, oldval); \ ++ } \ ++ out:; \ ++ } while (0) ++ ++ ++#define __rtld_mrlock_done(lock) \ ++ do { \ ++ int oldval = atomic_exchange_and_add (&(lock), -__RTLD_MRLOCK_WRITER); \ ++ if (__builtin_expect ((oldval & __RTLD_MRLOCK_RWAIT) != 0, 0)) \ ++ lll_futex_wake (&(lock), 0x7fffffff); \ ++ } while (0) ++ ++ ++/* Function to wait for variable become zero. Used in ld.so for ++ reference counters. */ ++#define __rtld_waitzero(word) \ ++ do { \ ++ while (1) \ ++ { \ ++ int val = word; \ ++ if (val == 0) \ ++ break; \ ++ lll_futex_wait (&(word), val); \ ++ } \ ++ } while (0) ++ ++ ++#define __rtld_notify(word) \ ++ lll_futex_wake (&(word), 1) ++ ++#endif --- glibc-2.7.orig/debian/patches/any/local-base.diff +++ glibc-2.7/debian/patches/any/local-base.diff @@ -0,0 +1,64 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: hjl libc-base patch + +2003-05-15 + + * elf/do-lookup.h (FCT): Try the base version, the first + version and then the default version, in that order, for + the old unversioned reference. + +--- elf/do-lookup.h.base 2003-05-15 09:29:25.000000000 -0700 ++++ elf/do-lookup.h 2003-05-15 09:24:24.000000000 -0700 +@@ -52,7 +52,8 @@ FCT (const char *undef_name, unsigned lo + const ElfW(Sym) *sym; + #if ! VERSIONED + int num_versions = 0; +- const ElfW(Sym) *versioned_sym = NULL; ++ const ElfW(Sym) *default_version = NULL; ++ const ElfW(Sym) *first_version = NULL; + #endif + + map = list[i]; +@@ -155,16 +156,29 @@ FCT (const char *undef_name, unsigned lo + public interface should be returned. */ + if (verstab != NULL) + { +- if ((verstab[symidx] & 0x7fff) +- >= ((flags & DL_LOOKUP_RETURN_NEWEST) ? 2 : 3)) ++ ElfW(Half) ndx = verstab[symidx] & 0x7fff; ++ if (ndx >= ((flags & DL_LOOKUP_RETURN_NEWEST) ? 2 : 3)) + { + /* Don't accept hidden symbols. */ + if ((verstab[symidx] & 0x8000) == 0 && num_versions++ == 0) + /* No version so far. */ +- versioned_sym = sym; ++ default_version = sym; + + continue; + } ++ if ((flags & DL_LOOKUP_RETURN_NEWEST) == 0 && ndx != 0) ++ { ++ /* ndx == 1 is the base version. We will use it for ++ old unversioned application. */ ++ if (ndx != 1) ++ { ++ /* We remember the first version and keep looking ++ for the base version. */ ++ if (ndx == 2) ++ first_version = sym; ++ continue; ++ } ++ } + } + #endif + +@@ -179,7 +193,8 @@ FCT (const char *undef_name, unsigned lo + #if VERSIONED + sym = NULL; + #else +- sym = num_versions == 1 ? versioned_sym : NULL; ++ sym = first_version ?: (num_versions == 1 ++ ? default_version : NULL); + #endif + + if (sym != NULL) --- glibc-2.7.orig/debian/patches/any/local-notls.diff +++ glibc-2.7/debian/patches/any/local-notls.diff @@ -0,0 +1,156 @@ +# DP: Description: Fix build when TLS is not available. +# DP: Upstream status: Submitted parts have been rejected. Parts + submitted would very probably be rejected. + +2007-04-13 Aurelien Jarno + + linuxthreads/sysdeps/pthread/gai_misc.h: Include . + +2007-02-09 Aurelien Jarno + + resolv/gai_misc.h: Include . + +2007-02-06 Petr Salinger + + inet/inet_ntoa.c: Only use __thread if USE___THREAD. + +2005-08-28 Thomas Schwinge + + malloc/memusage.c: Only use __thread if USE___THREAD. + + +--- malloc/memusage.c.orig ++++ malloc/memusage.c +@@ -85,7 +85,11 @@ + static memusage_cntr_t decreasing_mremap; + static memusage_size_t current_heap; + static memusage_size_t peak_use[3]; ++#if USE___THREAD + static __thread uintptr_t start_sp; ++#else ++static uintptr_t start_sp; ++#endif + + /* A few macros to make the source more readable. */ + #define peak_heap peak_use[0] +--- inet/inet_ntoa.c.orig ++++ inet/inet_ntoa.c +@@ -21,10 +21,14 @@ + #include + #include + #include ++#include + + /* The interface of this function is completely stupid, it requires a + static buffer. We relax this a bit in that we allow one buffer for + each thread. */ ++ ++#if USE_TLS && HAVE___THREAD ++ + static __thread char buffer[18]; + + +@@ -37,3 +41,83 @@ + + return buffer; + } ++ ++#else ++#include ++ ++/* The interface of this function is completely stupid, it requires a ++ static buffer. We relax this a bit in that we allow at least one ++ buffer for each thread. */ ++ ++/* This is the key for the thread specific memory. */ ++static __libc_key_t key; ++ ++/* If nonzero the key allocation failed and we should better use a ++ static buffer than fail. */ ++static char local_buf[18]; ++static char *static_buf; ++ ++/* Destructor for the thread-specific data. */ ++static void init (void); ++static void free_key_mem (void *mem); ++ ++ ++char * ++inet_ntoa (struct in_addr in) ++{ ++ __libc_once_define (static, once); ++ char *buffer; ++ unsigned char *bytes; ++ ++ /* If we have not yet initialized the buffer do it now. */ ++ __libc_once (once, init); ++ ++ if (static_buf != NULL) ++ buffer = static_buf; ++ else ++ { ++ /* We don't use the static buffer and so we have a key. Use it ++ to get the thread-specific buffer. */ ++ buffer = __libc_getspecific (key); ++ if (buffer == NULL) ++ { ++ /* No buffer allocated so far. */ ++ buffer = malloc (18); ++ if (buffer == NULL) ++ /* No more memory available. We use the static buffer. */ ++ buffer = local_buf; ++ else ++ __libc_setspecific (key, buffer); ++ } ++ } ++ ++ bytes = (unsigned char *) ∈ ++ __snprintf (buffer, 18, "%d.%d.%d.%d", ++ bytes[0], bytes[1], bytes[2], bytes[3]); ++ ++ return buffer; ++} ++ ++ ++/* Initialize buffer. */ ++static void ++init (void) ++{ ++ if (__libc_key_create (&key, free_key_mem)) ++ /* Creating the key failed. This means something really went ++ wrong. In any case use a static buffer which is better than ++ nothing. */ ++ static_buf = local_buf; ++} ++ ++ ++/* Free the thread specific data, this is done if a thread terminates. */ ++static void ++free_key_mem (void *mem) ++{ ++ free (mem); ++ __libc_setspecific (key, NULL); ++} ++ ++#endif ++ +--- linuxthreads/sysdeps/pthread/gai_misc.h.orig ++++ linuxthreads/sysdeps/pthread/gai_misc.h +@@ -23,6 +23,7 @@ + + #include + #include ++#include + + #undef DONT_NEED_GAI_MISC_COND + +--- resolv/gai_misc.h.orig ++++ resolv/gai_misc.h +@@ -22,6 +22,7 @@ + + #include + #include ++#include + + + /* Used to synchronize. */ --- glibc-2.7.orig/debian/patches/any/dst-expansion-fix.diff +++ glibc-2.7/debian/patches/any/dst-expansion-fix.diff @@ -0,0 +1,75 @@ +Description: do not expand DST in setuid binaries (CVE-2010-3847). +Author: Andreas Schwab + +Index: glibc-2.9/elf/dl-load.c +=================================================================== +--- glibc-2.9.orig/elf/dl-load.c 2008-07-26 01:40:05.000000000 -0700 ++++ glibc-2.9/elf/dl-load.c 2010-10-21 11:11:47.195523096 -0700 +@@ -177,8 +177,7 @@ + + + static size_t +-is_dst (const char *start, const char *name, const char *str, +- int is_path, int secure) ++is_dst (const char *start, const char *name, const char *str, int is_path) + { + size_t len; + bool is_curly = false; +@@ -207,11 +206,6 @@ + && (!is_path || name[len] != ':')) + return 0; + +- if (__builtin_expect (secure, 0) +- && ((name[len] != '\0' && (!is_path || name[len] != ':')) +- || (name != start + 1 && (!is_path || name[-2] != ':')))) +- return 0; +- + return len; + } + +@@ -226,13 +220,12 @@ + { + size_t len; + +- /* $ORIGIN is not expanded for SUID/GUID programs (except if it +- is $ORIGIN alone) and it must always appear first in path. */ ++ /* $ORIGIN is not expanded for SUID/GUID programs. */ + ++name; +- if ((len = is_dst (start, name, "ORIGIN", is_path, +- INTUSE(__libc_enable_secure))) != 0 +- || (len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0 +- || (len = is_dst (start, name, "LIB", is_path, 0)) != 0) ++ if (((len = is_dst (start, name, "ORIGIN", is_path)) != 0 ++ && !INTUSE(__libc_enable_secure)) ++ || (len = is_dst (start, name, "PLATFORM", is_path)) != 0 ++ || (len = is_dst (start, name, "LIB", is_path)) != 0) + ++cnt; + + name = strchr (name + len, '$'); +@@ -264,9 +257,12 @@ + size_t len; + + ++name; +- if ((len = is_dst (start, name, "ORIGIN", is_path, +- INTUSE(__libc_enable_secure))) != 0) ++ if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0) + { ++ /* Ignore this path element in SUID/SGID programs. */ ++ if (INTUSE(__libc_enable_secure)) ++ repl = (const char *) -1; ++ else + #ifndef SHARED + if (l == NULL) + repl = _dl_get_origin (); +@@ -274,9 +270,9 @@ + #endif + repl = l->l_origin; + } +- else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0) ++ else if ((len = is_dst (start, name, "PLATFORM", is_path)) != 0) + repl = GLRO(dl_platform); +- else if ((len = is_dst (start, name, "LIB", is_path, 0)) != 0) ++ else if ((len = is_dst (start, name, "LIB", is_path)) != 0) + repl = DL_DST_LIB; + + if (repl != NULL && repl != (const char *) -1) --- glibc-2.7.orig/debian/patches/any/local-linuxthreads-tst-sighandler.diff +++ glibc-2.7/debian/patches/any/local-linuxthreads-tst-sighandler.diff @@ -0,0 +1,11 @@ +--- glibc-2.6.orig/linuxthreads/Makefile ++++ glibc-2.6/linuxthreads/Makefile +@@ -111,7 +111,7 @@ + ex17 ex18 tst-cancel tst-context bug-sleep \ + tst-cancel1 tst-cancel2 tst-cancel3 tst-cancel4 tst-cancel5 \ + tst-cancel6 tst-cancel7 tst-cancel8 tst-popen tst-popen2 tst-attr1 \ +- tst-stack1 tst-align tst-tsd1 tst-sighandler1 tst-sighandler2 ++ tst-stack1 tst-align tst-tsd1 + test-srcs = tst-signal + # These tests are linked with libc before libpthread + tests-reverse += tst-cancel5 --- glibc-2.7.orig/debian/patches/any/local-globfree-clear.diff +++ glibc-2.7/debian/patches/any/local-globfree-clear.diff @@ -0,0 +1,24 @@ +# DP: Description: Workaround patch to make globfree() clear pglob->gl_pathc +# DP: Related bugs: #264884 +# DP: Dpatch author: Jeff Licquia +# DP: Patch author: Jeff Licquia +# DP: Upstream status: Not submitted +# DP: Status Details: (gotom) I think it's harmless, but I doubt it's sanity. +# It's applied for sarge LFS conformance. +# However my test does not show any problems. Moreover, +# if gl_pathv is not cleared after GLOB_ABORTED under +# gl_pathc == 0, it's glob() bug. +# This patch should be reconsidered to apply after sarge. +# DP: Date: 2004-07-22 + +--- glibc-2.3.2-old/sysdeps/generic/glob.c 2004-07-26 17:49:07.000000000 -0400 ++++ glibc-2.3.2/sysdeps/generic/glob.c 2004-07-26 17:51:14.000000000 -0400 +@@ -1105,6 +1105,8 @@ + if (pglob->gl_pathv[pglob->gl_offs + i] != NULL) + free ((__ptr_t) pglob->gl_pathv[pglob->gl_offs + i]); + free ((__ptr_t) pglob->gl_pathv); ++ pglob->gl_pathc = 0; ++ pglob->gl_pathv = NULL; + } + } + #if defined _LIBC && !defined globfree --- glibc-2.7.orig/debian/patches/any/local-stubs_h.diff +++ glibc-2.7/debian/patches/any/local-stubs_h.diff @@ -0,0 +1,11 @@ +--- glibc-2.6.orig/include/stubs-prologue.h ++++ glibc-2.6/include/stubs-prologue.h +@@ -8,7 +8,7 @@ + every time called, usually setting errno to ENOSYS. */ + + #ifdef _LIBC +- #error Applications may not define the macro _LIBC ++# error Applications may not define the macro _LIBC + #endif + + @ Placeholder line so we remember to keep the preceding blank line here. --- glibc-2.7.orig/debian/patches/any/local-linuxthreads-gscope.diff +++ glibc-2.7/debian/patches/any/local-linuxthreads-gscope.diff @@ -0,0 +1,34 @@ +--- linuxthreads/descr.h.orig 2007-07-29 15:45:26.000000000 +0200 ++++ linuxthreads/descr.h 2007-07-29 15:47:11.000000000 +0200 +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + #include + + /* Fast thread-specific data internal to libc. */ +@@ -123,12 +124,23@ + uintptr_t sysinfo; + uintptr_t stack_guard; + uintptr_t pointer_guard; ++# ifdef __FreeBSD_kernel__ ++ long gscope_flag; ++# else ++ int gscope_flag; ++# endif + } data; + void *__padding[16]; + } p_header; + # define p_multiple_threads p_header.data.multiple_threads ++# define p_gscope_flag p_header.data.gscope_flag + #elif TLS_MULTIPLE_THREADS_IN_TCB + int p_multiple_threads; ++# ifdef __FreeBSD_kernel__ ++ long p_gscope_flag; ++# else ++ int p_gscope_flag; ++# endif + #endif + + pthread_descr p_nextlive, p_prevlive; --- glibc-2.7.orig/debian/patches/any/local-no-pagesize.diff +++ glibc-2.7/debian/patches/any/local-no-pagesize.diff @@ -0,0 +1,78 @@ +--- glibc-2.6.orig/sysdeps/unix/sysv/linux/alpha/sys/user.h ++++ glibc-2.6/sysdeps/unix/sysv/linux/alpha/sys/user.h +@@ -23,6 +23,7 @@ + only. Don't read too much into it. Don't use it for anything other + than gdb/strace unless you know what you are doing. */ + ++#include + #include + #include + +@@ -41,7 +42,7 @@ + char u_comm[32]; /* user command name */ + }; + +-#define NBPG PAGE_SIZE ++#define NBPG sysconf(_SC_PAGESIZE) + #define UPAGES 1 + #define HOST_TEXT_START_ADDR (u.start_code) + #define HOST_DATA_START_ADDR (u.start_data) +--- glibc-2.6.orig/sysdeps/unix/sysv/linux/ia64/sys/user.h ++++ glibc-2.6/sysdeps/unix/sysv/linux/ia64/sys/user.h +@@ -21,6 +21,7 @@ + + #include + #include ++#include + + /* This definition comes directly from the kernel headers. If + anything changes in them this header has to be changed, too. */ +@@ -45,7 +46,7 @@ + char u_comm[32]; /* User command name. */ + }; + +-#define NBPG PAGE_SIZE ++#define NBPG sysconf(_SC_PAGESIZE) + #define UPAGES 1 + #define HOST_TEXT_START_ADDR (u.start_code) + #define HOST_DATA_START_ADDR (u.start_data) +--- glibc-2.6.orig/ports/sysdeps/unix/sysv/linux/mips/sys/user.h ++++ glibc-2.6/ports/sysdeps/unix/sysv/linux/mips/sys/user.h +@@ -20,6 +20,7 @@ + #define _SYS_USER_H 1 + + #include ++#include + + /* The whole purpose of this file is for GDB and GDB only. Don't read + too much into it. Don't use it for anything other than GDB unless +@@ -207,8 +208,7 @@ + + #endif + +-#define PAGE_SHIFT 12 +-#define PAGE_SIZE (1UL << PAGE_SHIFT) ++#define PAGE_SIZE sysconf(_SC_PAGESIZE) + #define PAGE_MASK (~(PAGE_SIZE-1)) + #define NBPG PAGE_SIZE + #define UPAGES 1 +--- glibc-2.6.orig/sysdeps/unix/sysv/linux/x86_64/sys/user.h ++++ glibc-2.6/sysdeps/unix/sysv/linux/x86_64/sys/user.h +@@ -24,6 +24,7 @@ + you know what you are doing. */ + + #include ++#include + + #if __WORDSIZE == 64 + +@@ -164,8 +165,7 @@ + }; + #endif /* __WORDSIZE */ + +-#define PAGE_SHIFT 12 +-#define PAGE_SIZE (1UL << PAGE_SHIFT) ++#define PAGE_SIZE sysconf(_SC_PAGESIZE) + #define PAGE_MASK (~(PAGE_SIZE-1)) + #define NBPG PAGE_SIZE + #define UPAGES 1 --- glibc-2.7.orig/debian/patches/any/git-readdir-padding.diff +++ glibc-2.7/debian/patches/any/git-readdir-padding.diff @@ -0,0 +1,52 @@ +Description: the Linux kernel always pads readdir entries, even on 32bit. +Bug: http://sourceware.org/bugzilla/show_bug.cgi?id=11333 +Bug-Ubuntu: https://launchpad.net/bugs/392501 +Origin: http://repo.or.cz/w/glibc.git/commitdiff/1a81139728494810f65aaa0d0c538ff8c2783dd5 + +Index: eglibc-2.10.1/sysdeps/unix/readdir_r.c +=================================================================== +--- eglibc-2.10.1.orig/sysdeps/unix/readdir_r.c 2010-05-03 15:00:47.184052538 -0700 ++++ eglibc-2.10.1/sysdeps/unix/readdir_r.c 2010-05-03 15:01:18.301553857 -0700 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1991,92,93,94,95,96,97,98,99,2000,02 ++/* Copyright (C) 1991,92,93,94,95,96,97,98,99,2000,02,10 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + +@@ -113,7 +113,17 @@ + while (dp->d_ino == 0); + + if (dp != NULL) +- *result = memcpy (entry, dp, reclen); ++ { ++#ifdef GETDENTS_64BIT_ALIGNED ++ /* The d_reclen value might include padding which is not part of ++ the DIRENT_TYPE data structure. */ ++ reclen = MIN (reclen, sizeof (DIRENT_TYPE)); ++#endif ++ *result = memcpy (entry, dp, reclen); ++#ifdef GETDENTS_64BIT_ALIGNED ++ entry->d_reclen = reclen; ++#endif ++ } + else + *result = NULL; + +Index: eglibc-2.10.1/sysdeps/unix/sysv/linux/i386/readdir64_r.c +=================================================================== +--- eglibc-2.10.1.orig/sysdeps/unix/sysv/linux/i386/readdir64_r.c 2010-05-03 15:00:51.785303120 -0700 ++++ eglibc-2.10.1/sysdeps/unix/sysv/linux/i386/readdir64_r.c 2010-05-03 15:01:18.301553857 -0700 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2000, 2004 Free Software Foundation, Inc. ++/* Copyright (C) 2000, 2004, 2010 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 +@@ -19,6 +19,7 @@ + #define __READDIR_R __readdir64_r + #define __GETDENTS __getdents64 + #define DIRENT_TYPE struct dirent64 ++#define GETDENTS_64BIT_ALIGNED 1 + + #include + --- glibc-2.7.orig/debian/patches/any/cvs-c99-vscanf.diff +++ glibc-2.7/debian/patches/any/cvs-c99-vscanf.diff @@ -0,0 +1,11 @@ +--- glibc-2.7/libio/stdio.h.orig 2007-09-18 17:58:29.000000000 +0000 ++++ glibc-2.7/libio/stdio.h 2008-09-09 00:24:06.000000000 +0000 +@@ -492,7 +492,7 @@ + __const char *__restrict __format, + _G_va_list __arg) __THROW; + # define vfscanf __isoc99_vfscanf +-# define vscanf __isoc99_vsscanf ++# define vscanf __isoc99_vscanf + # define vsscanf __isoc99_vsscanf + # endif + # endif --- glibc-2.7.orig/debian/patches/any/local-bindresvport_blacklist.diff +++ glibc-2.7/debian/patches/any/local-bindresvport_blacklist.diff @@ -0,0 +1,150 @@ +Patch from the OpenSUSE glibc + +--- sunrpc/bindrsvprt.c ++++ sunrpc/bindrsvprt.c +@@ -30,28 +30,106 @@ + * Copyright (c) 1987 by Sun Microsystems, Inc. + */ + ++#include ++#include + #include ++#include + #include + #include + #include + #include + #include + ++#define STARTPORT 600 ++#define LOWPORT 512 ++#define ENDPORT (IPPORT_RESERVED - 1) ++#define NPORTS (ENDPORT - STARTPORT + 1) ++ ++/* ++ * Read the file /etc/rpc.blacklisted, so that we don't bind ++ * to this ports. ++ */ ++ ++static int blacklist_read; ++static int *list; ++static int list_size = 0; ++ ++static void ++load_blacklist (void) ++{ ++ FILE *fp; ++ char *buf = NULL; ++ size_t buflen = 0; ++ int size = 0, ptr = 0; ++ ++ blacklist_read = 1; ++ ++ fp = fopen ("/etc/bindresvport.blacklist", "r"); ++ if (NULL == fp) ++ return; ++ ++ while (!feof (fp)) ++ { ++ unsigned long port; ++ char *tmp, *cp; ++ ssize_t n = __getline (&buf, &buflen, fp); ++ if (n < 1) ++ break; ++ ++ cp = buf; ++ tmp = strchr (cp, '#'); /* remove comments */ ++ if (tmp) ++ *tmp = '\0'; ++ while (isspace ((int)*cp)) /* remove spaces and tabs */ ++ ++cp; ++ if (*cp == '\0') /* ignore empty lines */ ++ continue; ++ if (cp[strlen (cp) - 1] == '\n') ++ cp[strlen (cp) - 1] = '\0'; ++ ++ port = strtoul (cp, &tmp, 0); ++ if (*tmp != '\0' || (port == ULONG_MAX && errno == ERANGE)) ++ continue; ++ ++ /* Don't bother with out-of-range ports */ ++ if (port < LOWPORT || port > ENDPORT) ++ continue; ++ ++ if (ptr >= size) ++ { ++ size += 10; ++ list = realloc (list, size * sizeof (int)); ++ if (list == NULL) ++ { ++ free (buf); ++ return; ++ } ++ } ++ ++ list[ptr++] = port; ++ } ++ ++ fclose (fp); ++ ++ if (buf) ++ free (buf); ++ ++ list_size = ptr; ++} ++ + /* + * Bind a socket to a privileged IP port + */ + int + bindresvport (int sd, struct sockaddr_in *sin) + { ++ static short startport = STARTPORT; + static short port; + struct sockaddr_in myaddr; + int i; + +-#define STARTPORT 600 +-#define LOWPORT 512 +-#define ENDPORT (IPPORT_RESERVED - 1) +-#define NPORTS (ENDPORT - STARTPORT + 1) +- static short startport = STARTPORT; ++ if (!blacklist_read) ++ load_blacklist (); + + if (sin == (struct sockaddr_in *) 0) + { +@@ -70,6 +148,7 @@ + port = (__getpid () % NPORTS) + STARTPORT; + } + ++ __set_errno (EADDRINUSE); + /* Initialize to make gcc happy. */ + int res = -1; + +@@ -78,12 +157,22 @@ + again: + for (i = 0; i < nports; ++i) + { +- sin->sin_port = htons (port++); +- if (port > endport) +- port = startport; ++ int j; ++ ++ sin->sin_port = htons (port); ++ ++ /* Check, if this port is not blacklisted. */ ++ for (j = 0; j < list_size; j++) ++ if (port == list[j]) ++ goto try_next_port; ++ + res = __bind (sd, sin, sizeof (struct sockaddr_in)); + if (res >= 0 || errno != EADDRINUSE) + break; ++ ++try_next_port: ++ if (++port > endport) ++ port = startport; + } + + if (i == nports && startport != LOWPORT) --- glibc-2.7.orig/debian/patches/any/cvs-getaddrinfo.diff +++ glibc-2.7/debian/patches/any/cvs-getaddrinfo.diff @@ -0,0 +1,60 @@ +2008-06-13 Ulrich Drepper + + * sysdeps/posix/getaddrinfo.c: Move _res_hconf_init call to a + better place so it is not called when nscd is used. + +2008-05-14 Ulrich Drepper + + * sysdeps/posix/getaddrinfo.c (getaddrinfo): Call _res_hconf_init + if necessary. + * posix/tst-rfc3484.c: Add dummy definition of _res_hconf_init. + * posix/tst-rfc3484-2.c: Likewise. + +--- a/posix/tst-rfc3484-2.c 2008-07-07 06:20:38.000000000 +0200 ++++ b/posix/tst-rfc3484-2.c 2008-07-07 06:22:43.000000000 +0200 +@@ -29,6 +29,11 @@ + *output = NULL; + return 0; + } ++void ++attribute_hidden ++_res_hconf_init (void) ++{ ++} + + #include "../sysdeps/posix/getaddrinfo.c" + +--- a/posix/tst-rfc3484.c 2008-07-07 06:20:38.000000000 +0200 ++++ b/posix/tst-rfc3484.c 2008-07-07 06:23:58.000000000 +0200 +@@ -29,6 +29,11 @@ + *output = NULL; + return 0; + } ++void ++attribute_hidden ++_res_hconf_init (void) ++{ ++} + + #include "../sysdeps/posix/getaddrinfo.c" + +--- a/sysdeps/posix/getaddrinfo.c 2008-07-07 06:20:38.000000000 +0200 ++++ b/sysdeps/posix/getaddrinfo.c 2008-07-07 06:23:27.000000000 +0200 +@@ -60,6 +60,7 @@ + #include + #include + #include ++#include + + #ifdef HAVE_NETLINK_ROUTE + # include +@@ -674,6 +675,9 @@ + "dns [!UNAVAIL=return] files", + &nip); + ++ /* Initialize configurations. */ ++ if (__builtin_expect (!_res_hconf.initialized, 0)) ++ _res_hconf_init (); + if (__res_maybe_init (&_res, 0) == -1) + no_more = 1; + --- glibc-2.7.orig/debian/patches/any/cvs-epoll_h.diff +++ glibc-2.7/debian/patches/any/cvs-epoll_h.diff @@ -0,0 +1,57 @@ +2008-01-12 Andreas Jaeger + + [BZ #5040] + * sysdeps/unix/sysv/linux/x86_64/sys/epoll.h (enum EPOLL_EVENTS): + Add EPOLLRDHUP. + +2007-10-27 Andreas Jaeger + + [BZ #5040] + * sysdeps/unix/sysv/linux/sys/epoll.h (EPOLLRDHUP): Add value. + +Index: sysdeps/unix/sysv/linux/x86_64/sys/epoll.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/x86_64/sys/epoll.h,v +retrieving revision 1.4 +retrieving revision 1.5 +diff -u -d -p -r1.4 -r1.5 +--- sysdeps/unix/sysv/linux/x86_64/sys/epoll.h 21 May 2007 18:23:01 -0000 1.4 ++++ sysdeps/unix/sysv/linux/x86_64/sys/epoll.h 21 Jan 2008 21:19:51 -0000 1.5 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc. ++/* Copyright (C) 2002,2003,2004,2005,2006,2007,2008 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 +@@ -53,6 +53,8 @@ enum EPOLL_EVENTS + #define EPOLLERR EPOLLERR + EPOLLHUP = 0x010, + #define EPOLLHUP EPOLLHUP ++ EPOLLRDHUP = 0x2000, ++#define EPOLLRDHUP EPOLLRDHUP + EPOLLONESHOT = (1 << 30), + #define EPOLLONESHOT EPOLLONESHOT + EPOLLET = (1 << 31) +Index: sysdeps/unix/sysv/linux/sys/epoll.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/sys/epoll.h,v +retrieving revision 1.6 +retrieving revision 1.7 +diff -u -d -p -r1.6 -r1.7 +--- sysdeps/unix/sysv/linux/sys/epoll.h 11 Oct 2006 20:19:15 -0000 1.6 ++++ sysdeps/unix/sysv/linux/sys/epoll.h 28 Oct 2007 01:33:44 -0000 1.7 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. ++/* Copyright (C) 2002-2006, 2007 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 +@@ -53,6 +53,8 @@ enum EPOLL_EVENTS + #define EPOLLERR EPOLLERR + EPOLLHUP = 0x010, + #define EPOLLHUP EPOLLHUP ++ EPOLLRDHUP = 0x2000, ++#define EPOLLRDHUP EPOLLRDHUP + EPOLLONESHOT = (1 << 30), + #define EPOLLONESHOT EPOLLONESHOT + EPOLLET = (1 << 31) --- glibc-2.7.orig/debian/patches/any/local-ldconfig.diff +++ glibc-2.7/debian/patches/any/local-ldconfig.diff @@ -0,0 +1,68 @@ +# DP: Make it so that a missing /etc/ld.so.conf does not cause an error +# DP: message, unless --verbose is enabled. This keeps the debian +# DP: installer from barfing during bootstrap of the system. +# DP: +# DP: Updated by gotom, the previous one seems being wrong because it supresses +# DP: _all_ warnings about "can't open configuration file". otoh, I introduce +# DP: newer patches. it should be checked using chroot and should be contacted +# DP: to the upstream. +# DP: Date: (Updated 2005-01-02 gotom) + +# previous patch. +#--- elf/ldconfig.c 2003-07-08 23:26:27.000000000 +0900 +#+++ elf/ldconfig.c.debian 2003-07-08 23:29:43.000000000 +0900 +#@@ -920,26 +920,24 @@ +# { +# FILE *file = NULL; +# char *line = NULL; +#- const char *canon; +#+ const char *canon = filename; +# size_t len = 0; +#+ int file_fd; +# +# if (opt_chroot) +# { +# canon = chroot_canon (opt_chroot, filename); +#- if (canon) +#- file = fopen (canon, "r"); +#- else +#+ if (!canon) +# canon = filename; +# } +#- else +#- { +#- canon = filename; +#- file = fopen (filename, "r"); +#- } +#+ +#+ if ((file_fd = open(canon, O_RDONLY | O_EXCL, 0022)) != -1) +#+ file = fdopen (file_fd, "r"); +# +# if (file == NULL) +# { +#- error (0, errno, _("Can't open configuration file %s"), canon); +#+ if (opt_verbose) +#+ error (0, errno, _("Can't open configuration file %s"), canon); +# if (canon != filename) +# free ((char *) canon); +# return; + +2004-10-25 GOTO Masanori + + * elf/ldconfig.c: Don't print error when default ld.so.conf + is not existed. + +Index: elf/ldconfig.c +=================================================================== +--- elf/ldconfig.c.orig 2007-10-23 08:49:30.000000000 -0400 ++++ elf/ldconfig.c 2007-10-23 08:50:13.000000000 -0400 +@@ -1032,7 +1032,8 @@ + + if (file == NULL) + { +- error (0, errno, _("Can't open configuration file %s"), canon); ++ if (strcmp(canon, LD_SO_CONF) != 0 || opt_verbose) ++ error (0, errno, _("Can't open configuration file %s"), canon); + if (canon != filename) + free ((char *) canon); + return; --- glibc-2.7.orig/debian/patches/any/cvs-sched_h.diff +++ glibc-2.7/debian/patches/any/cvs-sched_h.diff @@ -0,0 +1,89 @@ +2007-12-06 Aurelien Jarno + + [BZ #5452] + * sysdeps/unix/sysv/linux/bits/sched.h: Use __extension__ + keyword for gcc's braced-groups. + +Index: sysdeps/unix/sysv/linux/bits/sched.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/bits/sched.h,v +retrieving revision 1.28 +retrieving revision 1.29 +diff -u -d -p -r1.28 -r1.29 +--- sysdeps/unix/sysv/linux/bits/sched.h 29 Jul 2007 22:42:51 -0000 1.28 ++++ sysdeps/unix/sysv/linux/bits/sched.h 7 Dec 2007 16:36:43 -0000 1.29 +@@ -132,17 +132,21 @@ typedef struct + } while (0) + # endif + # define __CPU_SET_S(cpu, setsize, cpusetp) \ +- ({ size_t __cpu = (cpu); \ +- __cpu < 8 * (setsize) \ +- ? ((cpusetp)->__bits[__CPUELT (__cpu)] |= __CPUMASK (__cpu)) : 0; }) ++ (__extension__ \ ++ ({ size_t __cpu = (cpu); \ ++ __cpu < 8 * (setsize) \ ++ ? ((cpusetp)->__bits[__CPUELT (__cpu)] |= __CPUMASK (__cpu)) : 0; })) + # define __CPU_CLR_S(cpu, setsize, cpusetp) \ +- ({ size_t __cpu = (cpu); \ +- __cpu < 8 * (setsize) \ +- ? ((cpusetp)->__bits[__CPUELT (__cpu)] &= ~__CPUMASK (__cpu)) : 0; }) ++ (__extension__ \ ++ ({ size_t __cpu = (cpu); \ ++ __cpu < 8 * (setsize) \ ++ ? ((cpusetp)->__bits[__CPUELT (__cpu)] &= ~__CPUMASK (__cpu)) : 0; })) + # define __CPU_ISSET_S(cpu, setsize, cpusetp) \ +- ({ size_t __cpu = (cpu); \ +- __cpu < 8 * (setsize) \ +- ? (((cpusetp)->__bits[__CPUELT (__cpu)] & __CPUMASK (__cpu))) != 0 : 0; }) ++ (__extension__ \ ++ ({ size_t __cpu = (cpu); \ ++ __cpu < 8 * (setsize) \ ++ ? (((cpusetp)->__bits[__CPUELT (__cpu)] & __CPUMASK (__cpu))) != 0 \ ++ : 0; })) + + # define __CPU_COUNT_S(setsize, cpusetp) \ + __sched_cpucount (setsize, cpusetp) +@@ -152,25 +156,27 @@ typedef struct + (__builtin_memcmp (cpusetp1, cpusetp2, setsize) == 0) + # else + # define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \ +- ({ cpu_set_t *__arr1 = (cpusetp1); \ +- cpu_set_t *__arr2 = (cpusetp2); \ +- size_t __imax = (setsize) / sizeof (__cpu_mask); \ +- size_t __i; \ +- for (__i = 0; __i < __imax; ++__i) \ +- if (__arr1->__bits[__i] != __arr2->__bits[__i]) \ +- break; \ +- __i == __imax; }) ++ (__extension__ \ ++ ({ cpu_set_t *__arr1 = (cpusetp1); \ ++ cpu_set_t *__arr2 = (cpusetp2); \ ++ size_t __imax = (setsize) / sizeof (__cpu_mask); \ ++ size_t __i; \ ++ for (__i = 0; __i < __imax; ++__i) \ ++ if (__arr1->__bits[__i] != __arr2->__bits[__i]) \ ++ break; \ ++ __i == __imax; })) + # endif + + # define __CPU_OP_S(setsize, destset, srcset1, srcset2, op) \ +- ({ cpu_set_t *__dest = (destset); \ +- cpu_set_t *__arr1 = (srcset1); \ +- cpu_set_t *__arr2 = (srcset2); \ +- size_t __imax = (setsize) / sizeof (__cpu_mask); \ +- size_t __i; \ +- for (__i = 0; __i < __imax; ++__i) \ +- __dest->__bits[__i] = __arr1->__bits[__i] op __arr2->__bits[__i]; \ +- __dest; }) ++ (__extension__ \ ++ ({ cpu_set_t *__dest = (destset); \ ++ cpu_set_t *__arr1 = (srcset1); \ ++ cpu_set_t *__arr2 = (srcset2); \ ++ size_t __imax = (setsize) / sizeof (__cpu_mask); \ ++ size_t __i; \ ++ for (__i = 0; __i < __imax; ++__i) \ ++ __dest->__bits[__i] = __arr1->__bits[__i] op __arr2->__bits[__i]; \ ++ __dest; })) + + # define __CPU_ALLOC_SIZE(count) \ + ((((count) + __NCPUBITS - 1) / __NCPUBITS) * 8) --- glibc-2.7.orig/debian/patches/any/local-asserth-decls.diff +++ glibc-2.7/debian/patches/any/local-asserth-decls.diff @@ -0,0 +1,32 @@ +# DP: Description: /usr/include/assert.h +# DP: One must be allowed to include multiple times with different +# DP: values for NDEBUG, so the file is not protected against multiple +# DP: inclusions. Unfortunately this means that the declarations for +# DP: __assert_fail() and the like may occur multiple times in a compilation +# DP: unit, causing gcc to issue a batch of warnings. +# DP: I believe this can be fixed by protecting the declarations (but only +# DP: those declarations) against repetition. +# DP: Author: Jeroen T. Vermeulen +# DP: Upstream status: Not submitted +# DP: Status Details: Plan to submit +# DP: Date: 2003-01-01 + +--- assert/assert.h.orig ++++ assert/assert.h +@@ -63,6 +63,8 @@ + + #else /* Not NDEBUG. */ + ++#ifndef _ASSERT_H_DECLS ++#define _ASSERT_H_DECLS + __BEGIN_DECLS + + /* This prints an "Assertion failed" message and aborts. */ +@@ -84,6 +86,7 @@ + + + __END_DECLS ++#endif /* Not _ASSERT_H_DECLS */ + + # define assert(expr) \ + ((expr) \ --- glibc-2.7.orig/debian/patches/any/git-fix-dtag-cast.diff +++ glibc-2.7/debian/patches/any/git-fix-dtag-cast.diff @@ -0,0 +1,46 @@ +Description: fix casting of headers to avoid integer underflows (CVE-2010-0830). +Bug-Ubuntu: https://launchpad.net/bugs/542197 +Origin: http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=db07e962b6ea963dbb345439f6ab9b0cf74d87c5 + +Index: eglibc-2.11.1/elf/dynamic-link.h +=================================================================== +--- eglibc-2.11.1.orig/elf/dynamic-link.h 2010-05-19 15:18:45.251633258 -0700 ++++ eglibc-2.11.1/elf/dynamic-link.h 2010-05-19 15:19:34.772884204 -0700 +@@ -103,6 +103,11 @@ + { + ElfW(Dyn) *dyn = l->l_ld; + ElfW(Dyn) **info; ++#if __ELF_NATIVE_CLASS == 32 ++ typedef Elf32_Word d_tag_utype; ++#elif __ELF_NATIVE_CLASS == 64 ++ typedef Elf64_Xword d_tag_utype; ++#endif + + #ifndef RTLD_BOOTSTRAP + if (dyn == NULL) +@@ -113,20 +118,20 @@ + + while (dyn->d_tag != DT_NULL) + { +- if (dyn->d_tag < DT_NUM) ++ if ((d_tag_utype) dyn->d_tag < DT_NUM) + info[dyn->d_tag] = dyn; + else if (dyn->d_tag >= DT_LOPROC && + dyn->d_tag < DT_LOPROC + DT_THISPROCNUM) + info[dyn->d_tag - DT_LOPROC + DT_NUM] = dyn; +- else if ((Elf32_Word) DT_VERSIONTAGIDX (dyn->d_tag) < DT_VERSIONTAGNUM) ++ else if ((d_tag_utype) DT_VERSIONTAGIDX (dyn->d_tag) < DT_VERSIONTAGNUM) + info[VERSYMIDX (dyn->d_tag)] = dyn; +- else if ((Elf32_Word) DT_EXTRATAGIDX (dyn->d_tag) < DT_EXTRANUM) ++ else if ((d_tag_utype) DT_EXTRATAGIDX (dyn->d_tag) < DT_EXTRANUM) + info[DT_EXTRATAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM + + DT_VERSIONTAGNUM] = dyn; +- else if ((Elf32_Word) DT_VALTAGIDX (dyn->d_tag) < DT_VALNUM) ++ else if ((d_tag_utype) DT_VALTAGIDX (dyn->d_tag) < DT_VALNUM) + info[DT_VALTAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM + + DT_VERSIONTAGNUM + DT_EXTRANUM] = dyn; +- else if ((Elf32_Word) DT_ADDRTAGIDX (dyn->d_tag) < DT_ADDRNUM) ++ else if ((d_tag_utype) DT_ADDRTAGIDX (dyn->d_tag) < DT_ADDRNUM) + info[DT_ADDRTAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM + + DT_VERSIONTAGNUM + DT_EXTRANUM + DT_VALNUM] = dyn; + ++dyn; --- glibc-2.7.orig/debian/patches/any/local-o_cloexec.diff +++ glibc-2.7/debian/patches/any/local-o_cloexec.diff @@ -0,0 +1,18 @@ +--- sysdeps/unix/opendir.c 2007-08-04 19:21:10.000000000 +0200 ++++ sysdeps/unix/opendir.c 2007-10-25 21:22:11.000000000 +0200 +@@ -146,6 +146,7 @@ + #ifdef __ASSUME_O_CLOEXEC + # define check_have_o_cloexec(fd) 1 + #else ++#ifdef O_CLOEXEC + static int + check_have_o_cloexec (int fd) + { +@@ -154,6 +155,7 @@ + return __have_o_cloexec > 0; + } + #endif ++#endif + + + DIR * --- glibc-2.7.orig/debian/patches/any/cvs-rfc3484.diff +++ glibc-2.7/debian/patches/any/cvs-rfc3484.diff @@ -0,0 +1,756 @@ +2008-01-02 Ulrich Drepper + + * sysdeps/unix/sysv/linux/check_pf.c (make_request): Fix + recognition of interface family. + +2007-11-19 Ulrich Drepper + + * sysdeps/posix/getaddrinfo.c (defaults_scopes, scopes): New variables. + (get_scope): For IPv4 scope, use scopes table. + (fini): Free scopes table if necessary. + (free_scopelist): New function. + (scopecmp): New function. + (gaiconf_init): Also handle scopev4 entries. + +2007-11-12 Ulrich Drepper + + * include/ifaddrs.c (struct in6addrinfo): Add prefixlen field. + * sysdeps/unix/sysv/linux/check_pf.c (make_request): Always return + list of interfaces. Also store prefix length. + * sysdeps/posix/getaddrinfo.c (sort_result): Add prefixlen element. + (rfc3484_sort): In rule 9, for IPv4 addresses count only matching + prefix if source and destination address are in the same subnet. + (getaddrinfo): Always call __check_pf. Fill in prefixlen field. + Always look for matching record in in6ai list. + Correct source_addr_len value for IPv6->IPv4 converted records. + +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/posix/getaddrinfo.c,v +retrieving revision 1.117 +retrieving revision 1.118 +diff -u -r1.117 -r1.118 +--- libc/sysdeps/posix/getaddrinfo.c 2007/10/17 16:05:12 1.117 ++++ libc/sysdeps/posix/getaddrinfo.c 2007/11/12 23:55:45 1.118 +@@ -1006,6 +1006,7 @@ + uint8_t source_addr_len; + bool got_source_addr; + uint8_t source_addr_flags; ++ uint8_t prefixlen; + }; + + +@@ -1223,7 +1224,7 @@ + fls (uint32_t a) + { + uint32_t mask; +- int n = 0; ++ int n; + for (n = 0, mask = 1 << 31; n < 32; mask >>= 1, ++n) + if ((a & mask) != 0) + break; +@@ -1350,20 +1351,31 @@ + assert (a1->source_addr.ss_family == PF_INET); + assert (a2->source_addr.ss_family == PF_INET); + +- struct sockaddr_in *in1_dst; +- struct sockaddr_in *in1_src; +- struct sockaddr_in *in2_dst; +- struct sockaddr_in *in2_src; +- +- in1_dst = (struct sockaddr_in *) a1->dest_addr->ai_addr; +- in1_src = (struct sockaddr_in *) &a1->source_addr; +- in2_dst = (struct sockaddr_in *) a2->dest_addr->ai_addr; +- in2_src = (struct sockaddr_in *) &a2->source_addr; +- +- bit1 = fls (ntohl (in1_dst->sin_addr.s_addr +- ^ in1_src->sin_addr.s_addr)); +- bit2 = fls (ntohl (in2_dst->sin_addr.s_addr +- ^ in2_src->sin_addr.s_addr)); ++ /* Outside of subnets, as defined by the network masks, ++ common address prefixes for IPv4 addresses make no sense. ++ So, define a non-zero value only if source and ++ destination address are on the same subnet. */ ++ struct sockaddr_in *in1_dst ++ = (struct sockaddr_in *) a1->dest_addr->ai_addr; ++ in_addr_t in1_dst_addr = ntohl (in1_dst->sin_addr.s_addr); ++ struct sockaddr_in *in1_src ++ = (struct sockaddr_in *) &a1->source_addr; ++ in_addr_t in1_src_addr = ntohl (in1_src->sin_addr.s_addr); ++ in_addr_t netmask1 = 0xffffffffu << (32 - a1->prefixlen); ++ ++ if ((in1_src_addr & netmask1) == (in1_dst_addr & netmask1)) ++ bit1 = fls (in1_dst_addr ^ in1_src_addr); ++ ++ struct sockaddr_in *in2_dst ++ = (struct sockaddr_in *) a2->dest_addr->ai_addr; ++ in_addr_t in2_dst_addr = ntohl (in2_dst->sin_addr.s_addr); ++ struct sockaddr_in *in2_src ++ = (struct sockaddr_in *) &a2->source_addr; ++ in_addr_t in2_src_addr = ntohl (in2_src->sin_addr.s_addr); ++ in_addr_t netmask2 = 0xffffffffu << (32 - a2->prefixlen); ++ ++ if ((in2_src_addr & netmask2) == (in2_dst_addr & netmask2)) ++ bit2 = fls (in2_dst_addr ^ in2_src_addr); + } + else if (a1->dest_addr->ai_family == PF_INET6) + { +@@ -1799,63 +1811,42 @@ + int sockfd = -1; + pid_t nl_pid; + #endif +- /* We might need information about what kind of interfaces are available. +- But even if AI_ADDRCONFIG is not used, if the user requested IPv6 +- addresses we have to know whether an address is deprecated or +- temporary. */ +- if ((hints->ai_flags & AI_ADDRCONFIG) || hints->ai_family == PF_UNSPEC +- || hints->ai_family == PF_INET6) +- { +- /* Determine whether we have IPv4 or IPv6 interfaces or both. We +- cannot cache the results since new interfaces could be added at +- any time. */ +- __check_pf (&seen_ipv4, &seen_ipv6, &in6ai, &in6ailen); ++ /* We might need information about what interfaces are available. ++ Also determine whether we have IPv4 or IPv6 interfaces or both. We ++ cannot cache the results since new interfaces could be added at ++ any time. */ ++ __check_pf (&seen_ipv4, &seen_ipv6, &in6ai, &in6ailen); + #ifdef HAVE_NETLINK_ROUTE +- if (! __no_netlink_support) +- { +- sockfd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE); +- +- struct sockaddr_nl nladdr; +- memset (&nladdr, '\0', sizeof (nladdr)); +- nladdr.nl_family = AF_NETLINK; +- +- socklen_t addr_len = sizeof (nladdr); +- +- if (sockfd >= 0 +- && __bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0 +- && __getsockname (sockfd, (struct sockaddr *) &nladdr, +- &addr_len) == 0 +- && make_request (sockfd, nladdr.nl_pid, &seen_ipv4, &seen_ipv6, +- in6ai, in6ailen) == 0) +- { +- /* It worked. */ +- nl_pid = nladdr.nl_pid; +- goto got_netlink_socket; +- } ++ if (! __no_netlink_support) ++ { ++ sockfd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE); + +- if (sockfd >= 0) +- close_not_cancel_no_status (sockfd); ++ struct sockaddr_nl nladdr; ++ memset (&nladdr, '\0', sizeof (nladdr)); ++ nladdr.nl_family = AF_NETLINK; ++ ++ socklen_t addr_len = sizeof (nladdr); ++ ++ if (sockfd >= 0 ++ && __bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0 ++ && __getsockname (sockfd, (struct sockaddr *) &nladdr, ++ &addr_len) == 0 ++ && make_request (sockfd, nladdr.nl_pid, &seen_ipv4, &seen_ipv6, ++ in6ai, in6ailen) == 0) ++ { ++ /* It worked. */ ++ nl_pid = nladdr.nl_pid; ++ goto got_netlink_socket; ++ } + +-#if __ASSUME_NETLINK_SUPPORT == 0 +- /* Remember that there is no netlink support. */ +- if (errno != EMFILE && errno != ENFILE) +- __no_netlink_support = 1; +-#else +- else +- { +- if (errno != EMFILE && errno != ENFILE) +- sockfd = -2; ++ if (sockfd >= 0) ++ close_not_cancel_no_status (sockfd); + +- /* We cannot determine what interfaces are available. Be +- pessimistic. */ +- seen_ipv4 = true; +- seen_ipv6 = true; +- return; +- } +-#endif +- } +-#endif ++ /* Remember that there is no netlink support. */ ++ if (errno != EMFILE && errno != ENFILE) ++ __no_netlink_support = 1; + } ++#endif + + #ifdef HAVE_NETLINK_ROUTE + got_netlink_socket: +@@ -1958,7 +1949,6 @@ + for (i = 0, q = p; q != NULL; ++i, last = q, q = q->ai_next) + { + results[i].dest_addr = q; +- results[i].got_source_addr = false; + results[i].service_order = i; + + /* If we just looked up the address for a different +@@ -1971,10 +1961,13 @@ + results[i].source_addr_len = results[i - 1].source_addr_len; + results[i].got_source_addr = results[i - 1].got_source_addr; + results[i].source_addr_flags = results[i - 1].source_addr_flags; ++ results[i].prefixlen = results[i - 1].prefixlen; + } + else + { ++ results[i].got_source_addr = false; + results[i].source_addr_flags = 0; ++ results[i].prefixlen = 0; + + /* We overwrite the type with SOCK_DGRAM since we do not + want connect() to connect to the other side. If we +@@ -2005,22 +1998,39 @@ + results[i].source_addr_len = sl; + results[i].got_source_addr = true; + +- if (q->ai_family == AF_INET6 && in6ai != NULL) ++ if (in6ai != NULL) + { + /* See whether the source address is on the list of + deprecated or temporary addresses. */ + struct in6addrinfo tmp; +- struct sockaddr_in6 *sin6p +- = (struct sockaddr_in6 *) &results[i].source_addr; +- memcpy (tmp.addr, &sin6p->sin6_addr, IN6ADDRSZ); ++ ++ if (q->ai_family == AF_INET && af == AF_INET) ++ { ++ struct sockaddr_in *sinp ++ = (struct sockaddr_in *) &results[i].source_addr; ++ tmp.addr[0] = 0; ++ tmp.addr[1] = 0; ++ tmp.addr[2] = htonl (0xffff); ++ tmp.addr[3] = sinp->sin_addr.s_addr; ++ } ++ else ++ { ++ struct sockaddr_in6 *sin6p ++ = (struct sockaddr_in6 *) &results[i].source_addr; ++ memcpy (tmp.addr, &sin6p->sin6_addr, IN6ADDRSZ); ++ } + + struct in6addrinfo *found + = bsearch (&tmp, in6ai, in6ailen, sizeof (*in6ai), + in6aicmp); + if (found != NULL) +- results[i].source_addr_flags = found->flags; ++ { ++ results[i].source_addr_flags = found->flags; ++ results[i].prefixlen = found->prefixlen; ++ } + } +- else if (q->ai_family == AF_INET && af == AF_INET6) ++ ++ if (q->ai_family == AF_INET && af == AF_INET6) + { + /* We have to convert the address. The socket is + IPv6 and the request is for IPv4. */ +@@ -2029,10 +2039,17 @@ + struct sockaddr_in *sin + = (struct sockaddr_in *) &results[i].source_addr; + assert (IN6_IS_ADDR_V4MAPPED (sin6->sin6_addr.s6_addr32)); ++ sin->sin_family = AF_INET; ++ /* We do not have to initialize sin_port since this ++ fields has the same position and size in the IPv6 ++ structure. */ ++ assert (offsetof (struct sockaddr_in, sin_port) ++ == offsetof (struct sockaddr_in6, sin6_port)); ++ assert (sizeof (sin->sin_port) ++ == sizeof (sin6->sin6_port)); + memcpy (&sin->sin_addr, + &sin6->sin6_addr.s6_addr32[3], INADDRSZ); +- results[i].source_addr_len = INADDRSZ; +- sin->sin_family = AF_INET; ++ results[i].source_addr_len = sizeof (struct sockaddr_in); + } + } + else if (errno == EAFNOSUPPORT && af == AF_INET6 +=================================================================== +RCS file: /cvs/glibc/libc/include/ifaddrs.h,v +retrieving revision 1.5 +retrieving revision 1.6 +diff -u -r1.5 -r1.6 +--- libc/include/ifaddrs.h 2006/09/24 16:49:19 1.5 ++++ libc/include/ifaddrs.h 2007/11/12 23:55:15 1.6 +@@ -12,7 +12,9 @@ + in6ai_deprecated = 1, + in6ai_temporary = 2, + in6ai_homeaddress = 4 +- } flags; ++ } flags:8; ++ uint8_t prefixlen; ++ uint16_t :16; + uint32_t addr[4]; + }; + +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/check_pf.c,v +retrieving revision 1.12 +retrieving revision 1.13 +diff -u -r1.12 -r1.13 +--- libc/sysdeps/unix/sysv/linux/check_pf.c 2007/08/29 16:49:45 1.12 ++++ libc/sysdeps/unix/sysv/linux/check_pf.c 2007/11/12 23:55:31 1.13 +@@ -145,92 +145,69 @@ + struct rtattr *rta = IFA_RTA (ifam); + size_t len = nlmh->nlmsg_len - NLMSG_LENGTH (sizeof (*ifam)); + +- switch (ifam->ifa_family) ++ if (ifam->ifa_family != AF_INET ++ && ifam->ifa_family != AF_INET6) ++ continue; ++ ++ const void *local = NULL; ++ const void *address = NULL; ++ while (RTA_OK (rta, len)) + { +- const void *local; +- const void *address; +- +- case AF_INET: +- local = NULL; +- address = NULL; +- while (RTA_OK (rta, len)) ++ switch (rta->rta_type) + { +- switch (rta->rta_type) +- { +- case IFA_LOCAL: +- local = RTA_DATA (rta); +- break; +- +- case IFA_ADDRESS: +- address = RTA_DATA (rta); +- goto out_v4; +- } +- +- rta = RTA_NEXT (rta, len); ++ case IFA_LOCAL: ++ local = RTA_DATA (rta); ++ break; ++ ++ case IFA_ADDRESS: ++ address = RTA_DATA (rta); ++ goto out; + } + +- if (local != NULL) ++ rta = RTA_NEXT (rta, len); ++ } ++ ++ if (local != NULL) ++ { ++ address = local; ++ out: ++ if (ifam->ifa_family == AF_INET) + { +- out_v4: +- if (*(const in_addr_t *) (address ?: local) ++ if (*(const in_addr_t *) address + != htonl (INADDR_LOOPBACK)) + *seen_ipv4 = true; + } +- break; +- +- case AF_INET6: +- local = NULL; +- address = NULL; +- while (RTA_OK (rta, len)) +- { +- switch (rta->rta_type) +- { +- case IFA_LOCAL: +- local = RTA_DATA (rta); +- break; +- +- case IFA_ADDRESS: +- address = RTA_DATA (rta); +- goto out_v6; +- } +- +- rta = RTA_NEXT (rta, len); +- } +- +- if (local != NULL) ++ else + { +- out_v6: +- if (!IN6_IS_ADDR_LOOPBACK (address ?: local)) ++ if (!IN6_IS_ADDR_LOOPBACK (address)) + *seen_ipv6 = true; + } ++ } + +- if (ifam->ifa_flags & (IFA_F_DEPRECATED +- | IFA_F_TEMPORARY +- | IFA_F_HOMEADDRESS +- | IFA_F_OPTIMISTIC)) +- { +- struct in6ailist *newp = alloca (sizeof (*newp)); +- newp->info.flags = (((ifam->ifa_flags +- & (IFA_F_DEPRECATED +- | IFA_F_OPTIMISTIC)) +- ? in6ai_deprecated : 0) +- | ((ifam->ifa_flags +- & IFA_F_TEMPORARY) +- ? in6ai_temporary : 0) +- | ((ifam->ifa_flags +- & IFA_F_HOMEADDRESS) +- ? in6ai_homeaddress : 0)); +- memcpy (newp->info.addr, address ?: local, +- sizeof (newp->info.addr)); +- newp->next = in6ailist; +- in6ailist = newp; +- ++in6ailistlen; +- } +- break; +- default: +- /* Ignore. */ +- break; ++ struct in6ailist *newp = alloca (sizeof (*newp)); ++ newp->info.flags = (((ifam->ifa_flags ++ & (IFA_F_DEPRECATED ++ | IFA_F_OPTIMISTIC)) ++ ? in6ai_deprecated : 0) ++ | ((ifam->ifa_flags ++ & IFA_F_TEMPORARY) ++ ? in6ai_temporary : 0) ++ | ((ifam->ifa_flags ++ & IFA_F_HOMEADDRESS) ++ ? in6ai_homeaddress : 0)); ++ newp->info.prefixlen = ifam->ifa_prefixlen; ++ if (ifam->ifa_family == AF_INET) ++ { ++ newp->info.addr[0] = 0; ++ newp->info.addr[1] = 0; ++ newp->info.addr[2] = htonl (0xffff); ++ newp->info.addr[3] = *(const in_addr_t *) address; + } ++ else ++ memcpy (newp->info.addr, address, sizeof (newp->info.addr)); ++ newp->next = in6ailist; ++ in6ailist = newp; ++ ++in6ailistlen; + } + else if (nlmh->nlmsg_type == NLMSG_DONE) + /* We found the end, leave the loop. */ +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/posix/getaddrinfo.c,v +retrieving revision 1.120 +retrieving revision 1.121 +diff -u -r1.120 -r1.121 +--- libc/sysdeps/posix/getaddrinfo.c 2007/11/19 17:31:28 1.120 ++++ libc/sysdeps/posix/getaddrinfo.c 2007/11/20 00:40:41 1.121 +@@ -1014,6 +1014,38 @@ + }; + + ++#if __BYTE_ORDER == __BIG_ENDIAN ++# define htonl_c(n) n ++#else ++# define htonl_c(n) __bswap_constant_32 (n) ++#endif ++ ++static const struct scopeentry ++{ ++ union ++ { ++ char addr[4]; ++ uint32_t addr32; ++ }; ++ uint32_t netmask; ++ int32_t scope; ++} default_scopes[] = ++ { ++ /* Link-local addresses: scope 2. */ ++ { { { 169, 254, 0, 0 } }, htonl_c (0xffff0000), 2 }, ++ { { { 127, 0, 0, 0 } }, htonl_c (0xff000000), 2 }, ++ /* Site-local addresses: scope 5. */ ++ { { { 10, 0, 0, 0 } }, htonl_c (0xff000000), 5 }, ++ { { { 172, 16, 0, 0 } }, htonl_c (0xfff00000), 5 }, ++ { { { 192, 168, 0, 0 } }, htonl_c (0xffff0000), 5 }, ++ /* Default: scope 14. */ ++ { { { 0, 0, 0, 0 } }, htonl_c (0x00000000), 14 } ++ }; ++ ++/* The label table. */ ++static const struct scopeentry *scopes; ++ ++ + static int + get_scope (const struct sockaddr_storage *ss) + { +@@ -1038,17 +1070,17 @@ + else if (ss->ss_family == PF_INET) + { + const struct sockaddr_in *in = (const struct sockaddr_in *) ss; +- const uint8_t *addr = (const uint8_t *) &in->sin_addr; + +- /* RFC 3484 specifies how to map IPv6 addresses to scopes. +- 169.254/16 and 127/8 are link-local. */ +- if ((addr[0] == 169 && addr[1] == 254) || addr[0] == 127) +- scope = 2; +- else if (addr[0] == 10 || (addr[0] == 172 && (addr[1] & 0xf0) == 16) +- || (addr[0] == 192 && addr[1] == 168)) +- scope = 5; +- else +- scope = 14; ++ size_t cnt = 0; ++ while (1) ++ { ++ if ((in->sin_addr.s_addr & scopes[cnt].netmask) ++ == scopes[cnt].addr32) ++ return scopes[cnt].scope; ++ ++ ++cnt; ++ } ++ /* NOTREACHED */ + } + else + /* XXX What is a good default? */ +@@ -1490,6 +1522,13 @@ + precedence = default_precedence; + free ((void *) old); + } ++ ++ if (scopes != default_scopes) ++ { ++ const struct scopeentry *old = scopes; ++ scopes = default_scopes; ++ free ((void *) old); ++ } + } + + +@@ -1500,6 +1539,13 @@ + }; + + ++struct scopelist ++{ ++ struct scopeentry entry; ++ struct scopelist *next; ++}; ++ ++ + static void + free_prefixlist (struct prefixlist *list) + { +@@ -1512,6 +1558,18 @@ + } + + ++static void ++free_scopelist (struct scopelist *list) ++{ ++ while (list != NULL) ++ { ++ struct scopelist *oldp = list; ++ list = list->next; ++ free (oldp); ++ } ++} ++ ++ + static int + prefixcmp (const void *p1, const void *p2) + { +@@ -1526,6 +1584,20 @@ + } + + ++static int ++scopecmp (const void *p1, const void *p2) ++{ ++ const struct scopeentry *e1 = (const struct scopeentry *) p1; ++ const struct scopeentry *e2 = (const struct scopeentry *) p2; ++ ++ if (e1->netmask > e2->netmask) ++ return -1; ++ if (e1->netmask == e2->netmask) ++ return 0; ++ return 1; ++} ++ ++ + static void + gaiconf_init (void) + { +@@ -1535,6 +1607,9 @@ + struct prefixlist *precedencelist = NULL; + size_t nprecedencelist = 0; + bool precedencelist_nullbits = false; ++ struct scopelist *scopelist = NULL; ++ size_t nscopelist = 0; ++ bool scopelist_nullbits = false; + + FILE *fp = fopen (GAICONF_FNAME, "rc"); + if (fp != NULL) +@@ -1625,7 +1700,7 @@ + || (bits = strtoul (cp, &endp, 10)) != ULONG_MAX + || errno != ERANGE) + && *endp == '\0' +- && bits <= INT_MAX ++ && bits <= 128 + && ((val = strtoul (val2, &endp, 10)) != ULONG_MAX + || errno != ERANGE) + && *endp == '\0' +@@ -1659,6 +1734,73 @@ + } + break; + ++ case 7: ++ if (strcmp (cmd, "scopev4") == 0) ++ { ++ struct in6_addr prefix; ++ unsigned long int bits; ++ unsigned long int val; ++ char *endp; ++ ++ bits = 32; ++ __set_errno (0); ++ cp = strchr (val1, '/'); ++ if (cp != NULL) ++ *cp++ = '\0'; ++ if (inet_pton (AF_INET6, val1, &prefix)) ++ { ++ if (IN6_IS_ADDR_V4MAPPED (&prefix) ++ && (cp == NULL ++ || (bits = strtoul (cp, &endp, 10)) != ULONG_MAX ++ || errno != ERANGE) ++ && *endp == '\0' ++ && bits >= 96 ++ && bits <= 128 ++ && ((val = strtoul (val2, &endp, 10)) != ULONG_MAX ++ || errno != ERANGE) ++ && *endp == '\0' ++ && val <= INT_MAX) ++ { ++ struct scopelist *newp; ++ new_scope: ++ newp = malloc (sizeof (*newp)); ++ if (newp == NULL) ++ { ++ free (line); ++ fclose (fp); ++ goto no_file; ++ } ++ ++ newp->entry.netmask = htonl (bits != 96 ++ ? (0xffffffff ++ << (128 - bits)) ++ : 0); ++ newp->entry.addr32 = (prefix.s6_addr32[3] ++ & newp->entry.netmask); ++ newp->entry.scope = val; ++ newp->next = scopelist; ++ scopelist = newp; ++ ++nscopelist; ++ scopelist_nullbits |= bits == 96; ++ } ++ } ++ else if (inet_pton (AF_INET, val1, &prefix.s6_addr32[3]) ++ && (cp == NULL ++ || (bits = strtoul (cp, &endp, 10)) != ULONG_MAX ++ || errno != ERANGE) ++ && *endp == '\0' ++ && bits <= 32 ++ && ((val = strtoul (val2, &endp, 10)) != ULONG_MAX ++ || errno != ERANGE) ++ && *endp == '\0' ++ && val <= INT_MAX) ++ { ++ bits += 96; ++ goto new_scope; ++ } ++ } ++ break; ++ + case 10: + if (strcmp (cmd, "precedence") == 0) + { +@@ -1742,12 +1884,52 @@ + + /* Sort the entries so that the most specific ones are at + the beginning. */ +- qsort (new_precedence, nprecedencelist, sizeof (*new_labels), ++ qsort (new_precedence, nprecedencelist, sizeof (*new_precedence), + prefixcmp); + } + else + new_precedence = (struct prefixentry *) default_precedence; + ++ struct scopeentry *new_scopes; ++ if (nscopelist > 0) ++ { ++ if (!scopelist_nullbits) ++ ++nscopelist; ++ new_scopes = malloc (nscopelist * sizeof (*new_scopes)); ++ if (new_scopes == NULL) ++ { ++ if (new_labels != default_labels) ++ free (new_labels); ++ if (new_precedence != default_precedence) ++ free (new_precedence); ++ goto no_file; ++ } ++ ++ int i = nscopelist; ++ if (!scopelist_nullbits) ++ { ++ --i; ++ new_scopes[i].addr32 = 0; ++ new_scopes[i].netmask = 0; ++ new_scopes[i].scope = 14; ++ } ++ ++ struct scopelist *l = scopelist; ++ while (i-- > 0) ++ { ++ new_scopes[i] = l->entry; ++ l = l->next; ++ } ++ free_scopelist (scopelist); ++ ++ /* Sort the entries so that the most specific ones are at ++ the beginning. */ ++ qsort (new_scopes, nscopelist, sizeof (*new_scopes), ++ scopecmp); ++ } ++ else ++ new_scopes = (struct scopeentry *) default_scopes; ++ + /* Now we are ready to replace the values. */ + const struct prefixentry *old = labels; + labels = new_labels; +@@ -1759,6 +1941,11 @@ + if (old != default_precedence) + free ((void *) old); + ++ const struct scopeentry *oldscope = scopes; ++ scopes = new_scopes; ++ if (oldscope != default_scopes) ++ free ((void *) oldscope); ++ + gaiconf_mtime = st.st_mtim; + } + else +@@ -1766,6 +1953,7 @@ + no_file: + free_prefixlist (labellist); + free_prefixlist (precedencelist); ++ free_scopelist (scopelist); + + /* If we previously read the file but it is gone now, free the + old data and use the builtin one. Leave the reload flag --- glibc-2.7.orig/debian/patches/any/local-stdio-lock.diff +++ glibc-2.7/debian/patches/any/local-stdio-lock.diff @@ -0,0 +1,28 @@ +--- bits/stdio-lock.h 2007-10-26 10:02:04.000000000 +0200 ++++ bits/stdio-lock.h 2007-10-26 12:17:36.000000000 +0200 +@@ -47,12 +47,21 @@ + + #if defined _LIBC && !defined NOT_IN_libc + # define _IO_acquire_lock(_fp) \ +- _IO_cleanup_region_start ((void (*) (void *)) _IO_funlockfile, (_fp)); \ +- _IO_flockfile (_fp) ++ { \ ++ _IO_FILE *_IO_acquire_lock_file = _fp; \ ++ __libc_cleanup_region_start (1, (void (*) (void *)) _IO_acquire_lock_fct, &_IO_acquire_lock_file); \ ++ _IO_flockfile (_IO_acquire_lock_file) ++ ++# define _IO_acquire_lock_clear_flags2(_fp) \ ++ { \ ++ _IO_FILE *_IO_acquire_lock_file = _fp; \ ++ __libc_cleanup_region_start (1, (void (*) (void *)) _IO_acquire_lock_clear_flags2_fct, &_IO_acquire_lock_file); \ ++ _IO_flockfile (_IO_acquire_lock_file) + + # define _IO_release_lock(_fp) \ +- _IO_funlockfile (_fp); \ +- _IO_cleanup_region_end (0) ++ __libc_cleanup_region_end (1); \ ++ } ++ + #endif + + #endif /* bits/stdio-lock.h */ --- glibc-2.7.orig/debian/patches/any/cvs-vfscanf.diff +++ glibc-2.7/debian/patches/any/cvs-vfscanf.diff @@ -0,0 +1,22 @@ +2007-12-07 Ulrich Drepper + + [BZ #5441] + * stdio-common/vfscanf.c (_IO_vfwscanf): Don't free ptrs_to_free + structure, it's allocated with alloca. + +Index: stdio-common/vfscanf.c +=================================================================== +RCS file: /cvs/glibc/libc/stdio-common/vfscanf.c,v +retrieving revision 1.127 +retrieving revision 1.128 +diff -u -d -p -r1.127 -r1.128 +--- stdio-common/vfscanf.c 28 Oct 2007 08:40:36 -0000 1.127 ++++ stdio-common/vfscanf.c 7 Dec 2007 16:40:58 -0000 1.128 +@@ -2845,7 +2845,6 @@ _IO_vfscanf_internal (_IO_FILE *s, const + *p->ptrs[cnt] = NULL; + } + p = p->next; +- free (ptrs_to_free); + ptrs_to_free = p; + } + } --- glibc-2.7.orig/debian/patches/any/submitted-fileops-and-signals.diff +++ glibc-2.7/debian/patches/any/submitted-fileops-and-signals.diff @@ -0,0 +1,26 @@ +Index: glibc-2.7/libio/fileops.c +=================================================================== +--- glibc-2.7.orig/libio/fileops.c 2007-10-23 08:46:13.000000000 -0400 ++++ glibc-2.7/libio/fileops.c 2007-10-23 08:50:51.000000000 -0400 +@@ -522,10 +522,19 @@ + fp->_cur_column = INTUSE(_IO_adjust_column) (fp->_cur_column - 1, data, + count) + 1; + _IO_setg (fp, fp->_IO_buf_base, fp->_IO_buf_base, fp->_IO_buf_base); +- fp->_IO_write_base = fp->_IO_write_ptr = fp->_IO_buf_base; +- fp->_IO_write_end = (fp->_mode <= 0 ++ if (__builtin_expect (count == to_do, 1)) ++ { ++ fp->_IO_write_base = fp->_IO_write_ptr = fp->_IO_buf_base; ++ fp->_IO_write_end = (fp->_mode <= 0 + && (fp->_flags & (_IO_LINE_BUF+_IO_UNBUFFERED)) + ? fp->_IO_buf_base : fp->_IO_buf_end); ++ } ++ else if (count > 0 && fp->_IO_write_base == data) ++ { ++ memmove (data, data+count, ++ fp->_IO_write_ptr - fp->_IO_write_base - count); ++ fp->_IO_write_ptr -= count; ++ } + return count; + } + --- glibc-2.7.orig/debian/patches/any/local-libgcc-compat-ports.diff +++ glibc-2.7/debian/patches/any/local-libgcc-compat-ports.diff @@ -0,0 +1,363 @@ +# DP: Description: libgcc-compat symbols for mips, arm, m68k +# DP: Author: Guido Guenther, GOTO Masanori +# DP: Upstream status: Not submitted +# DP: Date: 2002-10-13, updated 2006-08-27 + +--- /dev/null ++++ ports/sysdeps/mips/mips32/libgcc-compat.c +@@ -0,0 +1,66 @@ ++/* pre-.hidden libgcc compatibility ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Guido Guenther ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++ ++#include ++#include ++ ++#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2_6) ++ ++extern int32_t __cmpdi2 (int64_t, int64_t); ++int32_t __cmpdi2_internal (int64_t u, int64_t v) ++{ ++ return __cmpdi2 (u, v); ++} ++symbol_version (__cmpdi2_internal, __cmpdi2, GLIBC_2.0); ++ ++ ++extern int32_t __ucmpdi2 (int64_t, int64_t); ++int32_t __ucmpdi2_internal (int64_t u, int64_t v) ++{ ++ return __ucmpdi2 (u, v); ++} ++symbol_version (__ucmpdi2_internal, __ucmpdi2, GLIBC_2.0); ++ ++ ++extern int64_t __fixdfdi (double); ++int64_t __fixdfdi_internal (double d) ++{ ++ return __fixdfdi (d); ++} ++symbol_version (__fixdfdi_internal, __fixdfdi, GLIBC_2.0); ++ ++ ++extern double __floatdidf (int64_t); ++double __floatdidf_internal (int64_t u) ++{ ++ return __floatdidf (u); ++} ++symbol_version (__floatdidf_internal, __floatdidf, GLIBC_2.0); ++ ++ ++extern float floatdisf (int64_t); ++float __floatdisf_internal (int64_t u) ++{ ++ return __floatdisf (u); ++} ++symbol_version (__floatdisf_internal, __floatdisf, GLIBC_2.0); ++ ++#endif +--- /dev/null ++++ ports/sysdeps/mips/mips32/Versions +@@ -0,0 +1,8 @@ ++libc { ++ GLIBC_2.0 { ++ # Functions from libgcc. ++ __cmpdi2; __ucmpdi2; ++ __divdi3; __moddi3; __udivdi3; __umoddi3; ++ __fixdfdi; __floatdidf; __floatdisf; ++ } ++} +--- /dev/null ++++ ports/sysdeps/arm/Makefile +@@ -0,0 +1,7 @@ ++ifeq ($(subdir),csu) ++ifeq (yes,$(build-shared)) ++# Compatibility ++sysdep_routines += libgcc-compat ++shared-only-routines += libgcc-compat ++endif ++endif +--- /dev/null ++++ ports/sysdeps/arm/Versions +@@ -0,0 +1,16 @@ ++libc { ++ GLIBC_2.0 { ++ # Functions from libgcc. ++ __ashldi3; __ashrdi3; ++ __cmpdi2; ++ __divsi3; ++ __fixdfdi; ++ __floatdidf; ++ __floatdisf; ++ __modsi3; ++ __muldi3; ++ __ucmpdi2; ++ __udivsi3; ++ __umodsi3; ++ } ++} +--- /dev/null ++++ ports/sysdeps/arm/libgcc-compat.c +@@ -0,0 +1,111 @@ ++/* pre-.hidden libgcc compatibility ++ Copyright (C) 2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by GOTO Masanori ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++ ++#include ++#include ++ ++#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2_6) ++ ++extern int64_t __ashldi3 (int64_t, int32_t); ++int64_t __ashldi3_internal (int64_t u, int32_t b) ++{ ++ return __ashldi3 (u, b); ++} ++symbol_version (__ashldi3_internal, __ashldi3, GLIBC_2.0); ++ ++extern int64_t __ashrdi3 (int64_t, int32_t); ++int32_t __ashrdi3_internal (int64_t u, int32_t b) ++{ ++ return __ashrdi3 (u, b); ++} ++symbol_version (__ashrdi3_internal, __ashrdi3, GLIBC_2.0); ++ ++extern int32_t __cmpdi2 (int64_t, int64_t); ++int32_t __cmpdi2_internal (int64_t u, int64_t v) ++{ ++ return __cmpdi2 (u, v); ++} ++symbol_version (__cmpdi2_internal, __cmpdi2, GLIBC_2.0); ++ ++extern int32_t __divsi3 (int32_t, int32_t); ++int32_t __divsi3_internal (int32_t u, int32_t v) ++{ ++ return __divsi3 (u, v); ++} ++symbol_version (__divsi3_internal, __divsi3, GLIBC_2.0); ++ ++extern int64_t __fixdfdi (double); ++int64_t __fixdfdi_internal (double d) ++{ ++ return __fixdfdi (d); ++} ++symbol_version (__fixdfdi_internal, __fixdfdi, GLIBC_2.0); ++ ++extern double __floatdidf (int64_t); ++double __floatdidf_internal (int64_t u) ++{ ++ return __floatdidf (u); ++} ++symbol_version (__floatdidf_internal, __floatdidf, GLIBC_2.0); ++ ++extern float __floatdisf (int64_t); ++float __floatdisf_internal (int64_t u) ++{ ++ return __floatdisf (u); ++} ++symbol_version (__floatdisf_internal, __floatdisf, GLIBC_2.0); ++ ++extern int32_t __modsi3 (int32_t, int32_t); ++int32_t __modsi3_internal (int32_t u, int32_t v) ++{ ++ return __modsi3 (u, v); ++} ++symbol_version (__modsi3_internal, __modsi3, GLIBC_2.0); ++ ++extern int64_t __muldi3 (int64_t, int64_t); ++int64_t __muldi3_internal (int64_t u, int64_t v) ++{ ++ return __muldi3 (u, v); ++} ++symbol_version (__muldi3_internal, __muldi3, GLIBC_2.0); ++ ++extern int32_t __ucmpdi2 (int64_t, int64_t); ++int32_t __ucmpdi2_internal (int64_t u, int64_t v) ++{ ++ return __ucmpdi2 (u, v); ++} ++symbol_version (__ucmpdi2_internal, __ucmpdi2, GLIBC_2.0); ++ ++extern int32_t __udivsi3 (int32_t, int32_t); ++int32_t __udivsi3_internal (int32_t u, int32_t v) ++{ ++ return __udivsi3 (u, v); ++} ++symbol_version (__udivsi3_internal, __udivsi3, GLIBC_2.0); ++ ++extern int32_t __umodsi3 (int32_t, int32_t); ++int32_t __umodsi3_internal (int32_t u, int32_t v) ++{ ++ return __umodsi3 (u, v); ++} ++symbol_version (__umodsi3_internal, __umodsi3, GLIBC_2.0); ++ ++#endif +--- /dev/null ++++ ports/sysdeps/m68k/Deps +@@ -0,0 +1 @@ ++libgcc-compat.c +--- ports/sysdeps/m68k/Makefile.orig ++++ ports/sysdeps/m68k/Makefile +@@ -37,3 +37,11 @@ + # Build objects in libc_nonshared.a with -fPIC (instead of -fpic) to avoid + # possible linkage problems. + CFLAGS-.oS += -fPIC ++ ++ifeq ($(subdir),csu) ++ifeq (yes,$(build-shared)) ++# Compatibility ++sysdep_routines += libgcc-compat ++shared-only-routines += libgcc-compat ++endif ++endif +--- ports/sysdeps/m68k/Versions.orig ++++ ports/sysdeps/m68k/Versions +@@ -2,6 +2,14 @@ + GLIBC_2.0 { + # Functions from libgcc. + __divdi3; __moddi3; __udivdi3; __umoddi3; ++ __ashldi3; ++ __ashrdi3; ++ __fixdfdi; ++ __fixsfdi; ++ __fixunsdfdi; ++ __fixunssfdi; ++ __floatdidf; ++ __floatdisf; + } + } + libm { +--- /dev/null ++++ ports/sysdeps/m68k/libgcc-compat.c +@@ -0,0 +1,83 @@ ++/* pre-.hidden libgcc compatibility ++ Copyright (C) 2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by GOTO Masanori ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++ ++#include ++#include ++ ++#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2_6) ++ ++extern int64_t __ashldi3 (int64_t, int32_t); ++int64_t __ashldi3_internal (int64_t u, int32_t b) ++{ ++ return __ashldi3 (u, b); ++} ++symbol_version (__ashldi3_internal, __ashldi3, GLIBC_2.0); ++ ++extern int64_t __ashrdi3 (int64_t, int32_t); ++int64_t __ashrdi3_internal (int64_t u, int32_t b) ++{ ++ return __ashrdi3 (u, b); ++} ++symbol_version (__ashrdi3_internal, __ashrdi3, GLIBC_2.0); ++ ++extern int64_t __fixdfdi (double); ++int64_t __fixdfdi_internal (double d) ++{ ++ return __fixdfdi (d); ++} ++symbol_version (__fixdfdi_internal, __fixdfdi, GLIBC_2.0); ++ ++extern int64_t __fixsfdi (float); ++int64_t __fixsfdi_internal (float d) ++{ ++ return __fixsfdi (d); ++} ++symbol_version (__fixsfdi_internal, __fixsfdi, GLIBC_2.0); ++ ++extern int64_t __fixunsdfdi (double); ++int64_t __fixunsdfdi_internal (double d) ++{ ++ return __fixunsdfdi (d); ++} ++symbol_version (__fixunsdfdi_internal, __fixunsdfdi, GLIBC_2.0); ++ ++extern int64_t __fixunssfdi (float); ++int64_t __fixunssfdi_internal (float d) ++{ ++ return __fixunssfdi (d); ++} ++symbol_version (__fixunssfdi_internal, __fixunssfdi, GLIBC_2.0); ++ ++extern double __floatdidf (int64_t); ++double __floatdidf_internal (int64_t u) ++{ ++ return __floatdidf (u); ++} ++symbol_version (__floatdidf_internal, __floatdidf, GLIBC_2.0); ++ ++extern float __floatdisf (int64_t); ++float __floatdisf_internal (int64_t u) ++{ ++ return __floatdisf (u); ++} ++symbol_version (__floatdisf_internal, __floatdisf, GLIBC_2.0); ++ ++#endif +--- ports/sysdeps/mips/mips32/Makefile.orig ++++ ports/sysdeps/mips/mips32/Makefile +@@ -1,3 +1,11 @@ + ifeq ($(filter -mabi=32,$(CC)),) + CC += -mabi=32 + endif ++ ++ifeq ($(subdir),csu) ++ifeq (yes,$(build-shared)) ++# Compatibility ++sysdep_routines += libgcc-compat ++shared-only-routines += libgcc-compat ++endif ++endif --- glibc-2.7.orig/debian/patches/any/local-gcc4-wcstol_l.diff +++ glibc-2.7/debian/patches/any/local-gcc4-wcstol_l.diff @@ -0,0 +1,40 @@ +# DP: Description: Make glibc-2.3.5 compile with gcc-4.0 on 64bit archs. +# DP: Related bugs: +# DP: Dpatch author: GOTO Masanori +# DP: Patch author: Jakub Jelinek +# DP: Upstream status: Debian-Specific +# DP: Status Details: +# DP: Date: 2005-07-14 + +https://www.redhat.com/archives/fedora-cvs-commits/2005-March/msg00408.html + + * sysdeps/wordsize-64/strtol_l.c: Don't add aliases if UNSIGNED. + * sysdeps/wordsize-64/wcstol_l.c: Likewise. + +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/wordsize-64/strtol_l.c,v +retrieving revision 1.4 +retrieving revision 1.4.2.1 +--- glibc-2.6.orig/sysdeps/wordsize-64/strtol_l.c ++++ glibc-2.6/sysdeps/wordsize-64/strtol_l.c +@@ -8,7 +8,9 @@ + #undef ____strtoll_l_internal + #undef __strtoll_l + #undef strtoll_l ++#if !UNSIGNED + strong_alias (____strtol_l_internal, ____strtoll_l_internal) + libc_hidden_ver (____strtol_l_internal, ____strtoll_l_internal) + weak_alias (__strtol_l, __strtoll_l) + weak_alias (__strtol_l, strtoll_l) ++#endif +--- glibc-2.6.orig/sysdeps/wordsize-64/wcstol_l.c ++++ glibc-2.6/sysdeps/wordsize-64/wcstol_l.c +@@ -8,6 +8,8 @@ + #undef ____wcstoll_l_internal + #undef __wcstoll_l + #undef wcstoll_l ++#if !UNSIGNED + strong_alias (____wcstol_l_internal, ____wcstoll_l_internal) + weak_alias (__wcstol_l, __wcstoll_l) + weak_alias (__wcstol_l, wcstoll_l) ++#endif --- glibc-2.7.orig/debian/patches/any/cvs-ether_line.diff +++ glibc-2.7/debian/patches/any/cvs-ether_line.diff @@ -0,0 +1,41 @@ +2007-12-07 Ulrich Drepper + + [BZ #5454] + * inet/ether_line.c: Strip hostname of whitespaces. + +Index: inet/ether_line.c +=================================================================== +RCS file: /cvs/glibc/libc/inet/ether_line.c,v +retrieving revision 1.6 +retrieving revision 1.7 +diff -u -d -p -r1.6 -r1.7 +--- inet/ether_line.c 24 May 2002 08:20:58 -0000 1.6 ++++ inet/ether_line.c 7 Dec 2007 16:34:36 -0000 1.7 +@@ -61,19 +61,20 @@ ether_line (const char *line, struct eth + ++line; + } + +- /* Remove trailing white space. */ +- cp = __strchrnul (line, '#'); +- while (cp > line && isspace (cp[-1])) +- --cp; ++ /* Skip initial whitespace. */ ++ while (isspace (*line)) ++ ++line; + +- if (cp == line) ++ if (*line == '#' || *line == '\0') + /* No hostname. */ + return -1; + ++ /* The hostname is up to the next non-space character. */ + /* XXX This can cause trouble because the hostname might be too long + but we have no possibility to check it here. */ +- memcpy (hostname, line, cp - line); +- hostname [cp - line] = '\0'; ++ while (*line != '\0' && *line != '#' && !isspace (*line)) ++ *hostname++ = *line++; ++ *hostname = '\0'; + + return 0; + } --- glibc-2.7.orig/debian/patches/any/disable-ld_audit.diff +++ glibc-2.7/debian/patches/any/disable-ld_audit.diff @@ -0,0 +1,16 @@ +Description: pro-actively disable LD_AUDIT for setuid binaries. +Author: Kees Cook + +Index: glibc-2.9/elf/rtld.c +=================================================================== +--- glibc-2.9.orig/elf/rtld.c 2010-10-21 14:33:21.002139173 -0700 ++++ glibc-2.9/elf/rtld.c 2010-10-21 14:33:26.802483579 -0700 +@@ -2465,7 +2465,7 @@ + while ((p = (strsep) (&str, ":")) != NULL) + if (p[0] != '\0' + && (__builtin_expect (! INTUSE(__libc_enable_secure), 1) +- || strchr (p, '/') == NULL)) ++ )) + { + /* This is using the local malloc, not the system malloc. The + memory can never be freed. */ --- glibc-2.7.orig/debian/patches/any/submitted-sched_h.diff +++ glibc-2.7/debian/patches/any/submitted-sched_h.diff @@ -0,0 +1,16 @@ +2007-11-02 Aurelien Jarno + + * bits/sched.h (__CPU_ALLOC_SIZE): Define. + +--- bits/sched.h.orig ++++ bits/sched.h +@@ -69,6 +69,9 @@ + # define __CPU_ISSET(cpu, cpusetp) \ + (((cpusetp)->__bits[__CPUELT (cpu)] & __CPUMASK (cpu)) != 0) + ++# define __CPU_ALLOC_SIZE(count) \ ++ ((((count) + __NCPUBITS - 1) / __NCPUBITS) * 8) ++ + __BEGIN_DECLS + + extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) --- glibc-2.7.orig/debian/patches/any/local-makeconfig.diff +++ glibc-2.7/debian/patches/any/local-makeconfig.diff @@ -0,0 +1,19 @@ +# DP: Carried over from glibc2.2, need to figure out why it's here. +# DP: (Probably has something to do with fakeroot) +# DP: Date: (Updated 2005-01-02 gotom) + +--- Makeconfig.orig ++++ Makeconfig +@@ -560,10 +560,11 @@ + $(subst $(empty) ,:,$(strip $(patsubst -Wl$(comma)-rpath-link=%, %,\ + $(filter -Wl$(comma)-rpath-link=%,\ + $(sysdep-LDFLAGS))))) ++ld_envlib_path = $(shell test x$$LD_LIBRARY_PATH = x || echo -n :$$LD_LIBRARY_PATH) + run-program-prefix = $(if $(filter $(notdir $(built-program-file)),\ + $(tests-static) $(xtests-static)),, \ + $(elf-objpfx)$(rtld-installed-name) \ +- --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path))) ++ --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path))$(ld_envlib_path)) + else + run-program-prefix = + endif --- glibc-2.7.orig/debian/patches/any/local-disable-test-tgmath2.diff +++ glibc-2.7/debian/patches/any/local-disable-test-tgmath2.diff @@ -0,0 +1,11 @@ +--- math/Makefile.orig ++++ math/Makefile +@@ -90,7 +90,7 @@ + # Rules for the test suite. + tests = test-matherr test-fenv atest-exp atest-sincos atest-exp2 basic-test \ + test-misc test-fpucw tst-definitions test-tgmath test-tgmath-ret \ +- bug-nextafter bug-nexttoward bug-tgmath1 test-tgmath-int test-tgmath2 ++ bug-nextafter bug-nexttoward bug-tgmath1 test-tgmath-int + # We do the `long double' tests only if this data type is available and + # distinct from `double'. + test-longdouble-yes = test-ldouble test-ildoubl --- glibc-2.7.orig/debian/patches/any/local-ldd.diff +++ glibc-2.7/debian/patches/any/local-ldd.diff @@ -0,0 +1,49 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Make ldd handle non-executable shared objects. Discard the error +# DP: message if the kernel does not support one of the dynamic loaders. +# DP: Updated by gotom, it's nice to merge to the upstream after my review. +# Date: (Updated 2007-04-22 aurel32) + +--- elf/ldd.bash.in.orig ++++ elf/ldd.bash.in +@@ -31,6 +31,7 @@ + warn= + bind_now= + verbose= ++filename_magic_regex="((^|/)lib|.so$)" + + while test $# -gt 0; do + case "$1" in +@@ -151,13 +152,16 @@ + echo "ldd: ${file}:" $"not regular file" >&2 + result=1 + elif test -r "$file"; then +- test -x "$file" || echo 'ldd:' $"\ +-warning: you do not have execution permission for" "\`$file'" >&2 ++ if test ! -x "$file" && eval echo "$file" \ ++ | egrep -v "$filename_magic_regex" > /dev/null; then ++ echo 'ldd:' $"warning: you do not have execution permission for"\ ++ "\`$file'" >&2 ++ fi + RTLD= + ret=1 + for rtld in ${RTLDLIST}; do + if test -x $rtld; then +- verify_out=`${rtld} --verify "$file"` ++ verify_out=`${rtld} --verify "$file" 2>/dev/null` + ret=$? + case $ret in + [02]) RTLD=${rtld}; break;; +@@ -169,7 +173,11 @@ + # If the program exits with exit code 5, it means the process has been + # invoked with __libc_enable_secure. Fall back to running it through + # the dynamic linker. +- try_trace "$file" ++ if test -x "$file"; then ++ try_trace "$file" ++ else ++ try_trace "${RTLD}" "$file" ++ fi + rc=$? + if [ $rc = 5 ]; then + try_trace "$RTLD" "$file" --- glibc-2.7.orig/debian/patches/any/local-tcsetaddr.diff +++ glibc-2.7/debian/patches/any/local-tcsetaddr.diff @@ -0,0 +1,79 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: tcsetattr sanity check on PARENB/CREAD/CSIZE for ptys +# DP: Related bugs: 218131 +# DP: Author: Jeff Licquia +# DP: Upstream status: [In CVS | Debian-Specific | Pending | Not submitted ] +# DP: Status Details: +# DP: Date: 2003-10-29 + +--- sysdeps/unix/sysv/linux/tcsetattr.c.orig ++++ sysdeps/unix/sysv/linux/tcsetattr.c +@@ -48,7 +48,12 @@ + const struct termios *termios_p; + { + struct __kernel_termios k_termios; ++ struct __kernel_termios k_termios_old; + unsigned long int cmd; ++ int retval, old_retval; ++ ++ /* Preserve the previous termios state if we can. */ ++ old_retval = INLINE_SYSCALL (ioctl, 3, fd, TCGETS, &k_termios_old); + + switch (optional_actions) + { +@@ -80,6 +85,54 @@ + memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0], + __KERNEL_NCCS * sizeof (cc_t)); + +- return INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios); ++ retval = INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios); ++ ++ /* The Linux kernel silently ignores the invalid c_cflag on pty. ++ We have to check it here, and return an error. But if some other ++ setting was successfully changed, POSIX requires us to report ++ success. */ ++ if ((retval == 0) && (old_retval == 0)) ++ { ++ int save = errno; ++ retval = INLINE_SYSCALL (ioctl, 3, fd, TCGETS, &k_termios); ++ if (retval) ++ { ++ /* We cannot verify if the setting is ok. We don't return ++ an error (?). */ ++ __set_errno (save); ++ retval = 0; ++ } ++ else if ((k_termios_old.c_oflag != k_termios.c_oflag) || ++ (k_termios_old.c_lflag != k_termios.c_lflag) || ++ (k_termios_old.c_line != k_termios.c_line) || ++ ((k_termios_old.c_iflag | IBAUD0) != (k_termios.c_iflag | IBAUD0))) ++ { ++ /* Some other setting was successfully changed, which ++ means we should not return an error. */ ++ __set_errno (save); ++ retval = 0; ++ } ++ else if ((k_termios_old.c_cflag | (PARENB & CREAD & CSIZE)) != ++ (k_termios.c_cflag | (PARENB & CREAD & CSIZE))) ++ { ++ /* Some other c_cflag setting was successfully changed, which ++ means we should not return an error. */ ++ __set_errno (save); ++ retval = 0; ++ } ++ else if ((termios_p->c_cflag & (PARENB | CREAD)) ++ != (k_termios.c_cflag & (PARENB | CREAD)) ++ || ((termios_p->c_cflag & CSIZE) ++ && (termios_p->c_cflag & CSIZE) ++ != (k_termios.c_cflag & CSIZE))) ++ { ++ /* It looks like the Linux kernel silently changed the ++ PARENB/CREAD/CSIZE bits in c_cflag. Report it as an ++ error. */ ++ __set_errno (EINVAL); ++ retval = -1; ++ } ++ } ++ return retval; + } + libc_hidden_def (tcsetattr) --- glibc-2.7.orig/debian/patches/any/cvs-strtod.diff +++ glibc-2.7/debian/patches/any/cvs-strtod.diff @@ -0,0 +1,20 @@ +commit e76c47eeb75382c25d232e97a2eba88b5ae2c046 +Author: Ulrich Drepper +Date: Sat Mar 8 21:31:55 2008 +0000 + + (____STRTOF_INTERNAL): Consume closing brace on NAN(...) sequence. + +diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c +index d1c2b62..9c2f86a 100644 +--- a/stdlib/strtod_l.c ++++ b/stdlib/strtod_l.c +@@ -594,6 +594,9 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc) + mant = STRTOULL (startp + 1, &endp, 0); + if (endp == cp) + SET_MANTISSA (retval, mant); ++ ++ /* Consume the closing brace. */ ++ ++cp; + } + } + --- glibc-2.7.orig/debian/patches/any/local-fhs-nscd.diff +++ glibc-2.7/debian/patches/any/local-fhs-nscd.diff @@ -0,0 +1,17 @@ +--- nscd/nscd.h.orig ++++ nscd/nscd.h +@@ -91,10 +91,10 @@ + + + /* Paths of the file for the persistent storage. */ +-#define _PATH_NSCD_PASSWD_DB "/var/db/nscd/passwd" +-#define _PATH_NSCD_GROUP_DB "/var/db/nscd/group" +-#define _PATH_NSCD_HOSTS_DB "/var/db/nscd/hosts" +-#define _PATH_NSCD_SERVICES_DB "/var/db/nscd/services" ++#define _PATH_NSCD_PASSWD_DB "/var/cache/nscd/passwd" ++#define _PATH_NSCD_GROUP_DB "/var/cache/nscd/group" ++#define _PATH_NSCD_HOSTS_DB "/var/cache/nscd/hosts" ++#define _PATH_NSCD_SERVICES_DB "/var/cache/nscd/services" + + /* Path used when not using persistent storage. */ + #define _PATH_NSCD_XYZ_DB_TMP "/var/run/nscd/dbXXXXXX" --- glibc-2.7.orig/debian/patches/any/local-linuxthreads-fd.diff +++ glibc-2.7/debian/patches/any/local-linuxthreads-fd.diff @@ -0,0 +1,32 @@ +--- linuxthreads/pthread.c.orig 2008-01-06 04:37:45.000000000 +0100 ++++ linuxthreads/pthread.c 2008-01-06 05:08:35.000000000 +0100 +@@ -662,6 +662,29 @@ + free(__pthread_manager_thread_bos); + return -1; + } ++ /* Make sure the file descriptors of the pipe doesn't collide ++ with stdin, stdout or stderr if they have been closed. */ ++ if (manager_pipe[0] < 3) { ++ int new_fd; ++ new_fd = fcntl(manager_pipe[0], F_DUPFD, 3); ++ close(manager_pipe[0]); ++ if (new_fd == -1) { ++ free(__pthread_manager_thread_bos); ++ return -1; ++ } ++ manager_pipe[0] = new_fd; ++ } ++ if (manager_pipe[1] < 3) { ++ int new_fd; ++ new_fd = fcntl(manager_pipe[1], F_DUPFD, 3); ++ close(manager_pipe[1]); ++ if (new_fd == -1) { ++ close(manager_pipe[0]); ++ free(__pthread_manager_thread_bos); ++ return -1; ++ } ++ manager_pipe[1] = new_fd; ++ } + + #ifdef USE_TLS + /* Allocate memory for the thread descriptor and the dtv. */ --- glibc-2.7.orig/debian/patches/any/local-bashisms.diff +++ glibc-2.7/debian/patches/any/local-bashisms.diff @@ -0,0 +1,19 @@ +--- iconvdata/run-iconv-test.sh.orig ++++ iconvdata/run-iconv-test.sh +@@ -130,7 +130,7 @@ + done + fi + +- if test "$subset" == N; then ++ if test "$subset" = N; then + echo $ac_n " suntzu: ASCII -> $to -> ASCII $ac_c" + $PROG -f ASCII -t $to testdata/suntzus | + $PROG -f $to -t ASCII > $temp1 || +--- nptl/tst-tls6.sh.orig ++++ nptl/tst-tls6.sh +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!/bin/bash + + common_objpfx=$1; shift + elf_objpfx=$1; shift --- glibc-2.7.orig/debian/patches/any/cvs-wchar_h.diff +++ glibc-2.7/debian/patches/any/cvs-wchar_h.diff @@ -0,0 +1,24 @@ +2007-12-08 Ulrich Drepper + + [BZ #5428] + * wcsmbs/wchar.h: Unconditionally undefine __need_mbstate and + __need_wint_t. + +Index: wcsmbs/wchar.h +=================================================================== +RCS file: /cvs/glibc/libc/wcsmbs/wchar.h,v +retrieving revision 1.75 +retrieving revision 1.76 +diff -u -d -p -r1.75 -r1.76 +--- wcsmbs/wchar.h 26 Nov 2007 22:50:59 -0000 1.75 ++++ wcsmbs/wchar.h 10 Dec 2007 01:40:23 -0000 1.76 +@@ -839,4 +839,9 @@ __END_DECLS + + #endif /* _WCHAR_H defined */ + ++/* Undefined all __need_* constants in case we are included to get those ++ constants but the whole file was already read. */ ++#undef __need_mbstate_t ++#undef __need_wint_t ++ + #endif /* wchar.h */ --- glibc-2.7.orig/debian/patches/any/local-nss-upgrade.diff +++ glibc-2.7/debian/patches/any/local-nss-upgrade.diff @@ -0,0 +1,29 @@ +# DP: This patch makes future upgrades easier. It resolves problems with +# DP: running daemons having NSS modules upgraded out from under them. + +--- nss/nsswitch.c.orig ++++ nss/nsswitch.c +@@ -344,9 +344,20 @@ + ni->library->lib_handle = __libc_dlopen (shlib_name); + if (ni->library->lib_handle == NULL) + { +- /* Failed to load the library. */ +- ni->library->lib_handle = (void *) -1l; +- __set_errno (saved_errno); ++ /* Failed to load the library. Try a fallback. */ ++ int n = __snprintf(shlib_name, shlen, "libnss_%s.so.%d.%d", ++ ni->library->name, __GLIBC__, __GLIBC_MINOR__); ++ if (n >= shlen) ++ ni->library->lib_handle = NULL; ++ else ++ ni->library->lib_handle = __libc_dlopen (shlib_name); ++ ++ if (ni->library->lib_handle == NULL) ++ { ++ /* Ok, really fail now. */ ++ ni->library->lib_handle = (void *) -1l; ++ __set_errno (saved_errno); ++ } + } + } + --- glibc-2.7.orig/debian/patches/any/local-dynamic-resolvconf.diff +++ glibc-2.7/debian/patches/any/local-dynamic-resolvconf.diff @@ -0,0 +1,39 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: allow dynamic long-running processes to +# DP: re-read a dynamically updated resolv.conf on the fly +# DP: Dpatch author: Adam Conrad +# DP: Patch author: Thorsten Kukuk +# DP: Upstream status: Ubuntu-Specific +# DP: Date: 2006-01-13 08:14:21 UTC + +--- resolv/res_libc.c.orig ++++ resolv/res_libc.c +@@ -22,7 +22,7 @@ + #include + #include + #include +- ++#include + + /* The following bit is copied from res_data.c (where it is #ifdef'ed + out) since res_init() should go into libc.so but the rest of that +@@ -94,8 +94,17 @@ + int + __res_maybe_init (res_state resp, int preinit) + { +- if (resp->options & RES_INIT) { +- if (__res_initstamp != resp->_u._ext.initstamp) { ++ static time_t last_mtime; ++ struct stat statbuf; ++ int ret; ++ ++ ++ if (resp->options & RES_INIT) { ++ ret = stat (_PATH_RESCONF, &statbuf); ++ if (__res_initstamp != resp->_u._ext.initstamp ++ || (ret == 0) && (last_mtime != statbuf.st_mtime)) ++ { ++ last_mtime = statbuf.st_mtime; + if (resp->nscount > 0) { + __res_iclose (resp, true); + return __res_vinit (resp, 1); --- glibc-2.7.orig/debian/patches/any/git-mntent-newline-escape.diff +++ glibc-2.7/debian/patches/any/git-mntent-newline-escape.diff @@ -0,0 +1,16 @@ +Description: escape newlines int mntent fields (CVE-2010-0296). +Origin: http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=ab00f4eac8f4932211259ff87be83144f5211540 + +Index: eglibc-2.11.1/misc/mntent_r.c +=================================================================== +--- eglibc-2.11.1.orig/misc/mntent_r.c 2010-05-19 16:53:38.399134517 -0700 ++++ eglibc-2.11.1/misc/mntent_r.c 2010-05-19 16:54:02.989138098 -0700 +@@ -194,7 +194,7 @@ + const char *rp = name; \ + \ + while (*rp != '\0') \ +- if (*rp == ' ' || *rp == '\t' || *rp == '\\') \ ++ if (*rp == ' ' || *rp == '\t' || *rp == '\n' || *rp == '\\') \ + break; \ + else \ + ++rp; \ --- glibc-2.7.orig/debian/patches/any/cvs-iconv-iso2022jp-loop-bug.diff +++ glibc-2.7/debian/patches/any/cvs-iconv-iso2022jp-loop-bug.diff @@ -0,0 +1,85 @@ +diff -Naur glibc-2.7.old/iconv/loop.c glibc-2.7/iconv/loop.c +--- glibc-2.7.old/iconv/loop.c 2005-09-25 16:42:36.000000000 +0000 ++++ glibc-2.7/iconv/loop.c 2008-01-01 21:41:50.000000000 +0000 +@@ -225,7 +225,12 @@ + } \ + /* If any of them recognized the input continue with the loop. */ \ + if (result != __GCONV_ILLEGAL_INPUT) \ +- continue; \ ++ { \ ++ if (__builtin_expect (result == __GCONV_FULL_OUTPUT, 0)) \ ++ break; \ ++ \ ++ continue; \ ++ } \ + \ + /* Next see whether we have to ignore the error. If not, stop. */ \ + if (! ignore_errors_p ()) \ +diff -Naur glibc-2.7.old/iconvdata/bug-iconv6.c glibc-2.7/iconvdata/bug-iconv6.c +--- glibc-2.7.old/iconvdata/bug-iconv6.c 1970-01-01 00:00:00.000000000 +0000 ++++ glibc-2.7/iconvdata/bug-iconv6.c 2008-01-01 21:41:50.000000000 +0000 +@@ -0,0 +1,52 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static const char testbuf[] = { ++ 0xEF, 0xBE, 0x9F, 0xD0, 0xB4, 0xEF, 0xBE, 0x9F, 0x29, 0xEF, 0xBE, 0x8E, ++ 0xEF, 0xBE, 0x9F, 0xEF, 0xBD, 0xB6, 0xEF, 0xBD, 0xB0, 0xEF, 0xBE, 0x9D ++}; ++ ++static int ++do_test (void) ++{ ++ setlocale (LC_ALL, "en_US.UTF-8"); ++ iconv_t ic = iconv_open ("ISO-2022-JP//TRANSLIT", "UTF-8"); ++ if (ic == (iconv_t) -1) ++ { ++ puts ("iconv_open failed"); ++ return 1; ++ } ++ size_t outremain = sizeof testbuf; ++ char outbuf[outremain]; ++ char *inp = (char *) testbuf; ++ char *outp = outbuf; ++ size_t inremain = sizeof testbuf; ++ ++ int ret = iconv (ic, &inp, &inremain, &outp, &outremain); ++ ++ int result = 0; ++ if (ret == (size_t) -1) ++ { ++ if (errno == E2BIG) ++ puts ("buffer too small reported. OK"); ++ else ++ { ++ printf ("iconv failed with %d (%m)\n", errno); ++ result = 0; ++ } ++ } ++ else ++ { ++ printf ("iconv returned %d\n", ret); ++ result = 1; ++ } ++ ++ return result; ++} ++ ++#define TEST_FUNCTION do_test () ++#include "../test-skeleton.c" +diff -Naur glibc-2.7.old/iconvdata/Makefile glibc-2.7/iconvdata/Makefile +--- glibc-2.7.old/iconvdata/Makefile 2007-09-30 04:00:02.000000000 +0000 ++++ glibc-2.7/iconvdata/Makefile 2008-01-01 21:42:01.000000000 +0000 +@@ -67,7 +67,7 @@ + + ifeq (yes,$(build-shared)) + tests = bug-iconv1 bug-iconv2 tst-loading tst-e2big tst-iconv4 bug-iconv4 \ +- tst-iconv6 bug-iconv5 ++ tst-iconv6 bug-iconv5 bug-iconv6 + ifeq ($(have-thread-library),yes) + tests += bug-iconv3 + endif --- glibc-2.7.orig/debian/patches/any/submitted-getcwd-sys_param_h.diff +++ glibc-2.7/debian/patches/any/submitted-getcwd-sys_param_h.diff @@ -0,0 +1,14 @@ +2006-06-18 Mike Frysinger + + * sysdeps/unix/sysv/linux/getcwd.c: Include sys/param.h. + +--- sysdeps/unix/sysv/linux/getcwd.c.orig ++++ sysdeps/unix/sysv/linux/getcwd.c +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + + #include + #include --- glibc-2.7.orig/debian/patches/any/cvs-iconv-braces.diff +++ glibc-2.7/debian/patches/any/cvs-iconv-braces.diff @@ -0,0 +1,48 @@ +commit eeb930172c353b4649f88a35feaaeb0fc354e47b +Author: Ulrich Drepper +Date: Wed May 14 22:52:44 2008 +0000 + + (BODY for __gconv_transform_ascii_internal): Add missing braces. + (BODY for __gconv_transform_internal_ascii): Likewise. + +diff --git a/iconv/gconv_simple.c b/iconv/gconv_simple.c +index ec8f38a..5cf3237 100644 +--- a/iconv/gconv_simple.c ++++ b/iconv/gconv_simple.c +@@ -1,5 +1,5 @@ + /* Simple transformations functions. +- Copyright (C) 1997-2003, 2004, 2005, 2007 Free Software Foundation, Inc. ++ Copyright (C) 1997-2005, 2007, 2008 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1997. + +@@ -820,9 +820,11 @@ ucs4le_internal_loop_single (struct __gconv_step *step, + STANDARD_FROM_LOOP_ERR_HANDLER (1); \ + } \ + else \ +- /* It's an one byte sequence. */ \ +- *((uint32_t *) outptr) = *inptr++; \ +- outptr += sizeof (uint32_t); \ ++ { \ ++ /* It's an one byte sequence. */ \ ++ *((uint32_t *) outptr) = *inptr++; \ ++ outptr += sizeof (uint32_t); \ ++ } \ + } + #define LOOP_NEED_FLAGS + #include +@@ -851,9 +853,11 @@ ucs4le_internal_loop_single (struct __gconv_step *step, + STANDARD_TO_LOOP_ERR_HANDLER (4); \ + } \ + else \ +- /* It's an one byte sequence. */ \ +- *outptr++ = *((const uint32_t *) inptr); \ +- inptr += sizeof (uint32_t); \ ++ { \ ++ /* It's an one byte sequence. */ \ ++ *outptr++ = *((const uint32_t *) inptr); \ ++ inptr += sizeof (uint32_t); \ ++ } \ + } + #define LOOP_NEED_FLAGS + #include --- glibc-2.7.orig/debian/patches/any/local-localedef-fix-trampoline.diff +++ glibc-2.7/debian/patches/any/local-localedef-fix-trampoline.diff @@ -0,0 +1,55 @@ +# DP: Description: Fix localedef segfault when run under exec-shield, +# PaX or similar. (#231438, #198099) +# DP: Dpatch Author: James Troup +# DP: Patch Author: (probably) Jakub Jelinek +# DP: Upstream status: Unknown +# DP: Status Details: Unknown +# DP: Date: 2004-03-16 + +Index: locale/programs/3level.h +=================================================================== +--- locale/programs/3level.h.orig 2007-10-23 08:46:14.000000000 -0400 ++++ locale/programs/3level.h 2007-10-23 08:50:30.000000000 -0400 +@@ -203,6 +203,42 @@ + } + } + } ++ ++/* GCC ATM seems to do a poor job with pointers to nested functions passed ++ to inlined functions. Help it a little bit with this hack. */ ++#define wchead_table_iterate(tp, fn) \ ++do \ ++ { \ ++ struct wchead_table *t = (tp); \ ++ uint32_t index1; \ ++ for (index1 = 0; index1 < t->level1_size; index1++) \ ++ { \ ++ uint32_t lookup1 = t->level1[index1]; \ ++ if (lookup1 != ((uint32_t) ~0)) \ ++ { \ ++ uint32_t lookup1_shifted = lookup1 << t->q; \ ++ uint32_t index2; \ ++ for (index2 = 0; index2 < (1 << t->q); index2++) \ ++ { \ ++ uint32_t lookup2 = t->level2[index2 + lookup1_shifted]; \ ++ if (lookup2 != ((uint32_t) ~0)) \ ++ { \ ++ uint32_t lookup2_shifted = lookup2 << t->p; \ ++ uint32_t index3; \ ++ for (index3 = 0; index3 < (1 << t->p); index3++) \ ++ { \ ++ struct element_t *lookup3 \ ++ = t->level3[index3 + lookup2_shifted]; \ ++ if (lookup3 != NULL) \ ++ fn ((((index1 << t->q) + index2) << t->p) + index3, \ ++ lookup3); \ ++ } \ ++ } \ ++ } \ ++ } \ ++ } \ ++ } while (0) ++ + #endif + + #ifndef NO_FINALIZE --- glibc-2.7.orig/debian/patches/any/submitted-longdouble.diff +++ glibc-2.7/debian/patches/any/submitted-longdouble.diff @@ -0,0 +1,42 @@ +--- math/Makefile.orig 2006-02-28 08:05:45.000000000 +0100 ++++ math/Makefile 2007-07-29 17:17:37.000000000 +0200 +@@ -91,13 +91,17 @@ + tests = test-matherr test-fenv atest-exp atest-sincos atest-exp2 basic-test \ + test-misc test-fpucw tst-definitions test-tgmath test-tgmath-ret \ + bug-nextafter bug-nexttoward bug-tgmath1 test-tgmath-int +-# We do the `long double' tests only if this data type is available and +-# distinct from `double'. ++# We do the `long double' tests only if this data type is available. + test-longdouble-yes = test-ldouble test-ildoubl + distribute += $(test-longdouble-yes:=.c) + ++ifeq ($(long-double-fcts),yes) ++# If we have distinct types then enable testing. ++test-long-double-fcts = yes ++endif ++ + ifneq (no,$(PERL)) +-libm-tests = test-float test-double $(test-longdouble-$(long-double-fcts)) \ ++libm-tests = test-float test-double $(test-longdouble-$(test-long-double-fcts)) \ + test-ifloat test-idouble + libm-tests.o = $(addsuffix .o,$(libm-tests)) + +@@ -171,11 +175,15 @@ + ifneq ($(long-double-fcts),yes) + # The `double' and `long double' types are the same on this machine. + # We won't compile the `long double' code at all. Tell the `double' code +-# to define aliases for the `FUNCl' names. To avoid type conflicts in +-# defining those aliases, tell to declare the `FUNCl' names with +-# `double' instead of `long double'. ++# to define aliases for the `FUNCl' names. ++ifeq ($(header-long-double-fcts),yes) ++math-CPPFLAGS += -DNO_LONG_DOUBLE ++else ++# To avoid type conflicts in defining those aliases, tell to ++# declare the `FUNCl' names with `double' instead of `long double'. + math-CPPFLAGS += -DNO_LONG_DOUBLE -D_Mlong_double_=double + endif ++endif + + # The fdlibm code generates a lot of these warnings but is otherwise clean. + override CFLAGS += -Wno-uninitialized --- glibc-2.7.orig/debian/patches/any/submitted-date-and-unknown-tz.diff +++ glibc-2.7/debian/patches/any/submitted-date-and-unknown-tz.diff @@ -0,0 +1,49 @@ +Patch from Andrew Suffield: +> 'TZ=MOO date' gives confusing output; it uses UTC but claims to be +> whatever timezone you told it. If you were expecting the timezone to +> be valid, this output is not correct. +> +> This is caused by the way that glibc parses $TZ; if the string is +> unrecognised, it interprets it as a name followed by an offset from +> UTC. (The relevant code is tzset_internal() in time/tzset.c) +> +> The code already checks to see whether there is a valid offset in the +> string or not. Currently it copies the timezone name first; since the +> intent was probably not to change the name if no offset was specified, +> I propose this change: +> +> [... see patch below ...] +> +> The old behaviour is still available by using TZ="MOO+0", if it is +> really desirable to change the name of the timezone in this manner. + +Index: time/tzset.c +=================================================================== +--- time/tzset.c.orig 2007-10-23 08:46:13.000000000 -0400 ++++ time/tzset.c 2007-10-23 08:50:45.000000000 -0400 +@@ -169,7 +169,7 @@ + + /* Clear out old state and reset to unnamed UTC. */ + memset (tz_rules, 0, sizeof tz_rules); +- tz_rules[0].name = tz_rules[1].name = ""; ++ tz_rules[0].name = tz_rules[1].name = "UTC"; + + /* Get the standard timezone name. */ + tzbuf = strdupa (tz); +@@ -178,14 +178,14 @@ + (l = strlen (tzbuf)) < 3) + goto out; + +- tz_rules[0].name = __tzstring (tzbuf); +- + tz += l; + + /* Figure out the standard offset from UTC. */ + if (*tz == '\0' || (*tz != '+' && *tz != '-' && !isdigit (*tz))) + goto out; + ++ tz_rules[0].name = __tzstring (tzbuf); ++ + if (*tz == '-' || *tz == '+') + tz_rules[0].offset = *tz++ == '-' ? 1L : -1L; + else --- glibc-2.7.orig/debian/patches/any/local-tst-mktime2.diff +++ glibc-2.7/debian/patches/any/local-tst-mktime2.diff @@ -0,0 +1,10 @@ +--- time/tst-mktime2.c.orig ++++ time/tst-mktime2.c +@@ -2,6 +2,7 @@ + #include + #include + #include ++#include + + static time_t time_t_max; + static time_t time_t_min; --- glibc-2.7.orig/debian/patches/any/local-sysctl.diff +++ glibc-2.7/debian/patches/any/local-sysctl.diff @@ -0,0 +1,81 @@ +--- linuxthreads/sysdeps/unix/sysv/linux/smp.h.orig ++++ linuxthreads/sysdeps/unix/sysv/linux/smp.h +@@ -25,24 +25,6 @@ + static inline int + is_smp_system (void) + { +- static const int sysctl_args[] = { CTL_KERN, KERN_VERSION }; +- char buf[512]; +- size_t reslen = sizeof (buf); +- +- /* Try reading the number using `sysctl' first. */ +- if (__sysctl ((int *) sysctl_args, +- sizeof (sysctl_args) / sizeof (sysctl_args[0]), +- buf, &reslen, NULL, 0) < 0) +- { +- /* This was not successful. Now try reading the /proc filesystem. */ +- int fd = __open ("/proc/sys/kernel/version", O_RDONLY); +- if (__builtin_expect (fd, 0) == -1 +- || (reslen = __read (fd, buf, sizeof (buf))) <= 0) +- /* This also didn't work. We give up and say it's a UP machine. */ +- buf[0] = '\0'; +- +- __close (fd); +- } +- +- return strstr (buf, "SMP") != NULL; ++ /* Assume all machines are SMP and/or CMT and/or SMT. */ ++ return 1; + } +--- ports/sysdeps/unix/sysv/linux/arm/ioperm.c.orig ++++ ports/sysdeps/unix/sysv/linux/arm/ioperm.c +@@ -50,6 +50,8 @@ + + #define PATH_ARM_SYSTYPE "/etc/arm_systype" + #define PATH_CPUINFO "/proc/cpuinfo" ++#define PATH_PORTBASE "/proc/bus/isa/portbase" ++#define PATH_PORTSHIFT "/proc/bus/isa/portshift" + + #define MAX_PORT 0x10000 + +@@ -101,15 +103,25 @@ + { + char systype[256]; + int i, n; +- static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE }; +- static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT }; ++ FILE * fp; ++ + size_t len = sizeof(io.base); + +- if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0) +- && ! sysctl (ioshift_name, 3, &io.shift, &len, NULL, 0)) ++ if ((fp = fopen (PATH_PORTBASE, "r"))) + { +- io.initdone = 1; +- return 0; ++ n = fscanf (fp, "%li", &io.io_base); ++ fclose(fp); ++ ++ if (n == 1 && (fp = fopen(PATH_PORTSHIFT, "r"))) ++ { ++ n = fscanf (fp, "%i", &io.shift); ++ fclose(fp); ++ if (n == 1) ++ { ++ io.initdone = 1; ++ return 0; ++ } ++ } + } + + n = readlink (PATH_ARM_SYSTYPE, systype, sizeof (systype) - 1); +@@ -128,8 +140,6 @@ + } + else + { +- FILE * fp; +- + fp = fopen (PATH_CPUINFO, "r"); + if (! fp) + return -1; --- glibc-2.7.orig/debian/patches/any/local-linuxthreads-fatalprepare.diff +++ glibc-2.7/debian/patches/any/local-linuxthreads-fatalprepare.diff @@ -0,0 +1,42 @@ +--- /dev/null ++++ linuxthreads/sysdeps/unix/sysv/linux/fatal-prepare.h +@@ -0,0 +1,39 @@ ++/* Copyright (C) 2003, 2007 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++ ++/* We have to completely disable cancellation. assert() must not be a ++ cancellation point but the implementation uses write() etc. */ ++#ifdef SHARED ++# include ++# define FATAL_PREPARE \ ++ { \ ++ int (*fp) (int, int *); \ ++ fp = __libc_pthread_functions.ptr_pthread_setcancelstate; \ ++ if (fp != NULL) \ ++ fp (PTHREAD_CANCEL_DISABLE, NULL); \ ++ } ++#else ++# pragma weak pthread_setcancelstate ++# define FATAL_PREPARE \ ++ { \ ++ if (pthread_setcancelstate != NULL) \ ++ pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, NULL); \ ++ } ++#endif --- glibc-2.7.orig/debian/patches/any/cvs-sunrpc_rpc_thread.diff +++ glibc-2.7/debian/patches/any/cvs-sunrpc_rpc_thread.diff @@ -0,0 +1,18 @@ +2008-01-09 Ulrich Drepper + + [BZ #5541] + * sunrpc/rpc_thread.c (__rpc_thread_destroy): Also free xports and + pollfd structures. + Patch by André Cruz. + +--- a/sunrpc/rpc_thread.c ++++ b/sunrpc/rpc_thread.c +@@ -29,6 +29,8 @@ + free (tvp->svcraw_private_s); + free (tvp->authdes_cache_s); + free (tvp->authdes_lru_s); ++ free (tvp->svc_xports_s); ++ free (tvp->svc_pollfd_s); + if (tvp != &__libc_tsd_RPC_VARS_mem) + free (tvp); + __libc_tsd_set (RPC_VARS, NULL); --- glibc-2.7.orig/debian/patches/any/git-strfmon-overflow.diff +++ glibc-2.7/debian/patches/any/git-strfmon-overflow.diff @@ -0,0 +1,147 @@ +Description: fix potential integer overflow when using strfmon (CVE-2008-1391) +Bug: http://sourceware.org/bugzilla/show_bug.cgi?id=10600 +Origin: http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=199eb0de8d + +Index: glibc-2.7/stdio-common/printf_fp.c +=================================================================== +--- glibc-2.7.orig/stdio-common/printf_fp.c 2010-05-06 15:27:32.519134934 -0700 ++++ glibc-2.7/stdio-common/printf_fp.c 2010-05-06 15:38:26.702883664 -0700 +@@ -888,16 +888,24 @@ + it is possible that we need two more characters in front of all the + other output. If the amount of memory we have to allocate is too + large use `malloc' instead of `alloca'. */ +- buffer_malloced = ! __libc_use_alloca (chars_needed * 2 * sizeof (wchar_t)); ++ if (__builtin_expect (chars_needed >= (size_t) -1 / sizeof (wchar_t) - 2 ++ || chars_needed < fracdig_max, 0)) ++ { ++ /* Some overflow occurred. */ ++ __set_errno (ERANGE); ++ return -1; ++ } ++ size_t wbuffer_to_alloc = (2 + chars_needed) * sizeof (wchar_t); ++ buffer_malloced = ! __libc_use_alloca (wbuffer_to_alloc); + if (__builtin_expect (buffer_malloced, 0)) + { +- wbuffer = (wchar_t *) malloc ((2 + chars_needed) * sizeof (wchar_t)); ++ wbuffer = (wchar_t *) malloc (wbuffer_to_alloc); + if (wbuffer == NULL) + /* Signal an error to the caller. */ + return -1; + } + else +- wbuffer = (wchar_t *) alloca ((2 + chars_needed) * sizeof (wchar_t)); ++ wbuffer = (wchar_t *) alloca (wbuffer_to_alloc); + wcp = wstartp = wbuffer + 2; /* Let room for rounding. */ + + /* Do the real work: put digits in allocated buffer. */ +Index: glibc-2.7/stdio-common/vfprintf.c +=================================================================== +--- glibc-2.7.orig/stdio-common/vfprintf.c 2010-05-06 15:27:32.499133908 -0700 ++++ glibc-2.7/stdio-common/vfprintf.c 2010-05-06 15:38:26.712883759 -0700 +@@ -1426,23 +1426,29 @@ + left = 1; + } + +- if (width + 32 >= (int) (sizeof (work_buffer) +- / sizeof (work_buffer[0]))) ++ if (__builtin_expect (width >= (size_t) -1 / sizeof (CHAR_T) - 32, 0)) ++ { ++ __set_errno (ERANGE); ++ done = -1; ++ goto all_done; ++ } ++ ++ if (width >= sizeof (work_buffer) / sizeof (work_buffer[0]) - 32) + { + /* We have to use a special buffer. The "32" is just a safe + bet for all the output which is not counted in the width. */ +- if (__libc_use_alloca ((width + 32) * sizeof (CHAR_T))) +- workend = ((CHAR_T *) alloca ((width + 32) * sizeof (CHAR_T)) +- + (width + 32)); ++ size_t needed = ((size_t) width + 32) * sizeof (CHAR_T); ++ if (__libc_use_alloca (needed)) ++ workend = (CHAR_T *) alloca (needed) + width + 32; + else + { +- workstart = (CHAR_T *) malloc ((width + 32) * sizeof (CHAR_T)); ++ workstart = (CHAR_T *) malloc (needed); + if (workstart == NULL) + { + done = -1; + goto all_done; + } +- workend = workstart + (width + 32); ++ workend = workstart + width + 32; + } + } + } +@@ -1452,22 +1458,29 @@ + LABEL (width): + width = read_int (&f); + +- if (width + 32 >= (int) (sizeof (work_buffer) / sizeof (work_buffer[0]))) ++ if (__builtin_expect (width >= (size_t) -1 / sizeof (CHAR_T) - 32, 0)) ++ { ++ __set_errno (ERANGE); ++ done = -1; ++ goto all_done; ++ } ++ ++ if (width >= sizeof (work_buffer) / sizeof (work_buffer[0]) - 32) + { + /* We have to use a special buffer. The "32" is just a safe + bet for all the output which is not counted in the width. */ +- if (__libc_use_alloca ((width + 32) * sizeof (CHAR_T))) +- workend = ((CHAR_T *) alloca ((width + 32) * sizeof (CHAR_T)) +- + (width + 32)); ++ size_t needed = ((size_t) width + 32) * sizeof (CHAR_T); ++ if (__libc_use_alloca (needed)) ++ workend = (CHAR_T *) alloca (needed) + width + 32; + else + { +- workstart = (CHAR_T *) malloc ((width + 32) * sizeof (CHAR_T)); ++ workstart = (CHAR_T *) malloc (needed); + if (workstart == NULL) + { + done = -1; + goto all_done; + } +- workend = workstart + (width + 32); ++ workend = workstart + width + 32; + } + } + if (*f == L_('$')) +@@ -1497,20 +1510,27 @@ + else + prec = 0; + if (prec > width +- && prec + 32 > (int)(sizeof (work_buffer) / sizeof (work_buffer[0]))) ++ && prec > sizeof (work_buffer) / sizeof (work_buffer[0]) - 32) + { +- if (__libc_use_alloca ((prec + 32) * sizeof (CHAR_T))) +- workend = ((CHAR_T *) alloca ((prec + 32) * sizeof (CHAR_T))) +- + (prec + 32); ++ if (__builtin_expect (prec >= (size_t) -1 / sizeof (CHAR_T) - 32, 0)) ++ { ++ __set_errno (ERANGE); ++ done = -1; ++ goto all_done; ++ } ++ size_t needed = ((size_t) prec + 32) * sizeof (CHAR_T); ++ ++ if (__libc_use_alloca (needed)) ++ workend = (CHAR_T *) alloca (needed) + prec + 32; + else + { +- workstart = (CHAR_T *) malloc ((prec + 32) * sizeof (CHAR_T)); ++ workstart = (CHAR_T *) malloc (needed); + if (workstart == NULL) + { + done = -1; + goto all_done; + } +- workend = workstart + (prec + 32); ++ workend = workstart + prec + 32; + } + } + JUMP (*f, step2_jumps); --- glibc-2.7.orig/debian/patches/any/local-ldconfig-timestamps.diff +++ glibc-2.7/debian/patches/any/local-ldconfig-timestamps.diff @@ -0,0 +1,104 @@ +Index: elf/ldconfig.c +=================================================================== +--- elf/ldconfig.c.orig ++++ elf/ldconfig.c +@@ -82,6 +82,7 @@ + int flag; + ino64_t ino; + dev_t dev; ++ time_t last_changed; + struct dir_entry *next; + }; + +@@ -101,6 +102,7 @@ + int opt_format = 1; + + /* Build cache. */ ++/* 0: don't build cache; 1: build if not up-to-date; 2: always build it. */ + static int opt_build_cache = 1; + + /* Generate links. */ +@@ -138,6 +140,7 @@ + { "print-cache", 'p', NULL, 0, N_("Print cache"), 0}, + { "verbose", 'v', NULL, 0, N_("Generate verbose messages"), 0}, + { NULL, 'N', NULL, 0, N_("Don't build cache"), 0}, ++ { "force", 'F', NULL, 0, N_("Generate cache even if it looks up-to-date"), 0}, + { NULL, 'X', NULL, 0, N_("Don't generate links"), 0}, + { NULL, 'r', N_("ROOT"), 0, N_("Change to and use ROOT as root directory"), 0}, + { NULL, 'C', N_("CACHE"), 0, N_("Use CACHE as cache file"), 0}, +@@ -148,6 +151,9 @@ + { NULL, 0, NULL, 0, NULL, 0 } + }; + ++/* Most recent modification time of the configuration files */ ++static time_t config_timestamp = 0; ++ + #define PROCINFO_CLASS static + #include + +@@ -251,6 +257,9 @@ + case 'N': + opt_build_cache = 0; + break; ++ case 'F': ++ opt_build_cache = 2; ++ break; + case 'n': + opt_build_cache = 0; + opt_only_cline = 1; +@@ -383,6 +392,7 @@ + { + entry->ino = stat_buf.st_ino; + entry->dev = stat_buf.st_dev; ++ entry->last_changed = stat_buf.st_mtime; + + add_single_dir (entry, 1); + } +@@ -967,6 +977,26 @@ + } + } + ++/* Tells whether one of the directories is more recent than the cache */ ++static bool ++cache_needs_update (void) ++{ ++ struct stat64 stat_buf; ++ struct dir_entry *entry; ++ ++ if (stat64 (cache_file, &stat_buf)) ++ return true; ++ ++ if (config_timestamp >= stat_buf.st_mtime) ++ return true; ++ ++ for (entry = dir_entries; entry != NULL; entry = entry->next) ++ { ++ if (entry->last_changed >= stat_buf.st_mtime) ++ return true; ++ } ++ return false; ++} + + static void parse_conf_include (const char *config_file, unsigned int lineno, + bool do_chroot, const char *pattern); +@@ -1004,6 +1034,10 @@ + return; + } + ++ struct stat64 stat_buf; ++ if (!fstat64 (fileno(file), &stat_buf) && stat_buf.st_mtime > config_timestamp) ++ config_timestamp = stat_buf.st_mtime; ++ + /* No threads use this stream. */ + __fsetlocking (file, FSETLOCKING_BYCALLER); + +@@ -1297,6 +1331,9 @@ + add_system_dir (LIBDIR); + } + ++ if (opt_build_cache == 1 && !cache_needs_update ()) ++ return 0; ++ + search_dirs (); + + if (opt_build_cache) --- glibc-2.7.orig/debian/patches/any/local-ipv6-lookup.diff +++ glibc-2.7/debian/patches/any/local-ipv6-lookup.diff @@ -0,0 +1,41 @@ +--- sysdeps/posix/getaddrinfo.c~ 2008-03-06 16:51:23.793167849 +0100 ++++ sysdeps/posix/getaddrinfo.c 2008-03-06 17:06:36.696938795 +0100 +@@ -263,7 +263,7 @@ + static int + gaih_inet (const char *name, const struct gaih_service *service, + const struct addrinfo *req, struct addrinfo **pai, +- unsigned int *naddrs) ++ unsigned int *naddrs, bool usable_ipv6) + { + const struct gaih_typeproto *tp = gaih_inet_typeproto; + struct gaih_servtuple *st = (struct gaih_servtuple *) &nullserv; +@@ -706,7 +706,7 @@ + if (fct != NULL) + { + if (req->ai_family == AF_INET6 +- || req->ai_family == AF_UNSPEC) ++ || (req->ai_family == AF_UNSPEC && usable_ipv6)) + { + gethosts (AF_INET6, struct in6_addr); + no_inet6_data = no_data; +@@ -1905,7 +1905,7 @@ + if (hints->ai_family == AF_UNSPEC || hints->ai_family == AF_INET + || hints->ai_family == AF_INET6) + { +- last_i = gaih_inet (name, pservice, hints, end, &naddrs); ++ last_i = gaih_inet (name, pservice, hints, end, &naddrs, seen_ipv6); + if (last_i != 0) + { + freeaddrinfo (p); +--- sysdeps/unix/sysv/linux/check_pf.c~ 2008-03-06 16:51:24.073172073 +0100 ++++ sysdeps/unix/sysv/linux/check_pf.c 2008-03-06 17:08:00.978210159 +0100 +@@ -181,7 +181,8 @@ + } + else + { +- if (!IN6_IS_ADDR_LOOPBACK (address)) ++ if (!IN6_IS_ADDR_LOOPBACK (address ?: local) && ++ ifam->ifa_scope < RT_SCOPE_LINK) + *seen_ipv6 = true; + } + } --- glibc-2.7.orig/debian/patches/any/local-missing-linux_types.h.diff +++ glibc-2.7/debian/patches/any/local-missing-linux_types.h.diff @@ -0,0 +1,10 @@ +--- glibc-2.6.orig/sysdeps/unix/sysv/linux/netinet/if_fddi.h ++++ glibc-2.6/sysdeps/unix/sysv/linux/netinet/if_fddi.h +@@ -23,6 +23,7 @@ + #include + #include + ++#include + #include + + #ifdef __USE_BSD --- glibc-2.7.orig/debian/patches/any/local-linuxthreads-semaphore_h.diff +++ glibc-2.7/debian/patches/any/local-linuxthreads-semaphore_h.diff @@ -0,0 +1,181 @@ +--- glibc-2.6.orig/linuxthreads/semaphore.h ++++ /dev/null +@@ -1,87 +0,0 @@ +-/* Linuxthreads - a simple clone()-based implementation of Posix */ +-/* threads for Linux. */ +-/* Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr) */ +-/* */ +-/* This program is free software; you can redistribute it and/or */ +-/* modify it under the terms of the GNU Library General Public License */ +-/* as published by the Free Software Foundation; either version 2 */ +-/* of the License, or (at your option) any later version. */ +-/* */ +-/* This program is distributed in the hope that it will be useful, */ +-/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +-/* GNU Library General Public License for more details. */ +- +-#ifndef _SEMAPHORE_H +-#define _SEMAPHORE_H 1 +- +-#include +-#include +-#ifdef __USE_XOPEN2K +-# define __need_timespec +-# include +-#endif +- +-#ifndef _PTHREAD_DESCR_DEFINED +-/* Thread descriptors. Needed for `sem_t' definition. */ +-typedef struct _pthread_descr_struct *_pthread_descr; +-# define _PTHREAD_DESCR_DEFINED +-#endif +- +-/* System specific semaphore definition. */ +-typedef struct +-{ +- struct _pthread_fastlock __sem_lock; +- int __sem_value; +- _pthread_descr __sem_waiting; +-} sem_t; +- +- +- +-/* Value returned if `sem_open' failed. */ +-#define SEM_FAILED ((sem_t *) 0) +- +-/* Maximum value the semaphore can have. */ +-#define SEM_VALUE_MAX (2147483647) +- +- +-__BEGIN_DECLS +- +-/* Initialize semaphore object SEM to VALUE. If PSHARED then share it +- with other processes. */ +-extern int sem_init (sem_t *__sem, int __pshared, unsigned int __value) __THROW; +- +-/* Free resources associated with semaphore object SEM. */ +-extern int sem_destroy (sem_t *__sem) __THROW; +- +-/* Open a named semaphore NAME with open flaot OFLAG. */ +-extern sem_t *sem_open (__const char *__name, int __oflag, ...) __THROW; +- +-/* Close descriptor for named semaphore SEM. */ +-extern int sem_close (sem_t *__sem) __THROW; +- +-/* Remove named semaphore NAME. */ +-extern int sem_unlink (__const char *__name) __THROW; +- +-/* Wait for SEM being posted. */ +-extern int sem_wait (sem_t *__sem); +- +-#ifdef __USE_XOPEN2K +-/* Similar to `sem_wait' but wait only until ABSTIME. */ +-extern int sem_timedwait (sem_t *__restrict __sem, +- __const struct timespec *__restrict __abstime); +-#endif +- +-/* Test whether SEM is posted. */ +-extern int sem_trywait (sem_t *__sem) __THROW; +- +-/* Post SEM. */ +-extern int sem_post (sem_t *__sem) __THROW; +- +-/* Get current value of SEM and store it in *SVAL. */ +-extern int sem_getvalue (sem_t *__restrict __sem, int *__restrict __sval) +- __THROW; +- +-__END_DECLS +- +-#endif /* semaphore.h */ +--- glibc-2.6.orig/linuxthreads/sysdeps/pthread/semaphore.h ++++ glibc-2.6/linuxthreads/sysdeps/pthread/semaphore.h +@@ -1 +1,87 @@ +-#include ++/* Linuxthreads - a simple clone()-based implementation of Posix */ ++/* threads for Linux. */ ++/* Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr) */ ++/* */ ++/* This program is free software; you can redistribute it and/or */ ++/* modify it under the terms of the GNU Library General Public License */ ++/* as published by the Free Software Foundation; either version 2 */ ++/* of the License, or (at your option) any later version. */ ++/* */ ++/* This program is distributed in the hope that it will be useful, */ ++/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ ++/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ ++/* GNU Library General Public License for more details. */ ++ ++#ifndef _SEMAPHORE_H ++#define _SEMAPHORE_H 1 ++ ++#include ++#include ++#ifdef __USE_XOPEN2K ++# define __need_timespec ++# include ++#endif ++ ++#ifndef _PTHREAD_DESCR_DEFINED ++/* Thread descriptors. Needed for `sem_t' definition. */ ++typedef struct _pthread_descr_struct *_pthread_descr; ++# define _PTHREAD_DESCR_DEFINED ++#endif ++ ++/* System specific semaphore definition. */ ++typedef struct ++{ ++ struct _pthread_fastlock __sem_lock; ++ int __sem_value; ++ _pthread_descr __sem_waiting; ++} sem_t; ++ ++ ++ ++/* Value returned if `sem_open' failed. */ ++#define SEM_FAILED ((sem_t *) 0) ++ ++/* Maximum value the semaphore can have. */ ++#define SEM_VALUE_MAX (2147483647) ++ ++ ++__BEGIN_DECLS ++ ++/* Initialize semaphore object SEM to VALUE. If PSHARED then share it ++ with other processes. */ ++extern int sem_init (sem_t *__sem, int __pshared, unsigned int __value) __THROW; ++ ++/* Free resources associated with semaphore object SEM. */ ++extern int sem_destroy (sem_t *__sem) __THROW; ++ ++/* Open a named semaphore NAME with open flaot OFLAG. */ ++extern sem_t *sem_open (__const char *__name, int __oflag, ...) __THROW; ++ ++/* Close descriptor for named semaphore SEM. */ ++extern int sem_close (sem_t *__sem) __THROW; ++ ++/* Remove named semaphore NAME. */ ++extern int sem_unlink (__const char *__name) __THROW; ++ ++/* Wait for SEM being posted. */ ++extern int sem_wait (sem_t *__sem); ++ ++#ifdef __USE_XOPEN2K ++/* Similar to `sem_wait' but wait only until ABSTIME. */ ++extern int sem_timedwait (sem_t *__restrict __sem, ++ __const struct timespec *__restrict __abstime); ++#endif ++ ++/* Test whether SEM is posted. */ ++extern int sem_trywait (sem_t *__sem) __THROW; ++ ++/* Post SEM. */ ++extern int sem_post (sem_t *__sem) __THROW; ++ ++/* Get current value of SEM and store it in *SVAL. */ ++extern int sem_getvalue (sem_t *__restrict __sem, int *__restrict __sval) ++ __THROW; ++ ++__END_DECLS ++ ++#endif /* semaphore.h */ --- glibc-2.7.orig/debian/patches/any/local-allocalim-header.diff +++ glibc-2.7/debian/patches/any/local-allocalim-header.diff @@ -0,0 +1,11 @@ +--- sysdeps/unix/sysv/linux/check_pf.c 2007-10-16 14:05:26.798517293 +0000 ++++ sysdeps/unix/sysv/linux/check_pf.c 2007-10-16 14:06:11.811066397 +0000 +@@ -25,6 +25,8 @@ + #include + #include + #include ++#include ++#include + #include + + #include --- glibc-2.7.orig/debian/patches/any/submitted-ieee754_h.diff +++ glibc-2.7/debian/patches/any/submitted-ieee754_h.diff @@ -0,0 +1,142 @@ +Index: sysdeps/ia64/ieee754.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/ia64/ieee754.h,v +retrieving revision 1.2 +diff -u -d -p -r1.2 ieee754.h +--- sysdeps/ia64/ieee754.h 6 Jul 2001 04:55:54 -0000 1.2 ++++ sysdeps/ia64/ieee754.h 10 Feb 2008 17:48:37 -0000 +@@ -80,7 +80,7 @@ union ieee754_double + unsigned int mantissa1:32; + #endif /* Big endian. */ + #if __BYTE_ORDER == __LITTLE_ENDIAN +-# if __FLOAT_WORD_ORDER == BIG_ENDIAN ++# if __FLOAT_WORD_ORDER == __BIG_ENDIAN + unsigned int mantissa0:20; + unsigned int exponent:11; + unsigned int negative:1; +@@ -106,7 +106,7 @@ union ieee754_double + unsigned int mantissa0:19; + unsigned int mantissa1:32; + #else +-# if __FLOAT_WORD_ORDER == BIG_ENDIAN ++# if __FLOAT_WORD_ORDER == __BIG_ENDIAN + unsigned int mantissa0:19; + unsigned int quiet_nan:1; + unsigned int exponent:11; +@@ -143,7 +143,7 @@ union ieee854_long_double + unsigned int mantissa1:32; + #endif + #if __BYTE_ORDER == __LITTLE_ENDIAN +-# if __FLOAT_WORD_ORDER == BIG_ENDIAN ++# if __FLOAT_WORD_ORDER == __BIG_ENDIAN + unsigned int empty0:32; + unsigned int exponent:15; + unsigned int negative:1; +@@ -175,7 +175,7 @@ union ieee854_long_double + unsigned int mantissa1:32; + #endif + #if __BYTE_ORDER == __LITTLE_ENDIAN +-# if __FLOAT_WORD_ORDER == BIG_ENDIAN ++# if __FLOAT_WORD_ORDER == __BIG_ENDIAN + unsigned int empty0:32; + unsigned int exponent:15; + unsigned int negative:1; +Index: sysdeps/ieee754/ieee754.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/ieee754/ieee754.h,v +retrieving revision 1.12 +diff -u -d -p -r1.12 ieee754.h +--- sysdeps/ieee754/ieee754.h 6 Jul 2001 04:55:54 -0000 1.12 ++++ sysdeps/ieee754/ieee754.h 10 Feb 2008 17:48:37 -0000 +@@ -80,7 +80,7 @@ union ieee754_double + unsigned int mantissa1:32; + #endif /* Big endian. */ + #if __BYTE_ORDER == __LITTLE_ENDIAN +-# if __FLOAT_WORD_ORDER == BIG_ENDIAN ++# if __FLOAT_WORD_ORDER == __BIG_ENDIAN + unsigned int mantissa0:20; + unsigned int exponent:11; + unsigned int negative:1; +@@ -106,7 +106,7 @@ union ieee754_double + unsigned int mantissa0:19; + unsigned int mantissa1:32; + #else +-# if __FLOAT_WORD_ORDER == BIG_ENDIAN ++# if __FLOAT_WORD_ORDER == __BIG_ENDIAN + unsigned int mantissa0:19; + unsigned int quiet_nan:1; + unsigned int exponent:11; +@@ -142,7 +142,7 @@ union ieee854_long_double + unsigned int mantissa1:32; + #endif + #if __BYTE_ORDER == __LITTLE_ENDIAN +-# if __FLOAT_WORD_ORDER == BIG_ENDIAN ++# if __FLOAT_WORD_ORDER == __BIG_ENDIAN + unsigned int exponent:15; + unsigned int negative:1; + unsigned int empty:16; +@@ -171,7 +171,7 @@ union ieee854_long_double + unsigned int mantissa1:32; + #endif + #if __BYTE_ORDER == __LITTLE_ENDIAN +-# if __FLOAT_WORD_ORDER == BIG_ENDIAN ++# if __FLOAT_WORD_ORDER == __BIG_ENDIAN + unsigned int exponent:15; + unsigned int negative:1; + unsigned int empty:16; +--- ports/sysdeps/mips/ieee754.h ++++ ports/sysdeps/mips/ieee754.h +@@ -83,7 +83,7 @@ union ieee754_double + unsigned int mantissa1:32; + #endif /* Big endian. */ + #if __BYTE_ORDER == __LITTLE_ENDIAN +-# if __FLOAT_WORD_ORDER == BIG_ENDIAN ++# if __FLOAT_WORD_ORDER == __BIG_ENDIAN + unsigned int mantissa0:20; + unsigned int exponent:11; + unsigned int negative:1; +@@ -109,7 +109,7 @@ union ieee754_double + unsigned int mantissa0:19; + unsigned int mantissa1:32; + #else +-# if __FLOAT_WORD_ORDER == BIG_ENDIAN ++# if __FLOAT_WORD_ORDER == __BIG_ENDIAN + unsigned int mantissa0:19; + unsigned int quiet_nan:1; + unsigned int exponent:11; +@@ -203,7 +203,7 @@ union ieee854_long_double + unsigned int mantissa1:32; + #endif + #if __BYTE_ORDER == __LITTLE_ENDIAN +-# if __FLOAT_WORD_ORDER == BIG_ENDIAN ++# if __FLOAT_WORD_ORDER == __BIG_ENDIAN + unsigned int exponent:15; + unsigned int negative:1; + unsigned int empty:16; +@@ -232,7 +232,7 @@ union ieee854_long_double + unsigned int mantissa1:32; + #endif + #if __BYTE_ORDER == __LITTLE_ENDIAN +-# if __FLOAT_WORD_ORDER == BIG_ENDIAN ++# if __FLOAT_WORD_ORDER == __BIG_ENDIAN + unsigned int exponent:15; + unsigned int negative:1; + unsigned int empty:16; +@@ -272,7 +272,7 @@ union ieee854_long_double + unsigned int mantissa1:32; + #endif /* Big endian. */ + #if __BYTE_ORDER == __LITTLE_ENDIAN +-# if __FLOAT_WORD_ORDER == BIG_ENDIAN ++# if __FLOAT_WORD_ORDER == __BIG_ENDIAN + unsigned int mantissa0:20; + unsigned int exponent:11; + unsigned int negative:1; +@@ -298,7 +298,7 @@ union ieee854_long_double + unsigned int mantissa0:19; + unsigned int mantissa1:32; + #else +-# if __FLOAT_WORD_ORDER == BIG_ENDIAN ++# if __FLOAT_WORD_ORDER == __BIG_ENDIAN + unsigned int mantissa0:19; + unsigned int quiet_nan:1; + unsigned int exponent:11; --- glibc-2.7.orig/debian/patches/any/local-ldconfig-fsync.diff +++ glibc-2.7/debian/patches/any/local-ldconfig-fsync.diff @@ -0,0 +1,10 @@ +--- glibc-2.7.orig/elf/cache.c ++++ glibc-2.7/elf/cache.c +@@ -426,6 +426,7 @@ + } + + if (write (fd, strings, total_strlen) != (ssize_t) total_strlen ++ || fsync (fd) + || close (fd)) + error (EXIT_FAILURE, errno, _("Writing of cache data failed")); + --- glibc-2.7.orig/debian/patches/any/local-libgcc-compat-main.diff +++ glibc-2.7/debian/patches/any/local-libgcc-compat-main.diff @@ -0,0 +1,936 @@ +# DP: Description: libgcc-compat symbols for i386, sparc, +# alpha, ia64 (derived from RedHat's), s390 +# DP: Author: Guido Guenther, GOTO Masanori +# DP: Upstream status: Not submitted +# DP: Date: 2002-10-13, updated 2006-05-28 + +--- /dev/null ++++ sysdeps/i386/libgcc-compat.c +@@ -0,0 +1,75 @@ ++/* pre-.hidden libgcc compatibility ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Guido Guenther ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++ ++#include ++#include ++ ++#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2_6) ++ ++extern int32_t __cmpdi2 (int64_t, int64_t); ++int32_t __cmpdi2_internal (int64_t u, int64_t v) ++{ ++ return __cmpdi2 (u, v); ++} ++symbol_version (__cmpdi2_internal, __cmpdi2, GLIBC_2.0); ++ ++ ++extern int32_t __ucmpdi2 (int64_t, int64_t); ++int32_t __ucmpdi2_internal (int64_t u, int64_t v) ++{ ++ return __ucmpdi2 (u, v); ++} ++symbol_version (__ucmpdi2_internal, __ucmpdi2, GLIBC_2.0); ++ ++ ++extern int64_t __fixunsdfdi (double); ++int64_t __fixunsdfdi_internal (double d) ++{ ++ return __fixunsdfdi (d); ++} ++symbol_version (__fixunsdfdi_internal, __fixunsdfdi, GLIBC_2.0); ++ ++extern int64_t __fixunssfdi (float); ++int64_t __fixunssfdi_internal (float d) ++{ ++ return __fixunssfdi (d); ++} ++ ++symbol_version (__fixunsfdi_internal, __fixunsfdi, GLIBC_2.0); ++ ++typedef float XFtype __attribute__ ((mode (XF))); ++ ++extern int64_t __fixunsxfdi (XFtype); ++int64_t __fixunsxfdi_internal (XFtype d) ++{ ++ return __fixunsxfdi (d); ++} ++ ++symbol_version (__fixunsxfdi_internal, __fixunsxfdi, GLIBC_2.0); ++ ++extern double __floatdidf (int64_t); ++double __floatdidf_internal (int64_t u) ++{ ++ return __floatdidf (u); ++} ++symbol_version (__floatdidf_internal, __floatdidf, GLIBC_2.0); ++ ++#endif +--- sysdeps/i386/Makefile.orig ++++ sysdeps/i386/Makefile +@@ -9,6 +9,11 @@ + # On i686 we must avoid generating the trampoline functions generated + # to get the GOT pointer. + CFLAGS-initfini.s += -march=i386 -mtune=i386 ++ifeq (yes,$(build-shared)) ++# Compatibility ++sysdep_routines += libgcc-compat ++shared-only-routines += libgcc-compat ++endif + endif + + ifeq ($(subdir),gmon) +--- sysdeps/i386/Versions.orig ++++ sysdeps/i386/Versions +@@ -2,6 +2,9 @@ + GLIBC_2.0 { + # Functions from libgcc. + __divdi3; __moddi3; __udivdi3; __umoddi3; ++ __cmpdi2; __ucmpdi2; ++ __fixunsdfdi; __fixunssfdi; __fixunsxfdi; ++ __floatdidf; + } + GLIBC_2.1 { + # global variable +--- /dev/null ++++ sysdeps/sparc/sparc32/libgcc-compat.c +@@ -0,0 +1,121 @@ ++/* pre-.hidden libgcc compatibility ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Guido Guenther ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++ ++#include ++#include ++ ++#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2_6) ++ ++extern int64_t __ashldi3 (int64_t, int32_t); ++int64_t __ashldi3_internal (int64_t u, int32_t b) ++{ ++ return __ashldi3 (u, b); ++} ++symbol_version (__ashldi3_internal, __ashldi3, GLIBC_2.0); ++ ++ ++extern int64_t __ashrdi3 (int64_t, int32_t); ++int64_t __ashrdi3_internal (int64_t u, int32_t b) ++{ ++ return __ashrdi3 (u, b); ++} ++symbol_version (__ashrdi3_internal, __ashrdi3, GLIBC_2.0); ++ ++ ++extern int64_t __lshrdi3 (int64_t, int32_t); ++int64_t __lshrdi3_internal (int64_t u, int32_t b) ++{ ++ return __lshrdi3 (u, b); ++} ++symbol_version (__lshrdi3_internal, __lshrdi3, GLIBC_2.0); ++ ++extern int32_t __cmpdi2 (int64_t, int64_t); ++int32_t __cmpdi2_internal (int64_t u, int64_t v) ++{ ++ return __cmpdi2 (u, v); ++} ++symbol_version (__cmpdi2_internal, __cmpdi2, GLIBC_2.0); ++ ++ ++extern int32_t __ucmpdi2 (int64_t, int64_t); ++int32_t __ucmpdi2_internal (int64_t u, int64_t v) ++{ ++ return __ucmpdi2 (u, v); ++} ++symbol_version (__ucmpdi2_internal, __ucmpdi2, GLIBC_2.0); ++ ++ ++extern int64_t __fixdfdi (double); ++int64_t __fixdfdi_internal (double d) ++{ ++ return __fixdfdi (d); ++} ++symbol_version (__fixdfdi_internal, __fixdfdi, GLIBC_2.0); ++ ++ ++extern int64_t __fixsfdi (float); ++int64_t __fixsfdi_internal (float d) ++{ ++ return __fixsfdi (d); ++} ++symbol_version (__fixsfdi_internal, __fixsfdi, GLIBC_2.0); ++ ++ ++extern int64_t __fixunsdfdi (double); ++int64_t __fixunsdfdi_internal (double d) ++{ ++ return __fixunsdfdi (d); ++} ++symbol_version (__fixunsdfdi_internal, __fixunsdfdi, GLIBC_2.0); ++ ++extern int64_t __fixunssfdi (float); ++int64_t __fixunssfdi_internal (float d) ++{ ++ return __fixunssfdi (d); ++} ++ ++symbol_version (__fixunssfdi_internal, __fixunssfdi, GLIBC_2.0); ++ ++ ++extern double __floatdidf (int64_t); ++double __floatdidf_internal (int64_t u) ++{ ++ return __floatdidf (u); ++} ++symbol_version (__floatdidf_internal, __floatdidf, GLIBC_2.0); ++ ++ ++extern float floatdisf (int64_t); ++float __floatdisf_internal (int64_t u) ++{ ++ return __floatdisf (u); ++} ++symbol_version (__floatdisf_internal, __floatdisf, GLIBC_2.0); ++ ++ ++extern int64_t __muldi3 (int64_t, int64_t); ++int64_t __muldi3_internal (int64_t u, int64_t v) ++{ ++ return __muldi3 (u, v); ++} ++symbol_version (__muldi3_internal, __muldi3, GLIBC_2.0); ++ ++#endif +--- sysdeps/sparc/sparc32/Makefile.orig ++++ sysdeps/sparc/sparc32/Makefile +@@ -20,6 +20,14 @@ + sysdep_routines = dotmul umul $(divrem) alloca + endif # gnulib + ++ifeq ($(subdir),csu) ++ifeq (yes,$(build-shared)) ++# Compatibility ++sysdep_routines += libgcc-compat ++shared-only-routines += libgcc-compat ++endif ++endif ++ + # We distribute these files, even though they are generated, + # so as to avoid the need for a functioning m4 to build the library. + divrem := sdiv udiv rem urem +--- sysdeps/sparc/sparc32/Versions.orig ++++ sysdeps/sparc/sparc32/Versions +@@ -1,5 +1,9 @@ + libc { + GLIBC_2.0 { + .div; .mul; .rem; .udiv; .umul; .urem; ++ __divdi3; __moddi3; __udivdi3; __umoddi3; __muldi3; ++ __ashldi3; __ashrdi3; __lshrdi3; __cmpdi2; __ucmpdi2; ++ __fixdfdi; __fixsfdi; __fixunsdfdi; __fixunssfdi; ++ __floatdidf; __floatdisf; + } + } +--- /dev/null ++++ sysdeps/alpha/libgcc-compat.c +@@ -0,0 +1,35 @@ ++/* pre-.hidden libgcc compatibility ++ Copyright (C) 2002 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Guido Guenther ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2_6) ++ ++typedef int int128_t __attribute__((__mode__(TI))); ++ ++extern int128_t __multi3 (int128_t, int128_t); ++int128_t INTUSE (__multi3) (int128_t x, int128_t y) ++{ ++ return __multi3 (x, y); ++} ++symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.0); ++ ++#endif +--- sysdeps/alpha/Versions.orig ++++ sysdeps/alpha/Versions +@@ -3,6 +3,8 @@ + # functions with special/multiple interfaces + __divqu; __remqu; __divqs; __remqs; __divlu; __remlu; __divls; + __remls; __divl; __reml; __divq; __remq; __divqu; __remqu; ++ # libgcc-compat ++ __multi3; + } + } + libm { +--- sysdeps/alpha/Makefile.orig ++++ sysdeps/alpha/Makefile +@@ -46,3 +46,11 @@ + # libc.so requires about 16k for the small data area, which is well + # below the 64k maximum. + pic-ccflag = -fpic ++ ++ifeq ($(subdir),csu) ++ifeq (yes,$(build-shared)) ++# Compatibility ++sysdep_routines += libgcc-compat ++shared-only-routines += libgcc-compat ++endif ++endif +--- sysdeps/ia64/Makefile.orig ++++ sysdeps/ia64/Makefile +@@ -12,8 +12,8 @@ + + ifeq (yes,$(build-shared)) + # Compatibility +-sysdep_routines += ia64libgcc +-shared-only-routines += ia64libgcc ++sysdep_routines += libgcc-compat ++shared-only-routines += libgcc-compat + endif + endif + +--- sysdeps/ia64/Versions.orig ++++ sysdeps/ia64/Versions +@@ -10,6 +10,10 @@ + # Functions from libgcc. + __divtf3; __divdf3; __divsf3; __divdi3; __moddi3; __udivdi3; __umoddi3; + __multi3; ++ __divsi3; ++ __modsi3; ++ __udivsi3; ++ __umodsi3; + } + } + libm { +--- sysdeps/ia64/ia64libgcc.S ++++ /dev/null +@@ -1,350 +0,0 @@ +-/* From the Intel IA-64 Optimization Guide, choose the minimum latency +- alternative. */ +- +-#include +-#undef ret +- +-#include +- +-#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6) +- +-/* __divtf3 +- Compute a 80-bit IEEE double-extended quotient. +- farg0 holds the dividend. farg1 holds the divisor. */ +- +-ENTRY(___divtf3) +- cmp.eq p7, p0 = r0, r0 +- frcpa.s0 f10, p6 = farg0, farg1 +- ;; +-(p6) cmp.ne p7, p0 = r0, r0 +- .pred.rel.mutex p6, p7 +-(p6) fnma.s1 f11 = farg1, f10, f1 +-(p6) fma.s1 f12 = farg0, f10, f0 +- ;; +-(p6) fma.s1 f13 = f11, f11, f0 +-(p6) fma.s1 f14 = f11, f11, f11 +- ;; +-(p6) fma.s1 f11 = f13, f13, f11 +-(p6) fma.s1 f13 = f14, f10, f10 +- ;; +-(p6) fma.s1 f10 = f13, f11, f10 +-(p6) fnma.s1 f11 = farg1, f12, farg0 +- ;; +-(p6) fma.s1 f11 = f11, f10, f12 +-(p6) fnma.s1 f12 = farg1, f10, f1 +- ;; +-(p6) fma.s1 f10 = f12, f10, f10 +-(p6) fnma.s1 f12 = farg1, f11, farg0 +- ;; +-(p6) fma.s0 fret0 = f12, f10, f11 +-(p7) mov fret0 = f10 +- br.ret.sptk rp +-END(___divtf3) +- .symver ___divtf3, __divtf3@GLIBC_2.2 +- +-/* __divdf3 +- Compute a 64-bit IEEE double quotient. +- farg0 holds the dividend. farg1 holds the divisor. */ +- +-ENTRY(___divdf3) +- cmp.eq p7, p0 = r0, r0 +- frcpa.s0 f10, p6 = farg0, farg1 +- ;; +-(p6) cmp.ne p7, p0 = r0, r0 +- .pred.rel.mutex p6, p7 +-(p6) fmpy.s1 f11 = farg0, f10 +-(p6) fnma.s1 f12 = farg1, f10, f1 +- ;; +-(p6) fma.s1 f11 = f12, f11, f11 +-(p6) fmpy.s1 f13 = f12, f12 +- ;; +-(p6) fma.s1 f10 = f12, f10, f10 +-(p6) fma.s1 f11 = f13, f11, f11 +- ;; +-(p6) fmpy.s1 f12 = f13, f13 +-(p6) fma.s1 f10 = f13, f10, f10 +- ;; +-(p6) fma.d.s1 f11 = f12, f11, f11 +-(p6) fma.s1 f10 = f12, f10, f10 +- ;; +-(p6) fnma.d.s1 f8 = farg1, f11, farg0 +- ;; +-(p6) fma.d fret0 = f8, f10, f11 +-(p7) mov fret0 = f10 +- br.ret.sptk rp +- ;; +-END(___divdf3) +- .symver ___divdf3, __divdf3@GLIBC_2.2 +- +-/* __divsf3 +- Compute a 32-bit IEEE float quotient. +- farg0 holds the dividend. farg1 holds the divisor. */ +- +-ENTRY(___divsf3) +- cmp.eq p7, p0 = r0, r0 +- frcpa.s0 f10, p6 = farg0, farg1 +- ;; +-(p6) cmp.ne p7, p0 = r0, r0 +- .pred.rel.mutex p6, p7 +-(p6) fmpy.s1 f8 = farg0, f10 +-(p6) fnma.s1 f9 = farg1, f10, f1 +- ;; +-(p6) fma.s1 f8 = f9, f8, f8 +-(p6) fmpy.s1 f9 = f9, f9 +- ;; +-(p6) fma.s1 f8 = f9, f8, f8 +-(p6) fmpy.s1 f9 = f9, f9 +- ;; +-(p6) fma.d.s1 f10 = f9, f8, f8 +- ;; +-(p6) fnorm.s.s0 fret0 = f10 +-(p7) mov fret0 = f10 +- br.ret.sptk rp +- ;; +-END(___divsf3) +- .symver ___divsf3, __divsf3@GLIBC_2.2 +- +-/* __divdi3 +- Compute a 64-bit integer quotient. +- in0 holds the dividend. in1 holds the divisor. */ +- +-ENTRY(___divdi3) +- .regstk 2,0,0,0 +- /* Transfer inputs to FP registers. */ +- setf.sig f8 = in0 +- setf.sig f9 = in1 +- ;; +- /* Convert the inputs to FP, so that they won't be treated as +- unsigned. */ +- fcvt.xf f8 = f8 +- fcvt.xf f9 = f9 +- ;; +- /* Compute the reciprocal approximation. */ +- frcpa.s1 f10, p6 = f8, f9 +- ;; +- /* 3 Newton-Raphson iterations. */ +-(p6) fnma.s1 f11 = f9, f10, f1 +-(p6) fmpy.s1 f12 = f8, f10 +- ;; +-(p6) fmpy.s1 f13 = f11, f11 +-(p6) fma.s1 f12 = f11, f12, f12 +- ;; +-(p6) fma.s1 f10 = f11, f10, f10 +-(p6) fma.s1 f11 = f13, f12, f12 +- ;; +-(p6) fma.s1 f10 = f13, f10, f10 +-(p6) fnma.s1 f12 = f9, f11, f8 +- ;; +-(p6) fma.s1 f10 = f12, f10, f11 +- ;; +- /* Round quotient to an integer. */ +- fcvt.fx.trunc.s1 f10 = f10 +- ;; +- /* Transfer result to GP registers. */ +- getf.sig ret0 = f10 +- br.ret.sptk rp +- ;; +-END(___divdi3) +- .symver ___divdi3, __divdi3@GLIBC_2.2 +- +-/* __moddi3 +- Compute a 64-bit integer modulus. +- in0 holds the dividend (a). in1 holds the divisor (b). */ +- +-ENTRY(___moddi3) +- .regstk 2,0,0,0 +- /* Transfer inputs to FP registers. */ +- setf.sig f14 = in0 +- setf.sig f9 = in1 +- ;; +- /* Convert the inputs to FP, so that they won't be treated as +- unsigned. */ +- fcvt.xf f8 = f14 +- fcvt.xf f9 = f9 +- ;; +- /* Compute the reciprocal approximation. */ +- frcpa.s1 f10, p6 = f8, f9 +- ;; +- /* 3 Newton-Raphson iterations. */ +-(p6) fmpy.s1 f12 = f8, f10 +-(p6) fnma.s1 f11 = f9, f10, f1 +- ;; +-(p6) fma.s1 f12 = f11, f12, f12 +-(p6) fmpy.s1 f13 = f11, f11 +- ;; +-(p6) fma.s1 f10 = f11, f10, f10 +-(p6) fma.s1 f11 = f13, f12, f12 +- ;; +- sub in1 = r0, in1 +-(p6) fma.s1 f10 = f13, f10, f10 +-(p6) fnma.s1 f12 = f9, f11, f8 +- ;; +- setf.sig f9 = in1 +-(p6) fma.s1 f10 = f12, f10, f11 +- ;; +- fcvt.fx.trunc.s1 f10 = f10 +- ;; +- /* r = q * (-b) + a */ +- xma.l f10 = f10, f9, f14 +- ;; +- /* Transfer result to GP registers. */ +- getf.sig ret0 = f10 +- br.ret.sptk rp +- ;; +-END(___moddi3) +- .symver ___moddi3, __moddi3@GLIBC_2.2 +- +-/* __udivdi3 +- Compute a 64-bit unsigned integer quotient. +- in0 holds the dividend. in1 holds the divisor. */ +- +-ENTRY(___udivdi3) +- .regstk 2,0,0,0 +- /* Transfer inputs to FP registers. */ +- setf.sig f8 = in0 +- setf.sig f9 = in1 +- ;; +- /* Convert the inputs to FP, to avoid FP software-assist faults. */ +- fcvt.xuf.s1 f8 = f8 +- fcvt.xuf.s1 f9 = f9 +- ;; +- /* Compute the reciprocal approximation. */ +- frcpa.s1 f10, p6 = f8, f9 +- ;; +- /* 3 Newton-Raphson iterations. */ +-(p6) fnma.s1 f11 = f9, f10, f1 +-(p6) fmpy.s1 f12 = f8, f10 +- ;; +-(p6) fmpy.s1 f13 = f11, f11 +-(p6) fma.s1 f12 = f11, f12, f12 +- ;; +-(p6) fma.s1 f10 = f11, f10, f10 +-(p6) fma.s1 f11 = f13, f12, f12 +- ;; +-(p6) fma.s1 f10 = f13, f10, f10 +-(p6) fnma.s1 f12 = f9, f11, f8 +- ;; +-(p6) fma.s1 f10 = f12, f10, f11 +- ;; +- /* Round quotient to an unsigned integer. */ +- fcvt.fxu.trunc.s1 f10 = f10 +- ;; +- /* Transfer result to GP registers. */ +- getf.sig ret0 = f10 +- br.ret.sptk rp +- ;; +-END(___udivdi3) +- .symver ___udivdi3, __udivdi3@GLIBC_2.2 +- +-/* __umoddi3 +- Compute a 64-bit unsigned integer modulus. +- in0 holds the dividend (a). in1 holds the divisor (b). */ +- +-ENTRY(___umoddi3) +- .regstk 2,0,0,0 +- /* Transfer inputs to FP registers. */ +- setf.sig f14 = in0 +- setf.sig f9 = in1 +- ;; +- /* Convert the inputs to FP, to avoid FP software assist faults. */ +- fcvt.xuf.s1 f8 = f14 +- fcvt.xuf.s1 f9 = f9 +- ;; +- /* Compute the reciprocal approximation. */ +- frcpa.s1 f10, p6 = f8, f9 +- ;; +- /* 3 Newton-Raphson iterations. */ +-(p6) fmpy.s1 f12 = f8, f10 +-(p6) fnma.s1 f11 = f9, f10, f1 +- ;; +-(p6) fma.s1 f12 = f11, f12, f12 +-(p6) fmpy.s1 f13 = f11, f11 +- ;; +-(p6) fma.s1 f10 = f11, f10, f10 +-(p6) fma.s1 f11 = f13, f12, f12 +- ;; +- sub in1 = r0, in1 +-(p6) fma.s1 f10 = f13, f10, f10 +-(p6) fnma.s1 f12 = f9, f11, f8 +- ;; +- setf.sig f9 = in1 +-(p6) fma.s1 f10 = f12, f10, f11 +- ;; +- /* Round quotient to an unsigned integer. */ +- fcvt.fxu.trunc.s1 f10 = f10 +- ;; +- /* r = q * (-b) + a */ +- xma.l f10 = f10, f9, f14 +- ;; +- /* Transfer result to GP registers. */ +- getf.sig ret0 = f10 +- br.ret.sptk rp +- ;; +-END(___umoddi3) +- .symver ___umoddi3, __umoddi3@GLIBC_2.2 +- +-/* __multi3 +- Compute a 128-bit multiply of 128-bit multiplicands. +- in0/in1 holds one multiplicand (a), in2/in3 holds the other one (b). */ +- +-ENTRY(___multi3) +- .regstk 4,0,0,0 +- setf.sig f6 = in1 +- movl r19 = 0xffffffff +- setf.sig f7 = in2 +- ;; +- and r14 = r19, in0 +- ;; +- setf.sig f10 = r14 +- and r14 = r19, in2 +- xmpy.l f9 = f6, f7 +- ;; +- setf.sig f6 = r14 +- shr.u r14 = in0, 32 +- ;; +- setf.sig f7 = r14 +- shr.u r14 = in2, 32 +- ;; +- setf.sig f8 = r14 +- xmpy.l f11 = f10, f6 +- xmpy.l f6 = f7, f6 +- ;; +- getf.sig r16 = f11 +- xmpy.l f7 = f7, f8 +- ;; +- shr.u r14 = r16, 32 +- and r16 = r19, r16 +- getf.sig r17 = f6 +- setf.sig f6 = in0 +- ;; +- setf.sig f11 = r14 +- getf.sig r21 = f7 +- setf.sig f7 = in3 +- ;; +- xma.l f11 = f10, f8, f11 +- xma.l f6 = f6, f7, f9 +- ;; +- getf.sig r18 = f11 +- ;; +- add r18 = r18, r17 +- ;; +- and r15 = r19, r18 +- cmp.ltu p7, p6 = r18, r17 +- ;; +- getf.sig r22 = f6 +-(p7) adds r14 = 1, r19 +- ;; +-(p7) add r21 = r21, r14 +- shr.u r14 = r18, 32 +- shl r15 = r15, 32 +- ;; +- add r20 = r21, r14 +- ;; +- add ret0 = r15, r16 +- add ret1 = r22, r20 +- br.ret.sptk rp +- ;; +-END(___multi3) +- .symver ___multi3, __multi3@GLIBC_2.2 +- +-#endif +--- /dev/null ++++ sysdeps/ia64/libgcc-compat.c +@@ -0,0 +1,112 @@ ++/* pre-.hidden libgcc compatibility ++ Copyright (C) 2002 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++ ++#include ++#include ++ ++#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6) ++ ++typedef int int128_t __attribute__((__mode__(TI))); ++ ++extern long double __divtf3 (long double, long double) attribute_hidden; ++long double INTUSE (__divtf3) (long double x, long double y) ++{ ++ return __divtf3 (x, y); ++} ++symbol_version (INTUSE (__divtf3), __divtf3, GLIBC_2.2); ++ ++extern double __divdf3 (double, double) attribute_hidden; ++double INTUSE (__divdf3) (double x, double y) ++{ ++ return __divdf3 (x, y); ++} ++symbol_version (INTUSE (__divdf3), __divdf3, GLIBC_2.2); ++ ++extern float __divsf3 (float, float) attribute_hidden; ++float INTUSE (__divsf3) (float x, float y) ++{ ++ return __divsf3 (x, y); ++} ++symbol_version (INTUSE (__divsf3), __divsf3, GLIBC_2.2); ++ ++extern int64_t __divdi3 (int64_t, int64_t) attribute_hidden; ++int64_t INTUSE (__divdi3) (int64_t x, int64_t y) ++{ ++ return __divdi3 (x, y); ++} ++symbol_version (INTUSE (__divdi3), __divdi3, GLIBC_2.2); ++ ++extern int64_t __moddi3 (int64_t, int64_t) attribute_hidden; ++int64_t INTUSE (__moddi3) (int64_t x, int64_t y) ++{ ++ return __moddi3 (x, y); ++} ++symbol_version (INTUSE (__moddi3), __moddi3, GLIBC_2.2); ++ ++extern uint64_t __udivdi3 (uint64_t, uint64_t) attribute_hidden; ++uint64_t INTUSE (__udivdi3) (uint64_t x, uint64_t y) ++{ ++ return __udivdi3 (x, y); ++} ++symbol_version (INTUSE (__udivdi3), __udivdi3, GLIBC_2.2); ++ ++extern uint64_t __umoddi3 (uint64_t, uint64_t) attribute_hidden; ++uint64_t INTUSE (__umoddi3) (uint64_t x, uint64_t y) ++{ ++ return __umoddi3 (x, y); ++} ++symbol_version (INTUSE (__umoddi3), __umoddi3, GLIBC_2.2); ++ ++extern int128_t __multi3 (int128_t, int128_t) attribute_hidden; ++int128_t INTUSE (__multi3) (int128_t x, int128_t y) ++{ ++ return __multi3 (x, y); ++} ++symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.2); ++ ++extern int64_t __divsi3 (int64_t, int64_t) attribute_hidden; ++int64_t INTUSE (__divsi3) (int64_t x, int64_t y) ++{ ++ return __divsi3 (x, y); ++} ++symbol_version (INTUSE (__divsi3), __divsi3, GLIBC_2.2); ++ ++extern int64_t __modsi3 (int64_t, int64_t) attribute_hidden; ++int64_t INTUSE (__modsi3) (int64_t x, int64_t y) ++{ ++ return __modsi3 (x, y); ++} ++symbol_version (INTUSE (__modsi3), __modsi3, GLIBC_2.2); ++ ++extern uint64_t __udivsi3 (uint64_t, uint64_t) attribute_hidden; ++uint64_t INTUSE (__udivsi3) (uint64_t x, uint64_t y) ++{ ++ return __udivsi3 (x, y); ++} ++symbol_version (INTUSE (__udivsi3), __udivsi3, GLIBC_2.2); ++ ++extern uint64_t __umodsi3 (uint64_t, uint64_t) attribute_hidden; ++uint64_t INTUSE (__umodsi3) (uint64_t x, uint64_t y) ++{ ++ return __umodsi3 (x, y); ++} ++symbol_version (INTUSE (__umodsi3), __umodsi3, GLIBC_2.2); ++ ++#endif +--- sysdeps/s390/s390-32/Makefile.orig ++++ sysdeps/s390/s390-32/Makefile +@@ -9,3 +9,11 @@ + CFLAGS-dl-load.c += -Wno-unused + CFLAGS-dl-reloc.c += -Wno-unused + endif ++ ++ifeq ($(subdir),csu) ++ifeq (yes,$(build-shared)) ++# Compatibility ++sysdep_routines += libgcc-compat ++shared-only-routines += libgcc-compat ++endif ++endif +--- sysdeps/s390/s390-32/Versions.orig ++++ sysdeps/s390/s390-32/Versions +@@ -2,5 +2,13 @@ + GLIBC_2.0 { + # Functions from libgcc. + __divdi3; __moddi3; __udivdi3; __umoddi3; ++ __cmpdi2; ++ __fixdfdi; ++ __fixsfdi; ++ __fixunsdfdi; ++ __fixunssfdi; ++ __floatdidf; ++ __floatdisf; ++ __ucmpdi2; + } + } +--- /dev/null ++++ sysdeps/s390/s390-32/libgcc-compat.c +@@ -0,0 +1,83 @@ ++/* pre-.hidden libgcc compatibility ++ Copyright (C) 2003 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by GOTO Masanori ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++ ++#include ++#include ++ ++#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2_6) ++ ++extern int32_t __cmpdi2 (int64_t, int64_t); ++int32_t __cmpdi2_internal (int64_t u, int64_t v) ++{ ++ return __cmpdi2 (u, v); ++} ++symbol_version (__cmpdi2_internal, __cmpdi2, GLIBC_2.0); ++ ++extern int64_t __fixdfdi (double); ++int64_t __fixdfdi_internal (double d) ++{ ++ return __fixdfdi (d); ++} ++symbol_version (__fixdfdi_internal, __fixdfdi, GLIBC_2.0); ++ ++extern int64_t __fixsfdi (float); ++int64_t __fixsfdi_internal (float d) ++{ ++ return __fixsfdi (d); ++} ++symbol_version (__fixsfdi_internal, __fixsfdi, GLIBC_2.0); ++ ++extern int64_t __fixunsdfdi (double); ++int64_t __fixunsdfdi_internal (double d) ++{ ++ return __fixunsdfdi (d); ++} ++symbol_version (__fixunsdfdi_internal, __fixunsdfdi, GLIBC_2.0); ++ ++extern int64_t __fixunssfdi (float); ++int64_t __fixunssfdi_internal (float d) ++{ ++ return __fixunssfdi (d); ++} ++symbol_version (__fixunssfdi_internal, __fixunssfdi, GLIBC_2.0); ++ ++extern double __floatdidf (int64_t); ++double __floatdidf_internal (int64_t u) ++{ ++ return __floatdidf (u); ++} ++symbol_version (__floatdidf_internal, __floatdidf, GLIBC_2.0); ++ ++extern float __floatdisf (int64_t); ++float __floatdisf_internal (int64_t u) ++{ ++ return __floatdisf (u); ++} ++symbol_version (__floatdisf_internal, __floatdisf, GLIBC_2.0); ++ ++extern int32_t __ucmpdi2 (int64_t, int64_t); ++int32_t __ucmpdi2_internal (int64_t u, int64_t v) ++{ ++ return __ucmpdi2 (u, v); ++} ++symbol_version (__ucmpdi2_internal, __ucmpdi2, GLIBC_2.0); ++ ++#endif --- glibc-2.7.orig/debian/patches/hurd-i386/submitted-libc_once.diff +++ glibc-2.7/debian/patches/hurd-i386/submitted-libc_once.diff @@ -0,0 +1,70 @@ +2007-10-28 Aurelien Jarno + + * bits/libc-lock.h (__libc_once_get): New definiton. + * linuxthreads/sysdeps/pthread/bits/libc-lock.h: Likewise + * nptl/sysdeps/pthread/bits/libc-lock.h: Likewise. + * sysdeps/mach/bits/libc-lock.h: Likewise. + * sysdeps/mach/hurd/bits/libc-lock.h: Likewise. + * sysdeps/posix/getaddrinfo.c (getaddrinfo): Use __libc_once_get + instead of using implementational details. + +--- bits/libc-lock.h.orig ++++ bits/libc-lock.h +@@ -98,6 +98,9 @@ + } \ + } while (0) + ++/* Get once control variable. */ ++#define __libc_once_get(ONCE_CONTROL) \ ++ ((ONCE_CONTROL) == 1) + + /* Start a critical region with a cleanup function */ + #define __libc_cleanup_region_start(DOIT, FCT, ARG) \ +--- linuxthreads/sysdeps/pthread/bits/libc-lock.h.orig ++++ linuxthreads/sysdeps/pthread/bits/libc-lock.h +@@ -242,6 +242,9 @@ + } \ + } while (0) + ++/* Get once control variable. */ ++#define __libc_once_get(ONCE_CONTROL) \ ++ ((ONCE_CONTROL) != PTHREAD_ONCE_INIT) + + /* Start critical region with cleanup. */ + #define __libc_cleanup_region_start(DOIT, FCT, ARG) \ +--- nptl/sysdeps/pthread/bits/libc-lock.h.orig ++++ nptl/sysdeps/pthread/bits/libc-lock.h +@@ -377,6 +377,9 @@ + } \ + } while (0) + ++/* Get once control variable. */ ++#define __libc_once_get(ONCE_CONTROL) \ ++ ((ONCE_CONTROL) != PTHREAD_ONCE_INIT) + + /* Note that for I/O cleanup handling we are using the old-style + cancel handling. It does not have to be integrated with C++ snce +--- sysdeps/mach/hurd/bits/libc-lock.h.orig ++++ sysdeps/mach/hurd/bits/libc-lock.h +@@ -185,6 +185,10 @@ + __libc_lock_unlock (ONCE_CONTROL.lock); \ + } while (0) + ++/* Get once control variable. */ ++#define __libc_once_get(ONCE_CONTROL) \ ++ (!ONCE_CONTROL.done) ++ + #ifdef _LIBC + /* We need portable names for some functions. E.g., when they are + used as argument to __libc_cleanup_region_start. */ +--- sysdeps/posix/getaddrinfo.c.orig ++++ sysdeps/posix/getaddrinfo.c +@@ -2076,7 +2076,7 @@ + __libc_lock_define_initialized (static, lock); + + __libc_lock_lock (lock); +- if (old_once && gaiconf_reload_flag) ++ if (__libc_once_get(old_once) && gaiconf_reload_flag) + gaiconf_reload (); + qsort (results, nresults, sizeof (results[0]), rfc3484_sort); + __libc_lock_unlock (lock); --- glibc-2.7.orig/debian/patches/hurd-i386/cvs-epfnosupport.diff +++ glibc-2.7/debian/patches/hurd-i386/cvs-epfnosupport.diff @@ -0,0 +1,38 @@ +2008-01-20 Samuel Thibault + + * hurd/hurdsock.c (_hurd_socket_server): Return the standard + error EAFNOSUPPORT rather than non-standard EPFNOSUPPORT. + * sunrpc/bindrsvprt.c (bindresvport): Likewise. + +Index: ./hurd/hurdsock.c +=================================================================== +RCS file: /cvs/glibc/libc/hurd/hurdsock.c,v +retrieving revision 1.28 +diff -u -p -r1.28 hurdsock.c +--- ./hurd/hurdsock.c 6 Jul 2001 04:54:47 -0000 1.28 ++++ ./hurd/hurdsock.c 20 Jan 2008 16:09:38 -0000 +@@ -92,7 +92,7 @@ _hurd_socket_server (int domain, int dea + + if (server == MACH_PORT_NULL && errno == ENOENT) + /* If the server node is absent, we don't support that protocol. */ +- errno = EPFNOSUPPORT; ++ errno = EAFNOSUPPORT; + + __mutex_unlock (&lock); + HURD_CRITICAL_END; +Index: ./sunrpc/bindrsvprt.c +=================================================================== +RCS file: /cvs/glibc/libc/sunrpc/bindrsvprt.c,v +retrieving revision 1.12 +diff -u -p -r1.12 bindrsvprt.c +--- ./sunrpc/bindrsvprt.c 22 Nov 2005 04:39:05 -0000 1.12 ++++ ./sunrpc/bindrsvprt.c 20 Jan 2008 16:09:38 -0000 +@@ -61,7 +61,7 @@ bindresvport (int sd, struct sockaddr_in + } + else if (sin->sin_family != AF_INET) + { +- __set_errno (EPFNOSUPPORT); ++ __set_errno (EAFNOSUPPORT); + return -1; + } + --- glibc-2.7.orig/debian/patches/hurd-i386/submitted-ioctl-unsigned-size_t.diff +++ glibc-2.7/debian/patches/hurd-i386/submitted-ioctl-unsigned-size_t.diff @@ -0,0 +1,37 @@ +Index: sysdeps/mach/hurd/bits/ioctls.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/mach/hurd/bits/ioctls.h,v +retrieving revision 1.10 +diff -u -p -r1.10 ioctls.h +--- sysdeps/mach/hurd/bits/ioctls.h 7 Sep 2007 20:38:57 -0000 1.10 ++++ sysdeps/mach/hurd/bits/ioctls.h 16 Dec 2007 02:49:36 -0000 +@@ -109,9 +109,17 @@ + #define _IOT_SIMPLE(type) _IOT (_IOTS (type), 1, 0, 0, 0, 0) + + /* Basic C types. */ +-#define _IOT__IOTBASE_int _IOT_SIMPLE (int) + #define _IOT__IOTBASE_char _IOT_SIMPLE (char) ++#define _IOT__IOTBASE_int _IOT_SIMPLE (int) + #define _IOT__IOTBASE_short _IOT_SIMPLE (short) ++#define _IOT__IOTBASE_long _IOT_SIMPLE (long) ++#define _IOT_char _IOT_SIMPLE (char) ++#define _IOT_int _IOT_SIMPLE (int) ++#define _IOT_short _IOT_SIMPLE (short) ++#define _IOT_long _IOT_SIMPLE (long) ++ ++#define _IOT__IOTBASE_size_t _IOT_SIMPLE (size_t) ++#define _IOT__IOTBASE_ssize_t _IOT_SIMPLE (ssize_t) + + + /* Standard flavors of ioctls. +@@ -133,6 +141,10 @@ + #define _IOC_ENCODE_TYPE_1(typespec) _IOC_ENCODE_TYPE_2(typespec) + #define _IOC_ENCODE_TYPE_2(typespec) _IOT_##typespec + ++/* Also, ignore signedness. */ ++#define _IOTBASE_unsigned ++#define _IOTBASE_signed ++ + + /* ioctls verbatim from 4.4 . */ + --- glibc-2.7.orig/debian/patches/hurd-i386/submitted-ioctl-decode-argument.diff +++ glibc-2.7/debian/patches/hurd-i386/submitted-ioctl-decode-argument.diff @@ -0,0 +1,58 @@ +2005-07-28 Samuel Thibault + + * ioctl.c (__ioctl): Add handling of parameter-less ioctls. + +2005-07-28 Samuel Thibault + + * ioctls.h (_IOIW): New macro for immediate-write ioctls. + +--- sysdeps/mach/hurd/ioctl.c.orig ++++ sysdeps/mach/hurd/ioctl.c +@@ -89,7 +89,7 @@ + void *p; + #endif + +- void *arg; ++ void *arg = NULL; + + error_t err; + +@@ -140,7 +140,7 @@ + in (_IOT_COUNT1 (type), _IOT_TYPE1 (type)); + in (_IOT_COUNT2 (type), _IOT_TYPE2 (type)); + } +- else if (_IOC_INOUT (request) == IOC_VOID) ++ else if ((_IOC_INOUT (request) == IOC_VOID) && _IOT_COUNT0 (type)) + { + /* The RPC takes a single integer_t argument. + Rather than pointing to the value, ARG is the value itself. */ +@@ -209,11 +209,15 @@ + return msg.header.RetCode; + } + +- va_list ap; ++ if (_IOT_COUNT0 (type)) ++ { ++ /* Data need either be sent, received, or even both. */ ++ va_list ap; + +- va_start (ap, request); +- arg = va_arg (ap, void *); +- va_end (ap); ++ va_start (ap, request); ++ arg = va_arg (ap, void *); ++ va_end (ap); ++ } + + { + /* Check for a registered handler for REQUEST. */ +--- sysdeps/mach/hurd/bits/ioctls.h.orig ++++ sysdeps/mach/hurd/bits/ioctls.h +@@ -118,6 +118,7 @@ + _IOT_foobar is defined either in this file, + or where struct foobar is defined. */ + #define _IO(g, n) _IOC (IOC_VOID, (g), (n), 0) ++#define _IOIW(g, n, t) _IOC (IOC_VOID, (g), (n), _IOC_ENCODE_TYPE (t)) + #define _IOR(g, n, t) _IOC (IOC_OUT, (g), (n), _IOC_ENCODE_TYPE (t)) + #define _IOW(g, n, t) _IOC (IOC_IN, (g), (n), _IOC_ENCODE_TYPE (t)) + #define _IOWR(g, n, t) _IOC (IOC_INOUT, (g), (n), _IOC_ENCODE_TYPE (t)) --- glibc-2.7.orig/debian/patches/hurd-i386/cvs-ECANCELED.diff +++ glibc-2.7/debian/patches/hurd-i386/cvs-ECANCELED.diff @@ -0,0 +1,22 @@ +--- glibc-2.6.orig/sysdeps/mach/hurd/bits/errno.h ++++ glibc-2.6/sysdeps/mach/hurd/bits/errno.h +@@ -212,8 +212,8 @@ + #define EPROTO _HURD_ERRNO (116)/* Protocol error */ + ETIME = _HURD_ERRNO (117), + #define ETIME _HURD_ERRNO (117)/* Timer expired */ +- ECANCELED = _HURD_ERRNO (118), +-#define ECANCELED _HURD_ERRNO (118)/* Operation canceled */ ++ ECANCELED = _HURD_ERRNO (119), ++#define ECANCELED _HURD_ERRNO (119)/* Operation canceled */ + + /* Errors from . */ + EMACH_SEND_IN_PROGRESS = 0x10000001, +@@ -297,7 +297,7 @@ + + }; + +-#define _HURD_ERRNOS 119 ++#define _HURD_ERRNOS 120 + + /* User-visible type of error codes. It is ok to use `int' or + `kern_return_t' for these, but with `error_t' the debugger prints --- glibc-2.7.orig/debian/patches/hurd-i386/local-gscope.diff +++ glibc-2.7/debian/patches/hurd-i386/local-gscope.diff @@ -0,0 +1,53 @@ +--- glibc-2.6-orig/elf/dl-support.c 2007-07-19 23:45:07.000000000 +0200 ++++ glibc-2.6/elf/dl-support.c 2007-07-20 04:33:59.000000000 +0200 +@@ -137,6 +137,7 @@ + int (*_dl_make_stack_executable_hook) (void **) internal_function + = _dl_make_stack_executable; + ++int volatile _dl_thread_gscope_count; + struct dl_scope_free_list *_dl_scope_free_list; + + #ifdef NEED_DL_SYSINFO +--- glibc-2.6-orig/sysdeps/generic/ldsodefs.h 2007-07-19 23:45:14.000000000 +0200 ++++ glibc-2.6/sysdeps/generic/ldsodefs.h 2007-07-20 04:41:36.000000000 +0200 +@@ -489,6 +489,7 @@ + size_t count; + struct r_scope_elem **list[50]; + } *_dl_scope_free_list; ++ EXTERN volatile int _dl_thread_gscope_count; + #ifdef SHARED + }; + # define __rtld_global_attribute__ +--- glibc-2.6.1-orig/sysdeps/mach/hurd/tls.h 2005-02-02 20:43:56.000000000 +0100 ++++ glibc-2.6.1/sysdeps/mach/hurd/tls.h 2007-08-01 22:35:38.000000000 +0200 +@@ -73,5 +73,18 @@ + + #endif /* HAVE_TLS_SUPPORT */ + ++#ifndef __ASSEMBLER__ ++#include ++#include ++/* Temporary poor-man's global scope switch support: just busy-waits */ ++#define THREAD_GSCOPE_SET_FLAG() \ ++ asm volatile ("lock incl %0":"=m"(GL(dl_thread_gscope_count))) ++#define THREAD_GSCOPE_RESET_FLAG() \ ++ asm volatile ("lock decl %0":"=m"(GL(dl_thread_gscope_count))) ++#define THREAD_GSCOPE_WAIT() \ ++ while (GL(dl_thread_gscope_count)) { \ ++ __swtch_pri (0); \ ++ } ++#endif + + #endif /* tls.h */ +--- /dev/null 2007-07-20 20:36:08.980000000 +0200 ++++ glibc-2.6/sysdeps/mach/hurd/sysdep-cancel.h 2007-07-20 01:24:22.000000000 +0200 +@@ -0,0 +1,9 @@ ++#include ++ ++/* Always multi-thread (since there's at least the sig handler), but no ++ handling enabled. */ ++#define SINGLE_THREAD_P (0) ++#define RTLD_SINGLE_THREAD_P (0) ++#define LIBC_CANCEL_ASYNC() 0 /* Just a dummy value. */ ++#define LIBC_CANCEL_RESET(val) ((void)(val)) /* Nothing, but evaluate it. */ ++#define LIBC_CANCEL_HANDLED() /* Nothing. */ --- glibc-2.7.orig/debian/patches/hurd-i386/local-mlock.diff +++ glibc-2.7/debian/patches/hurd-i386/local-mlock.diff @@ -0,0 +1,18 @@ +2006-01-18 Samuel Thibault + + Fix mlock() in all cases except non-readable pages. + + * glibc/sysdeps/mach/hurd/mlock.c (mlock): Give VM_PROT_READ + instead of VM_PROT_ALL as parameter to __vm_wire function. + +--- glibc-2.6.orig/sysdeps/mach/hurd/mlock.c ++++ glibc-2.6/sysdeps/mach/hurd/mlock.c +@@ -40,7 +40,7 @@ + page = trunc_page ((vm_address_t) addr); + len = round_page ((vm_address_t) addr + len) - page; + err = __vm_wire (hostpriv, __mach_task_self (), page, len, +- VM_PROT_ALL); /* XXX ? */ ++ VM_PROT_READ); + __mach_port_deallocate (__mach_task_self (), hostpriv); + + return err ? __hurd_fail (err) : 0; --- glibc-2.7.orig/debian/patches/hurd-i386/submitted-trivial.diff +++ glibc-2.7/debian/patches/hurd-i386/submitted-trivial.diff @@ -0,0 +1,30 @@ +--- argp/argp-help.c.orig ++++ argp/argp-help.c +@@ -42,6 +42,7 @@ + # endif + #endif + ++#include + #include + #include + #include +--- posix/wordexp.c.orig ++++ posix/wordexp.c +@@ -28,6 +28,7 @@ + #include + #include + #include ++#include + #include + #include + #include +--- stdlib/fmtmsg.c.orig ++++ stdlib/fmtmsg.c +@@ -19,6 +19,7 @@ + + #include + #include ++#include + #include + #include + #include --- glibc-2.7.orig/debian/patches/hurd-i386/submitted-strtoul.diff +++ glibc-2.7/debian/patches/hurd-i386/submitted-strtoul.diff @@ -0,0 +1,16 @@ +2007-11-02 Aurelien Jarno + + * hurd/lookup-retry.c (__hurd_file_name_lookup_retry): Use + __strtoul_internal instead of strtoul. + +--- hurd/lookup-retry.c.orig ++++ hurd/lookup-retry.c +@@ -194,7 +194,7 @@ + char *end; + int save = errno; + errno = 0; +- fd = (int) strtoul (&retryname[3], &end, 10); ++ fd = (int) __strtoul_internal (&retryname[3], &end, 10, 0); + if (end == NULL || errno || /* Malformed number. */ + /* Check for excess text after the number. A slash + is valid; it ends the component. Anything else --- glibc-2.7.orig/debian/patches/hurd-i386/local-msg-nosignal.diff +++ glibc-2.7/debian/patches/hurd-i386/local-msg-nosignal.diff @@ -0,0 +1,17 @@ +This is not a proper fix, but a workaround that is needed on HEAD. (Have +to check glibc-2_5-branch.) Reported on +. + +--- resolv/res_send.c.orig ++++ resolv/res_send.c +@@ -102,6 +102,10 @@ + #define MAXPACKET 65536 + #endif + ++#ifndef MSG_NOSIGNAL ++# define MSG_NOSIGNAL 0 ++#endif ++ + + /* From ev_streams.c. */ + --- glibc-2.7.orig/debian/patches/hurd-i386/local-gcc-4.1-init-first.diff +++ glibc-2.7/debian/patches/hurd-i386/local-gcc-4.1-init-first.diff @@ -0,0 +1,62 @@ +2007-07-22 Thomas Schwinge + + * sysdeps/mach/hurd/i386/init-first.c: Undo parts of Roland's `r 1.43' + to `r 1.44' changes. + (_hurd_stack_setup): Take a ``void *'' argument. Save the caller into + CALLER and pass that one on. + (init): Avoid an ugly typecast. + +--- glibc-2.7/sysdeps/mach/hurd/i386/init-first.c.orig 2008-03-09 21:19:54.126246000 +0000 ++++ glibc-2.7/sysdeps/mach/hurd/i386/init-first.c 2008-03-09 21:22:19.348744000 +0000 +@@ -334,11 +334,11 @@ + stack set up just as the user will see it, so it can switch stacks. */ + + void +-_dl_init_first (void) ++_dl_init_first (int argc, ...) + { + first_init (); + +- init ((int *) __builtin_frame_address (0) + 2); ++ init (&argc); + } + #endif + +@@ -365,23 +365,23 @@ + This poorly-named function is called by static-start.S, + which should not exist at all. */ + void +-_hurd_stack_setup (void) ++_hurd_stack_setup (void *arg, ...) + { +- intptr_t caller = (intptr_t) __builtin_return_address (0); ++ void *caller = (&arg)[-1]; + + void doinit (intptr_t *data) + { + /* This function gets called with the argument data at TOS. */ +- void doinit1 (void) ++ void doinit1 (volatile int argc, ...) + { +- init ((int *) __builtin_frame_address (0) + 2); ++ init ((int *) &argc); + } + + /* Push the user return address after the argument data, and then + jump to `doinit1' (above), so it is as if __libc_init_first's + caller had called `doinit1' with the argument data already on the + stack. */ +- *--data = caller; ++ *--data = (intptr_t) caller; + asm volatile ("movl %0, %%esp\n" /* Switch to new outermost stack. */ + "movl $0, %%ebp\n" /* Clear outermost frame pointer. */ + "jmp *%1" : : "r" (data), "r" (&doinit1) : "sp"); +@@ -391,7 +391,7 @@ + + first_init (); + +- _hurd_startup ((void **) __builtin_frame_address (0) + 2, &doinit); ++ _hurd_startup (&arg, &doinit); + } + #endif + --- glibc-2.7.orig/debian/patches/hurd-i386/local-enable-ldconfig.diff +++ glibc-2.7/debian/patches/hurd-i386/local-enable-ldconfig.diff @@ -0,0 +1,78 @@ +# DP: Description: Enable ldconfig and such on hurd-i386 +# DP: Author: Jeff Bailey +# DP: Related Bugs: #309489 +# DP: Upstream status: Not submitted +# DP: Status Details: Upstream disagrees with this patch, but I'm +# DP: putting it in so that we have expected Debian behaviour on the +# DP: Hurd. We should review this when the ELF standard supports runpath. +# DP: Date: 08 Apr 2003 + +Index: sysdeps/mach/hurd/configure +=================================================================== +--- sysdeps/mach/hurd/configure.orig 2007-10-23 08:46:16.000000000 -0400 ++++ sysdeps/mach/hurd/configure 2007-10-23 08:49:30.000000000 -0400 +@@ -90,3 +90,5 @@ + echo "$as_me: error: Hurd headers not installed or too old" >&2;} + { (exit 1); exit 1; }; } + fi ++ ++use_ldconfig=yes +Index: sysdeps/mach/hurd/configure.in +=================================================================== +--- sysdeps/mach/hurd/configure.in.orig 2007-10-23 08:46:16.000000000 -0400 ++++ sysdeps/mach/hurd/configure.in 2007-10-23 08:49:30.000000000 -0400 +@@ -36,3 +36,5 @@ + if test "x$libc_cv_hurd_version" != xok; then + AC_MSG_ERROR(Hurd headers not installed or too old) + fi ++ ++use_ldconfig=yes +Index: sysdeps/mach/hurd/dl-cache.c +=================================================================== +--- sysdeps/mach/hurd/dl-cache.c 2007-10-23 08:46:16.000000000 -0400 ++++ /dev/null 1970-01-01 00:00:00.000000000 +0000 +@@ -1,29 +0,0 @@ +-/* Stubby version of dl-cache; the Hurd doesn't support this "feature". +- Copyright (C) 1996, 1997 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 +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- 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. */ +- +-const char * +-_dl_load_cache_lookup (const char *name) +-{ +- return 0; +-} +- +-void +-_dl_unload_cache (void) +-{ +-} +Index: elf/ldconfig.c +=================================================================== +--- elf/ldconfig.c.orig 2007-10-23 08:46:16.000000000 -0400 ++++ elf/ldconfig.c 2007-10-23 08:49:30.000000000 -0400 +@@ -59,6 +59,10 @@ + + #define PACKAGE _libc_intl_domainname + ++#ifndef PATH_MAX ++#define PATH_MAX 1024 ++#endif ++ + static const struct + { + const char *name; --- glibc-2.7.orig/debian/patches/hurd-i386/cvs-df.diff +++ glibc-2.7/debian/patches/hurd-i386/cvs-df.diff @@ -0,0 +1,33 @@ +Index: glibc/sysdeps/mach/hurd/i386/trampoline.c +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/mach/hurd/i386/trampoline.c,v +retrieving revision 1.30 +retrieving revision 1.31 +diff -u -p -r1.30 -r1.31 +--- glibc/sysdeps/mach/hurd/i386/trampoline.c 21 Dec 2005 22:16:20 -0000 1.30 ++++ glibc/sysdeps/mach/hurd/i386/trampoline.c 8 Mar 2008 21:39:00 -0000 1.31 +@@ -1,5 +1,5 @@ + /* Set thread_state for sighandler, and sigcontext to recover. i386 version. +- Copyright (C) 1994,1995,1996,1997,1998,1999,2005 ++ Copyright (C) 1994,1995,1996,1997,1998,1999,2005,2008 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + #include + #include + #include "hurdfault.h" +@@ -218,6 +219,9 @@ _hurd_setup_sighandler (struct hurd_sigs + /* We pass the handler function to the trampoline code in %edx. */ + state->basic.edx = (int) handler; + ++ /* The x86 ABI says the DF bit is clear on entry to any function. */ ++ state->basic.efl &= ~EFL_DF; ++ + return scp; + } + --- glibc-2.7.orig/debian/patches/hurd-i386/submitted-sysvshm.diff +++ glibc-2.7/debian/patches/hurd-i386/submitted-sysvshm.diff @@ -0,0 +1,752 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Implement SysV shared memory for GNU/Hurd. +# DP: Dpatch author: Michael Banck +# DP: Patch author: Marcus Brinkmann +# DP: Upstream status: Unsubmitted, copyright assignments needed +# DP: Date: 2005-07-11 + +2005-07-11 Marcus Brinkmann + + * hurd/Makefile (routines): Add sysvshm. + (distribute): Add sysvshm.h. + * hurd/sysvshm.h: New file. + * hurd/sysvshm.c: New file. + * sysdeps/mach/hurd/bits/stat.h (S_IMMAP0): New macro. + (S_ISPARE): Unset the S_IMMAP0 flag. + * sysdeps/mach/hurd/ftok.c: New file. + * sysdeps/mach/hurd/shmat.c: New file. + * sysdeps/mach/hurd/shmctl.c: New file. + * sysdeps/mach/hurd/shmdt.c: New file. + +--- glibc-2.6.orig/hurd/Makefile ++++ glibc-2.6/hurd/Makefile +@@ -60,6 +60,7 @@ + vpprintf \ + ports-get ports-set hurdports hurdmsg \ + errno-loc \ ++ sysvshm \ + $(sig) $(dtable) $(inlines) port-cleanup report-wait xattr + sig = hurdsig hurdfault siginfo hurd-raise preempt-sig \ + trampoline longjmp-ts catch-exc exc2signal hurdkill sigunwind \ +@@ -68,7 +69,7 @@ + getdport openport \ + fd-close fd-read fd-write hurdioctl ctty-input ctty-output + inlines = $(inline-headers:%.h=%-inlines) +-distribute = hurdstartup.h hurdfault.h hurdhost.h \ ++distribute = hurdstartup.h hurdfault.h hurdhost.h sysvshm.h \ + faultexc.defs intr-rpc.defs intr-rpc.h intr-msg.h Notes + + # XXX this is a temporary hack; see hurdmalloc.h +--- /dev/null ++++ glibc-2.6/hurd/sysvshm.c +@@ -0,0 +1,96 @@ ++/* Copyright (C) 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++ ++/* Description of an shm attachment. */ ++struct sysvshm_attach ++{ ++ /* Linked list. */ ++ struct sysvshm_attach *next; ++ ++ /* Map address. */ ++ void *addr; ++ ++ /* Map size. */ ++ size_t size; ++}; ++ ++/* List of attachments. */ ++static struct sysvshm_attach *attach_list; ++ ++/* A lock to protect the linked list of shared memory attachments. */ ++static struct mutex sysvshm_lock = MUTEX_INITIALIZER; ++ ++ ++/* Adds a segment attachment. */ ++error_t ++__sysvshm_add (void *addr, size_t size) ++{ ++ struct sysvshm_attach *shm; ++ ++ shm = malloc (sizeof (*shm)); ++ if (!shm) ++ return errno; ++ ++ __mutex_lock (&sysvshm_lock); ++ shm->addr = addr; ++ shm->size = size; ++ shm->next = attach_list; ++ attach_list = shm; ++ __mutex_unlock (&sysvshm_lock); ++ ++ return 0; ++} ++ ++/* Removes a segment attachment. Returns its size if found, or EINVAL ++ otherwise. */ ++error_t ++__sysvshm_remove (void *addr, size_t *size) ++{ ++ struct sysvshm_attach *shm; ++ struct sysvshm_attach **pshm = &attach_list; ++ ++ __mutex_lock (&sysvshm_lock); ++ shm = attach_list; ++ while (shm) ++ { ++ shm = *pshm; ++ if (shm->addr == addr) ++ { ++ *pshm = shm->next; ++ *size = shm->size; ++ __mutex_unlock (&sysvshm_lock); ++ return 0; ++ } ++ pshm = &shm->next; ++ shm = shm->next; ++ } ++ __mutex_unlock (&sysvshm_lock); ++ return EINVAL; ++} +--- /dev/null ++++ glibc-2.6/hurd/sysvshm.h +@@ -0,0 +1,47 @@ ++/* Copyright (C) 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++/* The area (from top to bottom) that is used for private keys. These ++ are all keys that have the second highest bit set. */ ++#define SHM_PRIV_KEY_START INT_MAX ++#define SHM_PRIV_KEY_END ((INT_MAX / 2) + 1) ++ ++#define SHM_PREFIX "shm-" ++#define SHM_DIR _PATH_DEV "shm/" ++ ++/* The maximum number of characters in a shared memory segment file name. ++ 32 is the max number of characters in a 128 bit number in hex. */ ++#if __WORDSIZE > 128 ++#error Need to increase SHM_NAMEMAX. ++#else ++#define SHM_NAMEMAX (sizeof (SHM_PREFIX) - 1 + 32 + 1) ++#endif ++ ++/* Use this with printf and its variants. */ ++#define SHM_NAMEPRI SHM_PREFIX "%0x" ++ ++ ++/* Adds a segment attachment. */ ++error_t __sysvshm_add (void *addr, size_t size); ++ ++/* Removes a segment attachment. Returns its size if found, or EINVAL ++ otherwise. */ ++error_t __sysvshm_remove (void *addr, size_t *size); +--- /dev/null ++++ glibc-2.6/sysdeps/mach/hurd/ftok.c +@@ -0,0 +1,43 @@ ++/* Copyright (C) 1995, 1996, 2000, 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper , August 1995. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++ ++ ++/* In the Hurd, we use the second-to-most-significant bit as flag for ++ private keys. We use a different order of the components so that ++ the biggest one---the inode number---is affected by this. */ ++ ++key_t ++ftok (pathname, proj_id) ++ const char *pathname; ++ int proj_id; ++{ ++ struct stat64 st; ++ key_t key; ++ ++ if (__xstat64 (_STAT_VER, pathname, &st) < 0) ++ return (key_t) -1; ++ ++ key = ((st.st_dev & 0xff) | ((proj_id & 0xff) << 8) ++ | ((st.st_ino & 0x3fff) << 16)); ++ ++ return key; ++} +--- /dev/null ++++ glibc-2.6/sysdeps/mach/hurd/shmat.c +@@ -0,0 +1,78 @@ ++/* Copyright (C) 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "sysvshm.h" ++ ++/* Attach the shared memory segment associated with SHMID to the data ++ segment of the calling process. SHMADDR and SHMFLG determine how ++ and where the segment is attached. */ ++void * ++__shmat (int shmid, const void *shmaddr, int shmflg) ++{ ++ error_t err; ++ char filename[sizeof (SHM_DIR) - 1 + SHM_NAMEMAX]; ++ int fd; ++ void *addr; ++ struct stat statbuf; ++ int res; ++ ++ sprintf (filename, SHM_DIR SHM_NAMEPRI, shmid); ++ fd = __open (filename, (shmflg & SHM_RDONLY) ? O_RDONLY : O_RDWR); ++ if (fd < 0) ++ { ++ if (errno == ENOENT) ++ errno = EINVAL; ++ return (void *) -1; ++ } ++ ++ res = __fstat (fd, &statbuf); ++ if (res < 0) ++ { ++ __close (fd); ++ return (void *) -1; ++ } ++ ++ addr = __mmap ((void *) shmaddr, statbuf.st_size, ++ PROT_READ | ((shmflg & SHM_RDONLY) ? 0 : PROT_WRITE), ++ MAP_SHARED, fd, 0); ++ __close (fd); ++ if (addr == MAP_FAILED) ++ return (void *) -1; ++ ++ err = __sysvshm_add (addr, statbuf.st_size); ++ if (err) ++ { ++ munmap (addr, statbuf.st_size); ++ return (void *) -1; ++ } ++ ++ return addr; ++} ++ ++weak_alias(__shmat, shmat) +--- /dev/null ++++ glibc-2.6/sysdeps/mach/hurd/shmctl.c +@@ -0,0 +1,132 @@ ++/* Copyright (C) 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "sysvshm.h" ++ ++/* Provide operations to control over shared memory segments. */ ++int ++__shmctl (int id, int cmd, struct shmid_ds *buf) ++{ ++ error_t err = 0; ++ int fd; ++ int res; ++ char filename[sizeof (SHM_DIR) - 1 + SHM_NAMEMAX]; ++ struct stat statbuf; ++ ++ sprintf (filename, SHM_DIR SHM_NAMEPRI, id); ++ /* SysV requires read access for IPC_STAT. */ ++ fd = __open (filename, O_NORW); ++ if (fd < 0) ++ { ++ if (errno == ENOENT) ++ errno = EINVAL; ++ return -1; ++ } ++ ++ res = __fstat (fd, &statbuf); ++ if (res < 0) ++ { ++ err = errno; ++ __close (fd); ++ errno = err; ++ return -1; ++ } ++ ++ switch (cmd) ++ { ++ case IPC_STAT: ++ ++ buf->shm_perm.__key = id; ++ buf->shm_perm.uid = statbuf.st_uid; ++ buf->shm_perm.gid = statbuf.st_gid; ++ ++ /* We do not support the creator. */ ++ buf->shm_perm.cuid = statbuf.st_uid; ++ buf->shm_perm.cgid = statbuf.st_gid; ++ ++ /* We just want the protection bits. */ ++ buf->shm_perm.mode = statbuf.st_mode & 0777; ++ /* Hopeless. We do not support a sequence number. */ ++ buf->shm_perm.__seq = statbuf.st_ino; ++ buf->shm_segsz = statbuf.st_size; ++ ++ /* Hopeless. We do not support any of these. */ ++ buf->shm_atime = statbuf.st_atime; ++ buf->shm_dtime = statbuf.st_mtime; ++ /* Well, this comes at least close. */ ++ buf->shm_ctime = statbuf.st_ctime; ++ ++ /* We do not support the PID. */ ++ buf->shm_cpid = 0; ++ buf->shm_lpid = 0; ++ ++ if (statbuf.st_mode & S_IMMAP0) ++ buf->shm_nattch = 0; ++ else ++ /* 42 is the answer. Of course this is bogus, but for most ++ applications, this should be fine. */ ++ buf->shm_nattch = 42; ++ ++ break; ++ ++ case IPC_SET: ++ if (statbuf.st_uid != buf->shm_perm.uid ++ || statbuf.st_gid != buf->shm_perm.gid) ++ { ++ res = __fchown (fd, ++ (statbuf.st_uid != buf->shm_perm.uid) ++ ? buf->shm_perm.uid : -1, ++ (statbuf.st_gid != buf->shm_perm.gid) ++ ? buf->shm_perm.gid : -1); ++ if (res < 0) ++ err = errno; ++ } ++ ++ if (!err && statbuf.st_mode & 0777 != buf->shm_perm.mode & 0777) ++ { ++ res = __fchmod (fd, (statbuf.st_mode & ~0777) ++ | (buf->shm_perm.mode & 0777)); ++ if (res < 0) ++ err = errno; ++ } ++ break; ++ ++ case IPC_RMID: ++ res = __unlink (filename); ++ /* FIXME: Check error (mapping ENOENT to EINVAL). */ ++ break; ++ ++ default: ++ err = EINVAL; ++ } ++ ++ __close (fd); ++ errno = err; ++ return err ? -1 : 0; ++} ++ ++weak_alias(__shmctl, shmctl) +--- /dev/null ++++ glibc-2.6/sysdeps/mach/hurd/shmdt.c +@@ -0,0 +1,51 @@ ++/* Copyright (C) 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "sysvshm.h" ++ ++/* Detach shared memory segment starting at address specified by ++ SHMADDR from the caller's data segment. */ ++int ++__shmdt (const void *shmaddr) ++{ ++ error_t err; ++ size_t size; ++ ++ err = __sysvshm_remove ((void *) shmaddr, &size); ++ if (err) ++ { ++ errno = err; ++ return -1; ++ } ++ ++ __munmap ((void *) shmaddr, size); ++ return 0; ++} ++ ++weak_alias(__shmdt, shmdt) +--- /dev/null ++++ glibc-2.6/sysdeps/mach/hurd/shmget.c +@@ -0,0 +1,245 @@ ++/* Copyright (C) 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++ ++#include "sysvshm.h" ++ ++/* Create a new shared memory segment file without linking it into the ++ filesystem. Return the directory and file ports in R_DIR and R_FILE. */ ++static error_t ++create_shm_file (size_t size, int flags, file_t *r_dir, file_t *r_file) ++{ ++ error_t err; ++ file_t dir; ++ file_t file; ++ ++ flags &= 0777; ++ ++ /* Get a port to the directory that will contain the file. */ ++ dir = __file_name_lookup (SHM_DIR, 0, 0); ++ if (dir == MACH_PORT_NULL) ++ return errno; ++ ++ /* Create an unnamed file in the directory. */ ++ err = __dir_mkfile (dir, O_RDWR, flags, &file); ++ if (err) ++ { ++ __mach_port_deallocate (__mach_task_self (), dir); ++ return err; ++ } ++ ++ err = __file_set_size (file, size); ++ if (err) ++ { ++ __mach_port_deallocate (__mach_task_self (), file); ++ __mach_port_deallocate (__mach_task_self (), dir); ++ ++ return err; ++ } ++ ++ *r_dir = dir; ++ *r_file = file; ++ ++ return 0; ++} ++ ++ ++/* Open the shared memory segment *R_KEY and return a file descriptor ++ to it in R_FD. If KEY is IPC_PRIVATE, use a private key and return ++ it in R_KEY. */ ++static error_t ++get_exclusive (int shmflags, size_t size, key_t *r_key, int *r_fd) ++{ ++ error_t err; ++ file_t dir; ++ file_t file; ++ char filename[SHM_NAMEMAX]; ++ key_t key = *r_key; ++ bool is_private; ++ ++ /* Create the shared memory segment. */ ++ err = create_shm_file (size, shmflags, &dir, &file); ++ if (err) ++ return err; ++ ++ if (key == IPC_PRIVATE) ++ { ++ is_private = true; ++ key = SHM_PRIV_KEY_START; ++ ++ /* Try to link the shared memory segment into the filesystem ++ (exclusively). Private segments have negative keys. */ ++ do ++ { ++ sprintf (filename, SHM_NAMEPRI, key); ++ err = __dir_link (dir, file, filename, 1); ++ if (!err) ++ { ++ /* We are done. */ ++ *r_key = key; ++ break; ++ } ++ else if (err == EEXIST) ++ { ++ /* Check if we ran out of keys. If not, try again with new ++ key. */ ++ if (key == SHM_PRIV_KEY_END) ++ err = ENOSPC; ++ else ++ err = 0; ++ ++ key--; ++ } ++ } ++ while (!err); ++ } ++ else ++ { ++ /* Try to link the shared memory segment into the filesystem ++ (exclusively) under the given key. */ ++ sprintf (filename, SHM_NAMEPRI, key); ++ err = __dir_link (dir, file, filename, 1); ++ } ++ ++ __mach_port_deallocate (__mach_task_self (), dir); ++ ++ if (!err) ++ { ++ int fd; ++ ++ /* Get a file descriptor for that port. */ ++ fd = _hurd_intern_fd (file, O_RDWR, 1); /* dealloc on error */ ++ if (fd < 0) ++ err = errno; ++ else ++ *r_fd = fd; ++ } ++ ++ return err; ++} ++ ++ ++/* Open the shared memory segment KEY (creating it if it doesn't yet ++ exist) and return a file descriptor to it in R_FD. */ ++static error_t ++get_shared (int shmflags, size_t size, key_t key, int *r_fd) ++{ ++ error_t err = 0; ++ char filename[sizeof (SHM_DIR) - 1 + SHM_NAMEMAX]; ++ int fd = -1; ++ int create_flag; ++ ++ create_flag = (shmflags & IPC_CREAT) ? O_CREAT : 0; ++ sprintf (filename, SHM_DIR SHM_NAMEPRI, key); ++ ++ do ++ { ++ fd = __open (filename, O_NORW | create_flag, shmflags & 0777); ++ ++ if (fd < 0 && errno != ENOENT) ++ /* We give up. */ ++ return errno; ++ else if (fd >= 0) ++ { ++ int res; ++ struct stat statbuf; ++ ++ /* Check the size (we only need to do this if we did not ++ create the shared memory segment file ourselves). */ ++ res = __fstat (fd, &statbuf); ++ if (res < 0) ++ { ++ err = errno; ++ __close (fd); ++ return err; ++ } ++ ++ if (statbuf.st_size < size) ++ { ++ __close (fd); ++ return EINVAL; ++ } ++ } ++ else ++ { ++ /* The memory segment doesn't exist. */ ++ if (create_flag) ++ { ++ /* Try to create it exclusively. */ ++ err = get_exclusive (shmflags, size, &key, &fd); ++ if (err == EEXIST) ++ /* If somebody created it in the meanwhile, just try again. */ ++ err = 0; ++ } ++ else ++ err = ENOENT; ++ } ++ } ++ while (fd < 0 && !err); ++ ++ if (!err) ++ *r_fd = fd; ++ else ++ *r_fd = -1; ++ ++ return err; ++} ++ ++/* Return an identifier for an shared memory segment of at least size ++ SIZE which is associated with KEY. */ ++int ++__shmget (key_t key, size_t size, int shmflags) ++{ ++ error_t err; ++ int fd; ++ ++ if (key == IPC_PRIVATE || shmflags & IPC_EXCL) ++ /* An exclusive shared memory segment must be created. */ ++ err = get_exclusive (shmflags, size, &key, &fd); ++ else ++ err = get_shared (shmflags, size, key, &fd); ++ ++ if (err) ++ { ++ errno = err; ++ return -1; ++ } ++ ++ /* From here, we can't fail. That's important, as otherwise we ++ would need to unlink the file if we created it (in that case, the ++ code above would have to be changed to pass a "created" flag down ++ to the caller). */ ++ ++ __close (fd); ++ ++ return key; ++} ++ ++weak_alias(__shmget, shmget) --- glibc-2.7.orig/debian/patches/hurd-i386/local-no-strerror_l.diff +++ glibc-2.7/debian/patches/hurd-i386/local-no-strerror_l.diff @@ -0,0 +1,32 @@ +Needs porting. Since this is new with 2.6, just disable for now, and please +someone take the time to port it. + +diff -ur glibc-2.6-orig/string/strerror_l.c glibc-2.6/build-tree/glibc-2.6/string/strerror_l.c +--- glibc-2.6-orig/string/strerror_l.c 2007-03-17 18:09:07.000000000 +0100 ++++ glibc-2.6/string/strerror_l.c 2007-07-20 05:05:40.000000000 +0200 +@@ -23,6 +23,8 @@ + #include + #include + ++#if 0 ++Needs porting + + static __thread char *last_value; + +@@ -70,3 +72,4 @@ + text_set_element (__libc_subfreeres, strerror_thread_freeres); + # endif + #endif ++#endif +--- glibc-2.6-orig/string/string.h 2007-02-01 16:08:52.000000000 +0000 ++++ glibc-2.6/string/string.h 2007-07-20 23:50:59.000000000 +0000 +@@ -285,7 +285,8 @@ + + #ifdef __USE_GNU + /* Translate error number to string according to the locale L. */ +-extern char *strerror_l (int __errnum, __locale_t __l) __THROW; ++/* Not yet ported on the Hurd. */ ++/* extern char *strerror_l (int __errnum, __locale_t __l) __THROW; */ + #endif + + --- glibc-2.7.orig/debian/patches/hurd-i386/submitted-stat.diff +++ glibc-2.7/debian/patches/hurd-i386/submitted-stat.diff @@ -0,0 +1,136 @@ +This patch is incomplete. Reported on +. The +`sysdeps/mach/hurd/bits/stat.h' hunk alignes to what Linux uses. + +--- sysdeps/mach/hurd/xstatconv.c.orig ++++ sysdeps/mach/hurd/xstatconv.c +@@ -42,12 +42,21 @@ + buf->st_uid = buf64->st_uid; + buf->st_gid = buf64->st_gid; + buf->st_size = buf64->st_size; ++#ifdef __USE_MISC /* TODO. Hm. */ ++ buf->st_atim.tv_sec = buf64->st_atim.tv_sec; ++ buf->st_atim.tv_nsec = buf64->st_atim.tv_nsec; ++ buf->st_mtim.tv_sec = buf64->st_mtim.tv_sec; ++ buf->st_mtim.tv_nsec = buf64->st_mtim.tv_nsec; ++ buf->st_ctim.tv_sec = buf64->st_ctim.tv_sec; ++ buf->st_ctim.tv_nsec = buf64->st_ctim.tv_nsec; ++#else + buf->st_atime = buf64->st_atime; + buf->st_atime_usec = buf64->st_atime_usec; + buf->st_mtime = buf64->st_mtime; + buf->st_mtime_usec = buf64->st_mtime_usec; + buf->st_ctime = buf64->st_ctime; + buf->st_ctime_usec = buf64->st_ctime_usec; ++#endif + buf->st_blksize = buf64->st_blksize; + buf->st_blocks = buf64->st_blocks; + buf->st_author = buf64->st_author; +--- sysdeps/mach/hurd/bits/stat.h.orig ++++ sysdeps/mach/hurd/bits/stat.h +@@ -55,12 +55,32 @@ + __off64_t st_size; /* Size in bytes. */ + #endif + ++#ifdef __USE_MISC ++ /* Nanosecond resolution timestamps are stored in a format ++ equivalent to 'struct timespec'. This is the type used ++ whenever possible but the Unix namespace rules do not allow the ++ identifier 'timespec' to appear in the header. ++ Therefore we have to handle the use of this header in strictly ++ standard-compliant sources special. */ ++ struct timespec st_atim; /* Time of last access. */ ++ struct timespec st_mtim; /* Time of last modification. */ ++ struct timespec st_ctim; /* Time of last status change. */ ++# define st_atime st_atim.tv_sec /* Backward compatibility. */ ++# define st_mtime st_mtim.tv_sec ++# define st_ctime st_ctim.tv_sec ++#else ++ /* TODO: Align to the st_atimensec, etc. which Linux uses and define ++ _STATBUF_ST_NSEC? This requires changes in a) the Hurd code ++ (which uses st_atime_usec etc.) and b) in the glibc documentation ++ (which doesn't mention st_atimensec etc. at all, but does explain ++ the st_atime_used etc. interface). */ + __time_t st_atime; /* Access time, seconds */ + unsigned long int st_atime_usec; /* and microseconds. */ + __time_t st_mtime; /* Modification time, seconds */ + unsigned long int st_mtime_usec; /* and microseconds. */ + __time_t st_ctime; /* Status change time, seconds */ + unsigned long int st_ctime_usec; /* and microseconds. */ ++#endif + + __blksize_t st_blksize; /* Optimal size for I/O. */ + +@@ -104,12 +124,29 @@ + + __off64_t st_size; /* Size in bytes. */ + ++#ifdef __USE_MISC ++ /* Nanosecond resolution timestamps are stored in a format ++ equivalent to 'struct timespec'. This is the type used ++ whenever possible but the Unix namespace rules do not allow the ++ identifier 'timespec' to appear in the header. ++ Therefore we have to handle the use of this header in strictly ++ standard-compliant sources special. */ ++ struct timespec st_atim; /* Time of last access. */ ++ struct timespec st_mtim; /* Time of last modification. */ ++ struct timespec st_ctim; /* Time of last status change. */ ++#else ++ /* TODO: Align to the st_atimensec, etc. which Linux uses and define ++ _STATBUF_ST_NSEC? This requires changes in a) the Hurd code ++ (which uses st_atime_usec etc.) and b) in the glibc documentation ++ (which doesn't mention st_atimensec etc. at all, but does explain ++ the st_atime_used etc. interface). */ + __time_t st_atime; /* Access time, seconds */ + unsigned long int st_atime_usec; /* and microseconds. */ + __time_t st_mtime; /* Modification time, seconds */ + unsigned long int st_mtime_usec; /* and microseconds. */ + __time_t st_ctime; /* Status change time, seconds */ + unsigned long int st_ctime_usec; /* and microseconds. */ ++#endif + + __blksize_t st_blksize; /* Optimal size for I/O. */ + +@@ -127,7 +164,8 @@ + }; + #endif + +-#define _STATBUF_ST_BLKSIZE /* Tell code we have this member. */ ++/* Tell code we have these members. */ ++#define _STATBUF_ST_BLKSIZE + + /* Encoding of the file mode. */ + +@@ -138,23 +176,24 @@ + #define __S_IFCHR 0020000 /* Character device. */ + #define __S_IFBLK 0060000 /* Block device. */ + #define __S_IFREG 0100000 /* Regular file. */ ++#define __S_IFIFO 0010000 /* FIFO. */ + #define __S_IFLNK 0120000 /* Symbolic link. */ + #define __S_IFSOCK 0140000 /* Socket. */ +-#define __S_IFIFO 0010000 /* FIFO. */ + +-/* POSIX.1b objects. */ +-#define __S_TYPEISMQ(buf) (0) +-#define __S_TYPEISSEM(buf) (0) +-#define __S_TYPEISSHM(buf) (0) ++/* POSIX.1b objects. Note that these macros always evaluate to zero. But ++ they do it by enforcing the correct use of the macros. */ ++#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode) ++#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode) ++#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode) + + /* Protection bits. */ + + #define __S_ISUID 04000 /* Set user ID on execution. */ + #define __S_ISGID 02000 /* Set group ID on execution. */ + #define __S_ISVTX 01000 /* Save swapped text after use (sticky). */ +-#define __S_IREAD 00400 /* Read by owner. */ +-#define __S_IWRITE 00200 /* Write by owner. */ +-#define __S_IEXEC 00100 /* Execute by owner. */ ++#define __S_IREAD 0400 /* Read by owner. */ ++#define __S_IWRITE 0200 /* Write by owner. */ ++#define __S_IEXEC 0100 /* Execute by owner. */ + + + #ifdef __USE_GNU --- glibc-2.7.orig/debian/patches/hurd-i386/local-tls.diff +++ glibc-2.7/debian/patches/hurd-i386/local-tls.diff @@ -0,0 +1,27 @@ +Index: glibc-2.7/include/errno.h +=================================================================== +--- glibc-2.7.orig/include/errno.h 2007-10-23 08:46:15.000000000 -0400 ++++ glibc-2.7/include/errno.h 2007-10-23 08:49:36.000000000 -0400 +@@ -21,7 +21,7 @@ + + # include + +-# if USE___THREAD ++# if USE___THREAD && !defined(__GNU__) + # undef errno + # ifndef NOT_IN_libc + # define errno __libc_errno +Index: glibc-2.7/sysdeps/mach/i386/sysdep.h +=================================================================== +--- glibc-2.7.orig/sysdeps/mach/i386/sysdep.h 2007-10-23 08:46:15.000000000 -0400 ++++ glibc-2.7/sysdeps/mach/i386/sysdep.h 2007-10-23 08:49:36.000000000 -0400 +@@ -22,6 +22,9 @@ + #include + #include + ++#include ++#include ++ + #define LOSE asm volatile ("hlt") + + #define SNARF_ARGS(entry_sp, argc, argv, envp) \ --- glibc-2.7.orig/debian/patches/hurd-i386/local-pthread_stubs.diff +++ glibc-2.7/debian/patches/hurd-i386/local-pthread_stubs.diff @@ -0,0 +1,29 @@ +Index: Makerules +=================================================================== +RCS file: /cvs/glibc/libc/Makerules,v +retrieving revision 1.450 +diff -u -p -r1.450 Makerules +--- glibc/Makerules 26 Aug 2007 02:18:03 -0000 1.450 ++++ glibc/Makerules 21 Jan 2008 09:41:42 -0000 +@@ -993,7 +993,8 @@ $(inst_libdir)/libc.so: $(common-objpfx) + cat $<; \ + echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \ + '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\ +- ' AS_NEEDED (' $(slibdir)/$(rtld-installed-name) ') )' \ ++ ' AS_NEEDED (' $(slibdir)/$(rtld-installed-name) ') )' ;\ ++ echo 'INPUT ( AS_NEEDED ( -lpthread-stubs ) )' \ + ) > $@.new + mv -f $@.new $@ + +Index: sysdeps/mach/hurd/libc-ldscript +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/mach/hurd/libc-ldscript,v +retrieving revision 1.2 +diff -u -p -r1.2 libc-ldscript +--- glibc/sysdeps/mach/hurd/libc-ldscript 4 Dec 1996 01:41:11 -0000 1.2 ++++ glibc/sysdeps/mach/hurd/libc-ldscript 20 Jan 2008 22:19:41 -0000 +@@ -4,3 +4,4 @@ + */ + + GROUP ( libcrt.a libmachuser.a libhurduser.a ) ++INPUT ( -lpthread-stubs ) --- glibc-2.7.orig/debian/patches/hurd-i386/submitted-IPV6_PKTINFO.diff +++ glibc-2.7/debian/patches/hurd-i386/submitted-IPV6_PKTINFO.diff @@ -0,0 +1,23 @@ +--- glibc-2.6.1/bits/in.h.orig 2007-08-20 18:01:32.000000000 +0200 ++++ glibc-2.6.1/bits/in.h 2007-08-20 18:02:20.000000000 +0200 +@@ -50,7 +50,7 @@ + + /* IPV6 socket options. */ + #define IPV6_ADDRFORM 1 +-#define IPV6_RXINFO 2 ++#define IPV6_PKTINFO 2 + #define IPV6_HOPOPTS 3 + #define IPV6_DSTOPTS 4 + #define IPV6_RTHDR 5 +@@ -58,8 +58,9 @@ + #define IPV6_CHECKSUM 7 + #define IPV6_HOPLIMIT 8 + +-#define IPV6_TXINFO IPV6_RXINFO +-#define SCM_SRCINFO IPV6_TXINFO ++#define IPV6_RXINFO IPV6_PKTINFO ++#define IPV6_TXINFO IPV6_PKTINFO ++#define SCM_SRCINFO IPV6_PKTINFO + #define SCM_SRCRT IPV6_RXSRCRT + + #define IPV6_UNICAST_HOPS 16 --- glibc-2.7.orig/debian/patches/hurd-i386/submitted-extern_inline.diff +++ glibc-2.7/debian/patches/hurd-i386/submitted-extern_inline.diff @@ -0,0 +1,750 @@ +Index: hurd/hurd.h +=================================================================== +RCS file: /cvs/glibc/libc/hurd/hurd.h,v +retrieving revision 1.81 +diff -u -p -r1.81 hurd.h +--- hurd/hurd.h 17 Mar 2007 17:04:09 -0000 1.81 ++++ hurd/hurd.h 7 Jan 2008 22:29:53 -0000 +@@ -48,6 +48,9 @@ + #define _HURD_H_EXTERN_INLINE __extern_inline + #endif + ++int __hurd_fail (error_t err); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_H_EXTERN_INLINE int + __hurd_fail (error_t err) + { +@@ -77,6 +80,7 @@ + errno = err; + return -1; + } ++#endif + + /* Basic ports and info, initialized by startup. */ + +Index: hurd/hurd/fd.h +=================================================================== +RCS file: /cvs/glibc/libc/hurd/hurd/fd.h,v +retrieving revision 1.36 +--- hurd/hurd/fd.h 17 Mar 2007 17:04:09 -0000 1.36 ++++ hurd/hurd/fd.h 7 Jan 2008 22:29:56 -0000 +@@ -59,6 +59,9 @@ + NULL. The cell is unlocked; when ready to use it, lock it and check for + it being unused. */ + ++struct hurd_fd *_hurd_fd_get (int fd); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_FD_H_EXTERN_INLINE struct hurd_fd * + _hurd_fd_get (int fd) + { +@@ -89,6 +92,7 @@ + + return descriptor; + } ++#endif + + + /* Evaluate EXPR with the variable `descriptor' bound to a pointer to the +@@ -136,6 +140,9 @@ + /* Check if ERR should generate a signal. + Returns the signal to take, or zero if none. */ + ++int _hurd_fd_error_signal (error_t err); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_FD_H_EXTERN_INLINE int + _hurd_fd_error_signal (error_t err) + { +@@ -152,11 +159,15 @@ + return 0; + } + } ++#endif + + /* Handle an error from an RPC on a file descriptor's port. You should + always use this function to handle errors from RPCs made on file + descriptor ports. Some errors are translated into signals. */ + ++error_t _hurd_fd_error (int fd, error_t err); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_FD_H_EXTERN_INLINE error_t + _hurd_fd_error (int fd, error_t err) + { +@@ -169,16 +180,21 @@ + } + return err; + } ++#endif + + /* Handle error code ERR from an RPC on file descriptor FD's port. + Set `errno' to the appropriate error code, and always return -1. */ + ++int __hurd_dfail (int fd, error_t err); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_FD_H_EXTERN_INLINE int + __hurd_dfail (int fd, error_t err) + { + errno = _hurd_fd_error (fd, err); + return -1; + } ++#endif + + /* Set up *FD to have PORT its server port, doing appropriate ctty magic. + Does no locking or unlocking. */ +Index: hurd/hurd/port.h +=================================================================== +RCS file: /cvs/glibc/libc/hurd/hurd/port.h,v +retrieving revision 1.13 +--- hurd/hurd/port.h 17 Mar 2007 17:04:09 -0000 1.13 ++++ hurd/hurd/port.h 7 Jan 2008 22:29:56 -0000 +@@ -62,6 +62,9 @@ + + /* Initialize *PORT to INIT. */ + ++void _hurd_port_init (struct hurd_port *port, mach_port_t init); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_PORT_H_EXTERN_INLINE void + _hurd_port_init (struct hurd_port *port, mach_port_t init) + { +@@ -69,6 +72,7 @@ + port->users = NULL; + port->port = init; + } ++#endif + + + /* Cleanup function for non-local exits. */ +@@ -77,6 +81,11 @@ + /* Get a reference to *PORT, which is locked. + Pass return value and LINK to _hurd_port_free when done. */ + ++mach_port_t ++_hurd_port_locked_get (struct hurd_port *port, ++ struct hurd_userlink *link); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_PORT_H_EXTERN_INLINE mach_port_t + _hurd_port_locked_get (struct hurd_port *port, + struct hurd_userlink *link) +@@ -92,9 +101,15 @@ + __spin_unlock (&port->lock); + return result; + } ++#endif + + /* Same, but locks PORT first. */ + ++mach_port_t ++_hurd_port_get (struct hurd_port *port, ++ struct hurd_userlink *link); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_PORT_H_EXTERN_INLINE mach_port_t + _hurd_port_get (struct hurd_port *port, + struct hurd_userlink *link) +@@ -106,10 +121,17 @@ + HURD_CRITICAL_END; + return result; + } ++#endif + + + /* Free a reference gotten with `USED_PORT = _hurd_port_get (PORT, LINK);' */ + ++void ++_hurd_port_free (struct hurd_port *port, ++ struct hurd_userlink *link, ++ mach_port_t used_port); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_PORT_H_EXTERN_INLINE void + _hurd_port_free (struct hurd_port *port, + struct hurd_userlink *link, +@@ -129,11 +151,15 @@ + if (dealloc) + __mach_port_deallocate (__mach_task_self (), used_port); + } ++#endif + + + /* Set *PORT's port to NEWPORT. NEWPORT's reference is consumed by PORT->port. + PORT->lock is locked. */ + ++void _hurd_port_locked_set (struct hurd_port *port, mach_port_t newport); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_PORT_H_EXTERN_INLINE void + _hurd_port_locked_set (struct hurd_port *port, mach_port_t newport) + { +@@ -144,9 +170,13 @@ + if (old != MACH_PORT_NULL) + __mach_port_deallocate (__mach_task_self (), old); + } ++#endif + + /* Same, but locks PORT first. */ + ++void _hurd_port_set (struct hurd_port *port, mach_port_t newport); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_PORT_H_EXTERN_INLINE void + _hurd_port_set (struct hurd_port *port, mach_port_t newport) + { +@@ -155,6 +185,7 @@ + _hurd_port_locked_set (port, newport); + HURD_CRITICAL_END; + } ++#endif + + + #endif /* hurd/port.h */ +Index: hurd/hurd/signal.h +=================================================================== +RCS file: /cvs/glibc/libc/hurd/hurd/signal.h,v +retrieving revision 1.49 +--- hurd/hurd/signal.h 19 Jul 2007 17:20:39 -0000 1.49 ++++ hurd/hurd/signal.h 7 Jan 2008 22:29:56 -0000 +@@ -130,15 +130,17 @@ + #define _HURD_SIGNAL_H_EXTERN_INLINE __extern_inline + #endif + ++#ifdef __USE_EXTERN_INLINES + _HURD_SIGNAL_H_EXTERN_INLINE struct hurd_sigstate * + _hurd_self_sigstate (void) + { +- struct hurd_sigstate **location = ++ struct hurd_sigstate **location = (struct hurd_sigstate **) + (void *) __hurd_threadvar_location (_HURD_THREADVAR_SIGSTATE); + if (*location == NULL) + *location = _hurd_thread_sigstate (__mach_thread_self ()); + return *location; + } ++#endif + + /* Thread listening on our message port; also called the "signal thread". */ + +@@ -165,10 +167,13 @@ + interrupted lest the signal handler try to take the same lock and + deadlock result. */ + ++void *_hurd_critical_section_lock (void); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_SIGNAL_H_EXTERN_INLINE void * + _hurd_critical_section_lock (void) + { +- struct hurd_sigstate **location = ++ struct hurd_sigstate **location = (struct hurd_sigstate **) + (void *) __hurd_threadvar_location (_HURD_THREADVAR_SIGSTATE); + struct hurd_sigstate *ss = *location; + if (ss == NULL) +@@ -190,7 +195,11 @@ + _hurd_critical_section_unlock to unlock it. */ + return ss; + } ++#endif ++ ++void _hurd_critical_section_unlock (void *our_lock); + ++#ifdef __USE_EXTERN_INLINES + _HURD_SIGNAL_H_EXTERN_INLINE void + _hurd_critical_section_unlock (void *our_lock) + { +@@ -200,7 +209,7 @@ + else + { + /* It was us who acquired the critical section lock. Unlock it. */ +- struct hurd_sigstate *ss = our_lock; ++ struct hurd_sigstate *ss = (struct hurd_sigstate *) our_lock; + sigset_t pending; + __spin_lock (&ss->lock); + __spin_unlock (&ss->critical_section_lock); +@@ -213,6 +222,7 @@ + __msg_sig_post (_hurd_msgport, 0, 0, __mach_task_self ()); + } + } ++#endif + + /* Convenient macros for simple uses of critical sections. + These two must be used as a pair at the same C scoping level. */ +Index: hurd/hurd/threadvar.h +=================================================================== +RCS file: /cvs/glibc/libc/hurd/hurd/threadvar.h,v +retrieving revision 1.19 +--- hurd/hurd/threadvar.h 17 Mar 2007 17:04:09 -0000 1.19 ++++ hurd/hurd/threadvar.h 7 Jan 2008 22:29:56 -0000 +@@ -82,6 +82,8 @@ + + extern unsigned long int *__hurd_threadvar_location_from_sp + (enum __hurd_threadvar_index __index, void *__sp); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_THREADVAR_H_EXTERN_INLINE unsigned long int * + __hurd_threadvar_location_from_sp (enum __hurd_threadvar_index __index, + void *__sp) +@@ -93,6 +95,7 @@ + : (unsigned long int *) ((__stack & __hurd_threadvar_stack_mask) + + __hurd_threadvar_stack_offset))[__index]; + } ++#endif + + #include /* Define __thread_stack_pointer. */ + +@@ -106,12 +109,14 @@ + the same stack frame by different threads. */ + __attribute__ ((__const__)); + ++#ifdef __USE_EXTERN_INLINES + _HURD_THREADVAR_H_EXTERN_INLINE unsigned long int * + __hurd_threadvar_location (enum __hurd_threadvar_index __index) + { + return __hurd_threadvar_location_from_sp (__index, + __thread_stack_pointer ()); + } ++#endif + + + #endif /* hurd/threadvar.h */ +Index: hurd/hurd/userlink.h +=================================================================== +RCS file: /cvs/glibc/libc/hurd/hurd/userlink.h,v +retrieving revision 1.10 +--- hurd/hurd/userlink.h 17 Mar 2007 17:04:09 -0000 1.10 ++++ hurd/hurd/userlink.h 7 Jan 2008 22:29:56 -0000 +@@ -77,6 +77,11 @@ + + /* Attach LINK to the chain of users at *CHAINP. */ + ++void ++_hurd_userlink_link (struct hurd_userlink **chainp, ++ struct hurd_userlink *link); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_USERLINK_H_EXTERN_INLINE void + _hurd_userlink_link (struct hurd_userlink **chainp, + struct hurd_userlink *link) +@@ -97,11 +102,15 @@ + link->thread.prevp = thread_chainp; + *thread_chainp = link; + } ++#endif + + + /* Detach LINK from its chain. Returns nonzero iff this was the + last user of the resource and it should be deallocated. */ + ++int _hurd_userlink_unlink (struct hurd_userlink *link); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_USERLINK_H_EXTERN_INLINE int + _hurd_userlink_unlink (struct hurd_userlink *link) + { +@@ -124,6 +133,7 @@ + + return dealloc; + } ++#endif + + + /* Clear all users from *CHAINP. Call this when the resource *CHAINP +@@ -132,6 +142,9 @@ + value is zero, someone is still using the resource and they will + deallocate it when they are finished. */ + ++int _hurd_userlink_clear (struct hurd_userlink **chainp); ++ ++#ifdef __USE_EXTERN_INLINES + _HURD_USERLINK_H_EXTERN_INLINE int + _hurd_userlink_clear (struct hurd_userlink **chainp) + { +@@ -144,5 +157,6 @@ + *chainp = NULL; + return 0; + } ++#endif + + #endif /* hurd/userlink.h */ +Index: mach/lock-intern.h +=================================================================== +RCS file: /cvs/glibc/libc/mach/lock-intern.h,v +retrieving revision 1.8 +--- mach/lock-intern.h 22 Jul 2007 06:50:53 -0000 1.8 ++++ mach/lock-intern.h 7 Jan 2008 22:30:03 -0000 +@@ -29,11 +29,15 @@ + + /* Initialize LOCK. */ + ++void __spin_lock_init (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void + __spin_lock_init (__spin_lock_t *__lock) + { + *__lock = __SPIN_LOCK_INITIALIZER; + } ++#endif + + + /* Lock LOCK, blocking if we can't get it. */ +@@ -41,12 +45,16 @@ + + /* Lock the spin lock LOCK. */ + ++void __spin_lock (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void + __spin_lock (__spin_lock_t *__lock) + { + if (! __spin_try_lock (__lock)) + __spin_lock_solid (__lock); + } ++#endif + + /* Name space-clean internal interface to mutex locks. + +@@ -71,27 +79,39 @@ + + /* Lock the mutex lock LOCK. */ + ++void __mutex_lock (void *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void + __mutex_lock (void *__lock) + { + if (! __spin_try_lock ((__spin_lock_t *) __lock)) + __mutex_lock_solid (__lock); + } ++#endif + + /* Unlock the mutex lock LOCK. */ + ++void __mutex_unlock (void *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void + __mutex_unlock (void *__lock) + { + __spin_unlock ((__spin_lock_t *) __lock); + __mutex_unlock_solid (__lock); + } ++#endif ++ + ++int __mutex_trylock (void *__lock); + ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE int + __mutex_trylock (void *__lock) + { + return __spin_try_lock ((__spin_lock_t *) __lock); + } ++#endif + + #endif /* lock-intern.h */ +Index: mach/mach/mig_support.h +=================================================================== +RCS file: /cvs/glibc/libc/mach/mach/mig_support.h,v +retrieving revision 1.9 +--- mach/mach/mig_support.h 17 Mar 2007 17:04:06 -0000 1.9 ++++ mach/mach/mig_support.h 7 Jan 2008 22:30:03 -0000 +@@ -67,6 +67,8 @@ + /* Idiocy support function. */ + extern vm_size_t mig_strncpy (char *__dst, const char *__src, vm_size_t __len); + extern vm_size_t __mig_strncpy (char *__dst, const char *__src, vm_size_t); ++ ++#ifdef __USE_EXTERN_INLINES + __extern_inline vm_size_t + __mig_strncpy (char *__dst, const char *__src, vm_size_t __len) + { +@@ -77,6 +79,7 @@ + { + return __mig_strncpy (__dst, __src, __len); + } ++#endif + + + +Index: sysdeps/generic/machine-lock.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/generic/machine-lock.h,v +retrieving revision 1.3 +--- sysdeps/generic/machine-lock.h 17 Mar 2007 17:04:10 -0000 1.3 ++++ sysdeps/generic/machine-lock.h 7 Jan 2008 22:30:08 -0000 +@@ -35,14 +35,21 @@ + + /* Unlock LOCK. */ + ++void __spin_unlock (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void + __spin_unlock (__spin_lock_t *__lock) + { + *__lock = 0; + } ++#endif + + /* Try to lock LOCK; return nonzero if we locked it, zero if another has. */ + ++int __spin_try_lock (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE int + __spin_try_lock (__spin_lock_t *__lock) + { +@@ -51,14 +58,19 @@ + *__lock = 1; + return 1; + } ++#endif + + /* Return nonzero if LOCK is locked. */ + ++int __spin_lock_locked (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE int + __spin_lock_locked (__spin_lock_t *__lock) + { + return *__lock != 0; + } ++#endif + + + #endif /* machine-lock.h */ +Index: sysdeps/generic/machine-sp.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/generic/machine-sp.h,v +retrieving revision 1.3 +--- sysdeps/generic/machine-sp.h 17 Mar 2007 17:04:10 -0000 1.3 ++++ sysdeps/generic/machine-sp.h 7 Jan 2008 22:30:08 -0000 +@@ -26,11 +26,15 @@ + #define _EXTERN_INLINE __extern_inline + #endif + ++void * __thread_stack_pointer (void); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void * + __thread_stack_pointer (void) + { + register void *__sp__ ("{STACK-POINTER}"); + return __sp__; + } ++#endif + + #endif /* machine-sp.h */ +Index: sysdeps/mach/alpha/machine-lock.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/mach/alpha/machine-lock.h,v +retrieving revision 1.7 +--- sysdeps/mach/alpha/machine-lock.h 17 Mar 2007 17:04:09 -0000 1.7 ++++ sysdeps/mach/alpha/machine-lock.h 7 Jan 2008 22:30:08 -0000 +@@ -35,15 +35,22 @@ + + /* Unlock LOCK. */ + ++void __spin_unlock (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void + __spin_unlock (__spin_lock_t *__lock) + { + __asm__ __volatile__ ("mb; stq $31, %0; mb" + : "=m" (__lock)); + } ++#endif + + /* Try to lock LOCK; return nonzero if we locked it, zero if another has. */ + ++int __spin_try_lock (register __spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE int + __spin_try_lock (register __spin_lock_t *__lock) + { +@@ -67,14 +74,19 @@ + /* RTN is now nonzero; we have the lock. */ + return __rtn; + } ++#endif + + /* Return nonzero if LOCK is locked. */ + ++int __spin_lock_locked (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE int + __spin_lock_locked (__spin_lock_t *__lock) + { + return *__lock != 0; + } ++#endif + + + #endif /* machine-lock.h */ +Index: sysdeps/mach/alpha/machine-sp.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/mach/alpha/machine-sp.h,v +retrieving revision 1.4 +--- sysdeps/mach/alpha/machine-sp.h 17 Mar 2007 17:04:09 -0000 1.4 ++++ sysdeps/mach/alpha/machine-sp.h 7 Jan 2008 22:30:08 -0000 +@@ -26,11 +26,15 @@ + #define _EXTERN_INLINE __extern_inline + #endif + ++void * __thread_stack_pointer (void); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void * + __thread_stack_pointer (void) + { + register void *__sp__ __asm__ ("$30"); + return __sp__; + } ++#endif + + #endif /* machine-sp.h */ +Index: sysdeps/mach/i386/machine-lock.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/mach/i386/machine-lock.h,v +retrieving revision 1.8 +--- sysdeps/mach/i386/machine-lock.h 17 Mar 2007 17:04:09 -0000 1.8 ++++ sysdeps/mach/i386/machine-lock.h 7 Jan 2008 22:30:21 -0000 +@@ -35,6 +35,9 @@ + + /* Unlock LOCK. */ + ++void __spin_unlock (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void + __spin_unlock (__spin_lock_t *__lock) + { +@@ -42,9 +45,13 @@ + __asm__ __volatile ("xchgl %0, %1" + : "=&r" (__unlocked), "=m" (*__lock) : "0" (0)); + } ++#endif + + /* Try to lock LOCK; return nonzero if we locked it, zero if another has. */ + ++int __spin_try_lock (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE int + __spin_try_lock (__spin_lock_t *__lock) + { +@@ -53,14 +60,19 @@ + : "=&r" (__locked), "=m" (*__lock) : "0" (1)); + return !__locked; + } ++#endif + + /* Return nonzero if LOCK is locked. */ + ++int __spin_lock_locked (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE int + __spin_lock_locked (__spin_lock_t *__lock) + { + return *__lock != 0; + } ++#endif + + + #endif /* machine-lock.h */ +Index: sysdeps/mach/powerpc/machine-lock.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/mach/powerpc/machine-lock.h,v +retrieving revision 1.5 +--- sysdeps/mach/powerpc/machine-lock.h 17 Mar 2007 17:04:09 -0000 1.5 ++++ sysdeps/mach/powerpc/machine-lock.h 7 Jan 2008 22:30:21 -0000 +@@ -35,6 +35,9 @@ + + /* Unlock LOCK. */ + ++void __spin_unlock (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void + __spin_unlock (__spin_lock_t *__lock) + { +@@ -45,9 +48,13 @@ + bne- 0b\n\ + " : "=&r" (__locked) : "r" (__lock), "r" (0) : "cr0"); + } ++#endif + + /* Try to lock LOCK; return nonzero if we locked it, zero if another has. */ + ++int __spin_try_lock (register __spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE int + __spin_try_lock (register __spin_lock_t *__lock) + { +@@ -59,9 +66,13 @@ + " : "=&r" (__rtn) : "r" (__lock), "r" (1) : "cr0"); + return !__rtn; + } ++#endif + + /* Return nonzero if LOCK is locked. */ + ++int __spin_lock_locked (__spin_lock_t *__lock); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE int + __spin_lock_locked (__spin_lock_t *__lock) + { +@@ -73,6 +84,7 @@ + " : "=&r" (__rtn) : "r" (__lock) : "cr0"); + return __rtn; + } ++#endif + + + #endif /* machine-lock.h */ +Index: sysdeps/mach/powerpc/machine-sp.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/mach/powerpc/machine-sp.h,v +retrieving revision 1.3 +--- sysdeps/mach/powerpc/machine-sp.h 17 Mar 2007 17:04:09 -0000 1.3 ++++ sysdeps/mach/powerpc/machine-sp.h 7 Jan 2008 22:30:21 -0000 +@@ -31,6 +31,9 @@ + # endif + #endif + ++void * __thread_stack_pointer (void); ++ ++#ifdef __USE_EXTERN_INLINES + _EXTERN_INLINE void * + __thread_stack_pointer (void) + { +@@ -38,5 +41,6 @@ + __asm__ ("mr %0, 1" : "=r" (__sp__)); + return __sp__; + } ++#endif + + #endif /* machine-sp.h */ +Index: mach/spin-lock.c +=================================================================== +RCS file: /cvs/glibc/libc/mach/spin-lock.c,v +retrieving revision 1.3 +--- mach/spin-lock.c 26 Jan 1995 04:15:58 -0000 1.3 ++++ mach/spin-lock.c 7 Jan 2008 22:52:38 -0000 +@@ -1,3 +1,4 @@ ++#define __USE_EXTERN_INLINES 1 + #define _EXTERN_INLINE /* Empty to define the real functions. */ + #include "spin-lock.h" + --- glibc-2.7.orig/debian/patches/hurd-i386/submitted-mig-init.diff +++ glibc-2.7/debian/patches/hurd-i386/submitted-mig-init.diff @@ -0,0 +1,100 @@ +2008-03-04 Samuel Thibault + + Mig supposes these to be initialized. + * sysdeps/mach/hurd/recv.c (__recv): Initialize nports. + * sysdeps/mach/hurd/recvfrom.c (__recvfrom): Likewise. + * sysdeps/mach/hurd/recvmsg.c (__recvmsg): Likewise. + * hurd/fd-read.c (_hurd_fd_read): Initialize nread. + * hurd/get-host.c (_hurd_get_host_config): Likewise. + * sysdeps/mach/hurd/dl-sysdep.c (__libc_read): Likewise. + +Index: glibc/sysdeps/mach/hurd/recv.c +=================================================================== +RCS file: /cvs/glibc/libc/glibc/sysdeps/mach/hurd/recv.c,v +retrieving revision 1.9 +diff -u -p -r1.9 recv.c +--- glibc/sysdeps/mach/hurd/recv.c 22 Feb 2005 22:51:00 -0000 1.9 ++++ glibc/sysdeps/mach/hurd/recv.c 4 Mar 2008 01:44:12 -0000 +@@ -38,7 +38,7 @@ + char *bufp = buf; + mach_msg_type_number_t nread = n; + mach_port_t *ports; +- mach_msg_type_number_t nports; ++ mach_msg_type_number_t nports = 0; + char *cdata = NULL; + mach_msg_type_number_t clen = 0; + +Index: glibc/sysdeps/mach/hurd/recvfrom.c +=================================================================== +RCS file: /cvs/glibc/libc/glibc/sysdeps/mach/hurd/recvfrom.c,v +retrieving revision 1.12 +--- glibc/sysdeps/mach/hurd/recvfrom.c 15 May 2002 00:08:24 -0000 1.12 ++++ glibc/sysdeps/mach/hurd/recvfrom.c 4 Mar 2008 01:44:12 -0000 +@@ -41,7 +41,7 @@ + char *bufp = buf; + mach_msg_type_number_t nread = n; + mach_port_t *ports; +- mach_msg_type_number_t nports; ++ mach_msg_type_number_t nports = 0; + char *cdata = NULL; + mach_msg_type_number_t clen = 0; + struct sockaddr *addr = addrarg.__sockaddr__; +Index: glibc/sysdeps/mach/hurd/recvmsg.c +=================================================================== +RCS file: /cvs/glibc/libc/glibc/sysdeps/mach/hurd/recvmsg.c,v +retrieving revision 1.3 +--- glibc/sysdeps/mach/hurd/recvmsg.c 26 Aug 2002 22:39:46 -0000 1.3 ++++ glibc/sysdeps/mach/hurd/recvmsg.c 4 Mar 2008 01:44:12 -0000 +@@ -34,7 +34,7 @@ + char *data = NULL; + mach_msg_type_number_t len = 0; + mach_port_t *ports; +- mach_msg_type_number_t nports; ++ mach_msg_type_number_t nports = 0; + char *cdata = NULL; + mach_msg_type_number_t clen = 0; + size_t amount; +Index: glibc/hurd/fd-read.c +=================================================================== +RCS file: /cvs/glibc/libc/hurd/fd-read.c,v +retrieving revision 1.15 +diff -u -p -r1.15 fd-read.c +--- glibc/hurd/fd-read.c 11 Jun 2002 23:03:16 -0000 1.15 ++++ glibc/hurd/fd-read.c 4 Mar 2008 02:43:50 -0000 +@@ -35,6 +35,7 @@ _hurd_fd_read (struct hurd_fd *fd, void + } + + data = buf; ++ nread = *nbytes; + if (err = HURD_FD_PORT_USE (fd, _hurd_ctty_input (port, ctty, readfd))) + return err; + +Index: glibc/hurd/get-host.c +=================================================================== +RCS file: /cvs/glibc/libc/hurd/get-host.c,v +retrieving revision 1.10 +diff -u -p -r1.10 get-host.c +--- glibc/hurd/get-host.c 6 Jul 2001 04:54:47 -0000 1.10 ++++ glibc/hurd/get-host.c 4 Mar 2008 02:44:46 -0000 +@@ -51,6 +51,7 @@ _hurd_get_host_config (const char *item, + } + + data = buf; ++ nread = buflen; + err = __io_read (config, &data, &nread, -1, buflen); + if (! err) + /* Check if there is more in the file we didn't read. */ +Index: glibc/sysdeps/mach/hurd/dl-sysdep.c +=================================================================== +RCS file: /cvs/glibc/libc/glibc/sysdeps/mach/hurd/dl-sysdep.c,v +retrieving revision 1.78 +--- glibc/sysdeps/mach/hurd/dl-sysdep.c 6 Sep 2004 21:31:38 -0000 1.78 ++++ glibc/sysdeps/mach/hurd/dl-sysdep.c 4 Mar 2008 02:01:53 -0000 +@@ -367,6 +367,7 @@ + mach_msg_type_number_t nread; + + data = buf; ++ nread = nbytes; + err = __io_read ((mach_port_t) fd, &data, &nread, -1, nbytes); + if (err) + return __hurd_fail (err); --- glibc-2.7.orig/debian/patches/hurd-i386/submitted-ptr-mangle.diff +++ glibc-2.7/debian/patches/hurd-i386/submitted-ptr-mangle.diff @@ -0,0 +1,23 @@ +2007-11-12 Aurelien Jarno + Thomas Schwinge + + * sysdeps/mach/i386/sysdep.h (PTR_MANGLE, PTR_DEMANGLE): Define. + +--- sysdeps/mach/i386/sysdep.h.orig ++++ sysdeps/mach/i386/sysdep.h +@@ -58,6 +58,15 @@ + + #define STACK_GROWTH_DOWN + ++/* Pointer mangling is not yet supported for Hurd. */ ++#ifdef __ASSEMBLER__ ++#define PTR_MANGLE(var) ++#define PTR_DEMANGLE(var) ++#else ++#define PTR_MANGLE(var) (void) (var) ++#define PTR_DEMANGLE(var) (void) (var) ++#endif ++ + /* Get the machine-independent Mach definitions. */ + #include + --- glibc-2.7.orig/debian/patches/hurd-i386/local-tls-support.diff +++ glibc-2.7/debian/patches/hurd-i386/local-tls-support.diff @@ -0,0 +1,440 @@ +--- csu/libc-start.c.orig ++++ csu/libc-start.c 2007-10-27 15:42:32.000000000 +0200 +@@ -134,10 +134,12 @@ + } + # endif + ++#ifndef __GNU__ + /* Initialize the thread library at least a bit since the libgcc + functions are using thread functions if these are available and + we need to setup errno. */ + __pthread_initialize_minimal (); ++#endif + + /* Set up the stack checker's canary. */ + uintptr_t stack_chk_guard = _dl_setup_stack_chk_guard (); +--- hurd/hurdfault.c.orig ++++ hurd/hurdfault.c +@@ -206,6 +206,8 @@ + /* This state will be restored when we fault. + It runs the function above. */ + memset (&state, 0, sizeof state); ++ ++ MACHINE_THREAD_STATE_FIX_NEW (&state); + MACHINE_THREAD_STATE_SET_PC (&state, faulted); + MACHINE_THREAD_STATE_SET_SP (&state, faultstack, sizeof faultstack); + +--- hurd/hurdsig.c.orig ++++ hurd/hurdsig.c +@@ -1260,6 +1260,8 @@ + (vm_address_t *) &__hurd_sigthread_stack_base, + &stacksize); + assert_perror (err); ++ err = __mach_setup_tls (_hurd_msgport_thread); ++ assert_perror (err); + + __hurd_sigthread_stack_end = __hurd_sigthread_stack_base + stacksize; + __hurd_sigthread_variables = +@@ -1268,8 +1270,6 @@ + __libc_fatal ("hurd: Can't allocate threadvars for signal thread\n"); + memset (__hurd_sigthread_variables, 0, + __hurd_threadvar_max * sizeof (unsigned long int)); +- __hurd_sigthread_variables[_HURD_THREADVAR_LOCALE] +- = (unsigned long int) &_nl_global_locale; + + /* Reinitialize the MiG support routines so they will use a per-thread + variable for the cached reply port. */ +--- mach/mach.h.orig ++++ mach/mach.h +@@ -101,5 +101,8 @@ + vm_address_t *stack_base, + vm_size_t *stack_size); + ++/* Give THREAD a TLS area. */ ++kern_return_t __mach_setup_tls (thread_t thread); ++kern_return_t mach_setup_tls (thread_t thread); + + #endif /* mach.h */ +--- mach/setup-thread.c.orig ++++ mach/setup-thread.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include "sysdep.h" /* Defines stack direction. */ + + #define STACK_SIZE (16 * 1024 * 1024) /* 16MB, arbitrary. */ +@@ -73,8 +74,35 @@ + if (error = __vm_protect (task, stack, __vm_page_size, 0, VM_PROT_NONE)) + return error; + +- return __thread_set_state (thread, MACHINE_THREAD_STATE_FLAVOR, ++ return __thread_set_state (thread, MACHINE_NEW_THREAD_STATE_FLAVOR, + (natural_t *) &ts, tssize); + } + + weak_alias (__mach_setup_thread, mach_setup_thread) ++ ++/* Give THREAD a TLS area. */ ++kern_return_t ++__mach_setup_tls (thread_t thread) ++{ ++ kern_return_t error; ++ struct machine_thread_state ts; ++ mach_msg_type_number_t tssize = MACHINE_THREAD_STATE_COUNT; ++ tcbhead_t *tcb; ++ ++ if (error = __thread_get_state (thread, MACHINE_THREAD_STATE_FLAVOR, ++ (natural_t *) &ts, &tssize)) ++ return error; ++ assert (tssize == MACHINE_THREAD_STATE_COUNT); ++ ++ tcb = _dl_allocate_tls(NULL); ++ if (!tcb) ++ return KERN_RESOURCE_SHORTAGE; ++ ++ _hurd_tls_new(thread, &ts, tcb); ++ ++ error = __thread_set_state (thread, MACHINE_THREAD_STATE_FLAVOR, ++ (natural_t *) &ts, tssize); ++ return error; ++} ++ ++weak_alias (__mach_setup_tls, mach_setup_tls) +--- sysdeps/generic/thread_state.h.orig ++++ sysdeps/generic/thread_state.h +@@ -23,6 +23,7 @@ + + /* Replace with "i386" or "mips" or whatever. */ + ++#define MACHINE_NEW_THREAD_STATE_FLAVOR _NEW_THREAD_STATE + #define MACHINE_THREAD_STATE_FLAVOR _THREAD_STATE + #define MACHINE_THREAD_STATE_COUNT _THREAD_STATE_COUNT + +--- sysdeps/mach/alpha/thread_state.h.orig ++++ sysdeps/mach/alpha/thread_state.h +@@ -19,6 +19,7 @@ + + #include + ++#define MACHINE_NEW_THREAD_STATE_FLAVOR ALPHA_THREAD_STATE + #define MACHINE_THREAD_STATE_FLAVOR ALPHA_THREAD_STATE + #define MACHINE_THREAD_STATE_COUNT ALPHA_THREAD_STATE_COUNT + +--- sysdeps/mach/hurd/bits/libc-tsd.h.orig ++++ sysdeps/mach/hurd/bits/libc-tsd.h +@@ -1,34 +0,0 @@ +-/* libc-internal interface for thread-specific data. Hurd version. +- Copyright (C) 1998,2002 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 +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- 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. */ +- +-#ifndef _BITS_LIBC_TSD_H +-#define _BITS_LIBC_TSD_H 1 +- +-#include +- +-#define __libc_tsd_define(CLASS, KEY) /* nothing, always have threadvars */ +- +-#define __libc_tsd_address(KEY) \ +- ((void **) __hurd_threadvar_location (_HURD_THREADVAR_##KEY)) +- +-#define __libc_tsd_get(KEY) (*__libc_tsd_address (KEY)) +-#define __libc_tsd_set(KEY, VALUE) (*__libc_tsd_address (KEY) = (VALUE)) +- +- +-#endif /* bits/libc-tsd.h */ +--- sysdeps/mach/hurd/fork.c.orig ++++ sysdeps/mach/hurd/fork.c +@@ -523,6 +523,11 @@ + #endif + MACHINE_THREAD_STATE_SET_PC (&state, + (unsigned long int) _hurd_msgport_receive); ++ ++ /* Do special thread setup for TLS if needed. */ ++ if (err = _hurd_tls_fork (sigthread, _hurd_msgport_thread, &state)) ++ LOSE; ++ + if (err = __thread_set_state (sigthread, MACHINE_THREAD_STATE_FLAVOR, + (natural_t *) &state, statecount)) + LOSE; +@@ -533,7 +538,7 @@ + _hurd_longjmp_thread_state (&state, env, 1); + + /* Do special thread setup for TLS if needed. */ +- if (err = _hurd_tls_fork (thread, &state)) ++ if (err = _hurd_tls_fork (thread, __mach_thread_self (), &state)) + LOSE; + + if (err = __thread_set_state (thread, MACHINE_THREAD_STATE_FLAVOR, +--- sysdeps/mach/hurd/i386/init-first.c.orig ++++ sysdeps/mach/hurd/i386/init-first.c +@@ -104,10 +104,6 @@ + char **argv = &arg0; + char **envp = &argv[argc + 1]; + struct hurd_startup_data *d; +-#ifndef SHARED +- extern ElfW(Phdr) *_dl_phdr; +- extern size_t _dl_phnum; +-#endif + + while (*envp) + ++envp; +@@ -118,27 +114,9 @@ + data block; the argument strings start there. */ + if ((void *) d == argv[0]) + { +-#ifndef SHARED +- /* We may need to see our own phdrs, e.g. for TLS setup. +- Try the usual kludge to find the headers without help from +- the exec server. */ +- extern const void _start; +- const ElfW(Ehdr) *const ehdr = &_start; +- _dl_phdr = (ElfW(Phdr) *) ((const void *) ehdr + ehdr->e_phoff); +- _dl_phnum = ehdr->e_phnum; +- assert (ehdr->e_phentsize == sizeof (ElfW(Phdr))); +-#endif + return; + } + +-#ifndef SHARED +- __libc_enable_secure = d->flags & EXEC_SECURE; +- +- _dl_phdr = (ElfW(Phdr) *) d->phdr; +- _dl_phnum = d->phdrsz / sizeof (ElfW(Phdr)); +- assert (d->phdrsz % sizeof (ElfW(Phdr)) == 0); +-#endif +- + _hurd_init_dtable = d->dtable; + _hurd_init_dtablesize = d->dtablesize; + +@@ -172,13 +150,16 @@ + char **envp = &argv[argc + 1]; + struct hurd_startup_data *d; + unsigned long int threadvars[_HURD_THREADVAR_MAX]; ++#ifndef SHARED ++ extern ElfW(Phdr) *_dl_phdr; ++ extern size_t _dl_phnum; ++#endif + + /* Provide temporary storage for thread-specific variables on the + startup stack so the cthreads initialization code can use them + for malloc et al, or so we can use malloc below for the real + threadvars array. */ + memset (threadvars, 0, sizeof threadvars); +- threadvars[_HURD_THREADVAR_LOCALE] = (unsigned long int) &_nl_global_locale; + __hurd_threadvar_stack_offset = (unsigned long int) threadvars; + + /* Since the cthreads initialization code uses malloc, and the +@@ -192,6 +173,39 @@ + ++envp; + d = (void *) ++envp; + ++ /* If we are the bootstrap task started by the kernel, ++ then after the environment pointers there is no Hurd ++ data block; the argument strings start there. */ ++ if ((void *) d == argv[0]) ++ { ++#ifndef SHARED ++ /* We may need to see our own phdrs, e.g. for TLS setup. ++ Try the usual kludge to find the headers without help from ++ the exec server. */ ++ extern const void __executable_start; ++ const ElfW(Ehdr) *const ehdr = &__executable_start; ++ _dl_phdr = (ElfW(Phdr) *) ((const void *) ehdr + ehdr->e_phoff); ++ _dl_phnum = ehdr->e_phnum; ++ assert (ehdr->e_phentsize == sizeof (ElfW(Phdr))); ++#endif ++ } ++ else ++ { ++#ifndef SHARED ++ __libc_enable_secure = d->flags & EXEC_SECURE; ++ ++ _dl_phdr = (ElfW(Phdr) *) d->phdr; ++ _dl_phnum = d->phdrsz / sizeof (ElfW(Phdr)); ++ assert (d->phdrsz % sizeof (ElfW(Phdr)) == 0); ++#endif ++ } ++ ++#ifndef SHARED ++ /* We need to setup TLS before starting sigthread */ ++ extern void __pthread_initialize_minimal(void); ++ __pthread_initialize_minimal(); ++#endif ++ + /* The user might have defined a value for this, to get more variables. + Otherwise it will be zero on startup. We must make sure it is set + properly before before cthreads initialization, so cthreads can know +--- sysdeps/mach/hurd/i386/tls.h.orig ++++ sysdeps/mach/hurd/i386/tls.h +@@ -96,7 +96,7 @@ + /* Fetch the selector set by the first call. */ + int sel; + asm ("mov %%gs, %w0" : "=q" (sel) : "0" (0)); +- if (__builtin_expect (sel, 0x50) & 4) /* LDT selector */ ++ if (__builtin_expect (sel, 0x48) & 4) /* LDT selector */ + { + error_t err = __i386_set_ldt (tcb->self, sel, &desc, 1); + assert_perror (err); +@@ -142,9 +142,40 @@ + + #include + +-/* Set up TLS in the new thread of a fork child, copying from our own. */ ++/* Set up TLS in the new thread of a fork child, copying from the original. */ + static inline error_t __attribute__ ((unused)) +-_hurd_tls_fork (thread_t child, struct i386_thread_state *state) ++_hurd_tls_fork (thread_t child, thread_t orig, struct i386_thread_state *state) ++{ ++ /* Fetch the selector set by _hurd_tls_init. */ ++ int sel; ++ asm ("mov %%gs, %w0" : "=q" (sel) : "0" (0)); ++ if (sel == state->ds) /* _hurd_tls_init was never called. */ ++ return 0; ++ ++ struct descriptor desc, *_desc = &desc; ++ error_t err; ++ unsigned int count; ++ ++ if (__builtin_expect (sel, 0x48) & 4) /* LDT selector */ ++ err = __i386_get_ldt (orig, sel, 1, &_desc, &count); ++ else ++ err = __i386_get_gdt (orig, sel, &desc); ++ ++ assert_perror (err); ++ if (err) ++ return err; ++ ++ if (__builtin_expect (sel, 0x48) & 4) /* LDT selector */ ++ err = __i386_set_ldt (child, sel, &desc, 1); ++ else ++ err = __i386_set_gdt (child, &sel, desc); ++ ++ state->gs = sel; ++ return err; ++} ++ ++static inline error_t __attribute__ ((unused)) ++_hurd_tls_new (thread_t child, struct i386_thread_state *state, tcbhead_t *tcb) + { + /* Fetch the selector set by _hurd_tls_init. */ + int sel; +@@ -152,11 +183,13 @@ + if (sel == state->ds) /* _hurd_tls_init was never called. */ + return 0; + +- tcbhead_t *const tcb = THREAD_SELF; + HURD_TLS_DESC_DECL (desc, tcb); + error_t err; + +- if (__builtin_expect (sel, 0x50) & 4) /* LDT selector */ ++ tcb->tcb = tcb; ++ tcb->self = child; ++ ++ if (__builtin_expect (sel, 0x48) & 4) /* LDT selector */ + err = __i386_set_ldt (child, sel, &desc, 1); + else + err = __i386_set_gdt (child, &sel, desc); +--- sysdeps/mach/hurd/i386/trampoline.c.orig ++++ sysdeps/mach/hurd/i386/trampoline.c +@@ -64,7 +64,7 @@ + sizeof (state->basic)); + memcpy (&state->fpu, &ss->context->sc_i386_float_state, + sizeof (state->fpu)); +- state->set |= (1 << i386_THREAD_STATE) | (1 << i386_FLOAT_STATE); ++ state->set |= (1 << i386_REGS_SEGS_STATE) | (1 << i386_FLOAT_STATE); + } + } + +--- sysdeps/mach/hurd/profil.c.orig ++++ sysdeps/mach/hurd/profil.c +@@ -69,6 +69,8 @@ + if (! err) + err = __mach_setup_thread (__mach_task_self (), profile_thread, + &profile_waiter, NULL, NULL); ++ if (! err) ++ err = __mach_setup_tls(profile_thread); + } + else + err = 0; +--- sysdeps/mach/hurd/setitimer.c.orig ++++ sysdeps/mach/hurd/setitimer.c +@@ -223,11 +223,12 @@ + return __hurd_fail (err); + _hurd_itimer_thread_stack_base = 0; /* Anywhere. */ + _hurd_itimer_thread_stack_size = __vm_page_size; /* Small stack. */ +- if (err = __mach_setup_thread (__mach_task_self (), ++ if ((err = __mach_setup_thread (__mach_task_self (), + _hurd_itimer_thread, + &timer_thread, + &_hurd_itimer_thread_stack_base, + &_hurd_itimer_thread_stack_size)) ++ || (err = __mach_setup_tls(_hurd_itimer_thread))) + { + __thread_terminate (_hurd_itimer_thread); + _hurd_itimer_thread = MACH_PORT_NULL; +--- sysdeps/mach/i386/thread_state.h.orig ++++ sysdeps/mach/i386/thread_state.h +@@ -19,7 +19,8 @@ + + #include + +-#define MACHINE_THREAD_STATE_FLAVOR i386_THREAD_STATE ++#define MACHINE_NEW_THREAD_STATE_FLAVOR i386_THREAD_STATE ++#define MACHINE_THREAD_STATE_FLAVOR i386_REGS_SEGS_STATE + #define MACHINE_THREAD_STATE_COUNT i386_THREAD_STATE_COUNT + + #define machine_thread_state i386_thread_state +@@ -28,6 +29,14 @@ + #define SP uesp + #define SYSRETURN eax + ++#define MACHINE_THREAD_STATE_FIX_NEW(ts) do { \ ++ asm ("mov %%cs, %w0" : "=q" ((ts)->cs)); \ ++ asm ("mov %%ds, %w0" : "=q" ((ts)->ds)); \ ++ asm ("mov %%es, %w0" : "=q" ((ts)->es)); \ ++ asm ("mov %%fs, %w0" : "=q" ((ts)->fs)); \ ++ asm ("mov %%gs, %w0" : "=q" ((ts)->gs)); \ ++} while(0) ++ + struct machine_thread_all_state + { + int set; /* Mask of bits (1 << FLAVOR). */ +--- sysdeps/mach/powerpc/thread_state.h.orig ++++ sysdeps/mach/powerpc/thread_state.h +@@ -19,6 +19,7 @@ + + #include + ++#define MACHINE_NEW_THREAD_STATE_FLAVOR PPC_THREAD_STATE + #define MACHINE_THREAD_STATE_FLAVOR PPC_THREAD_STATE + #define MACHINE_THREAD_STATE_COUNT PPC_THREAD_STATE_COUNT + +--- sysdeps/mach/thread_state.h.orig ++++ sysdeps/mach/thread_state.h +@@ -38,6 +38,9 @@ + ((ts)->SP = (unsigned long int) (stack) + (size)) + #endif + #endif ++#ifndef MACHINE_THREAD_STATE_FIX_NEW ++#define MACHINE_THREAD_STATE_FIX_NEW(ts) ++#endif + + /* These functions are of use in machine-dependent signal trampoline + implementations. */ --- glibc-2.7.orig/debian/patches/hurd-i386/cvs-O_CLOEXEC_fix.diff +++ glibc-2.7/debian/patches/hurd-i386/cvs-O_CLOEXEC_fix.diff @@ -0,0 +1,26 @@ +Index: sysdeps/mach/hurd/bits/fcntl.h +=================================================================== +RCS file: /cvs/glibc/libc/sysdeps/mach/hurd/bits/fcntl.h,v +retrieving revision 1.13 +retrieving revision 1.14 +diff -u -p -r1.13 -r1.14 +--- a/sysdeps/mach/hurd/bits/fcntl.h 17 Oct 2007 22:32:35 -0000 1.13 ++++ b/sysdeps/mach/hurd/bits/fcntl.h 18 Nov 2007 22:51:16 -0000 1.14 +@@ -71,7 +71,6 @@ + #define O_SYNC O_FSYNC + #ifdef __USE_GNU + # define O_NOATIME 0x0800 /* Don't set access time on read (owner). */ +-# define O_CLOEXEC 0x00010000 /* Set FD_CLOEXEC. */ + #endif + #ifdef __USE_MISC + # define O_SHLOCK 0x00020000 /* Open with shared file lock. */ +@@ -118,6 +117,9 @@ + once the file has been opened. */ + + #define O_TRUNC 0x00010000 /* Truncate file to zero length. */ ++#ifdef __USE_GNU ++# define O_CLOEXEC 0x00400000 /* Set FD_CLOEXEC. */ ++#endif + + + /* Controlling terminal flags. These are understood only by `open', --- glibc-2.7.orig/debian/patches/hurd-i386/local-dl-dynamic-weak.diff +++ glibc-2.7/debian/patches/hurd-i386/local-dl-dynamic-weak.diff @@ -0,0 +1,30 @@ +--- glibc-2.6.orig/elf/dl-support.c ++++ glibc-2.6/elf/dl-support.c +@@ -43,7 +43,13 @@ + int _dl_debug_mask; + int _dl_lazy; + ElfW(Addr) _dl_use_load_bias = -2; ++#ifdef __GNU__ ++/* GNU/Hurd needs this because otherwise libpthread's pthread_mutex_lock gets ++ * overridden by libX11's stubs. */ ++int _dl_dynamic_weak = 1; ++#else + int _dl_dynamic_weak; ++#endif + + /* If nonzero print warnings about problematic situations. */ + int _dl_verbose; +--- glibc-2.6.orig/elf/rtld.c ++++ glibc-2.6/elf/rtld.c +@@ -145,6 +145,11 @@ + #ifdef NEED_DL_SYSINFO + ._dl_sysinfo = DL_SYSINFO_DEFAULT, + #endif ++#ifdef __GNU__ ++/* GNU/Hurd needs this because otherwise libpthread's pthread_mutex_lock gets ++ * * overridden by libX11's stubs. */ ++ ._dl_dynamic_weak = 1, ++#endif + ._dl_debug_fd = STDERR_FILENO, + ._dl_use_load_bias = -2, + ._dl_correct_cache_id = _DL_CACHE_DEFAULT_ID, --- glibc-2.7.orig/debian/patches/hurd-i386/cvs-kernel-features.diff +++ glibc-2.7/debian/patches/hurd-i386/cvs-kernel-features.diff @@ -0,0 +1,34 @@ +--- /dev/null ++++ libc/sysdeps/mach/hurd/kernel-features.h +@@ -0,0 +1,31 @@ ++/* Set flags signalling availability of certain operating system features. ++ Copyright (C) 2007 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 ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ 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. */ ++ ++/* This file can define __ASSUME_* macros checked by certain source files. ++ Almost none of these are used outside of sysdeps/unix/sysv/linux code. ++ But those referring to POSIX-level features like O_* flags can be. */ ++ ++#include ++ ++/* If a system defines the O_CLOEXEC constant but it is sometimes ignored, ++ it must override this file to define __ASSUME_O_CLOEXEC conditionally ++ (or not at all) to indicate when O_CLOEXEC actually works. */ ++#ifdef O_CLOEXEC ++# define __ASSUME_O_CLOEXEC 1 ++#endif --- glibc-2.7.orig/debian/patches/hurd-i386/local-atomic-no-multiple_threads.diff +++ glibc-2.7/debian/patches/hurd-i386/local-atomic-no-multiple_threads.diff @@ -0,0 +1,249 @@ +On the Hurd we always at least start the sigthread anyway. Let's avoid forking +the file (which would mean having to maintain it) + +diff -ur glibc-2.6-orig/sysdeps/i386/i486/bits/atomic.h glibc-2.6/build-tree/glibc-2.6/sysdeps/i386/i486/bits/atomic.h +--- glibc-2.6-orig/sysdeps/i386/i486/bits/atomic.h 2007-02-17 07:38:25.000000000 +0100 ++++ glibc-2.6/sysdeps/i386/i486/bits/atomic.h 2007-07-20 03:45:18.000000000 +0200 +@@ -87,35 +87,26 @@ + + #define __arch_c_compare_and_exchange_val_8_acq(mem, newval, oldval) \ + ({ __typeof (*mem) ret; \ +- __asm __volatile ("cmpl $0, %%gs:%P5\n\t" \ +- "je 0f\n\t" \ +- "lock\n" \ +- "0:\tcmpxchgb %b2, %1" \ ++ __asm __volatile ("lock\n" \ ++ "\tcmpxchgb %b2, %1" \ + : "=a" (ret), "=m" (*mem) \ +- : "q" (newval), "m" (*mem), "0" (oldval), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "q" (newval), "m" (*mem), "0" (oldval)); \ + ret; }) + + #define __arch_c_compare_and_exchange_val_16_acq(mem, newval, oldval) \ + ({ __typeof (*mem) ret; \ +- __asm __volatile ("cmpl $0, %%gs:%P5\n\t" \ +- "je 0f\n\t" \ +- "lock\n" \ +- "0:\tcmpxchgw %w2, %1" \ ++ __asm __volatile ("lock\n" \ ++ "\tcmpxchgw %w2, %1" \ + : "=a" (ret), "=m" (*mem) \ +- : "r" (newval), "m" (*mem), "0" (oldval), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "r" (newval), "m" (*mem), "0" (oldval)); \ + ret; }) + + #define __arch_c_compare_and_exchange_val_32_acq(mem, newval, oldval) \ + ({ __typeof (*mem) ret; \ +- __asm __volatile ("cmpl $0, %%gs:%P5\n\t" \ +- "je 0f\n\t" \ +- "lock\n" \ +- "0:\tcmpxchgl %2, %1" \ ++ __asm __volatile ("lock\n" \ ++ "\tcmpxchgl %2, %1" \ + : "=a" (ret), "=m" (*mem) \ +- : "r" (newval), "m" (*mem), "0" (oldval), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "r" (newval), "m" (*mem), "0" (oldval)); \ + ret; }) + + /* XXX We do not really need 64-bit compare-and-exchange. At least +@@ -148,10 +139,8 @@ + # define __arch_c_compare_and_exchange_val_64_acq(mem, newval, oldval) \ + ({ __typeof (*mem) ret; \ + __asm __volatile ("xchgl %2, %%ebx\n\t" \ +- "cmpl $0, %%gs:%P7\n\t" \ +- "je 0f\n\t" \ + "lock\n" \ +- "0:\tcmpxchg8b %1\n\t" \ ++ "\tcmpxchg8b %1\n\t" \ + "xchgl %2, %%ebx" \ + : "=A" (ret), "=m" (*mem) \ + : "DS" (((unsigned long long int) (newval)) \ +@@ -159,8 +148,7 @@ + "c" (((unsigned long long int) (newval)) >> 32), \ + "m" (*mem), "a" (((unsigned long long int) (oldval)) \ + & 0xffffffff), \ +- "d" (((unsigned long long int) (oldval)) >> 32), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ "d" (((unsigned long long int) (oldval)) >> 32)); \ + ret; }) + # else + # define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \ +@@ -177,18 +165,15 @@ + + # define __arch_c_compare_and_exchange_val_64_acq(mem, newval, oldval) \ + ({ __typeof (*mem) ret; \ +- __asm __volatile ("cmpl $0, %%gs:%P7\n\t" \ +- "je 0f\n\t" \ +- "lock\n" \ +- "0:\tcmpxchg8b %1" \ ++ __asm __volatile ("lock\n" \ ++ "\tcmpxchg8b %1" \ + : "=A" (ret), "=m" (*mem) \ + : "b" (((unsigned long long int) (newval)) \ + & 0xffffffff), \ + "c" (((unsigned long long int) (newval)) >> 32), \ + "m" (*mem), "a" (((unsigned long long int) (oldval)) \ + & 0xffffffff), \ +- "d" (((unsigned long long int) (oldval)) >> 32), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ "d" (((unsigned long long int) (oldval)) >> 32)); \ + ret; }) + # endif + #endif +@@ -223,18 +208,15 @@ + if (sizeof (*mem) == 1) \ + __asm __volatile (lock "xaddb %b0, %1" \ + : "=q" (__result), "=m" (*mem) \ +- : "0" (__addval), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "0" (__addval), "m" (*mem)); \ + else if (sizeof (*mem) == 2) \ + __asm __volatile (lock "xaddw %w0, %1" \ + : "=r" (__result), "=m" (*mem) \ +- : "0" (__addval), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "0" (__addval), "m" (*mem)); \ + else if (sizeof (*mem) == 4) \ + __asm __volatile (lock "xaddl %0, %1" \ + : "=r" (__result), "=m" (*mem) \ +- : "0" (__addval), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "0" (__addval), "m" (*mem)); \ + else \ + { \ + __typeof (mem) __memp = (mem); \ +@@ -256,7 +238,7 @@ + #endif + + #define __arch_exchange_and_add_cprefix \ +- "cmpl $0, %%gs:%P4\n\tje 0f\n\tlock\n0:\t" ++ "lock\n\t" + + #define catomic_exchange_and_add(mem, value) \ + __arch_exchange_and_add_body (__arch_exchange_and_add_cprefix, __arch_c, \ +@@ -272,18 +254,15 @@ + else if (sizeof (*mem) == 1) \ + __asm __volatile (lock "addb %b1, %0" \ + : "=m" (*mem) \ +- : "iq" (value), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "iq" (value), "m" (*mem)); \ + else if (sizeof (*mem) == 2) \ + __asm __volatile (lock "addw %w1, %0" \ + : "=m" (*mem) \ +- : "ir" (value), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "ir" (value), "m" (*mem)); \ + else if (sizeof (*mem) == 4) \ + __asm __volatile (lock "addl %1, %0" \ + : "=m" (*mem) \ +- : "ir" (value), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "ir" (value), "m" (*mem)); \ + else \ + { \ + __typeof (value) __addval = (value); \ +@@ -301,7 +280,7 @@ + __arch_add_body (LOCK_PREFIX, __arch, mem, value) + + #define __arch_add_cprefix \ +- "cmpl $0, %%gs:%P3\n\tje 0f\n\tlock\n0:\t" ++ "lock\n\t" + + #define catomic_add(mem, value) \ + __arch_add_body (__arch_add_cprefix, __arch_c, mem, value) +@@ -350,18 +329,15 @@ + if (sizeof (*mem) == 1) \ + __asm __volatile (lock "incb %b0" \ + : "=m" (*mem) \ +- : "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "m" (*mem)); \ + else if (sizeof (*mem) == 2) \ + __asm __volatile (lock "incw %w0" \ + : "=m" (*mem) \ +- : "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "m" (*mem)); \ + else if (sizeof (*mem) == 4) \ + __asm __volatile (lock "incl %0" \ + : "=m" (*mem) \ +- : "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "m" (*mem)); \ + else \ + { \ + __typeof (mem) __memp = (mem); \ +@@ -377,7 +353,7 @@ + #define atomic_increment(mem) __arch_increment_body (LOCK_PREFIX, __arch, mem) + + #define __arch_increment_cprefix \ +- "cmpl $0, %%gs:%P2\n\tje 0f\n\tlock\n0:\t" ++ "lock\n\t" + + #define catomic_increment(mem) \ + __arch_increment_body (__arch_increment_cprefix, __arch_c, mem) +@@ -407,18 +383,15 @@ + if (sizeof (*mem) == 1) \ + __asm __volatile (lock "decb %b0" \ + : "=m" (*mem) \ +- : "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "m" (*mem)); \ + else if (sizeof (*mem) == 2) \ + __asm __volatile (lock "decw %w0" \ + : "=m" (*mem) \ +- : "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "m" (*mem)); \ + else if (sizeof (*mem) == 4) \ + __asm __volatile (lock "decl %0" \ + : "=m" (*mem) \ +- : "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "m" (*mem)); \ + else \ + { \ + __typeof (mem) __memp = (mem); \ +@@ -434,7 +407,7 @@ + #define atomic_decrement(mem) __arch_decrement_body (LOCK_PREFIX, __arch, mem) + + #define __arch_decrement_cprefix \ +- "cmpl $0, %%gs:%P2\n\tje 0f\n\tlock\n0:\t" ++ "lock\n\t" + + #define catomic_decrement(mem) \ + __arch_decrement_body (__arch_decrement_cprefix, __arch_c, mem) +@@ -524,18 +497,15 @@ + if (sizeof (*mem) == 1) \ + __asm __volatile (lock "orb %b1, %0" \ + : "=m" (*mem) \ +- : "iq" (mask), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "iq" (mask), "m" (*mem)); \ + else if (sizeof (*mem) == 2) \ + __asm __volatile (lock "orw %w1, %0" \ + : "=m" (*mem) \ +- : "ir" (mask), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "ir" (mask), "m" (*mem)); \ + else if (sizeof (*mem) == 4) \ + __asm __volatile (lock "orl %1, %0" \ + : "=m" (*mem) \ +- : "ir" (mask), "m" (*mem), \ +- "i" (offsetof (tcbhead_t, multiple_threads))); \ ++ : "ir" (mask), "m" (*mem)); \ + else \ + abort (); \ + } while (0) +@@ -543,6 +513,6 @@ + #define atomic_or(mem, mask) __arch_or_body (LOCK_PREFIX, mem, mask) + + #define __arch_or_cprefix \ +- "cmpl $0, %%gs:%P3\n\tje 0f\n\tlock\n0:\t" ++ "lock\n\t" + + #define catomic_or(mem, mask) __arch_or_body (__arch_or_cprefix, mem, mask) --- glibc-2.7.orig/debian/patches/hurd-i386/cvs-blocked-exceptions.diff +++ glibc-2.7/debian/patches/hurd-i386/cvs-blocked-exceptions.diff @@ -0,0 +1,35 @@ +Index: glibc/hurd/hurdsig.c +=================================================================== +RCS file: /cvs/glibc/libc/hurd/hurdsig.c,v +retrieving revision 1.159 +retrieving revision 1.160 +diff -u -p -r1.159 -r1.160 +--- glibc/hurd/hurdsig.c 21 Dec 2005 22:16:20 -0000 1.159 ++++ glibc/hurd/hurdsig.c 8 Mar 2008 21:47:23 -0000 1.160 +@@ -1,4 +1,4 @@ +-/* Copyright (C) 1991,92,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2005 ++/* Copyright (C) 1991,92,93,94,95,96,97,98,99,2000,2001,2002,2005,2008 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + +@@ -743,6 +743,11 @@ _hurd_internal_post_signal (struct hurd_ + break; + + case ignore: ++ if (detail->exc) ++ /* Blocking or ignoring a machine exception is fatal. ++ Otherwise we could just spin on the faulting instruction. */ ++ goto fatal; ++ + /* Nobody cares about this signal. If there was a call to resume + above in SIGCONT processing and we've left a thread suspended, + now's the time to set it going. */ +@@ -759,6 +764,8 @@ _hurd_internal_post_signal (struct hurd_ + Nothing to do but die; BSD gets SIGILL in this case. */ + detail->code = signo; /* XXX ? */ + signo = SIGILL; ++ ++ fatal: + act = core; + /* FALLTHROUGH */ + --- glibc-2.7.orig/debian/patches/lpia/local-i686-redefine.diff +++ glibc-2.7/debian/patches/lpia/local-i686-redefine.diff @@ -0,0 +1,39 @@ +2007-02-15 Khem Raj + + * sysdeps/unix/sysv/linux/i386/sysdep.h: Re-define __i686. + * nptl/sysdeps/pthread/pt-initfini.c: Ditto. + + + +Index: sysdeps/unix/sysv/linux/i386/sysdep.h +=================================================================== +--- sysdeps/unix/sysv/linux/i386/sysdep.h (revision 1469) ++++ sysdeps/unix/sysv/linux/i386/sysdep.h (working copy) +@@ -29,6 +29,10 @@ + #include + #include + ++#if defined __i686 && defined __ASSEMBLER__ ++#undef __i686 ++#define __i686 __i686 ++#endif + + /* For Linux we can use the system call table in the header file + /usr/include/asm/unistd.h +Index: nptl/sysdeps/pthread/pt-initfini.c +=================================================================== +--- nptl/sysdeps/pthread/pt-initfini.c (revision 1469) ++++ nptl/sysdeps/pthread/pt-initfini.c (working copy) +@@ -45,6 +45,11 @@ + /* Embed an #include to pull in the alignment and .end directives. */ + asm ("\n#include \"defs.h\""); + ++asm ("\n#if defined __i686 && defined __ASSEMBLER__"); ++asm ("\n#undef __i686"); ++asm ("\n#define __i686 __i686"); ++asm ("\n#endif"); ++ + /* The initial common code ends here. */ + asm ("\n/*@HEADER_ENDS*/"); + + --- glibc-2.7.orig/debian/patches/series.kfreebsd-amd64 +++ glibc-2.7/debian/patches/series.kfreebsd-amd64 @@ -0,0 +1,8 @@ +kfreebsd/local-ftw.diff -p0 +kfreebsd/local-memusage_no_mremap.diff -p0 +kfreebsd/local-pthread_at_fork.diff -p0 +kfreebsd/local-readdir_r.diff -p0 +kfreebsd/local-scripts.diff -p0 +kfreebsd/local-sys_queue_h.diff -p0 +kfreebsd/local-sysdeps.diff -p0 +kfreebsd/local-undef-glibc.diff -p0 --- glibc-2.7.orig/debian/patches/series +++ glibc-2.7/debian/patches/series @@ -0,0 +1,114 @@ +locale/fix-C-first_weekday.diff -p0 + +amd64/cvs-vdso_clock_gettime.diff -p1 +amd64/local-biarch.diff +amd64/local-clone.diff -p0 +amd64/local-linuxthreads-gscope.diff -p0 +#amd64/local-x86_64_bits_sigcontext.diff + +hppa/submitted-atomic_h.diff -p0 +hppa/submitted-fadvise64_64.diff -p0 +hppa/submitted-lt.diff -p0 +hppa/submitted-nptl-carlos.diff -p0 +hppa/submitted-pie.diff +hppa/local-inlining.diff -p0 +hppa/local-linuxthreads.diff -p0 +hppa/local-linuxthreads-gscope.diff -p0 +hppa/hppalll.diff -p0 + +i386/local-biarch.diff +i386/local-clone.diff -p0 +i386/local-cmov.diff -p0 +i386/local-linuxthreads-gscope.diff -p0 +i386/submitted-i686-timing.diff -p0 + +lpia/local-i686-redefine.diff -p0 + +powerpc/local-sysconf.diff + +sparc/local-fork.diff -p0 +sparc/local-sparcv9-target.diff -p0 +sparc/submitted-timing.diff +sparc/submitted-v9v2.diff -p0 + +all/cvs-gai_conf.diff -p1 + +any/cvs-epoll_h.diff -p0 +any/cvs-ether_line.diff -p0 +any/cvs-fchmodat.diff -p1 +any/cvs-gcc-4.3.diff -p1 +any/cvs-iconv-iso2022jp-loop-bug.diff +any/cvs-rfc3484.diff -p1 +any/cvs-sched_h.diff -p0 +any/cvs-strtod.diff -p1 +any/cvs-tzfile.diff -p1 +any/cvs-vfscanf.diff -p0 +any/cvs-wchar_h.diff -p0 +any/cvs-sunrpc_rpc_thread.diff +any/cvs-strerror_r.diff +any/cvs-c99-vscanf.diff +any/cvs-getaddrinfo.diff +any/cvs-iconv-braces.diff +any/local-notls.diff -p0 +any/local-asserth-decls.diff -p0 +any/local-bashisms.diff -p0 +any/local-bindresvport_blacklist.diff -p0 +any/local-allocalim-header.diff -p0 +any/local-dl-execstack.diff -p0 +any/local-fhs-linux-paths.diff -p0 +any/local-fhs-nscd.diff -p0 +any/local-gcc4-wcstol_l.diff +any/local-ipv6-lookup.diff -p0 +any/local-ld-multiarch.diff -p0 +any/local-ldd.diff -p0 +any/local-ldso-disable-hwcap.diff -p0 +any/local-ldconfig.diff -p0 +any/local-ldconfig-fsync.diff +# any/local-ldconfig-timestamps.diff -p0 # breaks optimized libraries +any/local-libgcc-compat-main.diff -p0 +any/local-linuxthreads-defines.diff -p0 +any/local-linuxthreads-fd.diff -p0 +any/local-linuxthreads-gscope.diff -p0 +any/local-linuxthreads-lowlevellock.diff -p0 +any/local-linuxthreads-fatalprepare.diff -p0 +any/local-linuxthreads-semaphore_h.diff +any/local-linuxthreads-signals.diff -p0 +any/local-linuxthreads-tst-sighandler.diff +any/local-localedef-fix-trampoline.diff -p0 +any/local-makeconfig.diff -p0 +any/local-mktemp.diff -p0 +any/local-no-pagesize.diff +any/local-nss-upgrade.diff -p0 +any/local-o_cloexec.diff -p0 +any/local-rtld.diff -p0 +any/local-strfry.diff -p0 +any/local-stubs_h.diff +any/local-stdio-lock.diff -p0 +any/local-tcsetaddr.diff -p0 +any/local-disable-test-tgmath2.diff -p0 +any/local-tst-mktime2.diff -p0 +any/local-dynamic-resolvconf.diff -p0 +any/submitted-nis-netgrp.diff -p0 +any/submitted-getcwd-sys_param_h.diff -p0 +any/submitted-clock-settime.diff -p0 +any/submitted-date-and-unknown-tz.diff -p0 +any/submitted-ieee754_h.diff -p0 +any/submitted-libgcc_s.so.diff -p0 +any/submitted-longdouble.diff -p0 +any/submitted-sched_h.diff -p0 +any/submitted-link-local_resolver.diff -p0 +any/local-disable-nscd-host-caching.diff +#any/submitted-fileops-and-signals.diff +any/local-missing-linux_types.h.diff + +# Ubuntu-specific patches. These are things that we don't expect to wind up +# in Debian. +ubuntu/local-altlocaledir.diff -p1 +ubuntu/stack-guard-quick-randomization.diff + +any/git-readdir-padding.diff +any/git-strfmon-overflow.diff +any/git-fix-dtag-cast.diff +any/git-mntent-newline-escape.diff +any/dst-expansion-fix.diff +any/disable-ld_audit.diff --- glibc-2.7.orig/debian/patches/mips/local-r10k.diff +++ glibc-2.7/debian/patches/mips/local-r10k.diff @@ -0,0 +1,62 @@ +the R10000 needs an LL/SC Workaround. If not applied all R10k before +rev 3.0 misbehave on atomic ops and rev 2.6 and lower (e.g. SGI IP28) +die after very few seconds with a deadlock due to even more erratas. + +diff -Nur glibc-2.7.orig/ports/sysdeps/mips/bits/atomic.h glibc-2.7/ports/sysdeps/mips/bits/atomic.h +--- ports/sysdeps/mips/bits/atomic.h.orig 2005-03-28 09:14:59.000000000 +0000 ++++ ports/sysdeps/mips/bits/atomic.h 2008-01-18 11:17:14.000000000 +0000 +@@ -74,7 +74,7 @@ + "bne %0,%2,2f\n\t" \ + "move %1,%3\n\t" \ + "sc %1,%4\n\t" \ +- "beqz %1,1b\n" \ ++ "beqzl %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +@@ -98,7 +98,7 @@ + "bne %0,%2,2f\n\t" \ + "move %1,%3\n\t" \ + "scd %1,%4\n\t" \ +- "beqz %1,1b\n" \ ++ "beqzl %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +@@ -192,7 +192,7 @@ + "ll %0,%3\n\t" \ + "move %1,%2\n\t" \ + "sc %1,%3\n\t" \ +- "beqz %1,1b\n" \ ++ "beqzl %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +@@ -216,7 +216,7 @@ + "lld %0,%3\n\t" \ + "move %1,%2\n\t" \ + "scd %1,%3\n\t" \ +- "beqz %1,1b\n" \ ++ "beqzl %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +@@ -251,7 +251,7 @@ + "ll %0,%3\n\t" \ + "addu %1,%0,%2\n\t" \ + "sc %1,%3\n\t" \ +- "beqz %1,1b\n" \ ++ "beqzl %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ +@@ -275,7 +275,7 @@ + "lld %0,%3\n\t" \ + "daddu %1,%0,%2\n\t" \ + "scd %1,%3\n\t" \ +- "beqz %1,1b\n" \ ++ "beqzl %1,1b\n" \ + acq "\n\t" \ + ".set pop\n" \ + "2:\n\t" \ + --- glibc-2.7.orig/debian/patches/mips/submitted-mipsn32.diff +++ glibc-2.7/debian/patches/mips/submitted-mipsn32.diff @@ -0,0 +1,48 @@ +2008-03-15 Aurelien Jarno + + * sysdeps/unix/sysv/linux/mips/mips64/n32/ftruncate64.c: Drop ftruncate + declaration. + +2008-01-24 Aurelien Jarno + + * sysdeps/unix/sysv/linux/mips/mips64/n32/truncate64.c: Drop truncate + declaration. + (truncate64): Fix arguments and call to truncate. + +Index: ftruncate64.c +=================================================================== +RCS file: /cvs/glibc/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/ftruncate64.c,v +retrieving revision 1.1 +diff -u -d -p -r1.1 ftruncate64.c +--- ports/sysdeps/unix/sysv/linux/mips/mips64/n32/ftruncate64.c 5 Apr 2003 19:57:35 -0000 1.1 ++++ ports/sysdeps/unix/sysv/linux/mips/mips64/n32/ftruncate64.c 15 Mar 2008 13:43:41 -0000 +@@ -20,8 +20,6 @@ + + #include + +-extern int ftruncate (int fd, off64_t length); +- + int __ftruncate64 (int fd, off64_t length) { + return ftruncate (fd, length); + } +Index: truncate64.c +=================================================================== +RCS file: /cvs/glibc/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/truncate64.c,v +retrieving revision 1.1 +diff -u -d -p -r1.1 truncate64.c +--- ports/sysdeps/unix/sysv/linux/mips/mips64/n32/truncate64.c 5 Apr 2003 19:57:35 -0000 1.1 ++++ ports/sysdeps/unix/sysv/linux/mips/mips64/n32/truncate64.c 15 Mar 2008 13:43:41 -0000 +@@ -21,10 +21,7 @@ + #include + #include + +-extern int truncate (const char *__unbounded path, int dummy, +- off64_t length); +- +-int truncate64 (const char *__unbounded path, int dummy, +- off64_t length) { +- return truncate (path, dummy, length); ++int __truncate64 (const char *file, off64_t length) { ++ return truncate (file, length); + } ++weak_alias (__truncate64, truncate64) --- glibc-2.7.orig/debian/patches/mips/local-lazy-eval.diff +++ glibc-2.7/debian/patches/mips/local-lazy-eval.diff @@ -0,0 +1,36 @@ +# All lines beginning with `# DP:' are a description of the patch. +# DP: Description: Workaround invalid resolving of lazy evaluation stubs +# DP: Related bugs: #265678 +# DP: Dpatch author: Thiemo Seufer +# DP: Patch author: Thiemo Seufer +# DP: Upstream status: Debian-Specific +# DP: Status Details: The correct fix will be done to modify toolchains in etch. +# DP: Date: 2005-04-11, 2005-04-16 updated by gotom + +2005-04-16 GOTO Masanori + + * sysdeps/mips/dl-machine.h: Drop due to _dl_lookup_versioned_symbol + and _dl_lookup_symbol are changed into _dl_lookup_symbol_x. + +2005-04-11 Thiemo Seufer + + * first version. + +Index: elf/do-lookup.h +=================================================================== +--- elf/do-lookup.h.orig 2007-10-23 08:46:15.000000000 -0400 ++++ elf/do-lookup.h 2007-10-23 08:49:49.000000000 -0400 +@@ -246,6 +246,13 @@ + } + /* FALLTHROUGH */ + case STB_GLOBAL: ++#ifdef __mips__ ++ /* HACK: MIPS marks its lazy evaluation stubs with SHN_UNDEF ++ symbols, we skip them. */ ++ if (sym->st_shndx == SHN_UNDEF) ++ break; ++#endif ++ + /* Global definition. Just what we need. */ + result->s = sym; + result->m = (struct link_map *) map; --- glibc-2.7.orig/debian/patches/mips/local-gcc-ice.diff +++ glibc-2.7/debian/patches/mips/local-gcc-ice.diff @@ -0,0 +1,20 @@ +diff --git a/inet/Makefile b/inet/Makefile +index d7139c1..e2dfce4 100644 +--- a/inet/Makefile ++++ b/inet/Makefile +@@ -98,3 +98,5 @@ ifeq (yes,$(build-static-nss)) + otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \ + $(resolvobjdir)/libresolv.a + endif ++ ++CFLAGS-ether_line.c += -O1 +diff --git a/stdio-common/Makefile b/stdio-common/Makefile +index f9fc9da..d9bd367 100644 +--- a/stdio-common/Makefile ++++ b/stdio-common/Makefile +@@ -127,3 +127,5 @@ bug15-ENV = LOCPATH=$(common-objpfx)localedata + ifneq (,$(filter %REENTRANT, $(defines))) + CPPFLAGS += -D_IO_MTSAFE_IO + endif ++ ++CFLAGS-vfscanf.c += -O1 --- glibc-2.7.orig/debian/patches/mips/local-setjmp.diff +++ glibc-2.7/debian/patches/mips/local-setjmp.diff @@ -0,0 +1,11 @@ +--- ports/sysdeps/mips/bits/setjmp.h.orig ++++ ports/sysdeps/mips/bits/setjmp.h +@@ -27,7 +27,7 @@ + + #include + +-typedef struct ++typedef struct __mips_jmp_buf + { + #if _MIPS_SIM == _ABIO32 + /* Program counter. */ --- glibc-2.7.orig/debian/maint/grab-testsuites.sh +++ glibc-2.7/debian/maint/grab-testsuites.sh @@ -0,0 +1,34 @@ +#!/bin/sh -e +# +# This scripts pulls all the .debs in a debian mirror, and extracts testsuite failures, then sorts them. +# +# Copyright © 2007 Pierre Habouzit +# +# This script is in the public domain. + +[ $# -eq 1 ] && cd "$1" + +(mkdir -p debs && cd debs && lftp -e "cd debian/pool/main/g/glibc/; mget -c libc6_*.deb; mget -c libc6.1_*.deb; exit" ftp.debian.org) + +to_gnu() { + dpkg-architecture -a"$1" -qDEB_HOST_GNU_TYPE 2>/dev/null +} + +trap "rm -rf here" 0 + +for i in debs/*.deb; do + arch="${i##*_}" + arch="${arch%.deb}" + version="${i#*_}" + version="${version%_*}" + + dpkg -x "$i" here + for log in $(ls here/usr/share/doc/libc6*/log-test-`to_gnu "$arch"`-libc.gz 2>/dev/null); do + zgrep -e '(Error|Erreur)' "$log" | sed -e '{ + s/^make[^:]*: \** *//g; + s~^\[.*libc/~~g; + s~\].*~~g; + }' | grep -v '^\[' | sort -u > "${arch}_${version}.testsuite" + done + rm -rf here +done --- glibc-2.7.orig/debian/debver2localesdep.pl +++ glibc-2.7/debian/debver2localesdep.pl @@ -0,0 +1,18 @@ +#!/usr/bin/perl + +for my $i (0..$#ARGV) { + $_ = $ARGV[$i]; + /(.*)-(.*)/m; + + $debver = $1; + $devrev = $2; + + @revs = split('\.', $devrev); + + $devrev = $revs[0]; + $devrev = "$devrev.$revs[1]" if defined($revs[1]) and $revs[1] ne "0"; + + print ", " if $i > 0; + print "glibc-$debver-$devrev"; +} +print "\n"; --- glibc-2.7.orig/debian/libc6-i386.symbols +++ glibc-2.7/debian/libc6-i386.symbols @@ -0,0 +1,3461 @@ +ld-linux.so.2 libc6-i386 #MINVER# + GLIBC_2.0@GLIBC_2.0 2.0 + GLIBC_2.1@GLIBC_2.1 2.1 + GLIBC_2.3@GLIBC_2.3 2.3 + GLIBC_2.4@GLIBC_2.4 2.4 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + ___tls_get_addr@GLIBC_2.3 2.3 + __libc_enable_secure@GLIBC_PRIVATE 2.7 + __libc_memalign@GLIBC_2.0 2.0 + __libc_stack_end@GLIBC_2.1 2.1 + __tls_get_addr@GLIBC_2.3 2.3 + _dl_allocate_tls@GLIBC_PRIVATE 2.7 + _dl_allocate_tls_init@GLIBC_PRIVATE 2.7 + _dl_argv@GLIBC_PRIVATE 2.7 + _dl_deallocate_tls@GLIBC_PRIVATE 2.7 + _dl_debug_state@GLIBC_PRIVATE 2.7 + _dl_get_tls_static_info@GLIBC_PRIVATE 2.7 + _dl_make_stack_executable@GLIBC_PRIVATE 2.7 + _dl_mcount@GLIBC_2.1 2.1 + _dl_rtld_di_serinfo@GLIBC_PRIVATE 2.7 + _dl_tls_get_addr_soft@GLIBC_PRIVATE 2.7 + _dl_tls_setup@GLIBC_PRIVATE 2.7 + _r_debug@GLIBC_2.0 2.0 + _rtld_global@GLIBC_PRIVATE 2.7 + _rtld_global_ro@GLIBC_PRIVATE 2.7 + calloc@GLIBC_2.0 2.0 + free@GLIBC_2.0 2.0 + malloc@GLIBC_2.0 2.0 + realloc@GLIBC_2.0 2.0 +libBrokenLocale.so.1 libc6-i386 #MINVER# + GLIBC_2.0@GLIBC_2.0 2.0 + __ctype_get_mb_cur_max@GLIBC_2.0 2.0 +libSegFault.so libc6-i386 #MINVER# + __invoke_dynamic_linker__@Base 2.7-9ubuntu1 +libanl.so.1 libc6-i386 #MINVER# + GLIBC_2.2.3@GLIBC_2.2.3 2.2.3 + gai_cancel@GLIBC_2.2.3 2.2.3 + gai_error@GLIBC_2.2.3 2.2.3 + gai_suspend@GLIBC_2.2.3 2.2.3 + getaddrinfo_a@GLIBC_2.2.3 2.2.3 +libc.so.6 libc6-i386 #MINVER# + GCC_3.0@GCC_3.0 2.7-9ubuntu1 + GLIBC_2.0@GLIBC_2.0 2.0 + GLIBC_2.1.1@GLIBC_2.1.1 2.1.1 + GLIBC_2.1.2@GLIBC_2.1.2 2.1.2 + GLIBC_2.1.3@GLIBC_2.1.3 2.1.3 + GLIBC_2.1@GLIBC_2.1 2.1 + GLIBC_2.2.1@GLIBC_2.2.1 2.2.1 + GLIBC_2.2.2@GLIBC_2.2.2 2.2.2 + GLIBC_2.2.3@GLIBC_2.2.3 2.2.3 + GLIBC_2.2.4@GLIBC_2.2.4 2.2.4 + GLIBC_2.2.6@GLIBC_2.2.6 2.2.6 + GLIBC_2.2@GLIBC_2.2 2.2 + GLIBC_2.3.2@GLIBC_2.3.2 2.3.2 + GLIBC_2.3.3@GLIBC_2.3.3 2.3.3 + GLIBC_2.3.4@GLIBC_2.3.4 2.3.4 + GLIBC_2.3@GLIBC_2.3 2.3 + GLIBC_2.4@GLIBC_2.4 2.4 + GLIBC_2.5@GLIBC_2.5 2.5 + GLIBC_2.6@GLIBC_2.6 2.6 + GLIBC_2.7@GLIBC_2.7 2.7 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _Exit@GLIBC_2.1.1 2.1.1 + _IO_2_1_stderr_@GLIBC_2.1 2.1 + _IO_2_1_stdin_@GLIBC_2.1 2.1 + _IO_2_1_stdout_@GLIBC_2.1 2.1 + _IO_adjust_column@GLIBC_2.0 2.0 + _IO_adjust_wcolumn@GLIBC_2.2 2.2 + _IO_default_doallocate@GLIBC_2.0 2.0 + _IO_default_finish@GLIBC_2.0 2.0 + _IO_default_pbackfail@GLIBC_2.0 2.0 + _IO_default_uflow@GLIBC_2.0 2.0 + _IO_default_xsgetn@GLIBC_2.0 2.0 + _IO_default_xsputn@GLIBC_2.0 2.0 + _IO_do_write@GLIBC_2.0 2.0 + _IO_do_write@GLIBC_2.1 2.1 + _IO_doallocbuf@GLIBC_2.0 2.0 + _IO_fclose@GLIBC_2.0 2.0 + _IO_fclose@GLIBC_2.1 2.1 + _IO_fdopen@GLIBC_2.0 2.0 + _IO_fdopen@GLIBC_2.1 2.1 + _IO_feof@GLIBC_2.0 2.0 + _IO_ferror@GLIBC_2.0 2.0 + _IO_fflush@GLIBC_2.0 2.0 + _IO_fgetpos64@GLIBC_2.1 2.1 + _IO_fgetpos64@GLIBC_2.2 2.2 + _IO_fgetpos@GLIBC_2.0 2.0 + _IO_fgetpos@GLIBC_2.2 2.2 + _IO_fgets@GLIBC_2.0 2.0 + _IO_file_attach@GLIBC_2.0 2.0 + _IO_file_attach@GLIBC_2.1 2.1 + _IO_file_close@GLIBC_2.0 2.0 + _IO_file_close_it@GLIBC_2.0 2.0 + _IO_file_close_it@GLIBC_2.1 2.1 + _IO_file_doallocate@GLIBC_2.0 2.0 + _IO_file_finish@GLIBC_2.1 2.1 + _IO_file_fopen@GLIBC_2.0 2.0 + _IO_file_fopen@GLIBC_2.1 2.1 + _IO_file_init@GLIBC_2.0 2.0 + _IO_file_init@GLIBC_2.1 2.1 + _IO_file_jumps@GLIBC_2.0 2.0 + _IO_file_open@GLIBC_2.0 2.0 + _IO_file_overflow@GLIBC_2.0 2.0 + _IO_file_overflow@GLIBC_2.1 2.1 + _IO_file_read@GLIBC_2.0 2.0 + _IO_file_seek@GLIBC_2.0 2.0 + _IO_file_seekoff@GLIBC_2.0 2.0 + _IO_file_seekoff@GLIBC_2.1 2.1 + _IO_file_setbuf@GLIBC_2.0 2.0 + _IO_file_setbuf@GLIBC_2.1 2.1 + _IO_file_stat@GLIBC_2.0 2.0 + _IO_file_sync@GLIBC_2.0 2.0 + _IO_file_sync@GLIBC_2.1 2.1 + _IO_file_underflow@GLIBC_2.0 2.0 + _IO_file_underflow@GLIBC_2.1 2.1 + _IO_file_write@GLIBC_2.0 2.0 + _IO_file_write@GLIBC_2.1 2.1 + _IO_file_xsputn@GLIBC_2.0 2.0 + _IO_file_xsputn@GLIBC_2.1 2.1 + _IO_flockfile@GLIBC_2.0 2.0 + _IO_flush_all@GLIBC_2.0 2.0 + _IO_flush_all_linebuffered@GLIBC_2.0 2.0 + _IO_fopen@GLIBC_2.0 2.0 + _IO_fopen@GLIBC_2.1 2.1 + _IO_fprintf@GLIBC_2.0 2.0 + _IO_fputs@GLIBC_2.0 2.0 + _IO_fread@GLIBC_2.0 2.0 + _IO_free_backup_area@GLIBC_2.0 2.0 + _IO_free_wbackup_area@GLIBC_2.2 2.2 + _IO_fsetpos64@GLIBC_2.1 2.1 + _IO_fsetpos64@GLIBC_2.2 2.2 + _IO_fsetpos@GLIBC_2.0 2.0 + _IO_fsetpos@GLIBC_2.2 2.2 + _IO_ftell@GLIBC_2.0 2.0 + _IO_ftrylockfile@GLIBC_2.0 2.0 + _IO_funlockfile@GLIBC_2.0 2.0 + _IO_fwrite@GLIBC_2.0 2.0 + _IO_getc@GLIBC_2.0 2.0 + _IO_getline@GLIBC_2.0 2.0 + _IO_getline_info@GLIBC_2.1 2.1 + _IO_gets@GLIBC_2.0 2.0 + _IO_init@GLIBC_2.0 2.0 + _IO_init_marker@GLIBC_2.0 2.0 + _IO_init_wmarker@GLIBC_2.2 2.2 + _IO_iter_begin@GLIBC_2.2 2.2 + _IO_iter_end@GLIBC_2.2 2.2 + _IO_iter_file@GLIBC_2.2 2.2 + _IO_iter_next@GLIBC_2.2 2.2 + _IO_least_wmarker@GLIBC_2.2 2.2 + _IO_link_in@GLIBC_2.0 2.0 + _IO_list_all@GLIBC_2.0 2.0 + _IO_list_lock@GLIBC_2.2 2.2 + _IO_list_resetlock@GLIBC_2.2 2.2 + _IO_list_unlock@GLIBC_2.2 2.2 + _IO_marker_delta@GLIBC_2.0 2.0 + _IO_marker_difference@GLIBC_2.0 2.0 + _IO_padn@GLIBC_2.0 2.0 + _IO_peekc_locked@GLIBC_2.0 2.0 + _IO_popen@GLIBC_2.0 2.0 + _IO_popen@GLIBC_2.1 2.1 + _IO_printf@GLIBC_2.0 2.0 + _IO_proc_close@GLIBC_2.0 2.0 + _IO_proc_close@GLIBC_2.1 2.1 + _IO_proc_open@GLIBC_2.0 2.0 + _IO_proc_open@GLIBC_2.1 2.1 + _IO_putc@GLIBC_2.0 2.0 + _IO_puts@GLIBC_2.0 2.0 + _IO_remove_marker@GLIBC_2.0 2.0 + _IO_seekmark@GLIBC_2.0 2.0 + _IO_seekoff@GLIBC_2.0 2.0 + _IO_seekpos@GLIBC_2.0 2.0 + _IO_seekwmark@GLIBC_2.2 2.2 + _IO_setb@GLIBC_2.0 2.0 + _IO_setbuffer@GLIBC_2.0 2.0 + _IO_setvbuf@GLIBC_2.0 2.0 + _IO_sgetn@GLIBC_2.0 2.0 + _IO_sprintf@GLIBC_2.0 2.0 + _IO_sputbackc@GLIBC_2.0 2.0 + _IO_sputbackwc@GLIBC_2.2 2.2 + _IO_sscanf@GLIBC_2.0 2.0 + _IO_stderr_@GLIBC_2.0 2.0 + _IO_stdin_@GLIBC_2.0 2.0 + _IO_stdout_@GLIBC_2.0 2.0 + _IO_str_init_readonly@GLIBC_2.0 2.0 + _IO_str_init_static@GLIBC_2.0 2.0 + _IO_str_overflow@GLIBC_2.0 2.0 + _IO_str_pbackfail@GLIBC_2.0 2.0 + _IO_str_seekoff@GLIBC_2.0 2.0 + _IO_str_underflow@GLIBC_2.0 2.0 + _IO_sungetc@GLIBC_2.0 2.0 + _IO_sungetwc@GLIBC_2.2 2.2 + _IO_switch_to_get_mode@GLIBC_2.0 2.0 + _IO_switch_to_main_wget_area@GLIBC_2.2 2.2 + _IO_switch_to_wbackup_area@GLIBC_2.2 2.2 + _IO_switch_to_wget_mode@GLIBC_2.2 2.2 + _IO_un_link@GLIBC_2.0 2.0 + _IO_ungetc@GLIBC_2.0 2.0 + _IO_unsave_markers@GLIBC_2.0 2.0 + _IO_unsave_wmarkers@GLIBC_2.2 2.2 + _IO_vfprintf@GLIBC_2.0 2.0 + _IO_vfscanf@GLIBC_2.0 2.0 + _IO_vsprintf@GLIBC_2.0 2.0 + _IO_wdefault_doallocate@GLIBC_2.2 2.2 + _IO_wdefault_finish@GLIBC_2.2 2.2 + _IO_wdefault_pbackfail@GLIBC_2.2 2.2 + _IO_wdefault_uflow@GLIBC_2.2 2.2 + _IO_wdefault_xsgetn@GLIBC_2.2 2.2 + _IO_wdefault_xsputn@GLIBC_2.2 2.2 + _IO_wdo_write@GLIBC_2.2 2.2 + _IO_wdoallocbuf@GLIBC_2.2 2.2 + _IO_wfile_jumps@GLIBC_2.2 2.2 + _IO_wfile_overflow@GLIBC_2.2 2.2 + _IO_wfile_seekoff@GLIBC_2.2 2.2 + _IO_wfile_sync@GLIBC_2.2 2.2 + _IO_wfile_underflow@GLIBC_2.2 2.2 + _IO_wfile_xsputn@GLIBC_2.2 2.2 + _IO_wmarker_delta@GLIBC_2.2 2.2 + _IO_wsetb@GLIBC_2.2 2.2 + _Unwind_Find_FDE@GCC_3.0 2.7-9ubuntu1 + ___brk_addr@GLIBC_2.0 2.0 + __adjtimex@GLIBC_2.0 2.0 + __after_morecore_hook@GLIBC_2.0 2.0 + __argz_count@GLIBC_2.0 2.0 + __argz_next@GLIBC_2.0 2.0 + __argz_stringify@GLIBC_2.0 2.0 + __asprintf@GLIBC_2.1 2.1 + __assert@GLIBC_2.2 2.2 + __assert_fail@GLIBC_2.0 2.0 + __assert_perror_fail@GLIBC_2.0 2.0 + __backtrace@GLIBC_2.1 2.1 + __backtrace_symbols@GLIBC_2.1 2.1 + __backtrace_symbols_fd@GLIBC_2.1 2.1 + __bsd_getpgrp@GLIBC_2.0 2.0 + __bzero@GLIBC_2.0 2.0 + __check_rhosts_file@GLIBC_2.0 2.0 + __chk_fail@GLIBC_2.3.4 2.3.4 + __clone@GLIBC_2.0 2.0 + __close@GLIBC_2.0 2.0 + __cmpdi2@GLIBC_2.0 2.0 + __cmsg_nxthdr@GLIBC_2.0 2.0 + __confstr_chk@GLIBC_2.4 2.4 + __connect@GLIBC_2.0 2.0 + __ctype32_b@GLIBC_2.0 2.0 + __ctype32_tolower@GLIBC_2.2 2.2 + __ctype32_toupper@GLIBC_2.2 2.2 + __ctype_b@GLIBC_2.0 2.0 + __ctype_b_loc@GLIBC_2.3 2.3 + __ctype_get_mb_cur_max@GLIBC_2.0 2.0 + __ctype_tolower@GLIBC_2.0 2.0 + __ctype_tolower_loc@GLIBC_2.3 2.3 + __ctype_toupper@GLIBC_2.0 2.0 + __ctype_toupper_loc@GLIBC_2.3 2.3 + __curbrk@GLIBC_2.0 2.0 + __cxa_atexit@GLIBC_2.1.3 2.1.3 + __cxa_finalize@GLIBC_2.1.3 2.1.3 + __cyg_profile_func_enter@GLIBC_2.2 2.2 + __cyg_profile_func_exit@GLIBC_2.2 2.2 + __daylight@GLIBC_2.0 2.0 + __dcgettext@GLIBC_2.0 2.0 + __default_morecore@GLIBC_2.0 2.0 + __deregister_frame@GLIBC_2.0 2.0 + __deregister_frame_info@GLIBC_2.0 2.0 + __deregister_frame_info_bases@GCC_3.0 2.7-9ubuntu1 + __dgettext@GLIBC_2.0 2.0 + __divdi3@GLIBC_2.0 2.0 + __dup2@GLIBC_2.0 2.0 + __duplocale@GLIBC_2.1 2.1 + __endmntent@GLIBC_2.2 2.2 + __environ@GLIBC_2.0 2.0 + __errno_location@GLIBC_2.0 2.0 + __fbufsize@GLIBC_2.2 2.2 + __fcntl@GLIBC_2.0 2.0 + __ffs@GLIBC_2.0 2.0 + __fgets_chk@GLIBC_2.4 2.4 + __fgets_unlocked_chk@GLIBC_2.4 2.4 + __fgetws_chk@GLIBC_2.4 2.4 + __fgetws_unlocked_chk@GLIBC_2.4 2.4 + __finite@GLIBC_2.0 2.0 + __finitef@GLIBC_2.0 2.0 + __finitel@GLIBC_2.0 2.0 + __fixunsdfdi@GLIBC_2.0 2.0 + __fixunsxfdi@GLIBC_2.0 2.0 + __flbf@GLIBC_2.2 2.2 + __floatdidf@GLIBC_2.0 2.0 + __fork@GLIBC_2.0 2.0 + __fortify_fail@GLIBC_PRIVATE 2.7 + __fpending@GLIBC_2.2 2.2 + __fprintf_chk@GLIBC_2.3.4 2.3.4 + __fpu_control@GLIBC_2.0 2.0 + __fpurge@GLIBC_2.2 2.2 + __frame_state_for@GLIBC_2.0 2.0 + __fread_chk@GLIBC_2.7 2.7 + __fread_unlocked_chk@GLIBC_2.7 2.7 + __freadable@GLIBC_2.2 2.2 + __freading@GLIBC_2.2 2.2 + __free_hook@GLIBC_2.0 2.0 + __freelocale@GLIBC_2.1 2.1 + __fsetlocking@GLIBC_2.2 2.2 + __fwprintf_chk@GLIBC_2.4 2.4 + __fwritable@GLIBC_2.2 2.2 + __fwriting@GLIBC_2.2 2.2 + __fxstat64@GLIBC_2.1 2.1 + __fxstat64@GLIBC_2.2 2.2 + __fxstat@GLIBC_2.0 2.0 + __fxstatat64@GLIBC_2.4 2.4 + __fxstatat@GLIBC_2.4 2.4 + __gai_sigqueue@GLIBC_PRIVATE 2.7 + __gconv_get_alias_db@GLIBC_PRIVATE 2.7 + __gconv_get_cache@GLIBC_PRIVATE 2.7 + __gconv_get_modules_db@GLIBC_PRIVATE 2.7 + __getcwd_chk@GLIBC_2.4 2.4 + __getdelim@GLIBC_2.0 2.0 + __getdomainname_chk@GLIBC_2.4 2.4 + __getgroups_chk@GLIBC_2.4 2.4 + __gethostname_chk@GLIBC_2.4 2.4 + __getlogin_r_chk@GLIBC_2.4 2.4 + __getmntent_r@GLIBC_2.2 2.2 + __getpagesize@GLIBC_2.0 2.0 + __getpgid@GLIBC_2.0 2.0 + __getpid@GLIBC_2.0 2.0 + __gets_chk@GLIBC_2.3.4 2.3.4 + __gettimeofday@GLIBC_2.0 2.0 + __getwd_chk@GLIBC_2.4 2.4 + __gmtime_r@GLIBC_2.0 2.0 + __h_errno_location@GLIBC_2.0 2.0 + __internal_endnetgrent@GLIBC_PRIVATE 2.7 + __internal_getnetgrent_r@GLIBC_PRIVATE 2.7 + __internal_setnetgrent@GLIBC_PRIVATE 2.7 + __isalnum_l@GLIBC_2.1 2.1 + __isalpha_l@GLIBC_2.1 2.1 + __isascii_l@GLIBC_2.1 2.1 + __isblank_l@GLIBC_2.1 2.1 + __iscntrl_l@GLIBC_2.1 2.1 + __isctype@GLIBC_2.3 2.3 + __isdigit_l@GLIBC_2.1 2.1 + __isgraph_l@GLIBC_2.1 2.1 + __isinf@GLIBC_2.0 2.0 + __isinff@GLIBC_2.0 2.0 + __isinfl@GLIBC_2.0 2.0 + __islower_l@GLIBC_2.1 2.1 + __isnan@GLIBC_2.0 2.0 + __isnanf@GLIBC_2.0 2.0 + __isnanl@GLIBC_2.0 2.0 + __isoc99_fscanf@GLIBC_2.7 2.7 + __isoc99_fwscanf@GLIBC_2.7 2.7 + __isoc99_scanf@GLIBC_2.7 2.7 + __isoc99_sscanf@GLIBC_2.7 2.7 + __isoc99_swscanf@GLIBC_2.7 2.7 + __isoc99_vfscanf@GLIBC_2.7 2.7 + __isoc99_vfwscanf@GLIBC_2.7 2.7 + __isoc99_vscanf@GLIBC_2.7 2.7 + __isoc99_vsscanf@GLIBC_2.7 2.7 + __isoc99_vswscanf@GLIBC_2.7 2.7 + __isoc99_vwscanf@GLIBC_2.7 2.7 + __isoc99_wscanf@GLIBC_2.7 2.7 + __isprint_l@GLIBC_2.1 2.1 + __ispunct_l@GLIBC_2.1 2.1 + __isspace_l@GLIBC_2.1 2.1 + __isupper_l@GLIBC_2.1 2.1 + __iswalnum_l@GLIBC_2.1 2.1 + __iswalpha_l@GLIBC_2.1 2.1 + __iswblank_l@GLIBC_2.1 2.1 + __iswcntrl_l@GLIBC_2.1 2.1 + __iswctype@GLIBC_2.0 2.0 + __iswctype_l@GLIBC_2.1 2.1 + __iswdigit_l@GLIBC_2.1 2.1 + __iswgraph_l@GLIBC_2.1 2.1 + __iswlower_l@GLIBC_2.1 2.1 + __iswprint_l@GLIBC_2.1 2.1 + __iswpunct_l@GLIBC_2.1 2.1 + __iswspace_l@GLIBC_2.1 2.1 + __iswupper_l@GLIBC_2.1 2.1 + __iswxdigit_l@GLIBC_2.1 2.1 + __isxdigit_l@GLIBC_2.1 2.1 + __ivaliduser@GLIBC_2.0 2.0 + __key_decryptsession_pk_LOCAL@GLIBC_2.1 2.1 + __key_encryptsession_pk_LOCAL@GLIBC_2.1 2.1 + __key_gendes_LOCAL@GLIBC_2.1 2.1 + __libc_allocate_rtsig@GLIBC_2.1 2.1 + __libc_allocate_rtsig_private@GLIBC_PRIVATE 2.7 + __libc_calloc@GLIBC_2.0 2.0 + __libc_current_sigrtmax@GLIBC_2.1 2.1 + __libc_current_sigrtmax_private@GLIBC_PRIVATE 2.7 + __libc_current_sigrtmin@GLIBC_2.1 2.1 + __libc_current_sigrtmin_private@GLIBC_PRIVATE 2.7 + __libc_dl_error_tsd@GLIBC_PRIVATE 2.7 + __libc_dlclose@GLIBC_PRIVATE 2.7 + __libc_dlopen_mode@GLIBC_PRIVATE 2.7 + __libc_dlsym@GLIBC_PRIVATE 2.7 + __libc_fatal@GLIBC_PRIVATE 2.7 + __libc_fork@GLIBC_PRIVATE 2.7 + __libc_free@GLIBC_2.0 2.0 + __libc_freeres@GLIBC_2.1 2.1 + __libc_init_first@GLIBC_2.0 2.0 + __libc_longjmp@GLIBC_PRIVATE 2.7 + __libc_mallinfo@GLIBC_2.0 2.0 + __libc_malloc@GLIBC_2.0 2.0 + __libc_mallopt@GLIBC_2.0 2.0 + __libc_memalign@GLIBC_2.0 2.0 + __libc_msgrcv@GLIBC_PRIVATE 2.7 + __libc_msgsnd@GLIBC_PRIVATE 2.7 + __libc_pthread_init@GLIBC_PRIVATE 2.7 + __libc_pvalloc@GLIBC_2.0 2.0 + __libc_pwrite@GLIBC_PRIVATE 2.7 + __libc_realloc@GLIBC_2.0 2.0 + __libc_sa_len@GLIBC_2.1 2.1 + __libc_siglongjmp@GLIBC_PRIVATE 2.7 + __libc_start_main@GLIBC_2.0 2.0 + __libc_system@GLIBC_PRIVATE 2.7 + __libc_thread_freeres@GLIBC_PRIVATE 2.7 + __libc_valloc@GLIBC_2.0 2.0 + __lseek@GLIBC_2.0 2.0 + __lxstat64@GLIBC_2.1 2.1 + __lxstat64@GLIBC_2.2 2.2 + __lxstat@GLIBC_2.0 2.0 + __malloc_hook@GLIBC_2.0 2.0 + __malloc_initialize_hook@GLIBC_2.0 2.0 + __mbrlen@GLIBC_2.0 2.0 + __mbrtowc@GLIBC_2.0 2.0 + __mbsnrtowcs_chk@GLIBC_2.4 2.4 + __mbsrtowcs_chk@GLIBC_2.4 2.4 + __mbstowcs_chk@GLIBC_2.4 2.4 + __memalign_hook@GLIBC_2.0 2.0 + __memcpy_by2@GLIBC_2.1.1 2.1.1 + __memcpy_by4@GLIBC_2.1.1 2.1.1 + __memcpy_c@GLIBC_2.1.1 2.1.1 + __memcpy_chk@GLIBC_2.3.4 2.3.4 + __memcpy_g@GLIBC_2.1.1 2.1.1 + __memmove_chk@GLIBC_2.3.4 2.3.4 + __mempcpy@GLIBC_2.0 2.0 + __mempcpy_by2@GLIBC_2.1.1 2.1.1 + __mempcpy_by4@GLIBC_2.1.1 2.1.1 + __mempcpy_byn@GLIBC_2.1.1 2.1.1 + __mempcpy_chk@GLIBC_2.3.4 2.3.4 + __mempcpy_small@GLIBC_2.1.1 2.1.1 + __memset_cc@GLIBC_2.1.1 2.1.1 + __memset_ccn_by2@GLIBC_2.1.1 2.1.1 + __memset_ccn_by4@GLIBC_2.1.1 2.1.1 + __memset_cg@GLIBC_2.1.1 2.1.1 + __memset_chk@GLIBC_2.3.4 2.3.4 + __memset_gcn_by2@GLIBC_2.1.1 2.1.1 + __memset_gcn_by4@GLIBC_2.1.1 2.1.1 + __memset_gg@GLIBC_2.1.1 2.1.1 + __moddi3@GLIBC_2.0 2.0 + __modify_ldt@GLIBC_PRIVATE 2.7 + __monstartup@GLIBC_2.0 2.0 + __morecore@GLIBC_2.0 2.0 + __nanosleep@GLIBC_2.2.6 2.2.6 + __newlocale@GLIBC_2.1 2.1 + __nl_langinfo_l@GLIBC_2.2 2.2 + __nss_configure_lookup@GLIBC_2.0 2.0 + __nss_database_lookup@GLIBC_2.0 2.0 + __nss_disable_nscd@GLIBC_PRIVATE 2.7 + __nss_group_lookup@GLIBC_2.0 2.0 + __nss_hostname_digits_dots@GLIBC_2.2.2 2.2.2 + __nss_hosts_lookup@GLIBC_2.0 2.0 + __nss_lookup_function@GLIBC_PRIVATE 2.7 + __nss_next@GLIBC_2.0 2.0 + __nss_passwd_lookup@GLIBC_2.0 2.0 + __nss_services_lookup@GLIBC_PRIVATE 2.7 + __open64@GLIBC_2.2 2.2 + __open64_2@GLIBC_2.7 2.7 + __open@GLIBC_2.0 2.0 + __open_2@GLIBC_2.7 2.7 + __open_catalog@GLIBC_PRIVATE 2.7 + __openat64_2@GLIBC_2.7 2.7 + __openat_2@GLIBC_2.7 2.7 + __overflow@GLIBC_2.0 2.0 + __pipe@GLIBC_2.0 2.0 + __poll@GLIBC_2.1 2.1 + __pread64@GLIBC_2.1 2.1 + __pread64_chk@GLIBC_2.4 2.4 + __pread_chk@GLIBC_2.4 2.4 + __printf_chk@GLIBC_2.3.4 2.3.4 + __printf_fp@GLIBC_2.0 2.0 + __profile_frequency@GLIBC_2.0 2.0 + __progname@GLIBC_2.0 2.0 + __progname_full@GLIBC_2.0 2.0 + __ptsname_r_chk@GLIBC_2.4 2.4 + __pwrite64@GLIBC_2.1 2.1 + __rawmemchr@GLIBC_2.1 2.1 + __rcmd_errstr@GLIBC_2.0 2.0 + __read@GLIBC_2.0 2.0 + __read_chk@GLIBC_2.4 2.4 + __readlink_chk@GLIBC_2.4 2.4 + __readlinkat_chk@GLIBC_2.5 2.5 + __realloc_hook@GLIBC_2.0 2.0 + __realpath_chk@GLIBC_2.4 2.4 + __recv_chk@GLIBC_2.4 2.4 + __recvfrom_chk@GLIBC_2.4 2.4 + __register_atfork@GLIBC_2.3.2 2.3.2 + __register_frame@GLIBC_2.0 2.0 + __register_frame_info@GLIBC_2.0 2.0 + __register_frame_info_bases@GCC_3.0 2.7-9ubuntu1 + __register_frame_info_table@GLIBC_2.0 2.0 + __register_frame_info_table_bases@GCC_3.0 2.7-9ubuntu1 + __register_frame_table@GLIBC_2.0 2.0 + __res_iclose@GLIBC_PRIVATE 2.7 + __res_init@GLIBC_2.2 2.2 + __res_maybe_init@GLIBC_PRIVATE 2.7 + __res_nclose@GLIBC_2.2 2.2 + __res_ninit@GLIBC_2.2 2.2 + __res_randomid@GLIBC_2.0 2.0 + __res_state@GLIBC_2.2 2.2 + __resp@GLIBC_PRIVATE 2.7 + __rpc_thread_createerr@GLIBC_2.2.3 2.2.3 + __rpc_thread_svc_fdset@GLIBC_2.2.3 2.2.3 + __rpc_thread_svc_max_pollfd@GLIBC_2.2.3 2.2.3 + __rpc_thread_svc_pollfd@GLIBC_2.2.3 2.2.3 + __sbrk@GLIBC_2.0 2.0 + __sched_cpualloc@GLIBC_2.7 2.7 + __sched_cpucount@GLIBC_2.6 2.6 + __sched_cpufree@GLIBC_2.7 2.7 + __sched_get_priority_max@GLIBC_2.0 2.0 + __sched_get_priority_min@GLIBC_2.0 2.0 + __sched_getparam@GLIBC_2.0 2.0 + __sched_getscheduler@GLIBC_2.0 2.0 + __sched_setscheduler@GLIBC_2.0 2.0 + __sched_yield@GLIBC_2.0 2.0 + __secure_getenv@GLIBC_2.0 2.0 + __select@GLIBC_2.0 2.0 + __send@GLIBC_2.0 2.0 + __setmntent@GLIBC_2.2 2.2 + __setpgid@GLIBC_2.0 2.0 + __sigaction@GLIBC_2.0 2.0 + __sigaddset@GLIBC_2.0 2.0 + __sigdelset@GLIBC_2.0 2.0 + __sigismember@GLIBC_2.0 2.0 + __signbit@GLIBC_2.1 2.1 + __signbitf@GLIBC_2.1 2.1 + __signbitl@GLIBC_2.1 2.1 + __sigpause@GLIBC_2.0 2.0 + __sigsetjmp@GLIBC_2.0 2.0 + __sigsuspend@GLIBC_2.1.3 2.1.3 + __snprintf_chk@GLIBC_2.3.4 2.3.4 + __sprintf_chk@GLIBC_2.3.4 2.3.4 + __stack_chk_fail@GLIBC_2.4 2.4 + __statfs@GLIBC_2.2 2.2 + __stpcpy@GLIBC_2.0 2.0 + __stpcpy_chk@GLIBC_2.3.4 2.3.4 + __stpcpy_g@GLIBC_2.1.1 2.1.1 + __stpcpy_small@GLIBC_2.1.1 2.1.1 + __stpncpy@GLIBC_2.0 2.0 + __stpncpy_chk@GLIBC_2.4 2.4 + __strcasecmp@GLIBC_2.0 2.0 + __strcasecmp_l@GLIBC_2.1 2.1 + __strcasestr@GLIBC_2.1 2.1 + __strcat_c@GLIBC_2.1.1 2.1.1 + __strcat_chk@GLIBC_2.3.4 2.3.4 + __strcat_g@GLIBC_2.1.1 2.1.1 + __strchr_c@GLIBC_2.1.1 2.1.1 + __strchr_g@GLIBC_2.1.1 2.1.1 + __strchrnul_c@GLIBC_2.1.1 2.1.1 + __strchrnul_g@GLIBC_2.1.1 2.1.1 + __strcmp_gg@GLIBC_2.1.1 2.1.1 + __strcoll_l@GLIBC_2.1 2.1 + __strcpy_chk@GLIBC_2.3.4 2.3.4 + __strcpy_g@GLIBC_2.1.1 2.1.1 + __strcpy_small@GLIBC_2.1.1 2.1.1 + __strcspn_c1@GLIBC_2.1.1 2.1.1 + __strcspn_c2@GLIBC_2.1.1 2.1.1 + __strcspn_c3@GLIBC_2.1.1 2.1.1 + __strcspn_cg@GLIBC_2.1.1 2.1.1 + __strcspn_g@GLIBC_2.1.1 2.1.1 + __strdup@GLIBC_2.0 2.0 + __strerror_r@GLIBC_2.0 2.0 + __strfmon_l@GLIBC_2.1 2.1 + __strftime_l@GLIBC_2.3 2.3 + __strlen_g@GLIBC_2.1.1 2.1.1 + __strncasecmp_l@GLIBC_2.1 2.1 + __strncat_chk@GLIBC_2.3.4 2.3.4 + __strncat_g@GLIBC_2.1.1 2.1.1 + __strncmp_g@GLIBC_2.1.1 2.1.1 + __strncpy_by2@GLIBC_2.1.1 2.1.1 + __strncpy_by4@GLIBC_2.1.1 2.1.1 + __strncpy_byn@GLIBC_2.1.1 2.1.1 + __strncpy_chk@GLIBC_2.3.4 2.3.4 + __strncpy_gg@GLIBC_2.1.1 2.1.1 + __strndup@GLIBC_2.2 2.2 + __strpbrk_c2@GLIBC_2.1.1 2.1.1 + __strpbrk_c3@GLIBC_2.1.1 2.1.1 + __strpbrk_cg@GLIBC_2.1.1 2.1.1 + __strpbrk_g@GLIBC_2.1.1 2.1.1 + __strrchr_c@GLIBC_2.1.1 2.1.1 + __strrchr_g@GLIBC_2.1.1 2.1.1 + __strsep_1c@GLIBC_2.1.1 2.1.1 + __strsep_2c@GLIBC_2.1.1 2.1.1 + __strsep_3c@GLIBC_2.1.1 2.1.1 + __strsep_g@GLIBC_2.1.1 2.1.1 + __strspn_c1@GLIBC_2.1.1 2.1.1 + __strspn_c2@GLIBC_2.1.1 2.1.1 + __strspn_c3@GLIBC_2.1.1 2.1.1 + __strspn_cg@GLIBC_2.1.1 2.1.1 + __strspn_g@GLIBC_2.1.1 2.1.1 + __strstr_cg@GLIBC_2.1.1 2.1.1 + __strstr_g@GLIBC_2.1.1 2.1.1 + __strtod_internal@GLIBC_2.0 2.0 + __strtod_l@GLIBC_2.1 2.1 + __strtof_internal@GLIBC_2.0 2.0 + __strtof_l@GLIBC_2.1 2.1 + __strtok_r@GLIBC_2.0 2.0 + __strtok_r_1c@GLIBC_2.1.1 2.1.1 + __strtol_internal@GLIBC_2.0 2.0 + __strtol_l@GLIBC_2.1 2.1 + __strtold_internal@GLIBC_2.0 2.0 + __strtold_l@GLIBC_2.1 2.1 + __strtoll_internal@GLIBC_2.0 2.0 + __strtoll_l@GLIBC_2.1 2.1 + __strtoq_internal@GLIBC_2.0 2.0 + __strtoul_internal@GLIBC_2.0 2.0 + __strtoul_l@GLIBC_2.1 2.1 + __strtoull_internal@GLIBC_2.0 2.0 + __strtoull_l@GLIBC_2.1 2.1 + __strtouq_internal@GLIBC_2.0 2.0 + __strverscmp@GLIBC_2.1.1 2.1.1 + __strxfrm_l@GLIBC_2.1 2.1 + __swprintf_chk@GLIBC_2.4 2.4 + __sysconf@GLIBC_2.2 2.2 + __sysctl@GLIBC_2.2 2.2 + __syslog_chk@GLIBC_2.4 2.4 + __sysv_signal@GLIBC_2.0 2.0 + __timezone@GLIBC_2.0 2.0 + __toascii_l@GLIBC_2.1 2.1 + __tolower_l@GLIBC_2.1 2.1 + __toupper_l@GLIBC_2.1 2.1 + __towctrans@GLIBC_2.1 2.1 + __towctrans_l@GLIBC_2.1 2.1 + __towlower_l@GLIBC_2.1 2.1 + __towupper_l@GLIBC_2.1 2.1 + __ttyname_r_chk@GLIBC_2.4 2.4 + __tzname@GLIBC_2.0 2.0 + __ucmpdi2@GLIBC_2.0 2.0 + __udivdi3@GLIBC_2.0 2.0 + __uflow@GLIBC_2.0 2.0 + __umoddi3@GLIBC_2.0 2.0 + __underflow@GLIBC_2.0 2.0 + __uselocale@GLIBC_2.3 2.3 + __vfork@GLIBC_2.1.2 2.1.2 + __vfprintf_chk@GLIBC_2.3.4 2.3.4 + __vfscanf@GLIBC_2.0 2.0 + __vfwprintf_chk@GLIBC_2.4 2.4 + __vprintf_chk@GLIBC_2.3.4 2.3.4 + __vsnprintf@GLIBC_2.0 2.0 + __vsnprintf_chk@GLIBC_2.3.4 2.3.4 + __vsprintf_chk@GLIBC_2.3.4 2.3.4 + __vsscanf@GLIBC_2.0 2.0 + __vswprintf_chk@GLIBC_2.4 2.4 + __vsyslog_chk@GLIBC_2.4 2.4 + __vwprintf_chk@GLIBC_2.4 2.4 + __wait@GLIBC_2.0 2.0 + __waitpid@GLIBC_2.0 2.0 + __wcpcpy_chk@GLIBC_2.4 2.4 + __wcpncpy_chk@GLIBC_2.4 2.4 + __wcrtomb_chk@GLIBC_2.4 2.4 + __wcscasecmp_l@GLIBC_2.1 2.1 + __wcscat_chk@GLIBC_2.4 2.4 + __wcscoll_l@GLIBC_2.1 2.1 + __wcscpy_chk@GLIBC_2.4 2.4 + __wcsftime_l@GLIBC_2.3 2.3 + __wcsncasecmp_l@GLIBC_2.1 2.1 + __wcsncat_chk@GLIBC_2.4 2.4 + __wcsncpy_chk@GLIBC_2.4 2.4 + __wcsnrtombs_chk@GLIBC_2.4 2.4 + __wcsrtombs_chk@GLIBC_2.4 2.4 + __wcstod_internal@GLIBC_2.0 2.0 + __wcstod_l@GLIBC_2.1 2.1 + __wcstof_internal@GLIBC_2.0 2.0 + __wcstof_l@GLIBC_2.1 2.1 + __wcstol_internal@GLIBC_2.0 2.0 + __wcstol_l@GLIBC_2.1 2.1 + __wcstold_internal@GLIBC_2.0 2.0 + __wcstold_l@GLIBC_2.1 2.1 + __wcstoll_internal@GLIBC_2.0 2.0 + __wcstoll_l@GLIBC_2.1 2.1 + __wcstombs_chk@GLIBC_2.4 2.4 + __wcstoul_internal@GLIBC_2.0 2.0 + __wcstoul_l@GLIBC_2.1 2.1 + __wcstoull_internal@GLIBC_2.0 2.0 + __wcstoull_l@GLIBC_2.1 2.1 + __wcsxfrm_l@GLIBC_2.1 2.1 + __wctomb_chk@GLIBC_2.4 2.4 + __wctrans_l@GLIBC_2.2 2.2 + __wctype_l@GLIBC_2.1 2.1 + __wmemcpy_chk@GLIBC_2.4 2.4 + __wmemmove_chk@GLIBC_2.4 2.4 + __wmempcpy_chk@GLIBC_2.4 2.4 + __wmemset_chk@GLIBC_2.4 2.4 + __woverflow@GLIBC_2.2 2.2 + __wprintf_chk@GLIBC_2.4 2.4 + __write@GLIBC_2.0 2.0 + __wuflow@GLIBC_2.2 2.2 + __wunderflow@GLIBC_2.2 2.2 + __xmknod@GLIBC_2.0 2.0 + __xmknodat@GLIBC_2.4 2.4 + __xpg_basename@GLIBC_2.0 2.0 + __xpg_sigpause@GLIBC_2.2 2.2 + __xpg_strerror_r@GLIBC_2.3.4 2.3.4 + __xstat64@GLIBC_2.1 2.1 + __xstat64@GLIBC_2.2 2.2 + __xstat@GLIBC_2.0 2.0 + _authenticate@GLIBC_2.1 2.1 + _dl_addr@GLIBC_PRIVATE 2.7 + _dl_mcount_wrapper@GLIBC_2.1 2.1 + _dl_mcount_wrapper_check@GLIBC_2.1 2.1 + _dl_open_hook@GLIBC_PRIVATE 2.7 + _dl_sym@GLIBC_PRIVATE 2.7 + _dl_vsym@GLIBC_PRIVATE 2.7 + _environ@GLIBC_2.0 2.0 + _exit@GLIBC_2.0 2.0 + _flushlbf@GLIBC_2.2 2.2 + _itoa_lower_digits@GLIBC_PRIVATE 2.7 + _libc_intl_domainname@GLIBC_2.0 2.0 + _longjmp@GLIBC_2.0 2.0 + _mcleanup@GLIBC_2.0 2.0 + _mcount@GLIBC_2.0 2.0 + _nl_default_dirname@GLIBC_2.0 2.0 + _nl_domain_bindings@GLIBC_2.0 2.0 + _nl_msg_cat_cntr@GLIBC_2.0 2.0 + _nss_files_parse_grent@GLIBC_PRIVATE 2.7 + _nss_files_parse_pwent@GLIBC_PRIVATE 2.7 + _nss_files_parse_spent@GLIBC_PRIVATE 2.7 + _null_auth@GLIBC_2.0 2.0 + _obstack@GLIBC_2.0 2.0 + _obstack_allocated_p@GLIBC_2.0 2.0 + _obstack_begin@GLIBC_2.0 2.0 + _obstack_begin_1@GLIBC_2.0 2.0 + _obstack_free@GLIBC_2.0 2.0 + _obstack_memory_used@GLIBC_2.0 2.0 + _obstack_newchunk@GLIBC_2.0 2.0 + _res@GLIBC_2.0 2.0 + _res_hconf@GLIBC_2.2 2.2 + _rpc_dtablesize@GLIBC_2.0 2.0 + _seterr_reply@GLIBC_2.0 2.0 + _setjmp@GLIBC_2.0 2.0 + _sys_errlist@GLIBC_2.0 2.0 + _sys_errlist@GLIBC_2.1 2.1 + _sys_errlist@GLIBC_2.3 2.3 + _sys_errlist@GLIBC_2.4 2.4 + _sys_nerr@GLIBC_2.0 2.0 + _sys_nerr@GLIBC_2.1 2.1 + _sys_nerr@GLIBC_2.3 2.3 + _sys_nerr@GLIBC_2.4 2.4 + _sys_siglist@GLIBC_2.0 2.0 + _sys_siglist@GLIBC_2.1 2.1 + _sys_siglist@GLIBC_2.3.3 2.3.3 + _tolower@GLIBC_2.0 2.0 + _toupper@GLIBC_2.0 2.0 + a64l@GLIBC_2.0 2.0 + abort@GLIBC_2.0 2.0 + abs@GLIBC_2.0 2.0 + accept@GLIBC_2.0 2.0 + access@GLIBC_2.0 2.0 + acct@GLIBC_2.0 2.0 + addmntent@GLIBC_2.0 2.0 + addseverity@GLIBC_2.1 2.1 + adjtime@GLIBC_2.0 2.0 + adjtimex@GLIBC_2.0 2.0 + advance@GLIBC_2.0 2.0 + alarm@GLIBC_2.0 2.0 + alphasort64@GLIBC_2.1 2.1 + alphasort64@GLIBC_2.2 2.2 + alphasort@GLIBC_2.0 2.0 + argp_err_exit_status@GLIBC_2.1 2.1 + argp_error@GLIBC_2.1 2.1 + argp_failure@GLIBC_2.1 2.1 + argp_help@GLIBC_2.1 2.1 + argp_parse@GLIBC_2.1 2.1 + argp_program_bug_address@GLIBC_2.1 2.1 + argp_program_version@GLIBC_2.1 2.1 + argp_program_version_hook@GLIBC_2.1 2.1 + argp_state_help@GLIBC_2.1 2.1 + argp_usage@GLIBC_2.1 2.1 + argz_add@GLIBC_2.0 2.0 + argz_add_sep@GLIBC_2.0 2.0 + argz_append@GLIBC_2.0 2.0 + argz_count@GLIBC_2.0 2.0 + argz_create@GLIBC_2.0 2.0 + argz_create_sep@GLIBC_2.0 2.0 + argz_delete@GLIBC_2.0 2.0 + argz_extract@GLIBC_2.0 2.0 + argz_insert@GLIBC_2.0 2.0 + argz_next@GLIBC_2.0 2.0 + argz_replace@GLIBC_2.0 2.0 + argz_stringify@GLIBC_2.0 2.0 + asctime@GLIBC_2.0 2.0 + asctime_r@GLIBC_2.0 2.0 + asprintf@GLIBC_2.0 2.0 + atexit@GLIBC_2.0 2.0 + atof@GLIBC_2.0 2.0 + atoi@GLIBC_2.0 2.0 + atol@GLIBC_2.0 2.0 + atoll@GLIBC_2.0 2.0 + authdes_create@GLIBC_2.1 2.1 + authdes_getucred@GLIBC_2.1 2.1 + authdes_pk_create@GLIBC_2.1 2.1 + authnone_create@GLIBC_2.0 2.0 + authunix_create@GLIBC_2.0 2.0 + authunix_create_default@GLIBC_2.0 2.0 + backtrace@GLIBC_2.1 2.1 + backtrace_symbols@GLIBC_2.1 2.1 + backtrace_symbols_fd@GLIBC_2.1 2.1 + basename@GLIBC_2.0 2.0 + bcmp@GLIBC_2.0 2.0 + bcopy@GLIBC_2.0 2.0 + bdflush@GLIBC_2.0 2.0 + bind@GLIBC_2.0 2.0 + bind_textdomain_codeset@GLIBC_2.2 2.2 + bindresvport@GLIBC_2.0 2.0 + bindtextdomain@GLIBC_2.0 2.0 + brk@GLIBC_2.0 2.0 + bsd_signal@GLIBC_2.0 2.0 + bsearch@GLIBC_2.0 2.0 + btowc@GLIBC_2.0 2.0 + bzero@GLIBC_2.0 2.0 + calloc@GLIBC_2.0 2.0 + callrpc@GLIBC_2.0 2.0 + canonicalize_file_name@GLIBC_2.0 2.0 + capget@GLIBC_2.1 2.1 + capset@GLIBC_2.1 2.1 + catclose@GLIBC_2.0 2.0 + catgets@GLIBC_2.0 2.0 + catopen@GLIBC_2.0 2.0 + cbc_crypt@GLIBC_2.1 2.1 + cfgetispeed@GLIBC_2.0 2.0 + cfgetospeed@GLIBC_2.0 2.0 + cfmakeraw@GLIBC_2.0 2.0 + cfree@GLIBC_2.0 2.0 + cfsetispeed@GLIBC_2.0 2.0 + cfsetospeed@GLIBC_2.0 2.0 + cfsetspeed@GLIBC_2.0 2.0 + chdir@GLIBC_2.0 2.0 + chflags@GLIBC_2.0 2.0 + chmod@GLIBC_2.0 2.0 + chown@GLIBC_2.0 2.0 + chown@GLIBC_2.1 2.1 + chroot@GLIBC_2.0 2.0 + clearenv@GLIBC_2.0 2.0 + clearerr@GLIBC_2.0 2.0 + clearerr_unlocked@GLIBC_2.0 2.0 + clnt_broadcast@GLIBC_2.0 2.0 + clnt_create@GLIBC_2.0 2.0 + clnt_pcreateerror@GLIBC_2.0 2.0 + clnt_perrno@GLIBC_2.0 2.0 + clnt_perror@GLIBC_2.0 2.0 + clnt_spcreateerror@GLIBC_2.0 2.0 + clnt_sperrno@GLIBC_2.0 2.0 + clnt_sperror@GLIBC_2.0 2.0 + clntraw_create@GLIBC_2.0 2.0 + clnttcp_create@GLIBC_2.0 2.0 + clntudp_bufcreate@GLIBC_2.0 2.0 + clntudp_create@GLIBC_2.0 2.0 + clntunix_create@GLIBC_2.1 2.1 + clock@GLIBC_2.0 2.0 + clone@GLIBC_2.0 2.0 + close@GLIBC_2.0 2.0 + closedir@GLIBC_2.0 2.0 + closelog@GLIBC_2.0 2.0 + confstr@GLIBC_2.0 2.0 + connect@GLIBC_2.0 2.0 + copysign@GLIBC_2.0 2.0 + copysignf@GLIBC_2.0 2.0 + copysignl@GLIBC_2.0 2.0 + creat64@GLIBC_2.1 2.1 + creat@GLIBC_2.0 2.0 + create_module@GLIBC_2.0 2.0 + ctermid@GLIBC_2.0 2.0 + ctime@GLIBC_2.0 2.0 + ctime_r@GLIBC_2.0 2.0 + cuserid@GLIBC_2.0 2.0 + daemon@GLIBC_2.0 2.0 + daylight@GLIBC_2.0 2.0 + dcgettext@GLIBC_2.0 2.0 + dcngettext@GLIBC_2.2 2.2 + delete_module@GLIBC_2.0 2.0 + des_setparity@GLIBC_2.1 2.1 + dgettext@GLIBC_2.0 2.0 + difftime@GLIBC_2.0 2.0 + dirfd@GLIBC_2.0 2.0 + dirname@GLIBC_2.0 2.0 + div@GLIBC_2.0 2.0 + dl_iterate_phdr@GLIBC_2.2.4 2.2.4 + dngettext@GLIBC_2.2 2.2 + dprintf@GLIBC_2.0 2.0 + drand48@GLIBC_2.0 2.0 + drand48_r@GLIBC_2.0 2.0 + dup2@GLIBC_2.0 2.0 + dup@GLIBC_2.0 2.0 + duplocale@GLIBC_2.3 2.3 + dysize@GLIBC_2.0 2.0 + eaccess@GLIBC_2.4 2.4 + ecb_crypt@GLIBC_2.1 2.1 + ecvt@GLIBC_2.0 2.0 + ecvt_r@GLIBC_2.0 2.0 + endaliasent@GLIBC_2.0 2.0 + endfsent@GLIBC_2.0 2.0 + endgrent@GLIBC_2.0 2.0 + endhostent@GLIBC_2.0 2.0 + endmntent@GLIBC_2.0 2.0 + endnetent@GLIBC_2.0 2.0 + endnetgrent@GLIBC_2.0 2.0 + endprotoent@GLIBC_2.0 2.0 + endpwent@GLIBC_2.0 2.0 + endrpcent@GLIBC_2.0 2.0 + endservent@GLIBC_2.0 2.0 + endspent@GLIBC_2.0 2.0 + endttyent@GLIBC_2.0 2.0 + endusershell@GLIBC_2.0 2.0 + endutent@GLIBC_2.0 2.0 + endutxent@GLIBC_2.1 2.1 + environ@GLIBC_2.0 2.0 + envz_add@GLIBC_2.0 2.0 + envz_entry@GLIBC_2.0 2.0 + envz_get@GLIBC_2.0 2.0 + envz_merge@GLIBC_2.0 2.0 + envz_remove@GLIBC_2.0 2.0 + envz_strip@GLIBC_2.0 2.0 + epoll_create@GLIBC_2.3.2 2.3.2 + epoll_ctl@GLIBC_2.3.2 2.3.2 + epoll_pwait@GLIBC_2.6 2.6 + epoll_wait@GLIBC_2.3.2 2.3.2 + erand48@GLIBC_2.0 2.0 + erand48_r@GLIBC_2.0 2.0 + err@GLIBC_2.0 2.0 + errno@GLIBC_PRIVATE 2.7 + error@GLIBC_2.0 2.0 + error_at_line@GLIBC_2.0 2.0 + error_message_count@GLIBC_2.0 2.0 + error_one_per_line@GLIBC_2.0 2.0 + error_print_progname@GLIBC_2.0 2.0 + errx@GLIBC_2.0 2.0 + ether_aton@GLIBC_2.0 2.0 + ether_aton_r@GLIBC_2.0 2.0 + ether_hostton@GLIBC_2.0 2.0 + ether_line@GLIBC_2.0 2.0 + ether_ntoa@GLIBC_2.0 2.0 + ether_ntoa_r@GLIBC_2.0 2.0 + ether_ntohost@GLIBC_2.0 2.0 + euidaccess@GLIBC_2.0 2.0 + eventfd@GLIBC_2.7 2.7 + eventfd_read@GLIBC_2.7 2.7 + eventfd_write@GLIBC_2.7 2.7 + execl@GLIBC_2.0 2.0 + execle@GLIBC_2.0 2.0 + execlp@GLIBC_2.0 2.0 + execv@GLIBC_2.0 2.0 + execve@GLIBC_2.0 2.0 + execvp@GLIBC_2.0 2.0 + exit@GLIBC_2.0 2.0 + faccessat@GLIBC_2.4 2.4 + fattach@GLIBC_2.1 2.1 + fchdir@GLIBC_2.0 2.0 + fchflags@GLIBC_2.0 2.0 + fchmod@GLIBC_2.0 2.0 + fchmodat@GLIBC_2.4 2.4 + fchown@GLIBC_2.0 2.0 + fchownat@GLIBC_2.4 2.4 + fclose@GLIBC_2.0 2.0 + fclose@GLIBC_2.1 2.1 + fcloseall@GLIBC_2.0 2.0 + fcntl@GLIBC_2.0 2.0 + fcvt@GLIBC_2.0 2.0 + fcvt_r@GLIBC_2.0 2.0 + fdatasync@GLIBC_2.0 2.0 + fdetach@GLIBC_2.1 2.1 + fdopen@GLIBC_2.0 2.0 + fdopen@GLIBC_2.1 2.1 + fdopendir@GLIBC_2.4 2.4 + feof@GLIBC_2.0 2.0 + feof_unlocked@GLIBC_2.0 2.0 + ferror@GLIBC_2.0 2.0 + ferror_unlocked@GLIBC_2.0 2.0 + fexecve@GLIBC_2.0 2.0 + fflush@GLIBC_2.0 2.0 + fflush_unlocked@GLIBC_2.0 2.0 + ffs@GLIBC_2.0 2.0 + ffsl@GLIBC_2.1 2.1 + ffsll@GLIBC_2.1 2.1 + fgetc@GLIBC_2.0 2.0 + fgetc_unlocked@GLIBC_2.1 2.1 + fgetgrent@GLIBC_2.0 2.0 + fgetgrent_r@GLIBC_2.0 2.0 + fgetpos64@GLIBC_2.1 2.1 + fgetpos64@GLIBC_2.2 2.2 + fgetpos@GLIBC_2.0 2.0 + fgetpos@GLIBC_2.2 2.2 + fgetpwent@GLIBC_2.0 2.0 + fgetpwent_r@GLIBC_2.0 2.0 + fgets@GLIBC_2.0 2.0 + fgets_unlocked@GLIBC_2.1 2.1 + fgetspent@GLIBC_2.0 2.0 + fgetspent_r@GLIBC_2.0 2.0 + fgetwc@GLIBC_2.2 2.2 + fgetwc_unlocked@GLIBC_2.2 2.2 + fgetws@GLIBC_2.2 2.2 + fgetws_unlocked@GLIBC_2.2 2.2 + fgetxattr@GLIBC_2.3 2.3 + fileno@GLIBC_2.0 2.0 + fileno_unlocked@GLIBC_2.0 2.0 + finite@GLIBC_2.0 2.0 + finitef@GLIBC_2.0 2.0 + finitel@GLIBC_2.0 2.0 + flistxattr@GLIBC_2.3 2.3 + flock@GLIBC_2.0 2.0 + flockfile@GLIBC_2.0 2.0 + fmemopen@GLIBC_2.2 2.2 + fmtmsg@GLIBC_2.1 2.1 + fnmatch@GLIBC_2.0 2.0 + fnmatch@GLIBC_2.2.3 2.2.3 + fopen64@GLIBC_2.1 2.1 + fopen@GLIBC_2.0 2.0 + fopen@GLIBC_2.1 2.1 + fopencookie@GLIBC_2.0 2.0 + fopencookie@GLIBC_2.2 2.2 + fork@GLIBC_2.0 2.0 + fpathconf@GLIBC_2.0 2.0 + fprintf@GLIBC_2.0 2.0 + fputc@GLIBC_2.0 2.0 + fputc_unlocked@GLIBC_2.0 2.0 + fputs@GLIBC_2.0 2.0 + fputs_unlocked@GLIBC_2.1 2.1 + fputwc@GLIBC_2.2 2.2 + fputwc_unlocked@GLIBC_2.2 2.2 + fputws@GLIBC_2.2 2.2 + fputws_unlocked@GLIBC_2.2 2.2 + fread@GLIBC_2.0 2.0 + fread_unlocked@GLIBC_2.1 2.1 + free@GLIBC_2.0 2.0 + freeaddrinfo@GLIBC_2.0 2.0 + freeifaddrs@GLIBC_2.3 2.3 + freelocale@GLIBC_2.3 2.3 + fremovexattr@GLIBC_2.3 2.3 + freopen64@GLIBC_2.1 2.1 + freopen@GLIBC_2.0 2.0 + frexp@GLIBC_2.0 2.0 + frexpf@GLIBC_2.0 2.0 + frexpl@GLIBC_2.0 2.0 + fscanf@GLIBC_2.0 2.0 + fseek@GLIBC_2.0 2.0 + fseeko64@GLIBC_2.1 2.1 + fseeko@GLIBC_2.1 2.1 + fsetpos64@GLIBC_2.1 2.1 + fsetpos64@GLIBC_2.2 2.2 + fsetpos@GLIBC_2.0 2.0 + fsetpos@GLIBC_2.2 2.2 + fsetxattr@GLIBC_2.3 2.3 + fstatfs64@GLIBC_2.1 2.1 + fstatfs@GLIBC_2.0 2.0 + fstatvfs64@GLIBC_2.1 2.1 + fstatvfs@GLIBC_2.1 2.1 + fsync@GLIBC_2.0 2.0 + ftell@GLIBC_2.0 2.0 + ftello64@GLIBC_2.1 2.1 + ftello@GLIBC_2.1 2.1 + ftime@GLIBC_2.0 2.0 + ftok@GLIBC_2.0 2.0 + ftruncate64@GLIBC_2.1 2.1 + ftruncate@GLIBC_2.0 2.0 + ftrylockfile@GLIBC_2.0 2.0 + fts_children@GLIBC_2.0 2.0 + fts_close@GLIBC_2.0 2.0 + fts_open@GLIBC_2.0 2.0 + fts_read@GLIBC_2.0 2.0 + fts_set@GLIBC_2.0 2.0 + ftw64@GLIBC_2.1 2.1 + ftw@GLIBC_2.0 2.0 + funlockfile@GLIBC_2.0 2.0 + futimens@GLIBC_2.6 2.6 + futimes@GLIBC_2.3 2.3 + futimesat@GLIBC_2.4 2.4 + fwide@GLIBC_2.2 2.2 + fwprintf@GLIBC_2.2 2.2 + fwrite@GLIBC_2.0 2.0 + fwrite_unlocked@GLIBC_2.1 2.1 + fwscanf@GLIBC_2.2 2.2 + gai_strerror@GLIBC_2.1 2.1 + gcvt@GLIBC_2.0 2.0 + get_avphys_pages@GLIBC_2.0 2.0 + get_current_dir_name@GLIBC_2.0 2.0 + get_kernel_syms@GLIBC_2.0 2.0 + get_myaddress@GLIBC_2.0 2.0 + get_nprocs@GLIBC_2.0 2.0 + get_nprocs_conf@GLIBC_2.0 2.0 + get_phys_pages@GLIBC_2.0 2.0 + getaddrinfo@GLIBC_2.0 2.0 + getaliasbyname@GLIBC_2.0 2.0 + getaliasbyname_r@GLIBC_2.0 2.0 + getaliasbyname_r@GLIBC_2.1.2 2.1.2 + getaliasent@GLIBC_2.0 2.0 + getaliasent_r@GLIBC_2.0 2.0 + getaliasent_r@GLIBC_2.1.2 2.1.2 + getc@GLIBC_2.0 2.0 + getc_unlocked@GLIBC_2.0 2.0 + getchar@GLIBC_2.0 2.0 + getchar_unlocked@GLIBC_2.0 2.0 + getcontext@GLIBC_2.1 2.1 + getcwd@GLIBC_2.0 2.0 + getdate@GLIBC_2.1 2.1 + getdate_err@GLIBC_2.1 2.1 + getdate_r@GLIBC_2.1 2.1 + getdelim@GLIBC_2.0 2.0 + getdirentries64@GLIBC_2.2 2.2 + getdirentries@GLIBC_2.0 2.0 + getdomainname@GLIBC_2.0 2.0 + getdtablesize@GLIBC_2.0 2.0 + getegid@GLIBC_2.0 2.0 + getenv@GLIBC_2.0 2.0 + geteuid@GLIBC_2.0 2.0 + getfsent@GLIBC_2.0 2.0 + getfsfile@GLIBC_2.0 2.0 + getfsspec@GLIBC_2.0 2.0 + getgid@GLIBC_2.0 2.0 + getgrent@GLIBC_2.0 2.0 + getgrent_r@GLIBC_2.0 2.0 + getgrent_r@GLIBC_2.1.2 2.1.2 + getgrgid@GLIBC_2.0 2.0 + getgrgid_r@GLIBC_2.0 2.0 + getgrgid_r@GLIBC_2.1.2 2.1.2 + getgrnam@GLIBC_2.0 2.0 + getgrnam_r@GLIBC_2.0 2.0 + getgrnam_r@GLIBC_2.1.2 2.1.2 + getgrouplist@GLIBC_2.2.4 2.2.4 + getgroups@GLIBC_2.0 2.0 + gethostbyaddr@GLIBC_2.0 2.0 + gethostbyaddr_r@GLIBC_2.0 2.0 + gethostbyaddr_r@GLIBC_2.1.2 2.1.2 + gethostbyname2@GLIBC_2.0 2.0 + gethostbyname2_r@GLIBC_2.0 2.0 + gethostbyname2_r@GLIBC_2.1.2 2.1.2 + gethostbyname@GLIBC_2.0 2.0 + gethostbyname_r@GLIBC_2.0 2.0 + gethostbyname_r@GLIBC_2.1.2 2.1.2 + gethostent@GLIBC_2.0 2.0 + gethostent_r@GLIBC_2.0 2.0 + gethostent_r@GLIBC_2.1.2 2.1.2 + gethostid@GLIBC_2.0 2.0 + gethostname@GLIBC_2.0 2.0 + getifaddrs@GLIBC_2.3 2.3 + getipv4sourcefilter@GLIBC_2.3.4 2.3.4 + getitimer@GLIBC_2.0 2.0 + getline@GLIBC_2.0 2.0 + getloadavg@GLIBC_2.2 2.2 + getlogin@GLIBC_2.0 2.0 + getlogin_r@GLIBC_2.0 2.0 + getmntent@GLIBC_2.0 2.0 + getmntent_r@GLIBC_2.0 2.0 + getmsg@GLIBC_2.1 2.1 + getnameinfo@GLIBC_2.1 2.1 + getnetbyaddr@GLIBC_2.0 2.0 + getnetbyaddr_r@GLIBC_2.0 2.0 + getnetbyaddr_r@GLIBC_2.1.2 2.1.2 + getnetbyname@GLIBC_2.0 2.0 + getnetbyname_r@GLIBC_2.0 2.0 + getnetbyname_r@GLIBC_2.1.2 2.1.2 + getnetent@GLIBC_2.0 2.0 + getnetent_r@GLIBC_2.0 2.0 + getnetent_r@GLIBC_2.1.2 2.1.2 + getnetgrent@GLIBC_2.0 2.0 + getnetgrent_r@GLIBC_2.0 2.0 + getnetname@GLIBC_2.1 2.1 + getopt@GLIBC_2.0 2.0 + getopt_long@GLIBC_2.0 2.0 + getopt_long_only@GLIBC_2.0 2.0 + getpagesize@GLIBC_2.0 2.0 + getpass@GLIBC_2.0 2.0 + getpeername@GLIBC_2.0 2.0 + getpgid@GLIBC_2.0 2.0 + getpgrp@GLIBC_2.0 2.0 + getpid@GLIBC_2.0 2.0 + getpmsg@GLIBC_2.1 2.1 + getppid@GLIBC_2.0 2.0 + getpriority@GLIBC_2.0 2.0 + getprotobyname@GLIBC_2.0 2.0 + getprotobyname_r@GLIBC_2.0 2.0 + getprotobyname_r@GLIBC_2.1.2 2.1.2 + getprotobynumber@GLIBC_2.0 2.0 + getprotobynumber_r@GLIBC_2.0 2.0 + getprotobynumber_r@GLIBC_2.1.2 2.1.2 + getprotoent@GLIBC_2.0 2.0 + getprotoent_r@GLIBC_2.0 2.0 + getprotoent_r@GLIBC_2.1.2 2.1.2 + getpt@GLIBC_2.1 2.1 + getpublickey@GLIBC_2.0 2.0 + getpw@GLIBC_2.0 2.0 + getpwent@GLIBC_2.0 2.0 + getpwent_r@GLIBC_2.0 2.0 + getpwent_r@GLIBC_2.1.2 2.1.2 + getpwnam@GLIBC_2.0 2.0 + getpwnam_r@GLIBC_2.0 2.0 + getpwnam_r@GLIBC_2.1.2 2.1.2 + getpwuid@GLIBC_2.0 2.0 + getpwuid_r@GLIBC_2.0 2.0 + getpwuid_r@GLIBC_2.1.2 2.1.2 + getresgid@GLIBC_2.0 2.0 + getresuid@GLIBC_2.0 2.0 + getrlimit64@GLIBC_2.1 2.1 + getrlimit64@GLIBC_2.2 2.2 + getrlimit@GLIBC_2.0 2.0 + getrlimit@GLIBC_2.2 2.2 + getrpcbyname@GLIBC_2.0 2.0 + getrpcbyname_r@GLIBC_2.0 2.0 + getrpcbyname_r@GLIBC_2.1.2 2.1.2 + getrpcbynumber@GLIBC_2.0 2.0 + getrpcbynumber_r@GLIBC_2.0 2.0 + getrpcbynumber_r@GLIBC_2.1.2 2.1.2 + getrpcent@GLIBC_2.0 2.0 + getrpcent_r@GLIBC_2.0 2.0 + getrpcent_r@GLIBC_2.1.2 2.1.2 + getrpcport@GLIBC_2.0 2.0 + getrusage@GLIBC_2.0 2.0 + gets@GLIBC_2.0 2.0 + getsecretkey@GLIBC_2.0 2.0 + getservbyname@GLIBC_2.0 2.0 + getservbyname_r@GLIBC_2.0 2.0 + getservbyname_r@GLIBC_2.1.2 2.1.2 + getservbyport@GLIBC_2.0 2.0 + getservbyport_r@GLIBC_2.0 2.0 + getservbyport_r@GLIBC_2.1.2 2.1.2 + getservent@GLIBC_2.0 2.0 + getservent_r@GLIBC_2.0 2.0 + getservent_r@GLIBC_2.1.2 2.1.2 + getsid@GLIBC_2.0 2.0 + getsockname@GLIBC_2.0 2.0 + getsockopt@GLIBC_2.0 2.0 + getsourcefilter@GLIBC_2.3.4 2.3.4 + getspent@GLIBC_2.0 2.0 + getspent_r@GLIBC_2.0 2.0 + getspent_r@GLIBC_2.1.2 2.1.2 + getspnam@GLIBC_2.0 2.0 + getspnam_r@GLIBC_2.0 2.0 + getspnam_r@GLIBC_2.1.2 2.1.2 + getsubopt@GLIBC_2.0 2.0 + gettext@GLIBC_2.0 2.0 + gettimeofday@GLIBC_2.0 2.0 + getttyent@GLIBC_2.0 2.0 + getttynam@GLIBC_2.0 2.0 + getuid@GLIBC_2.0 2.0 + getusershell@GLIBC_2.0 2.0 + getutent@GLIBC_2.0 2.0 + getutent_r@GLIBC_2.0 2.0 + getutid@GLIBC_2.0 2.0 + getutid_r@GLIBC_2.0 2.0 + getutline@GLIBC_2.0 2.0 + getutline_r@GLIBC_2.0 2.0 + getutmp@GLIBC_2.1.1 2.1.1 + getutmpx@GLIBC_2.1.1 2.1.1 + getutxent@GLIBC_2.1 2.1 + getutxid@GLIBC_2.1 2.1 + getutxline@GLIBC_2.1 2.1 + getw@GLIBC_2.0 2.0 + getwc@GLIBC_2.2 2.2 + getwc_unlocked@GLIBC_2.2 2.2 + getwchar@GLIBC_2.2 2.2 + getwchar_unlocked@GLIBC_2.2 2.2 + getwd@GLIBC_2.0 2.0 + getxattr@GLIBC_2.3 2.3 + glob64@GLIBC_2.1 2.1 + glob64@GLIBC_2.2 2.2 + glob@GLIBC_2.0 2.0 + glob_pattern_p@GLIBC_2.0 2.0 + globfree64@GLIBC_2.1 2.1 + globfree@GLIBC_2.0 2.0 + gmtime@GLIBC_2.0 2.0 + gmtime_r@GLIBC_2.0 2.0 + gnu_dev_major@GLIBC_2.3.3 2.3.3 + gnu_dev_makedev@GLIBC_2.3.3 2.3.3 + gnu_dev_minor@GLIBC_2.3.3 2.3.3 + gnu_get_libc_release@GLIBC_2.1 2.1 + gnu_get_libc_version@GLIBC_2.1 2.1 + grantpt@GLIBC_2.1 2.1 + group_member@GLIBC_2.0 2.0 + gsignal@GLIBC_2.0 2.0 + gtty@GLIBC_2.0 2.0 + h_errlist@GLIBC_2.0 2.0 + h_errno@GLIBC_PRIVATE 2.7 + h_nerr@GLIBC_2.0 2.0 + hasmntopt@GLIBC_2.0 2.0 + hcreate@GLIBC_2.0 2.0 + hcreate_r@GLIBC_2.0 2.0 + hdestroy@GLIBC_2.0 2.0 + hdestroy_r@GLIBC_2.0 2.0 + herror@GLIBC_2.0 2.0 + host2netname@GLIBC_2.1 2.1 + hsearch@GLIBC_2.0 2.0 + hsearch_r@GLIBC_2.0 2.0 + hstrerror@GLIBC_2.0 2.0 + htonl@GLIBC_2.0 2.0 + htons@GLIBC_2.0 2.0 + iconv@GLIBC_2.1 2.1 + iconv_close@GLIBC_2.1 2.1 + iconv_open@GLIBC_2.1 2.1 + if_freenameindex@GLIBC_2.1 2.1 + if_indextoname@GLIBC_2.1 2.1 + if_nameindex@GLIBC_2.1 2.1 + if_nametoindex@GLIBC_2.1 2.1 + imaxabs@GLIBC_2.1.1 2.1.1 + imaxdiv@GLIBC_2.1.1 2.1.1 + in6addr_any@GLIBC_2.1 2.1 + in6addr_loopback@GLIBC_2.1 2.1 + index@GLIBC_2.0 2.0 + inet6_opt_append@GLIBC_2.5 2.5 + inet6_opt_find@GLIBC_2.5 2.5 + inet6_opt_finish@GLIBC_2.5 2.5 + inet6_opt_get_val@GLIBC_2.5 2.5 + inet6_opt_init@GLIBC_2.5 2.5 + inet6_opt_next@GLIBC_2.5 2.5 + inet6_opt_set_val@GLIBC_2.5 2.5 + inet6_option_alloc@GLIBC_2.3.3 2.3.3 + inet6_option_append@GLIBC_2.3.3 2.3.3 + inet6_option_find@GLIBC_2.3.3 2.3.3 + inet6_option_init@GLIBC_2.3.3 2.3.3 + inet6_option_next@GLIBC_2.3.3 2.3.3 + inet6_option_space@GLIBC_2.3.3 2.3.3 + inet6_rth_add@GLIBC_2.5 2.5 + inet6_rth_getaddr@GLIBC_2.5 2.5 + inet6_rth_init@GLIBC_2.5 2.5 + inet6_rth_reverse@GLIBC_2.5 2.5 + inet6_rth_segments@GLIBC_2.5 2.5 + inet6_rth_space@GLIBC_2.5 2.5 + inet_addr@GLIBC_2.0 2.0 + inet_aton@GLIBC_2.0 2.0 + inet_lnaof@GLIBC_2.0 2.0 + inet_makeaddr@GLIBC_2.0 2.0 + inet_netof@GLIBC_2.0 2.0 + inet_network@GLIBC_2.0 2.0 + inet_nsap_addr@GLIBC_2.0 2.0 + inet_nsap_ntoa@GLIBC_2.0 2.0 + inet_ntoa@GLIBC_2.0 2.0 + inet_ntop@GLIBC_2.0 2.0 + inet_pton@GLIBC_2.0 2.0 + init_module@GLIBC_2.0 2.0 + initgroups@GLIBC_2.0 2.0 + initstate@GLIBC_2.0 2.0 + initstate_r@GLIBC_2.0 2.0 + innetgr@GLIBC_2.0 2.0 + inotify_add_watch@GLIBC_2.4 2.4 + inotify_init@GLIBC_2.4 2.4 + inotify_rm_watch@GLIBC_2.4 2.4 + insque@GLIBC_2.0 2.0 + ioctl@GLIBC_2.0 2.0 + ioperm@GLIBC_2.0 2.0 + iopl@GLIBC_2.0 2.0 + iruserok@GLIBC_2.0 2.0 + iruserok_af@GLIBC_2.2 2.2 + isalnum@GLIBC_2.0 2.0 + isalnum_l@GLIBC_2.3 2.3 + isalpha@GLIBC_2.0 2.0 + isalpha_l@GLIBC_2.3 2.3 + isascii@GLIBC_2.0 2.0 + isastream@GLIBC_2.1 2.1 + isatty@GLIBC_2.0 2.0 + isblank@GLIBC_2.0 2.0 + isblank_l@GLIBC_2.3 2.3 + iscntrl@GLIBC_2.0 2.0 + iscntrl_l@GLIBC_2.3 2.3 + isctype@GLIBC_2.3 2.3 + isdigit@GLIBC_2.0 2.0 + isdigit_l@GLIBC_2.3 2.3 + isfdtype@GLIBC_2.0 2.0 + isgraph@GLIBC_2.0 2.0 + isgraph_l@GLIBC_2.3 2.3 + isinf@GLIBC_2.0 2.0 + isinff@GLIBC_2.0 2.0 + isinfl@GLIBC_2.0 2.0 + islower@GLIBC_2.0 2.0 + islower_l@GLIBC_2.3 2.3 + isnan@GLIBC_2.0 2.0 + isnanf@GLIBC_2.0 2.0 + isnanl@GLIBC_2.0 2.0 + isprint@GLIBC_2.0 2.0 + isprint_l@GLIBC_2.3 2.3 + ispunct@GLIBC_2.0 2.0 + ispunct_l@GLIBC_2.3 2.3 + isspace@GLIBC_2.0 2.0 + isspace_l@GLIBC_2.3 2.3 + isupper@GLIBC_2.0 2.0 + isupper_l@GLIBC_2.3 2.3 + iswalnum@GLIBC_2.0 2.0 + iswalnum_l@GLIBC_2.3 2.3 + iswalpha@GLIBC_2.0 2.0 + iswalpha_l@GLIBC_2.3 2.3 + iswblank@GLIBC_2.1 2.1 + iswblank_l@GLIBC_2.3 2.3 + iswcntrl@GLIBC_2.0 2.0 + iswcntrl_l@GLIBC_2.3 2.3 + iswctype@GLIBC_2.0 2.0 + iswctype_l@GLIBC_2.3 2.3 + iswdigit@GLIBC_2.0 2.0 + iswdigit_l@GLIBC_2.3 2.3 + iswgraph@GLIBC_2.0 2.0 + iswgraph_l@GLIBC_2.3 2.3 + iswlower@GLIBC_2.0 2.0 + iswlower_l@GLIBC_2.3 2.3 + iswprint@GLIBC_2.0 2.0 + iswprint_l@GLIBC_2.3 2.3 + iswpunct@GLIBC_2.0 2.0 + iswpunct_l@GLIBC_2.3 2.3 + iswspace@GLIBC_2.0 2.0 + iswspace_l@GLIBC_2.3 2.3 + iswupper@GLIBC_2.0 2.0 + iswupper_l@GLIBC_2.3 2.3 + iswxdigit@GLIBC_2.0 2.0 + iswxdigit_l@GLIBC_2.3 2.3 + isxdigit@GLIBC_2.0 2.0 + isxdigit_l@GLIBC_2.3 2.3 + jrand48@GLIBC_2.0 2.0 + jrand48_r@GLIBC_2.0 2.0 + key_decryptsession@GLIBC_2.1 2.1 + key_decryptsession_pk@GLIBC_2.1 2.1 + key_encryptsession@GLIBC_2.1 2.1 + key_encryptsession_pk@GLIBC_2.1 2.1 + key_gendes@GLIBC_2.1 2.1 + key_get_conv@GLIBC_2.1 2.1 + key_secretkey_is_set@GLIBC_2.1 2.1 + key_setnet@GLIBC_2.1 2.1 + key_setsecret@GLIBC_2.1 2.1 + kill@GLIBC_2.0 2.0 + killpg@GLIBC_2.0 2.0 + klogctl@GLIBC_2.0 2.0 + l64a@GLIBC_2.0 2.0 + labs@GLIBC_2.0 2.0 + lchmod@GLIBC_2.3.2 2.3.2 + lchown@GLIBC_2.0 2.0 + lckpwdf@GLIBC_2.0 2.0 + lcong48@GLIBC_2.0 2.0 + lcong48_r@GLIBC_2.0 2.0 + ldexp@GLIBC_2.0 2.0 + ldexpf@GLIBC_2.0 2.0 + ldexpl@GLIBC_2.0 2.0 + ldiv@GLIBC_2.0 2.0 + lfind@GLIBC_2.0 2.0 + lgetxattr@GLIBC_2.3 2.3 + link@GLIBC_2.0 2.0 + linkat@GLIBC_2.4 2.4 + listen@GLIBC_2.0 2.0 + listxattr@GLIBC_2.3 2.3 + llabs@GLIBC_2.0 2.0 + lldiv@GLIBC_2.0 2.0 + llistxattr@GLIBC_2.3 2.3 + llseek@GLIBC_2.0 2.0 + loc1@GLIBC_2.0 2.0 + loc2@GLIBC_2.0 2.0 + localeconv@GLIBC_2.0 2.0 + localeconv@GLIBC_2.2 2.2 + localtime@GLIBC_2.0 2.0 + localtime_r@GLIBC_2.0 2.0 + lockf64@GLIBC_2.1 2.1 + lockf@GLIBC_2.0 2.0 + locs@GLIBC_2.0 2.0 + longjmp@GLIBC_2.0 2.0 + lrand48@GLIBC_2.0 2.0 + lrand48_r@GLIBC_2.0 2.0 + lremovexattr@GLIBC_2.3 2.3 + lsearch@GLIBC_2.0 2.0 + lseek64@GLIBC_2.1 2.1 + lseek@GLIBC_2.0 2.0 + lsetxattr@GLIBC_2.3 2.3 + lutimes@GLIBC_2.3 2.3 + madvise@GLIBC_2.0 2.0 + makecontext@GLIBC_2.1 2.1 + mallinfo@GLIBC_2.0 2.0 + malloc@GLIBC_2.0 2.0 + malloc_get_state@GLIBC_2.0 2.0 + malloc_set_state@GLIBC_2.0 2.0 + malloc_stats@GLIBC_2.0 2.0 + malloc_trim@GLIBC_2.0 2.0 + malloc_usable_size@GLIBC_2.0 2.0 + mallopt@GLIBC_2.0 2.0 + mallwatch@GLIBC_2.0 2.0 + mblen@GLIBC_2.0 2.0 + mbrlen@GLIBC_2.0 2.0 + mbrtowc@GLIBC_2.0 2.0 + mbsinit@GLIBC_2.0 2.0 + mbsnrtowcs@GLIBC_2.0 2.0 + mbsrtowcs@GLIBC_2.0 2.0 + mbstowcs@GLIBC_2.0 2.0 + mbtowc@GLIBC_2.0 2.0 + mcheck@GLIBC_2.0 2.0 + mcheck_check_all@GLIBC_2.2 2.2 + mcheck_pedantic@GLIBC_2.2 2.2 + mcount@GLIBC_2.0 2.0 + memalign@GLIBC_2.0 2.0 + memccpy@GLIBC_2.0 2.0 + memchr@GLIBC_2.0 2.0 + memcmp@GLIBC_2.0 2.0 + memcpy@GLIBC_2.0 2.0 + memfrob@GLIBC_2.0 2.0 + memmem@GLIBC_2.0 2.0 + memmove@GLIBC_2.0 2.0 + mempcpy@GLIBC_2.1 2.1 + memrchr@GLIBC_2.2 2.2 + memset@GLIBC_2.0 2.0 + mincore@GLIBC_2.2 2.2 + mkdir@GLIBC_2.0 2.0 + mkdirat@GLIBC_2.4 2.4 + mkdtemp@GLIBC_2.2 2.2 + mkfifo@GLIBC_2.0 2.0 + mkfifoat@GLIBC_2.4 2.4 + mkostemp64@GLIBC_2.7 2.7 + mkostemp@GLIBC_2.7 2.7 + mkstemp64@GLIBC_2.2 2.2 + mkstemp@GLIBC_2.0 2.0 + mktemp@GLIBC_2.0 2.0 + mktime@GLIBC_2.0 2.0 + mlock@GLIBC_2.0 2.0 + mlockall@GLIBC_2.0 2.0 + mmap64@GLIBC_2.1 2.1 + mmap@GLIBC_2.0 2.0 + modf@GLIBC_2.0 2.0 + modff@GLIBC_2.0 2.0 + modfl@GLIBC_2.0 2.0 + modify_ldt@GLIBC_2.1 2.1 + moncontrol@GLIBC_2.2 2.2 + monstartup@GLIBC_2.0 2.0 + mount@GLIBC_2.0 2.0 + mprobe@GLIBC_2.0 2.0 + mprotect@GLIBC_2.0 2.0 + mrand48@GLIBC_2.0 2.0 + mrand48_r@GLIBC_2.0 2.0 + mremap@GLIBC_2.0 2.0 + msgctl@GLIBC_2.0 2.0 + msgctl@GLIBC_2.2 2.2 + msgget@GLIBC_2.0 2.0 + msgrcv@GLIBC_2.0 2.0 + msgsnd@GLIBC_2.0 2.0 + msync@GLIBC_2.0 2.0 + mtrace@GLIBC_2.0 2.0 + munlock@GLIBC_2.0 2.0 + munlockall@GLIBC_2.0 2.0 + munmap@GLIBC_2.0 2.0 + muntrace@GLIBC_2.0 2.0 + nanosleep@GLIBC_2.0 2.0 + netname2host@GLIBC_2.1 2.1 + netname2user@GLIBC_2.1 2.1 + newlocale@GLIBC_2.3 2.3 + nfsservctl@GLIBC_2.0 2.0 + nftw64@GLIBC_2.1 2.1 + nftw64@GLIBC_2.3.3 2.3.3 + nftw@GLIBC_2.1 2.1 + nftw@GLIBC_2.3.3 2.3.3 + ngettext@GLIBC_2.2 2.2 + nice@GLIBC_2.0 2.0 + nl_langinfo@GLIBC_2.0 2.0 + nl_langinfo_l@GLIBC_2.3 2.3 + nrand48@GLIBC_2.0 2.0 + nrand48_r@GLIBC_2.0 2.0 + ntohl@GLIBC_2.0 2.0 + ntohs@GLIBC_2.0 2.0 + ntp_adjtime@GLIBC_2.1 2.1 + ntp_gettime@GLIBC_2.1 2.1 + obstack_alloc_failed_handler@GLIBC_2.0 2.0 + obstack_exit_failure@GLIBC_2.0 2.0 + obstack_free@GLIBC_2.0 2.0 + obstack_printf@GLIBC_2.0 2.0 + obstack_vprintf@GLIBC_2.0 2.0 + on_exit@GLIBC_2.0 2.0 + open64@GLIBC_2.1 2.1 + open@GLIBC_2.0 2.0 + open_memstream@GLIBC_2.0 2.0 + open_wmemstream@GLIBC_2.4 2.4 + openat64@GLIBC_2.4 2.4 + openat@GLIBC_2.4 2.4 + opendir@GLIBC_2.0 2.0 + openlog@GLIBC_2.0 2.0 + optarg@GLIBC_2.0 2.0 + opterr@GLIBC_2.0 2.0 + optind@GLIBC_2.0 2.0 + optopt@GLIBC_2.0 2.0 + parse_printf_format@GLIBC_2.0 2.0 + passwd2des@GLIBC_2.1 2.1 + pathconf@GLIBC_2.0 2.0 + pause@GLIBC_2.0 2.0 + pclose@GLIBC_2.0 2.0 + pclose@GLIBC_2.1 2.1 + perror@GLIBC_2.0 2.0 + personality@GLIBC_2.0 2.0 + pipe@GLIBC_2.0 2.0 + pivot_root@GLIBC_2.2.1 2.2.1 + pmap_getmaps@GLIBC_2.0 2.0 + pmap_getport@GLIBC_2.0 2.0 + pmap_rmtcall@GLIBC_2.0 2.0 + pmap_set@GLIBC_2.0 2.0 + pmap_unset@GLIBC_2.0 2.0 + poll@GLIBC_2.0 2.0 + popen@GLIBC_2.0 2.0 + popen@GLIBC_2.1 2.1 + posix_fadvise64@GLIBC_2.2 2.2 + posix_fadvise64@GLIBC_2.3.3 2.3.3 + posix_fadvise@GLIBC_2.2 2.2 + posix_fallocate64@GLIBC_2.2 2.2 + posix_fallocate64@GLIBC_2.3.3 2.3.3 + posix_fallocate@GLIBC_2.2 2.2 + posix_madvise@GLIBC_2.2 2.2 + posix_memalign@GLIBC_2.2 2.2 + posix_openpt@GLIBC_2.2.1 2.2.1 + posix_spawn@GLIBC_2.2 2.2 + posix_spawn_file_actions_addclose@GLIBC_2.2 2.2 + posix_spawn_file_actions_adddup2@GLIBC_2.2 2.2 + posix_spawn_file_actions_addopen@GLIBC_2.2 2.2 + posix_spawn_file_actions_destroy@GLIBC_2.2 2.2 + posix_spawn_file_actions_init@GLIBC_2.2 2.2 + posix_spawnattr_destroy@GLIBC_2.2 2.2 + posix_spawnattr_getflags@GLIBC_2.2 2.2 + posix_spawnattr_getpgroup@GLIBC_2.2 2.2 + posix_spawnattr_getschedparam@GLIBC_2.2 2.2 + posix_spawnattr_getschedpolicy@GLIBC_2.2 2.2 + posix_spawnattr_getsigdefault@GLIBC_2.2 2.2 + posix_spawnattr_getsigmask@GLIBC_2.2 2.2 + posix_spawnattr_init@GLIBC_2.2 2.2 + posix_spawnattr_setflags@GLIBC_2.2 2.2 + posix_spawnattr_setpgroup@GLIBC_2.2 2.2 + posix_spawnattr_setschedparam@GLIBC_2.2 2.2 + posix_spawnattr_setschedpolicy@GLIBC_2.2 2.2 + posix_spawnattr_setsigdefault@GLIBC_2.2 2.2 + posix_spawnattr_setsigmask@GLIBC_2.2 2.2 + posix_spawnp@GLIBC_2.2 2.2 + ppoll@GLIBC_2.4 2.4 + prctl@GLIBC_2.0 2.0 + pread64@GLIBC_2.1 2.1 + pread@GLIBC_2.1 2.1 + printf@GLIBC_2.0 2.0 + printf_size@GLIBC_2.1 2.1 + printf_size_info@GLIBC_2.1 2.1 + profil@GLIBC_2.0 2.0 + program_invocation_name@GLIBC_2.0 2.0 + program_invocation_short_name@GLIBC_2.0 2.0 + pselect@GLIBC_2.0 2.0 + psignal@GLIBC_2.0 2.0 + pthread_attr_destroy@GLIBC_2.0 2.0 + pthread_attr_getdetachstate@GLIBC_2.0 2.0 + pthread_attr_getinheritsched@GLIBC_2.0 2.0 + pthread_attr_getschedparam@GLIBC_2.0 2.0 + pthread_attr_getschedpolicy@GLIBC_2.0 2.0 + pthread_attr_getscope@GLIBC_2.0 2.0 + pthread_attr_init@GLIBC_2.0 2.0 + pthread_attr_init@GLIBC_2.1 2.1 + pthread_attr_setdetachstate@GLIBC_2.0 2.0 + pthread_attr_setinheritsched@GLIBC_2.0 2.0 + pthread_attr_setschedparam@GLIBC_2.0 2.0 + pthread_attr_setschedpolicy@GLIBC_2.0 2.0 + pthread_attr_setscope@GLIBC_2.0 2.0 + pthread_cond_broadcast@GLIBC_2.0 2.0 + pthread_cond_broadcast@GLIBC_2.3.2 2.3.2 + pthread_cond_destroy@GLIBC_2.0 2.0 + pthread_cond_destroy@GLIBC_2.3.2 2.3.2 + pthread_cond_init@GLIBC_2.0 2.0 + pthread_cond_init@GLIBC_2.3.2 2.3.2 + pthread_cond_signal@GLIBC_2.0 2.0 + pthread_cond_signal@GLIBC_2.3.2 2.3.2 + pthread_cond_timedwait@GLIBC_2.0 2.0 + pthread_cond_timedwait@GLIBC_2.3.2 2.3.2 + pthread_cond_wait@GLIBC_2.0 2.0 + pthread_cond_wait@GLIBC_2.3.2 2.3.2 + pthread_condattr_destroy@GLIBC_2.0 2.0 + pthread_condattr_init@GLIBC_2.0 2.0 + pthread_equal@GLIBC_2.0 2.0 + pthread_exit@GLIBC_2.0 2.0 + pthread_getschedparam@GLIBC_2.0 2.0 + pthread_mutex_destroy@GLIBC_2.0 2.0 + pthread_mutex_init@GLIBC_2.0 2.0 + pthread_mutex_lock@GLIBC_2.0 2.0 + pthread_mutex_unlock@GLIBC_2.0 2.0 + pthread_self@GLIBC_2.0 2.0 + pthread_setcancelstate@GLIBC_2.0 2.0 + pthread_setcanceltype@GLIBC_2.0 2.0 + pthread_setschedparam@GLIBC_2.0 2.0 + ptrace@GLIBC_2.0 2.0 + ptsname@GLIBC_2.1 2.1 + ptsname_r@GLIBC_2.1 2.1 + putc@GLIBC_2.0 2.0 + putc_unlocked@GLIBC_2.0 2.0 + putchar@GLIBC_2.0 2.0 + putchar_unlocked@GLIBC_2.0 2.0 + putenv@GLIBC_2.0 2.0 + putgrent@GLIBC_2.1 2.1 + putmsg@GLIBC_2.1 2.1 + putpmsg@GLIBC_2.1 2.1 + putpwent@GLIBC_2.0 2.0 + puts@GLIBC_2.0 2.0 + putspent@GLIBC_2.0 2.0 + pututline@GLIBC_2.0 2.0 + pututxline@GLIBC_2.1 2.1 + putw@GLIBC_2.0 2.0 + putwc@GLIBC_2.2 2.2 + putwc_unlocked@GLIBC_2.2 2.2 + putwchar@GLIBC_2.2 2.2 + putwchar_unlocked@GLIBC_2.2 2.2 + pvalloc@GLIBC_2.0 2.0 + pwrite64@GLIBC_2.1 2.1 + pwrite@GLIBC_2.1 2.1 + qecvt@GLIBC_2.0 2.0 + qecvt_r@GLIBC_2.0 2.0 + qfcvt@GLIBC_2.0 2.0 + qfcvt_r@GLIBC_2.0 2.0 + qgcvt@GLIBC_2.0 2.0 + qsort@GLIBC_2.0 2.0 + query_module@GLIBC_2.0 2.0 + quotactl@GLIBC_2.0 2.0 + raise@GLIBC_2.0 2.0 + rand@GLIBC_2.0 2.0 + rand_r@GLIBC_2.0 2.0 + random@GLIBC_2.0 2.0 + random_r@GLIBC_2.0 2.0 + rawmemchr@GLIBC_2.1 2.1 + rcmd@GLIBC_2.0 2.0 + rcmd_af@GLIBC_2.2 2.2 + re_comp@GLIBC_2.0 2.0 + re_compile_fastmap@GLIBC_2.0 2.0 + re_compile_pattern@GLIBC_2.0 2.0 + re_exec@GLIBC_2.0 2.0 + re_match@GLIBC_2.0 2.0 + re_match_2@GLIBC_2.0 2.0 + re_max_failures@GLIBC_2.0 2.0 + re_search@GLIBC_2.0 2.0 + re_search_2@GLIBC_2.0 2.0 + re_set_registers@GLIBC_2.0 2.0 + re_set_syntax@GLIBC_2.0 2.0 + re_syntax_options@GLIBC_2.0 2.0 + read@GLIBC_2.0 2.0 + readahead@GLIBC_2.3 2.3 + readdir64@GLIBC_2.1 2.1 + readdir64@GLIBC_2.2 2.2 + readdir64_r@GLIBC_2.1 2.1 + readdir64_r@GLIBC_2.2 2.2 + readdir@GLIBC_2.0 2.0 + readdir_r@GLIBC_2.0 2.0 + readlink@GLIBC_2.0 2.0 + readlinkat@GLIBC_2.4 2.4 + readv@GLIBC_2.0 2.0 + realloc@GLIBC_2.0 2.0 + realpath@GLIBC_2.0 2.0 + realpath@GLIBC_2.3 2.3 + reboot@GLIBC_2.0 2.0 + recv@GLIBC_2.0 2.0 + recvfrom@GLIBC_2.0 2.0 + recvmsg@GLIBC_2.0 2.0 + regcomp@GLIBC_2.0 2.0 + regerror@GLIBC_2.0 2.0 + regexec@GLIBC_2.0 2.0 + regexec@GLIBC_2.3.4 2.3.4 + regfree@GLIBC_2.0 2.0 + register_printf_function@GLIBC_2.0 2.0 + registerrpc@GLIBC_2.0 2.0 + remap_file_pages@GLIBC_2.3.3 2.3.3 + remove@GLIBC_2.0 2.0 + removexattr@GLIBC_2.3 2.3 + remque@GLIBC_2.0 2.0 + rename@GLIBC_2.0 2.0 + renameat@GLIBC_2.4 2.4 + res_init@GLIBC_2.0 2.0 + revoke@GLIBC_2.0 2.0 + rewind@GLIBC_2.0 2.0 + rewinddir@GLIBC_2.0 2.0 + rexec@GLIBC_2.0 2.0 + rexec_af@GLIBC_2.2 2.2 + rexecoptions@GLIBC_2.0 2.0 + rindex@GLIBC_2.0 2.0 + rmdir@GLIBC_2.0 2.0 + rpc_createerr@GLIBC_2.0 2.0 + rpmatch@GLIBC_2.0 2.0 + rresvport@GLIBC_2.0 2.0 + rresvport_af@GLIBC_2.2 2.2 + rtime@GLIBC_2.1 2.1 + ruserok@GLIBC_2.0 2.0 + ruserok_af@GLIBC_2.2 2.2 + ruserpass@GLIBC_2.0 2.0 + sbrk@GLIBC_2.0 2.0 + scalbln@GLIBC_2.1 2.1 + scalblnf@GLIBC_2.1 2.1 + scalblnl@GLIBC_2.1 2.1 + scalbn@GLIBC_2.0 2.0 + scalbnf@GLIBC_2.0 2.0 + scalbnl@GLIBC_2.0 2.0 + scandir64@GLIBC_2.1 2.1 + scandir64@GLIBC_2.2 2.2 + scandir@GLIBC_2.0 2.0 + scanf@GLIBC_2.0 2.0 + sched_get_priority_max@GLIBC_2.0 2.0 + sched_get_priority_min@GLIBC_2.0 2.0 + sched_getaffinity@GLIBC_2.3.3 2.3.3 + sched_getaffinity@GLIBC_2.3.4 2.3.4 + sched_getcpu@GLIBC_2.6 2.6 + sched_getparam@GLIBC_2.0 2.0 + sched_getscheduler@GLIBC_2.0 2.0 + sched_rr_get_interval@GLIBC_2.0 2.0 + sched_setaffinity@GLIBC_2.3.3 2.3.3 + sched_setaffinity@GLIBC_2.3.4 2.3.4 + sched_setparam@GLIBC_2.0 2.0 + sched_setscheduler@GLIBC_2.0 2.0 + sched_yield@GLIBC_2.0 2.0 + seed48@GLIBC_2.0 2.0 + seed48_r@GLIBC_2.0 2.0 + seekdir@GLIBC_2.0 2.0 + select@GLIBC_2.0 2.0 + semctl@GLIBC_2.0 2.0 + semctl@GLIBC_2.2 2.2 + semget@GLIBC_2.0 2.0 + semop@GLIBC_2.0 2.0 + semtimedop@GLIBC_2.3.3 2.3.3 + send@GLIBC_2.0 2.0 + sendfile64@GLIBC_2.3 2.3 + sendfile@GLIBC_2.1 2.1 + sendmsg@GLIBC_2.0 2.0 + sendto@GLIBC_2.0 2.0 + setaliasent@GLIBC_2.0 2.0 + setbuf@GLIBC_2.0 2.0 + setbuffer@GLIBC_2.0 2.0 + setcontext@GLIBC_2.0 2.0 + setdomainname@GLIBC_2.0 2.0 + setegid@GLIBC_2.0 2.0 + setenv@GLIBC_2.0 2.0 + seteuid@GLIBC_2.0 2.0 + setfsent@GLIBC_2.0 2.0 + setfsgid@GLIBC_2.0 2.0 + setfsuid@GLIBC_2.0 2.0 + setgid@GLIBC_2.0 2.0 + setgrent@GLIBC_2.0 2.0 + setgroups@GLIBC_2.0 2.0 + sethostent@GLIBC_2.0 2.0 + sethostid@GLIBC_2.0 2.0 + sethostname@GLIBC_2.0 2.0 + setipv4sourcefilter@GLIBC_2.3.4 2.3.4 + setitimer@GLIBC_2.0 2.0 + setjmp@GLIBC_2.0 2.0 + setlinebuf@GLIBC_2.0 2.0 + setlocale@GLIBC_2.0 2.0 + setlogin@GLIBC_2.0 2.0 + setlogmask@GLIBC_2.0 2.0 + setmntent@GLIBC_2.0 2.0 + setnetent@GLIBC_2.0 2.0 + setnetgrent@GLIBC_2.0 2.0 + setpgid@GLIBC_2.0 2.0 + setpgrp@GLIBC_2.0 2.0 + setpriority@GLIBC_2.0 2.0 + setprotoent@GLIBC_2.0 2.0 + setpwent@GLIBC_2.0 2.0 + setregid@GLIBC_2.0 2.0 + setresgid@GLIBC_2.0 2.0 + setresuid@GLIBC_2.0 2.0 + setreuid@GLIBC_2.0 2.0 + setrlimit64@GLIBC_2.1 2.1 + setrlimit@GLIBC_2.0 2.0 + setrlimit@GLIBC_2.2 2.2 + setrpcent@GLIBC_2.0 2.0 + setservent@GLIBC_2.0 2.0 + setsid@GLIBC_2.0 2.0 + setsockopt@GLIBC_2.0 2.0 + setsourcefilter@GLIBC_2.3.4 2.3.4 + setspent@GLIBC_2.0 2.0 + setstate@GLIBC_2.0 2.0 + setstate_r@GLIBC_2.0 2.0 + settimeofday@GLIBC_2.0 2.0 + setttyent@GLIBC_2.0 2.0 + setuid@GLIBC_2.0 2.0 + setusershell@GLIBC_2.0 2.0 + setutent@GLIBC_2.0 2.0 + setutxent@GLIBC_2.1 2.1 + setvbuf@GLIBC_2.0 2.0 + setxattr@GLIBC_2.3 2.3 + sgetspent@GLIBC_2.0 2.0 + sgetspent_r@GLIBC_2.0 2.0 + shmat@GLIBC_2.0 2.0 + shmctl@GLIBC_2.0 2.0 + shmctl@GLIBC_2.2 2.2 + shmdt@GLIBC_2.0 2.0 + shmget@GLIBC_2.0 2.0 + shutdown@GLIBC_2.0 2.0 + sigaction@GLIBC_2.0 2.0 + sigaddset@GLIBC_2.0 2.0 + sigaltstack@GLIBC_2.0 2.0 + sigandset@GLIBC_2.0 2.0 + sigblock@GLIBC_2.0 2.0 + sigdelset@GLIBC_2.0 2.0 + sigemptyset@GLIBC_2.0 2.0 + sigfillset@GLIBC_2.0 2.0 + siggetmask@GLIBC_2.0 2.0 + sighold@GLIBC_2.1 2.1 + sigignore@GLIBC_2.1 2.1 + siginterrupt@GLIBC_2.0 2.0 + sigisemptyset@GLIBC_2.0 2.0 + sigismember@GLIBC_2.0 2.0 + siglongjmp@GLIBC_2.0 2.0 + signal@GLIBC_2.0 2.0 + signalfd@GLIBC_2.7 2.7 + sigorset@GLIBC_2.0 2.0 + sigpause@GLIBC_2.0 2.0 + sigpending@GLIBC_2.0 2.0 + sigprocmask@GLIBC_2.0 2.0 + sigqueue@GLIBC_2.1 2.1 + sigrelse@GLIBC_2.1 2.1 + sigreturn@GLIBC_2.0 2.0 + sigset@GLIBC_2.1 2.1 + sigsetmask@GLIBC_2.0 2.0 + sigstack@GLIBC_2.0 2.0 + sigsuspend@GLIBC_2.0 2.0 + sigtimedwait@GLIBC_2.1 2.1 + sigvec@GLIBC_2.0 2.0 + sigwait@GLIBC_2.0 2.0 + sigwaitinfo@GLIBC_2.1 2.1 + sleep@GLIBC_2.0 2.0 + snprintf@GLIBC_2.0 2.0 + sockatmark@GLIBC_2.2.4 2.2.4 + socket@GLIBC_2.0 2.0 + socketpair@GLIBC_2.0 2.0 + splice@GLIBC_2.5 2.5 + sprintf@GLIBC_2.0 2.0 + sprofil@GLIBC_2.2.3 2.2.3 + srand48@GLIBC_2.0 2.0 + srand48_r@GLIBC_2.0 2.0 + srand@GLIBC_2.0 2.0 + srandom@GLIBC_2.0 2.0 + srandom_r@GLIBC_2.0 2.0 + sscanf@GLIBC_2.0 2.0 + ssignal@GLIBC_2.0 2.0 + sstk@GLIBC_2.0 2.0 + statfs64@GLIBC_2.1 2.1 + statfs@GLIBC_2.0 2.0 + statvfs64@GLIBC_2.1 2.1 + statvfs@GLIBC_2.1 2.1 + stderr@GLIBC_2.0 2.0 + stdin@GLIBC_2.0 2.0 + stdout@GLIBC_2.0 2.0 + step@GLIBC_2.0 2.0 + stime@GLIBC_2.0 2.0 + stpcpy@GLIBC_2.0 2.0 + stpncpy@GLIBC_2.0 2.0 + strcasecmp@GLIBC_2.0 2.0 + strcasecmp_l@GLIBC_2.3 2.3 + strcasestr@GLIBC_2.1 2.1 + strcat@GLIBC_2.0 2.0 + strchr@GLIBC_2.0 2.0 + strchrnul@GLIBC_2.1.1 2.1.1 + strcmp@GLIBC_2.0 2.0 + strcoll@GLIBC_2.0 2.0 + strcoll_l@GLIBC_2.3 2.3 + strcpy@GLIBC_2.0 2.0 + strcspn@GLIBC_2.0 2.0 + strdup@GLIBC_2.0 2.0 + strerror@GLIBC_2.0 2.0 + strerror_l@GLIBC_2.6 2.6 + strerror_r@GLIBC_2.0 2.0 + strfmon@GLIBC_2.0 2.0 + strfmon_l@GLIBC_2.3 2.3 + strfry@GLIBC_2.0 2.0 + strftime@GLIBC_2.0 2.0 + strftime_l@GLIBC_2.3 2.3 + strlen@GLIBC_2.0 2.0 + strncasecmp@GLIBC_2.0 2.0 + strncasecmp_l@GLIBC_2.3 2.3 + strncat@GLIBC_2.0 2.0 + strncmp@GLIBC_2.0 2.0 + strncpy@GLIBC_2.0 2.0 + strndup@GLIBC_2.0 2.0 + strnlen@GLIBC_2.0 2.0 + strpbrk@GLIBC_2.0 2.0 + strptime@GLIBC_2.0 2.0 + strptime_l@GLIBC_2.3.2 2.3.2 + strrchr@GLIBC_2.0 2.0 + strsep@GLIBC_2.0 2.0 + strsignal@GLIBC_2.0 2.0 + strspn@GLIBC_2.0 2.0 + strstr@GLIBC_2.0 2.0 + strtod@GLIBC_2.0 2.0 + strtod_l@GLIBC_2.3 2.3 + strtof@GLIBC_2.0 2.0 + strtof_l@GLIBC_2.3 2.3 + strtoimax@GLIBC_2.1 2.1 + strtok@GLIBC_2.0 2.0 + strtok_r@GLIBC_2.0 2.0 + strtol@GLIBC_2.0 2.0 + strtol_l@GLIBC_2.3 2.3 + strtold@GLIBC_2.0 2.0 + strtold_l@GLIBC_2.3 2.3 + strtoll@GLIBC_2.0 2.0 + strtoll_l@GLIBC_2.3 2.3 + strtoq@GLIBC_2.0 2.0 + strtoul@GLIBC_2.0 2.0 + strtoul_l@GLIBC_2.3 2.3 + strtoull@GLIBC_2.0 2.0 + strtoull_l@GLIBC_2.3 2.3 + strtoumax@GLIBC_2.1 2.1 + strtouq@GLIBC_2.0 2.0 + strverscmp@GLIBC_2.1 2.1 + strxfrm@GLIBC_2.0 2.0 + strxfrm_l@GLIBC_2.3 2.3 + stty@GLIBC_2.0 2.0 + svc_exit@GLIBC_2.0 2.0 + svc_fdset@GLIBC_2.0 2.0 + svc_getreq@GLIBC_2.0 2.0 + svc_getreq_common@GLIBC_2.2 2.2 + svc_getreq_poll@GLIBC_2.2 2.2 + svc_getreqset@GLIBC_2.0 2.0 + svc_max_pollfd@GLIBC_2.2 2.2 + svc_pollfd@GLIBC_2.2 2.2 + svc_register@GLIBC_2.0 2.0 + svc_run@GLIBC_2.0 2.0 + svc_sendreply@GLIBC_2.0 2.0 + svc_unregister@GLIBC_2.0 2.0 + svcauthdes_stats@GLIBC_2.0 2.0 + svcerr_auth@GLIBC_2.0 2.0 + svcerr_decode@GLIBC_2.0 2.0 + svcerr_noproc@GLIBC_2.0 2.0 + svcerr_noprog@GLIBC_2.0 2.0 + svcerr_progvers@GLIBC_2.0 2.0 + svcerr_systemerr@GLIBC_2.0 2.0 + svcerr_weakauth@GLIBC_2.0 2.0 + svcfd_create@GLIBC_2.0 2.0 + svcraw_create@GLIBC_2.0 2.0 + svctcp_create@GLIBC_2.0 2.0 + svcudp_bufcreate@GLIBC_2.0 2.0 + svcudp_create@GLIBC_2.0 2.0 + svcudp_enablecache@GLIBC_2.0 2.0 + svcunix_create@GLIBC_2.1 2.1 + svcunixfd_create@GLIBC_2.1 2.1 + swab@GLIBC_2.0 2.0 + swapcontext@GLIBC_2.1 2.1 + swapoff@GLIBC_2.0 2.0 + swapon@GLIBC_2.0 2.0 + swprintf@GLIBC_2.2 2.2 + swscanf@GLIBC_2.2 2.2 + symlink@GLIBC_2.0 2.0 + symlinkat@GLIBC_2.4 2.4 + sync@GLIBC_2.0 2.0 + sync_file_range@GLIBC_2.6 2.6 + sys_errlist@GLIBC_2.0 2.0 + sys_errlist@GLIBC_2.1 2.1 + sys_errlist@GLIBC_2.3 2.3 + sys_errlist@GLIBC_2.4 2.4 + sys_nerr@GLIBC_2.0 2.0 + sys_nerr@GLIBC_2.1 2.1 + sys_nerr@GLIBC_2.3 2.3 + sys_nerr@GLIBC_2.4 2.4 + sys_sigabbrev@GLIBC_2.0 2.0 + sys_sigabbrev@GLIBC_2.1 2.1 + sys_sigabbrev@GLIBC_2.3.3 2.3.3 + sys_siglist@GLIBC_2.0 2.0 + sys_siglist@GLIBC_2.1 2.1 + sys_siglist@GLIBC_2.3.3 2.3.3 + syscall@GLIBC_2.0 2.0 + sysconf@GLIBC_2.0 2.0 + sysctl@GLIBC_2.0 2.0 + sysinfo@GLIBC_2.0 2.0 + syslog@GLIBC_2.0 2.0 + system@GLIBC_2.0 2.0 + sysv_signal@GLIBC_2.1 2.1 + tcdrain@GLIBC_2.0 2.0 + tcflow@GLIBC_2.0 2.0 + tcflush@GLIBC_2.0 2.0 + tcgetattr@GLIBC_2.0 2.0 + tcgetpgrp@GLIBC_2.0 2.0 + tcgetsid@GLIBC_2.1 2.1 + tcsendbreak@GLIBC_2.0 2.0 + tcsetattr@GLIBC_2.0 2.0 + tcsetpgrp@GLIBC_2.0 2.0 + tdelete@GLIBC_2.0 2.0 + tdestroy@GLIBC_2.1 2.1 + tee@GLIBC_2.5 2.5 + telldir@GLIBC_2.0 2.0 + tempnam@GLIBC_2.0 2.0 + textdomain@GLIBC_2.0 2.0 + tfind@GLIBC_2.0 2.0 + time@GLIBC_2.0 2.0 + timegm@GLIBC_2.0 2.0 + timelocal@GLIBC_2.0 2.0 + times@GLIBC_2.0 2.0 + timezone@GLIBC_2.0 2.0 + tmpfile64@GLIBC_2.1 2.1 + tmpfile@GLIBC_2.0 2.0 + tmpfile@GLIBC_2.1 2.1 + tmpnam@GLIBC_2.0 2.0 + tmpnam_r@GLIBC_2.0 2.0 + toascii@GLIBC_2.0 2.0 + tolower@GLIBC_2.0 2.0 + tolower_l@GLIBC_2.3 2.3 + toupper@GLIBC_2.0 2.0 + toupper_l@GLIBC_2.3 2.3 + towctrans@GLIBC_2.0 2.0 + towctrans_l@GLIBC_2.3 2.3 + towlower@GLIBC_2.0 2.0 + towlower_l@GLIBC_2.3 2.3 + towupper@GLIBC_2.0 2.0 + towupper_l@GLIBC_2.3 2.3 + tr_break@GLIBC_2.0 2.0 + truncate64@GLIBC_2.1 2.1 + truncate@GLIBC_2.0 2.0 + tsearch@GLIBC_2.0 2.0 + ttyname@GLIBC_2.0 2.0 + ttyname_r@GLIBC_2.0 2.0 + ttyslot@GLIBC_2.0 2.0 + twalk@GLIBC_2.0 2.0 + tzname@GLIBC_2.0 2.0 + tzset@GLIBC_2.0 2.0 + ualarm@GLIBC_2.0 2.0 + ulckpwdf@GLIBC_2.0 2.0 + ulimit@GLIBC_2.0 2.0 + umask@GLIBC_2.0 2.0 + umount2@GLIBC_2.1 2.1 + umount@GLIBC_2.0 2.0 + uname@GLIBC_2.0 2.0 + ungetc@GLIBC_2.0 2.0 + ungetwc@GLIBC_2.2 2.2 + unlink@GLIBC_2.0 2.0 + unlinkat@GLIBC_2.4 2.4 + unlockpt@GLIBC_2.1 2.1 + unsetenv@GLIBC_2.0 2.0 + unshare@GLIBC_2.4 2.4 + updwtmp@GLIBC_2.0 2.0 + updwtmpx@GLIBC_2.1 2.1 + uselib@GLIBC_2.0 2.0 + uselocale@GLIBC_2.3 2.3 + user2netname@GLIBC_2.1 2.1 + usleep@GLIBC_2.0 2.0 + ustat@GLIBC_2.0 2.0 + utime@GLIBC_2.0 2.0 + utimensat@GLIBC_2.6 2.6 + utimes@GLIBC_2.0 2.0 + utmpname@GLIBC_2.0 2.0 + utmpxname@GLIBC_2.1 2.1 + valloc@GLIBC_2.0 2.0 + vasprintf@GLIBC_2.0 2.0 + vdprintf@GLIBC_2.0 2.0 + verr@GLIBC_2.0 2.0 + verrx@GLIBC_2.0 2.0 + versionsort64@GLIBC_2.1 2.1 + versionsort64@GLIBC_2.2 2.2 + versionsort@GLIBC_2.1 2.1 + vfork@GLIBC_2.0 2.0 + vfprintf@GLIBC_2.0 2.0 + vfscanf@GLIBC_2.0 2.0 + vfwprintf@GLIBC_2.2 2.2 + vfwscanf@GLIBC_2.2 2.2 + vhangup@GLIBC_2.0 2.0 + vlimit@GLIBC_2.0 2.0 + vm86@GLIBC_2.0 2.0 + vm86@GLIBC_2.3.4 2.3.4 + vmsplice@GLIBC_2.5 2.5 + vprintf@GLIBC_2.0 2.0 + vscanf@GLIBC_2.0 2.0 + vsnprintf@GLIBC_2.0 2.0 + vsprintf@GLIBC_2.0 2.0 + vsscanf@GLIBC_2.0 2.0 + vswprintf@GLIBC_2.2 2.2 + vswscanf@GLIBC_2.2 2.2 + vsyslog@GLIBC_2.0 2.0 + vtimes@GLIBC_2.0 2.0 + vwarn@GLIBC_2.0 2.0 + vwarnx@GLIBC_2.0 2.0 + vwprintf@GLIBC_2.2 2.2 + vwscanf@GLIBC_2.2 2.2 + wait3@GLIBC_2.0 2.0 + wait4@GLIBC_2.0 2.0 + wait@GLIBC_2.0 2.0 + waitid@GLIBC_2.1 2.1 + waitpid@GLIBC_2.0 2.0 + warn@GLIBC_2.0 2.0 + warnx@GLIBC_2.0 2.0 + wcpcpy@GLIBC_2.0 2.0 + wcpncpy@GLIBC_2.0 2.0 + wcrtomb@GLIBC_2.0 2.0 + wcscasecmp@GLIBC_2.1 2.1 + wcscasecmp_l@GLIBC_2.3 2.3 + wcscat@GLIBC_2.0 2.0 + wcschr@GLIBC_2.0 2.0 + wcschrnul@GLIBC_2.2 2.2 + wcscmp@GLIBC_2.0 2.0 + wcscoll@GLIBC_2.0 2.0 + wcscoll_l@GLIBC_2.3 2.3 + wcscpy@GLIBC_2.0 2.0 + wcscspn@GLIBC_2.0 2.0 + wcsdup@GLIBC_2.0 2.0 + wcsftime@GLIBC_2.2 2.2 + wcsftime_l@GLIBC_2.3 2.3 + wcslen@GLIBC_2.0 2.0 + wcsncasecmp@GLIBC_2.1 2.1 + wcsncasecmp_l@GLIBC_2.3 2.3 + wcsncat@GLIBC_2.0 2.0 + wcsncmp@GLIBC_2.0 2.0 + wcsncpy@GLIBC_2.0 2.0 + wcsnlen@GLIBC_2.1 2.1 + wcsnrtombs@GLIBC_2.0 2.0 + wcspbrk@GLIBC_2.0 2.0 + wcsrchr@GLIBC_2.0 2.0 + wcsrtombs@GLIBC_2.0 2.0 + wcsspn@GLIBC_2.0 2.0 + wcsstr@GLIBC_2.0 2.0 + wcstod@GLIBC_2.0 2.0 + wcstod_l@GLIBC_2.3 2.3 + wcstof@GLIBC_2.0 2.0 + wcstof_l@GLIBC_2.3 2.3 + wcstoimax@GLIBC_2.1 2.1 + wcstok@GLIBC_2.0 2.0 + wcstol@GLIBC_2.0 2.0 + wcstol_l@GLIBC_2.3 2.3 + wcstold@GLIBC_2.0 2.0 + wcstold_l@GLIBC_2.3 2.3 + wcstoll@GLIBC_2.1 2.1 + wcstoll_l@GLIBC_2.3 2.3 + wcstombs@GLIBC_2.0 2.0 + wcstoq@GLIBC_2.0 2.0 + wcstoul@GLIBC_2.0 2.0 + wcstoul_l@GLIBC_2.3 2.3 + wcstoull@GLIBC_2.1 2.1 + wcstoull_l@GLIBC_2.3 2.3 + wcstoumax@GLIBC_2.1 2.1 + wcstouq@GLIBC_2.0 2.0 + wcswcs@GLIBC_2.1 2.1 + wcswidth@GLIBC_2.0 2.0 + wcsxfrm@GLIBC_2.0 2.0 + wcsxfrm_l@GLIBC_2.3 2.3 + wctob@GLIBC_2.0 2.0 + wctomb@GLIBC_2.0 2.0 + wctrans@GLIBC_2.0 2.0 + wctrans_l@GLIBC_2.3 2.3 + wctype@GLIBC_2.0 2.0 + wctype_l@GLIBC_2.3 2.3 + wcwidth@GLIBC_2.0 2.0 + wmemchr@GLIBC_2.0 2.0 + wmemcmp@GLIBC_2.0 2.0 + wmemcpy@GLIBC_2.0 2.0 + wmemmove@GLIBC_2.0 2.0 + wmempcpy@GLIBC_2.2 2.2 + wmemset@GLIBC_2.0 2.0 + wordexp@GLIBC_2.1 2.1 + wordfree@GLIBC_2.1 2.1 + wprintf@GLIBC_2.2 2.2 + write@GLIBC_2.0 2.0 + writev@GLIBC_2.0 2.0 + wscanf@GLIBC_2.2 2.2 + xdecrypt@GLIBC_2.1 2.1 + xdr_accepted_reply@GLIBC_2.0 2.0 + xdr_array@GLIBC_2.0 2.0 + xdr_authdes_cred@GLIBC_2.1 2.1 + xdr_authdes_verf@GLIBC_2.1 2.1 + xdr_authunix_parms@GLIBC_2.0 2.0 + xdr_bool@GLIBC_2.0 2.0 + xdr_bytes@GLIBC_2.0 2.0 + xdr_callhdr@GLIBC_2.0 2.0 + xdr_callmsg@GLIBC_2.0 2.0 + xdr_char@GLIBC_2.0 2.0 + xdr_cryptkeyarg2@GLIBC_2.0 2.0 + xdr_cryptkeyarg@GLIBC_2.0 2.0 + xdr_cryptkeyres@GLIBC_2.0 2.0 + xdr_des_block@GLIBC_2.0 2.0 + xdr_double@GLIBC_2.0 2.0 + xdr_enum@GLIBC_2.0 2.0 + xdr_float@GLIBC_2.0 2.0 + xdr_free@GLIBC_2.0 2.0 + xdr_getcredres@GLIBC_2.1 2.1 + xdr_hyper@GLIBC_2.1.1 2.1.1 + xdr_int16_t@GLIBC_2.1 2.1 + xdr_int32_t@GLIBC_2.1 2.1 + xdr_int64_t@GLIBC_2.1.1 2.1.1 + xdr_int8_t@GLIBC_2.1 2.1 + xdr_int@GLIBC_2.0 2.0 + xdr_key_netstarg@GLIBC_2.0 2.0 + xdr_key_netstres@GLIBC_2.0 2.0 + xdr_keybuf@GLIBC_2.0 2.0 + xdr_keystatus@GLIBC_2.0 2.0 + xdr_long@GLIBC_2.0 2.0 + xdr_longlong_t@GLIBC_2.1.1 2.1.1 + xdr_netnamestr@GLIBC_2.1 2.1 + xdr_netobj@GLIBC_2.0 2.0 + xdr_opaque@GLIBC_2.0 2.0 + xdr_opaque_auth@GLIBC_2.0 2.0 + xdr_pmap@GLIBC_2.0 2.0 + xdr_pmaplist@GLIBC_2.0 2.0 + xdr_pointer@GLIBC_2.0 2.0 + xdr_quad_t@GLIBC_2.3.4 2.3.4 + xdr_reference@GLIBC_2.0 2.0 + xdr_rejected_reply@GLIBC_2.0 2.0 + xdr_replymsg@GLIBC_2.0 2.0 + xdr_rmtcall_args@GLIBC_2.0 2.0 + xdr_rmtcallres@GLIBC_2.0 2.0 + xdr_short@GLIBC_2.0 2.0 + xdr_sizeof@GLIBC_2.1 2.1 + xdr_string@GLIBC_2.0 2.0 + xdr_u_char@GLIBC_2.0 2.0 + xdr_u_hyper@GLIBC_2.1.1 2.1.1 + xdr_u_int@GLIBC_2.0 2.0 + xdr_u_long@GLIBC_2.0 2.0 + xdr_u_longlong_t@GLIBC_2.1.1 2.1.1 + xdr_u_quad_t@GLIBC_2.3.4 2.3.4 + xdr_u_short@GLIBC_2.0 2.0 + xdr_uint16_t@GLIBC_2.1 2.1 + xdr_uint32_t@GLIBC_2.1 2.1 + xdr_uint64_t@GLIBC_2.1.1 2.1.1 + xdr_uint8_t@GLIBC_2.1 2.1 + xdr_union@GLIBC_2.0 2.0 + xdr_unixcred@GLIBC_2.1 2.1 + xdr_vector@GLIBC_2.0 2.0 + xdr_void@GLIBC_2.0 2.0 + xdr_wrapstring@GLIBC_2.0 2.0 + xdrmem_create@GLIBC_2.0 2.0 + xdrrec_create@GLIBC_2.0 2.0 + xdrrec_endofrecord@GLIBC_2.0 2.0 + xdrrec_eof@GLIBC_2.0 2.0 + xdrrec_skiprecord@GLIBC_2.0 2.0 + xdrstdio_create@GLIBC_2.0 2.0 + xencrypt@GLIBC_2.0 2.0 + xprt_register@GLIBC_2.0 2.0 + xprt_unregister@GLIBC_2.0 2.0 +libcidn.so.1 libc6-i386 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + idna_to_ascii_lz@GLIBC_PRIVATE 2.7 + idna_to_unicode_lzlz@GLIBC_PRIVATE 2.7 +libcrypt.so.1 libc6-i386 #MINVER# + GLIBC_2.0@GLIBC_2.0 2.0 + crypt@GLIBC_2.0 2.0 + crypt_r@GLIBC_2.0 2.0 + encrypt@GLIBC_2.0 2.0 + encrypt_r@GLIBC_2.0 2.0 + fcrypt@GLIBC_2.0 2.0 + setkey@GLIBC_2.0 2.0 + setkey_r@GLIBC_2.0 2.0 +libdl.so.2 libc6-i386 #MINVER# + GLIBC_2.0@GLIBC_2.0 2.0 + GLIBC_2.1@GLIBC_2.1 2.1 + GLIBC_2.3.3@GLIBC_2.3.3 2.3.3 + GLIBC_2.3.4@GLIBC_2.3.4 2.3.4 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _dlfcn_hook@GLIBC_PRIVATE 2.7 + dladdr1@GLIBC_2.3.3 2.3.3 + dladdr@GLIBC_2.0 2.0 + dlclose@GLIBC_2.0 2.0 + dlerror@GLIBC_2.0 2.0 + dlinfo@GLIBC_2.3.3 2.3.3 + dlmopen@GLIBC_2.3.4 2.3.4 + dlopen@GLIBC_2.0 2.0 + dlopen@GLIBC_2.1 2.1 + dlsym@GLIBC_2.0 2.0 + dlvsym@GLIBC_2.1 2.1 +libm.so.6 libc6-i386 #MINVER# + GLIBC_2.0@GLIBC_2.0 2.0 + GLIBC_2.1@GLIBC_2.1 2.1 + GLIBC_2.2@GLIBC_2.2 2.2 + GLIBC_2.4@GLIBC_2.4 2.4 + _LIB_VERSION@GLIBC_2.0 2.0 + __clog10@GLIBC_2.1 2.1 + __clog10f@GLIBC_2.1 2.1 + __clog10l@GLIBC_2.1 2.1 + __expl@GLIBC_2.2 2.2 + __expm1l@GLIBC_2.2 2.2 + __finite@GLIBC_2.1 2.1 + __finitef@GLIBC_2.1 2.1 + __finitel@GLIBC_2.1 2.1 + __fpclassify@GLIBC_2.1 2.1 + __fpclassifyf@GLIBC_2.1 2.1 + __fpclassifyl@GLIBC_2.1 2.1 + __signbit@GLIBC_2.1 2.1 + __signbitf@GLIBC_2.1 2.1 + __signbitl@GLIBC_2.1 2.1 + acos@GLIBC_2.0 2.0 + acosf@GLIBC_2.0 2.0 + acosh@GLIBC_2.0 2.0 + acoshf@GLIBC_2.0 2.0 + acoshl@GLIBC_2.0 2.0 + acosl@GLIBC_2.0 2.0 + asin@GLIBC_2.0 2.0 + asinf@GLIBC_2.0 2.0 + asinh@GLIBC_2.0 2.0 + asinhf@GLIBC_2.0 2.0 + asinhl@GLIBC_2.0 2.0 + asinl@GLIBC_2.0 2.0 + atan2@GLIBC_2.0 2.0 + atan2f@GLIBC_2.0 2.0 + atan2l@GLIBC_2.0 2.0 + atan@GLIBC_2.0 2.0 + atanf@GLIBC_2.0 2.0 + atanh@GLIBC_2.0 2.0 + atanhf@GLIBC_2.0 2.0 + atanhl@GLIBC_2.0 2.0 + atanl@GLIBC_2.0 2.0 + cabs@GLIBC_2.1 2.1 + cabsf@GLIBC_2.1 2.1 + cabsl@GLIBC_2.1 2.1 + cacos@GLIBC_2.1 2.1 + cacosf@GLIBC_2.1 2.1 + cacosh@GLIBC_2.1 2.1 + cacoshf@GLIBC_2.1 2.1 + cacoshl@GLIBC_2.1 2.1 + cacosl@GLIBC_2.1 2.1 + carg@GLIBC_2.1 2.1 + cargf@GLIBC_2.1 2.1 + cargl@GLIBC_2.1 2.1 + casin@GLIBC_2.1 2.1 + casinf@GLIBC_2.1 2.1 + casinh@GLIBC_2.1 2.1 + casinhf@GLIBC_2.1 2.1 + casinhl@GLIBC_2.1 2.1 + casinl@GLIBC_2.1 2.1 + catan@GLIBC_2.1 2.1 + catanf@GLIBC_2.1 2.1 + catanh@GLIBC_2.1 2.1 + catanhf@GLIBC_2.1 2.1 + catanhl@GLIBC_2.1 2.1 + catanl@GLIBC_2.1 2.1 + cbrt@GLIBC_2.0 2.0 + cbrtf@GLIBC_2.0 2.0 + cbrtl@GLIBC_2.0 2.0 + ccos@GLIBC_2.1 2.1 + ccosf@GLIBC_2.1 2.1 + ccosh@GLIBC_2.1 2.1 + ccoshf@GLIBC_2.1 2.1 + ccoshl@GLIBC_2.1 2.1 + ccosl@GLIBC_2.1 2.1 + ceil@GLIBC_2.0 2.0 + ceilf@GLIBC_2.0 2.0 + ceill@GLIBC_2.0 2.0 + cexp@GLIBC_2.1 2.1 + cexpf@GLIBC_2.1 2.1 + cexpl@GLIBC_2.1 2.1 + cimag@GLIBC_2.1 2.1 + cimagf@GLIBC_2.1 2.1 + cimagl@GLIBC_2.1 2.1 + clog10@GLIBC_2.1 2.1 + clog10f@GLIBC_2.1 2.1 + clog10l@GLIBC_2.1 2.1 + clog@GLIBC_2.1 2.1 + clogf@GLIBC_2.1 2.1 + clogl@GLIBC_2.1 2.1 + conj@GLIBC_2.1 2.1 + conjf@GLIBC_2.1 2.1 + conjl@GLIBC_2.1 2.1 + copysign@GLIBC_2.0 2.0 + copysignf@GLIBC_2.0 2.0 + copysignl@GLIBC_2.0 2.0 + cos@GLIBC_2.0 2.0 + cosf@GLIBC_2.0 2.0 + cosh@GLIBC_2.0 2.0 + coshf@GLIBC_2.0 2.0 + coshl@GLIBC_2.0 2.0 + cosl@GLIBC_2.0 2.0 + cpow@GLIBC_2.1 2.1 + cpowf@GLIBC_2.1 2.1 + cpowl@GLIBC_2.1 2.1 + cproj@GLIBC_2.1 2.1 + cprojf@GLIBC_2.1 2.1 + cprojl@GLIBC_2.1 2.1 + creal@GLIBC_2.1 2.1 + crealf@GLIBC_2.1 2.1 + creall@GLIBC_2.1 2.1 + csin@GLIBC_2.1 2.1 + csinf@GLIBC_2.1 2.1 + csinh@GLIBC_2.1 2.1 + csinhf@GLIBC_2.1 2.1 + csinhl@GLIBC_2.1 2.1 + csinl@GLIBC_2.1 2.1 + csqrt@GLIBC_2.1 2.1 + csqrtf@GLIBC_2.1 2.1 + csqrtl@GLIBC_2.1 2.1 + ctan@GLIBC_2.1 2.1 + ctanf@GLIBC_2.1 2.1 + ctanh@GLIBC_2.1 2.1 + ctanhf@GLIBC_2.1 2.1 + ctanhl@GLIBC_2.1 2.1 + ctanl@GLIBC_2.1 2.1 + drem@GLIBC_2.0 2.0 + dremf@GLIBC_2.0 2.0 + dreml@GLIBC_2.0 2.0 + erf@GLIBC_2.0 2.0 + erfc@GLIBC_2.0 2.0 + erfcf@GLIBC_2.0 2.0 + erfcl@GLIBC_2.0 2.0 + erff@GLIBC_2.0 2.0 + erfl@GLIBC_2.0 2.0 + exp10@GLIBC_2.1 2.1 + exp10f@GLIBC_2.1 2.1 + exp10l@GLIBC_2.1 2.1 + exp2@GLIBC_2.1 2.1 + exp2f@GLIBC_2.1 2.1 + exp2l@GLIBC_2.1 2.1 + exp@GLIBC_2.0 2.0 + expf@GLIBC_2.0 2.0 + expl@GLIBC_2.0 2.0 + expm1@GLIBC_2.0 2.0 + expm1f@GLIBC_2.0 2.0 + expm1l@GLIBC_2.0 2.0 + fabs@GLIBC_2.0 2.0 + fabsf@GLIBC_2.0 2.0 + fabsl@GLIBC_2.0 2.0 + fdim@GLIBC_2.1 2.1 + fdimf@GLIBC_2.1 2.1 + fdiml@GLIBC_2.1 2.1 + feclearexcept@GLIBC_2.1 2.1 + feclearexcept@GLIBC_2.2 2.2 + fedisableexcept@GLIBC_2.2 2.2 + feenableexcept@GLIBC_2.2 2.2 + fegetenv@GLIBC_2.1 2.1 + fegetenv@GLIBC_2.2 2.2 + fegetexcept@GLIBC_2.2 2.2 + fegetexceptflag@GLIBC_2.1 2.1 + fegetexceptflag@GLIBC_2.2 2.2 + fegetround@GLIBC_2.1 2.1 + feholdexcept@GLIBC_2.1 2.1 + feraiseexcept@GLIBC_2.1 2.1 + feraiseexcept@GLIBC_2.2 2.2 + fesetenv@GLIBC_2.1 2.1 + fesetenv@GLIBC_2.2 2.2 + fesetexceptflag@GLIBC_2.1 2.1 + fesetexceptflag@GLIBC_2.2 2.2 + fesetround@GLIBC_2.1 2.1 + fetestexcept@GLIBC_2.1 2.1 + feupdateenv@GLIBC_2.1 2.1 + feupdateenv@GLIBC_2.2 2.2 + finite@GLIBC_2.0 2.0 + finitef@GLIBC_2.0 2.0 + finitel@GLIBC_2.0 2.0 + floor@GLIBC_2.0 2.0 + floorf@GLIBC_2.0 2.0 + floorl@GLIBC_2.0 2.0 + fma@GLIBC_2.1 2.1 + fmaf@GLIBC_2.1 2.1 + fmal@GLIBC_2.1 2.1 + fmax@GLIBC_2.1 2.1 + fmaxf@GLIBC_2.1 2.1 + fmaxl@GLIBC_2.1 2.1 + fmin@GLIBC_2.1 2.1 + fminf@GLIBC_2.1 2.1 + fminl@GLIBC_2.1 2.1 + fmod@GLIBC_2.0 2.0 + fmodf@GLIBC_2.0 2.0 + fmodl@GLIBC_2.0 2.0 + frexp@GLIBC_2.0 2.0 + frexpf@GLIBC_2.0 2.0 + frexpl@GLIBC_2.0 2.0 + gamma@GLIBC_2.0 2.0 + gammaf@GLIBC_2.0 2.0 + gammal@GLIBC_2.0 2.0 + hypot@GLIBC_2.0 2.0 + hypotf@GLIBC_2.0 2.0 + hypotl@GLIBC_2.0 2.0 + ilogb@GLIBC_2.0 2.0 + ilogbf@GLIBC_2.0 2.0 + ilogbl@GLIBC_2.0 2.0 + j0@GLIBC_2.0 2.0 + j0f@GLIBC_2.0 2.0 + j0l@GLIBC_2.0 2.0 + j1@GLIBC_2.0 2.0 + j1f@GLIBC_2.0 2.0 + j1l@GLIBC_2.0 2.0 + jn@GLIBC_2.0 2.0 + jnf@GLIBC_2.0 2.0 + jnl@GLIBC_2.0 2.0 + ldexp@GLIBC_2.0 2.0 + ldexpf@GLIBC_2.0 2.0 + ldexpl@GLIBC_2.0 2.0 + lgamma@GLIBC_2.0 2.0 + lgamma_r@GLIBC_2.0 2.0 + lgammaf@GLIBC_2.0 2.0 + lgammaf_r@GLIBC_2.0 2.0 + lgammal@GLIBC_2.0 2.0 + lgammal_r@GLIBC_2.0 2.0 + llrint@GLIBC_2.1 2.1 + llrintf@GLIBC_2.1 2.1 + llrintl@GLIBC_2.1 2.1 + llround@GLIBC_2.1 2.1 + llroundf@GLIBC_2.1 2.1 + llroundl@GLIBC_2.1 2.1 + log10@GLIBC_2.0 2.0 + log10f@GLIBC_2.0 2.0 + log10l@GLIBC_2.0 2.0 + log1p@GLIBC_2.0 2.0 + log1pf@GLIBC_2.0 2.0 + log1pl@GLIBC_2.0 2.0 + log2@GLIBC_2.1 2.1 + log2f@GLIBC_2.1 2.1 + log2l@GLIBC_2.1 2.1 + log@GLIBC_2.0 2.0 + logb@GLIBC_2.0 2.0 + logbf@GLIBC_2.0 2.0 + logbl@GLIBC_2.0 2.0 + logf@GLIBC_2.0 2.0 + logl@GLIBC_2.0 2.0 + lrint@GLIBC_2.1 2.1 + lrintf@GLIBC_2.1 2.1 + lrintl@GLIBC_2.1 2.1 + lround@GLIBC_2.1 2.1 + lroundf@GLIBC_2.1 2.1 + lroundl@GLIBC_2.1 2.1 + matherr@GLIBC_2.0 2.0 + modf@GLIBC_2.0 2.0 + modff@GLIBC_2.0 2.0 + modfl@GLIBC_2.0 2.0 + nan@GLIBC_2.1 2.1 + nanf@GLIBC_2.1 2.1 + nanl@GLIBC_2.1 2.1 + nearbyint@GLIBC_2.1 2.1 + nearbyintf@GLIBC_2.1 2.1 + nearbyintl@GLIBC_2.1 2.1 + nextafter@GLIBC_2.0 2.0 + nextafterf@GLIBC_2.0 2.0 + nextafterl@GLIBC_2.0 2.0 + nexttoward@GLIBC_2.1 2.1 + nexttowardf@GLIBC_2.1 2.1 + nexttowardl@GLIBC_2.1 2.1 + pow10@GLIBC_2.1 2.1 + pow10f@GLIBC_2.1 2.1 + pow10l@GLIBC_2.1 2.1 + pow@GLIBC_2.0 2.0 + powf@GLIBC_2.0 2.0 + powl@GLIBC_2.0 2.0 + remainder@GLIBC_2.0 2.0 + remainderf@GLIBC_2.0 2.0 + remainderl@GLIBC_2.0 2.0 + remquo@GLIBC_2.1 2.1 + remquof@GLIBC_2.1 2.1 + remquol@GLIBC_2.1 2.1 + rint@GLIBC_2.0 2.0 + rintf@GLIBC_2.0 2.0 + rintl@GLIBC_2.0 2.0 + round@GLIBC_2.1 2.1 + roundf@GLIBC_2.1 2.1 + roundl@GLIBC_2.1 2.1 + scalb@GLIBC_2.0 2.0 + scalbf@GLIBC_2.0 2.0 + scalbl@GLIBC_2.0 2.0 + scalbln@GLIBC_2.1 2.1 + scalblnf@GLIBC_2.1 2.1 + scalblnl@GLIBC_2.1 2.1 + scalbn@GLIBC_2.0 2.0 + scalbnf@GLIBC_2.0 2.0 + scalbnl@GLIBC_2.0 2.0 + signgam@GLIBC_2.0 2.0 + significand@GLIBC_2.0 2.0 + significandf@GLIBC_2.0 2.0 + significandl@GLIBC_2.0 2.0 + sin@GLIBC_2.0 2.0 + sincos@GLIBC_2.1 2.1 + sincosf@GLIBC_2.1 2.1 + sincosl@GLIBC_2.1 2.1 + sinf@GLIBC_2.0 2.0 + sinh@GLIBC_2.0 2.0 + sinhf@GLIBC_2.0 2.0 + sinhl@GLIBC_2.0 2.0 + sinl@GLIBC_2.0 2.0 + sqrt@GLIBC_2.0 2.0 + sqrtf@GLIBC_2.0 2.0 + sqrtl@GLIBC_2.0 2.0 + tan@GLIBC_2.0 2.0 + tanf@GLIBC_2.0 2.0 + tanh@GLIBC_2.0 2.0 + tanhf@GLIBC_2.0 2.0 + tanhl@GLIBC_2.0 2.0 + tanl@GLIBC_2.0 2.0 + tgamma@GLIBC_2.1 2.1 + tgammaf@GLIBC_2.1 2.1 + tgammal@GLIBC_2.1 2.1 + trunc@GLIBC_2.1 2.1 + truncf@GLIBC_2.1 2.1 + truncl@GLIBC_2.1 2.1 + y0@GLIBC_2.0 2.0 + y0f@GLIBC_2.0 2.0 + y0l@GLIBC_2.0 2.0 + y1@GLIBC_2.0 2.0 + y1f@GLIBC_2.0 2.0 + y1l@GLIBC_2.0 2.0 + yn@GLIBC_2.0 2.0 + ynf@GLIBC_2.0 2.0 + ynl@GLIBC_2.0 2.0 +libmemusage.so libc6-i386 #MINVER# + __invoke_dynamic_linker__@Base 2.7-9ubuntu1 + calloc@Base 2.7-9ubuntu1 + free@Base 2.7-9ubuntu1 + malloc@Base 2.7-9ubuntu1 + mmap64@Base 2.7-9ubuntu1 + mmap@Base 2.7-9ubuntu1 + mremap@Base 2.7-9ubuntu1 + munmap@Base 2.7-9ubuntu1 + realloc@Base 2.7-9ubuntu1 +libnsl.so.1 libc6-i386 #MINVER# + GLIBC_2.0@GLIBC_2.0 2.0 + GLIBC_2.1@GLIBC_2.1 2.1 + GLIBC_2.2@GLIBC_2.2 2.2 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + __create_ib_request@GLIBC_PRIVATE 2.7 + __do_niscall3@GLIBC_PRIVATE 2.7 + __follow_path@GLIBC_PRIVATE 2.7 + __free_fdresult@GLIBC_2.1 2.1 + __nis_default_access@GLIBC_2.1 2.1 + __nis_default_group@GLIBC_2.1 2.1 + __nis_default_owner@GLIBC_2.1 2.1 + __nis_default_ttl@GLIBC_2.1 2.1 + __nis_finddirectory@GLIBC_2.1 2.1 + __nis_hash@GLIBC_2.1 2.1 + __nisbind_connect@GLIBC_2.1 2.1 + __nisbind_create@GLIBC_2.1 2.1 + __nisbind_destroy@GLIBC_2.1 2.1 + __nisbind_next@GLIBC_2.1 2.1 + __prepare_niscall@GLIBC_PRIVATE 2.7 + __yp_check@GLIBC_2.0 2.0 + _nsl_default_nss@GLIBC_PRIVATE 2.7 + _xdr_ib_request@GLIBC_PRIVATE 2.7 + _xdr_nis_result@GLIBC_PRIVATE 2.7 + nis_add@GLIBC_2.1 2.1 + nis_add_entry@GLIBC_2.1 2.1 + nis_addmember@GLIBC_2.1 2.1 + nis_checkpoint@GLIBC_2.1 2.1 + nis_clone_directory@GLIBC_2.1 2.1 + nis_clone_object@GLIBC_2.1 2.1 + nis_clone_result@GLIBC_2.1 2.1 + nis_creategroup@GLIBC_2.1 2.1 + nis_destroy_object@GLIBC_2.1 2.1 + nis_destroygroup@GLIBC_2.1 2.1 + nis_dir_cmp@GLIBC_2.1 2.1 + nis_domain_of@GLIBC_2.1 2.1 + nis_domain_of_r@GLIBC_2.1 2.1 + nis_first_entry@GLIBC_2.1 2.1 + nis_free_directory@GLIBC_2.1 2.1 + nis_free_object@GLIBC_2.1 2.1 + nis_free_request@GLIBC_2.1 2.1 + nis_freenames@GLIBC_2.1 2.1 + nis_freeresult@GLIBC_2.1 2.1 + nis_freeservlist@GLIBC_2.1 2.1 + nis_freetags@GLIBC_2.1 2.1 + nis_getnames@GLIBC_2.1 2.1 + nis_getservlist@GLIBC_2.1 2.1 + nis_ismember@GLIBC_2.1 2.1 + nis_leaf_of@GLIBC_2.1 2.1 + nis_leaf_of_r@GLIBC_2.1 2.1 + nis_lerror@GLIBC_2.1 2.1 + nis_list@GLIBC_2.1 2.1 + nis_local_directory@GLIBC_2.1 2.1 + nis_local_group@GLIBC_2.1 2.1 + nis_local_host@GLIBC_2.1 2.1 + nis_local_principal@GLIBC_2.1 2.1 + nis_lookup@GLIBC_2.1 2.1 + nis_mkdir@GLIBC_2.1 2.1 + nis_modify@GLIBC_2.1 2.1 + nis_modify_entry@GLIBC_2.1 2.1 + nis_name_of@GLIBC_2.1 2.1 + nis_name_of_r@GLIBC_2.1 2.1 + nis_next_entry@GLIBC_2.1 2.1 + nis_perror@GLIBC_2.1 2.1 + nis_ping@GLIBC_2.1 2.1 + nis_print_directory@GLIBC_2.1 2.1 + nis_print_entry@GLIBC_2.1 2.1 + nis_print_group@GLIBC_2.1 2.1 + nis_print_group_entry@GLIBC_2.1 2.1 + nis_print_link@GLIBC_2.1 2.1 + nis_print_object@GLIBC_2.1 2.1 + nis_print_result@GLIBC_2.1 2.1 + nis_print_rights@GLIBC_2.1 2.1 + nis_print_table@GLIBC_2.1 2.1 + nis_read_obj@GLIBC_2.1 2.1 + nis_remove@GLIBC_2.1 2.1 + nis_remove_entry@GLIBC_2.1 2.1 + nis_removemember@GLIBC_2.1 2.1 + nis_rmdir@GLIBC_2.1 2.1 + nis_servstate@GLIBC_2.1 2.1 + nis_sperrno@GLIBC_2.1 2.1 + nis_sperror@GLIBC_2.1 2.1 + nis_sperror_r@GLIBC_2.1 2.1 + nis_stats@GLIBC_2.1 2.1 + nis_verifygroup@GLIBC_2.1 2.1 + nis_write_obj@GLIBC_2.1 2.1 + readColdStartFile@GLIBC_2.1 2.1 + writeColdStartFile@GLIBC_2.1 2.1 + xdr_cback_data@GLIBC_2.1 2.1 + xdr_domainname@GLIBC_2.0 2.0 + xdr_keydat@GLIBC_2.0 2.0 + xdr_mapname@GLIBC_2.0 2.0 + xdr_obj_p@GLIBC_2.1 2.1 + xdr_peername@GLIBC_2.0 2.0 + xdr_valdat@GLIBC_2.0 2.0 + xdr_yp_buf@GLIBC_2.0 2.0 + xdr_ypall@GLIBC_2.2 2.2 + xdr_ypbind_binding@GLIBC_2.0 2.0 + xdr_ypbind_resp@GLIBC_2.0 2.0 + xdr_ypbind_resptype@GLIBC_2.0 2.0 + xdr_ypbind_setdom@GLIBC_2.0 2.0 + xdr_ypdelete_args@GLIBC_2.0 2.0 + xdr_ypmap_parms@GLIBC_2.0 2.0 + xdr_ypmaplist@GLIBC_2.0 2.0 + xdr_yppush_status@GLIBC_2.0 2.0 + xdr_yppushresp_xfr@GLIBC_2.0 2.0 + xdr_ypreq_key@GLIBC_2.0 2.0 + xdr_ypreq_nokey@GLIBC_2.0 2.0 + xdr_ypreq_xfr@GLIBC_2.0 2.0 + xdr_ypresp_all@GLIBC_2.0 2.0 + xdr_ypresp_key_val@GLIBC_2.0 2.0 + xdr_ypresp_maplist@GLIBC_2.0 2.0 + xdr_ypresp_master@GLIBC_2.0 2.0 + xdr_ypresp_order@GLIBC_2.0 2.0 + xdr_ypresp_val@GLIBC_2.0 2.0 + xdr_ypresp_xfr@GLIBC_2.0 2.0 + xdr_ypstat@GLIBC_2.0 2.0 + xdr_ypupdate_args@GLIBC_2.0 2.0 + xdr_ypxfrstat@GLIBC_2.0 2.0 + yp_all@GLIBC_2.0 2.0 + yp_bind@GLIBC_2.0 2.0 + yp_first@GLIBC_2.0 2.0 + yp_get_default_domain@GLIBC_2.0 2.0 + yp_maplist@GLIBC_2.0 2.0 + yp_master@GLIBC_2.0 2.0 + yp_match@GLIBC_2.0 2.0 + yp_next@GLIBC_2.0 2.0 + yp_order@GLIBC_2.0 2.0 + yp_unbind@GLIBC_2.0 2.0 + yp_update@GLIBC_2.0 2.0 + ypbinderr_string@GLIBC_2.0 2.0 + yperr_string@GLIBC_2.0 2.0 + ypprot_err@GLIBC_2.0 2.0 +libnss_compat.so.2 libc6-i386 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_compat_endgrent@GLIBC_PRIVATE 2.7 + _nss_compat_endpwent@GLIBC_PRIVATE 2.7 + _nss_compat_endspent@GLIBC_PRIVATE 2.7 + _nss_compat_getgrent_r@GLIBC_PRIVATE 2.7 + _nss_compat_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_compat_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_compat_getpwent_r@GLIBC_PRIVATE 2.7 + _nss_compat_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_compat_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_compat_getspent_r@GLIBC_PRIVATE 2.7 + _nss_compat_getspnam_r@GLIBC_PRIVATE 2.7 + _nss_compat_initgroups_dyn@GLIBC_PRIVATE 2.7 + _nss_compat_setgrent@GLIBC_PRIVATE 2.7 + _nss_compat_setpwent@GLIBC_PRIVATE 2.7 + _nss_compat_setspent@GLIBC_PRIVATE 2.7 +libnss_dns.so.2 libc6-i386 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_dns_getcanonname_r@GLIBC_PRIVATE 2.7 + _nss_dns_gethostbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_dns_gethostbyname2_r@GLIBC_PRIVATE 2.7 + _nss_dns_gethostbyname3_r@GLIBC_PRIVATE 2.7 + _nss_dns_gethostbyname_r@GLIBC_PRIVATE 2.7 + _nss_dns_getnetbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_dns_getnetbyname_r@GLIBC_PRIVATE 2.7 +libnss_files.so.2 libc6-i386 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_files_endaliasent@GLIBC_PRIVATE 2.7 + _nss_files_endetherent@GLIBC_PRIVATE 2.7 + _nss_files_endgrent@GLIBC_PRIVATE 2.7 + _nss_files_endhostent@GLIBC_PRIVATE 2.7 + _nss_files_endnetent@GLIBC_PRIVATE 2.7 + _nss_files_endnetgrent@GLIBC_PRIVATE 2.7 + _nss_files_endprotoent@GLIBC_PRIVATE 2.7 + _nss_files_endpwent@GLIBC_PRIVATE 2.7 + _nss_files_endrpcent@GLIBC_PRIVATE 2.7 + _nss_files_endservent@GLIBC_PRIVATE 2.7 + _nss_files_endspent@GLIBC_PRIVATE 2.7 + _nss_files_getaliasbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getaliasent_r@GLIBC_PRIVATE 2.7 + _nss_files_getetherent_r@GLIBC_PRIVATE 2.7 + _nss_files_getgrent_r@GLIBC_PRIVATE 2.7 + _nss_files_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_files_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostbyname2_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostent_r@GLIBC_PRIVATE 2.7 + _nss_files_gethostton_r@GLIBC_PRIVATE 2.7 + _nss_files_getnetbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_files_getnetbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getnetent_r@GLIBC_PRIVATE 2.7 + _nss_files_getnetgrent_r@GLIBC_PRIVATE 2.7 + _nss_files_getntohost_r@GLIBC_PRIVATE 2.7 + _nss_files_getprotobyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getprotobynumber_r@GLIBC_PRIVATE 2.7 + _nss_files_getprotoent_r@GLIBC_PRIVATE 2.7 + _nss_files_getpublickey@GLIBC_PRIVATE 2.7 + _nss_files_getpwent_r@GLIBC_PRIVATE 2.7 + _nss_files_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_files_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_files_getrpcbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getrpcbynumber_r@GLIBC_PRIVATE 2.7 + _nss_files_getrpcent_r@GLIBC_PRIVATE 2.7 + _nss_files_getsecretkey@GLIBC_PRIVATE 2.7 + _nss_files_getservbyname_r@GLIBC_PRIVATE 2.7 + _nss_files_getservbyport_r@GLIBC_PRIVATE 2.7 + _nss_files_getservent_r@GLIBC_PRIVATE 2.7 + _nss_files_getspent_r@GLIBC_PRIVATE 2.7 + _nss_files_getspnam_r@GLIBC_PRIVATE 2.7 + _nss_files_parse_etherent@GLIBC_PRIVATE 2.7 + _nss_files_parse_netent@GLIBC_PRIVATE 2.7 + _nss_files_parse_protoent@GLIBC_PRIVATE 2.7 + _nss_files_parse_rpcent@GLIBC_PRIVATE 2.7 + _nss_files_parse_servent@GLIBC_PRIVATE 2.7 + _nss_files_setaliasent@GLIBC_PRIVATE 2.7 + _nss_files_setetherent@GLIBC_PRIVATE 2.7 + _nss_files_setgrent@GLIBC_PRIVATE 2.7 + _nss_files_sethostent@GLIBC_PRIVATE 2.7 + _nss_files_setnetent@GLIBC_PRIVATE 2.7 + _nss_files_setnetgrent@GLIBC_PRIVATE 2.7 + _nss_files_setprotoent@GLIBC_PRIVATE 2.7 + _nss_files_setpwent@GLIBC_PRIVATE 2.7 + _nss_files_setrpcent@GLIBC_PRIVATE 2.7 + _nss_files_setservent@GLIBC_PRIVATE 2.7 + _nss_files_setspent@GLIBC_PRIVATE 2.7 + _nss_netgroup_parseline@GLIBC_PRIVATE 2.7 +libnss_hesiod.so.2 libc6-i386 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_hesiod_endgrent@GLIBC_PRIVATE 2.7 + _nss_hesiod_endprotoent@GLIBC_PRIVATE 2.7 + _nss_hesiod_endpwent@GLIBC_PRIVATE 2.7 + _nss_hesiod_endservent@GLIBC_PRIVATE 2.7 + _nss_hesiod_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getprotobyname_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getprotobynumber_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getservbyname_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_getservbyport_r@GLIBC_PRIVATE 2.7 + _nss_hesiod_initgroups_dyn@GLIBC_PRIVATE 2.7 + _nss_hesiod_setgrent@GLIBC_PRIVATE 2.7 + _nss_hesiod_setprotoent@GLIBC_PRIVATE 2.7 + _nss_hesiod_setpwent@GLIBC_PRIVATE 2.7 + _nss_hesiod_setservent@GLIBC_PRIVATE 2.7 +libnss_nis.so.2 libc6-i386 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_nis_endaliasent@GLIBC_PRIVATE 2.7 + _nss_nis_endetherent@GLIBC_PRIVATE 2.7 + _nss_nis_endgrent@GLIBC_PRIVATE 2.7 + _nss_nis_endhostent@GLIBC_PRIVATE 2.7 + _nss_nis_endnetent@GLIBC_PRIVATE 2.7 + _nss_nis_endnetgrent@GLIBC_PRIVATE 2.7 + _nss_nis_endprotoent@GLIBC_PRIVATE 2.7 + _nss_nis_endpwent@GLIBC_PRIVATE 2.7 + _nss_nis_endrpcent@GLIBC_PRIVATE 2.7 + _nss_nis_endservent@GLIBC_PRIVATE 2.7 + _nss_nis_endspent@GLIBC_PRIVATE 2.7 + _nss_nis_getaliasbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getaliasent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getetherent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getgrent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_nis_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostbyname2_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostent_r@GLIBC_PRIVATE 2.7 + _nss_nis_gethostton_r@GLIBC_PRIVATE 2.7 + _nss_nis_getnetbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_nis_getnetbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getnetent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getnetgrent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getntohost_r@GLIBC_PRIVATE 2.7 + _nss_nis_getprotobyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getprotobynumber_r@GLIBC_PRIVATE 2.7 + _nss_nis_getprotoent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getpublickey@GLIBC_PRIVATE 2.7 + _nss_nis_getpwent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_nis_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_nis_getrpcbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getrpcbynumber_r@GLIBC_PRIVATE 2.7 + _nss_nis_getrpcent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getsecretkey@GLIBC_PRIVATE 2.7 + _nss_nis_getservbyname_r@GLIBC_PRIVATE 2.7 + _nss_nis_getservbyport_r@GLIBC_PRIVATE 2.7 + _nss_nis_getservent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getspent_r@GLIBC_PRIVATE 2.7 + _nss_nis_getspnam_r@GLIBC_PRIVATE 2.7 + _nss_nis_initgroups_dyn@GLIBC_PRIVATE 2.7 + _nss_nis_netname2user@GLIBC_PRIVATE 2.7 + _nss_nis_setaliasent@GLIBC_PRIVATE 2.7 + _nss_nis_setetherent@GLIBC_PRIVATE 2.7 + _nss_nis_setgrent@GLIBC_PRIVATE 2.7 + _nss_nis_sethostent@GLIBC_PRIVATE 2.7 + _nss_nis_setnetent@GLIBC_PRIVATE 2.7 + _nss_nis_setnetgrent@GLIBC_PRIVATE 2.7 + _nss_nis_setprotoent@GLIBC_PRIVATE 2.7 + _nss_nis_setpwent@GLIBC_PRIVATE 2.7 + _nss_nis_setrpcent@GLIBC_PRIVATE 2.7 + _nss_nis_setservent@GLIBC_PRIVATE 2.7 + _nss_nis_setspent@GLIBC_PRIVATE 2.7 +libnss_nisplus.so.2 libc6-i386 #MINVER# + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _nss_nisplus_endaliasent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endetherent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endgrent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endhostent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endnetent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endnetgrent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endprotoent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endpwent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endrpcent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endservent@GLIBC_PRIVATE 2.7 + _nss_nisplus_endspent@GLIBC_PRIVATE 2.7 + _nss_nisplus_getaliasbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getaliasent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getetherent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getgrent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getgrgid_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getgrnam_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostbyname2_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_gethostton_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getnetbyaddr_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getnetbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getnetent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getnetgrent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getntohost_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getprotobyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getprotobynumber_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getprotoent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getpublickey@GLIBC_PRIVATE 2.7 + _nss_nisplus_getpwent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getpwnam_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getpwuid_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getrpcbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getrpcbynumber_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getrpcent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getsecretkey@GLIBC_PRIVATE 2.7 + _nss_nisplus_getservbyname_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getservent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getspent_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_getspnam_r@GLIBC_PRIVATE 2.7 + _nss_nisplus_initgroups_dyn@GLIBC_PRIVATE 2.7 + _nss_nisplus_netname2user@GLIBC_PRIVATE 2.7 + _nss_nisplus_setaliasent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setetherent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setgrent@GLIBC_PRIVATE 2.7 + _nss_nisplus_sethostent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setnetent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setnetgrent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setprotoent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setpwent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setrpcent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setservent@GLIBC_PRIVATE 2.7 + _nss_nisplus_setspent@GLIBC_PRIVATE 2.7 +libpcprofile.so libc6-i386 #MINVER# + __cyg_profile_func_enter@Base 2.7-9ubuntu1 + __cyg_profile_func_exit@Base 2.7-9ubuntu1 + __invoke_dynamic_linker__@Base 2.7-9ubuntu1 +libpthread.so.0 libc6-i386 #MINVER# + GLIBC_2.0@GLIBC_2.0 2.0 + GLIBC_2.1.1@GLIBC_2.1.1 2.1.1 + GLIBC_2.1.2@GLIBC_2.1.2 2.1.2 + GLIBC_2.1@GLIBC_2.1 2.1 + GLIBC_2.2.3@GLIBC_2.2.3 2.2.3 + GLIBC_2.2.6@GLIBC_2.2.6 2.2.6 + GLIBC_2.2@GLIBC_2.2 2.2 + GLIBC_2.3.2@GLIBC_2.3.2 2.3.2 + GLIBC_2.3.3@GLIBC_2.3.3 2.3.3 + GLIBC_2.3.4@GLIBC_2.3.4 2.3.4 + GLIBC_2.4@GLIBC_2.4 2.4 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + _IO_flockfile@GLIBC_2.0 2.0 + _IO_ftrylockfile@GLIBC_2.0 2.0 + _IO_funlockfile@GLIBC_2.0 2.0 + __close@GLIBC_2.0 2.0 + __connect@GLIBC_2.0 2.0 + __errno_location@GLIBC_2.0 2.0 + __fcntl@GLIBC_2.0 2.0 + __fork@GLIBC_2.0 2.0 + __h_errno_location@GLIBC_2.0 2.0 + __libc_allocate_rtsig@GLIBC_2.1 2.1 + __libc_current_sigrtmax@GLIBC_2.1 2.1 + __libc_current_sigrtmin@GLIBC_2.1 2.1 + __lseek@GLIBC_2.0 2.0 + __nanosleep@GLIBC_2.2.6 2.2.6 + __open64@GLIBC_2.2 2.2 + __open@GLIBC_2.0 2.0 + __pread64@GLIBC_2.2 2.2 + __pthread_cleanup_routine@GLIBC_2.3.3 2.3.3 + __pthread_clock_gettime@GLIBC_PRIVATE 2.7 + __pthread_clock_settime@GLIBC_PRIVATE 2.7 + __pthread_getspecific@GLIBC_2.0 2.0 + __pthread_initialize_minimal@GLIBC_PRIVATE 2.7 + __pthread_key_create@GLIBC_2.0 2.0 + __pthread_mutex_destroy@GLIBC_2.0 2.0 + __pthread_mutex_init@GLIBC_2.0 2.0 + __pthread_mutex_lock@GLIBC_2.0 2.0 + __pthread_mutex_trylock@GLIBC_2.0 2.0 + __pthread_mutex_unlock@GLIBC_2.0 2.0 + __pthread_mutexattr_destroy@GLIBC_2.0 2.0 + __pthread_mutexattr_init@GLIBC_2.0 2.0 + __pthread_mutexattr_settype@GLIBC_2.0 2.0 + __pthread_once@GLIBC_2.0 2.0 + __pthread_register_cancel@GLIBC_2.3.3 2.3.3 + __pthread_register_cancel_defer@GLIBC_2.3.3 2.3.3 + __pthread_rwlock_destroy@GLIBC_2.2 2.2 + __pthread_rwlock_init@GLIBC_2.2 2.2 + __pthread_rwlock_rdlock@GLIBC_2.2 2.2 + __pthread_rwlock_tryrdlock@GLIBC_2.2 2.2 + __pthread_rwlock_trywrlock@GLIBC_2.2 2.2 + __pthread_rwlock_unlock@GLIBC_2.2 2.2 + __pthread_rwlock_wrlock@GLIBC_2.2 2.2 + __pthread_setspecific@GLIBC_2.0 2.0 + __pthread_unregister_cancel@GLIBC_2.3.3 2.3.3 + __pthread_unregister_cancel_restore@GLIBC_2.3.3 2.3.3 + __pthread_unwind@GLIBC_PRIVATE 2.7 + __pthread_unwind_next@GLIBC_2.3.3 2.3.3 + __pwrite64@GLIBC_2.2 2.2 + __read@GLIBC_2.0 2.0 + __res_state@GLIBC_2.2 2.2 + __send@GLIBC_2.0 2.0 + __sigaction@GLIBC_2.0 2.0 + __vfork@GLIBC_2.1.2 2.1.2 + __wait@GLIBC_2.0 2.0 + __write@GLIBC_2.0 2.0 + _pthread_cleanup_pop@GLIBC_2.0 2.0 + _pthread_cleanup_pop_restore@GLIBC_2.0 2.0 + _pthread_cleanup_push@GLIBC_2.0 2.0 + _pthread_cleanup_push_defer@GLIBC_2.0 2.0 + accept@GLIBC_2.0 2.0 + close@GLIBC_2.0 2.0 + connect@GLIBC_2.0 2.0 + fcntl@GLIBC_2.0 2.0 + flockfile@GLIBC_2.0 2.0 + fork@GLIBC_2.0 2.0 + fsync@GLIBC_2.0 2.0 + ftrylockfile@GLIBC_2.0 2.0 + funlockfile@GLIBC_2.0 2.0 + longjmp@GLIBC_2.0 2.0 + lseek64@GLIBC_2.2 2.2 + lseek@GLIBC_2.0 2.0 + msync@GLIBC_2.0 2.0 + nanosleep@GLIBC_2.0 2.0 + open64@GLIBC_2.2 2.2 + open@GLIBC_2.0 2.0 + pause@GLIBC_2.0 2.0 + pread64@GLIBC_2.2 2.2 + pread@GLIBC_2.2 2.2 + pthread_atfork@GLIBC_2.0 2.0 + pthread_attr_destroy@GLIBC_2.0 2.0 + pthread_attr_getaffinity_np@GLIBC_2.3.3 2.3.3 + pthread_attr_getaffinity_np@GLIBC_2.3.4 2.3.4 + pthread_attr_getdetachstate@GLIBC_2.0 2.0 + pthread_attr_getguardsize@GLIBC_2.1 2.1 + pthread_attr_getinheritsched@GLIBC_2.0 2.0 + pthread_attr_getschedparam@GLIBC_2.0 2.0 + pthread_attr_getschedpolicy@GLIBC_2.0 2.0 + pthread_attr_getscope@GLIBC_2.0 2.0 + pthread_attr_getstack@GLIBC_2.2 2.2 + pthread_attr_getstackaddr@GLIBC_2.1 2.1 + pthread_attr_getstacksize@GLIBC_2.1 2.1 + pthread_attr_init@GLIBC_2.0 2.0 + pthread_attr_init@GLIBC_2.1 2.1 + pthread_attr_setaffinity_np@GLIBC_2.3.3 2.3.3 + pthread_attr_setaffinity_np@GLIBC_2.3.4 2.3.4 + pthread_attr_setdetachstate@GLIBC_2.0 2.0 + pthread_attr_setguardsize@GLIBC_2.1 2.1 + pthread_attr_setinheritsched@GLIBC_2.0 2.0 + pthread_attr_setschedparam@GLIBC_2.0 2.0 + pthread_attr_setschedpolicy@GLIBC_2.0 2.0 + pthread_attr_setscope@GLIBC_2.0 2.0 + pthread_attr_setstack@GLIBC_2.2 2.2 + pthread_attr_setstackaddr@GLIBC_2.1 2.1 + pthread_attr_setstacksize@GLIBC_2.1 2.1 + pthread_barrier_destroy@GLIBC_2.2 2.2 + pthread_barrier_init@GLIBC_2.2 2.2 + pthread_barrier_wait@GLIBC_2.2 2.2 + pthread_barrierattr_destroy@GLIBC_2.2 2.2 + pthread_barrierattr_getpshared@GLIBC_2.3.3 2.3.3 + pthread_barrierattr_init@GLIBC_2.2 2.2 + pthread_barrierattr_setpshared@GLIBC_2.2 2.2 + pthread_cancel@GLIBC_2.0 2.0 + pthread_cond_broadcast@GLIBC_2.0 2.0 + pthread_cond_broadcast@GLIBC_2.3.2 2.3.2 + pthread_cond_destroy@GLIBC_2.0 2.0 + pthread_cond_destroy@GLIBC_2.3.2 2.3.2 + pthread_cond_init@GLIBC_2.0 2.0 + pthread_cond_init@GLIBC_2.3.2 2.3.2 + pthread_cond_signal@GLIBC_2.0 2.0 + pthread_cond_signal@GLIBC_2.3.2 2.3.2 + pthread_cond_timedwait@GLIBC_2.0 2.0 + pthread_cond_timedwait@GLIBC_2.3.2 2.3.2 + pthread_cond_wait@GLIBC_2.0 2.0 + pthread_cond_wait@GLIBC_2.3.2 2.3.2 + pthread_condattr_destroy@GLIBC_2.0 2.0 + pthread_condattr_getclock@GLIBC_2.3.3 2.3.3 + pthread_condattr_getpshared@GLIBC_2.2 2.2 + pthread_condattr_init@GLIBC_2.0 2.0 + pthread_condattr_setclock@GLIBC_2.3.3 2.3.3 + pthread_condattr_setpshared@GLIBC_2.2 2.2 + pthread_create@GLIBC_2.0 2.0 + pthread_create@GLIBC_2.1 2.1 + pthread_detach@GLIBC_2.0 2.0 + pthread_equal@GLIBC_2.0 2.0 + pthread_exit@GLIBC_2.0 2.0 + pthread_getaffinity_np@GLIBC_2.3.3 2.3.3 + pthread_getaffinity_np@GLIBC_2.3.4 2.3.4 + pthread_getattr_np@GLIBC_2.2.3 2.2.3 + pthread_getconcurrency@GLIBC_2.1 2.1 + pthread_getcpuclockid@GLIBC_2.2 2.2 + pthread_getschedparam@GLIBC_2.0 2.0 + pthread_getspecific@GLIBC_2.0 2.0 + pthread_join@GLIBC_2.0 2.0 + pthread_key_create@GLIBC_2.0 2.0 + pthread_key_delete@GLIBC_2.0 2.0 + pthread_kill@GLIBC_2.0 2.0 + pthread_kill_other_threads_np@GLIBC_2.0 2.0 + pthread_mutex_consistent_np@GLIBC_2.4 2.4 + pthread_mutex_destroy@GLIBC_2.0 2.0 + pthread_mutex_getprioceiling@GLIBC_2.4 2.4 + pthread_mutex_init@GLIBC_2.0 2.0 + pthread_mutex_lock@GLIBC_2.0 2.0 + pthread_mutex_setprioceiling@GLIBC_2.4 2.4 + pthread_mutex_timedlock@GLIBC_2.2 2.2 + pthread_mutex_trylock@GLIBC_2.0 2.0 + pthread_mutex_unlock@GLIBC_2.0 2.0 + pthread_mutexattr_destroy@GLIBC_2.0 2.0 + pthread_mutexattr_getkind_np@GLIBC_2.0 2.0 + pthread_mutexattr_getprioceiling@GLIBC_2.4 2.4 + pthread_mutexattr_getprotocol@GLIBC_2.4 2.4 + pthread_mutexattr_getpshared@GLIBC_2.2 2.2 + pthread_mutexattr_getrobust_np@GLIBC_2.4 2.4 + pthread_mutexattr_gettype@GLIBC_2.1 2.1 + pthread_mutexattr_init@GLIBC_2.0 2.0 + pthread_mutexattr_setkind_np@GLIBC_2.0 2.0 + pthread_mutexattr_setprioceiling@GLIBC_2.4 2.4 + pthread_mutexattr_setprotocol@GLIBC_2.4 2.4 + pthread_mutexattr_setpshared@GLIBC_2.2 2.2 + pthread_mutexattr_setrobust_np@GLIBC_2.4 2.4 + pthread_mutexattr_settype@GLIBC_2.1 2.1 + pthread_once@GLIBC_2.0 2.0 + pthread_rwlock_destroy@GLIBC_2.1 2.1 + pthread_rwlock_init@GLIBC_2.1 2.1 + pthread_rwlock_rdlock@GLIBC_2.1 2.1 + pthread_rwlock_timedrdlock@GLIBC_2.2 2.2 + pthread_rwlock_timedwrlock@GLIBC_2.2 2.2 + pthread_rwlock_tryrdlock@GLIBC_2.1 2.1 + pthread_rwlock_trywrlock@GLIBC_2.1 2.1 + pthread_rwlock_unlock@GLIBC_2.1 2.1 + pthread_rwlock_wrlock@GLIBC_2.1 2.1 + pthread_rwlockattr_destroy@GLIBC_2.1 2.1 + pthread_rwlockattr_getkind_np@GLIBC_2.1 2.1 + pthread_rwlockattr_getpshared@GLIBC_2.1 2.1 + pthread_rwlockattr_init@GLIBC_2.1 2.1 + pthread_rwlockattr_setkind_np@GLIBC_2.1 2.1 + pthread_rwlockattr_setpshared@GLIBC_2.1 2.1 + pthread_self@GLIBC_2.0 2.0 + pthread_setaffinity_np@GLIBC_2.3.3 2.3.3 + pthread_setaffinity_np@GLIBC_2.3.4 2.3.4 + pthread_setcancelstate@GLIBC_2.0 2.0 + pthread_setcanceltype@GLIBC_2.0 2.0 + pthread_setconcurrency@GLIBC_2.1 2.1 + pthread_setschedparam@GLIBC_2.0 2.0 + pthread_setschedprio@GLIBC_2.3.4 2.3.4 + pthread_setspecific@GLIBC_2.0 2.0 + pthread_sigmask@GLIBC_2.0 2.0 + pthread_spin_destroy@GLIBC_2.2 2.2 + pthread_spin_init@GLIBC_2.2 2.2 + pthread_spin_lock@GLIBC_2.2 2.2 + pthread_spin_trylock@GLIBC_2.2 2.2 + pthread_spin_unlock@GLIBC_2.2 2.2 + pthread_testcancel@GLIBC_2.0 2.0 + pthread_timedjoin_np@GLIBC_2.3.3 2.3.3 + pthread_tryjoin_np@GLIBC_2.3.3 2.3.3 + pthread_yield@GLIBC_2.2 2.2 + pwrite64@GLIBC_2.2 2.2 + pwrite@GLIBC_2.2 2.2 + raise@GLIBC_2.0 2.0 + read@GLIBC_2.0 2.0 + recv@GLIBC_2.0 2.0 + recvfrom@GLIBC_2.0 2.0 + recvmsg@GLIBC_2.0 2.0 + sem_close@GLIBC_2.1.1 2.1.1 + sem_destroy@GLIBC_2.0 2.0 + sem_destroy@GLIBC_2.1 2.1 + sem_getvalue@GLIBC_2.0 2.0 + sem_getvalue@GLIBC_2.1 2.1 + sem_init@GLIBC_2.0 2.0 + sem_init@GLIBC_2.1 2.1 + sem_open@GLIBC_2.1.1 2.1.1 + sem_post@GLIBC_2.0 2.0 + sem_post@GLIBC_2.1 2.1 + sem_timedwait@GLIBC_2.2 2.2 + sem_trywait@GLIBC_2.0 2.0 + sem_trywait@GLIBC_2.1 2.1 + sem_unlink@GLIBC_2.1.1 2.1.1 + sem_wait@GLIBC_2.0 2.0 + sem_wait@GLIBC_2.1 2.1 + send@GLIBC_2.0 2.0 + sendmsg@GLIBC_2.0 2.0 + sendto@GLIBC_2.0 2.0 + sigaction@GLIBC_2.0 2.0 + siglongjmp@GLIBC_2.0 2.0 + sigwait@GLIBC_2.0 2.0 + system@GLIBC_2.0 2.0 + tcdrain@GLIBC_2.0 2.0 + vfork@GLIBC_2.0 2.0 + wait@GLIBC_2.0 2.0 + waitpid@GLIBC_2.0 2.0 + write@GLIBC_2.0 2.0 +libresolv.so.2 libc6-i386 #MINVER# + GLIBC_2.0@GLIBC_2.0 2.0 + GLIBC_2.2@GLIBC_2.2 2.2 + GLIBC_2.3.2@GLIBC_2.3.2 2.3.2 + GLIBC_PRIVATE@GLIBC_PRIVATE 2.7 + __b64_ntop@GLIBC_2.0 2.0 + __b64_pton@GLIBC_2.0 2.0 + __dn_comp@GLIBC_2.0 2.0 + __dn_count_labels@GLIBC_2.0 2.0 + __dn_expand@GLIBC_2.2 2.2 + __dn_skipname@GLIBC_2.0 2.0 + __fp_nquery@GLIBC_2.0 2.0 + __fp_query@GLIBC_2.0 2.0 + __fp_resstat@GLIBC_2.0 2.0 + __hostalias@GLIBC_2.0 2.0 + __libc_res_nquery@GLIBC_PRIVATE 2.7 + __libc_res_nsearch@GLIBC_PRIVATE 2.7 + __loc_aton@GLIBC_2.0 2.0 + __loc_ntoa@GLIBC_2.0 2.0 + __ns_get16@GLIBC_PRIVATE 2.7 + __ns_get32@GLIBC_PRIVATE 2.7 + __ns_name_ntop@GLIBC_PRIVATE 2.7 + __ns_name_unpack@GLIBC_PRIVATE 2.7 + __p_cdname@GLIBC_2.0 2.0 + __p_cdnname@GLIBC_2.0 2.0 + __p_class@GLIBC_2.0 2.0 + __p_class_syms@GLIBC_2.0 2.0 + __p_fqname@GLIBC_2.0 2.0 + __p_fqnname@GLIBC_2.0 2.0 + __p_option@GLIBC_2.0 2.0 + __p_query@GLIBC_2.0 2.0 + __p_rcode@GLIBC_2.3.2 2.3.2 + __p_secstodate@GLIBC_2.0 2.0 + __p_time@GLIBC_2.0 2.0 + __p_type@GLIBC_2.0 2.0 + __p_type_syms@GLIBC_2.0 2.0 + __putlong@GLIBC_2.0 2.0 + __putshort@GLIBC_2.0 2.0 + __res_close@GLIBC_2.0 2.0 + __res_dnok@GLIBC_2.0 2.0 + __res_hnok@GLIBC_2.0 2.0 + __res_hostalias@GLIBC_2.2 2.2 + __res_isourserver@GLIBC_2.0 2.0 + __res_mailok@GLIBC_2.0 2.0 + __res_mkquery@GLIBC_2.2 2.2 + __res_nameinquery@GLIBC_2.0 2.0 + __res_nmkquery@GLIBC_2.2 2.2 + __res_nquery@GLIBC_2.2 2.2 + __res_nquerydomain@GLIBC_2.2 2.2 + __res_nsearch@GLIBC_2.2 2.2 + __res_nsend@GLIBC_2.2 2.2 + __res_ownok@GLIBC_2.0 2.0 + __res_queriesmatch@GLIBC_2.0 2.0 + __res_query@GLIBC_2.2 2.2 + __res_querydomain@GLIBC_2.2 2.2 + __res_search@GLIBC_2.2 2.2 + __res_send@GLIBC_2.0 2.0 + __sym_ntop@GLIBC_2.0 2.0 + __sym_ntos@GLIBC_2.0 2.0 + __sym_ston@GLIBC_2.0 2.0 + _gethtbyaddr@GLIBC_2.0 2.0 + _gethtbyname2@GLIBC_2.0 2.0 + _gethtbyname@GLIBC_2.0 2.0 + _gethtent@GLIBC_2.0 2.0 + _getlong@GLIBC_2.0 2.0 + _getshort@GLIBC_2.0 2.0 + _res_opcodes@GLIBC_2.0 2.0 + _sethtent@GLIBC_2.0 2.0 + dn_expand@GLIBC_2.0 2.0 + inet_net_ntop@GLIBC_2.0 2.0 + inet_net_pton@GLIBC_2.0 2.0 + inet_neta@GLIBC_2.0 2.0 + res_gethostbyaddr@GLIBC_2.0 2.0 + res_gethostbyname2@GLIBC_2.0 2.0 + res_gethostbyname@GLIBC_2.0 2.0 + res_mkquery@GLIBC_2.0 2.0 + res_query@GLIBC_2.0 2.0 + res_querydomain@GLIBC_2.0 2.0 + res_search@GLIBC_2.0 2.0 + res_send_setqhook@GLIBC_2.0 2.0 + res_send_setrhook@GLIBC_2.0 2.0 +librt.so.1 libc6-i386 #MINVER# + GLIBC_2.1@GLIBC_2.1 2.1 + GLIBC_2.2@GLIBC_2.2 2.2 + GLIBC_2.3.4@GLIBC_2.3.4 2.3.4 + GLIBC_2.4@GLIBC_2.4 2.4 + GLIBC_2.7@GLIBC_2.7 2.7 + __mq_open_2@GLIBC_2.7 2.7 + aio_cancel64@GLIBC_2.1 2.1 + aio_cancel@GLIBC_2.1 2.1 + aio_error64@GLIBC_2.1 2.1 + aio_error@GLIBC_2.1 2.1 + aio_fsync64@GLIBC_2.1 2.1 + aio_fsync@GLIBC_2.1 2.1 + aio_init@GLIBC_2.1 2.1 + aio_read64@GLIBC_2.1 2.1 + aio_read@GLIBC_2.1 2.1 + aio_return64@GLIBC_2.1 2.1 + aio_return@GLIBC_2.1 2.1 + aio_suspend64@GLIBC_2.1 2.1 + aio_suspend@GLIBC_2.1 2.1 + aio_write64@GLIBC_2.1 2.1 + aio_write@GLIBC_2.1 2.1 + clock_getcpuclockid@GLIBC_2.2 2.2 + clock_getres@GLIBC_2.2 2.2 + clock_gettime@GLIBC_2.2 2.2 + clock_nanosleep@GLIBC_2.2 2.2 + clock_settime@GLIBC_2.2 2.2 + lio_listio64@GLIBC_2.1 2.1 + lio_listio64@GLIBC_2.4 2.4 + lio_listio@GLIBC_2.1 2.1 + lio_listio@GLIBC_2.4 2.4 + mq_close@GLIBC_2.3.4 2.3.4 + mq_getattr@GLIBC_2.3.4 2.3.4 + mq_notify@GLIBC_2.3.4 2.3.4 + mq_open@GLIBC_2.3.4 2.3.4 + mq_receive@GLIBC_2.3.4 2.3.4 + mq_send@GLIBC_2.3.4 2.3.4 + mq_setattr@GLIBC_2.3.4 2.3.4 + mq_timedreceive@GLIBC_2.3.4 2.3.4 + mq_timedsend@GLIBC_2.3.4 2.3.4 + mq_unlink@GLIBC_2.3.4 2.3.4 + shm_open@GLIBC_2.2 2.2 + shm_unlink@GLIBC_2.2 2.2 + timer_create@GLIBC_2.2 2.2 + timer_delete@GLIBC_2.2 2.2 + timer_getoverrun@GLIBC_2.2 2.2 + timer_gettime@GLIBC_2.2 2.2 + timer_settime@GLIBC_2.2 2.2 +libthread_db.so.1 libc6-i386 #MINVER# + GLIBC_2.1.3@GLIBC_2.1.3 2.1.3 + GLIBC_2.2.3@GLIBC_2.2.3 2.2.3 + GLIBC_2.3.3@GLIBC_2.3.3 2.3.3 + GLIBC_2.3@GLIBC_2.3 2.3 + td_init@GLIBC_2.1.3 2.1.3 + td_log@GLIBC_2.1.3 2.1.3 + td_symbol_list@GLIBC_2.2.3 2.2.3 + td_ta_clear_event@GLIBC_2.1.3 2.1.3 + td_ta_delete@GLIBC_2.1.3 2.1.3 + td_ta_enable_stats@GLIBC_2.1.3 2.1.3 + td_ta_event_addr@GLIBC_2.1.3 2.1.3 + td_ta_event_getmsg@GLIBC_2.1.3 2.1.3 + td_ta_get_nthreads@GLIBC_2.1.3 2.1.3 + td_ta_get_ph@GLIBC_2.1.3 2.1.3 + td_ta_get_stats@GLIBC_2.1.3 2.1.3 + td_ta_map_id2thr@GLIBC_2.1.3 2.1.3 + td_ta_map_lwp2thr@GLIBC_2.1.3 2.1.3 + td_ta_new@GLIBC_2.1.3 2.1.3 + td_ta_reset_stats@GLIBC_2.1.3 2.1.3 + td_ta_set_event@GLIBC_2.1.3 2.1.3 + td_ta_setconcurrency@GLIBC_2.1.3 2.1.3 + td_ta_thr_iter@GLIBC_2.1.3 2.1.3 + td_ta_tsd_iter@GLIBC_2.1.3 2.1.3 + td_thr_clear_event@GLIBC_2.1.3 2.1.3 + td_thr_dbresume@GLIBC_2.1.3 2.1.3 + td_thr_dbsuspend@GLIBC_2.1.3 2.1.3 + td_thr_event_enable@GLIBC_2.1.3 2.1.3 + td_thr_event_getmsg@GLIBC_2.1.3 2.1.3 + td_thr_get_info@GLIBC_2.1.3 2.1.3 + td_thr_getfpregs@GLIBC_2.1.3 2.1.3 + td_thr_getgregs@GLIBC_2.1.3 2.1.3 + td_thr_getxregs@GLIBC_2.1.3 2.1.3 + td_thr_getxregsize@GLIBC_2.1.3 2.1.3 + td_thr_set_event@GLIBC_2.1.3 2.1.3 + td_thr_setfpregs@GLIBC_2.1.3 2.1.3 + td_thr_setgregs@GLIBC_2.1.3 2.1.3 + td_thr_setprio@GLIBC_2.1.3 2.1.3 + td_thr_setsigpending@GLIBC_2.1.3 2.1.3 + td_thr_setxregs@GLIBC_2.1.3 2.1.3 + td_thr_sigsetmask@GLIBC_2.1.3 2.1.3 + td_thr_tls_get_addr@GLIBC_2.3 2.3 + td_thr_tlsbase@GLIBC_2.3.3 2.3.3 + td_thr_tsd@GLIBC_2.1.3 2.1.3 + td_thr_validate@GLIBC_2.1.3 2.1.3 +libutil.so.1 libc6-i386 #MINVER# + GLIBC_2.0@GLIBC_2.0 2.0 + forkpty@GLIBC_2.0 2.0 + login@GLIBC_2.0 2.0 + login_tty@GLIBC_2.0 2.0 + logout@GLIBC_2.0 2.0 + logwtmp@GLIBC_2.0 2.0 + openpty@GLIBC_2.0 2.0 --- glibc-2.7.orig/debian/rules +++ glibc-2.7/debian/rules @@ -0,0 +1,218 @@ +#! /usr/bin/make -f +# -*- makefile -*- +# debian/rules file for GNU libc. +# Copyright 1998, 1999 by Joel Klecker +# Copyright 2000 Ben Collins +# Copyright 2003 Jeff Bailey +# This Makefile is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +# What are the phases to building glibc? + +# Unpack main tarball +# Do any necessary overlays +# Apply patches +# Determine how many builds there are to do. For Each build: + +# Create build directory +# Configure +# Build +# Test as desired +# Install to package directories + +# Run debian magic to build packages. + +# Things you may need to customise: + +# These are done as absolute paths so that in the case of filesystem size +# limitations, they can be overridden and spread all over. +build-tree := build-tree +stamp := $(CURDIR)/stamp-dir/ +DUMMY := $(shell mkdir -p $(stamp)) + +# The minimum package version with which these packages are compatible. +include debian/shlibver +shlib_dep = $(libc) (>= $(shlib_dep_ver)) + +# The version of the C library that locales needs for its format. +include debian/locales-depver + +# Beyond here you shouldn't need to customise anything: + +SHELL ?= =/bin/sh -e +DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) +DEB_HOST_GNU_CPU ?= $(shell dpkg-architecture -qDEB_HOST_GNU_CPU) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_HOST_GNU_SYSTEM ?= $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM) +DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) +DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) +DEB_BUILD_GNU_CPU ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_CPU) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_BUILD_GNU_SYSTEM ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_SYSTEM) + +DEB_HOST_GNU_CPU_ALT ?= +DEB_HOST_GNU_TYPE_ALT ?= + +DEB_SOURCE_PACKAGE := $(strip $(shell egrep '^Source: ' debian/control | cut -f 2 -d ':')) + +DEB_VERSION := $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ' ') + +DEB_TARBALL ?= $(shell ls glibc-[0-9.]*.tar.*) + +DEB_SRCDIR ?= $(shell ls -d $(build-tree)/glibc-*) +DEB_BUILDDIR ?= $(build-tree)/$(DEB_HOST_ARCH)-$(curpass) + +# The kernel uses different CPU appreviations (uname output) than the GNU +# tools do (config.sub). Map them. +KERNEL_HOST_CPU := $(subst powerpc,ppc,$(DEB_HOST_GNU_CPU)) + +# Support multiple makes at once based on number of processors +ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) +NJOBS := -j $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) +endif + +# use the package settings, not the settings from the environment +define unsetenv + unexport $(1) + $(1) = +endef +$(foreach v, CPPFLAGS CFLAGS CXXFLAGS LDFLAGS, $(if $(filter environment,$(origin $(v))),$(eval $(call unsetenv, $(v))))) + +# Default setup +GLIBC_PASSES ?= libc + +prefix=/usr +bindir=$(prefix)/bin +datadir=$(prefix)/share +localedir=$(prefix)/lib/locale +sysconfdir=/etc +libexecdir=$(prefix)/lib +rootsbindir=/sbin +includedir=$(prefix)/include +docdir=$(prefix)/share/doc +mandir=$(prefix)/share/man +sbindir=$(prefix)/sbin + +BUILD_CC = gcc-4.2 -fno-stack-protector +BUILD_CXX = g++-4.2 -fno-stack-protector + +RUN_TESTSUITE = yes + +TIMEOUTFACTOR = 1 + +# Set CC and CXX for cross-compiling +ifneq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH)) +CC = $(DEB_HOST_GNU_TYPE)-gcc +CXX = $(DEB_HOST_GNU_TYPE)-g++ +else +CC = $(BUILD_CC) +CXX = $(BUILD_CXX) +endif + +BUILD_CFLAGS = -O2 -g +HOST_CFLAGS = -pipe -O2 -fstrict-aliasing -g $(call xx,extra_cflags) + +configure_target := $(DEB_HOST_GNU_TYPE) + +# Normally we'll just use this for --build. If the architecture requires +# that build daemons be able to run a particular optimized library, then +# they can set the --build to match --host for that optimized build. +# Among other things this lets tests run. +configure_build := $(DEB_BUILD_GNU_TYPE) + +ifneq ($(NO_LOG),yes) +log_build = $(CURDIR)/log-build-$(call xx,configure_target)-$(curpass) +log_test = $(CURDIR)/log-test-$(call xx,configure_target)-$(curpass) +else +log_build := /dev/tty +log_test := /dev/tty +endif + +# Which build pass are we on? +curpass = $(filter-out %_,$(subst _,_ ,$@)) + +DEB_ARCH_REGULAR_PACKAGES = $(libc) $(libc)-dev $(libc)-dbg $(libc)-prof $(libc)-pic +DEB_INDEP_REGULAR_PACKAGES = glibc-doc glibc-source +DEB_UDEB_PACKAGES = $(libc)-udeb libnss-dns-udeb libnss-files-udeb + +# Generic kernel version check +define kernel_check +(if [ $(CURRENT_KERNEL_VERSION) -lt $(1) ]; then \ + false; \ +fi) +endef + +# Include libidn for both NPTL and LinuxThreads targets. +standard-add-ons = libidn, + +# Pull in all the per-arch magic! + +-include debian/sysdeps/$(DEB_HOST_ARCH_OS).mk +-include debian/sysdeps/$(DEB_HOST_ARCH).mk + +include debian/sysdeps/depflags.mk + +# Don't run dh_strip on this package +NOSTRIP_$(libc)-dbg = 1 + +ifeq ($(threads),yes) +DEB_ARCH_REGULAR_PACKAGES += nscd +endif + +# And now the rules... +include debian/rules.d/*.mk + +clean:: debhelper-clean + rm -rf $(patsubst %,debian/tmp-%,$(GLIBC_PASSES)) + rm -rf $(build-tree) + rm -rf $(stamp) + rm -f log-* + rm -rf debian/include + +# Required Debian targets +binary-indep: build testroot debian/control $(build-tree) \ + $(patsubst %,$(stamp)install_%,$(GLIBC_PASSES)) \ + $(patsubst %,$(stamp)binaryinst_%,$(DEB_INDEP_REGULAR_PACKAGES)) +# NOTE: Putting install_ stamps before binaryinst_ stamps in the list is the +# wrong way to represent dependencies. Fix this. +binary-arch: build testroot debian/control $(build-tree) \ + $(patsubst %,$(stamp)install_%,$(GLIBC_PASSES)) \ + $(patsubst %,$(stamp)binaryinst_%,$(DEB_ARCH_REGULAR_PACKAGES)) \ + $(patsubst %,$(stamp)binaryinst_%,$(DEB_UDEB_PACKAGES)) + +binary: binary-indep binary-arch + +build: $(patsubst %,$(stamp)build_%,$(GLIBC_PASSES)) \ + $(patsubst %,$(stamp)check_%,$(GLIBC_PASSES)) \ + check-test-results + +check-test-results: +ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS))) + @echo "SUMMARY OF FAILURES" + @while read arch fn expected; do \ + [ $$arch = $(DEB_HOST_ARCH) ] || continue; \ + if [ -f $$fn ]; then \ + current=$$(cat $$fn | grep '^make.*Error' | wc -l); \ + echo "$$fn: current: $$current, expected: $$expected"; \ + if [ "$$current" -lt "$$expected" ]; then \ + progressions="$$progressions $$fn"; \ + elif [ "$$current" -gt "$$expected" ]; then \ + regressions="$$regressions $$fn"; \ + fi; \ + else \ + notfound="$$notfound $$fn"; \ + fi; \ + done < debian/expected_test_summary; \ + if [ -n "$$notfound$$regressions" ]; then \ + echo ""; \ + [ -z "$$notfound" ] || echo >&2 "no reference found: $$notfound"; \ + [ -z "$$regressions" ] || echo >&2 "regressions in tests: $$regressions"; \ + exit 2; \ + fi + @echo "END SUMMARY OF FAILURES" +endif + +testroot: + dh_testroot --- glibc-2.7.orig/debian/README +++ glibc-2.7/debian/README @@ -0,0 +1,37 @@ +This directory contains the files needed to build glibc for the Debian +GNU/Linux and GNU/Hurd distributions. + +If you have pulled this version from CVS, you will probably need to go +and get the tar.bz2 files that match the file 'version'. You can +generally find these at sources.redhat.com in pub/libc. Put both the +regular glibc tar.bz2 *AND* the matching linuxthreads tar.bz2. After +that follow the usual build procedures. + +Compiling the GNU C library yourself requires a lot of resources. For +a complete build using dpkg-buildpackage you need at least 750MB free +disk space and at least 16MB of RAM and 32MB of swap space (if you +have only that much you're better off not running X at the same +time). Note that the C library on the Hurd is also somewhat larger: +you'll need over 800MB of free disk space to build Hurdish packages. + +A complete build takes 45 minutes on a Pentium III 735Mhz machine, and +25 minutes to run the test suite. The cause for this is the intricate +Makefile structure of glibc which needs a lot of computing power for +make to figure out the automatically generated dependencies. If you +are building all of the optimized libraries for the IA32 family, allow +2.5 hours for this build. + +For Linux, you will need at least the kernel headers for the specific +kernel version required for your machine's architecture. These are +specified in the `debian/sysdeps/linux.mk' file, and can be overridden +by exporting the environment variable LINUX_SOURCE set to the path to +the desired kernel. + +For the Hurd, you will need to have installed the GNU Mach and Hurd +header files (which come with the `gnumach-dev' and `hurd-dev' +packages). See the Hurd source package's `INSTALL' file for more +information. + +Please consider reading the `FAQ' file in this directory. It is also +suggested that you also read the `README' and `INSTALL' files in the +top-level of the glibc source tree. --- glibc-2.7.orig/debian/control.in/mips64 +++ glibc-2.7/debian/control.in/mips64 @@ -0,0 +1,22 @@ +Package: libc6-mips64 +Architecture: mips mipsel +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: 64bit Shared libraries for MIPS64 + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for MIPS64 systems. + +Package: libc6-dev-mips64 +Architecture: mips mipsel +Section: libdevel +Priority: optional +Provides: lib64c-dev +Depends: libc6-mips64 (= ${binary:Version}), libc6-dev (= ${binary:Version}) +Recommends: gcc-multilib +Description: GNU C Library: 64bit Development Libraries for MIPS64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for MIPS64 systems. + --- glibc-2.7.orig/debian/control.in/ppc64 +++ glibc-2.7/debian/control.in/ppc64 @@ -0,0 +1,22 @@ +Package: libc6-ppc64 +Architecture: powerpc +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: 64bit Shared libraries for PowerPC64 + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for PowerPC64 systems. + +Package: libc6-dev-ppc64 +Architecture: powerpc +Section: libdevel +Priority: optional +Provides: lib64c-dev +Depends: libc6-ppc64 (= ${binary:Version}), libc6-dev (= ${binary:Version}) +Recommends: gcc-multilib +Description: GNU C Library: 64bit Development Libraries for PowerPC64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for PowerPC64 systems. + --- glibc-2.7.orig/debian/control.in/opt +++ glibc-2.7/debian/control.in/opt @@ -0,0 +1,151 @@ +Package: libc6-sparcv9b +Architecture: sparc +Section: libs +Priority: extra +Pre-Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: Shared libraries [v9b optimized] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for the UltraSPARC v9b ABI. It only + needs to be installed on UltraSPARC machines. If you install this on a + non-UltraSPARC, it won't even be used. + +Package: libc6-sparcv9v +Architecture: sparc +Section: libs +Priority: extra +Pre-Depends: libc6 (= ${Source-Version}) +Description: GNU C Library: Shared libraries [v9v optimized] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for SUN4V Niagara and derivative + processors. It only needs to be installed on machines using + SUN4V Niagara and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-sparcv9v2 +Architecture: sparc +Section: libs +Priority: extra +Pre-Depends: libc6 (= ${Source-Version}) +Description: GNU C Library: Shared libraries [v9v2 optimized] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for SUN4V Niagara 2 and derivative + processors. It only needs to be installed on machines using + SUN4V Niagara 2 and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-sparc64b +Architecture: sparc +Section: base +Priority: extra +Depends: libc6 (= ${Source-Version}), lib64gcc1 +Conflicts: gcc-3.0 (<< 1:3.0.4ds3-11), libgcc1 (<< 1:3.0.4ds3-11), fakeroot (<< 0.4.5-2.7) +Description: GNU C Library: 64bit Shared libraries for UltraSPARC [v9b optimized] + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for UltraSPARC systems. + . + This set of libraries is optimized for UltraSPARC-III and derivative + processors. It only needs to be installed on machines using + UltraSPARC-III and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-sparc64v +Architecture: sparc +Section: base +Priority: extra +Depends: libc6 (= ${Source-Version}), lib64gcc1 +Conflicts: gcc-3.0 (<< 1:3.0.4ds3-11), libgcc1 (<< 1:3.0.4ds3-11), fakeroot (<< 0.4.5-2.7) +Description: GNU C Library: 64bit Shared libraries for UltraSPARC [v9v optimized] + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for UltraSPARC systems. + . + This set of libraries is optimized for SUN4V Niagara and derivative + processors. It only needs to be installed on machines using + SUN4V Niagara and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-sparc64v2 +Architecture: sparc +Section: base +Priority: extra +Depends: libc6 (= ${Source-Version}), lib64gcc1 +Conflicts: gcc-3.0 (<< 1:3.0.4ds3-11), libgcc1 (<< 1:3.0.4ds3-11), fakeroot (<< 0.4.5-2.7) +Description: GNU C Library: 64bit Shared libraries for UltraSPARC [v9v2 optimized] + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for UltraSPARC systems. + . + This set of libraries is optimized for SUN4V Niagara 2 and derivative + processors. It only needs to be installed on machines using + SUN4V Niagara 2 and derivatives. If you install this on a machine without + such chips, it won't even be used. + +Package: libc6-i686 +Architecture: i386 +Section: libs +Priority: extra +Pre-Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: Shared libraries [i686 optimized] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for i686 machines, and will only be + used if you are running a 2.6 kernel on an i686 class CPU (check the + output of `uname -m'). This includes Pentium Pro, Pentium II/III/IV, + Celeron CPU's and similar class CPU's (including clones such as AMD + Athlon/Opteron, VIA C3 Nehemiah, but not VIA C3 Ezra). + +Package: libc6-xen +Architecture: i386 +Section: libs +Priority: extra +Pre-Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: Shared libraries [Xen version] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for the Xen hypervisor, and will be + selected instead when running under Xen. + +Package: libc0.1-i686 +Architecture: kfreebsd-i386 +Section: libs +Priority: extra +Pre-Depends: libc0.1 (= ${binary:Version}) +Description: GNU C Library: Shared libraries [i686 optimized] + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for i686 machines, and will only be + used on an i686 class CPU (check the output of `uname -m'). This includes + Pentium Pro, Pentium II/III/IV, Celeron CPU's and similar class CPU's + (including clones such as AMD Athlon/Opteron, VIA C3 Nehemiah, but not VIA + C3 Ezla). + +Package: libc6.1-alphaev67 +Architecture: alpha +Section: libs +Priority: extra +Pre-Depends: libc6.1 (= ${binary:Version}) +Description: GNU C Library: Shared libraries (EV67 optimized) + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C + library and the standard math library, as well as many others. + . + This set of libraries is optimized for the Alpha EV67. It only + needs to be installed on Alpha EV67/68 and EV7 machines. If you install + this on an older machine, it won't even be used. + --- glibc-2.7.orig/debian/control.in/amd64 +++ glibc-2.7/debian/control.in/amd64 @@ -0,0 +1,24 @@ +Package: libc6-amd64 +Architecture: i386 +Section: libs +Priority: standard +Depends: libc6 (= ${binary:Version}) +Conflicts: amd64-libs (<= 1.2) +Description: GNU C Library: 64bit Shared libraries for AMD64 + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for AMD64 systems. + +Package: libc6-dev-amd64 +Architecture: i386 +Section: libdevel +Priority: optional +Depends: libc6-amd64 (= ${binary:Version}), libc6-dev (= ${binary:Version}) +Recommends: gcc-multilib +Replaces: amd64-libs-dev (<= 1.2) +Provides: lib64c-dev +Description: GNU C Library: 64bit Development Libraries for AMD64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for AMD64 systems. + --- glibc-2.7.orig/debian/control.in/libc6.1 +++ glibc-2.7/debian/control.in/libc6.1 @@ -0,0 +1,73 @@ +Package: libc6.1 +Architecture: alpha ia64 +Section: libs +Priority: required +Provides: ${locale-compat:Depends} +Suggests: debconf | debconf-2.0 +Depends: tzdata +Description: GNU C Library: Shared libraries + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + +Package: libc6.1-dev +Architecture: alpha ia64 +Section: libdevel +Priority: optional +Depends: libc6.1 (= ${binary:Version}) +Recommends: gcc | c-compiler +Description: GNU C Library: Development Libraries and Header Files + Contains the symlinks, headers, and object files needed to compile + and link programs which use the standard C library. + +Package: libc6.1-dbg +Architecture: alpha ia64 +Section: libdevel +Priority: extra +Provides: libc-dbg +Depends: libc6.1 (= ${binary:Version}) +Description: GNU C Library: Libraries with debugging symbols + Contains unstripped shared libraries. + This package is provided primarily to provide a backtrace with + names in a debugger, which makes it somewhat easier to interpret core + dumps. The libraries are installed in /usr/lib/debug and can be + used by placing that directory in LD_LIBRARY_PATH. + Most people will not need this package. + +Package: libc6.1-prof +Architecture: alpha ia64 +Section: libdevel +Priority: extra +Depends: libc6.1 (= ${binary:Version}) +Description: GNU C Library: Profiling Libraries + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: libc6.1-pic +Architecture: alpha ia64 +Section: libdevel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: libc6.1 (= ${binary:Version}) +Description: GNU C Library: PIC archive library + Contains an archive library (ar file) composed of individual shared objects. + This is used for creating a library which is a smaller subset of the + standard libc shared library. The reduced library is used on the Debian + boot floppies. If you are not making your own set of Debian boot floppies + using the `boot-floppies' package, you probably don't need this package. + +Package: libc6.1-udeb +XC-Package-Type: udeb +Architecture: alpha ia64 +Section: debian-installer +Priority: extra +Provides: libc6.1, libc-udeb, ${locale-compat:Depends} +Description: GNU C Library: Shared libraries - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains a minimal set of libraries needed for the Debian + installer. Do not install it on a normal system. + --- glibc-2.7.orig/debian/control.in/libc +++ glibc-2.7/debian/control.in/libc @@ -0,0 +1,73 @@ +Package: @libc@ +Architecture: @archs@ +Section: libs +Priority: required +Provides: ${locale-compat:Depends} +Suggests: debconf | debconf-2.0 +Depends: tzdata +Description: GNU C Library: Shared libraries + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + +Package: @libc@-dev +Architecture: @archs@ +Section: libdevel +Priority: optional +Depends: @libc@ (= ${binary:Version}) +Recommends: gcc | c-compiler +Description: GNU C Library: Development Libraries and Header Files + Contains the symlinks, headers, and object files needed to compile + and link programs which use the standard C library. + +Package: @libc@-dbg +Architecture: @archs@ +Section: libdevel +Priority: extra +Provides: libc-dbg +Depends: @libc@ (= ${binary:Version}) +Description: GNU C Library: Libraries with debugging symbols + Contains unstripped shared libraries. + This package is provided primarily to provide a backtrace with + names in a debugger, which makes it somewhat easier to interpret core + dumps. The libraries are installed in /usr/lib/debug and can be + used by placing that directory in LD_LIBRARY_PATH. + Most people will not need this package. + +Package: @libc@-prof +Architecture: @archs@ +Section: libdevel +Priority: extra +Depends: @libc@ (= ${binary:Version}) +Description: GNU C Library: Profiling Libraries + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: @libc@-pic +Architecture: @archs@ +Section: libdevel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: @libc@ (= ${binary:Version}) +Description: GNU C Library: PIC archive library + Contains an archive library (ar file) composed of individual shared objects. + This is used for creating a library which is a smaller subset of the + standard libc shared library. The reduced library is used on the Debian + boot floppies. If you are not making your own set of Debian boot floppies + using the `boot-floppies' package, you probably don't need this package. + +Package: @libc@-udeb +XC-Package-Type: udeb +Architecture: @archs@ +Section: debian-installer +Priority: extra +Provides: @libc@, libc-udeb, ${locale-compat:Depends} +Description: GNU C Library: Shared libraries - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains a minimal set of libraries needed for the Debian + installer. Do not install it on a normal system. + --- glibc-2.7.orig/debian/control.in/i386 +++ glibc-2.7/debian/control.in/i386 @@ -0,0 +1,25 @@ +Package: libc6-i386 +Architecture: amd64 +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}) +Replaces: libc6-dev-i386 +Conflicts: ia32-libs (<= 1.5) +Description: GNU C Library: 32bit shared libraries for AMD64 + This package includes shared versions of the standard C + library and the standard math library, as well as many others. + This is the 32bit version of the library, meant for AMD64 systems. + +Package: libc6-dev-i386 +Architecture: amd64 +Section: libdevel +Priority: optional +Conflicts: ia32-libs-dev (<< 1.18) +Provides: lib32c-dev +Depends: libc6-i386 (= ${binary:Version}), libc6-dev (= ${binary:Version}) +Recommends: gcc-multilib +Description: GNU C Library: 32bit development libraries for AMD64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 32bit version of the + library, meant for AMD64 systems. + --- glibc-2.7.orig/debian/control.in/sparc64 +++ glibc-2.7/debian/control.in/sparc64 @@ -0,0 +1,23 @@ +Package: libc6-sparc64 +Architecture: sparc +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}) +Conflicts: gcc-3.0 (<< 1:3.0.4ds3-11), libgcc1 (<< 1:3.0.4ds3-11), fakeroot (<< 0.4.5-2.7) +Description: GNU C Library: 64bit Shared libraries for UltraSPARC + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for UltraSPARC systems. + +Package: libc6-dev-sparc64 +Architecture: sparc +Section: libdevel +Priority: optional +Provides: lib64c-dev +Depends: libc6-sparc64 (= ${binary:Version}), libc6-dev (= ${binary:Version}) +Recommends: gcc-multilib +Description: GNU C Library: 64bit Development Libraries for UltraSPARC + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for UltraSPARC systems. + --- glibc-2.7.orig/debian/control.in/libc0.3 +++ glibc-2.7/debian/control.in/libc0.3 @@ -0,0 +1,73 @@ +Package: libc0.3 +Architecture: hurd-i386 +Section: libs +Priority: required +Provides: ${locale-compat:Depends} +Suggests: debconf | debconf-2.0 +Depends: tzdata +Description: GNU C Library: Shared libraries + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + +Package: libc0.3-dev +Architecture: hurd-i386 +Section: libdevel +Priority: optional +Depends: libc0.3 (= ${binary:Version}) +Recommends: gcc | c-compiler +Description: GNU C Library: Development Libraries and Header Files + Contains the symlinks, headers, and object files needed to compile + and link programs which use the standard C library. + +Package: libc0.3-dbg +Architecture: hurd-i386 +Section: libdevel +Priority: extra +Provides: libc-dbg +Depends: libc0.3 (= ${binary:Version}) +Description: GNU C Library: Libraries with debugging symbols + Contains unstripped shared libraries. + This package is provided primarily to provide a backtrace with + names in a debugger, which makes it somewhat easier to interpret core + dumps. The libraries are installed in /usr/lib/debug and can be + used by placing that directory in LD_LIBRARY_PATH. + Most people will not need this package. + +Package: libc0.3-prof +Architecture: hurd-i386 +Section: libdevel +Priority: extra +Depends: libc0.3 (= ${binary:Version}) +Description: GNU C Library: Profiling Libraries + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: libc0.3-pic +Architecture: hurd-i386 +Section: libdevel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: libc0.3 (= ${binary:Version}) +Description: GNU C Library: PIC archive library + Contains an archive library (ar file) composed of individual shared objects. + This is used for creating a library which is a smaller subset of the + standard libc shared library. The reduced library is used on the Debian + boot floppies. If you are not making your own set of Debian boot floppies + using the `boot-floppies' package, you probably don't need this package. + +Package: libc0.3-udeb +XC-Package-Type: udeb +Architecture: hurd-i386 +Section: debian-installer +Priority: extra +Provides: libc0.3, libc-udeb, ${locale-compat:Depends} +Description: GNU C Library: Shared libraries - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains a minimal set of libraries needed for the Debian + installer. Do not install it on a normal system. + --- glibc-2.7.orig/debian/control.in/libc6 +++ glibc-2.7/debian/control.in/libc6 @@ -0,0 +1,73 @@ +Package: libc6 +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc ppc64 sparc s390 hppa sh3 sh4 sh3eb sh4eb +Section: libs +Priority: required +Provides: ${locale-compat:Depends} +Suggests: debconf | debconf-2.0 +Depends: tzdata +Description: GNU C Library: Shared libraries + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + +Package: libc6-dev +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc ppc64 sparc s390 hppa sh3 sh4 sh3eb sh4eb +Section: libdevel +Priority: optional +Depends: libc6 (= ${binary:Version}) +Recommends: gcc | c-compiler +Description: GNU C Library: Development Libraries and Header Files + Contains the symlinks, headers, and object files needed to compile + and link programs which use the standard C library. + +Package: libc6-dbg +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc ppc64 sparc s390 hppa sh3 sh4 sh3eb sh4eb +Section: libdevel +Priority: extra +Provides: libc-dbg +Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: Libraries with debugging symbols + Contains unstripped shared libraries. + This package is provided primarily to provide a backtrace with + names in a debugger, which makes it somewhat easier to interpret core + dumps. The libraries are installed in /usr/lib/debug and can be + used by placing that directory in LD_LIBRARY_PATH. + Most people will not need this package. + +Package: libc6-prof +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc ppc64 sparc s390 hppa sh3 sh4 sh3eb sh4eb +Section: libdevel +Priority: extra +Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: Profiling Libraries + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: libc6-pic +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc ppc64 sparc s390 hppa sh3 sh4 sh3eb sh4eb +Section: libdevel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: PIC archive library + Contains an archive library (ar file) composed of individual shared objects. + This is used for creating a library which is a smaller subset of the + standard libc shared library. The reduced library is used on the Debian + boot floppies. If you are not making your own set of Debian boot floppies + using the `boot-floppies' package, you probably don't need this package. + +Package: libc6-udeb +XC-Package-Type: udeb +Architecture: amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc ppc64 sparc s390 hppa sh3 sh4 sh3eb sh4eb +Section: debian-installer +Priority: extra +Provides: libc6, libc-udeb, ${locale-compat:Depends} +Description: GNU C Library: Shared libraries - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains a minimal set of libraries needed for the Debian + installer. Do not install it on a normal system. + --- glibc-2.7.orig/debian/control.in/powerpc +++ glibc-2.7/debian/control.in/powerpc @@ -0,0 +1,22 @@ +Package: libc6-powerpc +Architecture: ppc64 +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: 32bit powerpc shared libraries for ppc64 + This package includes shared versions of the standard C + library and the standard math library, as well as many others. + This is the 32bit version of the library, meant for ppc64 systems. + +Package: libc6-dev-powerpc +Architecture: ppc64 +Section: libdevel +Priority: optional +Provides: lib32c-dev +Depends: libc6-powerpc (= ${binary:Version}), libc6-dev (= ${binary:Version}) +Recommends: gcc-multilib +Description: GNU C Library: 32bit powerpc development libraries for ppc64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 32bit version of the + library, meant for ppc64 systems. + --- glibc-2.7.orig/debian/control.in/s390x +++ glibc-2.7/debian/control.in/s390x @@ -0,0 +1,22 @@ +Package: libc6-s390x +Architecture: s390 +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: 64bit Shared libraries for IBM zSeries + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the 64bit version + of the library, meant for zSeries systems. + +Package: libc6-dev-s390x +Architecture: s390 +Section: libdevel +Priority: optional +Provides: lib64c-dev +Depends: libc6-s390x (= ${binary:Version}), libc6-dev (= ${binary:Version}) +Recommends: gcc-multilib +Description: GNU C Library: 64bit Development Libraries for IBM zSeries + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 64bit version of the + library, meant for zSeries systems. + --- glibc-2.7.orig/debian/control.in/kfreebsd-i386 +++ glibc-2.7/debian/control.in/kfreebsd-i386 @@ -0,0 +1,22 @@ +Package: libc0.1-i386 +Architecture: kfreebsd-amd64 +Section: libs +Priority: optional +Depends: libc0.1 (= ${binary:Version}) +Description: GNU C Library: 32bit shared libraries for AMD64 + This package includes shared versions of the standard C + library and the standard math library, as well as many others. + This is the 32bit version of the library, meant for AMD64 systems. + +Package: libc0.1-dev-i386 +Architecture: kfreebsd-amd64 +Section: libdevel +Priority: optional +Provides: lib32c-dev +Depends: libc0.1-i386 (= ${binary:Version}), libc0.1-dev (= ${binary:Version}) +Recommends: gcc-multilib +Description: GNU C Library: 32bit development libraries for AMD64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the 32bit version of the + library, meant for AMD64 systems. + --- glibc-2.7.orig/debian/control.in/mipsn32 +++ glibc-2.7/debian/control.in/mipsn32 @@ -0,0 +1,22 @@ +Package: libc6-mipsn32 +Architecture: mips mipsel +Section: libs +Priority: optional +Depends: libc6 (= ${binary:Version}) +Description: GNU C Library: n32 Shared libraries for MIPS64 + This package includes shared versions of the standard C library and the + standard math library, as well as many others. This is the n32 version + of the library, meant for MIPS64 systems. + +Package: libc6-dev-mipsn32 +Architecture: mips mipsel +Section: libdevel +Priority: optional +Provides: libn32c-dev +Depends: libc6-mipsn32 (= ${binary:Version}), libc6-dev (= ${binary:Version}) +Recommends: gcc-multilib +Description: GNU C Library: n32 Development Libraries for MIPS64 + Contains the symlinks and object files needed to compile and link programs + which use the standard C library. This is the n32 version of the + library, meant for MIPS64 systems. + --- glibc-2.7.orig/debian/control.in/libnss-dns-udeb +++ glibc-2.7/debian/control.in/libnss-dns-udeb @@ -0,0 +1,13 @@ +Package: libnss-dns-udeb +XC-Package-Type: udeb +Architecture: any +Section: debian-installer +Priority: extra +Description: GNU C Library: NSS helper for DNS - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains the DNS NSS helper needed for the Debian installer. + Do not install it on a normal system. + --- glibc-2.7.orig/debian/control.in/libnss-files-udeb +++ glibc-2.7/debian/control.in/libnss-files-udeb @@ -0,0 +1,13 @@ +Package: libnss-files-udeb +XC-Package-Type: udeb +Architecture: any +Section: debian-installer +Priority: extra +Description: GNU C Library: NSS helper for files - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains the files NSS helper needed for the Debian installer. + Do not install it on a normal system. + --- glibc-2.7.orig/debian/control.in/libc0.1 +++ glibc-2.7/debian/control.in/libc0.1 @@ -0,0 +1,73 @@ +Package: libc0.1 +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: libs +Priority: required +Provides: ${locale-compat:Depends} +Suggests: debconf | debconf-2.0 +Depends: tzdata +Description: GNU C Library: Shared libraries + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + +Package: libc0.1-dev +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: libdevel +Priority: optional +Depends: libc0.1 (= ${binary:Version}) +Recommends: gcc | c-compiler +Description: GNU C Library: Development Libraries and Header Files + Contains the symlinks, headers, and object files needed to compile + and link programs which use the standard C library. + +Package: libc0.1-dbg +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: libdevel +Priority: extra +Provides: libc-dbg +Depends: libc0.1 (= ${binary:Version}) +Description: GNU C Library: Libraries with debugging symbols + Contains unstripped shared libraries. + This package is provided primarily to provide a backtrace with + names in a debugger, which makes it somewhat easier to interpret core + dumps. The libraries are installed in /usr/lib/debug and can be + used by placing that directory in LD_LIBRARY_PATH. + Most people will not need this package. + +Package: libc0.1-prof +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: libdevel +Priority: extra +Depends: libc0.1 (= ${binary:Version}) +Description: GNU C Library: Profiling Libraries + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: libc0.1-pic +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: libdevel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: libc0.1 (= ${binary:Version}) +Description: GNU C Library: PIC archive library + Contains an archive library (ar file) composed of individual shared objects. + This is used for creating a library which is a smaller subset of the + standard libc shared library. The reduced library is used on the Debian + boot floppies. If you are not making your own set of Debian boot floppies + using the `boot-floppies' package, you probably don't need this package. + +Package: libc0.1-udeb +XC-Package-Type: udeb +Architecture: kfreebsd-i386 kfreebsd-amd64 +Section: debian-installer +Priority: extra +Provides: libc0.1, libc-udeb, ${locale-compat:Depends} +Description: GNU C Library: Shared libraries - udeb + Contains the standard libraries that are used by nearly all programs on + the system. This package includes shared versions of the standard C library + and the standard math library, as well as many others. + . + This package contains a minimal set of libraries needed for the Debian + installer. Do not install it on a normal system. + --- glibc-2.7.orig/debian/control.in/main +++ glibc-2.7/debian/control.in/main @@ -0,0 +1,78 @@ +Source: @glibc@ +Section: libs +Priority: required +Build-Depends: gettext, make (>= 3.80-1), dpkg-dev (>= 1.13.5), bzip2, file, quilt, + texinfo (>= 4.0), texi2html, + autoconf, sed (>= 4.0.5-4), gawk, debhelper (>= 5.0), + linux-libc-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], + mig (>= 1.3-2) [hurd-i386], hurd-dev (>= 20020608-1) [hurd-i386], gnumach-dev [hurd-i386], libpthread-stubs0-dev [hurd-i386], + kfreebsd-kernel-headers [kfreebsd-i386 kfreebsd-amd64], + binutils (>= 2.17cvs20070426-1), + g++-4.2 (>= 4.2.2), g++-4.2-multilib [amd64 i386 kfreebsd-amd64 powerpc ppc64 s390 sparc] +Build-Depends-Indep: perl, po-debconf (>= 1.0) +Maintainer: Ubuntu Core developers +XSBC-Original-Maintainer: GNU Libc Maintainers +Uploaders: Ben Collins , GOTO Masanori , Philip Blundell , Jeff Bailey , Daniel Jacobowitz , Clint Adams , Aurelien Jarno , Pierre Habouzit +Standards-Version: 3.7.3 + +Package: @glibc@-doc +Architecture: all +Section: doc +Priority: optional +Provides: @glibc@-doc-reference +Conflicts: @glibc@-doc-reference +Replaces: @glibc@-doc-reference +Description: GNU C Library: Documentation + Contains The GNU C Library Reference manual in info and html format + as well as the man pages for libpthread functions and the complete + GNU C Library ChangeLog. + +Package: glibc-source +Architecture: all +Section: devel +Priority: optional +Description: GNU C Library: sources + This package contains the sources and patches which are needed to + build glibc. + +Package: locales +Architecture: all +Section: libs +Priority: standard +Depends: ${locale:Depends}, debconf | debconf-2.0 +Conflicts: base-config, belocs-locales-bin, belocs-locales-data +Replaces: base-config, lliurex-belocs-locales-data +Description: GNU C Library: National Language (locale) data [support] + Machine-readable data files, shared objects and programs used by the + C library for localization (l10n) and internationalization (i18n) support. + . + This package contains the libc.mo i18n files, plus tools to generate + locale definitions from source files (included in this package). It + allows you to customize which definitions actually get + generated. This is a space-saver over how this package used to be, + with all locales generated by default. This created a package that + unpacked to an excess of 30 megs. + +Package: locales-all +Architecture: any +Section: libs +Priority: extra +Depends: ${locale:Depends}, lzma +Provides: locales +Description: GNU C Library: Precompiled locale data + This package contains the precompiled locale data for all supported locales. + A better alternative is to install the locales package and only select + desired locales, but it can be useful on a low-memory machine because some + locale files take a lot of memory to be compiled. + +Package: nscd +Architecture: any +Section: admin +Priority: optional +Depends: ${shlibs:Depends} +Description: GNU C Library: Name Service Cache Daemon + A daemon which handles passwd, group and host lookups + for running programs and caches the results for the next + query. You should install this package only if you use + slow Services like LDAP, NIS or NIS+ + --- glibc-2.7.orig/debian/local/etc_init.d/glibc.sh +++ glibc-2.7/debian/local/etc_init.d/glibc.sh @@ -0,0 +1,17 @@ +#! /bin/sh -e +# +### BEGIN INIT INFO +# Provides: glibc +# Required-Start: +# Required-Stop: +# Default-Start: S +# Default-Stop: +### END INIT INFO +# +# +# This script detects deprecated kernel versions incompatible with +# the current version of the glibc + +# glibc kernel version check: KERNEL_VERSION_CHECK + +: exit 0 --- glibc-2.7.orig/debian/local/manpages/nscd_nischeck.8 +++ glibc-2.7/debian/local/manpages/nscd_nischeck.8 @@ -0,0 +1,31 @@ +.\" Placed in the Public Domain by Sebastian Rittau . +.Dd January 08, 2001 +.Dt NSCD_NISCHECK 8 +.Os "GNU C Library 2.2" +.Sh NAME +.Nm nscd_nischeck +.Nd check NIS+ tables for read permissions +.Sh SYNOPSIS +.Nm nscd_nischeck +.Ar OPTION | TABLE +.Sh DESCRIPTION +.Nm Nscd_nischeck +checks if a given NIS+ table is world-readable. 0 is returned in +this case. Otherwise, only authenticated users can read the table +and 1 is returned. +.Sh OPTIONS +.Bl -tag -width Ds +.It Fl ? , Fl -help +Print a short help list. +.El +.Bl -tag -width Ds +.It Fl -usage +Print a short usage message. +.El +.Bl -tag -width Ds +.It Fl V , Fl -version +Print program version. +.El +.Sh SEE ALSO +GNU C Library info file, +.Xr nscd 8 --- glibc-2.7.orig/debian/local/manpages/update-locale.8 +++ glibc-2.7/debian/local/manpages/update-locale.8 @@ -0,0 +1,49 @@ +.TH UPDATE-LOCALE 8 "April 2006" "Debian GNU/Linux" +.SH "NAME" +.LP +update-locale \- Modify global locale settings +.SH "SYNTAX" +.LP +update-locale +.RI [ OPTIONS ] +[\fIvar\fP=\fIlocale\fP | \fIvar\fP] +[...] +.SH "DESCRIPTION" +.LP +This program can be called by maintainer scripts when Debian packages are +installed or removed, it updates the \fB/etc/default/locale\fP file to +reflect changes in system configuration related to global locale settings. +When variables have no value assigned, they are removed from the locale +file. +Some basic checks are performed to ensure that requested settings are valid. +.SH "OPTIONS" +.TP +.B \-\-help +Display an help message and exit. +.TP +.B \-\-reset +Variables which are not set on command-line are cleared out. +.TP +.BI \-\-locale\-file " FILE" +Define file containing locale variables. (Default: +.BR /etc/default/locale ) +.TP +.B \-\-no\-checks +Do not perform sanity checks on locale variables. +.SH "EXAMPLE" +.nf +The command +.ft B + update-locale LANG=en_CA.UTF-8 LANGUAGE +.ft R +sets \fBLANG\fP to \fBen_CA.UTF-8\fP and removes definitions for \fBLANGUAGE\fP. +.SH "FILES" +.TP +.B /etc/default/locale +File where global locale settings are stored. +.SH "AUTHOR" +.LP +Denis Barbier +.SH "SEE ALSO" +.LP +locale\-gen(8), locale(1) --- glibc-2.7.orig/debian/local/manpages/catchsegv.1 +++ glibc-2.7/debian/local/manpages/catchsegv.1 @@ -0,0 +1,218 @@ +.rn '' }` +''' $RCSfile: catchsegv.1,v $$Revision: 1.1.2.1 $$Date: 2003/09/22 21:33:35 $ +''' +''' $Log: catchsegv.1,v $ +''' Revision 1.1.2.1 2003/09/22 21:33:35 jbailey +''' New directory for things we add to the package +''' +''' +.de Sh +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp +.if t .sp .5v +.if n .sp +.. +.de Ip +.br +.ie \\n(.$>=3 .ne \\$3 +.el .ne 3 +.IP "\\$1" \\$2 +.. +.de Vb +.ft CW +.nf +.ne \\$1 +.. +.de Ve +.ft R + +.fi +.. +''' +''' +''' Set up \*(-- to give an unbreakable dash; +''' string Tr holds user defined translation string. +''' Bell System Logo is used as a dummy character. +''' +.tr \(*W-|\(bv\*(Tr +.ie n \{\ +.ds -- \(*W- +.ds PI pi +.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +.ds L" "" +.ds R" "" +''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of +''' \*(L" and \*(R", except that they are used on ".xx" lines, +''' such as .IP and .SH, which do another additional levels of +''' double-quote interpretation +.ds M" """ +.ds S" """ +.ds N" """"" +.ds T" """"" +.ds L' ' +.ds R' ' +.ds M' ' +.ds S' ' +.ds N' ' +.ds T' ' +'br\} +.el\{\ +.ds -- \(em\| +.tr \*(Tr +.ds L" `` +.ds R" '' +.ds M" `` +.ds S" '' +.ds N" `` +.ds T" '' +.ds L' ` +.ds R' ' +.ds M' ` +.ds S' ' +.ds N' ` +.ds T' ' +.ds PI \(*p +'br\} +.\" If the F register is turned on, we'll generate +.\" index entries out stderr for the following things: +.\" TH Title +.\" SH Header +.\" Sh Subsection +.\" Ip Item +.\" X<> Xref (embedded +.\" Of course, you have to process the output yourself +.\" in some meaningful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH CATCHSEGV 1 "etch" "7/Jan/2001" "Debian GNU/Linux" +.UC +.if n .hy 0 +.if n .na +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.de CQ \" put $1 in typewriter font +.ft CW +'if n "\c +'if t \\&\\$1\c +'if n \\&\\$1\c +'if n \&" +\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 +'.ft R +.. +.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2 +. \" AM - accent mark definitions +.bd B 3 +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds ? ? +. ds ! ! +. ds / +. ds q +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' +. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] +.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' +.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' +.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +.ds oe o\h'-(\w'o'u*4/10)'e +.ds Oe O\h'-(\w'O'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds v \h'-1'\o'\(aa\(ga' +. ds _ \h'-1'^ +. ds . \h'-1'. +. ds 3 3 +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +. ds oe oe +. ds Oe OE +.\} +.rm #[ #] #H #V #F C +.SH "NAME" +catchsegv \- Catch segmentation faults in programs +.SH "SYNOPSIS" +\fBcatchsegv\fR \fBprogram\fR [\fBargs\fR] +.SH "DESCRIPTION" +Used to debug segmentation faults in programs. The output is the +content of registers, plus a backtrace. Basically you call your +program and its arguments as the arguments to catchsegv. +.SH "AUTHOR" +\fIcatchsegv\fR was written by Ulrich Drepper for the GNU C Library +.PP +This man page was written by Ben Collins for +the Debian GNU/Linux system. + +.rn }` '' +.IX Title "CATCHSEGV 1" +.IX Name "catchsegv - Catch segmentation faults in programs" + +.IX Header "NAME" + +.IX Header "SYNOPSIS" + +.IX Header "DESCRIPTION" + +.IX Header "AUTHOR" + --- glibc-2.7.orig/debian/local/manpages/zic.8 +++ glibc-2.7/debian/local/manpages/zic.8 @@ -0,0 +1,413 @@ +.TH ZIC 8 +.SH NAME +zic \- time zone compiler +.SH SYNOPSIS +.B zic +[ +.B \-v +] [ +.B \-d +.I directory +] [ +.B \-l +.I localtime +] [ +.B \-p +.I posixrules +] [ +.B \-L +.I leapsecondfilename +] [ +.B \-s +] [ +.B \-y +.I command +] [ +.I filename +\&... ] +.SH DESCRIPTION +.if t .ds lq `` +.if t .ds rq '' +.if n .ds lq \&"\" +.if n .ds rq \&"\" +.de q +\\$3\*(lq\\$1\*(rq\\$2 +.. +.I Zic +reads text from the file(s) named on the command line +and creates the time conversion information files specified in this input. +If a +.I filename +is +.BR \- , +the standard input is read. +.PP +These options are available: +.TP +.BI "\-d " directory +Create time conversion information files in the named directory rather than +in the standard directory named below. +.TP +.BI "\-l " timezone +Use the given time zone as local time. +.I Zic +will act as if the input contained a link line of the form +.sp +.ti +.5i +Link \fItimezone\fP localtime +.TP +.BI "\-p " timezone +Use the given time zone's rules when handling POSIX-format +time zone environment variables. +.I Zic +will act as if the input contained a link line of the form +.sp +.ti +.5i +Link \fItimezone\fP posixrules +.TP +.BI "\-L " leapsecondfilename +Read leap second information from the file with the given name. +If this option is not used, +no leap second information appears in output files. +.TP +.B \-v +Complain if a year that appears in a data file is outside the range +of years representable by +.IR time (2) +values. +.TP +.B \-s +Limit time values stored in output files to values that are the same +whether they're taken to be signed or unsigned. +You can use this option to generate SVVS-compatible files. +.TP +.BI "\-y " command +Use the given +.I command +rather than +.B yearistype +when checking year types (see below). +.PP +Input lines are made up of fields. +Fields are separated from one another by any number of white space characters. +Leading and trailing white space on input lines is ignored. +An unquoted sharp character (#) in the input introduces a comment which extends +to the end of the line the sharp character appears on. +White space characters and sharp characters may be enclosed in double quotes +(") if they're to be used as part of a field. +Any line that is blank (after comment stripping) is ignored. +Non-blank lines are expected to be of one of three types: +rule lines, zone lines, and link lines. +.PP +A rule line has the form +.nf +.ti +.5i +.ta \w'Rule\0\0'u +\w'NAME\0\0'u +\w'FROM\0\0'u +\w'1973\0\0'u +\w'TYPE\0\0'u +\w'Apr\0\0'u +\w'lastSun\0\0'u +\w'2:00\0\0'u +\w'SAVE\0\0'u +.sp +Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +.sp +For example: +.ti +.5i +.sp +Rule US 1967 1973 \- Apr lastSun 2:00 1:00 D +.sp +.fi +The fields that make up a rule line are: +.TP "\w'LETTER/S'u" +.B NAME +Gives the (arbitrary) name of the set of rules this rule is part of. +.TP +.B FROM +Gives the first year in which the rule applies. +Any integer year can be supplied; the Gregorian calendar is assumed. +The word +.B minimum +(or an abbreviation) means the minimum year representable as an integer. +The word +.B maximum +(or an abbreviation) means the maximum year representable as an integer. +Rules can describe times that are not representable as time values, +with the unrepresentable times ignored; this allows rules to be portable +among hosts with differing time value types. +.TP +.B TO +Gives the final year in which the rule applies. +In addition to +.B minimum +and +.B maximum +(as above), +the word +.B only +(or an abbreviation) +may be used to repeat the value of the +.B FROM +field. +.TP +.B TYPE +Gives the type of year in which the rule applies. +If +.B TYPE +is +.B \- +then the rule applies in all years between +.B FROM +and +.B TO +inclusive. +If +.B TYPE +is something else, then +.I zic +executes the command +.ti +.5i +\fByearistype\fP \fIyear\fP \fItype\fP +.br +to check the type of a year: +an exit status of zero is taken to mean that the year is of the given type; +an exit status of one is taken to mean that the year is not of the given type. +.TP +.B IN +Names the month in which the rule takes effect. +Month names may be abbreviated. +.TP +.B ON +Gives the day on which the rule takes effect. +Recognized forms include: +.nf +.in +.5i +.sp +.ta \w'Sun<=25\0\0'u +5 the fifth of the month +lastSun the last Sunday in the month +lastMon the last Monday in the month +Sun>=8 first Sunday on or after the eighth +Sun<=25 last Sunday on or before the 25th +.fi +.in -.5i +.sp +Names of days of the week may be abbreviated or spelled out in full. +Note that there must be no spaces within the +.B ON +field. +.TP +.B AT +Gives the time of day at which the rule takes effect. +Recognized forms include: +.nf +.in +.5i +.sp +.ta \w'1:28:13\0\0'u +2 time in hours +2:00 time in hours and minutes +15:00 24-hour format time (for times after noon) +1:28:14 time in hours, minutes, and seconds +.fi +.in -.5i +.sp +where hour 0 is midnight at the start of the day, +and hour 24 is midnight at the end of the day. +Any of these forms may be followed by the letter +.B w +if the given time is local +.q "wall clock" +time, +.B s +if the given time is local +.q standard +time, or +.B u +(or +.B g +or +.BR z ) +if the given time is universal time; +in the absence of an indicator, +wall clock time is assumed. +.TP +.B SAVE +Gives the amount of time to be added to local standard time when the rule is in +effect. +This field has the same format as the +.B AT +field +(although, of course, the +.B w +and +.B s +suffixes are not used). +.TP +.B LETTER/S +Gives the +.q "variable part" +(for example, the +.q S +or +.q D +in +.q EST +or +.q EDT ) +of time zone abbreviations to be used when this rule is in effect. +If this field is +.BR \- , +the variable part is null. +.PP +A zone line has the form +.sp +.nf +.ti +.5i +.ta \w'Zone\0\0'u +\w'Australia/Adelaide\0\0'u +\w'GMTOFF\0\0'u +\w'RULES/SAVE\0\0'u +\w'FORMAT\0\0'u +Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL] +.sp +For example: +.sp +.ti +.5i +Zone Australia/Adelaide 9:30 Aus CST 1971 Oct 31 2:00 +.sp +.fi +The fields that make up a zone line are: +.TP "\w'GMTOFF'u" +.B NAME +The name of the time zone. +This is the name used in creating the time conversion information file for the +zone. +.TP +.B GMTOFF +The amount of time to add to UTC to get standard time in this zone. +This field has the same format as the +.B AT +and +.B SAVE +fields of rule lines; +begin the field with a minus sign if time must be subtracted from UTC. +.TP +.B RULES/SAVE +The name of the rule(s) that apply in the time zone or, +alternately, an amount of time to add to local standard time. +If this field is +.B \- +then standard time always applies in the time zone. +.TP +.B FORMAT +The format for time zone abbreviations in this time zone. +The pair of characters +.B %s +is used to show where the +.q "variable part" +of the time zone abbreviation goes. +Alternately, +a slash (/) +separates standard and daylight abbreviations. +.TP +.B UNTIL +The time at which the UTC offset or the rule(s) change for a location. +It is specified as a year, a month, a day, and a time of day. +If this is specified, +the time zone information is generated from the given UTC offset +and rule change until the time specified. +The month, day, and time of day have the same format as the IN, ON, and AT +columns of a rule; trailing columns can be omitted, and default to the +earliest possible value for the missing columns. +.IP +The next line must be a +.q continuation +line; this has the same form as a zone line except that the +string +.q Zone +and the name are omitted, as the continuation line will +place information starting at the time specified as the +.B UNTIL +field in the previous line in the file used by the previous line. +Continuation lines may contain an +.B UNTIL +field, just as zone lines do, indicating that the next line is a further +continuation. +.PP +A link line has the form +.sp +.nf +.ti +.5i +.ta \w'Link\0\0'u +\w'Europe/Istanbul\0\0'u +Link LINK-FROM LINK-TO +.sp +For example: +.sp +.ti +.5i +Link Europe/Istanbul Asia/Istanbul +.sp +.fi +The +.B LINK-FROM +field should appear as the +.B NAME +field in some zone line; +the +.B LINK-TO +field is used as an alternate name for that zone. +.PP +Except for continuation lines, +lines may appear in any order in the input. +.PP +Lines in the file that describes leap seconds have the following form: +.nf +.ti +.5i +.ta \w'Leap\0\0'u +\w'YEAR\0\0'u +\w'MONTH\0\0'u +\w'DAY\0\0'u +\w'HH:MM:SS\0\0'u +\w'CORR\0\0'u +.sp +Leap YEAR MONTH DAY HH:MM:SS CORR R/S +.sp +For example: +.ti +.5i +.sp +Leap 1974 Dec 31 23:59:60 + S +.sp +.fi +The +.BR YEAR , +.BR MONTH , +.BR DAY , +and +.B HH:MM:SS +fields tell when the leap second happened. +The +.B CORR +field +should be +.q + +if a second was added +or +.q - +if a second was skipped. +.\" There's no need to document the following, since it's impossible for more +.\" than one leap second to be inserted or deleted at a time. +.\" The C Standard is in error in suggesting the possibility. +.\" See Terry J Quinn, The BIPM and the accurate measure of time, +.\" Proc IEEE 79, 7 (July 1991), 894-905. +.\" or +.\" .q ++ +.\" if two seconds were added +.\" or +.\" .q -- +.\" if two seconds were skipped. +The +.B R/S +field +should be (an abbreviation of) +.q Stationary +if the leap second time given by the other fields should be interpreted as UTC +or +(an abbreviation of) +.q Rolling +if the leap second time given by the other fields should be interpreted as +local wall clock time. +.SH NOTE +For areas with more than two types of local time, +you may need to use local standard time in the +.B AT +field of the earliest transition time's rule to ensure that +the earliest transition time recorded in the compiled file is correct. +.SH FILE +/usr/share/zoneinfo standard directory used for created files +.SH "SEE ALSO" +ctime(3), zdump(1) +.\" @(#)zic.8 7.18 --- glibc-2.7.orig/debian/local/manpages/locale.alias.5 +++ glibc-2.7/debian/local/manpages/locale.alias.5 @@ -0,0 +1,45 @@ +.\" -*- nroff -*- +.\" Copyright (C) 2002 Free Software Foundation, Inc. +.\" +.\" This program is free software; you can redistribute it and/or modify +.\" it under the terms of the GNU General Public License as published by +.\" the Free Software Foundation; either version 2, or (at your option) +.\" any later version. +.\" +.\" This program is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public License +.\" along with this program; if not, write to the Free Software Foundation, +.\" Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +.TH locale.alias 5 "January 2002" "Debian GNU/Linux" +.SH "NAME" +locale.alias \- Locale name alias data base +.SH "DESCRIPTION" +The locale.alias database file (/etc/locale.alias) is used by the +.B locale +command and the +.B X Window System +. +It describes aliases for the locales, with each line being of the +form + + + +Where is in the POSIX format: xx_YY.CHARSET. +The first two letters \fIxx\fR are the ISO-639 Language code, + the next two \fIYY\fR are the ISO-3166 Country code, +and the Charset is one of the character sets (listed in +\fI/usr/share/i18n/charsets\fR +). +The aliases can be free text; they are normally the English language +name, or simpler versions of the POSIX locale name. + +Lines beginning with Hash ("#") are treated as comments and ignored. + +.SH "SEE ALSO" +locale(1), localedef(1), locale-gen(8), locale.gen(5) +.SH "AUTHOR" +Alastair McKinstry --- glibc-2.7.orig/debian/local/manpages/gencat.1 +++ glibc-2.7/debian/local/manpages/gencat.1 @@ -0,0 +1,240 @@ +.rn '' }` +''' $RCSfile: gencat.1,v $$Revision: 1.1 $$Date: 2007-04-11 03:07:27 +0000 (Wed, 11 Apr 2007) $ +''' +''' $Log: gencat.1,v $ +''' Revision 1.1 2003/11/03 17:37:27 jbailey +''' - debian/local/manpages/gencat.1: New file. +''' - debian/local/manpages/trace.1: New file. +''' - debian/debhelper.in/libc-dev.manpages: Install them. +''' - debian/local/manpages/iconvconfig.8: New file. +''' - debian/debhelper.in/libc.manpages: Install it. +''' +''' Revision 1.1.2.2 2003/10/28 05:48:08 dan +''' - Re-add debian/patches/80_glibc232-locales-nb_NO-fix.dpatch, which had +''' gotten lost. +''' - Re-add typo fixes to iconv.1 and rpcgen.1. +''' - Merge iconv.1 fix to iconv.pod. +''' - Fix ld.so name in ld.so.8. +''' - Re-add fix for locale-gen and POSIXLY_CORRECT. +''' +''' +.de Sh +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp +.if t .sp .5v +.if n .sp +.. +.de Ip +.br +.ie \\n(.$>=3 .ne \\$3 +.el .ne 3 +.IP "\\$1" \\$2 +.. +.de Vb +.ft CW +.nf +.ne \\$1 +.. +.de Ve +.ft R + +.fi +.. +''' +''' +''' Set up \*(-- to give an unbreakable dash; +''' string Tr holds user defined translation string. +''' Bell System Logo is used as a dummy character. +''' +.tr \(*W-|\(bv\*(Tr +.ie n \{\ +.ds -- \(*W- +.ds PI pi +.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +.ds L" "" +.ds R" "" +''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of +''' \*(L" and \*(R", except that they are used on ".xx" lines, +''' such as .IP and .SH, which do another additional levels of +''' double-quote interpretation +.ds M" """ +.ds S" """ +.ds N" """"" +.ds T" """"" +.ds L' ' +.ds R' ' +.ds M' ' +.ds S' ' +.ds N' ' +.ds T' ' +'br\} +.el\{\ +.ds -- \(em\| +.tr \*(Tr +.ds L" `` +.ds R" '' +.ds M" `` +.ds S" '' +.ds N" `` +.ds T" '' +.ds L' ` +.ds R' ' +.ds M' ` +.ds S' ' +.ds N' ` +.ds T' ' +.ds PI \(*p +'br\} +.\" If the F register is turned on, we'll generate +.\" index entries out stderr for the following things: +.\" TH Title +.\" SH Header +.\" Sh Subsection +.\" Ip Item +.\" X<> Xref (embedded +.\" Of course, you have to process the output yourself +.\" in some meaningful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH GENCAT 1 "November 2003" "gencat (glibc)" "Debian" +.UC +.if n .hy 0 +.if n .na +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.de CQ \" put $1 in typewriter font +.ft CW +'if n "\c +'if t \\&\\$1\c +'if n \\&\\$1\c +'if n \&" +\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 +'.ft R +.. +.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2 +. \" AM - accent mark definitions +.bd B 3 +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds ? ? +. ds ! ! +. ds / +. ds q +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' +. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] +.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' +.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' +.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +.ds oe o\h'-(\w'o'u*4/10)'e +.ds Oe O\h'-(\w'O'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds v \h'-1'\o'\(aa\(ga' +. ds _ \h'-1'^ +. ds . \h'-1'. +. ds 3 3 +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +. ds oe oe +. ds Oe OE +.\} +.rm #[ #] #H #V #F C +.SH "NAME" +gencat \- Generate message catalog +.SH "SYNOPSIS" +gencat [OPTION...] -o OUTPUT-FILE [INPUT-FILE]... +.SH "DESCRIPTION" +The \fBgencat\fR program is specified in the X/Open standard and the +GNU implementation follows this specification and so processes all +correctly formed input files. Additionally some extension are implemented +which help to work in a more reasonable way with the \fBcatgets\fR(3) functions. +.PP +.TP +\fB-H\fR, \fB--header\fR \fINAME\fR +Create C header file NAME containing symbol definitions +.TP +\fB--new\fR +Do not use existing catalog, force new output file +.TP +\fB-o\fR, \fB--output\fR \fINAME\fR +Write output to file NAME +.SH "AUTHOR" +\fIgencat\fR was written by Ulrich Drepper as part of the GNU C Library. +.PP +This man page was written by Jeff Bailey . + +.rn }` '' +.IX Title "GENCAT 1" +.IX Name "gencat - Generate message catalog" + +.IX Header "NAME" + +.IX Header "SYNOPSIS" + +.IX Header "DESCRIPTION" + +.IX Header "AUTHOR" + --- glibc-2.7.orig/debian/local/manpages/fr/addendum.fr +++ glibc-2.7/debian/local/manpages/fr/addendum.fr @@ -0,0 +1,4 @@ +PO4A-HEADER:mode=after;position=AUTEUR;beginboundary=\.SH + +.SH "TRADUCTION" +Clément Stenac, 2005. Veuillez signaler toute erreur à --- glibc-2.7.orig/debian/local/manpages/fr/validlocale.fr.8 +++ glibc-2.7/debian/local/manpages/fr/validlocale.fr.8 @@ -0,0 +1,57 @@ +.\" This file was generated with po4a. Translate the source file. +.\" +.TH validlocale 8 0.1 "Petter Reinholdtsen" "" +.SH NOM +.LP +validlocale \- vérifie si un ensemble donné de paramètres régionaux est +disponible +.SH SYNTAXE +.LP +validlocale <\fIlocale\fP> +.SH DESCRIPTION +.LP +Teste si l'ensemble de paramètres régionaux donné en argument est +valable. S'il ne l'est pas, affiche sur la sortie standard la chaîne de +caractères à ajouter à /etc/locale.gen afin de permettre à locale\-gen de +générer l'ensemble de paramètres (s'il existe). +.SH FICHIERS +.LP +\fI/us/sbin/validlocale\fP +.br +\fI/usr/share/i18n/SUPPORTED\fP +.SH "VARIABLES D'ENVIRONNEMENT" +.LP +.TP +\fBDEFAULTCHARSET\fP +Indique quel encodage de caractères doit être supposé si la locale donnée +n'est pas dans la liste des locales gérées. +.SH EXEMPLES +.LP +Si vous indiquez comme paramètre une locale valabe, vous recevrez ceci sur +la sortie d'erreur +.LP +.IP +% validlocale C +.br +locale «\ C\ » valide et disponible +.LP +Lorsqu'une locale non valable (non créée ou inexistante) est indiquée, vous +recevrez un message sur la sortie d'erreur disant qu'il s'agit d'une locale +non valable et une chaîne de caractères sur la sortie standard à ajouter à +/etc/locale.gen pour que la locale soit créée\ : +.LP +.IP +% validlocale de_AU@euro +.br +locale «\ de_AT@euro\ » non disponible +.br +de_AT@euro ISO\-8859\-15 +.SH AUTEURS +.LP +Petter·Reinholdtsen· + +.SH "TRADUCTION" +Clément Stenac, 2005. Veuillez signaler toute erreur à +.SH "VOIR AUSSI" +.LP +locale\-gen(8), localedef(1), locale(1) --- glibc-2.7.orig/debian/local/manpages/glibcbug.1 +++ glibc-2.7/debian/local/manpages/glibcbug.1 @@ -0,0 +1,50 @@ +'\" t +.\" ** The above line should force tbl to be a preprocessor ** +.\" Man page for man +.\" +.\" Copyright (C), 2002 Free Software Foundation, Inc. +.\" +.\" You may distribute under the terms of the GNU General Public +.\" License as specified in the file COPYING that comes with the +.\" glibc distribution. +.\" +.\" +.TH glibcbug 1 "10 January 2002" "" "Debian GNU/Linux" +.SH "NAME" +glibcbug \- Report a bug to the Glibc developers +.SH "SYNOPSIS" +.B glibcbug +.SH "DESCRIPTION" +.B glibcbug +is a tool for reporting bugs to the glibc maintainers. +It automatically starts an editor where the user can enter details +of the bug. On completion, the bug is sent to the appropriate +address. +The User should replace the comments (text surrounded by +, and fill in the Subject: and From: lines with +a summary and e-mail address. + +If the user believes the bug is related to Debian rather than to the +glibc (libc6) package, then the +.B reportbug +command should be used instead. +.SH "ENVIRONMENT" +.B glibcbug +will utilize the following enviromntal variables if they exist: +.TP +.B EDITOR +and +.B VISUAL +Specifies the preferred editor. If +neither are set, +.B glibcbug +will default to +.B /usr/bin/sensible-editor +to determine a working editor. +.TP +.B HOME +Directory in which the failed bug report is saved if the mail fails. +.SH "SEE ALSO" +reportbug(1) +.SH "AUTHOR" +Alastair McKinstry . --- glibc-2.7.orig/debian/local/manpages/mtrace.1 +++ glibc-2.7/debian/local/manpages/mtrace.1 @@ -0,0 +1,228 @@ +.rn '' }` +''' $RCSfile: mtrace.1,v $$Revision: 1.1 $$Date: 2007-04-11 03:07:27 +0000 (Wed, 11 Apr 2007) $ +''' +''' $Log: mtrace.1,v $ +''' Revision 1.1 2003/11/03 17:37:27 jbailey +''' - debian/local/manpages/gencat.1: New file. +''' - debian/local/manpages/trace.1: New file. +''' - debian/debhelper.in/libc-dev.manpages: Install them. +''' - debian/local/manpages/iconvconfig.8: New file. +''' - debian/debhelper.in/libc.manpages: Install it. +''' +''' Revision 1.1.2.2 2003/10/28 05:48:08 dan +''' - Re-add debian/patches/80_glibc232-locales-nb_NO-fix.dpatch, which had +''' gotten lost. +''' - Re-add typo fixes to iconv.1 and rpcgen.1. +''' - Merge iconv.1 fix to iconv.pod. +''' - Fix ld.so name in ld.so.8. +''' - Re-add fix for locale-gen and POSIXLY_CORRECT. +''' +''' +.de Sh +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp +.if t .sp .5v +.if n .sp +.. +.de Ip +.br +.ie \\n(.$>=3 .ne \\$3 +.el .ne 3 +.IP "\\$1" \\$2 +.. +.de Vb +.ft CW +.nf +.ne \\$1 +.. +.de Ve +.ft R + +.fi +.. +''' +''' +''' Set up \*(-- to give an unbreakable dash; +''' string Tr holds user defined translation string. +''' Bell System Logo is used as a dummy character. +''' +.tr \(*W-|\(bv\*(Tr +.ie n \{\ +.ds -- \(*W- +.ds PI pi +.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +.ds L" "" +.ds R" "" +''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of +''' \*(L" and \*(R", except that they are used on ".xx" lines, +''' such as .IP and .SH, which do another additional levels of +''' double-quote interpretation +.ds M" """ +.ds S" """ +.ds N" """"" +.ds T" """"" +.ds L' ' +.ds R' ' +.ds M' ' +.ds S' ' +.ds N' ' +.ds T' ' +'br\} +.el\{\ +.ds -- \(em\| +.tr \*(Tr +.ds L" `` +.ds R" '' +.ds M" `` +.ds S" '' +.ds N" `` +.ds T" '' +.ds L' ` +.ds R' ' +.ds M' ` +.ds S' ' +.ds N' ` +.ds T' ' +.ds PI \(*p +'br\} +.\" If the F register is turned on, we'll generate +.\" index entries out stderr for the following things: +.\" TH Title +.\" SH Header +.\" Sh Subsection +.\" Ip Item +.\" X<> Xref (embedded +.\" Of course, you have to process the output yourself +.\" in some meaningful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH MTRACE 1 "November 2003" "mtrace (glibc)" "Debian" +.UC +.if n .hy 0 +.if n .na +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.de CQ \" put $1 in typewriter font +.ft CW +'if n "\c +'if t \\&\\$1\c +'if n \\&\\$1\c +'if n \&" +\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 +'.ft R +.. +.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2 +. \" AM - accent mark definitions +.bd B 3 +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds ? ? +. ds ! ! +. ds / +. ds q +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' +. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] +.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' +.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' +.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +.ds oe o\h'-(\w'o'u*4/10)'e +.ds Oe O\h'-(\w'O'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds v \h'-1'\o'\(aa\(ga' +. ds _ \h'-1'^ +. ds . \h'-1'. +. ds 3 3 +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +. ds oe oe +. ds Oe OE +.\} +.rm #[ #] #H #V #F C +.SH "NAME" +mtrace \- Interpret output from MALLOC_TRACE +.SH "SYNOPSIS" +mtrace [OPTION]... [Binary] MtraceData +.SH "DESCRIPTION" +The \fBmtrace\fR interprets the output from when the MALLOC_TRACE +environment variable is set. +.SH "AUTHOR" +\fImtrace\fR was written by Ulrich Drepper as part of the GNU C Library. +.PP +This man page was written by Jeff Bailey . + +.rn }` '' +.IX Title "MTRACE 1" +.IX Name "mtrace \- Interpret output from MALLOC_TRACE" + +.IX Header "NAME" + +.IX Header "SYNOPSIS" + +.IX Header "DESCRIPTION" + +.IX Header "AUTHOR" + --- glibc-2.7.orig/debian/local/manpages/nscd.conf.5 +++ glibc-2.7/debian/local/manpages/nscd.conf.5 @@ -0,0 +1,231 @@ +.\" Placed in the Public Domain by Sebastian Rittau +.TH NSCD.CONF 5 "07 January 2001" +.UC 5 +.SH NAME +nscd.conf \- configuration file for Name Service Caching Daemon +.hy 0 +.SH DESCRIPTION +.I /etc/nscd.conf +configures the caches used by +.BR nscd (8) +as well as some generic options. +.BR nscd (8) +is able to use a configuration file at a different location, +when supplied with the +.IR -f +or +.IR --config-file +command line option. + +.PP +The configuration file consists of a set of lines. +Empty lines, and text after a '#' is ignored. +All remaining lines denote the setting of an option. +White space before and after options, and between +options and option arguments is ignored. + +There are two kinds of options: General options influence +.BR nscd (8)'s +general behaviour, while cache related options only affect the +specified cache. Options are set like this: +.nf + + general_option option + cache_option cache_name option +.fi +.SH GENERAL OPTIONS +.TP +.BI logfile \ file +Specifies the name of the debug log-file that +.BR nscd (8) +should use if +.B debug-level +is higher than +.BR 0 . +If this option is not set, +.BR nscd (8) +will write its debug output to stderr. +.TP +.BI debug-level \ level +If +.I level +is higher than +.BR 0 , +.BR nscd (8) +will create some debug output. The higher the level, the more verbose +the output. +.TP +.BI threads \ #threads +This option sets the number of threads that +.BR nscd (8) +should use by default. It can be overridden by calling +.BR nscd (8) +with the +.I -t +or +.I --nthreads +argument. If neither this configuration option nor the command line +argument is given, +.BR nscd (8) +uses 5 threads by default. The minimum is 3. More threads means more +simultaneous connections that +.BR nscd (8) +can handle. +.TP +.BI max-threads \ #threads +Specifies the maximum number of threads to be started. +.TP +.BI server-user \ user +By default, +.BR nscd (8) +is run as user root. This option can be set to force +.BR nscd (8) +to drop root privileges after startup. It cannot be used when +.BR nscd (8) +is called with the +.I -S +or +.I --secure +argument. Also note that some services require that nscd run as root, so +using this may break those lookup services. +.TP +.BI stat-user \ user +Specifies the user who is allowed to request statistics. +.TP +.BI paranoia \ bool +.I bool +must be one of +.B yes +or +.BR no . +Enabling paranoia mode causes +.BR nscd (8) +to restart itself periodically. +.TP +.BI restart-interval \ time +Sets the restart interval to time seconds if periodic restart is enabled by enabling +paranoia mode. The default value is 3600. +.SH CACHE OPTIONS +All cache options take two arguments. The first one denotes +the service or cache the option should affect. Currently +.I service +can be one of +.BR passwd , +.BR group , +or +.BR hosts . +.TP +.BI enable-cache \ service\ bool +.I bool +must be one of +.B yes +or +.BR no . +Each cache is disabled by default and must be enabled explicitly +by setting this options to +.BR yes . +.TP +.BI positive-time-to-live \ service\ secs +This is the number of seconds after which a cached entry is +removed from the cache. This defaults to 3600 seconds (i. e. +one hour). +.TP +.BI negative-time-to-live \ service\ secs +If an entry is not found by the Name Service, it is added to +the cache and marked as "not existent". This option sets the number +of seconds after which such a not existent entry is removed from +the cache. This defaults to 20 seconds for the +.B password +and +.B host +caches and to 60 seconds for the +.B group +cache. +.TP +.BI suggested-size \ service\ prime-number +This option sets the size of the hash that is used to store the +cache entries. As this is a hash, it should be reasonably larger +than the maximum number of entries that is expected to be cached +simultaneously and should be a prime number. It defaults to a +size of 211 entries. +.TP +.BI check-files \ service\ bool +.I bool +must be one of +.B yes +(default) or +.BR no . +If file checking is enabled, +.BR nscd (8) +periodically checks the modification time of +.IR /etc/passwd , +.IR /etc/group , +or +.I /etc/hosts +(for the +.BR passwd , +.BR group , +and +.B host +cache respectively) +and invalidates the cache if the file has changed since the +last check. +.TP +.BI persistent \ service\ bool +.I bool +must be one of +.B yes +(default) or +.BR no . +Keep the content of the cache for service over +.BR nscd (8) +restarts. Useful when paranoia mode is set. +.TP +.BI shared \ service\ bool +.I bool +must be one of +.B yes +(default) or +.BR no . +The memory mapping of the +.BR nscd (8) +databases for service is shared with the clients so that they can directly search +in them instead of having to ask the daemon over the socket each time a lookup is +performed. +.TP +.BI reload-count \ #number +Sets the number of times a cached record is reloaded before it is pruned from +the cache. Each cache record has a timeout, when that timeout expires, +.BR nscd (8) +will either reload it (query the NSS service again if the data hasn't changed), or +drop it. +.SH EXAMPLE +.nf + +# This is a comment. + + logfile /var/log/nscd.log + threads 6 + server-user nobody + debug-level 0 + + enable-cache passwd yes + positive-time-to-live passwd 600 + negative-time-to-live passwd 20 + suggested-size passwd 211 + check-files passwd yes + + enable-cache group yes + positive-time-to-live group 3600 + negative-time-to-live group 60 + suggested-size group 211 + check-files group yes + + enable-cache hosts yes + positive-time-to-live hosts 3600 + negative-time-to-live hosts 20 + suggested-size hosts 211 + check-files hosts yes +.fi +.SH SEE ALSO +nscd(8), nsswitch.conf(5) --- glibc-2.7.orig/debian/local/manpages/getconf.1 +++ glibc-2.7/debian/local/manpages/getconf.1 @@ -0,0 +1,239 @@ +.rn '' }` +''' $RCSfile: getconf.1,v $$Revision: 1.1.2.1 $$Date: 2003/09/22 21:33:35 $ +''' +''' $Log: getconf.1,v $ +''' Revision 1.1.2.1 2003/09/22 21:33:35 jbailey +''' New directory for things we add to the package +''' +''' +.de Sh +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp +.if t .sp .5v +.if n .sp +.. +.de Ip +.br +.ie \\n(.$>=3 .ne \\$3 +.el .ne 3 +.IP "\\$1" \\$2 +.. +.de Vb +.ft CW +.nf +.ne \\$1 +.. +.de Ve +.ft R + +.fi +.. +''' +''' +''' Set up \*(-- to give an unbreakable dash; +''' string Tr holds user defined translation string. +''' Bell System Logo is used as a dummy character. +''' +.tr \(*W-|\(bv\*(Tr +.ie n \{\ +.ds -- \(*W- +.ds PI pi +.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +.ds L" "" +.ds R" "" +''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of +''' \*(L" and \*(R", except that they are used on ".xx" lines, +''' such as .IP and .SH, which do another additional levels of +''' double-quote interpretation +.ds M" """ +.ds S" """ +.ds N" """"" +.ds T" """"" +.ds L' ' +.ds R' ' +.ds M' ' +.ds S' ' +.ds N' ' +.ds T' ' +'br\} +.el\{\ +.ds -- \(em\| +.tr \*(Tr +.ds L" `` +.ds R" '' +.ds M" `` +.ds S" '' +.ds N" `` +.ds T" '' +.ds L' ` +.ds R' ' +.ds M' ` +.ds S' ' +.ds N' ` +.ds T' ' +.ds PI \(*p +'br\} +.\" If the F register is turned on, we'll generate +.\" index entries out stderr for the following things: +.\" TH Title +.\" SH Header +.\" Sh Subsection +.\" Ip Item +.\" X<> Xref (embedded +.\" Of course, you have to process the output yourself +.\" in some meaningful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH GETCONF 1 "etch" "7/Jan/2001" "Debian GNU/Linux" +.UC +.if n .hy 0 +.if n .na +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.de CQ \" put $1 in typewriter font +.ft CW +'if n "\c +'if t \\&\\$1\c +'if n \\&\\$1\c +'if n \&" +\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 +'.ft R +.. +.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2 +. \" AM - accent mark definitions +.bd B 3 +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds ? ? +. ds ! ! +. ds / +. ds q +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' +. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] +.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' +.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' +.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +.ds oe o\h'-(\w'o'u*4/10)'e +.ds Oe O\h'-(\w'O'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds v \h'-1'\o'\(aa\(ga' +. ds _ \h'-1'^ +. ds . \h'-1'. +. ds 3 3 +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +. ds oe oe +. ds Oe OE +.\} +.rm #[ #] #H #V #F C +.SH "NAME" +getconf \- Query system configuration variables +.SH "SYNOPSIS" +\fBgetconf\fR [\fB\-v specification\fR] system_var +.PP +\fBgetconf\fR [\fB\-v specification\fR] path_var pathname +.SH "DESCRIPTION" +\fB\-v\fR +.PP +.Vb 2 +\& Indicate the specification and version for which to obtain +\& configuration variables. +.Ve +\fBsystem_var\fR +.PP +.Vb 2 +\& A system configuration variable, as defined by sysconf(3) or +\& confstr(3). +.Ve +\fBpath_var\fR +.PP +.Vb 2 +\& A system configuration variable as defined by pathconf(3). This +\& must be used with a pathname. +.Ve +.SH "AUTHOR" +\fIgetconf\fR was written by Roland McGrath for the GNU C Library +.PP +This man page was written by Ben Collins for +the Debian GNU/Linux system. +.SH "SEE ALSO" +\fBsysconf\fR(3), \fBpathconf\fR(3), \fBconfstr\fR(3) + +.rn }` '' +.IX Title "GETCONF 1" +.IX Name "getconf - Query system configuration variables" + +.IX Header "NAME" + +.IX Header "SYNOPSIS" + +.IX Header "DESCRIPTION" + +.IX Header "AUTHOR" + +.IX Header "SEE ALSO" + --- glibc-2.7.orig/debian/local/manpages/iconv.1 +++ glibc-2.7/debian/local/manpages/iconv.1 @@ -0,0 +1,274 @@ +.rn '' }` +''' $RCSfile: iconv.1,v $$Revision: 1.1.2.2 $$Date: 2003/10/28 05:48:08 $ +''' +''' $Log: iconv.1,v $ +''' Revision 1.1.2.2 2003/10/28 05:48:08 dan +''' - Re-add debian/patches/80_glibc232-locales-nb_NO-fix.dpatch, which had +''' gotten lost. +''' - Re-add typo fixes to iconv.1 and rpcgen.1. +''' - Merge iconv.1 fix to iconv.pod. +''' - Fix ld.so name in ld.so.8. +''' - Re-add fix for locale-gen and POSIXLY_CORRECT. +''' +''' +.de Sh +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp +.if t .sp .5v +.if n .sp +.. +.de Ip +.br +.ie \\n(.$>=3 .ne \\$3 +.el .ne 3 +.IP "\\$1" \\$2 +.. +.de Vb +.ft CW +.nf +.ne \\$1 +.. +.de Ve +.ft R + +.fi +.. +''' +''' +''' Set up \*(-- to give an unbreakable dash; +''' string Tr holds user defined translation string. +''' Bell System Logo is used as a dummy character. +''' +.tr \(*W-|\(bv\*(Tr +.ie n \{\ +.ds -- \(*W- +.ds PI pi +.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +.ds L" "" +.ds R" "" +''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of +''' \*(L" and \*(R", except that they are used on ".xx" lines, +''' such as .IP and .SH, which do another additional levels of +''' double-quote interpretation +.ds M" """ +.ds S" """ +.ds N" """"" +.ds T" """"" +.ds L' ' +.ds R' ' +.ds M' ' +.ds S' ' +.ds N' ' +.ds T' ' +'br\} +.el\{\ +.ds -- \(em\| +.tr \*(Tr +.ds L" `` +.ds R" '' +.ds M" `` +.ds S" '' +.ds N" `` +.ds T" '' +.ds L' ` +.ds R' ' +.ds M' ` +.ds S' ' +.ds N' ` +.ds T' ' +.ds PI \(*p +'br\} +.\" If the F register is turned on, we'll generate +.\" index entries out stderr for the following things: +.\" TH Title +.\" SH Header +.\" Sh Subsection +.\" Ip Item +.\" X<> Xref (embedded +.\" Of course, you have to process the output yourself +.\" in some meaningful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH ICONV 1 "lenny" "18/Nov/2007" "Debian GNU/Linux" +.UC +.if n .hy 0 +.if n .na +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.de CQ \" put $1 in typewriter font +.ft CW +'if n "\c +'if t \\&\\$1\c +'if n \\&\\$1\c +'if n \&" +\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 +'.ft R +.. +.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2 +. \" AM - accent mark definitions +.bd B 3 +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds ? ? +. ds ! ! +. ds / +. ds q +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' +. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] +.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' +.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' +.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +.ds oe o\h'-(\w'o'u*4/10)'e +.ds Oe O\h'-(\w'O'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds v \h'-1'\o'\(aa\(ga' +. ds _ \h'-1'^ +. ds . \h'-1'. +. ds 3 3 +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +. ds oe oe +. ds Oe OE +.\} +.rm #[ #] #H #V #F C +.SH "NAME" +iconv - Convert encoding of given files from one encoding to another +.SH "SYNOPSIS" +iconv \fB\-f\fR \fIencoding\fR [\fB\-t\fR \fIencoding\fR] \fI[inputfile]\fR... +.SH "DESCRIPTION" +The \fBiconv\fR program converts the encoding of characters in +\fIinputfile\fR, or from the standard input if no filename is specified, +from one coded character set to another. The result is +written to standard output unless otherwise specified by the +\fB\-\-output\fR option. +.TP +\fB\-\-from\-code\fR, \fB\-f\fR \fIencoding\fR +Convert characters from \fIencoding\fR. +.TP +\fB\-\-to\-code\fR, \fB\-t\fR \fIencoding\fR +Convert characters to \fIencoding\fR. If not specified the +encoding corresponding to the current locale is used. +.TP +\fB\-\-list\fR, \fB\-l\fR +List known coded character sets. +.TP +\fB\-c\fR +Omit invalid characters from output. +.TP +\fB\-\-output\fR, \fB\-o\fR \fIfile\fR +Specify output file (instead of stdout). +.TP +\fB\-\-silent\fR, \fB\-s\fR +Suppress warnings, but not errors. +.TP +\fB\-\-verbose\fR +Print progress information. +.TP +\fB\-\-help\fR, \fB\-?\fR +Give help list. +.TP +\fB\-\-usage\fR +Give a short usage message. +.TP +\fB\-\-version\fR, \fB\-V\fR +Print program version. +.SH ENCODINGS +The values permitted for \fI\-\-from\-code\fP and \fI\-\-to\-code\fP can be listed +by the \fBiconv \-\-list\fP command, and all combinations of the listed values are +supported. Furthermore the following two suffixes are supported: +.TP +//TRANSLIT +When the string "//TRANSLIT" is appended to \fI\-\-to\-code\fP, transliteration +is activated. +This means that when a character cannot be represented in the +target character set, it can be approximated through one or several +similarly looking characters. +.TP +//IGNORE +When the string "//IGNORE" is appended to \fI\-\-to\-code\fP, characters that +cannot be represented in the target character set will be silently discarded. + +.SH "AUTHOR" +\fIiconv\fR was written by Ulrich Drepper as part of the GNU C Library. +.PP +This man page was written by Joel Klecker , +for the Debian GNU/Linux system. + +.rn }` '' +.IX Title "ICONV 1" +.IX Name "iconv - Convert encoding of given files from one encoding to another" + +.IX Header "NAME" + +.IX Header "SYNOPSIS" + +.IX Header "DESCRIPTION" + +.IX Header "ENCODINGS" + +.IX Header "AUTHOR" + --- glibc-2.7.orig/debian/local/manpages/po/fr.po +++ glibc-2.7/debian/local/manpages/po/fr.po @@ -0,0 +1,505 @@ +# fr.po for base-config manpage +# +# Copyright (C) 2004 Free Software Foundation, Inc. +# +# Previous translator : +# Antoine Gémis . +# +msgid "" +msgstr "" +"Project-Id-Version: base-config\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-12-27 17:38-0500\n" +"PO-Revision-Date: 2005-07-27 19:36+0200\n" +"Last-Translator: Clément Stenac \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8-bit\n" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "validlocale" +msgstr "validlocale" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "0.1" +msgstr "0.1" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "Petter Reinholdtsen" +msgstr "Petter Reinholdtsen" + +# type: SH +#: validlocale.8:2 +#, no-wrap +msgid "NAME" +msgstr "NOM" + +# type: Plain text +#: validlocale.8:5 +msgid "validlocale - Test if a given locale is available" +msgstr "" +"validlocale - vérifie si un ensemble donné de paramètres régionaux est " +"disponible" + +# type: SH +#: validlocale.8:5 +#, no-wrap +msgid "SYNTAX" +msgstr "SYNTAXE" + +# type: Plain text +#: validlocale.8:8 +msgid "validlocale EIE" +msgstr "validlocale EIE" + +# type: SH +#: validlocale.8:8 +#, no-wrap +msgid "DESCRIPTION" +msgstr "DESCRIPTION" + +# type: Plain text +#: validlocale.8:13 +msgid "" +"Test if the locale given as argument is a valid locale. If it isn't, print " +"on stdout the string to add to /etc/locale.gen to make locale-gen generate " +"the locale (if it exists at all)." +msgstr "" +"Teste si l'ensemble de paramètres régionaux donné en argument est valable. " +"S'il ne l'est pas, affiche sur la sortie standard la chaîne de caractères à " +"ajouter à /etc/locale.gen afin de permettre à locale-gen de générer " +"l'ensemble de paramètres (s'il existe)." + +# type: SH +#: validlocale.8:13 +#, no-wrap +msgid "FILES" +msgstr "FICHIERS" + +# type: Plain text +#: validlocale.8:16 +msgid "I" +msgstr "I" + +# type: Plain text +#: validlocale.8:18 +msgid "I" +msgstr "I" + +# type: SH +#: validlocale.8:18 +#, no-wrap +msgid "ENVIRONMENT VARIABLES" +msgstr "VARIABLES D'ENVIRONNEMENT" + +# type: TP +#: validlocale.8:20 +#, no-wrap +msgid "B" +msgstr "B" + +# type: Plain text +#: validlocale.8:24 +msgid "" +"Which charset to assume if the given locale is missing from the list of " +"supported locales." +msgstr "" +"Indique quel encodage de caractères doit être supposé si la locale donnée " +"n'est pas dans la liste des locales gérées." + +# type: SH +#: validlocale.8:24 +#, no-wrap +msgid "EXAMPLES" +msgstr "EXEMPLES" + +# type: Plain text +#: validlocale.8:28 +msgid "" +"If you give a valid locale as parameter, it outputs a string specifying this " +"on stderr:" +msgstr "" +"Si vous indiquez comme paramètre une locale valabe, vous recevrez ceci sur " +"la sortie d'erreur " + +# type: Plain text +#: validlocale.8:31 +msgid "% validlocale C" +msgstr "% validlocale C" + +# type: Plain text +#: validlocale.8:33 +msgid "locale 'C' valid and available" +msgstr "locale « C » valide et disponible" + +# type: Plain text +#: validlocale.8:37 +msgid "" +"When given a invalid (not generated or just nonexistent), it outputs a " +"string on stderr telling that this is an invalid locale, and a string to " +"stdout with the string to add to /etc/locale.gen to have this locale " +"generated:" +msgstr "" +"Lorsqu'une locale non valable (non créée ou inexistante) est indiquée, vous " +"recevrez un message sur la sortie d'erreur disant qu'il s'agit d'une locale " +"non valable et une chaîne de caractères sur la sortie standard à ajouter à /" +"etc/locale.gen pour que la locale soit créée :" + +# type: Plain text +#: validlocale.8:40 +msgid "% validlocale de_AU@euro" +msgstr "% validlocale de_AU@euro" + +# type: Plain text +#: validlocale.8:42 +msgid "locale 'de_AT@euro' not available" +msgstr "locale « de_AT@euro » non disponible" + +# type: Plain text +#: validlocale.8:44 +msgid "de_AT@euro ISO-8859-15" +msgstr "de_AT@euro ISO-8859-15" + +# type: SH +#: validlocale.8:44 +#, no-wrap +msgid "AUTHORS" +msgstr "AUTEURS" + +# type: Plain text +#: validlocale.8:47 +msgid "Petter Reinholdtsen Epere@hungry.comE" +msgstr "Petter·Reinholdtsen·Epere@hungry.comE" + +# type: SH +#: validlocale.8:47 +#, no-wrap +msgid "SEE ALSO" +msgstr "VOIR AUSSI" + +# type: Plain text +#: validlocale.8:49 +#, fuzzy +msgid "locale-gen(8), localedef(1), locale(1)" +msgstr "locale-gen(8),·localedef(1),·locale(1),·base-config(8)" + +# type: TH +#~ msgid "BASE-CONFIG" +#~ msgstr "BASE-CONFIG" + +# type: Plain text +#~ msgid "base-config - Debian base system configuration" +#~ msgstr "base-config - Configuration du système Debian de base" + +# type: SH +#~ msgid "SYNOPSIS" +#~ msgstr "SYNOPSIS" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is the program that was run when you first rebooted into " +#~ "your newly installed debian system. It walks you through setting up the " +#~ "system and downloading additional software, and so forth. The program can " +#~ "be run at any later date to walk you through essentially the same process " +#~ "again." +#~ msgstr "" +#~ "B est le programme lancé lors du premier redémarrage d'un " +#~ "nouveau système Debian. Il vous guide pas à pas dans la configuration du " +#~ "système, l'installation de nouveaux programmes, etc. Vous pourrez lancer " +#~ "à nouveau ce programme plus tard si vous désirez modifier la " +#~ "configuration de votre système." + +# type: SH +#~ msgid "IMPLEMENTATION" +#~ msgstr "IMPLÉMENTATION" + +# type: Plain text +#~ msgid "" +#~ "B generates a menu of choices from the contents of B, and from debconf templates." +#~ msgstr "" +#~ "B génère un menu de choix à partir du contenu de B et depuis les modèles debconf." + +# type: Plain text +#~ msgid "" +#~ "The .mnu files in /usr/lib/base-config/ control whether the menu item " +#~ "appears only on new installs (Only-New: true), whether debconf can " +#~ "already be running when the item is run (Debconf: true), a numeric Order " +#~ "controls placement in the menu. If a .mnu file contains \"Exit-Menu: true" +#~ "\", then base-config will terminate after running that menu item. " +#~ "Finally, a \"Changes-Menu: true\" line will make base-config rebuild the " +#~ "menu after running the menu item." +#~ msgstr "" +#~ "Les fichiers .mnu dans /usr/lib/base-config/ permettent de spécifier si " +#~ "un élément de menu ne doit apparaître que pour les nouvelles " +#~ "installations (Only-New:true), si Debconf doit déjà fonctionner lors du " +#~ "lancement de l'élément (Debconf: true), et un champ numérique contrôle la " +#~ "position dans le menu. Si un fichier .mnu contient « Exit-Menu: true », " +#~ "base-config se terminera après l'exécution de cet élément. Enfin, une " +#~ "ligne « Changes-Menu: true » fera que base-config reconstruira le menu " +#~ "après l'exécution de l'élément." + +# type: Plain text +#~ msgid "" +#~ "The .tst files in /usr/lib/base-config/ are run when base-config builds " +#~ "the menu and must return true for that menu item to appear on the menu." +#~ msgstr "" +#~ "Les fichiers .tst dans /usr/lib/base-config/ sont lancés lorsque base-" +#~ "config construit le menu et doivent renvoyer un résultat nul pour que cet " +#~ "élément apparaisse dans le menu." + +# type: Plain text +#~ msgid "" +#~ "The menu items are taken from debconf, by looking for items in the " +#~ "debconf database named base-config/menu/whatever." +#~ msgstr "" +#~ "Les éléments du menu sont tirés de Debconf, en cherchant les éléments " +#~ "dans la base de données de Debconf appelés base-config/menu/quelque_chose" + +# type: Plain text +#~ msgid "" +#~ "When a menu item is selected, the corresponding program, in /usr/lib/base-" +#~ "config is run. If this is a fresh install onto a new debian system, the " +#~ "program receives \"new\" as its first argument." +#~ msgstr "" +#~ "Lorsqu'un élément du menu est sélectionné, le programme correspondant " +#~ "dans /usr/lib/base-config est exécuté. S'il s'agit d'une installation sur " +#~ "un nouveau système, le programme reçoit « new » en tant que premier " +#~ "argument." + +# type: Plain text +#~ msgid "" +#~ "B checks the return codes of each of the programs. If a " +#~ "program returns nonzero, the main menu is displayed (this may involve " +#~ "lowering the debconf priority)." +#~ msgstr "" +#~ "B vérifie les codes de retour des programmes. Si un " +#~ "programme retourne une valeur non nulle, le menu principal sera affiché " +#~ "(ceci peut conduire à une diminution de la priorité Debconf)" + +# type: Plain text +#~ msgid "" +#~ "Generally the user is advanced down the menu from item to item as each " +#~ "succeeds. If a menu item needs to jump back to a previous item in the " +#~ "menu, or skip over a subsequent item, it can write the name of the next " +#~ "menu item to show to the file \"jump-to\" in the current directory." +#~ msgstr "" +#~ "Généralement, au fur et à mesure que les éléments se terminent avec " +#~ "succès, les éléments suivants du menu sont présélectionnés. Si un élément " +#~ "a besoin d'un retour à un élément précédent du menu, ou d'un saut à un " +#~ "autre élément, il peut écrire le nom de l'élément à présélectionner " +#~ "ensuite dans le fichier « jump-to » du répertoire courant." + +# type: Plain text +#~ msgid "" +#~ "Every base-config run is logged to B. B contains timing information to go with the log. " +#~ "This allows replays of base-config runs using the B(1) utility." +#~ msgstr "" +#~ "Chaque exécution de base-config est consignée dans B. Les informations temporelles du journal sont consignées dans B, ceci permet de relancer base-config en utilisant " +#~ "B(1)B<.>" + +# type: Plain text +#~ msgid "" +#~ "B, if it exists, is used by B " +#~ "on new installs to get values from the debian-installer first stage " +#~ "install." +#~ msgstr "" +#~ "Le fichier B, s'il existe, est " +#~ "utilisé par B pendant les nouvelles installations pour " +#~ "obtenir les valeurs produites par la première étape de debian-installer" + +# type: Plain text +#~ msgid "" +#~ "Other packages can drop files into B, and add menu " +#~ "titles in debconf, and they will be added to the menu. It is very " +#~ "strongly encouraged that any such programs communicate with the user " +#~ "entirely via debconf, so that the base configuration maintains a " +#~ "consistent and professional look." +#~ msgstr "" +#~ "D'autres paquets peuvent insérer des programmes dans B et ajouter des éléments de menu à debconf ; ils seront alors " +#~ "ajoutés au menu. Afin de conserver l'homogénéité et l'aspect " +#~ "professionnel du processus d'installation, il est fortement conseillé que " +#~ "la communication entre ces paquets et l'utilisateur se fasse " +#~ "exclusivement par debconf." + +# type: Plain text +#~ msgid "" +#~ "Another useful thing for custom distributions is /usr/share/base-config/" +#~ "debconf-seed. If that directory exists, every file in it will be loaded " +#~ "into the debconf database using B(1)" +#~ msgstr "" +#~ "Un autre répertoire intéressant pour les distributions personnalisées " +#~ "est /usr/share/base-config/debconf-seed. Si ce répertoire existe, tout " +#~ "son contenu sera chargé dans la base de données debconf à l'aide de " +#~ "B(1)" + +# type: Plain text +#~ msgid "" +#~ "If the file /var/log/installer/debconf-seed is created by the debian-" +#~ "installer, it will also be loaded into the debconf database." +#~ msgstr "" +#~ "Si le fichier /var/log/debian-installer/debconf-seed·est créé par " +#~ "l'installateur Debian, il sera également chargé dans la base de données " +#~ "debconf" + +# type: SH +#~ msgid "ENVIRONMENT" +#~ msgstr "ENVIRONNEMENT" + +# type: Plain text +#~ msgid "" +#~ "The following environment variables influence B. These " +#~ "variables may be set at run time, or for new installs, may be passed to " +#~ "the kernel at the B(8) (or other bootloader) command line. Consult " +#~ "your boot loader's documentation for details. For example, lilo can be " +#~ "booted with something like \"linux DEBIAN_FRONTEND=readline\"." +#~ msgstr "" +#~ "base-config tient compte des variables d'environnement suivantes. Ces " +#~ "variables peuvent être définies dynamiquement, pendant l'installation, ou " +#~ "bien encore passées en paramètre au noyau sur la ligne de commande de " +#~ "B(8) (ou d'un autre chargeur de démarrage). Consultez la " +#~ "documentation de votre chargeur de démarrage pour plus d'informations. " +#~ "Par exemple, lilo peut être lancé avec un paramètre tel que « linux " +#~ "DEBIAN_FRONTEND=readline »." + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "Control various things about B(7)" +#~ msgstr "Contrôle de nombreux aspects de (7)" + +# type: SH +#~ msgid "AUTHOR" +#~ msgstr "AUTEUR" + +# type: Plain text +#~ msgid "Joey Hess Ejoeyh@debian.orgE" +#~ msgstr "Joey Hess Ejoey@debian.orgE" + +# type: TH +#~ msgid "TERMWRAP" +#~ msgstr "TERMWRAP" + +# type: Plain text +#~ msgid "termwrap - terminal wrapper" +#~ msgstr "termwrap - encapsulateur de terminal" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is used to execute B(8) on newly installed " +#~ "Debian systems. It examines the environment, taking note of locale " +#~ "settings, and what type of console is available, and runs an appropriate " +#~ "terminal program. For example, at the Linux console and in a Japanese " +#~ "locale, it runs jfterm. The specified command is run inside the terminal " +#~ "program (if any)." +#~ msgstr "" +#~ "B est utilisé pour exécuter B (8) sur un système " +#~ "Debian nouvellement installé. Il examine l'environnement, prenant en " +#~ "compte les réglages de paramètres locaux et le type de console " +#~ "disponible, et lance un programme de terminal adéquat. Par exemple, pour " +#~ "une console Linux et des paramètres locaux japonais, il lancera jfterm. " +#~ "La commande indiquée est alors lancée dans le programme de terminal, s'il " +#~ "y en a un." + +# type: SH +#~ msgid "OPTIONS" +#~ msgstr "OPTIONS" + +# type: TP +#~ msgid "I<-nnt>" +#~ msgstr "I<-nnt>" + +# type: Plain text +#~ msgid "Don't run another terminal." +#~ msgstr "Ne pas lancer d'autre terminal" + +# type: TH +#~ msgid "APT-SETUP" +#~ msgstr "APT-SETUP" + +# type: Plain text +#~ msgid "apt-setup - add apt download sources" +#~ msgstr "apt-setup - permet d'ajouter des sources de téléchargement apt" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is an interactive program that simplifies adding sources to " +#~ "apt's sources.list. It knows about all the major debian mirrors and can " +#~ "help you select one. It can even use B(8) to scan CDs." +#~ msgstr "" +#~ "B est un programme interactif simplifiant l'ajout de sources " +#~ "au fichier sources.list. Il connaît tous les principaux miroirs Debian et " +#~ "peut vous aider à en choisir un. Il peut même utiliser B(8) " +#~ "pour parcourir des cédéroms." + +# type: TP +#~ msgid "I" +#~ msgstr "I<« probe »>" + +# type: Plain text +#~ msgid "" +#~ "By default no probing of CDs is done. Passing \"probe\" as the first " +#~ "argument to this program will make it probe for a CD in the drive on " +#~ "startup and add it to sources.list. This is useful on initial debian " +#~ "installs, to minimize interaction with the user." +#~ msgstr "" +#~ "Par défaut, aucune détection des CD n'est faite. Si vous passez « probe » " +#~ "comme premier argument à ce programme, il effectuera une détection du CD " +#~ "dans le lecteur au démarrage et l'ajoutera au sources.list. Ceci est " +#~ "utile lors des installations initiales de Debian, afin de minimiser " +#~ "l'interaction avec l'utilisateur." + +# type: TP +#~ msgid "I<-N>" +#~ msgstr "I<-N>" + +# type: Plain text +#~ msgid "" +#~ "Indicates that this is a new install. This parameter allows apt-setup to " +#~ "run in noninteractive mode if its debconf questions have been preseeded." +#~ msgstr "" +#~ "Indique qu'il s'agit d'une nouvelle installation. Ce paramètre permet à " +#~ "apt-setup de fonctionner en mode non-interactif si les réponses à ses " +#~ "questions debconf ont été préchargées." + +# type: Plain text +#~ msgid "Joey Hess Ejoey@kitenet.netE" +#~ msgstr "Joey Hess Ejoey@kitenet.netE" --- glibc-2.7.orig/debian/local/manpages/po/pt_BR.po +++ glibc-2.7/debian/local/manpages/po/pt_BR.po @@ -0,0 +1,503 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) 2005 Free Software Foundation, Inc. +# Brazilian , 2005. +# , fuzzy +# +# +msgid "" +msgstr "" +"Project-Id-Version: base-config man\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-12-27 17:38-0500\n" +"PO-Revision-Date: 2005-10-24 21:25-0200\n" +"Last-Translator: Brazilian \n" +"Language-Team: Brazilian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "validlocale" +msgstr "validlocale" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "0.1" +msgstr "0.1" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "Petter Reinholdtsen" +msgstr "Petter Reinholdtsen" + +# type: SH +#: validlocale.8:2 +#, no-wrap +msgid "NAME" +msgstr "NOME" + +# type: Plain text +#: validlocale.8:5 +msgid "validlocale - Test if a given locale is available" +msgstr "validlocale - Testa se uma dada locale está disponível" + +# type: SH +#: validlocale.8:5 +#, no-wrap +msgid "SYNTAX" +msgstr "SINTAXE" + +# type: Plain text +#: validlocale.8:8 +msgid "validlocale EIE" +msgstr "validlocale EIE" + +# type: SH +#: validlocale.8:8 +#, no-wrap +msgid "DESCRIPTION" +msgstr "DESCRIÇÃO" + +# type: Plain text +#: validlocale.8:13 +msgid "" +"Test if the locale given as argument is a valid locale. If it isn't, print " +"on stdout the string to add to /etc/locale.gen to make locale-gen generate " +"the locale (if it exists at all)." +msgstr "" +"Testa se a locale passada como argumento é válida. Se não for, imprime em " +"stdout o texto a ser adicionado em /etc/locale.gen para fazer locale-gen " +"gerar a locale (se ela existir)." + +# type: SH +#: validlocale.8:13 +#, no-wrap +msgid "FILES" +msgstr "ARQUIVOS" + +# type: Plain text +#: validlocale.8:16 +msgid "I" +msgstr "I" + +# type: Plain text +#: validlocale.8:18 +msgid "I" +msgstr "I" + +# type: SH +#: validlocale.8:18 +#, no-wrap +msgid "ENVIRONMENT VARIABLES" +msgstr "VARIÁVEIS DE AMBIENTE" + +# type: TP +#: validlocale.8:20 +#, no-wrap +msgid "B" +msgstr "B" + +# type: Plain text +#: validlocale.8:24 +msgid "" +"Which charset to assume if the given locale is missing from the list of " +"supported locales." +msgstr "" +"Qual conjunto de caracteres assumir se a locale dada estiver faltando na " +"lista de locales suportadas." + +# type: SH +#: validlocale.8:24 +#, no-wrap +msgid "EXAMPLES" +msgstr "EXEMPLOS" + +# type: Plain text +#: validlocale.8:28 +msgid "" +"If you give a valid locale as parameter, it outputs a string specifying this " +"on stderr:" +msgstr "" +"Se você der uma locale válida como parâmetro, a saída será um texto " +"especificando isto em stderr:" + +# type: Plain text +#: validlocale.8:31 +msgid "% validlocale C" +msgstr "% validlocale C" + +# type: Plain text +#: validlocale.8:33 +msgid "locale 'C' valid and available" +msgstr "locale·'C'·é válida e está disponível" + +# type: Plain text +#: validlocale.8:37 +msgid "" +"When given a invalid (not generated or just nonexistent), it outputs a " +"string on stderr telling that this is an invalid locale, and a string to " +"stdout with the string to add to /etc/locale.gen to have this locale " +"generated:" +msgstr "" +"Quando é dado uma inválida (não gerada ou não existente), a saída será um " +"texto em stderr dizendo que a locale é inválida, e um texto para stdout que " +"deve ser adicionado a /etc/locale.gen para ter esta locale gerada:" + +# type: Plain text +#: validlocale.8:40 +msgid "% validlocale de_AU@euro" +msgstr "% validlocale de_AU@euro" + +# type: Plain text +#: validlocale.8:42 +msgid "locale 'de_AT@euro' not available" +msgstr "locale 'de_AT@euro' não está disponível" + +# type: Plain text +#: validlocale.8:44 +msgid "de_AT@euro ISO-8859-15" +msgstr "de_AT@euro ISO-8859-15" + +# type: SH +#: validlocale.8:44 +#, no-wrap +msgid "AUTHORS" +msgstr "AUTORES" + +# type: Plain text +#: validlocale.8:47 +msgid "Petter Reinholdtsen Epere@hungry.comE" +msgstr "Petter Reinholdtsen Epere@hungry.comE" + +# type: SH +#: validlocale.8:47 +#, no-wrap +msgid "SEE ALSO" +msgstr "VEJA TAMBÉM" + +# type: Plain text +#: validlocale.8:49 +#, fuzzy +msgid "locale-gen(8), localedef(1), locale(1)" +msgstr "locale-gen(8), localedef(1), locale(1), base-config(8)" + +# type: TH +#~ msgid "BASE-CONFIG" +#~ msgstr "BASE-CONFIG" + +# type: Plain text +#~ msgid "base-config - Debian base system configuration" +#~ msgstr "base-config - Configuração do sistema base Debian" + +# type: SH +#~ msgid "SYNOPSIS" +#~ msgstr "SINOPSE" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is the program that was run when you first rebooted into " +#~ "your newly installed debian system. It walks you through setting up the " +#~ "system and downloading additional software, and so forth. The program can " +#~ "be run at any later date to walk you through essentially the same process " +#~ "again." +#~ msgstr "" +#~ "B é o programa que foi executado quando você reiniciou a " +#~ "primeira vez em seu novo sistema debian instalado. Ele o guia através das " +#~ "configurações de seu sistema e baixando softwares adicionais, indo além. " +#~ "O programa pode ser executado posteriormente a qualquer momento para guiá-" +#~ "lo essencialmente através do mesmo processo novamente." + +# type: SH +#~ msgid "IMPLEMENTATION" +#~ msgstr "IMPLEMENTAÇÂO" + +# type: Plain text +#~ msgid "" +#~ "B generates a menu of choices from the contents of B, and from debconf templates." +#~ msgstr "" +#~ "B gera um menu de opções a partir do conteúdo de B, e dos modelos debconf." + +# type: Plain text +#~ msgid "" +#~ "The .mnu files in /usr/lib/base-config/ control whether the menu item " +#~ "appears only on new installs (Only-New: true), whether debconf can " +#~ "already be running when the item is run (Debconf: true), a numeric Order " +#~ "controls placement in the menu. If a .mnu file contains \"Exit-Menu: true" +#~ "\", then base-config will terminate after running that menu item. " +#~ "Finally, a \"Changes-Menu: true\" line will make base-config rebuild the " +#~ "menu after running the menu item." +#~ msgstr "" +#~ "Os arquivos .mnu em /usr/lib/base-config/ controlam quando um item de " +#~ "menu aparece apenas em novas instalações (Only-New: true), ou o debconf " +#~ "pode já estar sendo executado quando o item é executado (Debconf: true), " +#~ "um número Order controla a posição no menu. Se um arquivo .mnu contém " +#~ "\"Exit-Menu: true\", então base-config será terminado após executar esse " +#~ "item do menu. Finalmente a linha \"Changes-Menu: true\" fará com que " +#~ "base-config reconstrua o menu após executar este item." + +# type: Plain text +#~ msgid "" +#~ "The .tst files in /usr/lib/base-config/ are run when base-config builds " +#~ "the menu and must return true for that menu item to appear on the menu." +#~ msgstr "" +#~ "Os arquivos .tst em /usr/lib/base-config/ são executados quando base-" +#~ "config constrói o menu e devem retornar verdadeiro para que apareçam no " +#~ "menu." + +# type: Plain text +#~ msgid "" +#~ "The menu items are taken from debconf, by looking for items in the " +#~ "debconf database named base-config/menu/whatever." +#~ msgstr "" +#~ "Os itens do menu são pegos do debconf olhando para itens na base de dados " +#~ "do debconf chamada de base-config/menu/qualquercoisa" + +# type: Plain text +#~ msgid "" +#~ "When a menu item is selected, the corresponding program, in /usr/lib/base-" +#~ "config is run. If this is a fresh install onto a new debian system, the " +#~ "program receives \"new\" as its first argument." +#~ msgstr "" +#~ "Quando um item do menu é selecionado, o programa correspondente, em /usr/" +#~ "lib/base-config é executado. Se esta é uma instalação novo em um novo " +#~ "sistema debian, o programa recebe \"new\" como seu primeiro argumento." + +# type: Plain text +#~ msgid "" +#~ "B checks the return codes of each of the programs. If a " +#~ "program returns nonzero, the main menu is displayed (this may involve " +#~ "lowering the debconf priority)." +#~ msgstr "" +#~ "B checa os códigos de retorno de cada um dos programas. Se " +#~ "um programa retorna não-zero, o menu principal é exibido (isso pode " +#~ "envolver diminuir a prioridade do debconf)." + +# type: Plain text +#~ msgid "" +#~ "Generally the user is advanced down the menu from item to item as each " +#~ "succeeds. If a menu item needs to jump back to a previous item in the " +#~ "menu, or skip over a subsequent item, it can write the name of the next " +#~ "menu item to show to the file \"jump-to\" in the current directory." +#~ msgstr "" +#~ "Geralmente o usuário avança descendo o menu item a item à medida que cada " +#~ "um é completado com sucesso. Se um item do menu precisa voltar para um " +#~ "item anterior ou pular algum item subseqüente, ele pode escrever o nome " +#~ "do próximo item do menu para mostrar ao arquivo \"jump-to\" no diretório " +#~ "atual." + +# type: Plain text +#~ msgid "" +#~ "Every base-config run is logged to B. B contains timing information to go with the log. " +#~ "This allows replays of base-config runs using the B(1) utility." +#~ msgstr "" +#~ "Cada execução do base-config é registrada em B. B contém as informações de tempo que " +#~ "vão juntamente com o registro. Isso permite repetições da execução do " +#~ "base-config usando o utilitário B(1)." + +# type: Plain text +#~ msgid "" +#~ "B, if it exists, is used by B " +#~ "on new installs to get values from the debian-installer first stage " +#~ "install." +#~ msgstr "" +#~ "B, se o arquivo existe, é usado pelo B em novas instalações para obter valores do primeiroestágio de " +#~ "instalação do debian-installer." + +# type: Plain text +#~ msgid "" +#~ "Other packages can drop files into B, and add menu " +#~ "titles in debconf, and they will be added to the menu. It is very " +#~ "strongly encouraged that any such programs communicate with the user " +#~ "entirely via debconf, so that the base configuration maintains a " +#~ "consistent and professional look." +#~ msgstr "" +#~ "Outros pacotes podem colocar arquivos em B, e " +#~ "adicionar títulos de menu no debconf, que serão adicionados ao menu. É " +#~ "fortemente encorajado que qualquer programa desses comunique-se com o " +#~ "usuário inteiramente via debconf, de forma que a configuração da base " +#~ "mantenha a consistência e o visual profissional." + +# type: Plain text +#~ msgid "" +#~ "Another useful thing for custom distributions is /usr/share/base-config/" +#~ "debconf-seed. If that directory exists, every file in it will be loaded " +#~ "into the debconf database using B(1)" +#~ msgstr "" +#~ "Outra coisa útil para distribuições customizadas é /usr/share/base-config/" +#~ "debconf-seed. Se esse diretório existir, cada arquivo nele será carregado " +#~ "no banco de dados do debconf usando B(1)" + +# type: Plain text +#~ msgid "" +#~ "If the file /var/log/installer/debconf-seed is created by the debian-" +#~ "installer, it will also be loaded into the debconf database." +#~ msgstr "" +#~ "Se o arquivo /var/log/installer/debconf-seed é criado pelo debian-" +#~ "installer, ele também será carregado no banco de dados do debconf." + +# type: SH +#~ msgid "ENVIRONMENT" +#~ msgstr "AMBIENTE" + +# type: Plain text +#~ msgid "" +#~ "The following environment variables influence B. These " +#~ "variables may be set at run time, or for new installs, may be passed to " +#~ "the kernel at the B(8) (or other bootloader) command line. Consult " +#~ "your boot loader's documentation for details. For example, lilo can be " +#~ "booted with something like \"linux DEBIAN_FRONTEND=readline\"." +#~ msgstr "" +#~ "As seguintes variáveis de ambiente influenciam B. Essas " +#~ "variáveis podem ser definidas em tempo de execução, ou para novas " +#~ "instalações, podem ser passadas ao kernel na linha de comando do B" +#~ "(8) (ou outro gerenciador de boot). Consulte a documentação do seu " +#~ "gerenciador de boot para detalhes. Por exemplo, lilo pode ser bootado com " +#~ "algo como: \"linux DEBIAN_FRONTEND=readline\"." + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "Control various things about B(7)" +#~ msgstr "Controla várias coisas sobre o B(7)" + +# type: SH +#~ msgid "AUTHOR" +#~ msgstr "AUTOR" + +# type: Plain text +#~ msgid "Joey Hess Ejoeyh@debian.orgE" +#~ msgstr "Joey Hess Ejoey@kitenet.netE" + +# type: TH +#~ msgid "TERMWRAP" +#~ msgstr "TERMWRAP" + +# type: Plain text +#~ msgid "termwrap - terminal wrapper" +#~ msgstr "termwrap - wrapper de terminal" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is used to execute B(8) on newly installed " +#~ "Debian systems. It examines the environment, taking note of locale " +#~ "settings, and what type of console is available, and runs an appropriate " +#~ "terminal program. For example, at the Linux console and in a Japanese " +#~ "locale, it runs jfterm. The specified command is run inside the terminal " +#~ "program (if any)." +#~ msgstr "" +#~ "B é usado para executar B(8) em novos sistemas " +#~ "Debian instalados. Ele examina o ambiente, tomando nota das configurações " +#~ "de localização, qual tipo de console está disponível e executa um " +#~ "programa de terminal apropriado. Por exemplo, no console Linux e em uma " +#~ "localização Japonesa, ele executa jfterm. O comando especificado é " +#~ "executado dentro do programa de terminal (caso exista algum)." + +# type: SH +#~ msgid "OPTIONS" +#~ msgstr "OPÇÕES" + +# type: TP +#~ msgid "I<-nnt>" +#~ msgstr "I<-nnt>" + +# type: Plain text +#~ msgid "Don't run another terminal." +#~ msgstr "Não execute outro terminal." + +# type: TH +#~ msgid "APT-SETUP" +#~ msgstr "APT-SETUP" + +# type: Plain text +#~ msgid "apt-setup - add apt download sources" +#~ msgstr "apt-setup - adiciona fontes de download para o apt" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is an interactive program that simplifies adding sources to " +#~ "apt's sources.list. It knows about all the major debian mirrors and can " +#~ "help you select one. It can even use B(8) to scan CDs." +#~ msgstr "" +#~ "B é um programa interativo que simplifica a adição de fontes " +#~ "no arquivo sources.list do apt. Ele conhece todos os principais espelhos " +#~ "(mirrors) debian e pode ajudá-lo a selecionar um. Pode até mesmo usar o " +#~ "B(8) para vasculhar CDs." + +# type: TP +#~ msgid "I" +#~ msgstr "I" + +# type: Plain text +#~ msgid "" +#~ "By default no probing of CDs is done. Passing \"probe\" as the first " +#~ "argument to this program will make it probe for a CD in the drive on " +#~ "startup and add it to sources.list. This is useful on initial debian " +#~ "installs, to minimize interaction with the user." +#~ msgstr "" +#~ "Por padrão nenhuma consulta de CDs é feita. Passar \"probe\" como o " +#~ "primeiro argumento para este programa fará com que o mesmo procure por um " +#~ "CD no drive em sua inicialização e adicione-o ao sources.list. Isto é " +#~ "útil em instalações iniciais do debian para minimizar a interação com o " +#~ "usuário." + +# type: TP +#~ msgid "I<-N>" +#~ msgstr "I<-N>" + +# type: Plain text +#~ msgid "" +#~ "Indicates that this is a new install. This parameter allows apt-setup to " +#~ "run in noninteractive mode if its debconf questions have been preseeded." +#~ msgstr "" +#~ "Indica que esta é uma nova instalação. Este parâmetro permite ao apt-" +#~ "setup executar no modo não-interativo se suas perguntas do debconf foram " +#~ "previamente respondidas." + +# type: Plain text +#~ msgid "Joey Hess Ejoey@kitenet.netE" +#~ msgstr "Joey Hess Ejoey@kitenet.netE" + +# type: TH +#, fuzzy +#~ msgid "TZSETUP" +#~ msgstr "APT-SETUP" + +# type: SH +#, fuzzy +#~ msgid "DERIVATION" +#~ msgstr "DESCRIÇÃO" --- glibc-2.7.orig/debian/local/manpages/po/es.po +++ glibc-2.7/debian/local/manpages/po/es.po @@ -0,0 +1,672 @@ +msgid "" +msgstr "" +"Project-Id-Version: 2.74\n" +"POT-Creation-Date: 2005-12-27 17:38-0500\n" +"PO-Revision-Date: 2005-11-30 18:58+0100\n" +"Last-Translator: Rubén Porras \n" +"Language-Team: Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "validlocale" +msgstr "validlocale" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "0.1" +msgstr "0.1" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "Petter Reinholdtsen" +msgstr "Petter Reinholdtsen" + +# type: SH +#: validlocale.8:2 +#, no-wrap +msgid "NAME" +msgstr "NOMBRE" + +# type: Plain text +#: validlocale.8:5 +msgid "validlocale - Test if a given locale is available" +msgstr "" +"validlocale - Comprueba si la opción de localización dada está disponible" + +# type: SH +#: validlocale.8:5 +#, no-wrap +msgid "SYNTAX" +msgstr "SINTAXIS" + +# type: Plain text +#: validlocale.8:8 +msgid "validlocale EIE" +msgstr "validlocale EIE" + +# type: SH +#: validlocale.8:8 +#, no-wrap +msgid "DESCRIPTION" +msgstr "DESCRIPCIÓN" + +# type: Plain text +#: validlocale.8:13 +msgid "" +"Test if the locale given as argument is a valid locale. If it isn't, print " +"on stdout the string to add to /etc/locale.gen to make locale-gen generate " +"the locale (if it exists at all)." +msgstr "" +"Comprueba si la opción de localización dada como argumento es válida. Si no " +"lo es muestra en la stdout (salida estándar) la cadena de caracteres que se " +"necesita añadir a /etc/locale.gen para que locale-gen genere esa opción de " +"localización (si es que existe)." + +# type: SH +#: validlocale.8:13 +#, no-wrap +msgid "FILES" +msgstr "FICHEROS" + +# type: Plain text +#: validlocale.8:16 +msgid "I" +msgstr "I" + +# type: Plain text +#: validlocale.8:18 +msgid "I" +msgstr "I" + +# type: SH +#: validlocale.8:18 +#, no-wrap +msgid "ENVIRONMENT VARIABLES" +msgstr "VARIABLES DE ENTORNO" + +# type: TP +#: validlocale.8:20 +#, no-wrap +msgid "B" +msgstr "B" + +# type: Plain text +#: validlocale.8:24 +msgid "" +"Which charset to assume if the given locale is missing from the list of " +"supported locales." +msgstr "" +"El juego de caracteres que asume en caso de que la opción de localización " +"dada no esté entre la lista de opciones de localización soportadas." + +# type: SH +#: validlocale.8:24 +#, no-wrap +msgid "EXAMPLES" +msgstr "EJEMPLOS" + +# type: Plain text +#: validlocale.8:28 +msgid "" +"If you give a valid locale as parameter, it outputs a string specifying this " +"on stderr:" +msgstr "" +"Si usted proporciona una opción de localización válida como parámetro, " +"muestra una cadena de caracteres especificándolo en stderr (salida de " +"errores estándar):" + +# type: Plain text +#: validlocale.8:31 +msgid "% validlocale C" +msgstr "% validlocale C" + +# type: Plain text +#: validlocale.8:33 +msgid "locale 'C' valid and available" +msgstr "locale 'C' valid and available" + +# type: Plain text +#: validlocale.8:37 +msgid "" +"When given a invalid (not generated or just nonexistent), it outputs a " +"string on stderr telling that this is an invalid locale, and a string to " +"stdout with the string to add to /etc/locale.gen to have this locale " +"generated:" +msgstr "" +"Cuando se proporcione una inválida (no ha sido generada o no existe), " +"muestra una cadena de caracteres en stderr diciendo que es inválida, y otra " +"a stdout con la cadena de caracteres que se necesita añadir a /etc/locale." +"gen para que se genere:" + +# type: Plain text +#: validlocale.8:40 +msgid "% validlocale de_AU@euro" +msgstr "% validlocale de_AU@euro" + +# type: Plain text +#: validlocale.8:42 +msgid "locale 'de_AT@euro' not available" +msgstr "locale 'de_AT@euro' not available" + +# type: Plain text +#: validlocale.8:44 +msgid "de_AT@euro ISO-8859-15" +msgstr "de_AT@euro ISO-8859-15" + +# type: SH +#: validlocale.8:44 +#, no-wrap +msgid "AUTHORS" +msgstr "AUTORES" + +# type: Plain text +#: validlocale.8:47 +msgid "Petter Reinholdtsen Epere@hungry.comE" +msgstr "Petter Reinholdtsen Epere@hungry.comE" + +# type: SH +#: validlocale.8:47 +#, no-wrap +msgid "SEE ALSO" +msgstr "VÉASE ADEMÁS" + +# type: Plain text +#: validlocale.8:49 +#, fuzzy +msgid "locale-gen(8), localedef(1), locale(1)" +msgstr "locale-gen(8), localedef(1), locale(1), base-config(8)" + +# type: TH +#~ msgid "BASE-CONFIG" +#~ msgstr "BASE-CONFIG" + +# type: Plain text +#~ msgid "base-config - Debian base system configuration" +#~ msgstr "base-config - configuración del sistema base de Debian" + +# type: SH +#~ msgid "SYNOPSIS" +#~ msgstr "SINOPSIS" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is the program that was run when you first rebooted into " +#~ "your newly installed debian system. It walks you through setting up the " +#~ "system and downloading additional software, and so forth. The program can " +#~ "be run at any later date to walk you through essentially the same process " +#~ "again." +#~ msgstr "" +#~ "B es el programa que se ejecutó la primera vez que arrancó " +#~ "en su sistema Debian recién instalado. base-config termina de configurar " +#~ "el sistema, descarga programas adicionales... El programa puede " +#~ "ejecutarse en cualquier momento posterior para realizar el mismo proceso " +#~ "de nuevo." + +# type: SH +#~ msgid "IMPLEMENTATION" +#~ msgstr "IMPLEMENTACIÓN" + +# type: Plain text +#~ msgid "" +#~ "B generates a menu of choices from the contents of B, and from debconf templates." +#~ msgstr "" +#~ "B genera un menú de elecciones con los contenidos de B, y de las plantillas de debconf." + +# type: Plain text +#~ msgid "" +#~ "The .mnu files in /usr/lib/base-config/ control whether the menu item " +#~ "appears only on new installs (Only-New: true), whether debconf can " +#~ "already be running when the item is run (Debconf: true), a numeric Order " +#~ "controls placement in the menu. If a .mnu file contains \"Exit-Menu: true" +#~ "\", then base-config will terminate after running that menu item. " +#~ "Finally, a \"Changes-Menu: true\" line will make base-config rebuild the " +#~ "menu after running the menu item." +#~ msgstr "" +#~ "Los ficheros .mnu de /usr/lib/base-config/ controlan si el elemento del " +#~ "menú aparece sólo en nuevas instalaciones (\"Only-New: true\"), si " +#~ "debconf puede estar siendo ejecutado en el momento en el que se ejecute " +#~ "el elemento (Debconf: true). Una opción numérica \"Order\" controla el " +#~ "lugar en el menú. Si el fichero .mnu contiene \"Exit-Menu:true\", base-" +#~ "config terminará después de ejectuar ese elemento del menú. Finalmente, " +#~ "una línea \"Changes-Menu: true\" hará que base-config reconstruya el menú " +#~ "después de ejecutar el elemento del menú." + +# type: Plain text +#~ msgid "" +#~ "The .tst files in /usr/lib/base-config/ are run when base-config builds " +#~ "the menu and must return true for that menu item to appear on the menu." +#~ msgstr "" +#~ "Los ficheros .tst de /usr/lib/base-config/ se ejecutan cuando base-config " +#~ "construye el menú y debe devolver \"true\" para que ese elemento aparezca " +#~ "en el menú." + +# type: Plain text +#~ msgid "" +#~ "The menu items are taken from debconf, by looking for items in the " +#~ "debconf database named base-config/menu/whatever." +#~ msgstr "" +#~ "Los elementos del menú se toman de debconf, buscando los elementos en la " +#~ "base de datos de debconf llamada base-config/menu/loquesea." + +# type: Plain text +#~ msgid "" +#~ "When a menu item is selected, the corresponding program, in /usr/lib/base-" +#~ "config is run. If this is a fresh install onto a new debian system, the " +#~ "program receives \"new\" as its first argument." +#~ msgstr "" +#~ "Cuando se selecciona elemento del menú, se ejecuta el programa " +#~ "correspondiente en /usr/lib/base-config. Si ésta es la primera " +#~ "instalación en un sistema muevo, entonces el programa recibe \"new\" como " +#~ "su primer argumento." + +# type: Plain text +#~ msgid "" +#~ "B checks the return codes of each of the programs. If a " +#~ "program returns nonzero, the main menu is displayed (this may involve " +#~ "lowering the debconf priority)." +#~ msgstr "" +#~ "B comprueba los valores devueltos por cada programa. Si un " +#~ "programa devuelve un valor distinto de cero, se muestra el menú principal " +#~ "(puede que esto implique bajar la prioridad de debconf)." + +# type: Plain text +#~ msgid "" +#~ "Generally the user is advanced down the menu from item to item as each " +#~ "succeeds. If a menu item needs to jump back to a previous item in the " +#~ "menu, or skip over a subsequent item, it can write the name of the next " +#~ "menu item to show to the file \"jump-to\" in the current directory." +#~ msgstr "" +#~ "Normalmente el usuario es guiado de arriba abajo de un elemento del menú " +#~ "en otro a medida que cada uno de ellos se completa con éxito. Si un " +#~ "elemento del menú necesita volver a otro anterior o saltar alguno de los " +#~ "posteriores, puede hacerlo escribiendo el nombre del siguiente elemento " +#~ "del menú al que saltar en el fichero \"jump-to\" en el directorio actual." + +# type: Plain text +#~ msgid "" +#~ "Every base-config run is logged to B. B contains timing information to go with the log. " +#~ "This allows replays of base-config runs using the B(1) utility." +#~ msgstr "" +#~ "Cualquier ejecución de base-config se registra en B. B contiene información de los " +#~ "tiempos que van con el registro. Esto permite volver a ver la ejecución " +#~ "de base-config usando la utilidad B(1)B<.>" + +# type: Plain text +#~ msgid "" +#~ "B, if it exists, is used by B " +#~ "on new installs to get values from the debian-installer first stage " +#~ "install." +#~ msgstr "" +#~ "Si existe B, B lo usa en nuevas " +#~ "instalaciones para obtener valores de la primera etapa de instalación del " +#~ "\"debian-installer\"." + +# type: Plain text +#~ msgid "" +#~ "Other packages can drop files into B, and add menu " +#~ "titles in debconf, and they will be added to the menu. It is very " +#~ "strongly encouraged that any such programs communicate with the user " +#~ "entirely via debconf, so that the base configuration maintains a " +#~ "consistent and professional look." +#~ msgstr "" +#~ "Otros paquetes pueden dejar ficheros en B, y " +#~ "añadir títulos de menú en debconf, y serán añadidos al menú. Es altamente " +#~ "recomendable que cualquiera de estos programas se comunique con el " +#~ "usuario totalmente a través de debconf, de esta forma, la configuración " +#~ "mantiene un aspecto consistente y profesional." + +# type: Plain text +#~ msgid "" +#~ "Another useful thing for custom distributions is /usr/share/base-config/" +#~ "debconf-seed. If that directory exists, every file in it will be loaded " +#~ "into the debconf database using B(1)" +#~ msgstr "" +#~ "Otra cosa útil para las distribuciones personalizadas es /usr/share/base-" +#~ "config/debconf-seed. Si ese directorio existe, todos los ficheros dentro " +#~ "de él se cargarán en la base de datos de debconf usando B(1)" + +# type: Plain text +#~ msgid "" +#~ "If the file /var/log/installer/debconf-seed is created by the debian-" +#~ "installer, it will also be loaded into the debconf database." +#~ msgstr "" +#~ "Si debian-installer crea el fichero /var/log/installer/debconf-seed, " +#~ "también se incorporará a la base de datos de debconf." + +# type: SH +#~ msgid "ENVIRONMENT" +#~ msgstr "ENTORNO" + +# type: Plain text +#~ msgid "" +#~ "The following environment variables influence B. These " +#~ "variables may be set at run time, or for new installs, may be passed to " +#~ "the kernel at the B(8) (or other bootloader) command line. Consult " +#~ "your boot loader's documentation for details. For example, lilo can be " +#~ "booted with something like \"linux DEBIAN_FRONTEND=readline\"." +#~ msgstr "" +#~ "Las siguientes variables de entorno influencian a B. Estas " +#~ "variables pueden establecerse en tiempo de ejecución, o para nuevas " +#~ "instalaciones, puede pasarse al núcleo en la línea de órdenes de B" +#~ "(8) (u otro gestor de arranque). Consulte la documentación de su gestor " +#~ "de arranque para más detalles. Por ejemplo, lilo puede arrancarse con " +#~ "algo como \"linux DEBIAN_FRONTEND=readline\"." + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "Control various things about B(7)" +#~ msgstr "Controlan varias cosas de B(7)" + +# type: SH +#~ msgid "AUTHOR" +#~ msgstr "AUTOR" + +# type: Plain text +#~ msgid "Joey Hess Ejoeyh@debian.orgE" +#~ msgstr "Joey Hess Ejoey@debian.orgE" + +# type: TH +#~ msgid "TERMWRAP" +#~ msgstr "TERMWRAP" + +# type: Plain text +#~ msgid "termwrap - terminal wrapper" +#~ msgstr "termwrap - envuelve un terminal" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is used to execute B(8) on newly installed " +#~ "Debian systems. It examines the environment, taking note of locale " +#~ "settings, and what type of console is available, and runs an appropriate " +#~ "terminal program. For example, at the Linux console and in a Japanese " +#~ "locale, it runs jfterm. The specified command is run inside the terminal " +#~ "program (if any)." +#~ msgstr "" +#~ "B se usa para ejecutar B(8) en sistemas Debian " +#~ "recién instalados. Examina el entorno, toma nota de la configuración de " +#~ "las opciones de localización y de que tipo de terminal está disponible, " +#~ "para luego ejecutar un programa de terminal apropiado. Por ejemplo, en " +#~ "una consola de Linux con configuración de localización japonesa ejecutará " +#~ "jfterm. La orden especificada se ejecuta dentro del programa de terminal " +#~ "(si hay alguno)." + +# type: SH +#~ msgid "OPTIONS" +#~ msgstr "OPCIONES" + +# type: TP +#~ msgid "I<-nnt>" +#~ msgstr "I<-nnt>" + +# type: Plain text +#~ msgid "Don't run another terminal." +#~ msgstr "No ejecutar otro terminal." + +# type: TH +#~ msgid "APT-SETUP" +#~ msgstr "APT-SETUP" + +# type: Plain text +#~ msgid "apt-setup - add apt download sources" +#~ msgstr "apt-setup - añade fuentes para las descargas de apt" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is an interactive program that simplifies adding sources to " +#~ "apt's sources.list. It knows about all the major debian mirrors and can " +#~ "help you select one. It can even use B(8) to scan CDs." +#~ msgstr "" +#~ "B es un programa interactivo que simplifica el proceso de " +#~ "añadir fuentes al sources.list de apt. Conoce las principales réplicas " +#~ "Debian y puede ayudarle a seleccionar una. Incluso puede usar B" +#~ "(8) para analizar CD's." + +# type: TP +#~ msgid "I" +#~ msgstr "I" + +# type: Plain text +#~ msgid "" +#~ "By default no probing of CDs is done. Passing \"probe\" as the first " +#~ "argument to this program will make it probe for a CD in the drive on " +#~ "startup and add it to sources.list. This is useful on initial debian " +#~ "installs, to minimize interaction with the user." +#~ msgstr "" +#~ "Por omisión no se busca ningún CD. Si se pasa \"probe\" como primer " +#~ "argumento el programa mirará al arrancar si hay un CD en la unidad y lo " +#~ "añadirá al sources.list. Esto es útil en instalaciones iniciales de " +#~ "Debian, para minimizar la interacción con el usuario." + +# type: TP +#~ msgid "I<-N>" +#~ msgstr "I<-N>" + +# type: Plain text +#~ msgid "" +#~ "Indicates that this is a new install. This parameter allows apt-setup to " +#~ "run in noninteractive mode if its debconf questions have been preseeded." +#~ msgstr "" +#~ "Indica que es una nueva instalación. Este parámetro permite ejecutar apt-" +#~ "setup de forma no interactiva si los valores de debconf han sido " +#~ "preconfigurados." + +# type: Plain text +#~ msgid "Joey Hess Ejoey@kitenet.netE" +#~ msgstr "Joey Hess Ejoey@kitenet.netE" + +# type: TH +#~ msgid "TZSETUP" +#~ msgstr "TZSETUP" + +# type: TH +#~ msgid "16 January 2004" +#~ msgstr "16 de enero de 2004" + +# type: TH +#~ msgid "Debian" +#~ msgstr "Debian" + +# type: TH +#~ msgid "Debian Timezone Configuration" +#~ msgstr "Configuración de zona horaria en Debian" + +# type: Plain text +#~ msgid "tzsetup - set the local timezone" +#~ msgstr "tzsetup - establece la zona horaria local" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "This manual page explains how you can use the B utility to set " +#~ "the local timezone. This is necessary to let your system know about the " +#~ "difference between system time and local time (the time in the real " +#~ "world). It is also necessary to make your system behave nicely when your " +#~ "location uses Daylight Savings Time." +#~ msgstr "" +#~ "Esta página del manual explica como puede usar la utilidad B " +#~ "para establecer la zona horaria local. Esto es importante para que su " +#~ "sistema sepa la diferencia entre el tiempo del sistema y el tiempo local " +#~ "(el tiempo del mundo real). También es necesario para que su sistema se " +#~ "comporte de forma adecuada cuando en su zona se realicen cambios horarios " +#~ "para aprovechar mejor la luz del día." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "A valid system time together with the correct local time zone will give " +#~ "you best performance and highest reliability. It is especially important " +#~ "in a network environment, where even small time differences can make a " +#~ "mirror refetch a whole ftp site, or where time stamps on external file " +#~ "systems are used." +#~ msgstr "" +#~ "Un tiempo del sistema válido junto con la zona horaria adecuada le dará " +#~ "mejores resultados y una mayor seguridad. Es especialmente importante en " +#~ "un entorno de red, donde incluso pequeñas diferencias de tiempo pueden " +#~ "hacer que una réplica vuelva a descargar todo un sitio ftp, o donde se " +#~ "usan marcas de tiempo en un sistema de ficheros externo." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "B is typically called without any parameters from the shell. " +#~ "Optionally, the -y parameter can be used, to make it always change your " +#~ "time zone without asking first. The -g parameter can also be used, to " +#~ "make it ask if the hardware clock is set to gmt or not. The -c parameter, " +#~ "followed by a country code, hints at the country the user's time zone may " +#~ "be in. The -N parameter allows it to run noninteractively if the debconf " +#~ "questions have been preseeded." +#~ msgstr "" +#~ "Normalmente se invoca B desde un shell sin parámetros. " +#~ "Opcionalmente, puede usarse la opción -y, para que siempre cambie la zona " +#~ "horaria sin preguntar primero. El parámetro -g puede también usarse, para " +#~ "que pregunte si el reloj físico del sistema está en hora GMT o no. El " +#~ "parámetro -c, seguido de un código de país, indica el país en el que " +#~ "posiblemente esté la zona horaria del usuario. El parámetro -N hace que " +#~ "se ejecute de forma no interactiva si ha sido preconfigurado." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "After you made your choice, B will try to change the timezone " +#~ "for you. See the B section below for technical details. You " +#~ "must have root privileges to actually change anything. Please use " +#~ "B(1) as a user space command to just look at the timezones. It " +#~ "will print the local time in any timezone recognized by the system." +#~ msgstr "" +#~ "Después de que realice su elección, B tratará de cambiar la zona " +#~ "horaria por usted. Lea la sección B de más abajo " +#~ "para los detalles técnicos. Debe de tener privilegios de superusuario " +#~ "para cambiar realmente cualquier configuración. Puede usar B" +#~ "(1) como una orden de usuario para simplemente mirar las zonas horarias " +#~ "reconocidas por el sistema. Mostrará la hora local y todas las zonas " +#~ "horarias reconocidas por el sistema." + +# type: SH +#~ msgid "A WORD OF WARNING" +#~ msgstr "UN AVISO" + +# type: Plain text +#~ msgid "" +#~ "What timezone is correct for your system? It depends on the geographical " +#~ "location of the machine. Getting the correct location is important, but " +#~ "the system must also know how your hardware clock is set. Most DOS based " +#~ "PCs set their hardware clock on Local Time, while most UNIX systems set " +#~ "their hardware clock to UTC." +#~ msgstr "" +#~ "¿Qué zona horaria es correcta para su sistema? Depende de la localización " +#~ "geográfica de la máquina. Obtener la localización correcta es importante, " +#~ "pero el sistema también necesita saber cómo funciona el reloj físico. La " +#~ "mayoría de los ordenadores personales basados en DOS establecen el reloj " +#~ "físico según el tiempo local, mientras que los sistemas UNIX lo " +#~ "establecen según UTC." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "The Debian GNU/Linux system gains its knowledge of this setting from the " +#~ "file I. This file contains either the line B, " +#~ "which indicates that the hardware clock is set to UTC, or it contains the " +#~ "line B, which declares the hardware clock is set to Local Time. " +#~ "If these setting are correct, and the hardware clock is truly set as " +#~ "indicated, then configuring the proper timezone for the machine will " +#~ "cause the proper date and time to be displayed. If these are not set " +#~ "correctly, the the reported time will be quite incorrect. See B" +#~ "(8) for more details on this topic." +#~ msgstr "" +#~ "El sistema Debian GNU/Linux obtiene la configuración del fichero I. Este fichero contiene o bien la línea B, que " +#~ "indica que el reloj físico está en UTC, o bien la línea B, que " +#~ "indica que está en tiempo local. Si el reloj está de verdad como se " +#~ "indica, entonces configurar la zona horaria adecuada hará que se muestre " +#~ "la fecha y el tiempo correcto. En caso de no ser así, el tiempo mostrado " +#~ "podrá ser bastante incorrecto. Consulte B(8) para más detalles " +#~ "acerca de este tema." + +# type: SH +#~ msgid "INTERNALS" +#~ msgstr "FUNCIONAMIENTO INTERNO" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "The work done by B is actually pretty simple. It just updates " +#~ "the link I to point to the correct timezone installed in " +#~ "I." +#~ msgstr "" +#~ "El trabajo hecho por B es realmente bastante sencillo. Sólo " +#~ "actualiza el enlace I para que apunte al la zona horaria " +#~ "correcta instalada en I." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "There is nothing wrong with doing this manually. However, using " +#~ "B you don't have to remember the path to the timezones." +#~ msgstr "" +#~ "No pasa nada malo si esto se realiza manualmente. Sin embargo, usando " +#~ "B no es necesario recordar donde se guardan las zonas horarias." + +# type: Plain text +#~ msgid "I I I" +#~ msgstr "I I I" + +# type: SH +#~ msgid "DERIVATION" +#~ msgstr "DERIVACIÓN" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "This program is based on B(8) -- the only major difference is " +#~ "that this program uses debconf for its user interface, and that it allows " +#~ "configuration of GMT." +#~ msgstr "" +#~ "Este programa se base en B(8) -- la mayor diferencia está en " +#~ "que éste usa debconf para la interfaz de usuario, y que además permite la " +#~ "configuración de GMT." + +# type: Plain text +#~ msgid "B(8) B(1) B(5) B(8)" +#~ msgstr "B(8) B(1) B(5) B(8)" --- glibc-2.7.orig/debian/local/manpages/po/id.po +++ glibc-2.7/debian/local/manpages/po/id.po @@ -0,0 +1,526 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: base-config man\n" +"POT-Creation-Date: 2005-12-27 17:38-0500\n" +"PO-Revision-Date: 2005-11-11 16:50-0500\n" +"Last-Translator: Debian Indonesia Team \n" +"Language-Team: Debian Indonesia Team \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ascii\n" +"Content-Transfer-Encoding: 8bit\n" + +# type: TH +#: validlocale.8:1 +#, fuzzy, no-wrap +msgid "validlocale" +msgstr "validlocale" + +# type: TH +#: validlocale.8:1 +#, fuzzy, no-wrap +msgid "0.1" +msgstr "0.1" + +# type: TH +#: validlocale.8:1 +#, fuzzy, no-wrap +msgid "Petter Reinholdtsen" +msgstr "Petter Reinholdtsen" + +# type: SH +#: validlocale.8:2 +#, fuzzy, no-wrap +msgid "NAME" +msgstr "NAMA" + +# type: Plain text +#: validlocale.8:5 +#, fuzzy +msgid "validlocale - Test if a given locale is available" +msgstr "validlocale - memeriksa apakah lokal yang diberikan tersedia" + +# type: SH +#: validlocale.8:5 +#, fuzzy, no-wrap +msgid "SYNTAX" +msgstr "RINGKASAN" + +# type: Plain text +#: validlocale.8:8 +#, fuzzy +msgid "validlocale EIE" +msgstr "validlocale EIE" + +# type: SH +#: validlocale.8:8 +#, fuzzy, no-wrap +msgid "DESCRIPTION" +msgstr "PENJELASAN" + +# type: Plain text +#: validlocale.8:13 +#, fuzzy +msgid "" +"Test if the locale given as argument is a valid locale. If it isn't, print " +"on stdout the string to add to /etc/locale.gen to make locale-gen generate " +"the locale (if it exists at all)." +msgstr "" +"Memeriksa apakah lokal yang diberikan sebagai argumen adalah lokal yang sah. " +"Jika tidak, akan dicetak pada stdout string yang dapat ditambahkan ke /etc/" +"locale.gen untuk membuat locale-gen meng-generate lokal tersebut (jika " +"tersedia)." + +# type: SH +#: validlocale.8:13 +#, fuzzy, no-wrap +msgid "FILES" +msgstr "BERKAS-BERKAS" + +# type: Plain text +#: validlocale.8:16 +#, fuzzy +msgid "I" +msgstr "I" + +# type: Plain text +#: validlocale.8:18 +#, fuzzy +msgid "I" +msgstr "I" + +# type: SH +#: validlocale.8:18 +#, fuzzy, no-wrap +msgid "ENVIRONMENT VARIABLES" +msgstr "VARIABEL-VARIABEL LINGKUNGAN" + +# type: TP +#: validlocale.8:20 +#, fuzzy, no-wrap +msgid "B" +msgstr "B" + +# type: Plain text +#: validlocale.8:24 +#, fuzzy +msgid "" +"Which charset to assume if the given locale is missing from the list of " +"supported locales." +msgstr "" +"set karakter mana yang akan dipakai bila lokal yang diberikan tidak ada pada " +"daftar lokal yang didukung." + +# type: SH +#: validlocale.8:24 +#, fuzzy, no-wrap +msgid "EXAMPLES" +msgstr "CONTOH" + +# type: Plain text +#: validlocale.8:28 +#, fuzzy +msgid "" +"If you give a valid locale as parameter, it outputs a string specifying this " +"on stderr:" +msgstr "" +"Bila anda memberikan lokal yang sah pada parameter, program akan menuliskan " +"string yang memberitahukan hal ini pada stderr:" + +# type: Plain text +#: validlocale.8:31 +#, fuzzy +msgid "% validlocale C" +msgstr "% validlocale C" + +# type: Plain text +#: validlocale.8:33 +#, fuzzy +msgid "locale 'C' valid and available" +msgstr "locale 'C' valid and available" + +# type: Plain text +#: validlocale.8:37 +#, fuzzy +msgid "" +"When given a invalid (not generated or just nonexistent), it outputs a " +"string on stderr telling that this is an invalid locale, and a string to " +"stdout with the string to add to /etc/locale.gen to have this locale " +"generated:" +msgstr "" +"Ketika parameter yang diberikan tidak sah (tidak digenerate atau tidak " +"tersedia), program akan mencetak pada stderr string yang memberitahu bahwa " +"lokal tidak sah, dan string lain pada stdout, yang dapat ditambahkan pada /" +"etc/locale.gen agar lokal ini digenerate:" + +# type: Plain text +#: validlocale.8:40 +#, fuzzy +msgid "% validlocale de_AU@euro" +msgstr "% validlocale de_AU@euro" + +# type: Plain text +#: validlocale.8:42 +#, fuzzy +msgid "locale 'de_AT@euro' not available" +msgstr "locale 'de_AT@euro' not available" + +# type: Plain text +#: validlocale.8:44 +#, fuzzy +msgid "de_AT@euro ISO-8859-15" +msgstr "de_AT@euro ISO-8859-15" + +# type: SH +#: validlocale.8:44 +#, fuzzy, no-wrap +msgid "AUTHORS" +msgstr "PENULIS" + +# type: Plain text +#: validlocale.8:47 +#, fuzzy +msgid "Petter Reinholdtsen Epere@hungry.comE" +msgstr "Petter Reinholdtsen Epere@hungry.comE" + +# type: SH +#: validlocale.8:47 +#, fuzzy, no-wrap +msgid "SEE ALSO" +msgstr "LIHAT JUGA" + +# type: Plain text +#: validlocale.8:49 +#, fuzzy +msgid "locale-gen(8), localedef(1), locale(1)" +msgstr "locale-gen(8), localedef(1), locale(1), base-config(8)" + +# type: TH +#, fuzzy +#~ msgid "BASE-CONFIG" +#~ msgstr "BASE-CONFIG" + +# type: Plain text +#, fuzzy +#~ msgid "base-config - Debian base system configuration" +#~ msgstr "base-config - Alat konfigurasi sistem basis Debian" + +# type: SH +#, fuzzy +#~ msgid "SYNOPSIS" +#~ msgstr "RINGKASAN" + +# type: Plain text +#, fuzzy +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "B is the program that was run when you first rebooted into " +#~ "your newly installed debian system. It walks you through setting up the " +#~ "system and downloading additional software, and so forth. The program can " +#~ "be run at any later date to walk you through essentially the same process " +#~ "again." +#~ msgstr "" +#~ "B merupakan program yang dijalankan saat pertama kali anda " +#~ "boot ke sistem Debian anda yang baru diinstal. Program ini membimbing " +#~ "anda melalui tahap-tahap pengaturan sistem, mengunduh (mendownload) " +#~ "perangkat lunak tambahan, dan seterusnya. Program ini dapat dijalankan " +#~ "lagi di kemudian hari, apabila anda ingin mengulangi proses yang sama " +#~ "lagi." + +# type: SH +#, fuzzy +#~ msgid "IMPLEMENTATION" +#~ msgstr "IMPLEMENTASI" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "B generates a menu of choices from the contents of B, and from debconf templates." +#~ msgstr "" +#~ "B menghasilkan pilihan menu dari isi berkas B, dan dari templet-templet debconf." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "The .mnu files in /usr/lib/base-config/ control whether the menu item " +#~ "appears only on new installs (Only-New: true), whether debconf can " +#~ "already be running when the item is run (Debconf: true), a numeric Order " +#~ "controls placement in the menu. If a .mnu file contains \"Exit-Menu: true" +#~ "\", then base-config will terminate after running that menu item. " +#~ "Finally, a \"Changes-Menu: true\" line will make base-config rebuild the " +#~ "menu after running the menu item." +#~ msgstr "" +#~ "Berkas-berkas .mnu dalam /usr/lib/base-config mengatur apakah sebuah item " +#~ "menu muncul hanya saat instalasi baru (Only-New: True), apakah debconf " +#~ "dapat telah jalan ketika item tersebut dijalankan (Debconf: true), urutan " +#~ "numerik mengatur peletakan dalam menu. Jika sebuah berkas .mnu berisi " +#~ "\"Exit-Menu: true\", maka base-config akan berhenti setelah menjalankan " +#~ "item menu tersebut. Terakhir, baris \"Changes-menu: true\" akan membuat " +#~ "base-config membangun kembali menu setelah menjalankan item menu tersebut." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "The .tst files in /usr/lib/base-config/ are run when base-config builds " +#~ "the menu and must return true for that menu item to appear on the menu." +#~ msgstr "" +#~ "Berkas-berkas .tst pada /usr/lib/base-config/ akan dijalankan ketika base-" +#~ "config membangun menu dan mesti mengembalikan nilai benar (true) agar " +#~ "item menu tersebut muncul pada menu." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "The menu items are taken from debconf, by looking for items in the " +#~ "debconf database named base-config/menu/whatever." +#~ msgstr "" +#~ "Item-item menu diambil dari debconf, dengan melihat item-item pada basis " +#~ "data debconf yang dinamakan base-config/menu/sesuatu." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "When a menu item is selected, the corresponding program, in /usr/lib/base-" +#~ "config is run. If this is a fresh install onto a new debian system, the " +#~ "program receives \"new\" as its first argument." +#~ msgstr "" +#~ "Saat sebuah item menu dipilih, program yang sesuai pada /usr/lib/base-" +#~ "config akan dijalankan. Jika ini merupakan instalasi perdana pada sebuah " +#~ "sistem Debian yang baru, program akan menerima \"new\" pada argumen " +#~ "pertama." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "B checks the return codes of each of the programs. If a " +#~ "program returns nonzero, the main menu is displayed (this may involve " +#~ "lowering the debconf priority)." +#~ msgstr "" +#~ "B memeriksa nilai kembalian dari tiap program. Jika sebuah " +#~ "program mengembalikan nilai bukan nol, maka menu utama akan ditampilkan " +#~ "(ini bisa melibatkan penurunan prioritas debconf)." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "Every base-config run is logged to B. B contains timing information to go with the log. " +#~ "This allows replays of base-config runs using the B(1) utility." +#~ msgstr "" +#~ "Setiap kali base-config dijalankan, akan ditulis log pada B. B berisi informasi waktu " +#~ "untuk dijalankan dengan log. Ini memungkinkan pengulangan jalannya base-" +#~ "config dengan menggunakan utilitas B(1)" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "B, if it exists, is used by B " +#~ "on new installs to get values from the debian-installer first stage " +#~ "install." +#~ msgstr "" +#~ "B, jika ada, digunakan oleh B " +#~ "pada instalasi baru untuk mengambil nilai-nilai dari tahap pertama " +#~ "instalasi debian-installer." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "Other packages can drop files into B, and add menu " +#~ "titles in debconf, and they will be added to the menu. It is very " +#~ "strongly encouraged that any such programs communicate with the user " +#~ "entirely via debconf, so that the base configuration maintains a " +#~ "consistent and professional look." +#~ msgstr "" +#~ "Paket-paket lain dapat menaruh berkas-berkas pada B, dan menambahkan judul menu pada debconf, dan mereka akan ditambahkan " +#~ "pada menu. Sangat disarankan agar program-program tersebut berinteraksi " +#~ "dengan pengguna sepenuhnya melalui debconf, sehingga konfigurasi basis " +#~ "dapat mempertahankan tampilan yang konsisten dan profesional." + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "Another useful thing for custom distributions is /usr/share/base-config/" +#~ "debconf-seed. If that directory exists, every file in it will be loaded " +#~ "into the debconf database using B(1)" +#~ msgstr "" +#~ "Hal berguna lainnya untuk distribusi yang dikustomisasi adalah berkas /" +#~ "usr/share/base-config/debconf-seed. Bila direktori tersebut ditemukan,' " +#~ "semua berkas didalamnya akan dimuat dalam basis data debconf menggunakan " +#~ "B(1)" + +# type: SH +#, fuzzy +#~ msgid "ENVIRONMENT" +#~ msgstr "LINGKUNGAN" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "The following environment variables influence B. These " +#~ "variables may be set at run time, or for new installs, may be passed to " +#~ "the kernel at the B(8) (or other bootloader) command line. Consult " +#~ "your boot loader's documentation for details. For example, lilo can be " +#~ "booted with something like \"linux DEBIAN_FRONTEND=readline\"." +#~ msgstr "" +#~ "Variabel-variabel lingkungan berikut mempengaruhi B. Nilai-" +#~ "nilai ini dapat diatur saat menjalankan, atau untuk instalasi baru, dapat " +#~ "diberikan pada kernel melalui baris perintah B(8) (atau boot " +#~ "loader lainnya). Lihat dokumentasi boot loader anda untuk informasi " +#~ "detil. Sebagai contoh, lilo dapat diboot sebagai berikut: \"linux " +#~ "DEBIAN_FRONTEND=readline\"." + +# type: TP +#, fuzzy +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#, fuzzy +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#, fuzzy +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#, fuzzy +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#, fuzzy +#~ msgid "Control various things about B(7)" +#~ msgstr "Mengatur beragam hal mengenai B(7)" + +# type: SH +#, fuzzy +#~ msgid "AUTHOR" +#~ msgstr "PENULIS" + +# type: Plain text +#, fuzzy +#~ msgid "Joey Hess Ejoeyh@debian.orgE" +#~ msgstr "Joey Hess Ejoeyh@debian.orgE" + +# type: TH +#, fuzzy +#~ msgid "TERMWRAP" +#~ msgstr "TERMWRAP" + +# type: Plain text +#, fuzzy +#~ msgid "termwrap - terminal wrapper" +#~ msgstr "termwrap - terminal wrapper" + +# type: Plain text +#, fuzzy +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "B is used to execute B(8) on newly installed " +#~ "Debian systems. It examines the environment, taking note of locale " +#~ "settings, and what type of console is available, and runs an appropriate " +#~ "terminal program. For example, at the Linux console and in a Japanese " +#~ "locale, it runs jfterm. The specified command is run inside the terminal " +#~ "program (if any)." +#~ msgstr "" +#~ "B digunakan untuk menjalankan B(8) pada sistem " +#~ "Debian yang baru dipasang. Ia meneliti lingkungan, memperhatikan " +#~ "pengaturan lokal, dan jenis konsol yang tersedia, dan kemudian " +#~ "menjalankan program terminal yang sesuai. Sebagai contoh, pada konsol " +#~ "Linux dan lokal Jepang, ia akan menjalankan jfterm. Program yang " +#~ "diberikan akan dijalakan pada terminal tersebut (jika tersedia)." + +# type: SH +#, fuzzy +#~ msgid "OPTIONS" +#~ msgstr "OPSI-OPSI" + +# type: TP +#, fuzzy +#~ msgid "I<-nnt>" +#~ msgstr "I<-nnt>" + +# type: Plain text +#, fuzzy +#~ msgid "Don't run another terminal." +#~ msgstr "Jangan menjalankan terminal yang lain." + +# type: TH +#, fuzzy +#~ msgid "APT-SETUP" +#~ msgstr "APT-SETUP" + +# type: Plain text +#, fuzzy +#~ msgid "apt-setup - add apt download sources" +#~ msgstr "apt-setup - menambahkan sumber-sumber download untuk apt" + +# type: Plain text +#, fuzzy +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "B is an interactive program that simplifies adding sources to " +#~ "apt's sources.list. It knows about all the major debian mirrors and can " +#~ "help you select one. It can even use B(8) to scan CDs." +#~ msgstr "" +#~ "B merupakan program interaktif yang menyederhanakan penambahan " +#~ "sumber-sumber ke berkas sources.list dari apt. Ia mengetahui semua mirror-" +#~ "mirror utama Debian dan dapat membantu anda memilih salah satu. Ia bahkan " +#~ "dapat menggunakan B(8) untuk memindai CD." + +# type: TP +#, fuzzy +#~ msgid "I" +#~ msgstr "I" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "By default no probing of CDs is done. Passing \"probe\" as the first " +#~ "argument to this program will make it probe for a CD in the drive on " +#~ "startup and add it to sources.list. This is useful on initial debian " +#~ "installs, to minimize interaction with the user." +#~ msgstr "" +#~ "Secara bawaan tidak dilakukan pemeriksaan CD. Memberikan \"probe\" " +#~ "sebagai argumen pertama untuk program ini, akan membuat program memeriksa " +#~ "CD yang ada dalam penggerak dan menambahkannya ke berkas sources.list. " +#~ "Ini berguna pada saat instalasi awal Debian, untuk mengurangi interaksi " +#~ "dengan pengguna." + +# type: TP +#, fuzzy +#~ msgid "I<-N>" +#~ msgstr "I<-N>" + +# type: Plain text +#, fuzzy +#~ msgid "Joey Hess Ejoey@kitenet.netE" +#~ msgstr "Joey Hess Ejoey@kitenet.netE" + +# type: SH +#, fuzzy +#~ msgid "DERIVATION" +#~ msgstr "PENJELASAN" --- glibc-2.7.orig/debian/local/manpages/po/de.po +++ glibc-2.7/debian/local/manpages/po/de.po @@ -0,0 +1,294 @@ +# base-config manual page +# Copyright (C) 2005 Free Software Foundation, Inc. +# Jens Seidel , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: base-config 2005/11/17\n" +"POT-Creation-Date: 2005-12-27 17:38-0500\n" +"PO-Revision-Date: 2005-11-17 21:06+0100\n" +"Last-Translator: Jens Seidel \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "validlocale" +msgstr "" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "0.1" +msgstr "" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "Petter Reinholdtsen" +msgstr "" + +# type: SH +#: validlocale.8:2 +#, no-wrap +msgid "NAME" +msgstr "NAME" + +# type: Plain text +#: validlocale.8:5 +msgid "validlocale - Test if a given locale is available" +msgstr "" + +# type: SH +#: validlocale.8:5 +#, no-wrap +msgid "SYNTAX" +msgstr "" + +# type: Plain text +#: validlocale.8:8 +msgid "validlocale EIE" +msgstr "" + +# type: SH +#: validlocale.8:8 +#, no-wrap +msgid "DESCRIPTION" +msgstr "BESCHREIBUNG" + +# type: Plain text +#: validlocale.8:13 +msgid "" +"Test if the locale given as argument is a valid locale. If it isn't, print " +"on stdout the string to add to /etc/locale.gen to make locale-gen generate " +"the locale (if it exists at all)." +msgstr "" + +# type: SH +#: validlocale.8:13 +#, no-wrap +msgid "FILES" +msgstr "" + +# type: Plain text +#: validlocale.8:16 +msgid "I" +msgstr "" + +# type: Plain text +#: validlocale.8:18 +msgid "I" +msgstr "" + +# type: SH +#: validlocale.8:18 +#, no-wrap +msgid "ENVIRONMENT VARIABLES" +msgstr "" + +# type: TP +#: validlocale.8:20 +#, no-wrap +msgid "B" +msgstr "" + +# type: Plain text +#: validlocale.8:24 +msgid "" +"Which charset to assume if the given locale is missing from the list of " +"supported locales." +msgstr "" + +# type: SH +#: validlocale.8:24 +#, no-wrap +msgid "EXAMPLES" +msgstr "BEISPIELE" + +# type: Plain text +#: validlocale.8:28 +msgid "" +"If you give a valid locale as parameter, it outputs a string specifying this " +"on stderr:" +msgstr "" + +# type: Plain text +#: validlocale.8:31 +msgid "% validlocale C" +msgstr "" + +# type: Plain text +#: validlocale.8:33 +msgid "locale 'C' valid and available" +msgstr "" + +# type: Plain text +#: validlocale.8:37 +msgid "" +"When given a invalid (not generated or just nonexistent), it outputs a " +"string on stderr telling that this is an invalid locale, and a string to " +"stdout with the string to add to /etc/locale.gen to have this locale " +"generated:" +msgstr "" + +# type: Plain text +#: validlocale.8:40 +msgid "% validlocale de_AU@euro" +msgstr "" + +# type: Plain text +#: validlocale.8:42 +msgid "locale 'de_AT@euro' not available" +msgstr "" + +# type: Plain text +#: validlocale.8:44 +msgid "de_AT@euro ISO-8859-15" +msgstr "" + +# type: SH +#: validlocale.8:44 +#, no-wrap +msgid "AUTHORS" +msgstr "AUTOR" + +# type: Plain text +#: validlocale.8:47 +msgid "Petter Reinholdtsen Epere@hungry.comE" +msgstr "" + +# type: SH +#: validlocale.8:47 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +# type: Plain text +#: validlocale.8:49 +msgid "locale-gen(8), localedef(1), locale(1)" +msgstr "" + +# type: TH +#~ msgid "BASE-CONFIG" +#~ msgstr "BASE-CONFIG" + +# type: Plain text +#~ msgid "base-config - Debian base system configuration" +#~ msgstr "base-config - Debian-Basissystemkonfiguration" + +# type: SH +#~ msgid "SYNOPSIS" +#~ msgstr "ÜBERSICHT" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is the program that was run when you first rebooted into " +#~ "your newly installed debian system. It walks you through setting up the " +#~ "system and downloading additional software, and so forth. The program can " +#~ "be run at any later date to walk you through essentially the same process " +#~ "again." +#~ msgstr "" +#~ "B ist das Programm, das lief, als Sie das erste Mal Ihr neu " +#~ "installiertes Debian-System starteten. Es führt Sie durch die Einrichtung " +#~ "des Systems, das Herunterladen zusätzlicher Software und so weiter. Das " +#~ "Programm kann zu jedem späteren Zeitpunkt erneut gestartet werden, um " +#~ "erneut durch den selben Prozess zu führen." + +# type: SH +#~ msgid "IMPLEMENTATION" +#~ msgstr "IMPLEMENTIERUNG" + +# type: Plain text +#~ msgid "" +#~ "B generates a menu of choices from the contents of B, and from debconf templates." +#~ msgstr "" +#~ "B erzeugt ein Auswahlmenü aus dem Inhalt von B und von Debconf-Vorlagen." + +# type: SH +#~ msgid "AUTHOR" +#~ msgstr "AUTOR" + +# type: Plain text +#~ msgid "Joey Hess Ejoeyh@debian.orgE" +#~ msgstr "Joey Hess Ejoey@kitenet.netE" + +# type: SH +#~ msgid "OPTIONS" +#~ msgstr "OPTIONEN" + +# type: TP +#~ msgid "I<-nnt>" +#~ msgstr "I<»-N«>" + +# type: TH +#, fuzzy +#~ msgid "APT-SETUP" +#~ msgstr "APT-SETUP" + +# type: Plain text +#, fuzzy +#~ msgid "apt-setup - add apt download sources" +#~ msgstr "apt-setup - Hinzufügen von Quellen zum Herunterladen" + +# type: Plain text +#, fuzzy +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "B is an interactive program that simplifies adding sources to " +#~ "apt's sources.list. It knows about all the major debian mirrors and can " +#~ "help you select one. It can even use B(8) to scan CDs." +#~ msgstr "" +#~ "B ist ein interaktives Programm, daß das Hinzufügen von " +#~ "Quellen zu apt's sources.list vereinfacht. Es kennt alle bedeutenden " +#~ "Debian-Spiegel und kann Ihnen bei der Auswahl helfen. Es kann sogar B(8) zum Durchsuchen von CDs verwenden." + +# type: TP +#, fuzzy +#~ msgid "I" +#~ msgstr "I<»probe«>" + +# type: Plain text +#, fuzzy +#~ msgid "" +#~ "By default no probing of CDs is done. Passing \"probe\" as the first " +#~ "argument to this program will make it probe for a CD in the drive on " +#~ "startup and add it to sources.list. This is useful on initial debian " +#~ "installs, to minimize interaction with the user." +#~ msgstr "" +#~ "Standardmäßig wird nicht auf CDs überprüft. Wird »probe« als erstes " +#~ "Argument an dieses Programm übergeben, dann wird beim Starten auf eine CD " +#~ "im Laufwerk geprüft und diese zu den sources.list hinzugefügt. Dies ist " +#~ "bei Debian Erstinstallationen nützlich, um die Interaktion mit dem Nutzer " +#~ "zu minimieren." + +# type: TP +#, fuzzy +#~ msgid "I<-N>" +#~ msgstr "I<»-N«>" + +# type: Plain text +#, fuzzy +#~ msgid "Joey Hess Ejoey@kitenet.netE" +#~ msgstr "Joey Hess Ejoey@kitenet.netE" + +# type: TH +#~ msgid "TZSETUP" +#~ msgstr "APT-SETUP" + +# type: SH +#~ msgid "DERIVATION" +#~ msgstr "BESCHREIBUNG" --- glibc-2.7.orig/debian/local/manpages/po/pl.po +++ glibc-2.7/debian/local/manpages/po/pl.po @@ -0,0 +1,490 @@ +msgid "" +msgstr "" +"Project-Id-Version: base-config\n" +"POT-Creation-Date: 2005-12-27 17:38-0500\n" +"PO-Revision-Date: 2005-10-23 21:50+0200\n" +"Last-Translator: Robert Luberda \n" +"Language-Team: Polish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-2\n" +"Content-Transfer-Encoding: 8bit\n" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "validlocale" +msgstr "validlocale" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "0.1" +msgstr "0.1" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "Petter Reinholdtsen" +msgstr "Petter Reinholdtsen" + +# type: SH +#: validlocale.8:2 +#, no-wrap +msgid "NAME" +msgstr "NAZWA" + +# type: Plain text +#: validlocale.8:5 +msgid "validlocale - Test if a given locale is available" +msgstr "validlocale - Sprawdza, czy dostêpne jest dane locale" + +# type: SH +#: validlocale.8:5 +#, no-wrap +msgid "SYNTAX" +msgstr "SK£ADNIA" + +# type: Plain text +#: validlocale.8:8 +msgid "validlocale EIE" +msgstr "validlocale EIE" + +# type: SH +#: validlocale.8:8 +#, no-wrap +msgid "DESCRIPTION" +msgstr "OPIS" + +# type: Plain text +#: validlocale.8:13 +msgid "" +"Test if the locale given as argument is a valid locale. If it isn't, print " +"on stdout the string to add to /etc/locale.gen to make locale-gen generate " +"the locale (if it exists at all)." +msgstr "" +"Sprawdza, czy locale podane jako argument jest poprawne. Je¶li nie jest, " +"wypisuje na stdout napis, jaki nale¿y dodaæ do /etc/locale.gen, aby " +"polecenie locale-gen wygenerowa³o dane locale (o ile w ogóle ono istnieje)." + +# type: SH +#: validlocale.8:13 +#, no-wrap +msgid "FILES" +msgstr "PLIKI" + +# type: Plain text +#: validlocale.8:16 +msgid "I" +msgstr "I" + +# type: Plain text +#: validlocale.8:18 +msgid "I" +msgstr "I" + +# type: SH +#: validlocale.8:18 +#, no-wrap +msgid "ENVIRONMENT VARIABLES" +msgstr "ZMIENNE ¦RODOWISKOWE" + +# type: TP +#: validlocale.8:20 +#, no-wrap +msgid "B" +msgstr "B" + +# type: Plain text +#: validlocale.8:24 +msgid "" +"Which charset to assume if the given locale is missing from the list of " +"supported locales." +msgstr "" +"Jakiego zestawu znaków u¿yæ, je¶li podanego locale nie ma w li¶cie " +"obs³ugiwanych." + +# type: SH +#: validlocale.8:24 +#, no-wrap +msgid "EXAMPLES" +msgstr "PRZYK£ADY" + +# type: Plain text +#: validlocale.8:28 +msgid "" +"If you give a valid locale as parameter, it outputs a string specifying this " +"on stderr:" +msgstr "" +"Je¶li jako parametr podano nazwê poprawnego locale, wypisuje na stderr " +"odpowiedni napis:" + +# type: Plain text +#: validlocale.8:31 +msgid "% validlocale C" +msgstr "% validlocale C" + +# type: Plain text +#: validlocale.8:33 +msgid "locale 'C' valid and available" +msgstr "locale 'C' valid and available" + +# type: Plain text +#: validlocale.8:37 +msgid "" +"When given a invalid (not generated or just nonexistent), it outputs a " +"string on stderr telling that this is an invalid locale, and a string to " +"stdout with the string to add to /etc/locale.gen to have this locale " +"generated:" +msgstr "" +"Je¶li podano nazwê nieprawid³owego locale (niewygenerowanego lub po prostu " +"nieistniej±cego), wypisuje na stderr napis mówi±cy o tym, ¿e nie jest to " +"prawid³owe locale, oraz - na stdout - napis, który nale¿y dodaæ do /etc/" +"locale.gen, aby móc wygenerowaæ dane locale:" + +# type: Plain text +#: validlocale.8:40 +msgid "% validlocale de_AU@euro" +msgstr "% validlocale de_AU@euro" + +# type: Plain text +#: validlocale.8:42 +msgid "locale 'de_AT@euro' not available" +msgstr "locale 'de_AT@euro' not available" + +# type: Plain text +#: validlocale.8:44 +msgid "de_AT@euro ISO-8859-15" +msgstr "de_AT@euro ISO-8859-15" + +# type: SH +#: validlocale.8:44 +#, no-wrap +msgid "AUTHORS" +msgstr "AUTOR" + +# type: Plain text +#: validlocale.8:47 +msgid "Petter Reinholdtsen Epere@hungry.comE" +msgstr "Petter Reinholdtsen Epere@hungry.comE" + +# type: SH +#: validlocale.8:47 +#, no-wrap +msgid "SEE ALSO" +msgstr "PATRZ TAK¯E" + +# type: Plain text +#: validlocale.8:49 +#, fuzzy +msgid "locale-gen(8), localedef(1), locale(1)" +msgstr "locale-gen(8), localedef(1), locale(1), base-config(8)" + +# type: TH +#~ msgid "BASE-CONFIG" +#~ msgstr "BASE-CONFIG" + +# type: Plain text +#~ msgid "base-config - Debian base system configuration" +#~ msgstr "base-config - konfiguracja podstawowego systemu Debian" + +# type: SH +#~ msgid "SYNOPSIS" +#~ msgstr "SK£ADNIA" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is the program that was run when you first rebooted into " +#~ "your newly installed debian system. It walks you through setting up the " +#~ "system and downloading additional software, and so forth. The program can " +#~ "be run at any later date to walk you through essentially the same process " +#~ "again." +#~ msgstr "" +#~ "B to program uruchamiany po pierwszym starcie nowo " +#~ "zainstalowanego systemu Debian. Prowadzi on u¿ytkownika przez " +#~ "konfiguracjê systemu, pobieranie dodatkowego oprogramowania i tak dalej. " +#~ "Program ten mo¿na uruchomiæ w dowolnym momencie, aby przej¶æ przez ten " +#~ "proces ponownie." + +# type: SH +#~ msgid "IMPLEMENTATION" +#~ msgstr "IMPLEMENTACJA" + +# type: Plain text +#~ msgid "" +#~ "B generates a menu of choices from the contents of B, and from debconf templates." +#~ msgstr "" +#~ "B generuje menu z list± wyborów na podstawie zawarto¶ci " +#~ "katalogu B oraz z szablonów programu debconf." + +# type: Plain text +#~ msgid "" +#~ "The .mnu files in /usr/lib/base-config/ control whether the menu item " +#~ "appears only on new installs (Only-New: true), whether debconf can " +#~ "already be running when the item is run (Debconf: true), a numeric Order " +#~ "controls placement in the menu. If a .mnu file contains \"Exit-Menu: true" +#~ "\", then base-config will terminate after running that menu item. " +#~ "Finally, a \"Changes-Menu: true\" line will make base-config rebuild the " +#~ "menu after running the menu item." +#~ msgstr "" +#~ "Pliki .mnu w /usr/lib/base-config/ okre¶laj±, czy dana pozycja z menu " +#~ "pojawia siê tylko w nowo instalowanych systemach (Only-New: true), czy " +#~ "debconf mo¿e ju¿ dzia³aæ, kiedy pozycja z menu jest uruchamiana (Debconf: " +#~ "true), a liczbowy \"Order\" okre¶la pozycjê w menu. Je¿eli plik .mnu " +#~ "zawiera \"Exit-Menu: true\", to base-config zakoñczy dzia³anie po " +#~ "uruchomieniu tej pozycji. W koñcu, linia \"Changes-Menu: true\" powoduje, " +#~ "¿e base-config przebuduje menu po uruchomieniu tej pozycji." + +# type: Plain text +#~ msgid "" +#~ "The .tst files in /usr/lib/base-config/ are run when base-config builds " +#~ "the menu and must return true for that menu item to appear on the menu." +#~ msgstr "" +#~ "Podczas budowania menu base-config uruchamia pliki .tst z katalogu /usr/" +#~ "lib/base-config, które musz± zwróciæ warto¶æ true, aby dana pozycja " +#~ "pojawi³a siê w menu." + +# type: Plain text +#~ msgid "" +#~ "The menu items are taken from debconf, by looking for items in the " +#~ "debconf database named base-config/menu/whatever." +#~ msgstr "" +#~ "Pozycje menu s± brane z programu debconf, przez wyszukiwanie w bazie " +#~ "danych debconfa rekordów o nazwie base-config/menu/cokolwiek." + +# type: Plain text +#~ msgid "" +#~ "When a menu item is selected, the corresponding program, in /usr/lib/base-" +#~ "config is run. If this is a fresh install onto a new debian system, the " +#~ "program receives \"new\" as its first argument." +#~ msgstr "" +#~ "Po wybraniu pozycji w menu uruchamiany jest odpowiadaj±cy jej program z " +#~ "katalogu /usr/lib/base-config. Je¶li jest to pierwsze uruchomienie po " +#~ "zainstalowaniu systemu, ka¿dy program otrzymuje jako pierwszy argument " +#~ "wyraz \"new\"." + +# type: Plain text +#~ msgid "" +#~ "B checks the return codes of each of the programs. If a " +#~ "program returns nonzero, the main menu is displayed (this may involve " +#~ "lowering the debconf priority)." +#~ msgstr "" +#~ "B sprawdza kod zakoñczenia ka¿dego programu. Je¿eli program " +#~ "zwróci warto¶æ niezerow±, to zostanie wy¶wietlone g³ówne menu (mo¿e to " +#~ "wymagaæ zmniejszenia priorytetu debconfa)." + +# type: Plain text +#~ msgid "" +#~ "Generally the user is advanced down the menu from item to item as each " +#~ "succeeds. If a menu item needs to jump back to a previous item in the " +#~ "menu, or skip over a subsequent item, it can write the name of the next " +#~ "menu item to show to the file \"jump-to\" in the current directory." +#~ msgstr "" +#~ "Ogólnie rzecz bior±c, u¿ytkownik jest przenoszony w dó³ menu od jednej " +#~ "pozycji do nastêpnej. Je¿eli pozycja z menu potrzebuje wróciæ do " +#~ "poprzedniej pozycji menu lub przeskoczyæ pó¼niejsz± pozycjê, to mo¿e do " +#~ "pliku \"jump-to\" umieszczonego w bie¿±cym katalogu wpisaæ nazwê " +#~ "nastêpnej pozycji do pokazania w menu." + +# type: Plain text +#~ msgid "" +#~ "Every base-config run is logged to B. B contains timing information to go with the log. " +#~ "This allows replays of base-config runs using the B(1) utility." +#~ msgstr "" +#~ "Ka¿de uruchomienie programu base-config jest zapisywane w B. B zawiera informacje o czasie " +#~ "wykonywania poszczególnych poleceñ. Pozwala to na powtórzenie uruchomieñ " +#~ "base-config za pomoc± programiku B(1)." + +# type: Plain text +#~ msgid "" +#~ "B, if it exists, is used by B " +#~ "on new installs to get values from the debian-installer first stage " +#~ "install." +#~ msgstr "" +#~ "Podczas nowych instalacji B u¿ywa B, je¿eli istnieje, do pobrania warto¶ci pierwszego etapu " +#~ "instalacji przez program debian-installer." + +# type: Plain text +#~ msgid "" +#~ "Other packages can drop files into B, and add menu " +#~ "titles in debconf, and they will be added to the menu. It is very " +#~ "strongly encouraged that any such programs communicate with the user " +#~ "entirely via debconf, so that the base configuration maintains a " +#~ "consistent and professional look." +#~ msgstr "" +#~ "Pakiety mog± instalowaæ programy w katalogu B, " +#~ "dziêki czemu stan± siê one czê¶ci± procesu konfiguracji. Zaleca siê, aby " +#~ "programy te komunikowa³y siê z u¿ytkownikiem wy³±cznie przy pomocy " +#~ "programu debconf, dziêki czemu konfiguracja systemu podstawowego uzyska " +#~ "jednolity i profesjonalny wygl±d." + +# type: Plain text +#~ msgid "" +#~ "Another useful thing for custom distributions is /usr/share/base-config/" +#~ "debconf-seed. If that directory exists, every file in it will be loaded " +#~ "into the debconf database using B(1)" +#~ msgstr "" +#~ "Kolejn± u¿yteczn± rzecz± dla w³asnych dystrybucji jest /usr/share/base-" +#~ "config/debconf-seed. Je¿eli ten katalog istnieje, to ka¿dy plik w tym " +#~ "katalogu zostanie za³adowany do bazy danych debconfa za pomoc± B(1)." + +# type: Plain text +#~ msgid "" +#~ "If the file /var/log/installer/debconf-seed is created by the debian-" +#~ "installer, it will also be loaded into the debconf database." +#~ msgstr "" +#~ "Je¿eli plik /var/log/installer/debconf-seed zostanie utworzony przez " +#~ "instalator Debiana, to tak¿e zostanie za³adowany do bazy danych debconfa." + +# type: SH +#~ msgid "ENVIRONMENT" +#~ msgstr "ZMIENNE ¦RODOWISKOWE" + +# type: Plain text +#~ msgid "" +#~ "The following environment variables influence B. These " +#~ "variables may be set at run time, or for new installs, may be passed to " +#~ "the kernel at the B(8) (or other bootloader) command line. Consult " +#~ "your boot loader's documentation for details. For example, lilo can be " +#~ "booted with something like \"linux DEBIAN_FRONTEND=readline\"." +#~ msgstr "" +#~ "Nastêpuj±ce zmienne ¶rodowiskowe wp³ywaj± na dzia³anie B. " +#~ "Mo¿na je ustawiæ przy uruchomieniu programu lub (w przypadku instalacji " +#~ "nowego systemu) mo¿na je podaæ j±dru przy pomocy linii poleceñ B(8) " +#~ "(lub innego programu ³aduj±cego). Wiêcej informacji na temat " +#~ "przekazywania parametrów j±dru mo¿na znale¼æ w dokumentacji danego " +#~ "programu ³aduj±cego. W przypadku lilo mo¿na za³adowaæ system na przyk³ad " +#~ "w nastêpuj±cy sposób: \"linux DEBIAN_FRONTEND=readline\"." + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: TP +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "Control various things about B(7)" +#~ msgstr "Wp³ywaj± na dzia³anie systemu B(7)" + +# type: SH +#~ msgid "AUTHOR" +#~ msgstr "AUTOR" + +# type: Plain text +#~ msgid "Joey Hess Ejoeyh@debian.orgE" +#~ msgstr "Joey Hess Ejoeyh@debian.orgE" + +# type: TH +#~ msgid "TERMWRAP" +#~ msgstr "TERMWRAP" + +# type: Plain text +#~ msgid "termwrap - terminal wrapper" +#~ msgstr "termwrap - program po¶rednicz±cy terminala" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is used to execute B(8) on newly installed " +#~ "Debian systems. It examines the environment, taking note of locale " +#~ "settings, and what type of console is available, and runs an appropriate " +#~ "terminal program. For example, at the Linux console and in a Japanese " +#~ "locale, it runs jfterm. The specified command is run inside the terminal " +#~ "program (if any)." +#~ msgstr "" +#~ "B jest u¿ywany do wywo³ania B(8) w nowo " +#~ "instalowanych systemach Debian. Sprawdza on ¶rodowisko, zwracaj±c uwagê " +#~ "na ustawienia locale i typ dostêpnej konsoli, a nastêpnie uruchamia " +#~ "odpowiedni program terminala. Na przyk³ad na konsoli Linux przy locale " +#~ "japoñskim uruchamia program jfterm. Podana komenda jest wykonywana w " +#~ "uruchomionym terminalu." + +# type: SH +#~ msgid "OPTIONS" +#~ msgstr "OPCJE" + +# type: TP +#~ msgid "I<-nnt>" +#~ msgstr "I<-nnt>" + +# type: Plain text +#~ msgid "Don't run another terminal." +#~ msgstr "Nie uruchamiaj innego terminala." + +# type: TH +#~ msgid "APT-SETUP" +#~ msgstr "APT-SETUP" + +# type: Plain text +#~ msgid "apt-setup - add apt download sources" +#~ msgstr "apt-setup - dodaje nowe ¼ród³a pakietów dla apt" + +# type: Plain text +#~ msgid "B" +#~ msgstr "B" + +# type: Plain text +#~ msgid "" +#~ "B is an interactive program that simplifies adding sources to " +#~ "apt's sources.list. It knows about all the major debian mirrors and can " +#~ "help you select one. It can even use B(8) to scan CDs." +#~ msgstr "" +#~ "B to interaktywny program u³atwiaj±cy dodawanie ¼róde³ " +#~ "pakietów do pliku sources.list programu apt. Zna on wszystkie g³ówne " +#~ "serwery lustrzane Debiana i mo¿e pomóc wybraæ jeden z nich. Mo¿e nawet " +#~ "u¿yæ programu B(8) do przeszukiwania p³yt CD." + +# type: TP +#~ msgid "I" +#~ msgstr "I" + +# type: Plain text +#~ msgid "" +#~ "By default no probing of CDs is done. Passing \"probe\" as the first " +#~ "argument to this program will make it probe for a CD in the drive on " +#~ "startup and add it to sources.list. This is useful on initial debian " +#~ "installs, to minimize interaction with the user." +#~ msgstr "" +#~ "Domy¶lnie nie jest sprawdzana obecno¶æ p³yty CD. Je¶li jako pierwszy " +#~ "argument zostanie podany wyraz \"probe\", program przeszuka p³ytê CD " +#~ "znajduj±c± siê w napêdzie i doda j± do pliku sources.list. Jest to " +#~ "przydatne przy instalacji systemu, gdy¿ pozwala na ograniczenie " +#~ "koniecznych dzia³añ u¿ytkownika." + +# type: TP +#~ msgid "I<-N>" +#~ msgstr "I<-N>" + +# type: Plain text +#~ msgid "" +#~ "Indicates that this is a new install. This parameter allows apt-setup to " +#~ "run in noninteractive mode if its debconf questions have been preseeded." +#~ msgstr "" +#~ "Wskazuje, ¿e jest to nowa instalacja. Ten parametr pozwala programowi apt-" +#~ "setup uruchomiæ siê w trybie nieinteraktywnym, je¿eli wcze¶niej zosta³y " +#~ "wpisane odpowiedzi na jego pytania debconfa." + +# type: Plain text +#~ msgid "Joey Hess Ejoey@kitenet.netE" +#~ msgstr "Joey Hess Ejoey@kitenet.netE" --- glibc-2.7.orig/debian/local/manpages/po/man.pot +++ glibc-2.7/debian/local/manpages/po/man.pot @@ -0,0 +1,173 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: 2005-12-27 17:38-0500\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: ENCODING" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "validlocale" +msgstr "" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "0.1" +msgstr "" + +# type: TH +#: validlocale.8:1 +#, no-wrap +msgid "Petter Reinholdtsen" +msgstr "" + +# type: SH +#: validlocale.8:2 +#, no-wrap +msgid "NAME" +msgstr "" + +# type: Plain text +#: validlocale.8:5 +msgid "validlocale - Test if a given locale is available" +msgstr "" + +# type: SH +#: validlocale.8:5 +#, no-wrap +msgid "SYNTAX" +msgstr "" + +# type: Plain text +#: validlocale.8:8 +msgid "validlocale EIE" +msgstr "" + +# type: SH +#: validlocale.8:8 +#, no-wrap +msgid "DESCRIPTION" +msgstr "" + +# type: Plain text +#: validlocale.8:13 +msgid "" +"Test if the locale given as argument is a valid locale. If it isn't, print " +"on stdout the string to add to /etc/locale.gen to make locale-gen generate " +"the locale (if it exists at all)." +msgstr "" + +# type: SH +#: validlocale.8:13 +#, no-wrap +msgid "FILES" +msgstr "" + +# type: Plain text +#: validlocale.8:16 +msgid "I" +msgstr "" + +# type: Plain text +#: validlocale.8:18 +msgid "I" +msgstr "" + +# type: SH +#: validlocale.8:18 +#, no-wrap +msgid "ENVIRONMENT VARIABLES" +msgstr "" + +# type: TP +#: validlocale.8:20 +#, no-wrap +msgid "B" +msgstr "" + +# type: Plain text +#: validlocale.8:24 +msgid "" +"Which charset to assume if the given locale is missing from the list of " +"supported locales." +msgstr "" + +# type: SH +#: validlocale.8:24 +#, no-wrap +msgid "EXAMPLES" +msgstr "" + +# type: Plain text +#: validlocale.8:28 +msgid "" +"If you give a valid locale as parameter, it outputs a string specifying this " +"on stderr:" +msgstr "" + +# type: Plain text +#: validlocale.8:31 +msgid "% validlocale C" +msgstr "" + +# type: Plain text +#: validlocale.8:33 +msgid "locale 'C' valid and available" +msgstr "" + +# type: Plain text +#: validlocale.8:37 +msgid "" +"When given a invalid (not generated or just nonexistent), it outputs a " +"string on stderr telling that this is an invalid locale, and a string to " +"stdout with the string to add to /etc/locale.gen to have this locale " +"generated:" +msgstr "" + +# type: Plain text +#: validlocale.8:40 +msgid "% validlocale de_AU@euro" +msgstr "" + +# type: Plain text +#: validlocale.8:42 +msgid "locale 'de_AT@euro' not available" +msgstr "" + +# type: Plain text +#: validlocale.8:44 +msgid "de_AT@euro ISO-8859-15" +msgstr "" + +# type: SH +#: validlocale.8:44 +#, no-wrap +msgid "AUTHORS" +msgstr "" + +# type: Plain text +#: validlocale.8:47 +msgid "Petter Reinholdtsen Epere@hungry.comE" +msgstr "" + +# type: SH +#: validlocale.8:47 +#, no-wrap +msgid "SEE ALSO" +msgstr "" + +# type: Plain text +#: validlocale.8:49 +msgid "locale-gen(8), localedef(1), locale(1)" +msgstr "" --- glibc-2.7.orig/debian/local/manpages/locale.gen.5 +++ glibc-2.7/debian/local/manpages/locale.gen.5 @@ -0,0 +1,41 @@ +.\" -*- nroff -*- +.\" Copyright (C) 2002, 2005 Free Software Foundation, Inc. +.\" +.\" This program is free software; you can redistribute it and/or modify +.\" it under the terms of the GNU General Public License as published by +.\" the Free Software Foundation; either version 2, or (at your option) +.\" any later version. +.\" +.\" This program is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public License +.\" along with this program; if not, write to the Free Software Foundation, +.\" Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +.TH locale.gen 5 "July 2005" "Debian GNU/Linux" +.SH "NAME" +locale.gen \- Configuration file for locale-gen +.SH "DESCRIPTION" +The file \fB/etc/locale.gen\fP lists the locales that are to be generated +by the \fBlocale-gen\fP command. + +Each line is of the form: + + + +where is one of the locales given in +.B /usr/share/i18n/locales +and is one of the character sets listed in +.B /usr/share/i18n/charmaps + +The +.B locale-gen +command will generate all the locales, placing them in +\fB/usr/lib/locale\fP. + +.SH "SEE ALSO" +locale-gen(8), localedef(1), locale(1) +.SH "AUTHOR" +Alastair McKinstry --- glibc-2.7.orig/debian/local/manpages/locale-gen.8 +++ glibc-2.7/debian/local/manpages/locale-gen.8 @@ -0,0 +1,101 @@ +.\" This -*- nroff -*- file has been generated from +.\" DocBook SGML with docbook-to-man on Debian GNU/Linux. +...\" +...\" transcript compatibility for postscript use. +...\" +...\" synopsis: .P! +...\" +.de P! +\\&. +.fl \" force out current output buffer +\\!%PB +\\!/showpage{}def +...\" the following is from Ken Flowers -- it prevents dictionary overflows +\\!/tempdict 200 dict def tempdict begin +.fl \" prolog +.sy cat \\$1\" bring in postscript file +...\" the following line matches the tempdict above +\\!end % tempdict % +\\!PE +\\!. +.sp \\$2u \" move below the image +.. +.de pF +.ie \\*(f1 .ds f1 \\n(.f +.el .ie \\*(f2 .ds f2 \\n(.f +.el .ie \\*(f3 .ds f3 \\n(.f +.el .ie \\*(f4 .ds f4 \\n(.f +.el .tm ? font overflow +.ft \\$1 +.. +.de fP +.ie !\\*(f4 \{\ +. ft \\*(f4 +. ds f4\" +' br \} +.el .ie !\\*(f3 \{\ +. ft \\*(f3 +. ds f3\" +' br \} +.el .ie !\\*(f2 \{\ +. ft \\*(f2 +. ds f2\" +' br \} +.el .ie !\\*(f1 \{\ +. ft \\*(f1 +. ds f1\" +' br \} +.el .tm ? font underflow +.. +.ds f1\" +.ds f2\" +.ds f3\" +.ds f4\" +'\" t +.ta 8n 16n 24n 32n 40n 48n 56n 64n 72n +.TH "LOCALE-GEN" "8" +.SH "NAME" +locale-gen \(em generates localisation files from templates +.SH "SYNOPSIS" +.PP +\fBlocale-gen\fP +.SH "DESCRIPTION" +.PP +This manual page documents briefly the +\fBlocale-gen\fP command. +.PP +By default, the locale package which provides the base support for +localisation of libc-based programs does not contain usable localisation +files for every supported language. This limitation has became necessary +because of the substantial size of such files and the large number of +languages supported by libc. As a result, Debian uses a special +mechanism where we prepare the actual localisation files on the target +host and distribute only the templates for them. +.PP +\fBlocale-gen\fP is a program that reads the file +\fB/etc/locale.gen\fP and invokes +\fBlocaledef\fP for the chosen localisation profiles. +Run \fBlocale-gen\fP after you have modified the \fB/etc/locale.gen\fP file. + + +.SH "FILES" +.PP +\fB/etc/locale.gen\fP +.PP +The main configuration file, which has a simple format: every +line that is not empty and does not begin with a # is treated as a +locale definition that is to be built. + +.SH "SEE ALSO" +.PP +localedef(1), locale(1), locale.gen(5). +.SH "AUTHOR" +.PP +This manual page was written by Eduard Bloch for +the \fBDebian GNU/Linux\fP system (but may be used by others). Permission is +granted to copy, distribute and/or modify this document under +the terms of the GNU Free Documentation +License, Version 1.1 or any later version published by the Free +Software Foundation; with no Invariant Sections, no Front-Cover +Texts and no Back-Cover Texts. +...\" created by instant / docbook-to-man, Sat 02 Mar 2002, 16:43 --- glibc-2.7.orig/debian/local/manpages/ld.so.8 +++ glibc-2.7/debian/local/manpages/ld.so.8 @@ -0,0 +1,200 @@ +.TH "LD.SO" 8 "26 May 2007" +.SH NAME +ld.so/ld-linux.so \- dynamic linker/loader +.SH DESCRIPTION +.B ld.so +loads the shared libraries needed by a program, prepares the program +to run, and then runs it. +Unless explicitly specified via the +.B \-static +option to +.B ld +during compilation, all Linux programs are incomplete and require +further linking at run time. +.PP +The necessary shared libraries needed by the program are searched for +in the following order +.IP o +Using the environment variable +.B LD_LIBRARY_PATH +.RB ( LD_AOUT_LIBRARY_PATH +for a.out programs). +Except if the executable is a setuid/setgid binary, in which case it +is ignored. +.IP o +From the cache file +.BR /etc/ld.so.cache +which contains a compiled list of candidate libraries previously found +in the augmented library path. +.IP o +In the default path +.BR /lib , +and then +.BR /usr/lib . +.SH COMMAND LINE OPTIONS +.TP +.B \-\-list +List all dependencies and how they are resolved. +.TP +.B \-\-verify +Verify that program is dynamically linked and this dynamic linker can handle +it. +.TP +.B \-\-library\-path PATH +Override +.B LD_LIBRARY_PATH +environment variable setting (see below). +.TP +.B \-\-ignore\-rpath LIST +Ignore RPATH and RUNPATH information in object names in LIST. +This option has been supported by glibc2 for about one hour. +Then it was renamed into: +.TP +.B \-\-inhibit\-rpath LIST +.SH ENVIRONMENT +.TP +.B LD_LIBRARY_PATH +A colon-separated list of directories in which to search for +ELF libraries at execution-time. +Similar to the +.B PATH +environment variable. +.TP +.B LD_PRELOAD +A whitespace-separated list of additional, user-specified, ELF shared +libraries to be loaded before all others. +This can be used to selectively override functions in other shared libraries. +For setuid/setgid ELF binaries, only libraries in the standard search +directories that are also setgid will be loaded. +.TP +.B LD_TRACE_LOADED_OBJECTS +If present, causes the program to list its dynamic library dependencies, +as if run by ldd, instead of running normally. +.TP +.B LD_BIND_NOW +If present, causes the dynamic linker to resolve all symbols at program +startup instead of when they are first referenced. +.TP +.B LD_BIND_NOT +Do not update the GOT (global offset table) and PLT (procedure linkage table) after resolving a symbol. +.TP +.B LD_AOUT_LIBRARY_PATH +A colon-separated list of directories in which to search for +a.out libraries at execution-time. +Similar to the +.B PATH +environment variable. +.TP +.B LD_AOUT_PRELOAD +The name of an additional, user-specified, a.out shared library to be loaded +after all others. +This can be used to selectively override functions in other shared libraries. +.TP +.B LD_NOWARN +Suppress warnings about a.out libraries with incompatible minor +version numbers. +.TP +.B LD_WARN +If set to non-empty string, warn about unresolved symbols. +.TP +.B LD_KEEPDIR +Don't ignore the directory in the names of a.out libraries to be loaded. +Use of this option is strongly discouraged. +.TP +.B LD_DEBUG +Output verbose debugging information about the dynamic linker. +If set to `all' prints all debugging information it has, if set to +`help' prints a help message about which categories can be specified +in this environment variable. +.TP +.B LD_DEBUG_OUTPUT +File where LD_DEBUG output should be fed into, default is standard +output. LD_DEBUG_OUTPUT is ignored for setuid/setgid binaries. +.TP +.B LD_VERBOSE +If set to non-empty string, output symbol versioning information +about the program if querying information about the program (ie. either +.B LD_TRACE_LOADED_OBJECTS +has been set, or --list or --verify options have been given to the dynamic linker). +.TP +.B LD_PROFILE +Shared object to be profiled. +.TP +.B +LD_PROFILE_OUTPUT +File where +.B LD_PROFILE +output should be stored, default is standard output. LD_DEBUG_OUTPUT is ignored for setuid/setgid binaries. +.TP +.B LD_ASSUME_KERNEL +Every DSO (Dynamic Shared Object, aka shared library) can tell the dynamic linker in glibc which +minimum OS ABI version is needed. The information about the minimum OS ABI version is encoded in +a ELF note section usually named .note.ABI-tag. This is used to determine which library to load +when multiple version of the same library is installed on the system. +The +.B LD_ASSUME_KERNEL +environment variable overrides the kernel version used by the dynamic linker to determine which +library to load. +.SH RPATH TOKEN EXPANSION +The runtime linker provides a number of tokens that can be used in an rpath +specification (\fBDT_RPATH\fR or \fBDT_RUNPATH\fR). +.TP +.B $ORIGIN +ld.so understands the string \fB$ORIGIN\fR (or equivalently \fB${ORIGIN}\fR) +in an rpath specification to mean the directory containing the application +executable. Thus, an application located in somedir/app could be compiled +with gcc -Wl,-rpath,'$ORIGIN/../lib' so that it finds an associated shared +library in somedir/lib no matter where somedir is located in the directory +hierarchy. +.TP +.B $PLATFORM +The string \fB$PLATFORM\fR (or equivalently \fB${PLATFORM}\fR) in an rpath +specifcation expands to the processor type of the current machine. Please note +that on some architectures the Linux kernel doesn't provide a platform +string to the dynamic linker. +.TP +.B $LIB +The string \fB$LIB\fR (or equivalently \fB${LIB}\fR) in an rpath corresponds +to the system libraries directory, which is /lib for the native architecture +on FHS compliant GNU/Linux systems. +.SH FILES +.PD 0 +.TP 20 +.B /lib/ld.so +a.out dynamic linker/loader +.TP 20 +.B /lib/ld-linux.so.* +ELF dynamic linker/loader +.TP +.B /etc/ld.so.cache +File containing a compiled list of directories in which to search for +libraries and an ordered list of candidate libraries. +.TP +.B /etc/ld.so.preload +File containing a whitespace separated list of ELF shared libraries to +be loaded before the program. +libraries and an ordered list of candidate libraries. +.TP +.B /etc/ld.so.nohwcap +When this file is present the dynamic linker will load the non-optimized version +of a library, even if the CPU supports the optimized version. +.TP +.B lib*.so* +shared libraries +.PD +.SH SEE ALSO +.BR ldd (1), +.BR ldconfig (8). +.SH BUGS +.LP +Currently +.B ld.so +has no means of unloading and searching for compatible or newer version of +libraries. +.PP +.B ld.so +functionality is only available for executables compiled using libc version +4.4.3 or greater. +.SH AUTHORS +David Engel, Eric Youngdale, Peter MacDonald, Hongjiu Lu, Linus +Torvalds, Lars Wirzenius and Mitch D'Souza (not necessarily in that order). --- glibc-2.7.orig/debian/local/manpages/pl/validlocale.pl.8 +++ glibc-2.7/debian/local/manpages/pl/validlocale.pl.8 @@ -0,0 +1,52 @@ +.\" This file was generated with po4a. Translate the source file. +.\" +.TH validlocale 8 0.1 "Petter Reinholdtsen" "" +.SH NAZWA +.LP +validlocale \- Sprawdza, czy dostêpne jest dane locale +.SH SK£ADNIA +.LP +validlocale <\fIlocale\fP> +.SH OPIS +.LP +Sprawdza, czy locale podane jako argument jest poprawne. Je¶li nie jest, +wypisuje na stdout napis, jaki nale¿y dodaæ do /etc/locale.gen, aby +polecenie locale\-gen wygenerowa³o dane locale (o ile w ogóle ono istnieje). +.SH PLIKI +.LP +\fI/usr/sbin/validlocale\fP +.br +\fI/usr/share/i18n/SUPPORTED\fP +.SH "ZMIENNE ¦RODOWISKOWE" +.LP +.TP +\fBDEFAULTCHARSET\fP +Jakiego zestawu znaków u¿yæ, je¶li podanego locale nie ma w li¶cie +obs³ugiwanych. +.SH PRZYK£ADY +.LP +Je¶li jako parametr podano nazwê poprawnego locale, wypisuje na stderr +odpowiedni napis: +.LP +.IP +% validlocale C +.br +locale 'C' valid and available +.LP +Je¶li podano nazwê nieprawid³owego locale (niewygenerowanego lub po prostu +nieistniej±cego), wypisuje na stderr napis mówi±cy o tym, ¿e nie jest to +prawid³owe locale, oraz \- na stdout \- napis, który nale¿y dodaæ do +/etc/locale.gen, aby móc wygenerowaæ dane locale: +.LP +.IP +% validlocale de_AU@euro +.br +locale 'de_AT@euro' not available +.br +de_AT@euro ISO\-8859\-15 +.SH AUTOR +.LP +Petter Reinholdtsen +.SH "PATRZ TAK¯E" +.LP +locale\-gen(8), localedef(1), locale(1) --- glibc-2.7.orig/debian/local/manpages/sprof.1 +++ glibc-2.7/debian/local/manpages/sprof.1 @@ -0,0 +1,230 @@ +.rn '' }` +''' $RCSfile: sprof.1,v $$Revision: 1.1.2.1 $$Date: 2003/09/22 21:33:35 $ +''' +''' $Log: sprof.1,v $ +''' Revision 1.1.2.1 2003/09/22 21:33:35 jbailey +''' New directory for things we add to the package +''' +''' +.de Sh +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp +.if t .sp .5v +.if n .sp +.. +.de Ip +.br +.ie \\n(.$>=3 .ne \\$3 +.el .ne 3 +.IP "\\$1" \\$2 +.. +.de Vb +.ft CW +.nf +.ne \\$1 +.. +.de Ve +.ft R + +.fi +.. +''' +''' +''' Set up \*(-- to give an unbreakable dash; +''' string Tr holds user defined translation string. +''' Bell System Logo is used as a dummy character. +''' +.tr \(*W-|\(bv\*(Tr +.ie n \{\ +.ds -- \(*W- +.ds PI pi +.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +.ds L" "" +.ds R" "" +''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of +''' \*(L" and \*(R", except that they are used on ".xx" lines, +''' such as .IP and .SH, which do another additional levels of +''' double-quote interpretation +.ds M" """ +.ds S" """ +.ds N" """"" +.ds T" """"" +.ds L' ' +.ds R' ' +.ds M' ' +.ds S' ' +.ds N' ' +.ds T' ' +'br\} +.el\{\ +.ds -- \(em\| +.tr \*(Tr +.ds L" `` +.ds R" '' +.ds M" `` +.ds S" '' +.ds N" `` +.ds T" '' +.ds L' ` +.ds R' ' +.ds M' ` +.ds S' ' +.ds N' ` +.ds T' ' +.ds PI \(*p +'br\} +.\" If the F register is turned on, we'll generate +.\" index entries out stderr for the following things: +.\" TH Title +.\" SH Header +.\" Sh Subsection +.\" Ip Item +.\" X<> Xref (embedded +.\" Of course, you have to process the output yourself +.\" in some meaningful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH SPROF 1 "etch" "7/Jan/2001" "Debian GNU/Linux" +.UC +.if n .hy 0 +.if n .na +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.de CQ \" put $1 in typewriter font +.ft CW +'if n "\c +'if t \\&\\$1\c +'if n \\&\\$1\c +'if n \&" +\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 +'.ft R +.. +.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2 +. \" AM - accent mark definitions +.bd B 3 +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds ? ? +. ds ! ! +. ds / +. ds q +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' +. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] +.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' +.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' +.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +.ds oe o\h'-(\w'o'u*4/10)'e +.ds Oe O\h'-(\w'O'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds v \h'-1'\o'\(aa\(ga' +. ds _ \h'-1'^ +. ds . \h'-1'. +. ds 3 3 +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +. ds oe oe +. ds Oe OE +.\} +.rm #[ #] #H #V #F C +.SH "NAME" +sprof \- Read and display shared object profiling data +.SH "SYNOPSIS" +\fBsprof\fR \fB\-p\fR|\fB\-c\fR [\fB\-q\fR] +.SH "DESCRIPTION" +\fB--call-pairs\fR, \fB\-c\fR +.PP +.Vb 1 +\& print list of count paths and their number of use +.Ve +\fB--flat-profile\fR, \fB\-p\fR +.PP +.Vb 1 +\& generate flat profile with counts and ticks +.Ve +\fB--graph\fR, \fB\-q\fR +.PP +.Vb 1 +\& generate call graph +.Ve +.SH "AUTHOR" +\fIsprof\fR was written by Ulrich Drepper for the GNU C Library +.PP +This man page was written by Joel Klecker for +the Debian GNU/Linux system. + +.rn }` '' +.IX Title "SPROF 1" +.IX Name "sprof - Read and display shared object profiling data" + +.IX Header "NAME" + +.IX Header "SYNOPSIS" + +.IX Header "DESCRIPTION" + +.IX Header "AUTHOR" + --- glibc-2.7.orig/debian/local/manpages/po4a.cfg +++ glibc-2.7/debian/local/manpages/po4a.cfg @@ -0,0 +1,7 @@ +[po4a_paths] po/man.pot de:po/de.po es:po/es.po id:po/id.po \ + fr:po/fr.po pl:po/pl.po pt_BR:po/pt_BR.po + +[type: man] validlocale.8 es:es/validlocale.es.8 \ + id:id/validlocale.id.8 add_id:id/addendum.id fr:fr/validlocale.fr.8 \ + add_fr:fr/addendum.fr pl:pl/validlocale.pl.8 \ + pt_BR:pt_BR/validlocale.pt_BR.8 --- glibc-2.7.orig/debian/local/manpages/locale.1 +++ glibc-2.7/debian/local/manpages/locale.1 @@ -0,0 +1,268 @@ +.\" Automatically generated by Pod::Man v1.3, Pod::Parser v1.13 +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sh \" Subsection heading +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R + +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. | will give a +.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to +.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' +.\" expand to `' in nroff, nothing in troff, for use with C<>. +.tr \(*W-|\(bv\*(Tr +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.\" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.hy 0 +.if n .na +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "LOCALE 1" +.TH LOCALE 1 "2004-12-16" "sarge" "Debian GNU/Linux" +.UC +.SH "NAME" +locale \- Get locale-specific information. +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +\&\fBlocale\fR \fB[\fR \f(CW\-a\fR | \f(CW\-m\fR\fB]\fR +.PP +\&\fBlocale\fR \fB[\fR \-ck \fB]\fR \fIname\fR... +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +The \fIlocale\fR program writes information about the current locale +environment, or all locales, to standard output. +.PP +When invoked without arguments, \fIlocale\fR summarizes the current +locale environment for each locale category defined by the LC_* +environment variables. +.PP +\&\fB\-a\fR, \fB\-\-all\-locales\fR +.PP +.Vb 1 +\& Write names of available locales. +.Ve +\&\fB\-m\fR, \fB\-\-charmaps\fR +.PP +.Vb 1 +\& Write names of available charmaps. +.Ve +.Sh "Output Format:" +.IX Subsection "Output Format:" +\&\fB\-c\fR, \fB\-\-category\-name\fR +.PP +.Vb 1 +\& Write names of selected categories. +.Ve +\&\fB\-k\fR, \fB\-\-keyword\-name\fR +.PP +.Vb 1 +\& Write names and values of selected keywords. +.Ve +.SH "ENVIRONMENT VARIABLES" +.IX Header "ENVIRONMENT VARIABLES" +These environment variables affect each locale categories for all locale-aware programs: + +\&\s-1LC_CTYPE\s0 +.PP +.Vb 1 +\& Character classification and case conversion. +.Ve +\&\s-1LC_COLLATE\s0 +.PP +.Vb 1 +\& Collation order. +.Ve +\&\s-1LC_TIME\s0 +.PP +.Vb 1 +\& Date and time formats. +.Ve +\&\s-1LC_NUMERIC\s0 +.PP +.Vb 1 +\& Non-monetary numeric formats. +.Ve +\&\s-1LC_MONETARY\s0 +.PP +.Vb 1 +\& Monetary formats. +.Ve +\&\s-1LC_MESSAGES\s0 +.PP +.Vb 2 +\& Formats of informative and diagnostic messages and +\& interactive responses. +.Ve +\&\s-1LC_PAPER\s0 +.PP +.Vb 1 +\& Paper size. +.Ve +\&\s-1LC_NAME\s0 +.PP +.Vb 1 +\& Name formats. +.Ve +\&\s-1LC_ADDRESS\s0 +.PP +.Vb 1 +\& Address formats and location information. +.Ve +\&\s-1LC_TELEPHONE\s0 +.PP +.Vb 1 +\& Telephone number formats. +.Ve +\&\s-1LC_MEASUREMENT\s0 +.PP +.Vb 1 +\& Measurement units (Metric or Other). +.Ve +\&\s-1LC_IDENTIFICATION\s0 +.PP +.Vb 1 +\& Metadata about the locale information. +.Ve +This environment variable can switch against multiple locale database: + +\&\s-1LOCPATH\s0 +.PP +.Vb 1 +\& The directory where locale data is stored. By default, /usr/lib/locale is used. +.Ve + +.SH "FILES" +.IX Header "FILES" +.PP +.PD 0 +.TP 8 +\fI/usr/share/i18n/SUPPORTED\fP +List of supported values (and their associated encoding) for the locale name. +This representation is recommended over +\fB\-\-all\-locales\fR one, due being the system wide supported values. +.PP + +.SH "AUTHOR" +.IX Header "AUTHOR" +\&\fIlocale\fR was written by Ulrich Drepper for the \s-1GNU\s0 C Library. +.PP +This manpage was written by Joel Klecker for +the Debian GNU/Linux system, and expanded by Alastair McKinstry + +.PP + +.SH "SEE ALSO" +.BR locale "(5), " locale "(7), " setlocale (3) + --- glibc-2.7.orig/debian/local/manpages/tzselect.1 +++ glibc-2.7/debian/local/manpages/tzselect.1 @@ -0,0 +1,67 @@ +.\" Copyright 1998 Marcus Brinkmann (brinkmd@debian.org) +.\" +.\" Permission is granted to make and distribute verbatim copies of this +.\" manual provided the copyright notice and this permission notice are +.\" preserved on all copies. +.\" +.\" Permission is granted to copy and distribute modified versions of this +.\" manual under the conditions for verbatim copying, provided that the +.\" entire resulting derived work is distributed under the terms of a +.\" permission notice identical to this one +.\" +.\" Since the Linux kernel and libraries are constantly changing, this +.\" manual page may be incorrect or out-of-date. The author(s) assume no +.\" responsibility for errors or omissions, or for damages resulting from +.\" the use of the information contained herein. The author(s) may not +.\" have taken the same level of care in the production of this manual, +.\" which is licensed free of charge, as they might when working +.\" professionally. +.\" +.\" Formatted or processed versions of this manual, if unaccompanied by +.\" the source, must acknowledge the copyright and authors of this work. +.\" +.\" Modified Mon Jul 12 18:40:00 1998 by Marcus Brinkmann (brinkmd@debian.org) +.TH TZSELECT 1 "12 June 1998" "Debian" "Debian Timezone Configuration" +.SH NAME +tzselect \- view timezones +.SH SYNOPSIS +.B tzselect +.SH DESCRIPTION +This manual page explains how you can use the +.B "tzselect" +utility to view the installed timezone. It comes handy when you want to know what time it is in +other countries, or if you just wonder what timezones exist. + +.B tzselect +is called without any parameters from the shell. It shows a list of about one dozen geographic +areas one can roughly recognize as continents. After choosing a geographic area by number, a +list of countries and cities in this area will be shown. + +You can press the +.B Enter +key to reprint the list. To choose a timezone, just press the number left to it. +If your input is invalid, the list will be reprinted. + +You may press +.B Ctrl-C +to interrupt the script at any time. + +Note that +.B tzselect +will not actually change the timezone for you. Use 'dpkg-reconfigure tzdata' to achieve this. +.SH FILES +.I /usr/share/zoneinfo/ +.SH "SEE ALSO" +.BR hwclock (8) +.SH AUTHOR +Copyright 1998 Marcus Brinkmann + +Please see nroff source for legal notice. + + + + + + + + --- glibc-2.7.orig/debian/local/manpages/rpcgen.1 +++ glibc-2.7/debian/local/manpages/rpcgen.1 @@ -0,0 +1,442 @@ +.\" @(#)rpcgen.new.1 1.1 90/11/09 TIRPC 1.0; from 40.10 of 10/10/89 +.\" Copyright (c) 1988,1990 Sun Microsystems, Inc. - All Rights Reserved. +.nr X +.if \nX=0 .ds x} rpcgen 1 "" "\&" +.if \nX=1 .ds x} rpcgen 1 "" +.if \nX=2 .ds x} rpcgen 1 "" "\&" +.if \nX=3 .ds x} rpcgen "" "" "\&" +.TH \*(x} +.SH NAME +\f4rpcgen\f1 \- an RPC protocol compiler +.SH SYNOPSIS +.ft 4 +.nf +rpcgen \f2infile\f4 +.fi +.ft 1 +.br +.ft 4 +.nf +rpcgen [\-D\f2name\f4[=\f2value\f4]] [\-T] [\-K \f2secs\fP] \f2infile\f4 +.fi +.ft 1 +.br +.ft 4 +.nf +rpcgen \-c|\-h|\-l|\-m|\-M|\-t [\-o \f2outfile\f4 ] \f2infile\f4 +.fi +.ft 1 +.br +.ft 4 +.nf +rpcgen [\-I] \-s \f2nettype\f4 [\-o \f2outfile\f4] \f2infile\f4 +.fi +.ft 1 +.br +.ft 4 +.nf +rpcgen \-n \f2netid\f4 [\-o \f2outfile\f4] \f2infile\f4 +.ft 1 +.SH DESCRIPTION +.P +\f4rpcgen\f1 +is a tool that generates C code to implement an RPC protocol. +The input to +\f4rpcgen\f1 +is a language similar to C known as +RPC Language (Remote Procedure Call Language). +.P +\f4rpcgen\f1 +is normally used as in the first synopsis where +it takes an input file and generates up to four output files. +If the +\f2infile\f1 +is named +\f4proto.x\f1, +then +\f4rpcgen\f1 +will generate a header file in +\f4proto.h\f1, +XDR routines in +\f4proto_xdr.c\f1, +server-side stubs in +\f4proto_svc.c\f1, +and client-side stubs in +\f4proto_clnt.c\f1. +With the +\f4\-T\f1 +option, +it will also generate the RPC dispatch table in +\f4proto_tbl.i\f1. +With the +\f4\-Sc\f1 +option, +it will also generate sample code which would illustrate how to use the +remote procedures on the client side. This code would be created in +\f4proto_client.c\f1. +With the +\f4\-Ss\f1 +option, +it will also generate a sample server code which would illustrate how to write +the remote procedures. This code would be created in +\f4proto_server.c\f1. +.P +The server created can be started both by the port monitors +(for example, \f4inetd\f1 or \f4listen\f1) +or by itself. +When it is started by a port monitor, +it creates servers only for the transport for which +the file descriptor \f40\fP was passed. +The name of the transport must be specified +by setting up the environmental variable +\f4PM_TRANSPORT\f1. +When the server generated by +\f4rpcgen\f1 +is executed, +it creates server handles for all the transports +specified in +\f4NETPATH\f1 +environment variable, +or if it is unset, +it creates server handles for all the visible transports from +\f4/etc/netconfig\f1 +file. +Note: +the transports are chosen at run time and not at compile time. +.P +When built for a port monitor (\f4rpcgen\f1 \f4\-I\f1), and that the server +is self-started, it backgrounds itself by default. A special define symbol +\f4RPC_SVC_FG\f1 can be used to run the server process in foreground. +.P +The second synopsis provides special features which allow +for the creation of more sophisticated RPC servers. +These features include support for user provided +\f4#defines\f1 +and RPC dispatch tables. +The entries in the RPC dispatch table contain: +.RS +.PD 0 +.TP 3 +\(bu +pointers to the service routine corresponding to that procedure, +.TP +\(bu +a pointer to the input and output arguments +.TP +\(bu +the size of these routines +.PD +.RE +A server can use the dispatch table to check authorization +and then to execute the service routine; +a client library may use it to deal with the details of storage +management and XDR data conversion. +.P +The other three synopses shown above are used when +one does not want to generate all the output files, +but only a particular one. +Some examples of their usage is described in the +EXAMPLE +section below. +When +\f4rpcgen\f1 +is executed with the +\f4\-s\f1 +option, +it creates servers for that particular class of transports. +When +executed with the +\f4\-n\f1 +option, +it creates a server for the transport specified by +\f2netid\f1. +If +\f2infile\f1 +is not specified, +\f4rpcgen\f1 +accepts the standard input. +.P +The C preprocessor, +\f4cc \-E\f1 +[see \f4cc\fP(1)], +is run on the input file before it is actually interpreted by +\f4rpcgen\f1. +For each type of output file, +\f4rpcgen\f1 +defines a special preprocessor symbol for use by the +\f4rpcgen\f1 +programmer: +.P +.PD 0 +.TP 12 +\f4RPC_HDR\f1 +defined when compiling into header files +.TP +\f4RPC_XDR\f1 +defined when compiling into XDR routines +.TP +\f4RPC_SVC\f1 +defined when compiling into server-side stubs +.TP +\f4RPC_CLNT\f1 +defined when compiling into client-side stubs +.TP +\f4RPC_TBL\f1 +defined when compiling into RPC dispatch tables +.PD +.P +Any line beginning with +`\f4%\f1' +is passed directly into the output file, +uninterpreted by +\f4rpcgen\f1. +.P +For every data type referred to in +\f2infile\f1, +\f4rpcgen\f1 +assumes that there exists a +routine with the string +\f4xdr_\f1 +prepended to the name of the data type. +If this routine does not exist in the RPC/XDR +library, it must be provided. +Providing an undefined data type +allows customization of XDR routines. +.br +.ne 10 +.P +The following options are available: +.TP +\f4\-a\f1 +Generate all the files including sample code for client and server side. +.TP +\f4\-b\f1 +This generates code for the SunOS4.1 style of rpc. It is +for backward compatibility. This is the default. +.TP +\f4\-5\f1 +This generates code for the SysVr4 style of rpc. It is used by the +Transport Independent RPC that is in Svr4 systems. +By default rpcgen generates code for SunOS4.1 stype of rpc. +.TP +\f4\-c\f1 +Compile into XDR routines. +.TP +\f4\-C\f1 +Generate code in ANSI C. This option also generates code that could be +compiled with the C++ compiler. This is the default. +.TP +\f4\-k\f1 +Generate code in K&R C. The default is ANSI C. +.TP +\f4\-D\f2name\f4[=\f2value\f4]\f1 +Define a symbol +\f2name\f1. +Equivalent to the +\f4#define\f1 +directive in the source. +If no +\f2value\f1 +is given, +\f2value\f1 +is defined as \f41\f1. +This option may be specified more than once. +.TP +\f4\-h\f1 +Compile into +\f4C\f1 +data-definitions (a header file). +\f4\-T\f1 +option can be used in conjunction to produce a +header file which supports RPC dispatch tables. +.TP +\f4\-I\f1 +Generate a service that can be started from inetd. The default is +to generate a static service that handles transports selected with \f4\-s\f1. +Using \f4\-I\f1 allows starting a service by either method. +.TP +\f4-K\f2 secs\f1 +By default, services created using \f4rpcgen\fP wait \f4120\fP seconds +after servicing a request before exiting. +That interval can be changed using the \f4-K\fP flag. +To create a server that exits immediately upon servicing a request, +\f4-K\ 0\fP can be used. +To create a server that never exits, the appropriate argument is +\f4-K\ -1\fP. +.IP +When monitoring for a server, +some portmonitors, like +\f4listen\fP(1M), +.I always +spawn a new process in response to a service request. +If it is known that a server will be used with such a monitor, the +server should exit immediately on completion. +For such servers, \f4rpcgen\fP should be used with \f4-K\ -1\fP. +.TP +\f4\-l\f1 +Compile into client-side stubs. +.TP +\f4\-m\f1 +Compile into server-side stubs, +but do not generate a \(lqmain\(rq routine. +This option is useful for doing callback-routines +and for users who need to write their own +\(lqmain\(rq routine to do initialization. +.TP +\f4\-M\f1 +Generate multithread-safe stubs for passing arguments +and results between rpcgen-generated code and user written code. +This option is useful for users who want to use threads in their code. +.TP +\f4\-n \f2netid\f1 +Compile into server-side stubs for the transport +specified by +\f2netid\f1. +There should be an entry for +\f2netid\f1 +in the +netconfig database. +This option may be specified more than once, +so as to compile a server that serves multiple transports. +.TP +\f4\-N\f1 +Use the newstyle of rpcgen. This allows procedures to have multiple arguments. +It also uses the style of parameter passing that closely resembles C. So, when +passing an argument to a remote procedure you do not have to pass a pointer to +the argument but the argument itself. This behaviour is different from the oldstyle +of rpcgen generated code. The newstyle is not the default case because of +backward compatibility. +.TP +\f4\-o \f2outfile\f1 +Specify the name of the output file. +If none is specified, +standard output is used +(\f4\-c\f1, +\f4\-h\f1, +\f4\-l\f1, +\f4\-m\f1, +\f4\-n\f1, +\f4\-s\f1, +\f4\-Sc\f1, +\f4\-Sm\f1, +\f4\-Ss\f1, +and +\f4\-t\f1 +modes only). +.TP +\f4\-s \f2nettype\f1 +Compile into server-side stubs for all the +transports belonging to the class +\f2nettype\f1. +The supported classes are +\f4netpath\f1, +\f4visible\f1, +\f4circuit_n\f1, +\f4circuit_v\f1, +\f4datagram_n\f1, +\f4datagram_v\f1, +\f4tcp\f1, +and +\f4udp\f1 +[see \f4rpc\fP(3N) +for the meanings associated with these classes]. +This option may be specified more than once. +Note: +the transports are chosen at run time and not at compile time. +.TP +\f4\-Sc\f1 +Generate sample code to show the use of remote procedure and how to bind +to the server before calling the client side stubs generated by rpcgen. +.TP +\f4\-Sm\f1 +Generate a sample Makefile which can be used for compiling the application. +.TP +\f4\-Ss\f1 +Generate skeleton code for the remote procedures on the server side. You would need +to fill in the actual code for the remote procedures. +.TP +\f4\-t\f1 +Compile into RPC dispatch table. +.TP +\f4\-T\f1 +Generate the code to support RPC dispatch tables. +.P +The options +\f4\-c\f1, +\f4\-h\f1, +\f4\-l\f1, +\f4\-m\f1, +\f4\-s\f1 +and +\f4\-t\f1 +are used exclusively to generate a particular type of file, +while the options +\f4\-D\f1 +and +\f4\-T\f1 +are global and can be used with the other options. +.br +.ne 5 +.SH NOTES +The RPC Language does not support nesting of structures. +As a work-around, +structures can be declared at the top-level, +and their name used inside other structures in +order to achieve the same effect. +.P +Name clashes can occur when using program definitions, +since the apparent scoping does not really apply. +Most of these can be avoided by giving +unique names for programs, +versions, +procedures and types. +.P +The server code generated with +\f4\-n\f1 +option refers to the transport indicated by +\f2netid\f1 +and hence is very site specific. +.SH EXAMPLE +The following example: +.IP +.ft 4 +$ rpcgen \-T prot.x +.ft 1 +.P +generates the five files: +\f4prot.h\f1, +\f4prot_clnt.c\f1, +\f4prot_svc.c\f1, +\f4prot_xdr.c\f1 +and +\f4prot_tbl.i\f1. +.P +The following example sends the C data-definitions (header file) +to the standard output. +.IP +.ft 4 +$ rpcgen \-h prot.x +.ft 1 +.P +To send the test version of the +\f4-DTEST\f1, +server side stubs for +all the transport belonging to the class +\f4datagram_n\f1 +to standard output, use: +.IP +.ft 4 +$ rpcgen \-s datagram_n \-DTEST prot.x +.ft 1 +.P +To create the server side stubs for the transport indicated +by +\f2netid\f1 +\f4tcp\f1, +use: +.IP +.ft 4 +$ rpcgen \-n tcp \-o prot_svc.c prot.x +.ft 1 +.SH "SEE ALSO" +\f4cc\fP(1). --- glibc-2.7.orig/debian/local/manpages/localedef.1 +++ glibc-2.7/debian/local/manpages/localedef.1 @@ -0,0 +1,293 @@ +.TH LOCALEDEF 1 "May 20, 2005" +.SH NAME +localedef \- compile locale definition files +.SH SYNOPSIS +.ad l +.nh +.B localedef +.RI [ options ] +.I outputpath +.br +.B "localedef \-\-list\-archive" +.RI [ options ] +.br +.B "localedef \-\-delete\-from\-archive" +.RI [ options ] +.IR localename " ..." +.br +.B "localedef \-\-add\-to\-archive" +.RI [ options ] +.IR compiledpath +.br +.B "localedef \-\-version" +.br +.B "localedef \-\-help" +.br +.B "localedef \-\-usage" +.ad b +.hy +.SH DESCRIPTION +The +.B localedef +program reads the indicated +.I charmap +and +.I input +files, compiles them to a binary form quickly usable by the +.BR locale (7) +functions in the C library, and places the output in +.IR outputpath . +.PP +If +.I outputpath +contains a slash character ('/'), it is directly the name of the output +directory. +In this case, there is a separate output file for each locale category +(LC_CTIME, LC_NUMERIC, and so on). +.PP +Otherwise, if the +.B \-\-no\-archive +option is used, +.I outputpath +is the name of a subdirectory in +.B /usr/lib/locale +where per-category compiled files are placed. +.PP +Otherwise, +.I outputpath +is the name of a locale and the compiled locale data is added to the +archive file +.BR /usr/lib/locale/locale-archive . +.PP +In any case, +.B localedef +aborts if the directory in which it tries to write locale files has +not already been created. +.PP +If no +.I charmapfile +is given, the value +.I POSIX +is used by default. +If no +.I inputfile +is given, or if it is given as a dash +.RB ( \- ), +.B localedef +reads from standard input. +.SH OPTIONS +Most options can have either short or long forms. If multiple short +options are used, they can be combined in one word (for example, +.B \-cv +is identical to +.BR "\-c \-v" ). +.PP +If a short option takes an argument, the argument can be given separately +as the next word +.RB ( "\-f foo" ), +or it can be written together with the option letter +.RB ( \-ffoo ). +If a long option takes an argument, the argument can be given separately +as the next word, or it can be written as option=argument +.RB ( \-\-charmap=foo ). +.SS "Operation selection options" +A few options direct +.B localedef +to do something else than compile locale definitions. +Only one of these should be used at a time. +.TP +.B \-\-delete\-from\-archive +Delete the named locales from the locale archive file. +.TP +.B \-\-list\-archive +List the locales contained in the locale archive file. +.TP +.B \-\-add\-to\-archive +Add the +.I compiledpath +directories to the locale archive file. +The directories should have been created by previous runs of +.BR localedef , +using +.BR \-\-no\-archive . +.SS "Other options" +Some of the following options are only sensible for some operations; hopefully it is self-evident which ones. +.TP +.BI \-f " charmapfile" ", \-\-charmap=" charmapfile +Specify the file that defines the symbolic character names that are +used by the input file. If the file is in the default directory for +character maps, it is not necessary to specify the full pathname. +This default directory is printed by +.BR "localedef \-\-help" . +.TP +.BI \-i " inputfile" ", \-\-inputfile=" inputfile +Specify the locale definition file to compile. If +.I inputfile +is not absolute, +.B localedef +will also look in the directories specified by the environment variable +.B I18NPATH +and in the default directory for locale definition files. This default +directory is printed by +.BR "localedef \-\-help" . +.TP +.BI \-u " repertoirefile" ", \-\-repertoire-map=" repertoirefile +Read mappings from symbolic names to Unicode UCS4 values from +.IR repertoirefile . +.TP +.BI \-A " aliasfile" ", \-\-alias\-file=" aliasfile +Use +.I aliasfile +to look up aliases for locale names. +There is no default aliases file. +.TP +.BI \-\-prefix= pathname +Set prefix to be prepended to the full archive pathname. +By default, the prefix is empty. +Setting the prefix to +.IR foo , +the archive would be placed in +.BR foo/usr/lib/locale/locale-archive . +.TP +.B "\-c, \-\-force" +Write the output files even if warnings were generated about the input +file. +.TP +.B \-\-old\-style +Create old-style tables. +.TP +.B "\-v, \-\-verbose" +Generate extra warnings about errors that are normally ignored. +.TP +.B \-\-quiet +Suppress all notifications and warnings, and report only fatal errors. +.TP +.B \-\-posix +Conform strictly to POSIX. Implies +.BR \-\-verbose . +This option currently has no other effect. Posix conformance is +assumed if the environment variable +.B POSIXLY_CORRECT +is set. +.TP +.B \-\-replace +Replace a locale in the locale archive file. +Without this option, if the locale is in the archive file already, +an error occurs. +.TP +.B \-\-no\-archive +Do not use the locale archive file, instead create +.I outputpath +as a subdirectory in the same directory as the locale archive file, +and create separate output files for locale categories in it. +.TP +.B "\-\-help" +Print a usage summary and exit. Also prints the default paths used by +.BR localedef . +.TP +.B "\-\-usage" +Print a short usage summary and exit. +.TP +.B "\-V, \-\-version" +Print the version number, license, and disclaimer of warranty for +.BR localedef . +.SH ENVIRONMENT +.TP +.B POSIXLY_CORRECT +The +.B \-\-posix +flag is assumed if this environment variable is set. +.TP +.B I18NPATH +A colon separated list of default directories for locale definition files. +.SH FILES +.TP +.B /usr/share/i18n/charmaps +Usual default charmap path. +.TP +.B /usr/share/i18n/locales +Usual default path for locale source files. +.TP +.B /usr/share/i18n/repertoiremaps +Usual default repertoire map path. +.TP +.B /usr/lib/locale/locale-archive +Usual default locale archive location. +.TP +.IB outputpath/ LC_COLLATE +One of the output files. It describes the rules for comparing strings +in the locale's alphabet. +.TP +.IB outputpath/ LC_CTYPE +One of the output files. It contains information about character +cases and case conversions for the locale. +.TP +.IB outputpath/ LC_MONETARY +One of the output files. It describes the way monetary values should +be formatted in the locale. +.TP +.IB outputpath/ LC_MESSAGES/SYS_LC_MESSAGES +One of the output files. It contains information about the language +messages should be printed in, and what an affirmative or negative +answer looks like. +.TP +.IB outputpath/ LC_NUMERIC +One of the output files. It describes the rules for formatting +numbers in the locale. +.TP +.IB outputpath/ LC_TIME +One of the output files. It describes the rules for formatting +times and dates in the locale. +.TP +.IB outputpath/ LC_PAPER +One of the output files. It describes the default paper size +in the locale. +.TP +.IB outputpath/ LC_NAME +One of the output files. It describes the rules for formatting +names in the locale. +.TP +.IB outputpath/ LC_ADDRESS +One of the output files. It describes the rules for formatting +addresses, and other location information in the locale. +.TP +.IB outputpath/ LC_TELEPHONE +One of the output files. It describes the rules for formatting +telephone numbers in the locale. +.TP +.IB outputpath/ LC_MEASUREMENT +One of the output files. It describes the rules for measurement in the +locale, e.g. Metric or other units. +.TP +.IB outputpath/ LC_IDENTIFICATION +One of the output files. It identifies the elements within the locale. +.SH EXAMPLES +Compile the locale files for Finnish in the UTF-8 character set +and add it to the default locale archive with the name +.BR fi_FI.UTF-8 : +.PP +.RS +localedef \-f UTF\-8 \-i fi_FI fi_FI.UTF\-8 +.RE +.PP +The same, but generate files into the current directory (note that the +last argument must then contain a slash): +.PP +.RS +localedef \-f UTF\-8 \-i fi_FI ./ +.RE +.SH "SEE ALSO" +.BR locale "(5), " locale "(7), " locale (1) +.SH AUTHOR +The program was written by Ulrich Drepper. +.PP +This manual page was written by Richard Braakman on +behalf of the Debian GNU/Linux Project and anyone else who wants it. +It was amended by Alastair McKinstry to +explain new ISO 14652 elements, +and amended further by Lars Wirzenius to document new +functionality (as of GNU C library 2.3.5). +The manpage is not supported by the GNU libc maintainers and may be +out of date. +.SH STANDARDS +This program conforms to the POSIX standard P1003.2 --- glibc-2.7.orig/debian/local/manpages/Makefile +++ glibc-2.7/debian/local/manpages/Makefile @@ -0,0 +1,20 @@ +#! /usr/bin/make -f + +DIRS := de es fr id pl pt_BR + +SGML_MAN = locale-gen.8 + +all: $(patsubst %.pod,%.1,$(wildcard *.pod)) $(SGML_MAN) po4a-man +%.1: %.pod + pod2man --center="Debian GNU/Linux" --release="etch" $< > $@ + +locale-gen.8: locale-gen.8.sgml + docbook-to-man $< > $@ + +po4a-man: + po4a -q po4a.cfg + +clean: + po4a -q po4a.cfg + $(foreach dir, $(DIRS), rm -rf $(dir)/*.8) + rm -f po/*~ --- glibc-2.7.orig/debian/local/manpages/gai.conf.5 +++ glibc-2.7/debian/local/manpages/gai.conf.5 @@ -0,0 +1,92 @@ +.\" A man page for gai.conf. -*- nroff -*- +.\" +.\" Copyright (C) 2006 Red Hat, Inc. All rights reserved. +.\" +.\" This copyrighted material is made available to anyone wishing to use, +.\" modify, copy, or redistribute it subject to the terms and conditions of the +.\" GNU General Public License v.2. +.\" +.\" This program is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +.\" more details. +.\" +.\" You should have received a copy of the GNU General Public License along +.\" with this program; if not, write to the Free Software Foundation, Inc., +.\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +.\" +.\" Author: Ulrich Drepper +.TH gai.conf 5 "May 2006" gai.conf + +.SH NAME +gai.conf \- getaddrinfo(3) configuration file + +.SH DESCRIPTION +A call to +.BR getaddrinfo (3) +might return multiple answers. According to RFC 3484 these answers must +be sorted so that the answer with the highest success rate is first in +the list. The RFC provides and algorithm for the sorting. The static +rules are not always adequate, though. For this reason the RFC also +requires that system administrators get the chance to dynamically change +the sorting. For the glibc implementation this can be achieved with +the +.BR /etc/gai.conf +file. +.PP +Each line in the configuration file consists of a keyword and its +parameters. White spaces in any place are ignored. Lines starting +with `#' are comments and are ignored. +.PP +The keywords currently recognized are: +.TP +\fBlabel\fR \fInetmask\fR \fIprecedence\fR +The value is added to the label table used in the RFC 3484 sorting. +If any \fBlabel\fR definition is present in the configuration file +is present the default table is not used. All the label definitions +of the default table which are to be maintained have to be duplicated. +Following the keyword the line has to contain a network mask and a label +value. + +.TP +\fBprecedence\fR \fInetmask\fR \fIprecedence\fR +This keyword is similar to \fBlabel\fR but instead the value is added +to the precendence table as specified in RFC 3484. Once again, the +presence of a single \fBprecedence\fR line in the configuration file +causes the default table to not be used. + +.TP +\fBreload\fR <\fByes\fR|\fBno\fR> +This keyword control whether a process checks whether the configuration +file has been changes since the last time it was read. If the value is +`\fByes\fR' the file is re-read. This might cause problems in multi-threaded +applications and is generally a bad idea. The default is `\fBno\fR'. + + +.SH EXAMPLE + +The default table according to RFC 3484 would be specified with the +following configuration file: + +.nf +label ::1/128 0 +label ::/0 1 +label 2002::/16 2 +label ::/96 3 +label ::ffff:0:0/96 4 +precendence ::1/128 50 +precendence ::/0 40 +precendence 2002::/16 30 +precendence ::/96 20 +precendence ::ffff:0:0/96 10 + + +.SH FILES +\fI/etc/gai.conf\fR + +.SH AUTHOR +Ulrich Drepper + +.SH SEE ALSO +.BR getaddrinfo(3), +RFC 3484 --- glibc-2.7.orig/debian/local/manpages/id/addendum.id +++ glibc-2.7/debian/local/manpages/id/addendum.id @@ -0,0 +1,3 @@ + +.SH PENERJEMAH +Parlin Imanuel Toh --- glibc-2.7.orig/debian/local/manpages/rpcinfo.8 +++ glibc-2.7/debian/local/manpages/rpcinfo.8 @@ -0,0 +1,166 @@ +.\" from: @(#)rpcinfo.8c 2.2 88/08/03 4.0 RPCSRC; from 1.24 88/02/25 SMI +.\" $Id: rpcinfo.8,v 1.1.2.1 2003/09/22 21:33:35 jbailey Exp $ +.\" +.Dd December 17, 1987 +.Dt RPCINFO 8 +.Os +.Sh NAME +.Nm rpcinfo +.Nd report RPC information +.Sh SYNOPSIS +.Nm rpcinfo +.Fl p +.Op Ar host +.Nm rpcinfo +.Op Fl n Ar portnum +.Fl u Ar host +.Ar program +.Op Ar version +.Nm rpcinfo +.Op Fl n Ar portnum +.Fl t Ar host +.Ar program +.Op Ar version +.Nm rpcinfo +.Fl b +.Ar program version +.Nm rpcinfo +.Fl d +.Ar program version +.Sh DESCRIPTION +.Nm rpcinfo +makes an +.Tn RPC +call to an +.Tn RPC +server and reports what it finds. +.Sh OPTIONS +.Bl -tag -width indent +.It Fl p +Probe the portmapper on +.Ar host , +and print a list of all registered +.Tn RPC +programs. If +.Ar host +is not specified, it defaults to the value returned by +.Xr hostname 1 . +.It Fl u +Make an +.Tn RPC +call to procedure 0 of +.Ar program +on the specified +.Ar host +using +.Tn UDP , +and report whether a response was received. +.It Fl t +Make an +.Tn RPC +call to procedure 0 of +.Ar program +on the specified +.Ar host +using +.Tn TCP , +and report whether a response was received. +.It Fl n +Use +.Ar portnum +as the port number for the +.Fl t +and +.Fl u +options instead of the port number given by the portmapper. +.It Fl b +Make an +.Tn RPC +broadcast to procedure 0 of the specified +.Ar program +and +.Ar version +using +.Tn UDP +and report all hosts that respond. +.It Fl d +Delete registration for the +.Tn RPC +service of the specified +.Ar program +and +.Ar version . +This option can be exercised only by the super-user. +.El +.Pp +The +.Ar program +argument can be either a name or a number. +.Pp +If a +.Ar version +is specified, +.Nm rpcinfo +attempts to call that version of the specified +.Ar program . +Otherwise, +.Nm rpcinfo +attempts to find all the registered version +numbers for the specified +.Ar program +by calling version 0 (which is presumed not +to exist; if it does exist, +.Ar rpcinfo +attempts to obtain this information by calling +an extremely high version +number instead) and attempts to call each registered version. +Note: the version number is required for +.Fl b +and +.Fl d +options. +.Sh EXAMPLES +To show all of the +.Tn RPC +services registered on the local machine use: +.Pp +.Dl example% rpcinfo -p +.Pp +To show all of the +.Tn RPC +services registered on the machine named +.Ar klaxon +use: +.Pp +.Dl example% rpcinfo -p klaxon +.Pp +To show all machines on the local net that are running the Yellow Pages +service use: +.Pp +.Dl example% rpcinfo -b ypserv 'version' | uniq +.Pp +where 'version' is the current Yellow Pages version obtained from the +results of the +.Fl p +switch above. +.Pp +To delete the registration for version 1 of the +.Nm walld +service use: +.Pp +.Dl example% rpcinfo -d walld 1 +.Sh SEE ALSO +.Xr rpc 5 , +.Xr portmap 8 +.Rs +.%T "RPC Programming Guide" +.Re +.Sh BUGS +In releases prior to SunOS 3.0, the Network File System (NFS) did not +register itself with the portmapper; +.Nm rpcinfo +cannot be used to make +.Tn RPC +calls to the +.Tn NFS +server on hosts running such releases. --- glibc-2.7.orig/debian/local/manpages/ldconfig.8 +++ glibc-2.7/debian/local/manpages/ldconfig.8 @@ -0,0 +1,168 @@ +.TH ldconfig 8 "25 February 2008" +.SH NAME +ldconfig \- configure dynamic linker run-time bindings +.SH SYNOPSIS +ldconfig +.RB [OPTION...] +.SH DESCRIPTION +.B ldconfig +creates, updates, and removes the necessary links and cache (for use by the run-time linker, +.IR ld.so ) +to the most recent shared libraries found in the directories specified +on the command line, in the file +.IR /etc/ld.so.conf , +and in the trusted directories +.RI ( /usr/lib +and +.IR /lib ). +.B ldconfig +checks the header and file names of the libraries it encounters when +determining which versions should have their links updated. +.B ldconfig +ignores symbolic links when scanning for libraries. +.PP +.B ldconfig +will attempt to deduce the type of ELF libs (ie. libc 5.x or libc 6.x (glibc)) +based on what C libraries if any the library was linked against, therefore when +making dynamic libraries, it is wise to explicitly link against libc (use -lc). +.B ldconfig +is capable of storing multiple ABI types of libraries into a single cache on +architectures which allow native running of multiple ABIs, like +ia32/ia64/x86_64 or sparc32/sparc64. +.PP +Some existing libs do not contain enough information to allow the deduction of +their type, therefore the +.IR /etc/ld.so.conf +file format allows the specification of an expected type. This is +.B only +used for those ELF libs which we can not work out. The format +is like this "dirname=TYPE", where type can be libc4, libc5 or libc6. +(This syntax also works on the command line). Spaces are +.B not +allowed. Also see the +.B -p +option. +.PP +Directory names containing an +.B = +are no longer legal unless they also have an expected type specifier. +.PP +.B ldconfig +should normally be run by the super-user as it may require write +permission on some root owned directories and files. If you use +.B -r +option to change the root directory, you don't have to be super-user though +as long as you have sufficient right to that directory tree. +.SH OPTIONS +.TP +.B \-v\ \-\-verbose +Verbose mode. +Print current version number, the name of each directory as it +is scanned and any links that are created. +.TP +.B \-n +Only process directories specified on the command line. +Don't process the trusted directories +.RI ( /usr/lib +and +.IR /lib ) +nor those specified in +.IR /etc/ld.so.conf . +Implies +.BR \-N . +.TP +.B \-N +Don't rebuild the cache. +Unless +.B \-X +is also specified, links are still updated. +.TP +.B \-X +Don't update links. +Unless +.B \-N +is also specified, the cache is still rebuilt. +.TP +.B \-f conf +Use +.B conf +instead of +.IR /etc/ld.so.conf . +.TP +.B \-C cache +Use +.B cache +instead of +.IR /etc/ld.so.cache . +.TP +.B \-r root +Change to and use +.B root +as the root directory. +.TP +.B \-l +Library mode. +Manually link individual libraries. +Intended for use by experts only. +.TP +.B \-p\ \-\-print-cache +Print the lists of directories and candidate libraries stored in +the current cache. +.TP +.B \-c\ \-\-format=FORMAT +Use +.B FORMAT +for the cache file. Choices are old, new and compat (the default). +.TP +.B \-i \-\-ignore-aux-cache +Ignore auxiliary cache file. +.TP +.B \-?\ \-\-help \-\-usage +Print usage information. +.TP +.B \-V\ \-\-version +Print version and exit. +.SH EXAMPLES +.RS +# /sbin/ldconfig -v +.RE +will set up the correct links for the shared binaries and rebuild +the cache. +.RS +# /sbin/ldconfig -n /lib +.RE +as root after the installation of a new shared library will properly update the +shared library symbolic links in /lib. +.SH FILES +.PD 0 +.TP 20 +.B /lib/ld-linux.so.* +execution time linker/loader +.TP 20 +.B /etc/ld.so.conf +File containing a list of colon, space, tab, newline, or comma separated +directories in which to search for libraries. +.TP 20 +.B /etc/ld.so.cache +File containing an ordered list of libraries found in the directories +specified in +.BR /etc/ld.so.conf . +This file is not in human readable format, and is not intended to be +edited. +.TP +.B lib*.so.version +shared libraries +.PD +.SH SEE ALSO +.BR ldd (1), +.BR ld.so (8). +.SH BUGS +.LP +.BR ldconfig , +being a user process, must be run manually and has no means of dynamically +determining and relinking shared libraries for use by +.BR ld.so +when a new shared library is installed. +.SH AUTHORS +Andreas Jaeger. +Manual page written by David Engel and Mitch D'Souza. --- glibc-2.7.orig/debian/local/manpages/iconvconfig.8 +++ glibc-2.7/debian/local/manpages/iconvconfig.8 @@ -0,0 +1,232 @@ +.rn '' }` +''' $RCSfile: iconvconfig.8,v $$Revision: 1.1 $$Date: 2007-04-11 03:07:27 +0000 (Wed, 11 Apr 2007) $ +''' +''' $Log: iconvconfig.8,v $ +''' Revision 1.1 2003/11/03 17:37:27 jbailey +''' - debian/local/manpages/gencat.1: New file. +''' - debian/local/manpages/trace.1: New file. +''' - debian/debhelper.in/libc-dev.manpages: Install them. +''' - debian/local/manpages/iconvconfig.8: New file. +''' - debian/debhelper.in/libc.manpages: Install it. +''' +''' Revision 1.1.2.2 2003/10/28 05:48:08 dan +''' - Re-add debian/patches/80_glibc232-locales-nb_NO-fix.dpatch, which had +''' gotten lost. +''' - Re-add typo fixes to iconv.1 and rpcgen.1. +''' - Merge iconv.1 fix to iconv.pod. +''' - Fix ld.so name in ld.so.8. +''' - Re-add fix for locale-gen and POSIXLY_CORRECT. +''' +''' +.de Sh +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp +.if t .sp .5v +.if n .sp +.. +.de Ip +.br +.ie \\n(.$>=3 .ne \\$3 +.el .ne 3 +.IP "\\$1" \\$2 +.. +.de Vb +.ft CW +.nf +.ne \\$1 +.. +.de Ve +.ft R + +.fi +.. +''' +''' +''' Set up \*(-- to give an unbreakable dash; +''' string Tr holds user defined translation string. +''' Bell System Logo is used as a dummy character. +''' +.tr \(*W-|\(bv\*(Tr +.ie n \{\ +.ds -- \(*W- +.ds PI pi +.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +.ds L" "" +.ds R" "" +''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of +''' \*(L" and \*(R", except that they are used on ".xx" lines, +''' such as .IP and .SH, which do another additional levels of +''' double-quote interpretation +.ds M" """ +.ds S" """ +.ds N" """"" +.ds T" """"" +.ds L' ' +.ds R' ' +.ds M' ' +.ds S' ' +.ds N' ' +.ds T' ' +'br\} +.el\{\ +.ds -- \(em\| +.tr \*(Tr +.ds L" `` +.ds R" '' +.ds M" `` +.ds S" '' +.ds N" `` +.ds T" '' +.ds L' ` +.ds R' ' +.ds M' ` +.ds S' ' +.ds N' ` +.ds T' ' +.ds PI \(*p +'br\} +.\" If the F register is turned on, we'll generate +.\" index entries out stderr for the following things: +.\" TH Title +.\" SH Header +.\" Sh Subsection +.\" Ip Item +.\" X<> Xref (embedded +.\" Of course, you have to process the output yourself +.\" in some meaningful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH ICONVCONFIG 8 "November 2003" "iconvconfig (glibc)" "Debian" +.UC +.if n .hy 0 +.if n .na +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.de CQ \" put $1 in typewriter font +.ft CW +'if n "\c +'if t \\&\\$1\c +'if n \\&\\$1\c +'if n \&" +\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 +'.ft R +.. +.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2 +. \" AM - accent mark definitions +.bd B 3 +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds ? ? +. ds ! ! +. ds / +. ds q +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' +. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] +.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' +.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' +.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +.ds oe o\h'-(\w'o'u*4/10)'e +.ds Oe O\h'-(\w'O'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds v \h'-1'\o'\(aa\(ga' +. ds _ \h'-1'^ +. ds . \h'-1'. +. ds 3 3 +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +. ds oe oe +. ds Oe OE +.\} +.rm #[ #] #H #V #F C +.SH "NAME" +iconvconfig \- Create fastloading iconv module configuration file +.SH "SYNOPSIS" +iconvconfig [OPTION...] [DIR...] +.SH "DESCRIPTION" +The \fBiconvconfig\fR program generates a cache that internationalised +applications can use to reduce loading time. +.PP +.TP +\fB--prefix\fR \fIPATH\fR +Prefix used for all file accesses +.SH "AUTHOR" +\fIiconvconfig\fR was written by Ulrich Drepper as part of the GNU C Library. +.PP +This man page was written by Jeff Bailey . + +.rn }` '' +.IX Title "ICONVCONFIG 8" +.IX Name "iconvconfig - Create fastloading iconv module configuration file" + +.IX Header "NAME" + +.IX Header "SYNOPSIS" + +.IX Header "DESCRIPTION" + +.IX Header "AUTHOR" + --- glibc-2.7.orig/debian/local/manpages/zdump.1 +++ glibc-2.7/debian/local/manpages/zdump.1 @@ -0,0 +1,43 @@ +.TH ZDUMP 1 +.SH NAME +zdump \- time zone dumper +.SH SYNOPSIS +.B zdump +[ +.B \-v +] [ +.B \-c +cutoffyear ] [ zonename ... ] +.SH DESCRIPTION +.I Zdump +prints the current time in each +.I zonename +named on the command line. +.PP +These options are available: +.TP +.B \-v +For each +.I zonename +on the command line, +print the time at the lowest possible time value, +the time one day after the lowest possible time value, +the times both one second before and exactly at +each detected time discontinuity, +the time at one day less than the highest possible time value, +and the time at the highest possible time value, +Each line ends with +.B isdst=1 +if the given time is Daylight Saving Time or +.B isdst=0 +otherwise. +.I zonename +should be the relative path file name from +.B /usr/share/zoneinfo/ +which directory contains all zone data. +.TP +.BI "\-c " cutoffyear +Cut off the verbose output near the start of the given year. +.SH "SEE ALSO" +ctime(3), zic(8) +.\" @(#)zdump.8 7.3 --- glibc-2.7.orig/debian/local/manpages/ldd.1 +++ glibc-2.7/debian/local/manpages/ldd.1 @@ -0,0 +1,58 @@ +.\" Copyright 1995-2000 David Engel (david@ods.com) +.\" Copyright 1995 Rickard E. Faith (faith@cs.unc.edu) +.\" Copyright 2000 Ben Collins (bcollins@debian.org) +.\" Redone for GLibc 2.2 +.\" Copyright 2000 Jakub Jelinek (jakub@redhat.com) +.\" Corrected. +.\" Most of this was copied from the README file. Do not restrict distribution. +.\" May be distributed under the GNU General Public License +.TH LDD 1 "30 October 2000" +.SH NAME +ldd \- print shared library dependencies +.SH SYNOPSIS +.B ldd +.RB [OPTION]... +FILE... +.SH DESCRIPTION +.B ldd +prints the shared libraries required by each program or shared library +specified on the command line. +.SH OPTIONS +.TP +.B \-\-version +Print the version number of +.BR ldd . +.TP +.B \-v\ \-\-verbose +Print all information, including e.g. symbol versioning information. +.TP +.B \-d\ \-\-data\-relocs +Perform relocations and report any missing objects (ELF only). +.TP +.B \-r\ \-\-function\-relocs +Perform relocations for both data objects and functions, and +report any missing objects or functions (ELF only). +.TP +.B \-u\ \-\-unused +Print unused direct dependencies. +.TP +.B \-\-help +Usage information. +.SH BUGS +.B ldd +does not work on a.out shared libraries. +.PP +.B ldd +does not work with some extremely old a.out programs which were +built before +.B ldd +support was added to the compiler releases. +If you use +.B ldd +on one of these programs, the program will attempt to run with argc = 0 and +the results will be unpredictable. +.SH AUTHOR +Roland McGrath and Ulrich Drepper. +.SH SEE ALSO +.BR ldconfig (8), +.BR ld.so (8). --- glibc-2.7.orig/debian/local/manpages/getent.1 +++ glibc-2.7/debian/local/manpages/getent.1 @@ -0,0 +1,235 @@ +.rn '' }` +''' $RCSfile: getent.1,v $$Revision: 1.1.2.1 $$Date: 2003/09/22 21:33:35 $ +''' +''' $Log: getent.1,v $ +''' Revision 1.1.2.1 2003/09/22 21:33:35 jbailey +''' New directory for things we add to the package +''' +''' +.de Sh +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp +.if t .sp .5v +.if n .sp +.. +.de Ip +.br +.ie \\n(.$>=3 .ne \\$3 +.el .ne 3 +.IP "\\$1" \\$2 +.. +.de Vb +.ft CW +.nf +.ne \\$1 +.. +.de Ve +.ft R + +.fi +.. +''' +''' +''' Set up \*(-- to give an unbreakable dash; +''' string Tr holds user defined translation string. +''' Bell System Logo is used as a dummy character. +''' +.tr \(*W-|\(bv\*(Tr +.ie n \{\ +.ds -- \(*W- +.ds PI pi +.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +.ds L" "" +.ds R" "" +''' \*(M", \*(S", \*(N" and \*(T" are the equivalent of +''' \*(L" and \*(R", except that they are used on ".xx" lines, +''' such as .IP and .SH, which do another additional levels of +''' double-quote interpretation +.ds M" """ +.ds S" """ +.ds N" """"" +.ds T" """"" +.ds L' ' +.ds R' ' +.ds M' ' +.ds S' ' +.ds N' ' +.ds T' ' +'br\} +.el\{\ +.ds -- \(em\| +.tr \*(Tr +.ds L" `` +.ds R" '' +.ds M" `` +.ds S" '' +.ds N" `` +.ds T" '' +.ds L' ` +.ds R' ' +.ds M' ` +.ds S' ' +.ds N' ` +.ds T' ' +.ds PI \(*p +'br\} +.\" If the F register is turned on, we'll generate +.\" index entries out stderr for the following things: +.\" TH Title +.\" SH Header +.\" Sh Subsection +.\" Ip Item +.\" X<> Xref (embedded +.\" Of course, you have to process the output yourself +.\" in some meaningful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH GETENT 1 "lenny" "18/Nov/2007" "Debian GNU/Linux" +.UC +.if n .hy 0 +.if n .na +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.de CQ \" put $1 in typewriter font +.ft CW +'if n "\c +'if t \\&\\$1\c +'if n \\&\\$1\c +'if n \&" +\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 +'.ft R +.. +.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2 +. \" AM - accent mark definitions +.bd B 3 +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds ? ? +. ds ! ! +. ds / +. ds q +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10' +. ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +. ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#] +.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u' +.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u' +.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#] +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +.ds oe o\h'-(\w'o'u*4/10)'e +.ds Oe O\h'-(\w'O'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds v \h'-1'\o'\(aa\(ga' +. ds _ \h'-1'^ +. ds . \h'-1'. +. ds 3 3 +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +. ds oe oe +. ds Oe OE +.\} +.rm #[ #] #H #V #F C +.SH "NAME" +getent \- get entries from administrative database +.SH "SYNOPSIS" +\fBgetent\fR \fIdatabase\fR [\fIkey\fR ...] +.SH "DESCRIPTION" +The \fIgetent\fR program gathers entries from the specified +administrative database using the specified search keys. +Where \fIdatabase\fR is one of passwd, group, hosts, services, protocols, +or networks. +.SH "EXIT VALUES" +The \fIgetent\fR command exits with the following values: +.TP +.B 0 +Success +.TP +.B 1 +Unknown database +.TP +.B 2 +Key not found in database +.TP +.B 3 +Database does not support enumeration +.SH "AUTHOR" +\fIgetent\fR was written by Thorsten Kukuk for the GNU C Library. +.PP +This man page was written by Joel Klecker for +the Debian GNU/Linux system. + +.rn }` '' +.IX Title "GETENT 1" +.IX Name "getent - get entries from administrative database" + +.IX Header "NAME" + +.IX Header "SYNOPSIS" + +.IX Header "DESCRIPTION" + +.IX Header "EXIT VALUES" + +.IX Header "AUTHOR" + --- glibc-2.7.orig/debian/local/manpages/es/validlocale.es.8 +++ glibc-2.7/debian/local/manpages/es/validlocale.es.8 @@ -0,0 +1,54 @@ +.\" This file was generated with po4a. Translate the source file. +.\" +.TH validlocale 8 0.1 "Petter Reinholdtsen" "" +.SH NOMBRE +.LP +validlocale \- Comprueba si la opción de localización dada está disponible +.SH SINTAXIS +.LP +validlocale <\fIopción_de_localización\fP> +.SH DESCRIPCIÓN +.LP +Comprueba si la opción de localización dada como argumento es válida. Si no +lo es muestra en la stdout (salida estándar) la cadena de caracteres que se +necesita añadir a /etc/locale.gen para que locale\-gen genere esa opción de +localización (si es que existe). +.SH FICHEROS +.LP +\fI/usr/sbin/validlocale\fP +.br +\fI/usr/share/i18n/SUPPORTED\fP +.SH "VARIABLES DE ENTORNO" +.LP +.TP +\fBDEFAULTCHARSET\fP +El juego de caracteres que asume en caso de que la opción de localización +dada no esté entre la lista de opciones de localización soportadas. +.SH EJEMPLOS +.LP +Si usted proporciona una opción de localización válida como parámetro, +muestra una cadena de caracteres especificándolo en stderr (salida de +errores estándar): +.LP +.IP +% validlocale C +.br +locale 'C' valid and available +.LP +Cuando se proporcione una inválida (no ha sido generada o no existe), +muestra una cadena de caracteres en stderr diciendo que es inválida, y otra +a stdout con la cadena de caracteres que se necesita añadir a +/etc/locale.gen para que se genere: +.LP +.IP +% validlocale de_AU@euro +.br +locale 'de_AT@euro' not available +.br +de_AT@euro ISO\-8859\-15 +.SH AUTORES +.LP +Petter Reinholdtsen +.SH "VÉASE ADEMÁS" +.LP +locale\-gen(8), localedef(1), locale(1) --- glibc-2.7.orig/debian/local/manpages/es/addendum.es +++ glibc-2.7/debian/local/manpages/es/addendum.es @@ -0,0 +1,3 @@ + +.SH TRADUCTOR +Traducción de Rubén Porras Campo --- glibc-2.7.orig/debian/local/manpages/locale-gen.8.sgml +++ glibc-2.7/debian/local/manpages/locale-gen.8.sgml @@ -0,0 +1,148 @@ + manpage.1'. You may view + the manual page with: `docbook-to-man manpage.sgml | nroff -man | + less'. A typical entry in a Makefile or Makefile.am is: + +manpage.1: manpage.sgml + docbook-to-man $< > $@ + --> + + + Eduard"> + Bloch"> + + March 10, 2005"> + + 8"> + blade@debian.org"> + + LOCALE-GEN"> + + + Debian GNU/Linux"> + GNU"> +]> + + + +
+ &dhemail; +
+ + &dhfirstname; + &dhsurname; + + + 2001 + &dhusername; + + &dhdate; +
+ + &dhucpackage; + + &dhsection; + + + &dhpackage; + + generates localisation files from templates + + + + &dhpackage; + + + + + + DESCRIPTION + + This manual page documents briefly the + &dhpackage; command. + + By default, the locale package which provides the base support for + localisation of libc-based programs does not contain usable localisation + files for every supported language. This limitation has became necessary + because of the substantial size of such files and the large number of + languages supported by libc. As a result, Debian uses a special + mechanism where we prepare the actual localisation files on the target + host and distribute only the templates for them. + + &dhpackage; is a program that reads the file + /etc/locale.gen and invokes + localedef for the chosen localisation profiles. + Run &dhpackage; after you have modified the /etc/locale.gen file. + + + + + + OPTIONS + + + + + + By default, &dhpackage; removes all + existing locales and generates new ones afresh. The + option prevents this, so that + only locales which do not already exist are generated. This is + useful if calling locale-gen a number of times in + succession. + + + + + + + FILES + + /etc/locale.gen + The main configuration file, which has a simple format: every + line that is not empty and does not begin with a # is treated as a + locale definition that is to be built. + + + + + + SEE ALSO + + localedef(1), locale(1), locale.alias(5), locale.gen(5). + + + + + AUTHOR + + This manual page was written by &dhusername; <&dhemail;> for + the &debian; system (but may be used by others). Permission is + granted to copy, distribute and/or modify this document under + the terms of the GNU Free Documentation + License, Version 1.1 or any later version published by the Free + Software Foundation; with no Invariant Sections, no Front-Cover + Texts and no Back-Cover Texts. + + +
+ + --- glibc-2.7.orig/debian/local/manpages/nscd.8 +++ glibc-2.7/debian/local/manpages/nscd.8 @@ -0,0 +1,87 @@ +.\" Placed in the Public Domain by Sebastian Rittau . +.Dd January 07, 2001 +.Dt NSCD 8 +.Os "GNU C Library 2.2" +.Sh NAME +.Nm nscd +.Nd name service caching daemon +.Sh SYNOPSIS +.Nm nscd +.Op OPTION... +.Sh DESCRIPTION +.Nm Nscd +caches libc-issued requests to the Name Service. If retrieving +NSS data is fairly expensive, +.Nm nscd +is able to speed up consecutive access to the same data +dramatically and increase overall system performance. +.Nm Nscd +should be run at boot time by +.Pa /etc/init.d/nscd . +.Sh OPTIONS +.Bl -tag -width Ds +.It Fl d , Fl -debug +Do not fork and display messages on the current tty. +.El +.Bl -tag -width Ds +.It Fl f , Fl -config-file Ar NAME +Read configuration data from +.Pa NAME . +For a description of the config file format, see nscd.conf(5). +.El +.Bl -tag -width Ds +.It Fl g , Fl -statistic +Print current configuration statistics. +.El +.Bl -tag -width Ds +.It Fl i , Fl -invalidate Ar TABLE +Invalidate the specified +.Pa TABLE , +i. e. forget all data cached therein. This should be used if the +database storing this information has been changed. +.El +.Bl -tag -width Ds +.It Fl K , Fl -shutdown +Quit a running +.Nm nscd +process. +.El +.Bl -tag -width Ds +.It Fl S , Fl -secure Ar TABLE +Use a separate cache for each user. +.El +.Bl -tag -width Ds +.It Fl t , Fl -nthreads Ar NUMBER +Start +.Pa NUMBER +threads. This denotes the maximum number +of requests that can be handled simultaneously. The default is set +in the configuration file. (See nscd.conf(5).) +.El +.Bl -tag -width Ds +.It Fl ? , Fl -help +Print the list of available options. +.El +.Bl -tag -width Ds +.It Fl -usage +Print a short usage message. +.El +.Bl -tag -width Ds +.It Fl V , Fl -version +Print program version. +.El +.Sh FILES +.Bl -tag -width Ds +.It Ar /etc/nscd.conf +.Nm Nscd +configuration file. See nscd.conf(5) for more information. +.El +.Bl -tag -width Ds +.It Ar /etc/nsswitch.conf +Name Service Switch configuration. See nsswitch.conf(5) +for more information. +.El +.Sh SEE ALSO +GNU C Library info file, +.Xr nscd.conf 5 , +.Xr nsswitch.conf 5 --- glibc-2.7.orig/debian/local/manpages/validlocale.8 +++ glibc-2.7/debian/local/manpages/validlocale.8 @@ -0,0 +1,49 @@ +.TH "validlocale" "8" "0.1" "Petter Reinholdtsen" "" +.SH "NAME" +.LP +validlocale \- Test if a given locale is available +.SH "SYNTAX" +.LP +validlocale <\fIlocale\fP> +.SH "DESCRIPTION" +.LP +Test if the locale given as argument is a valid locale. If it +isn't, print on stdout the string to add to /etc/locale.gen to make +locale\-gen generate the locale (if it exists at all). +.SH "FILES" +.LP +\fI/usr/sbin/validlocale\fP +.br +\fI/usr/share/i18n/SUPPORTED\fP +.SH "ENVIRONMENT VARIABLES" +.LP +.TP +\fBDEFAULTCHARSET\fP +Which charset to assume if the given locale is missing from the +list of supported locales. +.SH "EXAMPLES" +.LP +If you give a valid locale as parameter, it outputs a string +specifying this on stderr: +.LP +.IP +% validlocale C +.br +locale 'C' valid and available +.LP +When given a invalid (not generated or just nonexistent), it +outputs a string on stderr telling that this is an invalid locale, and a string to stdout with the string to add to /etc/locale.gen +to have this locale generated: +.LP +.IP +% validlocale de_AU@euro +.br +locale 'de_AT@euro' not available +.br +de_AT@euro ISO\-8859\-15 +.SH "AUTHORS" +.LP +Petter Reinholdtsen +.SH "SEE ALSO" +.LP +locale\-gen(8), localedef(1), locale(1) --- glibc-2.7.orig/debian/local/etc/bindresvport.blacklist +++ glibc-2.7/debian/local/etc/bindresvport.blacklist @@ -0,0 +1,12 @@ +# +# This file contains a list of port numbers between 600 and 1024, +# which should not be used by bindresvport. bindresvport is mostly +# called by RPC services. This mostly solves the problem, that a +# RPC service uses a well known port of another service. +# +631 # cups +636 # ldaps +774 # rpasswd +921 # lwresd +993 # imaps +995 # pops --- glibc-2.7.orig/debian/local/ldconfig_wrap +++ glibc-2.7/debian/local/ldconfig_wrap @@ -0,0 +1,17 @@ +#!/bin/sh + +if test $# = 0 \ + && test x"$LDCONFIG_NOTRIGGER" = x \ + && test x"$DPKG_MAINTSCRIPT_PACKAGE" != x \ + && dpkg-trigger --check-supported 2>/dev/null \ + && dpkg --compare-versions "$DPKG_RUNNING_VERSION" ge '1.14.5ubuntu10~~' +then + if dpkg-trigger --no-await ldconfig; then + if test x"$LDCONFIG_TRIGGER_DEBUG" != x; then + echo "ldconfig: wrapper deferring update (trigger activated)" + fi + exit 0 + fi +fi + +exec /sbin/ldconfig.real "$@" --- glibc-2.7.orig/debian/local/usr_sbin/locale-gen +++ glibc-2.7/debian/local/usr_sbin/locale-gen @@ -0,0 +1,63 @@ +#!/bin/sh + +set -e + +LOCALEGEN=/etc/locale.gen +LOCALES=/usr/share/i18n/locales +USER_LOCALES=/usr/local/share/i18n/locales +if [ -n "$POSIXLY_CORRECT" ]; then + unset POSIXLY_CORRECT +fi + + +[ -f $LOCALEGEN ] || exit 0; +[ -s $LOCALEGEN ] || exit 0; + +KEEP= +if [ "$1" = '--keep-existing' ]; then + KEEP=1 +fi + +if [ -z "$KEEP" ]; then + # Remove all old locale dir and locale-archive before generating new + # locale data. + rm -rf /usr/lib/locale/* || true +fi + +umask 022 + +is_entry_ok() { + if [ -n "$locale" -a -n "$charset" ] ; then + true + else + echo "error: Bad entry '$locale $charset'" + false + fi +} + +echo "Generating locales (this might take a while)..." +while read locale charset; do \ + case $locale in \#*) continue;; "") continue;; esac; \ + is_entry_ok || continue + if [ "$KEEP" ] && PERL_BADLANG=0 perl -MPOSIX -e \ + 'exit 1 unless setlocale(LC_ALL, $ARGV[0])' "$locale"; then + continue + fi + echo -n " `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"; \ + echo -n ".$charset"; \ + echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \ + echo -n '...'; \ + if [ -f $USER_LOCALES/$locale ] ; then + input=$USER_LOCALES/$locale + elif [ -f $LOCALES/$locale ]; then + input=$locale + else + input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'` + if [ -f $USER_LOCALES/$input ]; then + input=$USER_LOCALES/$input + fi + fi + localedef -i $input -c -f $charset -A /usr/share/locale/locale.alias $locale || :; \ + echo ' done'; \ +done < $LOCALEGEN +echo "Generation complete." --- glibc-2.7.orig/debian/local/usr_sbin/validlocale +++ glibc-2.7/debian/local/usr_sbin/validlocale @@ -0,0 +1,75 @@ +#!/usr/bin/perl -w +# +# Author: Petter Reinholdtsen +# Date: 2002-02-23 +# +# Test if the locale given as argument is a valid locale. If it +# is not, print on stdout the string to add to /etc/locale.gen to make +# locale-gen generate the locale (if it exists at all). + +use POSIX qw(setlocale LC_ALL); + +my $debug = 0; + +my $defaultcharset = $ENV{"DEFAULTCHARSET"} || "ISO-8859-1"; + +my $supportedlist = "/usr/share/i18n/SUPPORTED"; + +unless (defined $ARGV[0]) { + usage(); + exit 1; +} + +my $LANG = $ARGV[0]; + +my $loc = setlocale(LC_ALL, $LANG); +if ( ! $loc) { + print STDERR "locale '$LANG' not available\n"; + + my ($locale) = $LANG =~ m/^([^.@]+)/; + my ($charset) = $LANG =~ m/^[^.]+\.([^@]+)/; + my ($modifier) = $LANG =~ m/(@.+)$/; + + $modifier = "" unless defined $modifier; + + # Hm, if charset is missing, how to we pick the correct one to + # use? Fetching the value from /usr/share/i18n/SUPPORTED should + # work on Debian. + my $codeset = ""; + if (defined $charset) { + $codeset = '.' . $charset; + } else { + $charset = get_default_charset("$locale$modifier"); + } + + # print "L: $locale C: $charset M: $modifier\n"; + print "$locale$codeset$modifier $charset\n"; + + exit 1; +} else { + print STDERR "locale '$LANG' valid and available\n"; + exit 0; +} + +sub usage { + print "Usage: $0 \n" +} + +sub get_default_charset { + my ($locale) = @_; + my ($l, $c); + open(SUPPORTED, "< $supportedlist") || die "Unable to open $supportedlist"; + while () { + chomp; + ($l, $c) = split(/\s+/); + print "Checking '$l' '$c' != '$locale'\n" if $debug; + last if ($l eq $locale); + } + close(SUPPORTED); + + if ($l eq $locale) { + return $c; + } else { + return $defaultcharset; + } +} --- glibc-2.7.orig/debian/local/usr_sbin/update-locale +++ glibc-2.7/debian/local/usr_sbin/update-locale @@ -0,0 +1,126 @@ +#! /usr/bin/perl -w + +use strict; +use Getopt::Long; + +my $progname = "update-locale"; +my $locale_file = "/etc/default/locale"; + +my $help = 0; +my $reset = 0; +# Kept for compatibility reasons +my $remove = 0; +my $no_checks = 0; + +GetOptions( + 'reset' => \$reset, + 'remove' => \$remove, + 'locale-file=s' => \$locale_file, + 'no-checks' => \$no_checks, + 'h|help' => \$help, +); + +sub usage +{ + my $rc = shift; + print STDERR "Usage: $progname [OPTIONS] [LANG=locale] [LC_NUMERIC=locale] ... +Options: + --help display this message and exit + --reset ignore variables defined in the locale file + --locale-file=FILE file containing locale variables + (Default: /etc/default/locale) + --no-checks do not perform sanity checks on locale variables +"; + exit $rc; +} + +$help && usage(0); + +# Process command-line arguments +my %arg = (); +my $content = ''; +my $mode = 0644; +if (-r $locale_file) +{ + # Keep file mode + $mode = (stat($locale_file))[2] & 07777; + # Read current values + open(IN, "<", $locale_file) + or die "$progname: Unable to read $locale_file: $!\n"; + while () + { + $content .= $_; + next unless m/^(\w+)=(.*)/; + $arg{$1} = $2 unless $reset; + } + close(IN) + or die "$progname: Unable to close $locale_file: $!\n"; + $content =~ s/^(\s*\w+=)/#$1/mg; + $content .= "\n" unless $content =~ m/\n$/s; +} +else +{ + $content = "# File generated by $progname\n"; +} +for (@ARGV) +{ + if (m/(.*?)=(.*)/) + { + $arg{$1} = $2; + } + else + { + delete $arg{$_}; + } +} + +my $env = ''; +my ($key, $value); +while (($key, $value) = each %arg) +{ + $env .= " $key=$value"; + $content =~ s/^#\s*$key=.*/$key=$value/m or + $content .= "$key=$value\n"; +} + +# Sanity checks +if ($no_checks == 0) +{ + # Check that this locale does exist + my $charset = `LANG= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGES= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION= LC_ALL= $env locale charmap 2>&1`; + die "*** $progname: Error: invalid locale settings: $env\n" + if ($charset =~ m/Cannot set/); + # If LANGUAGE is set, its first value must be compatible with LC_MESSAGES + if (defined $arg{LANGUAGE}) + { + my $language = $arg{LANGUAGE}; + $language =~ s/["']//g; + $language =~ s/[.:_].*//; + my $msg = ''; + my $var = ''; + for (qw(LANG LC_MESSAGES LC_ALL)) + { + if (defined $arg{$_}) + { + $var = $_; + $msg = $arg{$_}; + } + } + $msg =~ s/["']//g; + die "*** $progname: Error: LANGUAGE ($arg{LANGUAGE}) is not compatible with $var ($msg)\n" + if ($msg !~ m/^$language/ && $var ne '' + && $msg ne 'C' && $msg ne 'POSIX' + && $language ne 'C' && $language ne 'POSIX'); + } +} + +# Write locale file +open(OUT, ">", $locale_file) + or die "$progname: Unable to write $locale_file: $!\n"; +print OUT $content; +close(OUT) + or die "$progname: Unable to close $locale_file: $!\n"; +chmod($mode, $locale_file) + or die "$progname: Unable to chmod $locale_file: $!\n"; + +1; --- glibc-2.7.orig/debian/changelog +++ glibc-2.7/debian/changelog @@ -0,0 +1,8566 @@ +glibc (2.7-10ubuntu7) hardy-security; urgency=low + + * SECURITY UPDATE: root escalation via LD_AUDIT DST expansion. + - debian/patches/any/dst-expansion-fix.diff: upstream fixes. + - CVE-2010-3847 + - debian/patches/any/disable-ld_audit.diff: turn off LD_AUDIT + for setuid binaries. + + -- Kees Cook Thu, 21 Oct 2010 17:10:58 -0700 + +glibc (2.7-10ubuntu6) hardy-security; urgency=low + + * SECURITY UPDATE: integer overflow in strfmon() might lead to arbitrary + code execution. + - debian/patches/any/git-strfmon-overflow.diff: backport from upstream. + - CVE-2008-1391 + * SECURITY UPDATE: newlines not escaped in /etc/mtab. + - debian/patches/any/git-mntent-newline-escape.diff: upstream fixes. + - CVE-2010-0296 + * SECURITY UPDATE: arbitrary code execution from ELF headers (LP: #542197). + - debian/patches/any/git-fix-dtag-cast.diff: upstream fixes. + - CVE-2010-0830 + * debian/patches/any/git-readdir-padding.diff: fix readdir padding when + processing getdents64() in a 32-bit execution environment (LP: #392501). + + -- Kees Cook Wed, 19 May 2010 16:59:18 -0700 + +glibc (2.7-10ubuntu5) hardy-proposed; urgency=low + + * stack-guard-quick-randomization.diff: use stack guard randomimzation + patch from Intrepid (along with Jaunty tests patch) to stop using static + sentinel (LP: #275493). + + -- Kees Cook Wed, 29 Jul 2009 23:45:51 -0700 + +glibc (2.7-10ubuntu4) hardy-proposed; urgency=low + + * glibc fixes for hardy. LP: #269299. + * Fix vscanf define in strict C99 or POSIX mode. LP: #234893. + * Merge changes from glibc-2.7-11, -12 and -13: + - Cherry-pick upstream fixes with respect to locale rwlocks, merge them into + patches/any/cvs-strerror_r.diff. Closes: #489906. + - patches/any/cvs-getaddrinfo.diff: new patch from CVS to correctly + initialize internal resolver structures in getaddrinfo(). Closes: + #489586. + - patches/any/cvs-iconv-braces.diff: new patch from upstream to fix various + iconv bugs. + - local/manpages/nscd.conf.5: update nscd.conf manpage. Closes: #482505. + + -- Matthias Klose Fri, 12 Sep 2008 09:17:19 +0200 + +glibc (2.7-10ubuntu3) hardy; urgency=low + + * Probably built on the good buildds last time; pessimize expected + test results on ia64, i386. + * debian/expected_test_summary: Fix typos in expected sparc results. + + -- Matthias Klose Sat, 05 Apr 2008 00:03:19 +0200 + +glibc (2.7-10ubuntu2) hardy; urgency=low + + * Adjust debian/expected_test_summary: + - Fix typo for i386 xen. + - crypt/sha512c fails on i386 (log-test-i486-linux-gnu-libc), but not on + the PPA build. + - Add current results for ia64, powerpc, sparc. + + -- Matthias Klose Fri, 04 Apr 2008 09:09:37 +0200 + +glibc (2.7-10ubuntu1) hardy; urgency=low + + * Merge remaining changes from 2.7-10 (r2869:2892). + * If RELEASE_UPGRADE_MODE is set to `desktop', make the glibc/restart-services, + glibc/restart-failed and glibc/upgrade questions of medium priority (and + restarting the services automatically). LP: #174002. + Works as well around the upgrade errors mentioned in LP #205079 in a KDE + environment, when the upgrade is done using the update-manager. + * debian/rules: Always use the package settings for *FLAGS, not the settings + from the environment. + * Fail the build if regressions are found running the testsuite compared to + expected results from debian/expected_test_summary. Take initial values + from a PPA build predating this upload. + * Merge from Debian trunk: + - local/manpages/ld.so.8: fix libraries search order. Closes: #473458. + - Update Finish debconf translation, by Esko Arajärvi. Closes: #473802. + - Add any/cvs-strerror_r.diff to make strerror_r actually thread safe. + Closes: #456531. + * debian/rules.d/build.mk: Call `sync' before building the tarball of + supported locales. Our buildds trigger http://lkml.org/lkml/2007/8/1/337 + on every build. + + -- Matthias Klose Thu, 03 Apr 2008 21:50:42 +0200 + +glibc (2.7-10) unstable; urgency=low + + * Update Chinese debconf translation, by LI Daobing. + * Update Dutch debconf translation, by Bart Cornelis. Closes: #468300. + * Update Polish debcon translation, by Emilian Nowak. + * Update Vietnamese debconf translation, by Clytie Siddall. Closes: #468453. + * Update Basque debconf translation, by Piarres Beobide. Closes: #468463. + * Update Romanian debconf translation, by Stan Ioan-Eugen. Closes: #468671. + * Update Czech debconf translation, by Miroslav Kure. Closes: #468910. + * Update Russian debconf translation, by Sergey Alyoshin. Closes: #469037. + * Update Korean debconf translation, by Sunjae Park. Closes: #469097. + * Update French debconf translation, by Christian Perrier. Closes: #469249. + * patches/localedata/locale-es_CR.diff: chane AM/PM format to "a.m./p.m." + from "A.M/P.M.". + * Remove uk_UA from patches/localedata/first_weekday.diff: merged upstream + in a different way. Closes: bug#469439. + * patches/any/cvs-rfc3484.diff: update from CVS to allow the definition of + IPv4 scopes in /etc/gai.conf. + * patches/all/cvs-gai_conf.diff: update gai.conf from CVS to also mention + Teredo tunnels and scopev4 defaults. + * sysdeps/mips.mk, sysdeps/mipsel.mk: define TIMEOUTFACTOR. + * patches/any/cvs-strtod.diff: new patch from CVS to fix strtod(). Closes: + #465769. + * Update Italian debconf translation, by Lica Monducci. Closes: #469985. + * control.in/main, sysdeps/*.mk, rules: build with gcc-4.3 by default, + except on alpha, arm, hppa, s390 and hurd-i386. + * rules, rules.d/build.mk: fix parallel build. + * control.in/main: build witch gcc-4.2 on i386 and amd64, as gcc-4.3 does + not emit cld instructions in the prologue of the functions anymore. + Closes: #469568. + * debian/rules.d/build.mk: disable testsuite on ARM machines running a + 2.6.21 to 2.6.24 kernel. + * Replace any/submitted-gcc-4.3.diff by any/cvs-gcc-4.3.diff. + * debhelper.in/libc.preinst, debhelper.in/libc.postinst: remove support for + upgrade from Potato, and misc fixes. + * control.in/main, rules.d/control.mk: remove @threads_arches@, as all + architectures now support threads. + * control.in/main, debhelper.in/glibc-source.install: build a glibc-source + package. + * sysdeps/mips.mk, sysdeps/mipsel.mk, control.in/main: enable n32 and 64 + flavours. Closes: #341884. + * Update Arabic debconf translation, by Ossama Khayat. Closes: #471472. + * rules.d/build.mk: reset LDFLAGS, as dpkg now defines it to a default + value which breaks the glibc. + * patches/mips/local-gcc-ice.diff: decrease optimisations on a few files + to workaround gcc ICE on mips/mipsel n32/64. + + [ Samuel Thibault ] + * patches/hurd-i386/cvs-blocked-exceptions.diff: new patch to dump + core when a blocked exception arises. + * patches/hurd-i386/cvs-df.diff: new patch to clear DF for signal + handlers (Closes: #470021). + * patches/hurd-i386/local-gcc-4.1-init-first.diff: update and actually + apply. + * patches/hurd-i386/submitted-mig-init.diff: new patch to fix uninitialized + local variables. + * patches/hurd-i386/local-pthread_stubs.diff: new patch to use libpthread + stubs from libpthread-stubs. Add libpthread-stubs0-dev dependency on + hurd-i386. + + -- Aurelien Jarno Thu, 27 Mar 2008 23:09:00 +0100 + +glibc (2.7-9ubuntu2) hardy; urgency=low + + * Clear out LDFLAGS when building; glibc isn't happy building with + -Wl,-Bsymbolic-functions. LP: #201673 + + -- Steve Langasek Thu, 13 Mar 2008 08:34:28 +0000 + +glibc (2.7-9ubuntu1) hardy; urgency=low + + * Merge with Debian (r2869); remaining changes: + - Packaging: + + External tzdata + + Use external locale information + + Addition of Niagara and Niagara2 optimised libraries + + GFDL Documentation added back in, build glibc-doc from this source. + + Transition from /usr/include/ppc64-linux-gnu to powerpc64-linux-gnu + + Use dpkg triggers for ldconfig + + Do not die if extra libc libraries or symlinks found + + Do not do a test run of nscd when starting + + Only apply patches we actually use in Ubuntu + + Use /lib and /usr/lib for amd64 + + amd64 biarch is i686, not i486. + + Non-optimised i386 glibc is Xen-friendly. + + Support sparcv9v, v9v2, 64b, 64v, 64v2 + + Add support for lpia. + - Patches: + + sparc/submitted-v9v2 + + hppa/hppalll + + Applied any/local-ipv6-lookup. + + Not applied any/local-sysctl. + * debian/sysdeps/*.mk: Still build main flavours with -O3 (using gcc-4.2). + * Use .conf for files in /etc/ld.so.conf.d. LP: #70315 + + * patches/any/local-ipv6-lookup.diff: Update (Tollef van Heen). + + [changes from Debian svn after -9] + * Update Chinese debconf translation, by LI Daobing. + * Update Dutch debconf translation, by Bart Cornelis. Closes: #468300. + * Update Polish debcon translation, by Emilian Nowak. + * Update Vietnamese debconf translation, by Clytie Siddall. Closes: #468453. + * Update Basque debconf translation, by Piarres Beobide. Closes: #468463. + * Update Romanian debconf translation, by Stan Ioan-Eugen. Closes: #468671. + * Update Czech debconf translation, by Miroslav Kure. Closes: #468910. + * Update Russian debconf translation, by Sergey Alyoshin. Closes: #469037. + * Update Korean debconf translation, by Sunjae Park. Closes: #469097. + * Update French debconf translation, by Christian Perrier. Closes: #469249. + * patches/localedata/locale-es_CR.diff: chane AM/PM format to "a.m./p.m." + from "A.M/P.M.". + * Remove uk_UA from patches/localedata/first_weekday.diff: merged upstream + in a different way. Closes: bug#469439. + * patches/any/cvs-rfc3484.diff: update from CVS to allow the definition of + IPv4 scopes in /etc/gai.conf. + * patches/all/cvs-gai_conf.diff: update gai.conf from CVS to also mention + Teredo tunnels and scopev4 defaults. + * sysdeps/mips.mk, sysdeps/mipsel.mk: define TIMEOUTFACTOR. + * patches/any/cvs-strtod.diff: new patch from CVS to fix strtod(). Closes: + #465769. + * Update Italian debconf translation, by Lica Monducci. Closes: #469985. + * control.in/main, sysdeps/*.mk, rules: build with gcc-4.3 by default, + except on alpha, arm, armel, hppa, s390 and hurd-i386. + * rules, rules.d/build.mk: fix parallel build. + * control.in/main: build-depends on gcc-4.3 (>= 4.3.0-2) to make sure a cld + instruction is emitted in the prologue of functions using stringops. + Closes: #469568. + * debian/rules.d/build.mk: disable testsuite on ARM machines running a + 2.6.21 to 2.6.24 kernel. + + -- Matthias Klose Wed, 12 Mar 2008 22:08:00 +0100 + +glibc (2.7-9) unstable; urgency=low + + * patches/any/local-ldso-disable-hwcap.diff: revert previous changes + as they break etch -> lenny upgrades. Closes: #465753. + * kfreebsd/local-sysdeps.diff: update to revision 2137 (from glibc-bsd). + * any/submitted-link-local_resolver.diff: kernel 2.6.24 is out, don't wait + indefinitely for upstream. This patch from Pierre Ynard adds support for + link-local addresses in /etc/resolv.conf. + * Factorize NSS detection code: + - debhelper.in/libc.preinst, debhelper.in/libc.postinst: move NSS code + to... + - script.in/nsscheck.sh: ... this file. + - rules.d/debhelper.mk: Replace NSS_CHECK with code from + script.in/nsscheck.sh. + * debhelper.in/libc.preinst, debhelper.in/libc.templates: debconfize preinst + script. + * patches/localedata/locale-es_CR.diff: new patch to default to am/pm format + for es_CR locale. Closes: #466482. + * control.in/main, sysdeps/amd64.mk, sysdeps/i386.mk, + sysdeps/kfreebsd-amd64.mk, sysdeps/kfreebsd-i386.mk, sysdeps/sparc.mk : use + gcc-4.3 on amd64, i386, kfreebsd-i386, kfreebsd-amd64 and sparc. + * sysdeps/i386.mk, sysdeps/kfreebsd-i386.mk: use default gcc optimizations + on i386 and kfreebsd-i386 (-march=i486 -mtune=generic). + * debian/local/manpages/ldconfig.8: describe --ignore-aux-cache option. + Closes: #467509. + * Update Lithuanian debconf translation, by Gintautas Miliauskas. + * Update Catalan debconf translation, by Jordi Mallach. + * Update Spanish debconf translation, by Carlos Valdivia Yagüe. + * Update German debconf translation, by Helge Kreutzman. Closes: #468072. + * Update Galician debconf translation, by Jacobo Tarrio. Closes: #468080. + * Update Slovak debconf translation, by Ivan Masár. Closes: #468082. + * Update Portuguese debconf translation, by Ricardo Silva. Closes: #468091. + * update Japanese debconf translation, by Kenshi Muto. Closes: #468099. + + -- Aurelien Jarno Wed, 27 Feb 2008 19:14:37 +0100 + +glibc (2.7-8) unstable; urgency=low + + * any/cvs/rfc3484.diff: patch from CVS to fix recognition of interface + family. Closes: #465583. + + -- Aurelien Jarno Wed, 13 Feb 2008 17:12:18 +0100 + +glibc (2.7-7) unstable; urgency=low + + [ Arthur Loiret ] + * patches/sh4/cvs-nptl-private-futexes.diff: new patch from CVS to fix + FTBFS on sh4. + + [ Samuel Thibault ] + * patches/hurd-i386/cvs-epfnosupport.diff: new patch to fix socket() + error for IPV6. + + [ Aurelien Jarno ] + * patches/any/local-ldso-disable-hwcap.diff: enable tls/ directory even + when hardware capabilities are disabled. This workarounds a bug in + nvidia-glx. Closes: #453480. + * patches/mips/local-r10k.diff: new patch from Florian Lohoff to + workaround LL/SC bug on R10k. Closes: #462112. + * patches/mips/submitted-mipsn32.diff: new patch to fix truncate64() + on MIPS n32. + * kfreebsd/local-sysdeps.diff: update to revision 2129 (from glibc-bsd). + * patches/any/cvs-epoll_h.diff: new patch from CVS to define EPOLLRDHUP + in /usr/include/sys/epoll.h. Closes: #463342. + * patches/any/submitted-gcc-4.3.diff: pass -isystem option for GCC's + include-fixed/ directory. Fixes build with gcc-4.3. + * debian/control.in/main: bump to Standards-Version 3.7.3. + * debian/sysdeps/*.mk: build main flavours with -O2 instead of -O3 (risks to + trigger a bug in the compiler are higher with -O3). Remove -g from cflags, + as it is automatically added by the glibc scripts. + * debhelper.in/nscd.init: depends on $remote_fs instead of $local_fs. + Closes: #464022. + * patches/any/submitted-ieee754_h.diff: use __BIG_ENDIAN instead of + BIG_ENDIAN. Closes: #464594. + * local/manpages/ld.so.8: Add missing options to manpage. Closes: + #464395. + * rules.d/build.mk: build the locales in the build target instead of the + install one to workaround a bug in fakeroot. Closes: #464924. + * patches/alpha/local-dl-procinfo.diff: fix _dl_string_platform() to accept + NULL pointers, which happens on statically linked binaries. Closes: + bug#456260. + * local/manpages/gai.conf.5: new manpage. + * any/submitted-rfc3484-sortv4.diff: Drop. Replaced by ... + * ... any/cvs/rfc3484.diff: patch from upstream to fix various RFC3484 + issues: + - Fix source IPv4 source address length computation. Closes: bug#456779. + - Only apply rule 9 for IPv4 if source and destination addresses are on + the same subnet. Closes: bug#438179. + + -- Aurelien Jarno Tue, 12 Feb 2008 22:29:56 +0100 + +glibc (2.7-6) unstable; urgency=low + + [ Aurelien Jarno ] + * patches/localedata/locale-ks_IN.diff: new locale contributed by Rakesh + Pandit. Closes: #457351. + * patches/series: enable patches/any/cvs-vfscanf.diff. Closes: #453408. + * Support dpkg-buildpackage -j, but only debian/rules is actually run in + parallel. + * patches/any/cvs-iconv-iso2022jp-loop-bug.diff: patch from CVS to fix + iconv hang when converting to ISO-2022-JP. Thanks to Bryan Donlan for + the patch. Closes: #458579. + * kfreebsd/local-sysdeps.diff: update to revision 2094 (from glibc-bsd). + * patches/amd64/cvs-vdso_clock_gettime.diff: new patch from CVS to fix + static linking on amd64. + * patches/any/local-linuxthreads-fd.diff: new patch to make sure + linuxthreads doesn't use stdin, stdout or stderr for its internal + use. + * debhelper.in/libc.preinst: also check for libc6-xen in non-dpkg-owned + files test. Closes: #459523. + * patches/any/submitted-rfc3484-labels.diff: remove, this patch is actually + broken, and the observed behaviour conforms with the RFC. + * patches/any/submitted-fileops-and-signals.diff: disabled as it breaks too + much programs. Closes: #459643. + * patches/localedata/locale-pt_PT.diff: new patch from Flávio Martins to + fix mon_decimal_point for pt_PT. Closes: #459217. + * debian/debhelper.in/locales.postinst: don't update /etc/default/locale + if it already exists and DEBCONF_RECONFIGURE is not empty. Closes: + #458914. + * debian/sysdeps/depflags.pl: bump conflict against tzdata to (<< 2007k-1). + + [ Clint Adams ] + * debhelper.in/nscd.init: use lsb output functions. Closes: #457661. + * patches/any/cvs-sunrpc_rpc_thread.diff: patch by André Cruz to fix + sunrpc memory leak. closes: #460226. + + [ Samuel Thibault ] + * patches/hurd-i386/submitted-extern_inline.diff: new patch to fix extern + inline declarations for c++. + + -- Aurelien Jarno Sat, 12 Jan 2008 15:33:10 +0100 + +glibc (2.7-5ubuntu2) hardy; urgency=low + + * Really stop setting MAKEINFO to :, so that the info documentation is + built. + + -- Colin Watson Tue, 01 Jan 2008 12:10:28 +0000 + +glibc (2.7-5ubuntu1) hardy; urgency=low + + * Resynchronise with Debian. Remaining changes: + - Packaging: + + External tzdata + + Use external locale information + + Addition of Niagara and Niagara2 optimised libraries + + GFDL Documentation added back in. + + Transition from /usr/include/ppc64-linux-gnu to powerpc64-linux-gnu + + Use dpkg triggers for ldconfig + + Do not die if extra libc libraries or symlinks found + + Do not do a test run of nscd when starting + + Only apply patches we actually use in Ubuntu + + Use /lib and /usr/lib for amd64 + + amd64 biarch is i686, not i486. + + Non-optimised i386 glibc is Xen-friendly. + + Support sparcv9v, v9v2, 64b, 64v, 64v2 + + Add support for lpia. + - Patches: + + any/local-ipv6-sanity + + i386/local-clone + + amd64/local-clone + + sparc/submitted-v9v2 + + hppa/hppalll + * Debian any/cvs-vfscanf patch fixes LP: #178045. Actually add it to + debian/patches/series (forgotten in Debian). + * Stop setting MAKEINFO to :, which prevented the info documentation being + built. See also 2.5-0ubuntu3. + * any/submitted-rfc3484-sortv4: Return to disabling RFC3484 s6 rule 9 by + default. As requested by Ubuntu sysadmins, we want this regardless of + the Debian technical committee's decision. + + -- Colin Watson Mon, 24 Dec 2007 09:55:32 +0000 + +glibc (2.7-5) unstable; urgency=low + + [ Aurelien Jarno ] + * Moved merged parts of patches/any/submitted-sched_h.diff into + patches/any/cvs-sched_h.diff. + * patches/any/cvs-ether_line.diff: new patch from upstream to fix + ether_line(). Closes: bug#453899. + * patches/any/cvs-vfscanf.diff: new patch from upstream to fix + crash when %as is used with sscanf(). Closes: bug#453408. + * debian/rules: also set CXX when cross-compiling. + * patches/any/submitted-malloc_h.diff: removed, replaced by + patches/any/cvs-wchar_h.diff. + * debian/sysdeps/depflags.pl: conflict against tzdata (<< 2007j-2) as + etch now have version 2007j-1etch1. Closes: bug#455783. + * debian/sysdeps/depflags.pl: suggests libc6-i686 on i386 architecture. + Closes: bug#455603. + * any/submitted-rfc3484-labels.diff: new patch to fix RFC 3484 default + label ordering. Closes: bug#456779. + * patches/alpha/local-dl-procinfo.diff: add missing part. Closes: + bug#456260. + + [ Petr Salinger] + * kfreebsd/local-sysdeps.diff: update to revision 2082 (from glibc-bsd). + * any/cvs-fchmodat.diff: properly declare as stub - needed by GNU/kFreeBSD. + + [ Samuel Thibault] + * patches/hurd-i386/submitted-ioctl-unsigned-size_t.diff: update to also + handle unsigned char/int/short/long and ssize_t. + + -- Aurelien Jarno Wed, 19 Dec 2007 01:22:06 +0100 + +glibc (2.7-4ubuntu1) hardy; urgency=low + + * Merge with Debian; remaining changes (see 2.7-1ubuntu1) + + -- Matthias Klose Mon, 10 Dec 2007 10:34:38 +0100 + +glibc (2.7-4) unstable; urgency=low + + [ Aurelien Jarno ] + * patches/localedata/locale-de_LI.diff: fix locale. Closes: bug#453860. + * debian/debhelper.in/locales.NEWS: fix location of the README file. + Closes: bug#453515. + * debian/debhelper.in/locales.README: rename into locales.README.Debian. + * debian/debhelper/in/locales.NEWS: fix a typo. Closes: bug#453613. + * Update any/submitted-sched_h.diff: allow compilation of with + -pedantic. Closes: bug#453687. + * Fix a typo in debian/sysdeps/alpha.mk. Closes: bug#452890. + * Disable amd64/local-x86_64_bits_sigcontext.diff. Closes: #454598. + * debhelper.in/libc.preinst: check for non-dpkg owned versions of + libc6-i686 before upgrade. Closes: #454557. + * Load debconf frontend after the optimized libraries have been + re-enabled. Closes: #453480. + + -- Aurelien Jarno Fri, 07 Dec 2007 00:49:02 +0100 + +glibc (2.7-3ubuntu1) hardy; urgency=low + + [ Matthias Klose ] + * Merge with Debian; remaining changes (see 2.7-1ubuntu1) + * debian/rules.d/control.mk: Re-add support for lpia. + * debian/sysdeps/amd64.mk: Restore i386_includedir. + + [ Jeff Bailey ] + * debian/patches/hppa/hppalll.diff: Fix build failure on hppa. + + -- Matthias Klose Fri, 07 Dec 2007 23:21:12 +0100 + +glibc (2.7-3) unstable; urgency=low + + [ Aurelien Jarno ] + * Remove cs_CZ-first_weekday.diff: merged upstream in a different way. + Closes: bug#344470. + * Remove da_DK-first_weekday.diff: likewise. + * Remove de_DE-first_weekday.diff: likewise. + * Remove en_GB-first_weekday.diff: likewise. + * Remove et_EE-first_weekday.diff: likewise. + * Remove en_US-first_weekday.diff: likewise. + * Remove fr_FR-first_weekday.diff: likewise. + * Remove hu_HU-first_weekday.diff: likewise. + * Remove nb_NO-first_weekday.diff: likewise. + * Remove nn_NO-first_weekday.diff: likewise. + * Remove pl_PL-first_weekday.diff: likewise. + * Remove sk_SK-first_weekday.diff: likewise. + * amd64, i386/local-clone.diff: restore patch to fix gij running out of + memory, as it has been lost upstream. + * debian/sysdeps/alpha.mk: fix alphaev67_rltddir. Closes: #452890. + * patches/localedata/locale-de_LI.diff: new locale contributed by Giacomo + Catenazzi. Closes: #453041. + * debian/debhelper.in/locales-all.postinst: honor TMPDIR. Closes: #453326. + * patches/any/submitted-malloc_h.diff: defines __need_ptrdiff_t, + __need_size_t and __need_NULL in malloc.h. Closes: #453264. + * support user defined locales in /usr/local/share/i18n. Closes: #453131. + + -- Aurelien Jarno Thu, 29 Nov 2007 18:01:03 +0100 + +glibc (2.7-2) unstable; urgency=low + + [ Aurelien Jarno ] + * sysdeps/alpha.mk: define alphaev67_MIN_KERNEL_SUPPORTED to 2.6.9. + Closes: #452890. + * alpha/submitted-fdatasync.diff: new patch to fix fdatasync() on alpha. + Closes: #452081. + * debian/script.in/nohwcap.sh: add libc6-alphaev67 to the list of optimized + packages. + * any/cvs-tzfile.diff: new patch from CVS to fix reading version 0 timezone + data files. Closes: #451892. + * debhelper.in/locales.config, debhelper.in/locales.postinst, + rules.d/debhelper.mk: rework the maintainer scripts of locales to handle + locales addition or removal. + * debhelper.in/locales.config: convert no_NO into nb_NO while upgrading. + Closes: #452788. + * debhelper.in/locales-all.NEWS, debhlper/locales-all.NEWS: add a note + about no_NO locale. + + -- Aurelien Jarno Mon, 26 Nov 2007 19:03:17 +0100 + +glibc (2.7-1ubuntu1) UNRELEASED; urgency=low + + * Merge changes from Debian. + Remaining changes: + * Packaging: + * External tzdata + * Use external locale information + * Addition of Niagara and Niagara2 optimised libraries + * GFDL Documentation added back in. + * Transition from /usr/include/ppc64-linux-gnu to powerpc64-linux-gnu + * Use dpkg triggers for ldconfig + * Do not die if extra libc libraries or symlinks found + * Do not do a test run of nscd when starting + * Only apply patches we actually use in Ubuntu + * Use /lib and /usr/lib for amd64 + * amd64 biarch is i686, not i486. + * Non-optimised i386 glibc is Xen-friendly. + * Support sparcv9v, v9v2, 64b, 64v, 64v2 + * Patches: + * any/local-ipv6-sanity + * i386/local-clone + * amd64/local-clone + * sparc/submitted-v9v2 + + -- Jeff Bailey Sun, 25 Nov 2007 17:44:13 -0800 + +glibc (2.7-1) unstable; urgency=low + + [ Clint Adams ] + * New upstream release with linuxthreads snapshot. + - Fixes an ABBA deadlock in ld.so. Closes: #443460. + - Render dgettext" thread safe. Closes: #443660. + - Fixes CVE-2007-4840 (multiple errors in iconv + function). Closes: #442250. + - Fixes strtod("-0", 0). Closes: #448723. + - Remove localedata/locale-de_CH.diff (merged). + - Update locale/fix-LC_COLLATE-rules.diff. + - Update locale/LC_COLLATE-keywords-ordering.diff. + - Update locale/fix-C-first_weekday.diff. + - Update locale/preprocessor-collate.diff. + - Update localedata/locales-fr.diff. + - Remove localedata/locale-sa_IN.diff (merged). + - Remove localedata/locale-wo_SN.diff (merged). + - Update localedata/tailor-iso14651_t1.diff. + - Add localedata/tailor-iso14651_t1-common.diff. + - Remove localedata/fix-unknown-symbols.diff (merged). + - Update localedata/first_weekday.diff. + - Add localedata/cs_CZ-first_weekday.diff. + - Add localedata/da_DK-first_weekday.diff. + - Add localedata/pl_PL-first_weekday.diff. + - Add localedata/de_DE-first_weekday.diff. + - Add localedata/en_GB-first_weekday.diff. + - Add localedata/en_US-first_weekday.diff. + - Add localedata/et_EE-first_weekday.diff. + - Add localedata/fr_BE-first_weekday.diff. + - Add localedata/fr_CA-first_weekday.diff. + - Add localedata/fr_CH-first_weekday.diff. + - Add localedata/fr_FR-first_weekday.diff. + - Add localedata/fr_LU-first_weekday.diff. + - Add localedata/hu_HU-first_weekday.diff. + - Add localedata/nb_NO-first_weekday.diff. + - Add localedata/nn_NO-first_weekday.diff. + - Add localedata/sk_SK-first_weekday.diff. + - Add localedata/cy_GB-first_weekday.diff. + - Update localedata/sort-UTF8-first.diff. + - Remove localedata/submitted-as_IN.diff (merged). + - Remove hppa/submitted-multiple-threads.diff (merged). + - Remove hppa/submitted-ustat.diff (merged). + - Remove hurd-i386/cvs-sigsuspend-nocancel.diff (merged). + - Remove hurd-i386/cvs-lock-intern.diff (merged). + - Remove sparc/local-undefined-registers.diff (obsolete). + - Remove all/local-pt_BR.diff (merged). + - Remove any/cvs-ld_library_path.diff (merged). + - Remove any/cvs-initfini.diff (merged). + - Remove any/cvs-posix-glob.diff (merged). + - Update any/local-bashisms.diff. + - Remove any/local-forward-backward-collation.diff (merged). + - Remove any/local-version-sanity.diff (merged). + - Remove any/submitted-strtok.diff (merged). + - Remove any/submitted-regex-collate.diff (merged). + - Remove localedata/locale-no_NO.diff (obsolete). + - Update localedata/supported.diff. + * Bump shlib version to 2.7-1. + * Add localedata/cvs-locale-ig_NG.diff BZ#5224, missing collation symbols + for ig_NG. + * Add localedata/cvs-locale-lo_LA.diff BZ#5237, missing collation symbols + for lo_LA. + * Add localedata/cvs-locale-ug_CN.diff BZ#5238, missing collation symbols + for ug_CN. + + [ Aurelien Jarno ] + * any/submitted-longdouble.diff: update. + * Improve any/submitted-rfc3484-sortv4.diff. + * Update hurd-i386/submitted-trivial.diff. + * any/local-strfry.diff: new patch to fix strfry(), as Ulrich Drepper + has still not managed to commit a correct version. + * Remove hppa/submitted-threaddb.diff (merged). + * Update hppa/submitted-nptl-carlos.diff. + * Update hurd-i386/submitted-libc_once.diff. + * Remove hurd-i386/cvs-ioctl-delay.diff (merged). + * Update hurd-i386/local-tls-support.diff. + * Add hurd-i386/cvs-kernel-features.diff: provide almost empty + kernel-features.h for files that include it. + * Add arm/local-args6.diff: provide DOCARGS_6 and UNDOCARGS_5 for + arm old-abi. + * Add arm/local-lowlevellock.diff: new patch to fix build on arm. + * debian/rules, debian/rules.d/build.mk: allow per architecture + TIMEOUTFACTOR. + * sysdeps/arm.mk, sysdeps/armel.mk, sysdeps/hppa.mk, sysdeps/s390.mk, + sysdeps/sh4.mk: define TIMEOUTFACTOR. + * locales-depver: tighten locales dependencies. + * any/local-disable-test-tgmath2.diff: new patch to disable test-tgmath2, + which take too much resources during compilation. + * Add hurd-i386/submitted-strtoul.diff: new patch to use + __strtoul_internal() instead of strtoul() in internal functions. + * Add hurd-i386/submitted-ptr-mangle.diff: new patch to define PTR_MANGLE + and PTR_DEMANGLE. + * Update Galician debconf translation, by Jacobo Tarrio. Closes: #447928. + * Update Dutch debconf translation, by Bart Cornelis. Closes: #448928. + * Add sh4/local-fpscr_values.diff and any/local-allocalim-header.diff + from Arthur Loiret. Closes: #448248. + * Fix encoding of Japanese translation. Closes: #447221. + * Add any/submitted-sched_h.diff: new patch to define `__CPU_ALLOC_SIZE. + * Add mips/local-setjmp.diff: new patch to fix g++ tests on mips/mipsel. + * Add any/local-fhs-nscd.diff: move nscd directory to /var/cache/nscd from + /var/db/nscd. Closes: #449198. + * debhelper.in/nscd.postrm: remove /var/cache/nscd on purge. Closes: + #449193. + * script.in/kernelcheck.sh, sysdeps/alpha.mk: bump minimum kernel version to + 2.6.9 for alpha. + * script.in/kernelcheck.sh, sysdeps/sh4.mk: bump minimum kernel version to + 2.6.11 for sh4. + * debian/patches/arm/local-eabi-wchar.diff: new patch from Riku Voipio to + fiw WCHAR_MIN and WCHAR_MAX definitions on armel. Closes: #444580. + * debian/po/zh_CN.po: update from LI Daobing. Closes: #447866. + * debhelper.in/locales-all.postinst: trap exit signal and remove temporary + directory. Closes: #447328. + * debhelper.in/libc.NEWS: mention that the tzconfig script has been replaced + by the maintainer scripts of tzdata. Closes: bug#448796. + * patches/all/local-alias-et_EE.diff: switch estonian locales alias to + ISO-8859-15. + * patches/alpha/submitted-fpu-round.diff: restore the old version of + ceil/floor/rint functions. Closes: #442568. + * patches/alpha/local-dl-procinfo.diff: new patch to add platform + capabilities support on alpha. + * Add an ev67 flavour on alpha: Closes: #229251 + - control.in/opt: add libc6-alphaev67 packages. + - sysdeps/alpha.mk: add a new pass for ev67 flavour. + * debian/local/manpages/iconv.1: document //translit and //ignore + options. Closes: #451304. + * debian/local/manpages/getent.1: document exit codes. Closes: + #445631. + * debian/local/manpages/ld.so.8: document $ORIGIN, $PLATFORM and $LIB + features. Closes: #444145. + * local/manpages/ldconfig.8: remove --force option from the manpage + to be consistent with the binary. Closes: #451958. + * kfreebsd/local-sysdeps.diff: update to revision 2046 (from glibc-bsd). + + [ Petr Salinger] + * any/local-stdio-lock.diff: make _IO_*_lock linuxthreads compliant. + * any/local-o_cloexec.diff: don't assume O_CLOEXEC is always defined. + * any/local-linuxthreads-signals.diff: always use non-RT signal handler + on GNU/kFreeBSD. + + [ Pierre Habouzit ] + * Remove any/local-iconv-fix-trampoline.diff (obsolete). + * Remove any/submitted-strfry.diff (merged). + * Update any/submitted-rfc3484-sortv4.diff. + * Update localedata/*first_weekday.diff. + * Remove localedata/fix-am_ET.diff (obsolete). + * Add locale/preprocessor-collate-uli-sucks.diff to revert Ulrich's + preprocessor that isn't enough for Debian. + * Update patches/locale/preprocessor-collate.diff. + * Add alpha/submitted-PTR_MANGLE.diff (Closes: #448508). + + [ Samuel Thibault ] + * hurd-i386/submitted-ptr-mangle.diff: Define PTR_MANGLE for assembly. + * hurd-i386/cvs-O_CLOEXEC_fix.diff: New patch to fix conflicting O_CLOEXEC + value. + + -- Aurelien Jarno Fri, 23 Nov 2007 10:46:24 +0100 + +glibc (2.6.1-6ubuntu2) hardy; urgency=low + + * Reapply any/local-ipv6-sanity.diff, lost when merging 2.6. LP: #156720. + + -- Matthias Klose Wed, 24 Oct 2007 18:15:43 +0200 + +glibc (2.6.1-6ubuntu1) hardy; urgency=low + + [Fabio M. Di Nitto] + * debian/patches/sparc/submitted-v9v2.diff: Add Niagara 2 optimized + memcpy support. + Code, patch and test done by David S. Miller. + * debian/patches/series: update. + * debian/sysdeps/sparc.mk: Add v9v2 32 and 64 bit targets. + * debian/control.in/opt: Add sparc64v2 and sparcv9v2 packages. + * debian/control: update. + * debian/script.in/nohwcap.sh: + memcpy support. + Code, patch and test done by David S. Miller. + * debian/patches/series: update. + * debian/sysdeps/sparc.mk: Add v9v2 32 and 64 bit targets. + * debian/control.in/opt: Add sparc64v2 and sparcv9v2 packages. + * debian/control: update. + * debian/script.in/nohwcap.sh: + - fix list of sparc optimized libc6. + - add v9v2 optimized packages. + + [Matthias Klose] + * Merge with Debian; remaining changes: + - Upstream tarball including GFDL'd documentation. + - Don't apply patches for architectures not found in Ubuntu. + - Build optimized sparc packages. + - Support lpia. + - No support for linuxthreads. + + -- Matthias Klose Fri, 19 Oct 2007 15:25:11 +0200 + +glibc (2.6.1-6) unstable; urgency=low + + [ Aurelien Jarno ] + * Update Spanish debconf translation, by Carlos Valdivia Yagüe. + + [ Clint Adams ] + * debian/po/de.po: update from Helge Kreutzmann. closes: #442888. + * debian/po/cs.po: update from Miroslav Kure. closes: #442904. + * debian/po/it.po: update from Luca Monducci. closes: #443497. + * debian/po/ja.po: update from Kenshi Muto. closes: #446577. + * Add any/cvs-posix-glob.diff, fixing improper of treatment of \ + in glob(). closes: #445210 + + -- Clint Adams Sun, 14 Oct 2007 10:02:35 -0400 + +glibc (2.6.1-5) unstable; urgency=low + + [ Pierre Habouzit ] + * remove any/local-sysmacros.diff: sorry for bug #439859 but it makes gimp + (and presumably other software) FTBFS, it's too dispruptive. + Closes: #442427. + + [ Clint Adams ] + * amd64/local-x86_64_bits_sigcontext.diff: use a copy of the generic header + for x86_64. closes: #442418. + + -- Clint Adams Sun, 16 Sep 2007 14:42:17 -0400 + +glibc (2.6.1-4) unstable; urgency=low + + * Disable any/local-ipv6-lookup.diff as it is causing breakages. + Closes: bug#441857. + * any/local-sysmacros.diff: use __inline instead of inline for + compatibility with ANSI. Closes: #441959. + * patches/localedata/tailor-iso14651_t1.diff: correctly fix fi_FI + locale. Closes: bug#441026. + * debian/rules.d/debhelper.mk: fix regex. Closes: #441824. + * Update French debconf translation, by Christian Perrier. Closes: + #442101. + * any/submitted-regex-collate.diff: fix regex engine for multibyte + characters and C collation. Closes: #441355. + * debian/local/manpages/locale-gen.8: fix manpage. Closes: #442104. + + -- Aurelien Jarno Thu, 13 Sep 2007 17:05:17 +0200 + +glibc (2.6.1-3) unstable; urgency=low + + * sysdeps/amd64.mk: uses x86_64 headers also for the i486 flavour now + that they are compatible. + * sysdeps/i386.mk: uses x86_64 headers also for the main flavour. + * debian/local/etc_default/locale: remove. Closes: bug#441360. + * sysdeps/*.mk: don't provide include symlink for bi-arch, but only + an empty directory. + * debian/rules.d/debhelper.mk: modify nscd/DEBIAN/control during build + to workaround a dpkg-shlibdeps bug. Closes: bug#433723. + * debian/local/manpages/nscd.conf.5: document the persistent and shared + cache options. Closes: bug#338504. + * patches/all/local-alias-UTF-8.diff: encode locales.alias in UTF-8. + Closes: bug#404433. + * debhelper.in/locales.links, debhelper.in/locales.install: move + locales.alias into /etc and provide a symlink in + /usr/share/locale/locale.alias. + * patches/localedata/tailor-iso14651_t1.diff: fix fi_FI locale. Closes: + bug#441026. + * kfreebsd/local-sysdeps.diff: update to revision 1998 (from glibc-bsd). + * sysdeps/kfreebsd-amd64.mk: uses x86_64 headers also for the i486 flavour + now that they are compatible. + * any/local-sysmacros.diff: new patch to declare "major", "minor" and + "makedev" as inline function instead of macros. Closes: #439859. + * debhelper.in/libc.postinst, debhelper.in/libc.templates: prompt user + with debconf if it is available. Closes: #440964. + * debian/control.in/libc: suggests debconf | debconf-2.0. + * Update Brazilian Portuguese debconf translation, by Felipe Augusto van de + Wiel. + * Update Vietnamese debconf translation, by Clytie Siddall. + * Update Basque debconf translation, by Piarres Beobide. + * Update Swedish debconf translation, by Daniel Nylander. + * Update Slovak debconf translation, by Ivan Masár. + * Update Lithuanian debconf translation, by Gintautas Miliauskas. + * Update Russian debconf translation, by Sergey Alyoshin. + + -- Aurelien Jarno Tue, 11 Sep 2007 04:42:20 +0200 + +glibc (2.6.1-2) unstable; urgency=low + + [ Samuel Thibault ] + * Rename hurd-i386/submitted-lock-intern.diff into + hurd-i386/cvs-lock-intern.diff, hurd-i386/submitted-ECANCELED.diff + into hurd-i386/cvs-ECANCELED.diff and + hurd-i386/submitted-sigsuspend-nocancel.diff into + hurd-i386/cvs-sigsuspend-nocancel.diff as the patches have been accepted + upstream. + * hurd-i386/local-tls-support.diff: update to fix TLS leak in /hurd/exec + server. + * hurd-i386/cvs-ioctl-delay.diff: new patch to add standard *DLY ioctl macros. + * hurd-i386/submitted-IPV6_PKTINFO.diff: new patch to add standard + IPV6_PKTINFO macro. + + [ Aurelien Jarno ] + * debian/rules.d/build.mk: disable testsuite on ARM machines running a + 2.6.21 or 2.6.22 kernel. + * debian/debhelper.in/locales.{prerm,postinst}: look for supported.tar.lzma + instead of supported.tar.gz. + * debian/local/etc_default/devpts: remove. + * debian/local/etc_default/locale: new file. Closes: bug#437404. + * debhelper.in/locales.install: install it. + * debian/local/manpages/locale.1: fix a typo. Closes: bug#438114. + * kfreebsd/local-sysdeps.diff: update to revision 1995 (from glibc-bsd). + * any/submitted-rfc3484-sortv4.diff: new patch to allow bypassing RFC3484 + rule 9 for IPv4 adresses. Closes: bug#438179 + * debian/debhelper.in/libc.preinst: change version check for NSS services to + (<< 2.6-1). + * debian/debhelper.in/libc.preinst: add proftpd to the list of services to + restart. Closes: bug#435640. + * Bump shlibdeps version to 2.6.1-1 due to SPARC v9 transition. + * New Slovak debconf translation, by Ivan Masár. Closes: bug#438576. + * any/local-ipv6-lookup.diff: new patch to do IPv6 lookups only when an + IPv6 address is configured. Patch by Tollef Fog Heen and Andrew McMillan. + Closes: #435646. + + [ Pierre Habouzit ] + * Document new libc.conf in ld.so.conf.d that puts /usr/local/lib front. + + -- Aurelien Jarno Mon, 3 Sep 2007 18:15:37 +0200 + +glibc (2.6.1-1ubuntu9) gutsy; urgency=low + + * Rebuild using g++-4.2 (>= 4.2.1-5ubuntu4). + + -- Matthias Klose Mon, 01 Oct 2007 00:04:19 +0200 + +glibc (2.6.1-1ubuntu8) gutsy; urgency=low + + * hppa/local-private-futex-lamont.diff: fix hppa FTBFS. + + -- LaMont Jones Thu, 27 Sep 2007 18:51:24 +0000 + +glibc (2.6.1-1ubuntu7) gutsy; urgency=low + + * any/submitted-rfc3484-sortv4.diff: new patch to allow bypassing RFC3484 + rule 9 for IPv4 adresses. Closes: bug#438179. + [ by Aurelien Jarno; imported from glibc 2.6.1-2 into Ubuntu by iwj ] + * any/submitted-rfc3484-sortv4.diff: disable RFC3484 s6 rule 9 by + default as requested by Ubuntu sysadmins and in anticipation of + that change in Debian (which looks likely). + + -- Ian Jackson Thu, 20 Sep 2007 14:49:50 +0100 + +glibc (2.6.1-1ubuntu6) gutsy; urgency=low + + * Do not print "ldconfig: wrapper deferring update (trigger activated)" + message (unless LDCONFIG_TRIGGER_DEBUG is set). + + -- Ian Jackson Thu, 20 Sep 2007 14:20:30 +0100 + +glibc (2.6.1-1ubuntu5) gutsy; urgency=low + + * Do not install the ppu symlinks in the powerpc packages. + + -- Matthias Klose Wed, 19 Sep 2007 00:27:46 +0200 + +glibc (2.6.1-1ubuntu4) gutsy; urgency=low + + * sysdeps/amd64.mk: uses x86_64 headers also for the i486 flavour now + that they are compatible. don't provide include symlink for bi-arch, + but only an empty directory. + + -- Matthias Klose Sun, 09 Sep 2007 21:09:21 +0200 + +glibc (2.6.1-1ubuntu3) gutsy; urgency=low + + * Actually exec ldconfig.real. (LP #137129.) + + -- Ian Jackson Mon, 03 Sep 2007 20:47:11 +0100 + +glibc (2.6.1-1ubuntu2) gutsy; urgency=low + + * Use dpkg-trigger to avoid multiple calls to ldconfig. + + -- Ian Jackson Mon, 03 Sep 2007 14:48:39 +0100 + +glibc (2.6.1-1ubuntu1) gutsy; urgency=low + + * Merge with Debian (outstanding changes for the final 2.6.1-1 package). + Remaining changes: + - Upstream tarball including GFDL'd documentation. + - Don't apply patches for architectures not found in Ubuntu. + - Build optimized sparc packages. + - Support lpia. + - No support for linuxthreads. + + * debian/patches/sparc/sparc-sparcv9.diff: sparc-sparcv9 directory fix + (David Miller). + + -- Matthias Klose Tue, 28 Aug 2007 13:04:00 +0200 + +glibc (2.6.1-1) unstable; urgency=low + + * New upstream version: + - Workaround bug in java's unwinder. Closes: #434484. + + [ Aurelien Jarno ] + * debian/copyright: update. + * Remove any/cvs-glibc-2_6-branch.diff (merged upstream). + * Remove any/cvs-printf_fp.c.diff (merged upstream). + * Remove sparc/submitted-gscope_flag.diff (merged upstream). + * Remove arm/cvs-gscope_flag.diff (merged upstream). + * Remove hppa/submitted-gscope_flag.diff (merged upstream). + * Remove mips/cvs-gscope_flag.diff (merged upstream). + * any/local-bindresvport_blacklist.diff: patch from openSUSE to + add support for /etc/bindresvport.blacklist. + * debian/local/etc/bindresvport.blacklist: new default configuration + file. + * debian/debhelper.in/libc.install: install it! + * debian/rules.d/debhelper.mk: fix arguments order when calling find. + * kfreebsd/local-sysdeps.diff: update to revision 1992 (from glibc-bsd). + * any/local-linuxthreads-gscope.diff: update for kfreebsd futexes. + * i386/local-linuxthreads-gscope.diff: update for kfreebsd futexes. + * amd64/local-linuxthreads-gscope.diff update for kfreebsd futexes. + + [ Samuel Thibault ] + * hurd-i386/local-gscope.diff: resync, mostly merged upstream. + + -- Aurelien Jarno Tue, 07 Aug 2007 13:34:26 +0200 + +glibc (2.6.1-0ubuntu1) gutsy; urgency=low + + * New upstream version 2.6.1, including glibc-ports-2.6.1. + - Remove applied patches: patches/any/cvs-ports-glibc-2_6-branch.diff, + patches/arm/cvs-gscope_flag.diff, patches/mips/cvs-gscope_flag.diff, + patches/hppa/submitted-gscope_flag.diff. + * debian/wrapper/objcopy: Revert the workaround. + + -- Matthias Klose Mon, 06 Aug 2007 22:38:54 +0200 + +glibc (2.6.1~pre-0ubuntu1) gutsy; urgency=low + + * New upstream version 2.6.1, glibc-ports is still version 2.6. + * Remove patches applied upstream. + * Merge from the Debian repository. + * debian/wrapper/objcopy: Remove -R .debug_aranges, fixing broken + debug symbols. + + -- Matthias Klose Fri, 03 Aug 2007 12:22:19 +0200 + +glibc (2.6-5ubuntu1) gutsy; urgency=low + + * Merge with Debian. + - cvs-printf_fp.c.diff: new patch to print the wrong number of + digits with %#g. LP: #128355. + + -- Matthias Klose Sun, 29 Jul 2007 20:39:57 +0200 + +glibc (2.6-5) unstable; urgency=low + + [ Aurelien Jarno ] + * mips/cvs-gscope_flag.diff: new patch to fix build on mips/mipsel. + * arm/cvs-gscope_flag.diff: new patch to fix build on arm/armel. + * any/cvs-initfini.diff: new patch from upstream to fix crti.o on + ppc64. Closes: #434626. + * debian/sysdeps/powerpc.mk: build libc6-ppc64 with gcc-4.2. + * debian/sysdeps/alpha.mk: build with gcc-4.2. + * debian/control: Remove build-depend on gcc-4.1 on powerpc and alpha. + * sparc/submitted-gscope_flag.diff: update from upstream. + * hppa/submitted-gscope_flag.diff : new patch to fix build on hppa + with NPTL. + * any/local-linuxthreads-gscope.diff: new patch to add gscope support + to linuxthreads. + * hppa/local-linuxthreads-gscope.diff: new patch to fix build on hppa + with linuxthreads. Closes: #434799. + * cvs-printf_fp.c.diff: new patch to print the correct number of digits + with %#g. + * amd64/local-linuxthreads-gscope.diff: new patch to fix build on *amd64 + with linuxthreads. + * i386/local-linuxthreads-gscope.diff: new patch to fix build on *i386 + with linuxthreads. + * kfreebsd/local-sysdeps.diff: update to revision 1989 (from glibc-bsd). + * any/submitted-longdouble.diff: patch from Carlos O'Donell to fix long + double tests. + * any/submitted-libgcc_s.so.diff: patch from Carlos O'Donell to allow + differents libgcc_s.so SONAME on architecture basis. + * hppa/submitted-fadvise64_64.diff: patch from Carlos O'Donell to add + support for fadvise64_64 syscall. + * debian/control: Simplify build-dependencies. + + -- Aurelien Jarno Sun, 29 Jul 2007 17:25:52 +0200 + +glibc (2.6-4ubuntu3) gutsy; urgency=low + + * patches/lpia/local-i686-redefine.diff: Redefine __i686, which gets + clobbered to "1" by the compiler, causing the assembler to have a fit + + -- Adam Conrad Sat, 28 Jul 2007 05:30:06 +1000 + +glibc (2.6-4ubuntu2) gutsy; urgency=low + + * Fix gij memory hog on amd64, thanks to Aurelien Jarno. + * sparc/submitted-gscope_flag.diff: update from upstream. + + -- Matthias Klose Thu, 26 Jul 2007 23:28:49 +0200 + +glibc (2.6-4ubuntu1) gutsy; urgency=low + + * Merge with Debian; remaining changes: + - Upstream tarball including GFDL'd documentation. + - Don't apply patches for architectures not found in Ubuntu. + - Build optimized sparc packages. + - Support lpia. + - Minor differences to be cleaned up. + * glibc-doc: Install the documentation in info format. Closes: LP: #60607. + + * Merge changes from Debian: + * mips/cvs-gscope_flag.diff: new patch to fix build on mips/mipsel. + * arm/cvs-gscope_flag.diff: new patch to fix build on arm/armel. + * any/cvs-initfini.diff: new patch from upstream to fix crti.o on + ppc64. Closes: #434626. + * debian/sysdeps/powerpc.mk: build libc6-ppc64 with gcc-4.2. + * debian/control: Remove build-depend on gcc-4.1 on powerpc. + + -- Matthias Klose Thu, 26 Jul 2007 16:22:15 +0200 + +glibc (2.6-4) unstable; urgency=low + + [ Samuel Thibault ] + * sysdeps/hurd.mk (CC, BUILD_CC): Remove. + * control: Build-depend on gcc-4.2 on hurd-i386. + + [ Pierre Habouzit ] + * any/cvs-glibc-2_6-branch.diff: upstream branch pull, includes: + + any/cvs-ld-integer-overflow.diff + + any/cvs-malloc.diff + + any/cvs-nis-nss-default.diff + + any/cvs-nscd-short-replies.diff + + any/cvs-vfscanf.diff + + [ Aurelien Jarno ] + * debian/sysdeps/powerpc.mk: build libc6-ppc64 with gcc-4.1 as gcc-4.2 + produces broken binaries. + * debian/control: Build-depend on gcc-4.1 on powerpc + * debian/control: Build-depend on g++-4.1/g++-4.2 and + g++-4.1-multilib/g++-4.2-multilib. + * debian/*.NEWS: move to debian/debhelper.in/*.NEWS. + * rules.d/debhelper.mk: remove debian/*.NEWS on clean. + * sparc/submitted-gscope_flag.diff: new patch to fix build on sparc. + + -- Aurelien Jarno Thu, 26 Jul 2007 08:57:48 +0200 + +glibc (2.6-3ubuntu3) gutsy; urgency=low + + * patches/sparc/submitted-gscope_flag.diff: New patch to fix build + on sparc (Aurelien Jarno). + + -- Matthias Klose Thu, 26 Jul 2007 00:56:49 +0200 + +glibc (2.6-3ubuntu2) gutsy; urgency=low + + * Build the 64bit powerpc library with gcc-4.1. + * Update to the glibc-2_6-branch 20070725. + - patches/any/cvs-libc-glibc-2_6-branch.diff: New. + - patches/any/cvs-ports-glibc-2_6-branch.diff: New. + - patches/any/cvs-ld-integer-overflow.diff: Remove. + - patches/any/cvs-malloc.diff: Remove. + - patches/any/cvs-nis-nss-default.diff: Remove. + - patches/any/cvs-nscd-short-replies.diff: Remove. + - patches/any/cvs-vfscanf.diff: Remove. + * Build-depend on g++-4.1-multilib/g++-4.2-multilib. + * debian/sysdeps/hppa.mk: Don't explicitely use gcc-4.2. + + -- Matthias Klose Wed, 25 Jul 2007 15:34:26 +0200 + +glibc (2.6-3ubuntu1) gutsy; urgency=low + + * Merge with Debian. + * debian/sysdeps/lpia.mk: Build using -march=i686 -mtune=i586 -g -O3. + + -- Matthias Klose Mon, 23 Jul 2007 15:02:03 +0200 + +glibc (2.6-3) unstable; urgency=low + + [ Aurelien Jarno ] + * script.in/kernelcheck.sh: s/kernel_compare_version/linux_compare_versions/ + for arm. + * script.in/kernelcheck.sh: the minimum kernel version is now 2.6.8 and not + 2.6.1. Closes: bug#432721. + * hppa/submitted-threaddb.diff: new patch from Randolph Chung to fix + debugging interface for NPTL on hppa. + * Drop SPARC V8 support: + - control.in/opt: drop libc6-sparcv9. + - sysdeps/sparc.mk: drop libc6-sparcv9. + - script.in/kernelcheck.sh: add check for SPARC V8 or earlier CPU. + - patches/series: disable sparc/submitted-timing.diff. + - patches/sparc/local-sparcv8-target.diff: rename to + local-sparcv9-target.diff and default to v9. + * Build with gcc-4.2 except on alpha (untested). + * patches/any/cvs-ld_library_path.diff: new patch from CVS to fix segfaults + with empty LD_LIBRARY_PATH variable. + * rules.d/build.mk: create /etc/ld.so.conf.d/libc.conf to add + /usr/local/lib as a default search path. Closes: #395177. + * Honor parallel= option in DEB_BUILD_OPTIONS. Closes: #413744. + + [ Pierre Habouzit ] + * rules.d/debhelper.mk: add some magic to copy debian/bug/$pkg/ files into + /usr/share/bug/. + * add libc6-i386/presubj to document /usr/lib32 issues not being a + libc6-i386 problem. + * add locales/presubj about locales depends that are correct, and tell bug + reporters how to look for their package being built or not. + * add patches/any/local-missing-linux_types.h.diff to add missing + #include due to migration to linux-libc-dev. + Closes: #433962. + + [ Samuel Thibault ] + * hurd-i386/local-tls-support.diff: new patch to support TLS. + * debian/sysdeps/hurd.mk (libc_extra_config_options): Removed + --without-__thread, --without-tls and libc_cv_z_relro=no. + * hurd-i386/local-atomic-no-multiple_threads.diff: new patch, hurd-i386 + doesn't need the multiple_threads field. + * hurd-i386/local-gscope.diff: new patch, backport of the CVS global scope. + * hurd-i386/local-no-strerror_l.diff: new patch to disable non-implemented + strerror_l(). + * hurd-i386/submitted-lock-intern.diff: new patch to fix a header inclusion. + * sysdeps/depflags.pl: make libc0.3 depend on TLS-enabled hurd packages. + * hurd-i386/local-sigsuspend-nocancel.diff: renamed into + submitted-sigsuspend-nocancel.diff. + * hurd-i386/submitted-ECANCELED.diff: new patch to fix ECANCELED value. + Closes: #396135. + * hurd-i386/local-gcc-4.1-init-first.diff: New patch by Thomas + Schwinge to fix building with gcc-4.1. + * sysdeps/hurd.mk (CC, BUILD_CC): Change to gcc-4.1. + * control: Depend on gcc-4.1 on hurd-i386. + + -- Aurelien Jarno Mon, 23 Jul 2007 08:01:26 +0200 + +glibc (2.6-2ubuntu2) gutsy; urgency=low + + * debian/rules.d/control.mk: Add lpia to threads_archs and to libc6 list + * debian/sysdeps/lpia.mk: Add gcc-4.2 usage, but comment it out for now, + while we bootstrap with gcc-4.1 (because we're FTBFS with gcc-4.2) + + -- Adam Conrad Thu, 12 Jul 2007 13:36:23 +0100 + +glibc (2.6-2ubuntu1) gutsy; urgency=low + + * Merge Debian changes 2.6-1 -> 2.6-2. + + -- Matthias Klose Tue, 10 Jul 2007 14:18:22 +0200 + +glibc (2.6-2) unstable; urgency=low + + [ Clint Adams ] + * Add any/cvs-nis-nss-default.diff: preserve errno. + * Add any/cvs-vfscanf.diff: add additional test for EOF + in loop to look for conversion specifier to avoid testing of + wrong errno value. + + [ Aurelien Jarno ] + * Add any/cvs-ld-integer-overflow.diff: fix an integer + overflow in ld.so. Closes: bug#431858. + * hppa/submitted-multiple-threads.diff: new patch to fix an FTBFS on + hppa. Closes: bug#428509, bug#429487. + + -- Aurelien Jarno Tue, 10 Jul 2007 09:17:49 +0200 + +glibc (2.6-1ubuntu1) gutsy; urgency=low + + [Jeff Bailey] + * debian/sysdeps/hppa.mk: Use gcc-4.2 + * debian/control.in/main: Build-dep on gcc-4.2 [hppa] + * debian/control: Regenerate + + [Matthias Klose] + * Merge Debian changes 2.6-0exp3 -> 2.6-1. + * debian/sysdeps/lpia: New. + + -- Matthias Klose Mon, 9 Jul 2007 12:20:28 +0200 + +glibc (2.6-0ubuntu1) gutsy; urgency=low + + * New upstream release. + * Merge with Debian; remaining changes: + - Include unmodified glibc-2.6 upstream tarball. + - Don't build locale* packages. + - TODO: list remaining changes. + + -- Matthias Klose Mon, 2 Jul 2007 13:29:33 +0200 + +glibc (2.6-0exp3) experimental; urgency=low + + [ Pierre Habouzit ] + [ Clint Adams] + * New upstream version. + - Remove locale/iso3166-RS.diff (obsolete). + - Remove locale/fix-exhausted-memory.diff (merged upstream). + - Update locale/LC_COLLATE-keywords-ordering.diff. + - Remove localedata/locale-hy_AM.diff (obsolete). + - Remove localedata/locale-pl_PL.diff (merged upstream). + - Remove localedata/locales-sr.diff (obsolete). + - Update localedata/tailor-iso14651_t1.diff. + - Update localedata/first_weekday.diff. + - Remove alpha/cvs-cfi.diff (merged upstream). + - Remove arm/cvs-check_pf.c (merged upstream). + - Remove hppa/cvs-hppa-update.diff (obsolete). + - Update hppa/submitted-nptl-carlos.diff from "upstream". + - Remove hppa/submitted-nptl-carlos2.diff (merged upstream). + - Remove hppa/local-r19use.diff (merged upstream). + - Remove hurd-i386/cvs-futimes.diff (merged upstream). + - Remove m68k/cvs-m68k-update.diff (obsolete). + - Update m68k/local-mathinline_h.diff. + - Remove mips/cvs-ldsodefs_h.diff (merged upstream). + - Remove mips/submitted-msq.diff (merged upstream). + - Remove all/cvs-iconv-E13B.diff (obsolete). + - Remove all/submitted-new-brf-encoding.diff (merged upstream). + - Remove any/cvs-2.5-branch-update.diff (obsolete). + - Remove any/cvs-pow.diff (obsolete). + - Remove any/cvs-printf_fp-c.diff (obsolete). + - Remove any/cvs-ftw-c.diff (obsolete). + - Remove any/cvs-bits_in_h-ipv6.diff (obsolete). + - Remove any/cvs-itoa-c.diff (obsolete). + - Remove any/cvs-lt-update.diff (obsolete). + - Remove any/cvs-realpath.diff (obsolete). + - Remove any/cvs-vfprintf-stack-smashing.diff (obsolete). + - Remove any/cvs-zdump-64-bit.diff (obsolete). + - Update any/local-ldso-disable-hwcap.diff. + - Remove any/submitted-gethostbyname_r.diff (obsolete). + - Remove any/submitted-iconv-colon.diff (merged upstream). + - Update any/submitted-strfry.diff. + - Remove any/submitted-unistd_XOPEN_VERSION.diff (obsolete). + - Remove any/cvs-glob-c.diff (obsolete). + - Remove any/cvs-scanf_hexfloat.diff (obsolete). + - Remove alpha/submitted-sigsuspend.diff (merged upstream). + - Remove arm/cvs-procinfo-eabi.diff (obsolete). + * debian/sysdeps/depflags.pl: Clean out relationships for packages + that do not exist in sarge or later. + * debian/debhelper.in/libc.install: do not hardcode the glibc + version number in the path to gai.conf. + * debian/control.in/main, debian/sysdeps/depflags.pl: + use linux-libc-dev on all linux architectures, and + remove all references to linux-kernel-headers. + * Bump shlibdeps version to 2.6-1 due to sync_file_range, futimens, + utimensat, __sched_cpucount, sched_getcpu, strerror_l, and + epoll_pwait symbols. + * debian/rules.d/build.mk: pass --enable-profile to configure. + + [ Aurelien Jarno ] + * patches/sparc/local-undefined-registers.diff: new file to ignore + global registers while looking for undefined symbols. + * debian/script.in/kernelcheck.sh: add a warning for FreeBSD kernels + 5.X. + * local/etc_init.d/glibc.sh, debhelper.in/libc.preinst: don't check for + linux kernel, it is now done in script.in/kernelcheck.sh. + * patches/any/cvs-malloc.diff: new patch from upstream to fix malloc ABI. + * patches/any/local-linuxthreads-lowlevellock.diff: new patch to support + low level locking on linuxthreads. + * patches/any/local-linuxthreads-fatalprepare.diff: new patch to support + FATAL_PREPARE on linuxthreads, by not using __libc_pthread_functions_init + and PTHFCT_CALL. + * patches/hppa/local-linuxthreads.diff: new patch to get glibc buildable on + hppa with linuxthreads. + * patches/arm/submitted-RTLD_SINGLE_THREAD_P.diff: fix a missing #defined + on arm. + * patches/localedata/submitted-as_IN.diff: new patch to fix a not anymore + unassigned unicode code. + * locales-depver: tighten locales dependencies. + * debian/sysdeps/linux.mk, debian/script.in/kernelcheck.sh: bump minimum + kernel requirement to 2.6.8. + * debian/rules, debian/rules.d/build.mk, debian/sysdeps/*.mk: also defines + CXX as g++ is used in the testsuite. + + [ Petr Salinger] + * kfreebsd/local-sysdeps.diff: update to revision 1949 (from glibc-bsd). + * any/local-linuxthreads-defines.diff: new patch to restore a few defines + in config.make.in still needed by linuxthreads. + * patches/local-tst-mktime2.diff: fix time/tst-mktime2.c. + + [ Pierre Habouzit ] + * kernelchecks.sh: Make the warning about kernel 2.6 more explicit so that + people can deal with it without adding yet-another critical bug on the + glibc. + * kernelchecks.sh: add some quotes to unconfuse syntax hilighting a bit. + * nscd.init: ksh is confused if you call functions start or stop. + Closes: 428884. + * patches/locale/preprocessor-collate.diff: update it to work (with + restrictions) with depth >= 2 copies. The patch is scurvy and make locale + parsing completely non reentrant. + * debian/control: ${Source-Version} -> ${binary:Version}. + * debian/debhelper.in/nscd.lintian: yes, /var/db for lintian is ok. + * patches/any/submitted-fileops-and-signals.diff: fixes libio file + operations in presence of recoverable errors. + Closes: 429021. + * patches/localedata/fix-am_ET.diff: fix am_ET using our preprocessor + extensions. + + [ Samuel Thibault ] + * Remove patches/hurd-i386/cvs-getsid.diff (merged upstream). + * patches/hurd-i386/submitted-ioctl-unsigned-size_t.diff: new patch to fix + some packages that use unsigned or size_t in ioctls. + Closes: 431365. + + -- Clint Adams Sat, 07 Jul 2007 09:43:02 -0400 + +glibc (2.5-11ubuntu1) gutsy; urgency=low + + * Merge Debian changes (2.5-10 - 2.5-11). + * Add ppu symlinks on powerpc. + + -- Matthias Klose Wed, 13 Jun 2007 17:20:14 +0200 + +glibc (2.5-11) unstable; urgency=low + + [ Aurelien Jarno ] + * patches/hppa/submitted-pie.diff: new patch to fix PIE on hppa. Patch by + Sébastien Bernard and John David Anglin. Closes: #427990. + * debian/debhelper.in/libc.preinst: use -e instead of -f to canonicalize + links. Closes: #427416. + + [ Pierre Habouzit ] + * pass -X/usr/lib/debug to dh_makeshlibs so that libc6-dbg gets no useless + shlibs. Closes: #427637. + + -- Aurelien Jarno Mon, 11 Jun 2007 15:06:21 +0200 + +glibc (2.5-10ubuntu2) gutsy; urgency=low + + * libc6-dev-ppc64: Install gnu-stubs-64.h in /usr/include/gnu. + + -- Matthias Klose Fri, 08 Jun 2007 12:01:55 +0000 + +glibc (2.5-10ubuntu1) gutsy; urgency=low + + * Merge Debian changes (2.5-9 - 2.5-10). + + -- Matthias Klose Mon, 4 Jun 2007 23:31:10 +0200 + +glibc (2.5-10) unstable; urgency=low + + [ Aurelien Jarno ] + * kfreebsd/local-sysdeps.diff: update to revision 1942 (from glibc-bsd). + Thanks to Petr Salinger. + * arm/cvs-procinfo-eabi.diff: patch from CVS to not include asm/procinfo.h. + * any/submitted-strtok.diff: new patch to fix a typo in strings/strtok.c. + Closes: #426118. + * debian/sysdeps/depflags.pl: depends on libgcc1/libgcc2/libgcc4. + * any/cvs-nscd-short-replies.diff: new patch from CVS to fix crash on + short replies. + * sysdeps/depflags.mk, sysdeps/depflags.pl: use DEB_HOST_ARCH_OS and + DEB_HOST_ARCH instead of DEB_HOST_GNU_SYSTEM and DEB_HOST_GNU_TYPE. + * debian/sysdeps/arm.mk, debian/script.in/kernelcheck.sh: bump minimum + kernel requirement to 2.6.12 on arm to get __ARM_NR_set_tls syscall. + Closes: #421037. + * debian/sysdeps/armel.mk: bump minimum kernel requirement to 2.6.14 + on armel. + * patches/series: disable any/local-ldconfig-timestamps.diff as this + patch does not take into account sub-directories. + + [ Clint Adams ] + * debian/local/manpages/ld.so.8: quote accepted values for LD_DEBUG. + closes: #426101. + * New Malayalam debconf translation, by Sajeev പിആരàµâ€. + closes: #426203. + * Update Vietnamese debconf translation, by Clytie Siddall. + closes: #426824. + + -- Aurelien Jarno Sun, 03 Jun 2007 19:01:50 +0200 + +glibc (2.5-9) unstable; urgency=low + + * debian/patches/arm/local-ioperm.diff: Remove the check + involving LINUX_VERSION_CODE. + * debian/patches/hppa/submitted-atomic_h.diff: update to loop again + when the kernel returns -EDEADLOCK. Workaround: #425567. + + -- Aurelien Jarno Tue, 22 May 2007 17:03:23 +0200 + +glibc (2.5-8ubuntu1) gutsy; urgency=low + + * Merge Debian changes (2.5-7 - 2.5-8). + * Fix installation location of sparc64 headers. + + -- Matthias Klose Sun, 20 May 2007 15:01:08 +0200 + +glibc (2.5-8) unstable; urgency=low + + [ Aurelien Jarno ] + * debian/sysdeps/depflags.pl: Add a conflicts on binutils + (<< 2.17cvs20070426-1) for libc-dev. Closes: #422625. + + [ Clint Adams ] + * debian/sysdeps/depflags.pl: Clean out relationships for packages + that do not exist in sarge or later. + * debian/debhelper.in/libc.install: do not hardcode the glibc + version number in the path to gai.conf. + * debian/control.in/main, debian/sysdeps/depflags.pl: + use linux-libc-dev to build on all linux architectures. + (retain Depends alternative on linux-kernel-headers) + + [ Aurelien Jarno ] + * debian/local/etc_init.d/glibc.sh: fix a typo. Closes: #423870. + * debian/patches/hppa/submitted-atomic_h.diff: new patch to fix the + atomic CAS function on hppa. Closes: #424057. + * debian/control.in/main: unify the gcc-4.1 depends to (>= 4.1.2-6). + + -- Aurelien Jarno Sun, 20 May 2007 03:43:09 +0200 + +glibc (2.5-7ubuntu1) gutsy; urgency=low + + * Merge Debian changes (2.5-5 - 2.5-7). + + -- Matthias Klose Tue, 15 May 2007 17:31:45 +0200 + +glibc (2.5-7) unstable; urgency=low + + * debian/sysdeps/i386.mk: switch from --includir= to amd64_includedir. + * debian/local/etc_init.d/glibc.sh: fix the broken comment. Closes: + #422587. + + -- Aurelien Jarno Mon, 07 May 2007 11:45:41 +0200 + +glibc (2.5-6) unstable; urgency=low + + * patches/any/cvs-vfprintf-stack-smashing.diff: new patch from + upstream (fix enormous alloca triggered with %-X.Ys like formats + specifier, with Y big, and in multi-byte locales). Closes: #380195, + #421555. + * patches/hppa/cvs-hppa-update.diff: update from CVS to fix + bits/pthreadtypes.h on hppa. + * patches/any/local-disable-nscd-host-caching.diff: the comment lines + should have the '#' on the first column. Closes: #421882. + * Remove patches/any/local-Rminkernel.diff (not needed anymore). + * debian/patches/hppa/submitted-ustat.diff: new patch from Jeff Bailey + to makes glibc build with exported kernel headers. + * debian/patches/hppa/submitted-nptl-carlos2.diff: new patch to add + STACK_GROWS_UP case to NPTL. + * debian/patches/hppa/local-r19use.diff: new patch from Carlos O'Donell + (specify r19 as input to asms that save/restore). + * debian/patches/alpha/cvs-cfi.diff: new patch from CVS (fix + cfi instructions in sysdep-cancel.h). Closes: #422067. + * debian/sysdeps/kfreebsd-i386.mk: tune for i686. + * debian/sysdeps/i386.mk: drop i386-linux-gnu compat symlinks, all the + toolchain is now using i486-linux-gnu. + * Merge from multiarch tree: + - debian/rules: define localedir, sysconfdir and rootsbindir. + - debian/rules.d/build.mk: use $(localedir), $(sysconfdir) and + $(rootsbindir) instead of hardcoded values. Make includedir + flavour specific. + - debian/sysdeps/amd64.mk: define i386_includedir. + - debian/sysdeps/powerpc.mk: define ppc64_includedir. + - debian/sysdeps/ppc64.mk: define powerpc_includedir. + - debian/sysdeps/s390.mk: define s390x_includedir. + - debian/sysdeps/kfreebsd-amd64.mk: define i386_includedir. + - debian/sysdeps/sparc.mk: define sparc64_includedir. + * debian/control.in/main: build-depends on gcc-4.1.2 (>= 4.1.2-6) on + hppa. + + -- Aurelien Jarno Mon, 07 May 2007 03:27:10 +0200 + +glibc (2.5-5ubuntu1) gutsy; urgency=low + + * Merge Debian changes (2.5-2 - 2.5-5). + + -- Matthias Klose Wed, 02 May 2007 09:04:02 +0200 + +glibc (2.5-5) unstable; urgency=low + + [ Aurelien Jarno ] + * Rename patches/all/submitted-iconv-E13B.diff into + patches/all/cvs-iconv-E13B.diff as the patch has been accepted + upstream. + * debian/debhelper.in/libc.NEWS: new file to warn user to upgrade + to a 2.6.1 or later kernel before upgrading the glibc. + * debian/script.in/kernelcheck.sh: improve the kernel error message. + * New Tamil debconf translation, by Tirumurti Vasudevan. Closes: + #420755. + * script.in/nohwcap.sh: use sed instead of awk. Closes: #420799. + * Update Catalan debconf translation, by Jordà Polo. Closes: #420835. + * Add support for n32 and 64 ABIs on mips and mipsel, but keep it + disabled for now: + - control.in/main: add libc6-dev-mipsn32, libc6-dev-mips64 to the + build-dependencies. + - control.in/mips64: add libc6-mips64 and libc6-dev-mips64 packages. + - control.in/mipsn32: add libc6-mipsn32 and libc6-dev-mipsn32 packages. + - rules.d/control.mk: use control.in/mips64 and control.in/mipsn32. + - sysdeps/mips.mk: add two new passes for n32 and 64 ABIs. + - sysdeps/mipsel.mk: likewise. + * debian/control.in/main: drop build-depends on libssp32 and libssp64, + build-depends on gcc-4.1 (>= 4.1.2-5) instead. Drop build-conflicts + on gcc-4.1 (= 4.1.1-14). Closes: #413370. + * debian/sysdeps/hppa.mk: switch back to gcc-4.1. + * debian/debhelper.in/libc.preinst: add a check for silly users having + LD_ASSUME_KERNEL=2.4.1 in their /etc/profile, ~/.bashrc or shell + init script. + * debian/control.in/main: build depends on binutils (>= 2.17cvs20070426-1). + Closes: #405738. + * debian/shlibver: bump shlib to 2.5-5 for the transition to + hash-style=gnu. + * debian/control.in/main: build depends on gcc-4.1-multilib on bi-arch + architectures. + * control.in/amd64, control.in/i386, control.in/kfreebsd-i386, + control.in/mipsn32, control.in/mips64, control.in/powerpc, + control.in/ppc64, control.in/s390x, control.in/sparc64: drop the + depends on lib32gcc1/lib64gcc1. Recommends gcc-multilib. + * debhelper.in/libc.postint: remove the version check when creating + ld.so.conf. Closes: #420726. + + [ Michael Banck ] + * patches/hurd-i386/local-dl-dynamic-weak.diff: new patch (turn + _dl_dynamic_weak on by default for hurd-i386). + + [ Pierre Habouzit ] + * nscd.init: + + use nscd --shutdown rather than start-stop-daemon to stop nscd more + gracefuly. Closes: #338507. + + also invalidate hosts on reload. + + drop oldies (nscd_nischeck things, does not exists anymore). + * patches/any/cvs-scanf_hexfloat.diff: fix a bug when parsing a float in + hexadicimal form with no exponent. Closes: #166403. + * disable hosts caching in nscd by default as it breaks gethostby* calls + (does not respect DNS TTLs, see #335476): + + document it in nscd.NEWS.Debian. + + patches/any/local-disable-nscd-host-caching.diff: update nscd.conf. + + [ Clint Adams ] + * Switch from linux-kernel-headers to linux-libc-dev | linux-kernel-headers. + + -- Aurelien Jarno Mon, 30 Apr 2007 21:55:09 +0200 + +glibc (2.5-4) unstable; urgency=low + + * debian/rules.d/build.mk: fix the testsuite workaround on the MIPS SB1 + platform. + * debian/locales-all.README.Debian: Remove again, it is useless now. + (Closes: #378191) + * debhelper.in/libc.preinst: use dpkg-query instead of looking into + /var/lib/dpkg/info. Thanks to Guillem Jover for the hint. + * patches/mips/cvs-ldsodefs_h.diff: new patch (correct multiple + inclusion guard in sysdeps/mips/ldsodefs.h) from CVS. + * patches/any/cvs-printf_fp-c.diff: update patch from CVS (fix exponent + -4 special case handling when wcp == wstartp + 1). Closes: #419225. + * patches/any/cvs-bits_in_h-ipv6.diff: new patch from CVS (defines + IPV6_V6ONLY in bits/in.h). Closes: #420188. + * debhelper.in/libc.preinst: check the library files instead of links + while checking for a non-dpkg owned libc6 in /lib/tls. Links are + recreated by ldconfig. + * patches/any/cvs-realpath.diff: new patch (fix wrong comment about + realpath() in /usr/include/stdlib) from CVS. Closes: #239427. + * debian/local/manpages/iconv.1: mention that -t is optional. Closes: + #354292. + * debian/local/manpages/iconv.1: mention that multiple fils could be + specified on the command line. Closes: #340911. + * debian/patches/any/submitted-strfry.diff: new patch (fix strfry() + distribution) by Steinar H. Gunderson. Closes: #341903. + * patches/all/submitted-iconv-E13B.diff: new patch to fix wrong E13B + charset alias. patches/any/submitted-iconv-colon.diff: new patch to + allow colons in charset names. Closes: #91935. + * New Hungarian debconf translation, by Attila Szervác. Closes: #420420. + * debian/patches/any/local-ldd.diff: update to discard the error message + that appears if one of the dynamic loader is not supported by the + kernel. Closes: #263494. + * debian/patches/arm/cvs-check_pf.c: new patch (fix assertion in + check_pf.c) from CVS. Closes: #420552. + * debian/debhelper.in/glibc-doc.links: add missing manpages links for + functions documented with others. Closes: #413989. + + -- Aurelien Jarno Mon, 23 Apr 2007 11:41:18 +0200 + +glibc (2.5-3) unstable; urgency=low + + [ Pierre Habouzit ] + * patches/any/submitted-unistd_XOPEN_VERSION.diff: set _XOPEN_VERSION to 600 + when __USE_XOPEN2K is set. Closes: #203412. + * patches/any/cvs-glob-c.diff: fixes glob wrt \/ escapes (among other + fixes). Closes: #234880. + + [ Aurelien Jarno ] + * Update Italian debconf translation, by Luca Monducci. Closes: #419399. + * Put back ld.so into optimized packages, it can be useful in some cases. + * Update French debconf translation, by Christian Perrier. Closes: #419445. + * Switch from gzip to lzma for compressing the locales in the locales-all + package. The unpacked size is decreased by 10 and the packed size by 4 for + no measurable difference on the unpacking time. + * patches/any/submitted-gethostbyname_r.diff: new patch to fix unaligned + memory access in gethostbyname_r.diff(). Closes: #419459. + * Rewrite from scratch /etc/ld.so.nohwcap handling. Closes: #419036 + - script.in/nohwcap.sh: new snipplet to check dpkg and handle + /etc/ld.so.nohwcap + - rules.d/debhelper.mk: replace NOHWCAP with nohwcap.sh in debhelper + scripts + - debhelper.in/libc.preinst: only touch /etc/ld.so.nohwcap + - debhelper.in/libc.postinst: replace the old code with NOHWCAP, + add code to remove /etc/ld.so.hwcappkgs file on upgrade + - debhelper.in/libc-otherbuild.postrm: replace the old code with NOHWCAP + - debhelper.in/libc-otherbuild.postinst: ditto + - debhelper.in/libc-otherbuild.preinst: remove + * debhelper.in/libc.install: remove /usr/bin/lddlibc4 from the libc6 + package. + * debhelper.in/libc.preinst: check for a non-dpkg owned libc6 in /lib/tls. + Closes: #419189. + * Update Dutch debconf translation, by Bart Cornelis. Closes: #419729. + * debhelper.in/libc.postinst: fix the chroot detection, code taken from + udev scripts. + * debian/rules.d/build.mk: disable testsuite on the MIPS SB1 platform. + * patches/localedata/first_weekday.diff: Add first_workday for *_NO + and *_DK. Closes: #379100. + + -- Aurelien Jarno Thu, 19 Apr 2007 07:55:58 +0200 + +glibc (2.5-2ubuntu1) gutsy; urgency=low + + * Merge Debian changes (2.5-0exp6 - 2.5-2). + + -- Matthias Klose Wed, 18 Apr 2007 22:14:32 +0200 + +glibc (2.5-0ubuntu21.2) toolchain-test; urgency=low + + * libc6-dev-sparc64: Copy headers into /usr/include/sparc64-linux-gnu. + A symlink to /usr/include works for libc6-dev-sparc64, but not for + other packages which install into /usr/include/sparc64-linux-gnu. + + -- Matthias Klose Fri, 6 Apr 2007 13:45:41 +0200 + +glibc (2.5-0ubuntu21.1) toolchain-test; urgency=low + + * Update to current glibc-2_5-branch. + - debian/patches/sparc/local-pthread-shlib.diff: Update. + - debian/patches/any/branch-pr3429.diff: Remove. + * Merge Debian changes (2.5-0exp3 - 2.5-0exp6). + + -- Matthias Klose Wed, 21 Mar 2007 17:22:13 +0100 + +glibc (2.5-2) unstable; urgency=low + + * Update Portuguese debconf translation, by Ricardo Silva. Closes: #418301, + #418472. + * Update Brazilian Portuguese debconf translation, by Felipe Augusto van de + Wiel. Closes: #418332. + * Update Romanian debconf translation, by Stan Ioan-Eugen. Closes: #418337. + * Update Turkish debconf translation, by Erçin Eker. Closes: #418340. + * Update Galician debconf translation, by Jacobo Tarrio. Closes: #418365. + * Update Arabic debconf translation, by Ossama Khayat. Closes: #418378. + * Update German debconf translation, by Helge Kreutzmann. Closes: #418426. + * Update Basque debconf translation, by Piarres Beobide. Closes: #418521. + * Update Swedish debconf translation, by Daniel Nylander. Closes: #418545. + * Update Spanish debconf translation, by Carlos Valdivia Yagüe. Closes: + #418720. + * Update Russian debconf translation, by Yuri Kozlov. Closes: #418748. + * Update Czech debconf translation, by Miroslav Kure. Closes: #418767. + * debian/locales-depver: remove exp from the locales version. + * Replace patches/alpha/submitted-sigsuspend.diff by + patches/alpha/cvs-sigsuspend.diff from upstream. + * patches/any/local-ldconfig-fsync.diff: call fsync() before closing + /etc/ld.so.cache. Closes: #416716. + * Update Korean debconf translation, by Sunjae Park. Closes: #418872. + * patches/any/local-notls.diff: also include pthread.h from + linuxthreads/sysdeps/pthread/gai_misc.h. + m68k/cvs-m68k-update.diff: update from CVS. Closes: #418881. + * debian/local/usr_sbin/tzconfig: removed. + * debian/local/manpages/tzconfig.8: removed. + * debian/sysdeps/depflags.pl: conflict with tzdata (<< 2007e-2). Older + versions need tzconfig. + * patches/any/cvs-printf_fp-c.diff: update patch from CVS (fix exponent + -4 special case handling when wcp == wstartp + 1). Closes: #419225. + + -- Aurelien Jarno Sat, 14 Apr 2007 17:23:17 +0200 + +glibc (2.5-1) unstable; urgency=low + + * New upstream version 2.5. + - Adds support of POSIX_MADV_* on mips, mipsel, arm and hppa. Closes: + #381294. + - Fixes a pointer-to-long overflow in sunrpc code. Closes: #389084. + - Fixes getent wrt ipv4 hosts lookups. Closes: #347358. + - Fixes strtod wrt hex floats with negative exponent. Closes: #172562. + - Fixes nice() errno when called without appropriate privileges. Closes: + #286825. + - Provides sys/inotify.h. Closes: #369402. + - Fixes strtod("INF") with some locales. Closes: #415417. + + [ Aurelien Jarno ] + * debian/shlibver: Bump up to 2.5. + * debian/copyright: update. + * Remove locale/cvs-iso3166.diff (merged upstream). + * Remove localedata/locale-ro_RO.diff (merged upstream). + * Remove arm/cvs-portshead.patch (merged upstream). + * Remove arm/local-dwarf2-buildfix.diff (merged upstream). + * Remove hppa/cvs-clone.patch (merged upstream). + * Remove hppa/cvs-portshead.diff (merged upstream). + * Remove hppa/submitted-drop-utimes.diff (merged upstream). + * Remove hurd-i386/cvs-machrules-make.diff (merged upstream). + * Remove mips/cvs-fork.diff (merged upstream). + * Remove mips/cvs-resource.diff (merged upstream). + * Remove powerpc/cvs-procfs.diff (merged upstream). + * Remove any/cvs-argp_h.diff (merged upstream). + * Remove any/cvs-getcwd_c.diff (merged upstream). + * Remove any/cvs-sysctl.diff (merged upstream). + * Remove any/cvs-thread_signals.diff (merged upstream). + * Remove any/cvs-uio_h.diff (merged upstream). + * Remove any/cvs-sunrpc-xdrmem_setpos.diff (merged upstream). + * Remove any/cvs-getent-wrong-struct-size.diff (merged upstream). + * Remove any/submitted-strfmon.diff (merged upstream). + * Remove all/submitted-uninitialized-byte-LC_CTYPE.diff (merged upstream). + * Remove any/local-ttyname-devfs.diff (devfs is not supported anymore). + * Update arm/local-no-hwcap.diff. + * Update any/local-ldso-disable-hwcap.diff. + * Update all/submitted-new-brf-encoding.diff. + * debhelper.in/libc.docs: remove INTERFACE as it has been removed upstream. + * sysdeps/depflags.pl: don't make libc6 depends on tzdata, as this package + is of priority required. Should help to debconfize tzdata. + * sysdeps/i386.mk: put the static Xen libc flavour in /usr/lib/xen. Closes: + #391372. + * sysdeps/powerpc.mk: install 64-bit headers (actually gnu/stubs-64.h) + directly into /usr/include and provide /usr/include/powerpc64-linux-gnu as + a symlink to /usr/include for compatibility reasons. Closes: #391858. + * sysdeps/ppc64.mk: install 32-bit headers (actually gnu/stubs-32.h) + directly into /usr/include and provide /usr/include/powerpc-linux-gnu as + a symlink to /usr/include for compatibility reasons. + * kfreebsd/local-scripts.diff: update. + * kfreebsd/local-sys_queue_h.diff: update. + * kfreebsd/local-sysdeps.diff: update to revision 1689 (from glibc-bsd). + * kfreebsd/local-sysdeps-2.4.diff: remove. + * sysdeps/kfreebsd: enable the ports add-on. + * sysdeps/kfreebsd-i386.mk: ditto. + * any/local-stubs_h.diff: new patch to fix a warning in stubs.h. Closes: + #394128. + * alpha/submitted-sigsuspend.diff: new patch (fix the build on alpha) from + the libc-alpha mailing list. + * debian/local/manpages/*: fix typos. Closes: #395427. + * debian/debhelper.in/libc.dirs: don't provide /sys, now provided by + initscripts. + * debian/debhelper.in/nscd.init: add lsb header. + * debian/rules.d/debhelper.mk: add support for installing lintian and linda + overrides files. + * debian/debhelper.in/libc.overrides: new file. + * debian/debhelper.in/libc-dev.overrides: new file. + * debian/debhelper.in/libc-alt.overrides: new file. + * debian/debhelper.in/libc-otherbuild.overrides: new file. + * debian/debhelper.in/libc-dev-otherbuild.overrides: new file. + * debian/any/submitted-getcwd-sys_param_h.diff: new patch (fix the build + with linuxthreads) from the libc-alpha mailing list. + * debian/powerpc/cvs-tls-debug.diff: new patch (fix for debugging + thread-local variables on powerpc) from CVS. + * Build depends on gcc-4.2 on hppa to enable TLS on hppa. Closes: #397813. + * debian/patches/hppa/cvs-hppa-update.diff: new patch (CVS update). + * debian/sysdeps/hppa.mk, debian/script.in/kernelcheck.sh: bump minimum + kernel requirement to 2.6.9 on hppa to get LWS CAS support. + * debian/any/patches/local-linuxthreads-semaphore_h.diff: new patch (fix + /usr/include/semaphore.h with linuxthreads). + * sysdeps/sparc.mk: install 64-bit headers (actually gnu/stubs-64.h) + directly into /usr/include and provide /usr/include/sparc64-linux-gnu as + a symlink to /usr/include for compatibility reasons. Closes: #403980. + * sysdeps/*.mk: build with -g instead of -g1. Closes: bug#403270. + * debhelper.in/libc.install: install gai.conf in /etc. Closes: #404379. + * Add patches/any/local-ldconfig-timestamps.diff (use the timestamps to + update the cache only when needed) by Josselin Mouette. Closes: #374945. + * Add partial support for armel, from http://armel-debs.applieddata.net/diffs/. + * debian/debhelper.in/: delete /usr/doc removal from postinst scripts. + * debian/control.in: drop the dependency on tzdata. It is a required package + and the glibc from Etch depends on it, ensuring tzdata is always present + post-Etch. + * debian/script.in/kernelcheck.sh, debian/sysdeps/linux.mk: set the minimum + kernel version to 2.6.1, except on m68k where it is set to 2.4.1. + * patches/any/cvs-2.5-branch-update.diff: new patch (2.5 branch update) from + upstream CVS. + * patches/any/cvs-lt-update.diff: new patch (linuxthreads update) from + upstream CVS. + * debhelper.in/locales.templates: recommends UTF-8 locales by default. + Closes: #312927. + * control.in/main, rules.d/debhelper.mk: use dh_shlibdeps to set the + dependencies of nscd. Closes: #409288. + * sysdeps/s390.mk: install 64-bit headers (actually gnu/stubs-64.h) + directly into /usr/include and provide /usr/include/s390x-linux-gnu as + a symlink to /usr/include for compatibility reasons. + * patches/all/local-pthread-manpages.diff: update to fix a typo in + pthread_detach(3). Closes: #98852. + * Change any/local-__thread.diff into any/local-notls.diff. + * Update any/local-notls.diff (make glibc buildable without TLS support) + from Petr Salinger and Aurelien Jarno. + * hurd-i386/submitted-trivia.diff: new patch from Thomas Schwinge (make glibc + partly buildable on Hurd). + * hurd-i386/submitted-stat.diff: new patch from Thomas Schwinge (update + struct stat on Hurd). + * hurd-i386/submitted-libc_once.diff: new patch from Thomas Schwinge (add + __libc_once_else to make glibc buildable on Hurd). + * hurd-i386/local-msg-nosignal.diff: new patch from Thomas Schwinge + (workaround the missing MSG_NOSIGNAL support). + * m68k/cvs-m68k-update.diff: new patch (bits from CVS). Closes: #364098. + * any/submitted-clock-settime.diff: new patch (include to get + clockid_t). + * hurd-i386/local-sigsuspend-nocancel.diff: new patch (workaround missing + sigsuspend_not_cancel() on Hurd). + * debhelper.in/glibc-doc.links: add symlinks from pthread_setcanceltype(3), + pthread_setcancelstate(3) and pthread_testcancel(3) to pthread_cancel(3). + Closes: #411132. + * debian/control.in/i386: Changed the conflicts on ia32-libs-dev to a + versioned conflict. Closes: #407540. + * any/local-mktemp.diff: new patch (also propose mkdtemp as an alternative + to mktemp). Closes: #377310. + * any/cvs-ftw-c.diff: new patch (fix nftw() with FTW_CHDIR in /) from CVS. + Closes: #367522. + * any/cvs-printf_fp-c.diff: new patch (fix printf %#.0g) from CVS. + Closes: #209136. + * New Norwegian bokmÃ¥l debconf translation, by Bjørn Steensrud. Closes: + #412559. + * Remove patches/arm/local-softfloat.diff and patches/series.arm-softfloat. + Remove arm-softfloat from debian/rules.d/control.mk. armel (ARM EABI) + replaces the softfloat architecture. + * patches/any/cvs-pow.diff: new patch (fix pow(-inf, nan)) from upstream. + Closes: #226291. + * Update Catalan debconf translation, by Jordà Polo. Closes: #413259. + + [ Denis Barbier ] + * Remove localedata/locale-en_NZ.diff (merged upstream). + * Remove localedata/locale-nr_ZA.diff (merged upstream). + * Remove localedata/new-catalan-locales.diff (merged upstream). + * Remove localedata/update-ZA.diff (merged upstream). + * Remove localedata/locale-te_IN.diff (merged upstream). + * Remove locale/iso4217-RON.diff (merged upstream). + * Update localedata/locales_CH.diff + * Update localedata/supported.diff + * Update localedata/locale-hy_AM.diff + * Update localedata/locale-csb_PL.diff + * Update localedata/dz_BT-collation.diff + * Update localedata/locale-ia.diff + * Update localedata/locales-sr.diff + * Update localedata/tailor-iso14651_t1.diff + * Update localedata/fix-lang.diff + * Update localedata/first_weekday.diff + + [ Pierre Habouzit ] + * Adding myself to Uploaders. + * Rework patches/any/local-ldd.diff so that we don't use file(1) anymore (it + wasn't used anyway). Closes: #165417, #413095. + * Rework patch for #340871 (patches/m68k/local-mathinline_h.diff to use + __NTH rather than __THROW) in function implementations. + * Fix rpcgen(1) manpage, to match rpcgen(1) behaviour more closely. + Closes: #46175. + * patches/any/submitted-date-and-unknown-tz.diff: fix date output in case of + an unknown timezone in $TZ, submitted upstream as #4028. + Closes: #55648, #119540, #269238. + + [ Michael Banck ] + * patches/hurd-i386/local-tls.diff: New patch (fixes building with TLS) by + Samuel Thibault and Barry deFreese. Closes: #413787. + + [ Clint Adams ] + * debian/watch: add watch file. + * debian/control, debian/control.in/opt, debian/control.in/main, + debian/control.in/libc0.1, debian/control.in/libc, + debian/debhelper.in/locales.templates: English corrections from + Christian Perrier for Debconf templates and package descriptions. + Closes: #418006. + + -- Clint Adams Mon, 09 Apr 2007 16:17:20 -0400 + +glibc (2.5-0ubuntu12) feisty; urgency=low + + * debian/patches/any/branch-pr3429.diff: Fix a race condition in + _dl_open with r_debug.r_state consistency check. Ubuntu #72639. + * debian/debhelper.in/nscd.init: Invalidate the hosts database as + well. Ubuntu #72647. + * debian/local/manpages/nscd.conf.5: Fix formatting. Ubuntu #55331. + * Fix typo in libc6-i686 package description. Ubuntu #81153. + * debian/patches/any/local-iconv-fix-trampoline.diff: Import from + Debian; new patch (fix iconvconfig segfault when run under exec-shield, + PaX or similar) from hlfs. Ubuntu #63353. + * Set Ubuntu maintainer address. + + -- Matthias Klose Wed, 21 Mar 2007 08:16:00 +0100 + +glibc (2.5-0ubuntu14) feisty; urgency=low + + * Twiddle the diff a little so it actually applies. + + -- Tollef Fog Heen Tue, 3 Apr 2007 21:34:51 +0200 + +glibc (2.5-0ubuntu13) feisty; urgency=low + + * debian/patches/any/local-ipv6-sanity.diff: Only do AAAA lookups if we + have an interface with better than link-local addresses available. + + -- Tollef Fog Heen Tue, 3 Apr 2007 14:11:26 +0200 + +glibc (2.5-0ubuntu11) feisty; urgency=low + + * debian/patches/hppa/cvs-missing-cfi_procend.diff: New file to work around + FTBFS uncovered by January CVS binutils. + * debian/patches/series: Use it. + + -- Jeff Bailey Sun, 11 Feb 2007 08:51:24 -0700 + +glibc (2.5-0ubuntu10) feisty; urgency=low + + [ Colin Watson ] + * debian/debhelper.in/libc.postinst: Correct grammar of NSS reboot warning + (LP: #70567). + + [ Jeff Bailey ] + * debian/patches/hppa/submitted-nptl-carlos2.diff: New patch to add + STACK_GROWS_UP case to NPTL. + * debian/patches/series: Use it. + + -- Jeff Bailey Sat, 10 Feb 2007 12:03:41 -0500 + +glibc (2.5-0ubuntu9) feisty; urgency=low + + * debian/debhelper.in/libc.preinst: turn libc6 duplication + check from an error to a warning and point to the bug when + printing the warning. + (Closes Ubuntu: #81125) + + -- Fabio M. Di Nitto Sat, 06 Jan 2007 07:06:22 +0100 + +glibc (2.5-0ubuntu8) feisty; urgency=low + + * no change upload to rebuild with proper binutils/gcc-4.1 + + -- Fabio M. Di Nitto Sat, 06 Jan 2007 06:46:26 +0100 + +glibc (2.5-0ubuntu7) feisty; urgency=low + + [ Colin Watson ] + + * debian/debhelper.in/glibc-doc.links: Restore + /usr/share/doc/glibc-doc/html/index.html symlink. + + [ Fabio M. Di Nitto ] + + * debian/patches/sparc/local-pthread-shlib.diff: New file. + * debian/patches/series: Update. + + -- Fabio M. Di Nitto Thu, 04 Jan 2007 17:36:19 +0100 + +glibc (2.5-0ubuntu6) feisty; urgency=low + + * Rebuild using gcc 4.1.1-21ubuntu3. + + -- Fabio M. Di Nitto Thu, 21 Dec 2006 08:52:45 -0800 + +glibc (2.5-0ubuntu5) feisty; urgency=low + + * Rebuild using gcc 4.1.1-21ubuntu2. + + -- Matthias Klose Thu, 14 Dec 2006 14:12:56 +0000 + +glibc (2.5-0ubuntu4) feisty; urgency=low + + [ Fabio M. Di Nitto ] + * Fix path to patch in ubuntu2 changelog. + * debian/sysdeps/sparc.mk: re-enable testsuite on Niagara. + It was a kernel bug and fix is on the way upstream. + * debian/debhelper.in/libc.postinst: set back NSS version check. + It was bumped by mistake. + (Closes Ubuntu: #21117) + + -- Fabio M. Di Nitto Wed, 29 Nov 2006 06:26:46 +0100 + +glibc (2.5-0ubuntu3) feisty; urgency=low + + * debian/rules.d/build.mk: Do not define MAKEINFO to :, this prevented + generation of the info documentation, which we are happy to distribute. + * debian/control.in: + * main: + * glibc-doc Provides/Replaces/Conflicts glibc-doc-reference instead of + Suggests. Fix description. + * debian/control: Regenerate. + + -- Scott James Remnant Fri, 24 Nov 2006 14:05:17 +0000 + +glibc (2.5-0ubuntu2) feisty; urgency=low + + [ Jeff Bailey ] + * debian/patches/hppa/submitted-ustat.diff: New file. + * debian/patches/series: Update. + + -- Jeff Bailey Wed, 1 Nov 2006 14:53:41 -0500 + +glibc (2.5-0ubuntu1) feisty; urgency=low + + [ Jeff Bailey ] + * debian/rules: Define BUILD_CXX + * debian/sysdeps/sparc.mk: Define sparc64v_CXX, sparc64b_CXX, sparc64_CXX + * debian/sysdeps/powerpc.mk: Define ppc64_CXX. + * debian/sysdeps/i386.mk: Define amd64_CXX. + * debian/sysdeps/amd64.mk: Define i386_CXX. + * debian/control.in/main: Set minimum b-d version of linux-libc-dev to + 2.6.19-1.1 + Add build-dep on lib64c++6 for powerpc and sparc. + * debian/control: Regenerate. + * debian/patches/any/local-2.6.19-linux-libc-dev.diff: Patch to cope + with kernel headers from 2.6.19. + * debian/patches/series: Update. + Prune localedata, alpha, arm, hppa linuxthreads and kernel version + hurd, m68k, and mips patches. + + [ Fabio M. Di Nitto] + * use original glibc-2.5.tar.bz2 tarball from ftp.gnu.org: + * debian/patches/series: drop all/local-remove-manual.diff. + * debian/control.in: + * readd libc-dbg. + * main: + * readd Build-Depends: texinfo (>= 4.0), texi2html. + * change Build-Depends: linux-kernel-headers to linux-libc-dev. + * drop Build-Depends: lib32ssp0 and lib64ssp0. + * drop Conflicts: belocs-locales-bin, belocs-locales-data. + * opt: + * drop libc6-sparcv9. + * readd libc6-sparcv9v. + * readd libc6-sparc64b. + * readd libc6-sparc64v. + * merge descriptions from glibc 2.4 (WARNINGs and NPTL). + * Regenerate debian/control. + * debian/debhelper.in: + * readd glibc-doc.doc-base, glibc-doc.info and glibc-doc.install. + * readd libc-alt-dev.postinst. + * libc.install: drop usr/bin/locale nad usr/bin/localedef. + * libc.manpages: drop locale.1 and localedef.1. + * libc.postinst: + * fix $preversion quoting. + * bump version checking for $preversion to 2.5-0ubuntu1 for some cases. + * fix hwcappkgs lists for sparc. + * remove kernel version detection at startup. + * drop locales-all.* + * Merge debian/FAQ. + * debian/rules: + * drop locales-all and locales packages. + * readd CXX for cross-compiling. + * force -fno-stack-protector to disable automatic enablement from Ubuntu's + glibc. Glibc itself will enable it as necessary. + * debian/rules.d: + * build.mk: + * readd CXX for cross-compiling. + * drop localedir (requires check). + * readd manual generation (requires check). + * keep using /etc/ld.so.conf.d/$triplet. New debian packages use + triplet.conf, and that would require a conffile migration script. + * readd nptl bits. + * debhelper.mk: + * readd nptl bits. + * install $(libc)-dev-$$x.postinst from libc-alt-dev.postinst. + * debian/script.in/kernelcheck.sh: fix kernel version check on != m68k. + (this should be pushed to debian too) + * debian/shlibver: bump to 2.5-0ubuntu1. + * debian/sysdeps: + * amd64.mk: + * default to nptl for amd64. + * set i386 configure target to i686-linux. + * set i386 CC to use $(BUILD_CC). + * readd --disable-profile to i386_extra_config_options. + * readd i386_MAKEFLAGS to set gconvdir. + * set i386_extra_cflags back to -march=i686 -mtune=i686. + * drop i386_rtlddir (requires check). + * set i386_slibdir and _libdir to use */lib32. + * change symlinking for */lib32. + * depflags.pl: + * change linux-kernel-headers into linux-libc-dev. + * readd Recommends: tzdata. + * readd Depends: locales (>= 2.3.11). (requires review) + * readd hack to cope with */lib64. + * hppa.mk: enable nptl. + * i386.mk: + * readd no-tls-direct-seg-refs to generic libc cflags. + * make symlink absolute again. (requires review - might be droppable) + * restore nptl_* options. + * change i686_slibdir to /lib/tls/i686/cmov. + * change xen_slibdir to /lib/tls/i686/nosegneg. + * keep using /etc/ld.so.conf.d/xen.conf. New debian packages use + libc6-xen.conf, and that would require a conffile migration script. + * drop ldconfig from libc6-xen. + * linux.mk: + * readd comments about nptl. + * readd nptl config. + * powerpc.mk: revert change to fix bug #391858 that is a gcc bug + (already addressed in Ubuntu) and not a glibc one. + * sparc.mk: + * readd sparc64b pass. + * readd sparc64v pass. + * disable sparcv9 pass. + * readd sparcv9v pass. + * fix sparc64 headers install. + * dynamically disable testsuite when building on Niagara. + * debian/patches: + * port forward ubuntu dir from 2.4: + * drop local-dynamic-resolvconf.diff. now part of debian. + * readd local-altlocaledir.diff. + * series: update. + + -- Fabio M. Di Nitto Wed, 01 Nov 2006 12:49:55 +0100 + +glibc (2.5-0exp2) UNRELEASED; urgency=low + + * New upstream version 2.5. + + [ Aurelien Jarno ] + * debian/shlibver: Bump up to 2.5-1. + * debian/copyright: update. + * Remove locale/cvs-iso3166.diff (merged upstream). + * Remove localedata/locale-ro_RO.diff (merged upstream). + * Remove arm/cvs-portshead.patch (merged upstream). + * Remove hppa/cvs-portshead.patch (merged upstream). + * Remove hppa/submitted-drop-utimes.diff (merged upstream). + * Remove hurd-i386/cvs-machrules-make.diff (merged upstream). + * Remove mips/cvs-fork.diff (merged upstream). + * Remove mips/cvs-resource.diff (merged upstream). + * Remove powerpc/cvs-procfs.diff (merged upstream). + * Remove any/cvs-argp_h.diff (merged upstream). + * Remove any/cvs-getcwd_c.diff (merged upstream). + * Remove any/cvs-sysctl.diff (merged upstream). + * Remove any/cvs-thread_signals.diff (merged upstream). + * Remove any/cvs-uio_h.diff (merged upstream). + * Remove any/submitted-strfmon.diff (merged upstream). + * Remove all/submitted-uninitialized-byte-LC_CTYPE.diff (merged upstream). + * Remove any/local-ttyname-devfs.diff (devfs is not supported anymore). + * Update arm/local-no-hwcap.diff. + * Update any/local-ldso-disable-hwcap.diff. + * Update all/submitted-new-brf-encoding.diff. + * debhelper.in/libc.docs: remove INTERFACE as it has been removed upstream. + * sysdeps/depflags.pl: don't make libc6 depends on tzdata, as this package + is of priority required. Should help to debconfize tzdata. + * sysdeps/i386.mk: put the static Xen libc flavour in /usr/lib/xen. Closes: + #391372. + * sysdeps/powerpc.mk: install 64-bit headers (actually gnu/stubs-64.h) + directly into /usr/include and provide /usr/include/powerpc64-linux-gnu as + a symlink to /usr/include for compatibility reasons. Closes: #391858. + * sparc/cvs-pause-sigprocmask.diff: new patch (fix sparc64 build) from + upstream CVS. + * kfreebsd/local-scripts.diff: update. + * kfreebsd/local-sys_queue_h.diff: update. + * kfreebsd/local-sysdeps.diff: update to revision 1689 (from glibc-bsd). + * kfreebsd/local-sysdeps-2.4.diff: remove. + * sysdeps/kfreebsd: enable the ports add-on. + * sysdeps/kfreebsd-i386.mk: ditto. + * any/local-stubs_h.diff: new patch to fix a warning in stubs.h. Closes: + #394128. + * alpha/submitted-sigsuspend.diff: new patch (fix the build on alpha) from + the libc-alpha mailing list. + + [ Denis Barbier ] + * Remove localedata/locale-en_NZ.diff (merged upstream). + * Remove localedata/locale-nr_ZA.diff (merged upstream). + * Remove localedata/new-catalan-locales.diff (merged upstream). + * Remove localedata/update-ZA.diff (merged upstream). + * Remove localedata/locale-te_IN.diff (merged upstream). + * Remove locale/iso4217-RON.diff (merged upstream). + * Update localedata/locales_CH.diff + * Update localedata/supported.diff + * Update localedata/locale-hy_AM.diff + * Update localedata/locale-csb_PL.diff + * Update localedata/dz_BT-collation.diff + * Update localedata/locale-ia.diff + * Update localedata/locales-sr.diff + * Update localedata/tailor-iso14651_t1.diff + * Update localedata/fix-lang.diff + * Update localedata/first_weekday.diff + + -- Aurelien Jarno Wed, 11 Oct 2006 16:27:42 +0200 + +glibc (2.4-1) UNRELEASED; urgency=low + + * New upstream version 2.4: + - NPTL is used instead of linuxthreads on alpha. Closes: #325600. + - NPTL being the default thread library when available, only one + version of the thread library is available (either linuxthreads or + NPTL). Closes: #399035. + - .eh_frame has been fixed. Closes: #349688. + - Fix a memory leak in getprotobyname. Closes: #365233. + - Support for MALLOC_PERTURB has been added. Closes: #350579. + - Support for 2.4 kernels has been removed. Closes: #258740. + + [ Clint Adams ] + * Remove all/cvs-manual-memory.diff (merged upstream). + * Remove all/cvs-manual-string.diff (merged upstream). + * Remove any/cvs-divdi3-moddi3.diff (merged upstream). + * Remove any/cvs-errlist.diff (merged upstream). + * Remove any/cvs-siginfo_h.diff (merged upstream). + * Remove any/cvs-regcomp_c.diff (merged upstream). + * Remove any/cvs-tst-setcontext_c.diff (merged upstream). + * Remove any/local-dash.diff (merged upstream). + * Remove any/local-gcc4-elf.diff (merged upstream). + * Remove powerpc/cvs-executable-got.diff (merged upstream). + * Remove sparc/cvs-datastart.diff (merged upstream). + * Remove sparc/cvs-gcc4-inline.diff (merged upstream). + * Remove sparc/local-gcc4-mv8.diff (merged upstream). + * Remove sparc/submitted-socket-weakalias.diff (merged upstream). + * Remove everything to do with nscd_nischeck. + * Remove any/local-linuxthreads-sizefix.diff (not necessary anymore). + * Update hppa/submitted-lt.diff. + * debian/shlibver: Bump up to 2.4-1. + * Update any/local-bashisms.diff: fix invalid test operator (==) + in run-iconv-test.sh + * debian/rules.d/build.mk: don't try to build html documentation. + * debian/sysdeps/hppa.mk: use ports and linuxthreads add-ons + * debian/sysdeps/m68k.mk: use ports and linuxthreads add-ons + * debian/sysdeps/m32r.mk: use ports and linuxthreads add-ons + * debian/sysdeps/mips.mk: use ports add-on + * debian/sysdeps/mipsel.mk: use ports add-on + * debian/sysdeps/arm.mk: use ports add-on + * Build with gcc 4.1 on all architectures but hurd-i386. + * debian/debhelper.in/nscd.init: partially sync nscd initscript + with upstream. + * Remove mips/local-librt.diff. + * debian/rules.d/tarball.mk: no longer run tar with -v. + * Add hppa/cvs-portshead.patch (update hppa code to ports HEAD) + * Add arm/cvs-portshead.patch (update arm code to ports HEAD) + + [ Denis Barbier ] + * Remove locale/complex-collate.diff (merged upstream). + * Remove locale/cvs-{iso4217,iso639}.diff, locale/cvs-localedata.diff + * Remove from any/local-forward-backward-collation.diff a chunk merged + upstream. + * debian/rules.d/tarball.mk: glibc--2.4.tar.bz2 add-on unpacks + into either or glibc--2.4, in which case it is renamed + into . + + [ Michael Banck ] + * debian/sysdeps/hurd.mk: Only use libidn for add-ons. + + [ Aurelien Jarno ] + * Update all/submitted-new-brf-encoding.diff. + * Remove alpha/cvs-gcc4-profile.diff (not needed anymore). + * Update alpha/submitted-xstat.diff. + * Update arm/cvs-gcc4-inline.diff. + * Remove arm/cvs-gcc4.1-raise.diff (merged upstream). + * Remove arm/cvs-float-byteorder.diff (merged upstream). + * Remove arm/cvs-socket-weakalias.diff (merged upstream). + * Update arm/local-ioperm.diff to reflect the new port add-on. + * Update arm/local-no-hwcap.diff to reflect the new port add-on. + * Remove any/cvs-argp_h.diff (merged upstream). + * Remove any/cvs-ctan.diff (merged upstream). + * Remove any/cvs-futimes.diff (merged upstream). + * Remove any/cvs-nfs_h.diff (merged upstream). + * Remove any/cvs-path_log.diff (merged upstream). + * Remove any/cvs-resource_h.diff (merged upstream). + * Remove any/cvs-static-getpid.diff (merged upstream). + * Remove any/cvs-tls-crashfix.diff (merged upstream). + * Add any/cvs-uio_h.diff from upstream to allow inclusion of bits/uio.h from + fcntl.h and prevent multiple inclusions. + * Remove any/local-kernel-features.diff (merged upstream). + * Update any/local-ldso-disable-hwcap.diff. + * Add any/local-linuxthreads-tst-sighandler.diff to disable + tst-sighandler{1,2} tests, which seems to be buggy. + * Update any/local-rtld.diff. + * Update any/local-sysctl.diff to reflect the new port add-on. + * Update any/local-version-sanity.diff. + * Remove any/submitted-eh-frame-terminator.diff (merged upstream). + * Update any/submitted-nis-netgrp.diff. + * Remove i386/local-i486_ldt_support.diff (merged upstream). + * Remove ia64/cvs-gcc41-atomic_h.diff (merged upstream). + * Remove hppa/cvs-linesep.diff (merged upstream). + * Remove hppa/cvs-no-ldbl-128 (merged upstream). + * Replace hppa/cvs-pie-relocs.diff by submitted-nptl-carlos.diff, see + http://lists.parisc-linux.org/pipermail/parisc-linux/2006-July/029549.html. + * Remove hppa/local-gcc-4-profile.diff (not necessary anymore). + * Update hppa/local-inlining.diff to reflect the new port add-on. + * Remove hppa/local-remove-mallocdef.diff (not necessary anymore as + spinlock ldcw fix has been applied). + * Update hppa/submitted-drop-utimes.diff. + * Remove hppa/submitted-fenv-align.diff (merged upstream). + * Remove hppa/submitted-fpu.diff (merged upstream). + * Remove hppa/submitted-iitlbp.diff (merged upstream). + * Remove hppa/submitted-sysdeps.diff (merged upstream). + * Remove hurd-i386/cvs-ioctl-pfinet.diff (merged upstream). + * Remove hurd-i386/cvs-getresuid-dyslexia.diff (merged upstream). + * Remove hurd-i386/cvs-posix-opts.diff (merged upstream). + * Update hurd-i386/submitted-sysvshm.diff. + * Remove kfreebsd/local-nscd_no_mremap.diff (not necessary anymore). + * Update kfreebsd/local-scripts.diff. + * Add kfreebsd/local-ftw.diff. + * Add kfreebsd/local-sysdeps-2.4.diff. + * Add kfreebsd/local-memusage_no_mremap.diff. + * Remove m32r/cvs-elf-m32r_rel32.diff (merged upstream). + * Update m68k/local-compat.diff. + * Update m68k/local-mathinline_h.diff to reflect the new port add-on. + * Update m68k/local-fpic.diff. + * Update m68k/local-reloc.diff to reflect the new port add-on. + * Update m68k/submitted-gcc34-seccomment.diff. + * Add mips/cvs-fork.diff (fix the path to i386/fork.c) from CVS. + * Add mips/cvs-resource.diff (fix a typo in bits/resource.h) from CVS. + * Remove mips/cvs-gcc4-inline.diff (merged upstream). + * Remove mips/cvs-gcc4-sysdeps.diff (merged upstream). + * Update mips/submitted-msq.diff to reflect the new port add-on. + * Remove powerpc/cvs-gcc41-initfini.diff (merged upstream). + * Update any/local-libgcc-compat-{all,others}.diff and split them into + any/local-libgcc-compat-{main,ports}.diff. Move mips/libgcc-compat.c to + mips/mips32/libgcc-compat.c as it is only needed for the o32 ABI, and not + needed for n32 and n64 ABIs. + * Add sparc/local-fork.diff (use fork.c instead of fork.S). + * Add any/local-__thread.diff (make glibc buildable without __thread support) + from Michael Banck. + * debian/script.in/kernelcheck.sh: set the minimum kernel version to 2.6.0, + except on m68k where it is set to 2.4.1. + * debian/sysdeps/i386.mk: install the xen flavour in /lib/i686/nosegneg and + create /etc/ld.so.conf.d/libc6-xen.conf which uses the new hwcap feature. + Closes: #363442. + * debian/FAQ: Remove LD_ASSUME_KERNEL workaround, as linuxthreads versions + of the glibc are not built anymore. + + [ Jeff Bailey ] + + * debian/control.in/libc: Move tzdata dependancy to ... + * debian/sysdeps/depflags.mk: ... here. + + * debian/sysdeps/powerpc.mk: Include biarch headers in libc6-dev-ppc64 + + * debian/patches/any/local-dynamic-resolvconf.diff: New file to + check for updated resolv.conf before a nameserver call. (Closes: + #272265). + * debian/patches/series: Use it. + + -- Clint Adams Sun, 28 May 2006 03:28:14 +0200 + +glibc (2.3.6.ds1-12) UNRELEASED; urgency=low + + [ Pierre Habouzit ] + * patches/any/cvs-sunrpc-xdrmem_setpos.diff: fix a pointer-to-cast problem + in sunrpc, backport from glibc-2.5. Closes: #389084. + * patches/any/cvs-getent-wrong-struct-size.diff: fix a bad struct size in + nss/getent.c, backport from glibc-2.5. Closes: #347358. + * patches/any/local-sysctl.diff: sysctl is back for good it seems, remove + the link warning from the patch. Closes: #410816. + + [ Aurelien Jarno ] + * debian/control.in/opt: fix a typo: Ezla -> Ezra. Closes: #410839. + + -- Aurelien Jarno Tue, 13 Feb 2007 23:43:39 +0100 + +glibc (2.3.6.ds1-11) unstable; urgency=low + + * patches/kfreebsd/local-sysdeps.diff: update to revision 1886 (from + glibc-bsd). + * patches/any/cvs-itoa-c.diff: new patch from CVS (fix sprintf %0lld when + argument equals to 0). Closes: bug#292523. + * patches/all/local-pthread-manpages.diff: fix pthread manpages. Closes: + bug#220719. + * debhelper.in/libc-otherbuild.postinst: fix handling of + /etc/ld.so.hwcappkgs. Closes: bug#409374. + * debhelper.in/libc.postinst: fix code adding /etc/ld.so.conf.d support to + /etc/ld.so.conf. Closes: bug#409516. + + -- Aurelien Jarno Sat, 3 Feb 2007 20:13:29 +0100 + +glibc (2.3.6.ds1-10) unstable; urgency=low + + * sysdeps/kfreebsd.mk: Link all machine*/ directories to support + new bi-arch headers. + * Add bi-arch support on kfreebsd-amd64: + - debian/sysdeps/kfreebsd-amd64.mk: New pass for 32-bit glibc + - debian/control.in/main: Add build-depends on libc0.1-dev-i386 + - debian/control.in/kfreebsd-i386: add libc0.1-dev-i386 and + libc0.1-i386 packages + * patches/kfreebsd/local-sysdeps.diff: update to revision 1853 (from + glibc-bsd). + * debian/control.in/libc: downgrade priority of libc-dev to optional + from standard to match overrides. + * debian/patches/hppa/cvs-clone.diff: new patch by Helge Deller + inspired from upstream CVS code (fix LTP clone04 and + clone06 test). Closes: #405411. + * debian/patches/any/cvs-zdump-64-bit.diff: new patch from CVS to fix zdump + on 64-bit architectures. Closes: #402776. + * debian/quitlrc: new file. + * debian/rules.d/quilt.mk: use debian/quiltrc instead of default ~/.quiltrc. + Closes: #406136. + + -- Aurelien Jarno Mon, 8 Jan 2007 22:29:37 +0100 + +glibc (2.3.6.ds1-9) unstable; urgency=low + + [ Aurelien Jarno ] + * patches/kfreebsd/local-sysdeps.diff: update to revision 1775 (from + glibc-bsd). + * debian/po/eu.po: new file, thanks to Piarres Beobide. Closes: #398984. + * debian/wrapper/objcopy: remove useless .debug_loc (patch from Daniel + Jacobowitz). Closes: #399217. + * debian/po/de.po: Fix German translation. Closes: #372817. + + [ Michael Banck ] + * patches/hurd-i386/submitted-futimes.diff: Moved to ... + * patches/hurd-i386/cvs-futimes.diff: ... here, updated with the + version committed upstream by Roland McGrath. + + -- Aurelien Jarno Thu, 7 Dec 2006 11:27:42 +0100 + +glibc (2.3.6.ds1-8) unstable; urgency=high + + * any/local-iconv-fix-trampoline.diff: new patch (fix iconvconfig segfault + when run under exec-shield, PaX or similar) from hlfs. Closes: #397020. + * debian/po/ro.po: new file, thanks to Stan Ioan-Eugen. Closes: #395348. + * debhelper.in/locales.prerm; debhelper.in/locales.prerm, + debhelper.in/locales-all.prerm: fixed bad interactions between locales + and locales-all. Closes: #396354. + * patches/kfreebsd/local-sysdeps.diff: update to revision 1703 (from + glibc-bsd). + + -- Aurelien Jarno Sat, 4 Nov 2006 23:36:19 +0100 + +glibc (2.3.6.ds1-7) unstable; urgency=low + + [ Aurelien Jarno ] + * New any/local-no-pagesize.diff (remove the usage of PAGE_SIZE) by + Steve Langasek. Closes: #394385. + + -- Aurelien Jarno Sat, 21 Oct 2006 22:41:39 +0200 + +glibc (2.3.6.ds1-6) unstable; urgency=low + + [ Aurelien Jarno ] + * Improve the heuristic used to detect other copy of the C library. Closes: + #390950. + * Add m68k/local-pthread_lock.diff (fix deadlock with pthread_spinlock) by + Roman Zippel. Closes: #385917. + * Build-conflicts with buggy gcc-4.1 (= 4.1.1-14). Closes: #391485. + + -- Aurelien Jarno Sat, 7 Oct 2006 23:54:49 +0200 + +glibc (2.3.6.ds1-5) unstable; urgency=low + + [ Aurelien Jarno ] + * debian/local/manpages/ldconfig.8: Update the manpage. Closes: #325921. + * debian/local/manpages/ld.so.8: Update the manpage. Closes: #171145, + #357676, #280027. + * rules.d/debhelper.mk: don't make ld.so.8.gz or ld.so.conf executable. + * debian/FAQ: specify that LD_ASSUME_KERNEL does not work on amd64. + Closes: #386924. + * patches/any/cvs-sqrt.diff: New patch from upstream to fix sqrt computation + for negative imaginary number. Closes: #388852. + + [ Michael Banck ] + * Add hurd-i386/cvs-getsid.diff (fix getsid(0) on the Hurd) by + Samuel Thibault (patch from glibc-2.4). + * Add hurd-i386/submitted-futimes.diff (fix touch on the Hurd) by + Thomas Schwinge and Samuel Thibault. Closes: #388785. + + [ Denis Barbier ] + * Add sr_ME and sr_RS locales, and keep sr_CS for backward compatibility. + * First weekday is Sunday in Brazil. Closes: #385859 + Thanks Gunther and Felipe Augusto van de Wiel. + + -- Aurelien Jarno Sun, 1 Oct 2006 18:48:27 +0200 + +glibc (2.3.6.ds1-4) unstable; urgency=low + + * debian/control.in/opt: add a new line at the end of the file. (Closes: + #384375). + * debian/rules.d/control.mk: add a check to make sur that all files in + debian/control.in have a new line at the end. + + -- Aurelien Jarno Thu, 24 Aug 2006 00:21:25 +0200 + +glibc (2.3.6.ds1-3) unstable; urgency=low + + * patches/any/cvs-sysctl.diff: patch from upstream to fix the sysctl() + problem for NPTL. + * patches/any/local-sysctl.diff: remove the NPTL fix from this patch, apply + the same kind of fix for linuxthreads than for NPTL. (Closes: #383976). + * patches/any/local-sysctl.diff: fix for arm. + * patches/any/local-bashisms.diff: fix bashisms in the testsuite. + * debian/control.in/{i386,powerpc,ppc64,s390x,sparc64}: change the bi-arch + package priority to optional (but keep libc6-i386 on amd64 to standard). + (Closes: #344253). + * debian/control.in/opt: Removed the comment about the IBM's JDK in the + descriptions of the optimized packages, as an NPTL version is also present + in the main libc. + * debian/rules.d/build.mk: force the locale directory to /usr/lib/locale. + This way the 32-bit libc6 on amd64 is able use the locales correctly (it + was already done for other bi-arch architectures). (Closes: #379959). + + -- Aurelien Jarno Wed, 23 Aug 2006 00:38:22 +0200 + +glibc (2.3.6.ds1-2) unstable; urgency=low + + [ Aurelien Jarno ] + * rules.d/build.mk: removed the call to texi2html. (Closes: #383276). + * New debian/patches/any/cvs-ctermid.diff from upstream to fix a segfault in + ctermid(NULL). Thanks Denis for the hint. (Closes: #380504, #383362). + * New debian/patches/localedata/reverted-for-etch.diff: revert a few + locales changes done in 2.3.6.ds1-1 and refused by the release managers: + - locales/vi_VN: Various fixes + - locales/ru_RU: Use U2002 for thousands_sep and mon_throusands_sep. + + [ Denis Barbier ] + * debian/patches/localedata/cvs-localedata.diff: A new test target + tst-strfmon1 was previously added into localedata/Makefile, + so add localedata/tst-strfmon1.c to really perform this test. + + -- Aurelien Jarno Thu, 17 Aug 2006 00:32:25 +0200 + +glibc (2.3.6.ds1-1) unstable; urgency=low + + [ Denis Barbier ] + * New all/submitted-uninitialized-byte-LC_CTYPE.diff patch to fix + uninitialized bytes or misaligned words in locale files. + * debian/debhelper.in/locales-all.postinst: Make localedef silent, and + fix an error, this script could not be run more than once. + * debian/debhelper.in/locales-all.prerm: New file, to remove + /usr/lib/locale/locale-archive. Thanks Lars Wirzenius. + (Closes: #382136) + * debian/debhelper.in/locales.postinst: Pass --no-checks to update-locale + to not break installation of this package even if non working locales + are selected. Thanks Robert Millan. (Closes: #365628) + * debian/patches/locale/cvs-iso4217.diff: Update to CVS 2006-08-12. + * debian/patches/localedata/cvs-localedata.diff: Update to CVS 2006-08-12 + Among other changes: + * New locale files: as_IN, ca_AD, csb_PL, el_CY, fr_AD, it_AD, nr_ZA, + or_IN, pa_PK and tr_CY. + * charmaps/MIK: New file. + * Sync bg_BG bs_BA es_MX ru_RU tg_TJ tt_RU with latest iso-4217.def + * Add transliateration support to LC_CTYPE for most locales. + * Fix date fields for several *_IN locales. + * locales/{*_ZA,ro_RO,vi_VN}: Various fixes + * locales/de_DE: Fix date_fmt. + * locales/hu_HU: Better month name abbreviations. + * locales/pl_PL: Don't ignore U0020 in collation. + * locales/ru_RU: Use U2002 for thousands_sep and mon_throusands_sep. + * locales/es_UY: Change currency_symbol. Closes: #378151 + * locales/de_CH: Change thousand separator to '. + * The following patches have been merged into localedata/cvs-localedata.diff + and are dropped: + locale/iso4217-RON.diff localedata/locale-ro_RO.diff + localedata/new-catalan-locales.diff localedata/locale-te_IN.diff + localedata/locale-nr_ZA.diff localedata/update-ZA.diff + + [ Aurelien Jarno ] + * sysdeps/{powerpc,s390,ia64}.mk: make the NPTL version buildable on 2.4 + kernels. + * New any/local-sysctl.diff patch to remove the annoying warning messages + that appear with 2.6.18+ kernels, and to warn users to not use sysctl(). + * debian/debhelper.in/libc.postinst: update list of optimized glibc + packages. Thanks Petr Salinger. (Closes: #383168). + * New any/cvs-static-getpid.diff patch from upstream to fix getpid() in + statically linked programs on some architectures. (Closes: #367656). + + -- Aurelien Jarno Tue, 15 Aug 2006 23:01:43 +0200 + +glibc (2.3.6-19) unstable; urgency=low + + [ Michael Banck ] + * debhelper.in/libc-udeb.install.hurd-i386: New file; libpthread is + not part of glibc on the Hurd. + + [ Aurelien Jarno ] + * Ship librt in the libc udeb (closes: bug#381881). + + -- Aurelien Jarno Tue, 8 Aug 2006 18:18:48 +0200 + +glibc (2.3.6-18) unstable; urgency=medium + + (urgency set to medium as it fixes a FTBFS) + + [ Aurelien Jarno ] + * Update ia64/cvs-gcc41-atomic_h.diff again (fix build failure with gcc-4.1, + nptl part) from upstream. + + -- Aurelien Jarno Tue, 1 Aug 2006 16:59:33 +0200 + +glibc (2.3.6-17) unstable; urgency=medium + + (urgency set to medium as it fixes a FTBFS) + + [ Aurelien Jarno ] + * Update ia64/cvs-gcc41-atomic_h.diff (fix build failure with gcc-4.1) from + upstream. + + [ Michael Banck ] + * debian/sysdeps/hurd.mk: Disable RUN_TESTSUITE. + + -- Aurelien Jarno Sun, 30 Jul 2006 21:25:32 +0200 + +glibc (2.3.6-16) UNRELEASED; urgency=low + + (urgency set to medium as it fixes a FTBFS) + + [ Aurelien Jarno ] + * Add arm/cvs-gcc4.1-raise.diff (fix build failure with gcc-4.1) from + upstream. + * Add ia64/cvs-gcc41-atomic_h.diff (fix build failure with gcc-4.1) from + upstream. + * Build with gcc 4.1 on all architectures but hurd-i386. + * debian/sysdeps/s390.mk: switch s390x to nptl. + * debian/rules.d/build.mk: use ld.so libc.so instead of libc.so to + determine if the host CPU is able to run the testsuite. + * debian/sysdeps/kfreebsd.mk: also use the nfs/ directory from kernel + headers. + * debian/sysdeps/kfreebsd.mk: also use the nfs/ directory from kernel + headers. + * patches/kfreebsd/local-sysdeps.diff: update to revision 1631 (from glibc-bsd). + * debian/local/manpages/iconv.1: fixed the description of the --silent + option. (Closes: #375741) + * debian/local/manpages/iconv.1: fixed the use of the TH keyword. (Closes: + #372510) + * debian/locales-all.README.Debian: File removed, it is useless now. + (Closes: #378191) + * Update Russian debconf translation, by Yuri Kozlov. (Closes: #379395) + * debian/debhelper.in/libc.postinst: add /etc/ld.so.conf.d/ support. + * Drop any/local-ldconfig-multiarch.diff, use /etc/ld.so.conf.d/ to + configure multiarch libraries. + * Update m68k/local-mathinline_h.diff (fix bits/mathinline.h), by Roger Leigh. + (Closes: #340871) + + [ Denis Barbier ] + * debian/control.in/main: also make locales Conflicts: belocs-locales-bin. + * debian/debhelper.in/locales.config: some programs keep modifying + /etc/environment to store locale variables, so read /etc/environment + even when upgrading new versions. Of course, /etc/default/locale has + still a higher precedence over /etc/environment. (Closes: #363644) + * Add new Lithuanian debconf translation, by Gintautas Miliauskas. + (Closes: #374365) + * Update Brazilian Portuguese debconf translation, by Felipe Augusto + van de Wiel. (Closes: #375451) + * debian/debhelper.in/libc.postinst: Call iconvconfig to generate + /usr/lib/gconv/gconv-modules.cache. (Closes: #376811) + * debian/debhelper.in/libc.postrm: Remove this cache file. + + -- Aurelien Jarno Thu, 8 Jun 2006 08:03:49 +0200 + +glibc (2.3.6-15) unstable; urgency=low + + * debian/rules.d/build.mk: generate a test log file even if the testsuite + is disabled, too make debhelper 5 happy. + + -- Aurelien Jarno Thu, 8 Jun 2006 08:02:47 +0200 + +glibc (2.3.6-14) unstable; urgency=low + + [ Aurelien Jarno ] + * debian/debhelper.in/nscd: explicitely list the tables to invalidate. + (Closes: #370124) + * debian/debhelper.in/nscd: create /var/run/nscd if it does not already + exist. (Closes: #370122) + * Update m68k/local-mathinline_h.diff (fix bits/mathinline.h), by Roger Leigh. + Enable it. (Closes: #340871) + * debian/debhelper.in/libc.preinst: also check for other copies of the libc in + /lib32 and /lib64. + * debian/debhelper.in/libc.preinst, debian/rules.d/debhelper.mk: only use + the default system linker when searching for other copies of the libc. + * debian/sysdeps/i386.mk: make /lib/i386-linux-gnu and /usr/lib/i386-linux-gnu + symlinks relative. + * debhelper.in/libnss-dns-udeb.install, debhelper.in/libnss-files-udeb.install: + fix the installation path. (Closes: #370523) + * patches/kfreebsd/local-sysdeps.diff: update to revision 1583 (from glibc-bsd) + to fix the build with gcc-4.1. + * patches/m32r/local-ports-m32r.diff: remove libc_cv_gcc_unwind_find=yes + from m32r/configure by Kazuhiro Inaoka. (Closes: #371052) + * rules.d/debhelper.mk: don't install librpcsvc.a when cross-compiling. + (Closes: #369657) + * debian/compat, debian/control.in/main: switch to debhelper 5.0. + + [ Denis Barbier ] + * debian/patches/localedata/tailor-iso14651_t1.diff: Fix several collation + rules, which could cause errors in regular expressions with character + ranges, in particular with et_EE locale. (Closes: #362514) + * debian/patches/localedata/locale-csb_PL.diff + * debian/patches/localedata/locale-ro_RO.diff + * debian/patches/localedata/locale-se_NO.diff: Apply similar fixes. + * debian/main/control.in: make locales Conflicts: belocs-locales-data. + + -- Aurelien Jarno Wed, 7 Jun 2006 23:16:58 +0200 + +glibc (2.3.6-13) unstable; urgency=low + + * debian/patches/alpha/local-gcc4.1.diff: fix a small typo. sigh. + * debian/control.in/main: build-depends on libc6-dev-s390x on s390. + * Remove any/local-libgcc-static.diff. (Closes: #369636, #369641) + + -- Aurelien Jarno Wed, 31 May 2006 07:20:14 +0200 + +glibc (2.3.6-12) unstable; urgency=low + + * Don't do a udeb pass, it is still too buggy. (Closes: #369492) + * debian/control.in/main: build-depends on libc6-dev-sparc64 on sparc. + * Add patches/alpha/local-gcc4.1.diff (fix build with gcc-4.1) from + Falk Hueffner. + * patches/kfreebsd/local-sysdeps.diff: update to revision 1571 (from + glibc-bsd). + + -- Aurelien Jarno Tue, 30 May 2006 22:35:35 +0200 + +glibc (2.3.6-11) unstable; urgency=low + + [ Aurelien Jarno ] + * debian/rules/build.mk: don't remove ld.so from udeb packages. + * debian/rules: move udeb_add-ons to debian/sysdeps/{kfreebsd,linux}.mk. + * M32R support: (Closes: #366962) + - debian/rules.d/control.mk: add m32r. + - Add debian/sysdeps/m32r.mk. + - Add debian/patches/any/cvs-futimes.diff (use fnctl64 if fnctl is no + available). + - Add debian/patch/any/local-kernel-features.diff (fix the include path + for kernel-features.h) so that it could be used from other files. + - Add debian/patches/any/local-libgcc-static.diff (link with libgcc_s). + - Add debian/patches/m32r/local-ports-m32r.diff (m32r support). + - Add debian/patches/m32r/cvs-elf-m32r_rel32.diff (Add R_M32R_REL32 to + elf/elf.h). + * debian/local/manpages/localedef.1: fix a typo. (Closes: #310477) + * debian/local/manpages/iconv.1: fix the indentation (Closes: #316148) + * debian/local/manpages/iconv.1, debian/local/manpages/localedef.1: change + sarge into etch. + * debian/sysdeps/kfreebsd.mk: build the udeb package with -Os on + kfreebsd-i386 and kfreebsd-amd64. + * debian/sysdeps/*.mk: build the udeb with -Os, except on m68k and s390. + * debian/sysdeps/hppa.mk: build the udeb with gcc 4.1. + mipsel, powerpc and sparc. + * debian/sysdeps/arm.mk: set udeb_MIN_KERNEL_SUPPORTED to 2.4.1, as the + arm build daemons are still running a 2.4 kernel. + * debian/sysdeps/sparc.mk: set udeb_MIN_KERNEL_SUPPORTED to 2.4.1, as d-i + still needs a 2.4 kernel. + * patches/kfreebsd/local-sysdeps.diff: update to revision 1577 (from + glibc-bsd). + * Add debian/patches/powerpc/cvs-gcc41-initfini.diff (fix build with gcc 4.1 + on powerpc) from upstream CVS. + * debian/sysdeps/i386.mk: add a symlink (/usr)/lib/i386-linux-gnu -> + (/usr)/lib/i486-linux-gnu. + * Remove patches/i386/local-sse-oldkernel.diff (we don't support 2.2 kernels + anymore). + * Merge debian/local/etc_init.d/nscd and debian/debhelper.in/nscd.init. + (Closes: #368587) + * Remove debian/local/etc_init.d/nscd. + + [ Denis Barbier ] + * Add patches/all/submitted-new-brf-encoding.diff: Add new BRF encoding + (ASCII Braille), submitted upstream by Samuel Thibault. + * Add patches/localedata/locale-zh_TW.diff: Remove from + dates. Thanks Dan Jacobson (Closes: #352600) + + [ Clint Adams ] + * debian/debhelper.in/libc.preinst: use POSIX syntax for kill. + * debian/control.in/main: bump to Standards-Version 3.7.2. + + -- Aurelien Jarno Tue, 30 May 2006 02:28:33 +0200 + +glibc (2.3.6-10) unstable; urgency=low + + [ Aurelien Jarno ] + * debian/debhelper.in/libc.preinst: use the original path if readlink -f + fails to canonicalize the path. (Closes: #368116) + * Add patches/arm/local-softfloat.diff (support for arm softfloat), and + enable on arm-softfloat only, as it breaks other architectures. (Closes: + #358772) + * debian/rules.d/control.mk: Add arm-softfloat to the architectures list. + * Do a separate pass for the udeb package, so that it could use different + build options. + * Set the minimum kernel to 2.6.1 for the udeb package, except for i386, + m68k, mips, mipsel, powerpc and s390. + * Enable the locales-all package. (Closes: #308020) + * debian/sysdeps/i386.mk: build the glibc with --without-__thread again on + i386 (Closes: #368022, #368326). + * debhelper.in/libc.preinst, debhelper.in/libc-otherbuild.postinst, + debhelper.in/libc.postinst, debhelper.in/libc-otherbuild.preinst: use + /bin/sh instead of /bin/bash. (Closes: #267594) + * patches/kfreebsd/local-sysdeps.diff: update to revision 1571 (from + glibc-bsd). + + -- Aurelien Jarno Sun, 21 May 2006 22:36:27 +0200 + +glibc (2.3.6-9) unstable; urgency=low + + * Don't run make install with -j, as it is not SMP safe. + + -- Aurelien Jarno Thu, 18 May 2006 17:54:39 +0000 + +glibc (2.3.6-8) unstable; urgency=low + + [ Aurelien Jarno ] + * Disable m68k/local-mathinline_h.diff, it breaks the build of the glibc on + m68k. + * Add all/local-pt_BR.diff (fix a small typo in the Brazilian Portuguese + translation) by Guilherme de S. Pastore. (Closes: #319422) + * Add hurd-i386/local-mlock.diff (fix mlock on Hurd/Mach), by Samuel + Thibault. (Closes: #349204) + * sysdeps/i386.mk: build glibc with --with-__thread on i386. + * debian/local/manpages: s/woody/etch/g. (Closes: #364198) + * sysdeps/depflags.pl: bumped the versioned conflicts with initrd-tools + to 0.1.84.1, as older version use LD_ASSUME_KERNEL=2.4. (Closes: #365647) + * Follow symlinks while checking for other copy of the C library. + (Closes: #365838) + * Invalidate nscd cache when calling /etc/init.d/nscd restart. + (Closes: #365676, #365677) + * /usr/sbin/tzconfig: set umask to 022. (Closes: #367145) + * debian/main/control.in: make locales Replaces: lliurex-belocs-locales-data. + (Closes: #365651) + * Move the NJOBS part to debian/sysdeps/(system) to debian/rules. + * debian/debhelper.in/libc-otherbuild.postinst: fixed parsing of + /etc/ld.so.hwcappkgs. (Closes: #364666) + + [ Denis Barbier ] + * Fix location of locales/NEWS.Debian. Thanks Matthijs Mohlmann. + (Closes: #362763) + * locales.postinst: Do not abort if the current locale is not generated. + * locales.config: Fix shell scripting when "All locales" is selected along + with other choices, Thanks Olivier Trichet. (Closes: #364251) + * update-locale: When checking for invalid locale settings, do not mess up + with current environment settings. + * Remove sem_*.3 manual pages from glibc-doc, these manual pages are updated + and maintained in the manpages-dev package. (Closes: #365547) + + [ Michael Banck ] + * Add hurd-i386/cvs-posix-opts.diff (Define many missing options, most + notably _POSIX_THREAD_SAFE_FUNCTIONS) by Roland McGrath (patch from + HEAD). + + -- Aurelien Jarno Thu, 18 May 2006 15:34:08 +0000 + +glibc (2.3.6-7) unstable; urgency=medium + + [ Aurelien Jarno ] + * Urgency set to medium because this version fixes and RC bug in testing. + * Optimized libraries should actually be cross-compiled as we don't know the + CPU that will be used. + * Allow the glibc to be cross-compiled for Linux and kFreeBSD. (Closes: + #358771) + * Bumped the minimum kernel to 2.4.1 instead of 2.4.0 as there are some + important new features in this version. Thanks to Petr Salinger for + noticing me. + * Add m68k/local-mathinline_h.diff (fix bits/mathinline.h), by Roger Leigh. + (Closes: #340871) + * Add beginning and end timestamps to both the build logs and the + testsuite logs. (Closes: #155690) + * debian/sysdeps/sparc.mk: build sparcv9b optimized libraries with + -mtune=ultrasparc3. + * debian/sysdeps/kfreebsd/local-sysdeps.diff: update from the latest SVN. + * debian/patches/series: Fix the patchlevel for local-i486_ldt_support.diff + (Closes: #226716) + * Fix a typo in the previous changelog entry (s/not/now/). (Closes: #362460) + + [ Denis Barbier ] + * Remove ldd calls from libc.preinst. + * Do no more transfer variables from /etc/environment to /etc/default/locale + in locales.postinst, but instead add /usr/share/doc/locales/NEWS.Debian + to explain that /etc/environment needs to be cleaned up. + (Closes: #361048) + * Create a new locales-all package with all supported locales precompiled, + but keep it disabled for now. + Both locales and locales-all packages provide a virtual generated-locales + package. Packages which currently depends on locales should instead + depend on 'locales | generated-locales'. + * Add a new ca_ES@valencia locale, requested by Robert Millan (Closes: #361972) + + -- Aurelien Jarno Fri, 14 Apr 2006 13:48:30 +0200 + +glibc (2.3.6-6) unstable; urgency=low + + [ Aurelien Jarno ] + * Remove the timezone database from the libc6 package. It is now provided + by a separate package called tzdata. + * Put each test log file in the corresponding package instead of putting all + of them in libc6. + * Remove sparc/local-sparc64-fixups.diff as /lib64 and /usr/lib64 are now a + default search path on 32/64-bit architectures. + * Switch minimum kernel to at least 2.4.0 on all arches but m68k, and change + kernelcheck.sh accordingly. Affected architectures: + - alpha: from 2.2.0 to 2.4.0 + - arm: from 2.2.0 to 2.4.0 (but 2.4.0 was checked at installed time) + - i386: from 2.2.0 to 2.4.0 + - powerpc: from 2.2.0 to 2.4.0 + - s390: from 2.2.10 to 2.4.0 + - sparc: from 2.2.0 to 2.4.0 + (Closes: #174270, #220992) + * Add i386/local-i486_ldt_support.diff (add ldt support and thus TLS support + on i486 machines). Thanks to Petr Salinger for the hint. (Closes: #226716) + * Bump shlib to (>= 2.3.6-6) on i386. + * debian/debhelper.in/libc-alt.install: Add gconv-modules to the bi-arch + packages. (Closes: #361642) + * /etc/ld.so.nohwcap is now supported on non-Linux architectures. Drop the + "Linux" check from libc-otherbuild.preinst. + * Build a libc6-xen flavour on i386. + * Fix a typo in the description of the libc6-sparcv9 and libc6-sparcv9b + packages. + * local/usr_sbin/tzconfig: + - Put a copy of the current timezone into /etc/localtime instead of a + symlink. (Closes: #346342) + - Handle the case where /etc/localtime does not exists. (Closes: + #360383). + * local/manpages/tzconfig.8: Update the manpage accordingly. + * script.in/kernelcheck.sh: Also take in account 64-bit mips(el) kernels. + * Add GNU/kFreeBSD patches, using conditional patching until they get + accepted upstream. + * Correctly replace DEB_HOST_ARCH by its value in libc6.preinst. Thanks to + Denis for noticing me. + + [ Denis Barbier ] + * debian/debhelper.in/locales.config: /etc/locale.gen was not generated at + initial installation. (Closes: #357523) + * update-locale: Fix buggy sanity check between LANGUAGE and LANG. + (Closes: #361091) + * update-locale: Drop the --remove flag, it is useless. + * update-locale: Fix the --locale-file flag. + * Add new Galician debconf translation, by Jacobo Tarrio. (Closes: #361101) + * Use new features of po-debconf 1.0 to remove unneeded strings from PO + files. + * Fix day, abmon and mon fields for wo_SN locale. (Closes: #361338) + + [ Michael Banck ] + * Add hurd-machrules-make.diff (fixes build problems with make-3.81 for + Mach interface generation rules) by Roland McGrath (patch from HEAD). + * Add hurd-sysvshm.diff (implements SysV shared memory for GNU/Hurd) + by Marcus Brinkmann. + + -- Aurelien Jarno Mon, 10 Apr 2006 20:19:55 +0200 + +glibc (2.3.6-5) unstable; urgency=low + + [ Denis Barbier ] + * Add am_pm formatting information to en_NZ. (Closes: #356328) + * Add interlingua locale. (Closes: #224756) + * Move locale variables from /etc/environment into a dedicated + /etc/default/locale file. (Closes: #214898, #349503) + * Add a new /usr/sbin/update-locale program to handle this new file. + + [ Aurelien Jarno ] + * Fix ldconfig multiarch patch for reiserfs filesystems. + * Make ldconfig look into /lib32 and /usr/lib32 on amd64. Add /lib32 -> + /emul/ia32-linux/lib and /usr/lib32 -> /emul/ia32-linux/usr/lib links. + * Remove glibc235-gcc4-ppc-procfs.diff from debian/patches/series. + (Closes: #360126) + * Add siginfo_h.diff (fixes a typo in ILL_ILLOPN definition), backported + from upstream. (Closes: #358041) + * Replace getcwd_ia64.diff by getcwd_c.diff (fix getcwd on platforms where + PAGE_SIZE >> PATH_MAX), backported from upstream. (Closes: #355109) + * debian/control: drop alternative build-depends on ia32-libs-dev as this + package does not exist anymore. + + -- Denis Barbier Tue, 4 Apr 2006 18:07:21 +0200 + +glibc (2.3.6-4) unstable; urgency=low + + [ Aurelien Jarno ] + * Set configure_build to the same value as configure_host for sparc + optimized libraries (as on i386). This way they will be tested. + * If the CPU has biarch support, run tests for cross-compiled libraries. + * Remove ld.so from optimized libraries as it is not used. + * Add regcomp_c.diff (Call __libc_lock_init after init_dfa) from upstream + (Ulrich Drepper). This make possible to run the testsuite again on hppa. + * Enable the testsuite on hppa. + * Add tst-setcontext_c.diff (fix the arguments passed to setcontext during + test) from upstream. + * Create a link /usr/lib32 -> /emul/ia32-linux/usr/lib on amd64. + * Add argp_h.diff fixes (Remove __NTH for __argp_usage inline function) + by Ulrich Drepper (patch from HEAD). (Closes: #355264) + * Add getcwd_ia64.diff (Remove the assertion so that the behaviour is the + same on all platforms, including ia64). This is a temporary fix to bug + #355109, until the upstream takes a decision. + * debian/sysdeps/kfreebsd-amd64.mk: + - s/libc6/libc0.1/g + - Change rtlddir from /lib64 to /lib + + [ Denis Barbier ] + * locales.config: If $DEBCONF_IS_A_REGISTRY is set to a non-empty value, + the content of /etc/locale.gen does not override debconf values. + * Add strfmon.diff: the negative sign is not printed by strfmon when + current locale defines sign_posn == 4 (as in de_CH) and format + argument contains the ! modifier. + * Fix forward-backward-collation.diff: the change in strcoll_l.c has to + be applied at several places. (Closes: #357390) + * Update timezone data files to tzdata2006b (no data change, only comments). + * Fix resource_h.diff: there was a typo for mips: + s/_RLIMIT_RTPRIO/__RLIMIT_RTPRIO/ (Closes: #357419) + + -- Denis Barbier Sat, 18 Mar 2006 10:26:45 +0100 + +glibc (2.3.6-3) unstable; urgency=low + + [ Aurelien Jarno] + * Use a shell function instead of ifneq when testing a variable depending on + $(curpass), otherwise it is only evaluated at the first pass. + * Add support for the ppc64 architecture. (Closes: #301438). + * Use the new slibdir, libdir, rtlddir variables to build the various + flavours of the libc. Put them directly in the final directory, and + remove the corresponding tweaks done after the make install phase. + * Install the 32-bit libraries in /emul/ia32-linux(/usr)/lib on amd64. + * Only create the multiarch directories and the symlinks in /lib/ldconfig + for the main pass. Otherwise alternate libraries would conflict with the + main one when using multiarch. + * Fix the build-dependencies for kfreebsd-amd64. + * Add sysdeps/kfreebsd-amd64.mk and add kfreebsd-amd64 to + rules.d/control.mk. + * Make libc6-i386-dev conflicts with all versions of ia32-libs-dev. As it + won't be built anymore on amd64, this will automatically remove it during + the upgrade. + + [ Clint Adams ] + * Get rid of -o as a binary operator to [ in tzconfig and postinst. + + [ Denis Barbier ] + * Update localedata/locales/ro_RO. Thanks Eddy PetriÅŸor. (Closes: #347173) + * Bump LOCALES_DEP_VER to 2.3.6-2. All locales can be compiled with + localedef from 2.3.6-2 and 2.3.6-3. (Closes: #352620) + * Updated Italian debconf translation, by Luca Monducci. + + -- Aurelien Jarno Wed, 1 Mar 2006 17:11:36 +0100 + +glibc (2.3.6-2) unstable; urgency=low + + [ Denis Barbier ] + * Modify debver2localesdep.pl, locales-depver and control files to provide + a smooth upgrade in unstable when locales require changes in localedef. + This is the first part for solving #352620, the proper dependency for + locales will be set by the next upload. + * debian/control: Clean up. Remove versioned dependencies on gettext, + debianutils, tar, texinfo; these versions were already in oldstable. + Drop references to localebin, wg15-locale, i18ndata, locale-ja, locale-ko, + locale-vi, locale-zh, libc6-doc, glibcdoc and libc6 (<< 2.1-4). + * debian/control: Split Build-Depends on several lines for readability + purpose. + * Add RON to locale/iso-4217.def and bump LOCALES_COMPAT_VER to 2.3.6-2. + * Fix thousand separator for de_CH, and let other Swiss locales copy + de_CH for LC_NUMERIC and LC_MONETARY sections. (Closes: #345481) + * Apply a patch from Fedora to define AM/PM strings in cy_GB and en_GB + locales. (Closes: #240901) + * Fix the week definition for the C locale. + * Check first_weekday fields against current CLDR snapshot. Modified + locales are *_GB (=2), ar_SY (=5), ms_MY (=2), id_ID (=2). Add + this field to more locales. + * locale-gen: Replace 'test ... -a ...' by two tests. + * Add an "All locales" option to the locales/locales_to_be_generated + template. When it is selected, /etc/locale.gen is a symlink to + /usr/share/i18n/SUPPORTED. (Closes: #321580, #323013) + * Updated debconf translations: (Closes: #353611) + - Brazilian Portuguese, by André Luís Lopes (Closes: #352416) + - Czech, by Miroslav Kure + - Danish, by Morten Brix Pedersen + - Dutch, by Bart Cornelis + - French, by Denis Barbier + - German, by Helge Kreutzmann + - Polish, by Emilian Nowak + - Portuguese, by Simão Pedro Cardoso + - Spanish, by Carlos Valdivia Yagüe + - Swedish, by Daniel Nylander + - Ukrainian, by Eugeniy Meshcheryakov + + [ Clint Adams ] + * Add hurd-getresuid-dyslexia.diff (fixes incorrect ordering of + arguments) with patch from Samuel Thibault. (Closes: #352500) + * Add hppa-no-ldbl-128.diff (stops implying that PA needs + 128-bit long double support in glibc) from Aurelien Jarno. + (Closes: #344836). + * debian/local/manpages/locale.1: remove double quotes from + synopsis. (Closes: #352597) + + [ Aurelien Jarno ] + * Move dependency on lib64gcc1 from libc6-amd64 to libc6-dev-amd64 to + avoid a dependency loop. (Closes: #352263) + * Use sed and test in /etc/init.d/glibc.sh to compare kernel versions. + Put the Debian architecture name in the script at build time instead + of using 'dpkg --print-architecture'. Thanks to Florent Bayle for + the idea. (Closes: #325802, #328088, #339482) + * Fix example code showing how to use hooks for malloc. (Closes: + bug#333565). + * Add hurd-ioctl-decode-argument.diff (fixes decoding of ioctl + arguments) from Samuel Thibault. (Closes: #320273) + * Fix the prototype of sbrk() in the manual. (Closes: #281863) + * Fix the strcasestr() examples in the manual. (Closes: #289853) + * Install libc_nonshared.a in /usr/lib/nptl, and fix the location + of the static libraries of the NPTL ld scripts. (Closes: #347762) + * Update debian/ files for GNU/kFreeBSD. (Closes: #351638) + * Regenerate debian/control, generate debian/control.in/libc0.1. + * Lintian cleans: + - Remove build-dependencies on tar and debianutils, they are + build-essential packages + - Fix FSF postal address + - Use policy compliant links in libc6-dev-amd64 + - Use an absolute symlink for /lib64 on amd64 + * Add myself to Uploaders. + * Switch to gcc-4.0 on powerpc. + * Remove old hack for gcc-3.4 on amd64. + * Build with the compiler defined as default for glibc (ie currently + gcc-4.0) instead of gcc on amd64. + * Decrease priorities of 64-bit main and -dev packages to standard + and optional for all architectures. It better matches override, + though it will still have to be changed. + * Fix glibc235-hppa-lt.diff (restore ret0 across calls to CDISABLE) + from Randolph Chung. (Closes: #326581) + * Switch to gcc-4.0 on hppa. + * Add support for extra_pkg_install hooks for udeb packages. + * Build back with -g1 on amd64, it was removed to permit the build with + gcc-3.4. + * Remove --with-tls and --with-__thread in sysdeps/* as they are the + default option since version 2.3.5. + * Multiarch support: + - Add ld-multiarch.diff (add (/usr)/lib/$(config-machine)-$(config-os)) + to the search path of the dynamic linker) from Tollef Fog Heen. + (Closes: #295855) + - Add ldconfig-multiarch.diff (add directories pointed from /lib/ldconfig + to the search path). + - Create (/usr)/lib/$(config-machine)-$(config-os) and add symlinks to + these directories in /lib/ldconfig/ + - Add rtld.diff (add a new configuration variable rtlddir to change the + dynamic linker in the ELF binaries) partly from Andreas Jochen. This is + necessary to be able to install a glibc in the multiarch dir while still + conforming to the various ABIs which specify a linker in /lib or /lib64. + * Remove the patch to install the libc into /lib instead of /lib64 on + amd64. Use the new libdir, slibdir and rtlddir options in configparm to + install the glibc in (/usr)/lib, and to use the dynamic linker path + specified by the ABI for path for libc objects. (Closes: #325226) + * Add -u option to the ldd manpage. (Closes: #354074) + * Merged a patch from Michael Banck to use gcc-4.0 on Hurd. + * Add resource_h.diff (RLIMIT_NICE and RLIMIT_RTPRIO support) from MAIN. + (Closes: #352636) + * Add hppa-inlining.diff (Increase the maximal overall growth of the + compilation unit caused by inlining for dl-reloc.c on hppa). + * Build a 32-bit libc on amd64, using the new multiarch directories. + (Closes: #274367) + + -- Aurelien Jarno Thu, 23 Feb 2006 17:47:58 +0100 + +glibc (2.3.6-1) unstable; urgency=low + + [ Denis Barbier ] + * debian/debhelper.in/libc.postinst: Restart webmin on upgrade. + (Closes: #345641) + * debian/debhelper.in/libc.postinst: Restart dropbear on upgrade. + (Closes: #351036) + * Fix yesexpr/noexpr in tl_PH locale. Reported by eric pareja. + (Closes: #295810) + * Fix langinfo(_NL_TIME_FIRST_WEEKDAY) for C locale. Reported by + Graham Wilson (Closes: #327025) + * Add first_weekday fields to most locales. + (Closes: #343885, #347323, #347686, #348518, #351375) + * Apply various fixes to French locales. (Closes: #248377) + * Fix d_t_fmt and date_fmt in fo_FO. Reported by Jacob Sparre Andersen. + * New sa_IN locale file, provided by Vidya Ayer and Christian Perrier. + (Closes: #331377) + * Add several locales to SUPPORTED: + - ru_RU.CP1251, requested by Michael Bravo. (Closes: #225516) + - uz_UZ.UTF-8 (its ISO-8859-1 counterpart had no UTF-8 variant) + - da_DK.ISO-8859-15, en_GB.ISO-8859-15, en_US.ISO-8859-15, no_NO.UTF-8, + no_NO and sv_SE.ISO-8859-15 are found in fedora-branch CVS branch. + * Apply several improvements to hy_AM found in upstream Bugzilla. + * Fix LC_MONETARY section of en_DK and provide en_DK.ISO-8859-15. + (Closes: #323159) + * Improve localedef(1) manual page, by Lars Wirzenius (Closes: #309846) + * Fix LC_MONETARY section of pl_PL. Reported by MichaÅ‚ Politowski. + (Closes: #227214) + * New wo_SN locale file, provided by Samba Ndao Diop and Christian + Perrier. (Closes: #279697) + * Add new ca_AD, ca_FR and ca_IT locale files, sent upstream by Robert + Millan. + * New csb_PL locale file, sent upstream by Andrzej Krzysztofowicz. + * Rewrite collation rules of several locales to include iso14651_t1. + This eases maintenance and saves about 1MB for installed size. + * Sort SUPPORTED to list UTF-8 locales first. This change partly + solves #312927. + * Modify localedata/locales/no_NO to copy definitions from nb_NO. + * Fix lang_* fields in gez_ER, gez_ET, tr_TR and wal_ET. + * Fix unknown symbols in collation rules of several locales: da_DK, + fa_IR, is_IS, lo_LA, lv_LV, nb_NO and sr_CS. + * Apply updates for st_ZA, xh_ZA and zu_ZA sent upstream by Dwayne Bailey. + * Add new nr_ZA locale, sent upstream by Dwayne Bailey. + * Rewrite collation rules for dz_BT, in collaboration with Pema Geyleg. + * Revert upstream change of postal_fmt in te_IN because localedef + complains. (Closes: #348804) + * New debconf translations: + - Italian, by Luca Monducci (Closes: #329428) + - Swedish, by Daniel Nylander (Closes: #334864) + * Slightly reword locales.templates to be DTSG-compliant, thanks Thomas + Huriaux. + * Updated debconf translations: (Closes: #350103) + - Brazilian Portuguese, by André Luís Lopes (Closes: #352416) + - Czech, by Miroslav Kure + - Danish, by Morten Brix Pedersen + - Dutch, by Bart Cornelis + - French, by Denis Barbier + - German, by Helge Kreutzmann + - Polish, by Emilian Nowak + - Turkish, by Erçin EKER + - Ukrainian, by Eugeniy Meshcheryakov + - Vietnamese, by Clytie Siddall + * Update timezone data files to tzdata2006a. (Closes: #345479, #347315, #351049) + * Drop Build-Depends-Indep: po4a from control file, translated manual pages + are currently not built. + + [ Clint Adams ] + * Move to upstream version 2.3.6. + - Redo debian/patches/localedata/cvs-localedata.diff + - Remove glibc235-gcc4-cvs.diff + - Remove glibc235-gcc4-jis0208.diff + - Remove glibc235-binutils216-ia64.diff + - Remove glibc235-gcc4-ia64-profile.diff + - Remove glibc235-gcc4-ppc-procfs.diff + - Remove glibc235-execvp-fix.diff + - Delete CSD (Serbian Dinar) hunk from locale-iso4217.diff + - Redo glibc235-dl-execstack.diff + - Remove glibc235-alpha-divqu.diff + - Remove amd64-semtrywait-weakalias.diff + - Remove strfry-segv.diff + - Remove ia64-binutils-libm.diff + - Remove glibc235-leapsecond.diff + - Delete several hunks from glibc235-gcc4-sparc-inline.diff + - Remove hurd-libpthread-indirect-loading.diff + - Remove glibc235-gcc4-hurd.diff + - Delete several hunks from glibc235-gcc4-arm-inline.diff + - Remove glibc235-gcc4-s390-inline.diff + * Add hppa-pie-relocs.diff, thanks to Aurelien Jarno. This + fixes nscd on hppa. (Closes: #350501) + + [ Daniel Jacobowitz ] + * Remove mips-bits-syscall.diff, merged. + + [ GOTO Masanori ] + * Update po/ja.po. + + -- Clint Adams Thu, 9 Feb 2006 21:45:45 -0500 + +glibc (2.3.5-13) unstable; urgency=low + + [ Clint Adams ] + * Acknowledge NMU. (Closes: #342545) + + [ Denis Barbier ] + * debian/rules.d/control.mk: Make sure that debian/control is regenerated. + (Closes: #351704) + + -- Denis Barbier Mon, 6 Feb 2006 22:22:23 +0100 + +glibc (2.3.5-12.1) unstable; urgency=low + + * NMU + * glibc235-hppa-fpu.diff: New, fixes hppa FPU issues. Closes: #342545 + + -- LaMont Jones Wed, 1 Feb 2006 09:47:57 -0700 + +glibc (2.3.5-12) unstable; urgency=low + + * debian/patches/glibc235-nis-netgrp.diff: New file to fix assertion + failures with NIS. (Closes: #322011) + * Switch to quilt to handle Debian patches. + - debian/control.in/main: add Build-Depends: quilt. + - Replace debian/rules.d/dpatch.mk by debian/rules.d/quilt.mk. + - Rename debian/patches/*.dpatch into debian/patches/*.diff. + - Move localedata patches into debian/patches/localedata/ + * debian/patches/localedata/cvs-localedata.diff: Update to latest CVS. + Among other changes: + - locales/mn_MN: Fix date_fmt. (Closes: #328831) + - locales/de_DE: Add transliterations for quoting characters. + (Closes: #235759) + - locales/ss_ZA locales/tn_ZA locales/ve_ZA locales/nso_ZA + locales/ts_ZA: New files. (Closes: #254417) + - locales/km_KH: New file. (Closes: #334762) + - locales/mg_MG: New file. (Closes: #271549) + - locales/sr_CS: New file. (Closes: #254993) + * debian/patches/locale-iso4217.diff: Update to latest CVS. + This includes changes from glibc235-localedata-sr_CS.diff, which + is no more needed. + * debian/patches/locale-iso639.diff: New file. + * debian/patches/locale-ku_TR.diff: New file, to provide a Kurdish + locale needed by d-i. This locale comes from upstream CVS, and has + been updated to the latest patch sent to BZ870. + * debian/patches/localedata/locale-eo_EO.diff: Apply minor updates to + this locale file. Add eo and eo.UTF-8 to SUPPORTED. (Closes: #233308) + * Import collation fixes and enhancements for localedef from + belocs-locales-bin. + * debian/patches/forward-backward-collation.diff: New file. Due to the + fixes in localedef, some bugs in code which was previously never run + did show up. (Closes: #310635) + * debian/patches/locale/locale-print-LANGUAGE.diff: New file, so that + locale displays the LANGUAGE environment variable when called without + argument. + * Add myself to Uploaders. + + -- Denis Barbier Sun, 15 Jan 2006 00:54:16 +0100 + +glibc (2.3.5-11) unstable; urgency=low + + [ Phil Blundell ] + * Apply patch from Colin Watson to add "--keep-existing" option to + locale-gen. (Closes: #298913) + * Also restart exim4 on upgrade. (Closes: #326554) + * debian/debhelper.in/libc.preinst: Clarify wording of message about + detection of services needing to be stopped before upgrade. + + [ GOTO Masanori ] + * debian/po/pt.po: New file, add Portuguese translation. + Patched by Rui Branco . (Closes: #339110) + + [ Clint Adams ] + * Patch from Lars Wirzenius to not rely on bash-like echo + behavior. (Closes: #207391). + * Add allowance for the 2005 leap second. (Closes: #345310) + + -- Clint Adams Sun, 1 Jan 2006 11:29:08 -0500 + +glibc (2.3.5-10) unstable; urgency=low + + [ GOTO Masanori ] + * debian/local/etc_init.d/glibc.sh: Change the last 'exit 0' to + ': exit 0' to not block sourcing. (Closes: #340147) + + [ Phil Blundell ] + * Merge patch from upstream CVS (courtesy Daniel Jacobowitz) to + fix weak alias related build problem on ARM. + * Merge patch from upstream CVS (courtesy Ulrich Drepper) to fix + strfry() crash. (Closes: #343365) + * Merge patch from upstream CVS (courtesy Roland McGrath and Anton + Blanchard) to fix problem with execute permissions on GOT when using + 64kB pages on PowerPC. (Closes: #344105) + * Require binutils 2.16.1cvs20051109-1 to ensure that i386 biarch + linking works properly. + * debian/script.in/kernelcheck.sh: Require kernel >= 2.4.0 on arm to + avoid llseek problem. (Closes: #324795) + * Also restart atd on upgrade. (Closes: #331293) + * Merge patch from upstream CVS (courtesy Ulrich Drepper) to fix + problems with accuracy of tanh and related functions, per request of + Rafael Laboissiere. (Closes: #328504) + * Add "validlocale" program (ex base-config) to locales package, per + request of Joey Hess. (Closes: #344954) + * sysdeps/hppa.mk: Add new /usr/hppa64-linux-gnu/include symlink, per + request of Matthias Klose. (Closes: #326583) + + [ Clint Adams ] + * Steal glibc-235-sparc-datastart.dpatch from Ubuntu. + * Steal ia64 libm symbol patch from Ubuntu. + * Compile with -g2 instead of -g1 on sparc. + + -- Clint Adams Wed, 28 Dec 2005 13:18:56 -0500 + +glibc (2.3.5-9) unstable; urgency=low + + [ Daniel Jacobowitz ] + * Downgrade priority of amd64 libraries on i386. + * Move packages from base to libs. + + [ Clint Adams ] + * Remove sparc64 TLS patch, and disable TLS for sparc64 build + (Closes: #340835, #341514). + * Add patch to fix build failure with __bind and other + socket-related symbols being already defined on + sparc (Closes: #342755). + * Add patch from Anton Blanchard to fix build failure with + __bind and other socket-related symbols being already + defined on powerpc (Closes: #343571). + * Replace amd64 sem_trywait patch from Kurt Roeckx's NMU with + fix from upstream glibc CVS (Closes: #339389). + * Add patch from Anton Blanchard to fix build failures with + "__moddi3" and friends being already defined on i386 + and powerpc (Closes: #339415). + * Bump Standards-Version to 3.6.2 and add myself to Uploaders. + + -- Clint Adams Sat, 17 Dec 2005 10:33:38 -0500 + +glibc (2.3.5-8.1) unstable; urgency=low + + * Non-maintainer upload. + * Rename sem_trywait to __new_sem_trywait in amd64 nptl code + so the alias works properly, and it can be build. + (Closes: #339389) + + -- Kurt Roeckx Sun, 27 Nov 2005 11:22:03 +0100 + +glibc (2.3.5-8) unstable; urgency=low + + * Add missing build dependency on libc6-dev-ppc64 on powerpc. + * Add patch to fix sparc64 TLS build failure, from Aurelien Jarno + (Closes: #335821). + * Also restart saslauthd at upgrades, from Philipp Hug (Closes: #334101). + * Merge .eh_frame terminator fix, by Richard Sandiford (Closes: #334112). + * Merge armeb support, from Lennert Buytenhek (Closes: #335116). + * Add LSB headers to glibc.sh and nscd init scripts, from Petter + Reinholdtsen (Closes: #335308, #335343). + * Remove obsolete mountkernfs, tmpfs, and devpts.sh files from debian/. + * Temporarily set hppa back to gcc 3.4, from Steve Langasek + (Closes: #326581). + * Re-enable libidn (Closes: #181025). + + -- Daniel Jacobowitz Sat, 12 Nov 2005 19:15:29 -0500 + +glibc (2.3.5-7) unstable; urgency=low + + [ GOTO Masanori ] + * debian/script.in/kernelcheck.sh: Drop real-i386 kernel support. + + [ Daniel Jacobowitz ] + * Build 64-bit packages on i386 - based on patches from both Ubuntu + and Andreas Jochens . + - Build depend on a biarch linux-kernel-headers package. + - Build depend on new libc6-dev-amd64 package. + - Conflict with amd64-libs to avoid stale libraries. + - Replace files from amd64-libs-dev. + - Use lib64 for 64-bit libraries on i386. + - Search lib64 for ldconfig. + - Install 64-bit headers in /usr/include/x86_64-linux-gnu. + * Remove obsolete references to NPTL as an add-on. + * Conflict with broken versions of libterm-readline-gnu-perl + (Closes: #326856, #326492). + * Merge makefile patch from Goswin Brederlow + to fail earlier if builds fail + (but omit the bit for make -k check) (Closes: #325460). + * Update debconf dependency to work with cdebconf (Closes: #331838). + * Merge MIPS fix from CVS (Closes: #329043). + * Do not complain about incompatible libraries in /etc/ld.so.conf + (Closes: #310047). + * Update hppa assembly for current CVS binutils. + * Use 8-byte-aligned buffers for doubleword FPU transfers on HPPA + (Closes: #333766). + + -- Daniel Jacobowitz Fri, 14 Oct 2005 14:18:22 -0400 + +glibc (2.3.5-6) unstable; urgency=low + + * GOTO Masanori + + * debian/script.in/kernelcheck.sh: Use sed instead of bash extension. + (Closes: #325373, #325471, #325504, #325511) + + -- GOTO Masanori Mon, 29 Aug 2005 12:40:32 +0900 + +glibc (2.3.5-5) unstable; urgency=low + + * GOTO Masanori + + * debian/debhelper.in/debhelper.mk: Don't expand debug-packages with + DEB_INDEP_REGULAR_PACKAGES. It causes binary-indep is unexpectedly + included. (Closes: #233390, #233391, #233392) + + * Add the correct new line. (Closes: #324450) + - debian/control.in/sparc64: Likewise. + - debian/control: Update. + + * Support Hurd again. (Closes: #324165) + - debian/sysdeps/gnu.mk: Rename to... + - debian/sysdeps/hurd.mk: ... this. + + * debian/local/usr_sbin/locale-gen: Don't break locale-gen when locale-def + warns errors. + + * debian/patches/glibc235-localedata-sr_CS.dpatch: New file, to fix + sr_CS localedef breakage. (Closes: #321580, #322655) + * debian/patches/glibc235-localedata-locales.dpatch: New file, to fix + mn_MN and sid_ET localedef breakage. (Closes: #321634) + + * debian/sysdeps/powerpc.mk: Enable PowerPC NPTL. + (Closes: #246689, #307984) + + * debian/README: Add the description about dropping __ctype_* symbol support + of static linked application/libraries in etch. (Closes: #324526) + + * debian/sysdeps/linux.mk: Check SETNJOBS environment variable to specify + the number of parallel make by users. + + * debian/sysdeps/depflags.pl: Add Conflicts: e2fsprogs (<< 1.35-7) + because new ldd cannot work with old e2fsprogs. (Closes: #324550) + + * debian/patches/glibc235-alpha-divqu.dpatch: New file, to fix alpha + divqu/remqu that does not return the correct result when their dividend + and divisor are the same and 63bit is 1. (Closes: #324455) + + * Hurd requires gcc-3.3 to compile instead of gcc-4.0. Requested by + Michael Banck . + - debian/sysdeps/hurd.mk: Change CC/BUILD_CC to gcc-3.3. + - debian/control.in/main: Build-Depends falls back to gcc-3.3. + - debian/control: Update. + + * Introduce bootstrap kernel version check script. + - debian/debhelper.in/libc.preinst: Move detection script to... + - debian/script.in/kernelcheck.sh: ...this, new file. + - debian/local/etc_init.d/glibc.sh: New file, it includes kernelcheck.sh. + - debian/debhelper.in/libc.postinst: Invoke /etc/init.d/glibc.sh as S01. + - debian/rules.d/debhelper.mk: Add replacing KERNEL_VERSION_CHECK and + EXIT_CHECK for libc.preinst and glibc.sh. + - debian/debhelper.in/libc.dirs: Create etc/init.d. + + * Don't use absolute path name. + - debian/debhelper.in/libc.dirs: Suppress the first slash. + - debian/debhelper.in/libc-pic.dirs: Likewise. + - debian/debhelper.in/nscd.dirs: Likewise. + - debian/debhelper.in/locales.dirs: Likewise. + + * Michael Banck : + - debian/patches/glibc235-gcc4-hurd.dpatch: New file, to build glibc + on Hurd with gcc-4.0. (Closes: #324549) + + -- GOTO Masanori Sun, 21 Aug 2005 12:33:42 +0900 + +glibc (2.3.5-4) unstable; urgency=low + + * The "hppa is important to someone, really - LaMont" release. + + * GOTO Masanori + + * d-i wants to remove libnss-files-udeb and libnss-dns-udeb dependency + from libc-udeb. Suggested by Joey Hess . + (Closes: #322506) + - debian/control.in/libc: Remove libnss-files-udeb libnss-dns-udeb + dependency. + - debian/control: Update. + + * Build-Depends fixes: + - debian/control.in/main: Change gcc-* dependency from | to ,. + Suggested by Andreas Jochens . + - debian/control.in/main: Add gcc-4.0 (>= 4.0.1-5) [hppa], because prior + versions cannot generate sane glibc binaries. + - debian/control: Update. + + * Enable libnss upgrade guard again. + (Closes: #321561, #321712, #321796, #322768, #323560) + - debian/debhelper.in/libc.preinst: Change guard to 2.3.5-1. + - debian/debhelper.in/libc.postinst: Likewise. + - debian/debhelper.in/libc.postinst: Fix to invoke NSS check again. + + * debian/debhelper.in/nscd.dirs: Add /var/db/nscd. + (Closes: #323352, #323487) + + * debian/debhelper.in/locales.prerm: Add purge to remove locale-archive. + (Closes: #321719) + + * debian/patches/00list: Drop glibc234-hppa-remove-mallocdef.dpatch. + It causes unconditional locking problem, because it was already replaced + by Carlos' new patches. Reported by LaMont Jones . + + * Add Depends: lib64gcc1 and provide lib64c-dev for 64bit -dev packages. + Suggested by Matthias Klose . (Closes: #323552) + - debian/control.in/sparc64: Likewise. + - debian/control.in/ppc64: Likewise. + - debian/control.in/s390x: Likewise. + - debian/control: Update. + + * debian/patches/glibc235-dl-execstack.dpatch: New file, to fix execstack + failed to check on kernel <= 2.4.18. (Closes: #321717, #321718, #323409) + + * Roland Stigge : + - debian/debhelper.in/glibc-doc.install: Install HTML documents + correctly. (Closes: #321740) + + -- GOTO Masanori Sat, 6 Aug 2005 06:52:42 +0900 + +glibc (2.3.5-3) unstable; urgency=low + + * The "Keep Debconf5 speed" and the "Welcome back the recent glibc to + unstable" release. + * Glibc bumps up from 2.3.2.ds1 to 2.3.5 on etch. + + * GOTO Masanori + + * Localedata update: + - debian/patches/cvs-localedata.dpatch: New file, to update localedata + to the latest cvs. Reported by Safir Secerovic , + Reviewed by Denis Barbier . (Closes: #312902) + - debian/patches/locale-iso4217.dpatch: New file, to fix localedef + breakage for tr_TR.ISO-8859-9. (Closes: #314855) + + * To make glibc-2.3.5 buidable with gcc-4.0: + - debian/patches/00list: Drop glibc234-hppa-full-nptl-2004-12-20.dpatch + line replaced by the new patches: glibc235-hppa-sysdeps.dpatch and + glibc235-hppa-lt.dpatch. It'll be removed when hppa unstable works + nicely. + - debian/patches/glibc235-gcc4-sparc-inline.dpatch: Update the patch + to compile sparc64. + - debian/patches/glibc235-gcc4-s390-inline.dpatch: New file, fix s390 + compilation breakage by changing static inline to auto inline for + dl-machine.h. + - debian/patches/glibc235-gcc4-alpha-profile.dpatch: New file, fix + alpha compilation breakage by removing strong_alias. + - debian/patches/glibc235-gcc4-hppa-profile.dpatch: New file, fix hppa + compilation breakage by removing strong_alias. + - debian/sysdeps/alpha.mk: Disabled __thread for static linked + executables. + - debian/control.in/main: Add Build-Depends: gcc-3.4 for powerpc and + m68k. + - debian/control: Regenerated. + + * To make glibc-2.3.5 buildable with gcc-3.4: + - debian/sysdeps/m68k.mk: New file, to use gcc-3.4 as CC and BUILD_CC + due to gcc-4.0 ICE. See #319312. + - debian/patches/glibc235-gcc34-m68k-seccomment.dpatch: New file, fix + m68k binutils comment parse error. + + * Introduce RUN_TESTSUITE for disabling make check, taken from Jeff + Bailey : + - debian/rules: Enable RUN_TESTSUITE in default. + - debian/rules.d/build.mk: Check RUN_TESTSUITE before invoking tests. + - debian/sysdeps/hppa.mk: Disable RUN_TESTSUITE because linuxthreads + cannot work correctly. + - debian/sysdeps/alpha.mk: Likewise. + + * Introduce loose locales version dependency to avoid locales version + mismatch for FTBFS architectures, taken from Jeff Bailey + (Closes: #204696, #308824): + - debian/locales-depver: New file, describes minimum locales dependency + version. It's renamed from locales-shlibver because it's not "shlib". + - debian/rules.d/debhelper.mk: Use LOCALES_DEP_VER to generate locales + dependency. + - debian/rules: Include debian/locales-depver. + + * debian/rules.d/build.mk: Add --without-selinux for nscd. It should be + removed after this version ASAP. + + * debian/sysdeps/depflags.pl: Drop Depends: libdb1-compat because it's + until sarge stuff. Suggested by Colin Watson . + (Closes: #318885) + + * debian/debhelper.in/nscd.dirs: New file, add /var/run/nscd dir to + invoke nscd correctly. (Closes: #314892) + + * debian/local/manpages/locale.gen.5: Fix typo, charsets -> charmaps. + (Closes: #312297, #318982) + + * debian/debhelper.in/libc.preinst: Remove dpkg --assert-support-predepends + check like base-passwrd, suggested by Bastian Blank . + (Closes: #316217) + + * debian/patches/locales-supported.dpatch: Don't apply to drop UTF-8@euro + locales from SUPPORTED. (Closes: #274491) + + * debian/debhelper.in/libc.preinst: Fix typo. (Closes: #306136) + * debian/debhelper.in/libc.postinst: Likewise. + + * Michael Banck : + - debian/patches/hurd-enable-ldconfig.dpatch: New file, to build ldconfig + again on Hurd. (Closes: #309489) + - debian/sysdeps/gnu.mk: Hurd-i386 needs --without-tls option to build. + - debian/patches/hurd-libpthread-indirect-loading.dpatch: New file, to + make libpthread load indirectly on Hurd. (Closes: #312488) + - debian/patches/hurd-ioctl-pfinet.dpatch: New file, to support part of + SIOCGIFHWADDR for pfinet on Hurd. (Closes: #295117) + + * Jeff Bailey : + - debian/patches/glibc235-hppa-sysdeps.dpatch: New file, to build hppa + linuxthreads locking problem and sysdeps correctly again. + - debian/patches/glibc235-hppa-lt.dpatch: New file, likewise. + + * Denis Barbier : + - debian/debhelper.in/locales.config: Use LANG=C for locale-dependent + commands. (Closes: #314717) + - debian/debhelper.in/locales.postinst: Likewise. + - debian/debhelper.in/locales.postinst: Fix repeated locale entry + duplication when at least a locale is defined twice in /etc/locale.gen. + (Closes: #271526) + + * Stephen Gildea : + - debian/debhelper.in/nscd.init: Provides a "status" option, fix the exit + status if the script is given an unsupported option. (Closes: #312404) + + * Serge Belyshev : + - debian/patches/glibc235-execvp-fix.dpatch: Fix execvp segv caused by + invalid free pointer. + + * This version fixes some bugs that are already marked as + fixed-in-experimental and explained the reason in this changelog. + (Closes: #144670, #185991, #258647, #276062, #279423, #280030, #298784) + (Closes: #300806, #300842, #304963, #305400, #305662, #305666, #309618) + (Closes: #311793, #313404, #314084, #315347, #315793) + + * This version fixes some bugs that are already confirmed as fixed + (fixed-in-experimental) in the experimental glibc: + - Can compile rpc/xdr.h with gcc-4.0. (Closes: #315198, #320963) + - Support posix_fadvise64 correctly on 2.4 kernel. + (Closes: #312406, #313219) + - Can static link with the recent toolchain changed with TLS/non-TLS + errno definition on amd64 and ia64. + (Closes: #317674, #317946, #318956, #318963, #319115) + - Fix mktime when setting a timezone value to AC_FUNC_MKTIME. + (Closes: #177940) + - Fix libc6-i686 to reexec init. (Closes: #270745) + + * This version fixes some bugs that are marked as fixed-upstream: + - Fix ucontext.h failure with g++-4.0 on ia64. + (Closes: #318429, #320240) + + - Missing icache flushing on PPC caused sometimes segv, and now cache + management is reworked and fixed. (Closes: #146489) + - Fix alpha atan() that gave wrong results for some operands. + (Closes: #210613) + - Fix PPC rint() that gave wrong result for negative arguments in the + rounding toward -inf and +inf mode. (Closes: #216800) + - Fix that the pmaplist frees the freed memory in xdr_pmaplist. + (Closes: #230219) + - Don't export unneeded symbol _fp_hw on s390. (Closes: #247681) + - Set locale correctly for generated threads in static linked binaries. + (Closes: #260221) + - Make g++ compilation with nptl pthread.h by changing initializers. + (Closes: #276309) + - Fix a race condition with pthread_cond_broadcast. (Closes: #276312) + - Fix re_exec() segv that caused on UTF-8 locales. + (Closes: #175163, #237681, #290551, #299137, #310443) + - Implement getcontext on alpha. (Closes: #293653) + - Fix an incorrect value of ceill and floorl on amd64. (Closes: #302458) + - Fix memory leaks in getaddrinfo/freeaddrinfo. (Closes: #304022) + - Fix mips/mipsel incomplete clobbered registers for syscalls. + (Closes: #304426) + - Support working sched_setaffinity on powerpc. (Closes: #311053) + - Support _SC_HOST_NAME_MAX in sysconf. (Closes: #314350) + - Fix pthread_rwlock_wrlock hangs with NPTL on amd64. (Closes: #314408) + + - Check timezone changes for localtime and friends. (Closes: #48184) + - Fix a race condition of sigaction and signal handler. + (Closes: #136990) + - Fix segmentation fault when invoking nscd -d. + (Closes: #156923, 245208) + - Support POSIX style strerror_r implementation. + (Closes: #159298, #169370, #182542, #202209) + - Enable to use short IPv4 address notation again. (Closes: #192091) + - Fix broken pthread_cleanup_push on Alpha. (Closes: #197988) + - Support POSIX message queues. (Closes: #202197, #280137) + - Don't use ?: in bits/mathinline.h. (Closes: #206015, #304500) + - Update Norwegian translation that fixes confusing text. + (Closes: #207266) + - Enable executable again for libc.so.*. (Closes: #215463, #264948) + - Improve putchar and io performance by changes to pthread locking code. + (Closes: #219205) + - Update sys/vm86.h. (Closes: #219476) + - Fix invalid __libc_dlclose() in nsswitch.c. (Closes: #222130) + - Support backtrace on ia64 and x86_64. (Closes: #235876) + - Fix nl_langinfo(ERA) returns NULL, not "". (Closes: #245836) + - Libintl.h is ready for some g++ compilation option. (Closes: #252753) + - Fix pthread_cond_timedwait and mutex hang with cancellation. + (Closes: #253303) + - Fix too long fraction digits handling in strtold(). (Closes: #260377) + - Fix some regexec() segv in UTF-8 locales. (Closes: #261135) + - Fix pthread_cond_timedwait with a outdated timespec destroys the + pthread_cond_t variable. (Closes: #261237) + - Declare EPOLLONESHOT in sys/epoll.h. (Closes: #261541) + - Fix returning invalid pointer when freeing valloc()-ed memory. + (Closes: #262782) + - Replace gcc-3.4 option for ppc64. (Closes: #263959) + - Fix zdump -v segv on ia64. (Closes: #266438) + - Support pthread_create with attributes. (Closes: #266507) + - Change __vector to __iovec for sys/io.h to prevent conflicts with + altivec. (Closes: #267442) + - Fix atan2 infinit loop on amd64. (Closes: #270823) + - Avoid memory leak for some gconv encoding by calling gconv_end. + (Closes: #274390) + - Fix mplayerplug-in crash closed by mozilla. (Closes: #275240) + - Fix invalid memory access of printf when its specifier combines + parameter number specification and floating point values. + (Closes: #277667, #312036) + - Don't touch unrelated bits in __feclearexcept on i386. + (Closes: #279294) + - Don't invoke unneeded cancellation if PTHREAD_CANCEL_DISABLE is set. + (Closes: #281775) + - Fix a race condition between pthread_create and pthread_exit. + (Closes: #282091, #292154) + - Fix for setfacl to handle many files in ntfw64. (Closes: #288710) + - Support large dev_t. (Closes: #289945, #299139) + - Use the correct ifndef __GNUC_PREREQ. (Closes: #315345) + + - Fix the indended first line of ldd output. (Closes: #209145, #276223) + - Fix misleading error message of ldd when kernel version is old. + (Closes: #224665) + - Fix typo of the language name in te_IN. (Closes: #276527) + - Replace old --help message that indicated glibcbug script. + (Closes: #315448) + + - Support IDN. (Closes: #181025) + - Support O_NOATIME. (Closes: #284131, #297010, #298488) + - The first day of a week in Finnish is Monday. (Closes: #288472) + + -- GOTO Masanori Sun, 17 Jul 2005 17:27:30 +0900 + +glibc (2.3.5-2) experimental; urgency=low + + * Debconf5 release. + + * GOTO Masanori + + * Merge glibc-2.3.4 branch to the main trunk for etch development. + + * These dpatches are removed from debian/patches because the similar + patches are already applied in the latest version: + - debian/patches/rtld-vdso-assertion.dpatch + - debian/patches/glibc232-sigsetjmp.dpatch + - debian/patches/hurd-weak-aliases.dpatch + - debian/patches/sched-update.dpatch + - debian/patches/glibc232-pthread-cancellation.dpatch + - debian/patches/glibc232-clock_settime.dpatch + + * The New dpkg-architecture changes: + - debian/rules: Replace DEB_HOST_BUILD_SYSTEM, use DEB_HOST_ARCH_OS. + Reported by Arthur Marsh . + (Closes: #315347, #315793) + - debian/control.in/main: Bump up Build-Depends: dpkg-dev (>= 1.13.5). + - debian/control: Updated. + - debian/debhelper.in/libc.preinst: Replace "dpkg + --print-installation-architecture", use "dpkg --print-architecture". + - debian/debhlper.in/libc.postrm: Likewise. + - debian/debhlper.in/libc.postinst: Likewise. + - debian/sysdeps/depflags.pl: Change checks from i386 to i486. + It also replaces -linux, use -linux-gnu. + + * Default compiler moves from gcc-3.3 to gcc-4.0: + - debian/rules: Use gcc-4.0 instead of gcc-3.3. (Closes: #315198) + - debian/control.in/main: Define Build-Depends: gcc-4.0. + - debian/control: Updated. + - debian/sysdeps/i386.mk: Replace depreciated "-mcpu", use "-mtune". + + * These dpatches are added to make glibc-2.3.5 buidable with gcc-4.0: + - debian/patches/glibc235-gcc4-cvs.dpatch: Fix some bad defintion of + internal for all architectures. + - debian/patches/glibc235-gcc4-elf.dpatch: Remove elf_machine_rel* + definitions for all architectures. + - debian/patches/glibc235-gcc4-jis0208.dpatch: Fix compilation breakage + for all architectures. + - debian/patches/glibc235-gcc4-wcstol_l.dpatch: Fix wcstol_l.c + compilation breakage for all 64bit architectures. + - debian/patches/glibc235-binutils216-ia64.dpatch: Fix _init/_fini was + not defined within procedure with binutils 2.16 for ia64. + - debian/patches/glibc235-gcc4-ia64-profile.dpatch: Fix compilation + breakage by removing strong_alias for ia64. + - debian/patches/glibc235-gcc4-ppc-procfs.dpatch: Fix ppc32 compilation + breakage by removing __uint128_t use. (Closes: #304963) + - debian/patches/glibc235-gcc4-arm-inline.dpatch: Fix arm compilation + breakage by changing static inline to auto inline for dl-machine.h. + - debian/patches/glibc235-gcc4-sparc-inline.dpatch: Fix sparc compilation + breakage by changing static inline to auto inline for dl-machine.h. + - debian/patches/glibc235-gcc4-sparc-mv8.dpatch: Fix obsolete gcc option + to replace newer standard one. + - debian/patches/glibc235-gcc4-mips-inline.dpatch: Fix mips compilation + breakage by changing static inline to auto inline for dl-machine.h. + - debian/patches/glibc235-gcc4-mips-sysdeps.dpatch: Fix mips compilation + breakage by changing large syscall arguments handling. + + * Move /etc/locale.alias to /usr/share/locale/locale.alias. + Don't install locale.alias.5. (Closes: #144670, #185991, #298784) + - debian/local/usr_sbin/locale-gen: Use /usr/share/locale/locale.alias + instead of /etc/locale.alias. + - debian/local/manpages/locale-gen.8: Delete reference to + locale.alias.5. + - debian/local/manpages/locale.gen.5: Likewise. + - debian/debhelper.in/locales.links: Remove file, don't link to /etc. + - debian/debhelper.in/locales.install: Install locale.alias under + /usr/share/locale, not /etc/. + - debian/debhelper.in/locales.manpages: Don't install locale.alias.5 + + * Add documents: + - debian/debhelper.in/libc.docs: Add CONFORMANCE and NAMESPACE. + + * Fix messages to add a patience message. (Closes: #305400) + - debian/local/usr_sbin/locale-gen + + * Move sprof from libc-prof to libc-dev. (Closes: #280030) + - debian/sysdeps/depflags.pl: Add Replaces: libc-dev (<< 2.3.5-2). + - debian/debhelper.in/libc-prof.install: Remove sprof install. + - debian/debhelper.in/libc-dev.install: Install sprof moved from -prof. + - debian/debhelper.in/libc-dev.install.hurd-i386: Likewise. + - debian/debhelper.in/libc-dev.manpages: Add sprof.1 install. + - debian/debhelper.in/libc-prof.manpages: Remove file, don't install + sprof.1. + + * Remove Depends: lib64gcc1 from libc6-sparc64. (Closes: #258647) + - debian/control.in/sparc64: Delete Depends: lib64gcc1. + - debian/control: Likewise. + + * Small change for libc6 upgrade problem. + - debian/debhelper.in/libc.postrm: Add plain messages and clean up. + + * Add conflicts to old initrd-tools for avoiding new glibc 2.3.4/5 ldd + blocks to generate initrd images. Suggested by Goswin von Brederlow + . + - debian/sysdeps/depflags.pl: Add conflicts initrd-tools (<< 0.1.79). + + * Add support PowerPC64, based on patches and suggestions by Bastian Blank + and Jeff Bailey : + - debian/control.in/main: Add Build-Depends: gcc-3.4 [powerpc] because + powerpc porting does not support gcc-4.0 currently. + - debian/control: Updated. + - debian/rules.d/control.mk: Add ppc64. + - debian/sysdeps/powerpc.mk: Added to support ppc64 target. + + * debian/sysdeps/hppa.mk: Add /usr/hppa64-linux-gnu/include symlinks for + dpkg-architecture changes. Reported by Matthias Klose + . (Closes: #313404) + + * A Costa . (Closes: #305662, #305666) + - debian/local/manpages/tzconfig.8: Fixed typo. + - debian/local/manpages/ldconfig.8: Likewise. + + * Clytie Siddall : + - debian/po/vi.po: Add the Vietnamese translation for locales. + (Closes: #309618, 311793) + + * Jens Seidel : + - debian/po/de.po: Fix typo. (Closes: #314084) + + -- GOTO Masanori Thu, 21 Apr 2005 16:52:36 +0900 + +glibc (2.3.5-1) experimental; urgency=low + + * GOTO Masanori + + * New upstream release. + - debian/shlibver: Bump up to 2.3.5-1. + + * Drop patches: + - debian/patches/hurd-malloc.dpatch: Removed, it's already applied in + the upstream source. + + * Merge with 2.3.2.ds1-21, added: + - debian/patches/linuxthreads-sizefix.dpatch: Added. + - debian/po/fi.po: Added. + - debian/patches/glibc23-mips-lazy-eval.dpatch: Added, drop dl-machine.h + because the recent upstream should not need such change. + - debian/patches/glibc232-tls-crashfix.dpatch: Added, remove some parts + that are applied in the recent version. + + * Merge with 2.3.2.ds1-21, changed: + - debian/debhelper.in/libc.preinst: Fix typo, proofreading. + - debian/debhelper.in/libc.preinst: Add export LC_ALL=C. + - debian/patches/00list: Update. + + * Update linuxthreads size fix for not only ia64, but also alpha, + amd64, i386, powerpc, s390, sh and sparc. + - debian/patches/linuxthreads-sizefix.dpatch: Update. + + * Fix more libc6 upgrade problem from old <= 2.3.4-1: + - debian/debhelper.in/libc.postinst: Don't use uname -m, use + dpkg --print-installation-architecture. Hwcappkgs mechanism does not + work on (ex:) install architecture: i386, kernel architecture: amd64. + - debian/debhelper.in/libc.postrm: Likewise. + + * Support libc6-dev NPTL static libraries and headers into + /usr/lib/nptl and /usr/include/nptl. (Closes: #276062, #279423) + - debian/rules.d/build.mk: Add installation code from tmp-nptl to + tmp-libc. + - debian/debhelper.in/libc-dev.install: Add tmp-libc/usr/lib/nptl*. + + -- GOTO Masanori Sun, 10 Apr 2005 14:02:19 +0900 + +glibc (2.3.4-3) experimental; urgency=low + + * GOTO Masanori + + * The complete libc6 installation breakage is fixed when hwcap packages + (libc6-i686 and libc6-sparcv9/sparcv9b) is installed. It introduced + /etc/ld.so.hwcappkgs to track hwcap packages. + - debian/debhelper.in/libc.postinst: Create /etc/ld.so.hwcappkgs if + such file is not existed. Check hwcap packages and decide to keep + /etc/ld.so.nohwcap. Put special ld.so.nohwcap string when the + downgraded version does not support ld.so.hwcappkgs. + - debian/debhelper.in/libc-otherbuild.postinst: When it's configured, + check /etc/ld.so.hwcappkgs and decides to keep /etc/ld.so.nohwcap. + - debian/debhelper.in/libc-otherbuild.postrm: When it's removed, + check /etc/ld.so.hwcappkgs and search other hwcap package's version + consistency. Then it decides to remove /etc/ld.so.nohwcap. + - debian/debhelper.in/libc.postrm: Leave /etc/ld.so.nohwcap if it's + downgrade to hwcappkgs incompatible version. + - debian/rules.d/debhelper.mk: Include "libc-" into OPT string + replacement. + + -- GOTO Masanori Tue, 29 Mar 2005 17:22:25 +0900 + +glibc (2.3.4-2) experimental; urgency=low + + * GOTO Masanori + + * Fix libc6 installation breakage when old libc6 and libc6-i686 was + installed, and it's replaced with a new libc6. This fix is limited + for i686 optimized package, not for sparc multiple opt packages. + (Closes: #300806, #300842) + - debian/debhelper.in/libc.postinst: Add check for the existence of + multiple optimized packages. + - debian/rules.d/debhelper.mk: Add the replace code from CURRENT_VER + to $(DEB_VERSION) for libc.postinst. Install libc-otherbuild.postrm. + - debian/debhelper.in/libc-otherbuild.postrm: Added to remove + unneeded ld.so.nohwcap for single optimized package. + + -- GOTO Masanori Tue, 22 Mar 2005 11:17:32 +0900 + +glibc (2.3.4-1) experimental; urgency=low + + * GOTO Masanori + + * Reflect from glibc-snapshot package 2.3.4-0.3.snapshot20041220.2. + + * Add glibc-libidn package handling for the following files: + - debian/sysdeps/gnu.mk + - debian/sysdeps/linux.mk + - debian/sysdeps/kfreebsd-gnu.mk + - debian/rules + + * Add separated shlibver file: + - debian/rules: Include debian/shlibver. + - debian/shlibver: Bump up shlibver to 2.3.4-1. + + * Delete removed file info/libc-dir-add.info: + - debian/debhelper.in/glibc-doc.install + - debian/rules.d/build.mk + + * These dpatches are added in debian/patches/: + - glibc234-alpha-xstat.dpatch: Fix alpha compilation failure when + kernel headers < 2.6.4 is used. + - glibc234-hppa-linesep.dpatch: Add to fix hppa compilation failure. + - glibc234-hppa-remove-mallocdef.dpatch: Add to + fix hppa compilation breakage until ldcw lock change is introduced. + This patch will be removed when ldcw patch is revised to apply. + - glibc234-m68k-linuxthreads-fPIC.dpatch: Add to fix m68k compilation + warnings to remove linuxthreads o-iterator. + - glibc234-hppa-full-nptl-2004-12-20.dpatch: Remove in-cvs parts, + apply the remained stuff for hppa, except for ldcw lock change. + This file is renamed from 50_glibc232-hppa-full-nptl-2003-10-22.dpatch. + + * These dpatches are modified/replaced with the newer patches in + debian/patches/: + - glibc-i686-timing.dpatch: Modify makefile. Fix i686 library breakage. + - glibc23-cmov.dpatch: Drop additional TLS parts. + - glibc23-sse-oldkernel.dpatch: Regenerated. + - hppa-drop-utimes.dpatch: Regenerated. + - ldconfig.dpatch: The previous patch seems being wrong because it + supresses all warnings about error. The new patch I introduced should + not warn during debootstrap, and works finely during normal operation. + - ldd.dpatch: Regenerated. + - ldso-disable-hwcap.dpatch: Regenerated. + - locale-no_NO.dpatch: Drop locale.alias part which is already applied. + - makeconfig.dpatch: Regenerated. + - 50_glibc232-arm-dwarf2-buildfix.dpatch: Modify to fix sjlj compilation. + - 50_glibc232-m68k-dwarf2-buildfix.dpatch: Likewise. + + * These dpatches are currently suspended to apply (those entries in + 00list are commented out) with various reasons, they need update or + confirmation: + - 30_glibc232-base.dpatch: If this patch is needed, the another + binutils related problem should be occured. It's disabled for a + while, then remove iff no problem is reported. + - alpha-pic.dpatch: #175511 said the upstream should have another + different fix. After confirmation, it should be removed. + - arm-output-format.dpatch: I believe the recent arm glibc should work + without this patch. If arm still has problem, then enable it. + - glibc232-globfree-clear.dpatch: The latest upstream has gl_pathv=NULL + part, bug gl_pathc=0 part. I think the current code is harmless. + It needs confirmation to Jeff Licquia. + - translation-fr.dpatch: The upstream rejects this wishlist bug. After + confirmation, it'll be removed. + - mips-asm-unistd.dpatch: I need to look at the result of the current cvs + unistd.h. + - hurd-enable-ldconfig.dpatch: Disabled currently. + + * These dpatches are currently applied, but it may be removed from + 00list as until sarge stuff: + - libgcc-compat-all.dpatch: It'll be removed in future. + - libgcc-compat-other.dpatch: Likewise. + + * These dpatches are currently suspended to apply from 00list because + we plan to be removed after sarge release: + - glibc23-ctype-compat.dpatch: Until sarge stuff. + - glibc23-errno-hack.dpatch: Until sarge stuff. + - glibc23-errno.dpatch: This patch should not be considered permanent; + it may be one of until sarge stuff. + - glibc23-function-compat.dpatch: Until sarge stuff. + - locales-supported.dpatch: Debian specific, until sarge stuff. + + * This dpatch is not used currently: + - 10_cvs.dpatch + + * These dpatches are removed from debian/patches/ because they are already + in upstream cvs: + - 11_cvs_locales.dpatch + - 11_shlib-lds.dpatch + - 51_glibc232-hppa-dist.dpatch + - 51_glibc232-hppa-nopltrel.dpatch + - 51_glibc232-hppa-profiling.dpatch + - 52_glibc233-hppa-feupdateenv.dpatch + - 90_glibc232-statvfs.dpatch + - 90_glibc232-timezones.dpatch + - alpha-crti.dpatch + - alpha-rtsigaction-fix.dpatch + - fno-unit-at-a-time.dpatch + - glibc23-dlclose-l_opencount.dpatch + - glibc23-libio-compat.dpatch + - glibc23-powerpc-sigcontext.dpatch + - glibc23-sparc-pread64.dpatch + - glibc232-catchsegv-insecure-temp.dpatch + - glibc232-hppa-unwindinfo.dpatch + - glibc232-ia64-unwindinfo.dpatch + - glibc232-iconv-ucs2-unalign.dpatch + - glibc232-mips-dl-machine.dpatch + - glibc232-misc-syslog.dpatch + - glibc232-nptl-posix-timer.dpatch + - glibc232-ppc32-nanosecond.dpatch + - glibc232-remove-vsyscall.dpatch + - glibc232-sparc64-softfp.dpatch + - glibcbug.dpatch + - hppa-syscall.dpatch + - hurd-cleanup.dpatch + - hurd-exit-attr-hidden.dpatch + - hurd-i386-hwcap.dpatch + - hurd-libc-lock.dpatch + - hurd-utmp-file.dpatch + - locale-byn_ER.dpatch + - locale-et_EE.dpatch + - locale-ro_RO.dpatch + - locale-strfmon.dpatch + - mips-sgidefs.dpatch + - nptl-io-locking.dpatch + - nptl-page-align.dpatch + - nptl-pthread-c++.dpatch + - nptl-pthread-create-attr.dpatch + - nptl-pthread-once.dpatch + - pthread-cleanup.dpatch + - s390-backtrace.dpatch + - s390-pthread-fpic.dpatch + - syslog-locale.dpatch + + * Hurd update: + - debian/patches/hurd-string.dpatch: Removed, it's already in cvs. + - debian/patches/00list.hurd-i386: Removed. + - debian/patches/hurd-malloc.dpatch: Add to fix Hurd build fix, patch + from Michael Banck . + + -- GOTO Masanori Fri, 18 Mar 2005 09:41:49 +0900 + +glibc (2.3.2.ds1-22) unstable; urgency=medium + + * Daniel Jacobowitz + + - debian/patches/rtld-vdso-assertion.dpatch: Fix an assertion failure + running /lib/libc.so.6. + - debian/rules.d/debhelper.mk: Mark runnable libraries +x again. + + -- Daniel Jacobowitz Tue, 10 May 2005 15:11:53 -0400 + +glibc (2.3.2.ds1-21) unstable; urgency=high + + * GOTO Masanori + + - debian/patches/linuxthreads-sizefix.dpatch: Fix ia64 TLS_PRE_TCB_SIZE + alignment where TLS_DTV_AT_TP is defined between linuxthreads and nptl. + It breaks evolution on ia64 linuxthreads ld.so + nptl environment. + (Closes: #292673) + - debian/patches/glibc232-sigsetjmp.dpatch: Fix gcc-4.0 compilation + breakage on amd64. (Closes: #295457) + - debian/debhelper.in/libc.manpages: Add tzconfig.8. Reported by Matthijs + Mohlmann . (Closes: #182981) + - debian/patches/90_glibc232-timezones.dpatch: Update to tzdata2005h. + - debian/patches/hurd-weak-aliases.dpatch: Add to fix undefined references + to build putty on Hurd, patched by Michael Banck . + (Closes: #295118) + - debian/debhelper.in/libc.preinst: Fix typo, proofreading. + (Closes: #294816, #303478) + - debian/rules: Bump up shlib_dep_ver 2.3.2.ds1-21. It's required by + adding GLIBC_2.3.4 symbol. + + - Bastian Blank : + - debian/patches/sched-update.dpatch: Update sched_[gs]et_affinity to + new interface and library version. Add GLIBC_2.3.4 versioned symbol + for new interface. (Closes: #297769) + - Jeff Bailey : + - debian/patches/glibc232-tls-crashfix.dpatch: Fix tls assertion that + crashes xmms/nvidia. (Closes: #219352) + - debian/patches/glibc232-pthread-cancellation.dpatch: Fix pthread + cancellation bug that causes JVM lockups. (Closes: #300943) + - Denis Barbier : + - debian/debhelper.in/libc.preinst: Add export LC_ALL=C like + libc.postinst, it corrects some locale dependent behavior, + especially for `tr'. (Closes: #304257) + - Lars Wirzenius : + - debian/local/manpages/iconv.1: Escape hyphens for Unicode + environments. (Closes: #292013) + - Emilian Nowak : + - debian/po/pl.po: Add Polish debconf translation. (Closes: #294444) + - Matti Polla : + - debian/po/fi.po: Add Finnish debconf translation. (Closes: #303816) + - Khalid Aziz : + - debian/patches/glibc232-clock_settime.dpatch: Fix clock_settime + always fails with EINVAL. (Closes: #304668) + - Thiemo Seufer : + - debian/patches/glibc23-mips-lazy-eval.dpatch: Workaround fix for + broken symbol resolving of lazy evaluation stubs on mips/mipsel, + that causes fakeroot breakage. (Closes: #265678, #264920) + + -- GOTO Masanori Mon, 14 Feb 2005 09:26:26 +0900 + +glibc (2.3.2.ds1-20) unstable; urgency=high + + * GOTO Masanori + + - debian/patches/hppa-drop-utimes.dpatch: Fix sudo breakage because + system call utimes() is not defined on hppa. Patched by Randolph Chung + . (Closes: #284449) + + - Fix ia64 unwind FTBFS. Patched by Matthias Klose : + - debian/patches/glibc232-ia64-unwindinfo.dpatch: Modify Makeconfig + which unconditionally set the libunwind macro to -lunwind, until the + it's safe again to regenerate the configure script, on advice of + Jeff Bailey. (Closes: #284563) + - debian/control.in/main: Tighten build dependency on ia64 to + gcc-3.3_3.3.5-5. + - debian/control: Likewise. + + - debian/sysdeps/amd64.mk: Add /lib64 and /usr/lib64 symlinks which are + provided by glibc instead of base-files for amd64. Requested by Goswin + Brederlow . (Closes: #259302) + - debian/rules.d/debhelper.mk: Replace from extra_pkg_install to + extra_debhelper_pkg_install rule which are used for debhelper.mk only. + + - debian/patches/librt-mips.dpatch: Update to provide clock_{set,get}time + with versioned symbol both GLIBC_2.0 and GLIBC_2.2. This patch should + be applied until sarge+1 will be released. + + - debian/local/manpages/locale.1: Add the description about + /usr/share/i18n/SUPPORTED. Requested by Guillermo S. Romero + . (Closes: #284137) + + -- GOTO Masanori Wed, 15 Dec 2004 19:44:47 +0900 + +glibc (2.3.2.ds1-19) unstable; urgency=high + + * GOTO Masanori + + - debian/local/manpages/gencat.1: Use \fR instead of \fT for bold + font, and use .TP instead of .PP for option usage. Patched by + Lars Wirzenius . (Closes: #279685) + - debian/local/manpages/iconvconfig.8: Likewise + fix typo. + - debian/local/manpages/mtrace.1: Likewise. + - debian/local/manpages/locale.1: Add "SEE ALSO" to the end of the + manual. (Closes: #282128) + + - debian/sysdeps/linux.mk: Drop -fomit-frame-pointer from compiling + option to build NPTL packages in order to get valid backtrace. + -D__USE_STRING_INLINES is also dropped to consider about backtraces. + Requested by David Mosberger . + - debian/sysdeps/amd64.mk: Likewise. + - debian/sysdeps/i386.mk: Likewise. + - debian/sysdeps/s390.mk: Likewise. + - debian/sysdeps/sparc.mk: Likewise. + + - debian/patches/glibc232-hppa-unwindinfo.dpatch: Add for unwind + information for hppa plt fixup routine. Patched by + Randolph Chung . (Closes: #281993) + - debian/patches/glibc232-ia64-unwindinfo.dpatch: Add to work + ia64 unwind info and libunwind properly. Requested by David Mosberger + . (Closes: #278837) + + - debian/patches/glibc232-catchsegv-insecure-temp.dpatch: Add fix + CAN-2004-0968: catchsegv creates insecure temporary file. + (Closes: #278278) + - debian/debhelper.in/libc.install: Remove glibcbug to fix CAN-2004-0968, + and it's meaningless to include nowadays. (Closes: #205600) + - debian/debhelper.in/libc.manpages: Remove glibcbug.1 from manpage. + - debian/patches/glibcbug.dpatch: Add comment to be removed. + + - debian/make-cvs-patch.sh: Change like make-cvs-locales-patch.sh. + + - debian/patches/s390-pthread-fpic.dpatch: Add to fix lam build failure. + It changes pthread_atfork in libpthread_nonshared.a is built with + -fPIC, not -fpic, that is already applied in libc_nonshared.a. + (Closes: #280445) + + - debian/control.in/libc: Add gcc | c-compiler to Recommends of libc-dev. + This change avoids that aptitude tries to install various compiler + packages if only c-compiler is specified. (Closes: #283668) + - debian/control.in/main: Add Build-Depends: gcc-3.3 (>= 1:3.3.5-3) [ia64] + | gcc-3.4 (>= 3.4.3-2) [ia64] because ia64 should be built with gcc + which supports libunwind. Requested by Matthias Klose + . + - debian/control: Update. + + - debian/patches/nptl-pthread-c++.dpatch: Add to disable using C99 + designators for nptl pthread.h to fix C++ breakage. Patched by + Andreas Jochens and Matthias Klose + . (Closes: #275997, #283461) + + -- GOTO Masanori Sat, 6 Nov 2004 19:04:26 +0900 + +glibc (2.3.2.ds1-18) unstable; urgency=high + + * GOTO Masanori + + - debian/patches/glibc232-sparc64-softfp.dpatch: Add to fix + glibc build breakage on sparc with binutils 2.15. It's caused by + the register misusage, that was allowed by the previous binutils. + (Closes: #266598) + - debian/debhelper.in/libc.postinst: Fix to execute NSS services + correctly when file-rc is used. (Closes: #275403) + + - debian/patches/90_glibc232-timezones.dpatch: Update to tzdata2004e. + + - debian/debhelper.in/locales.prerm: Add to fix warning not to remove + /usr/lib/locale/locale-archive. (Closes: #264020) + - debian/debhelper.in/locales.postrm: Add to remove /etc/locale.gen + when purge is specified. + + -- GOTO Masanori Tue, 5 Oct 2004 09:32:01 +0900 + +glibc (2.3.2.ds1-17) unstable; urgency=high + + * GOTO Masanori + + - debian/sysdeps/depflags.pl: Fix typo, from "kerberos4th-dev" to + "kerberos4kth-dev". (Closes: #266637) + - debian/patches/00list: Add locale-byn_ER.dpatch that was missing + when I fixed. (Closes: #270998) + + - debian/patches/glibc23-dlclose-l_opencount.dpatch: Fix reference + counter in dl that does not sometimes decrement correctly. + (Closes: #233301, #259211) + - debian/patches/glibc232-globfree-clear.dpatch: Workaround and + to make sure that fix to enforce clear gl_pathc and gl_pathv in + globfree() for sarge to conform LFS test, requested by Jeff Licquia. + (Closes: #264884) + + - debian/local/manpages/tzselect.1: Fix typo. (Closes: #269747) + + - debian/debhelper.in/libc.preinst: Don't install glibc when kernel + is not 2.6 on amd64. + - debian/sysdeps/amd64.mk: Patch from Andreas Jochens: + - Drop the 'nptl' pass from GLIBC_PASSES. + - Use 'nptl' instead of 'linuxthreads' in the 'libc' pass (this + requires kernel >= 2.6.0, but 2.4 is not supported by the amd64 + port anyway). + + -- GOTO Masanori Thu, 19 Aug 2004 12:39:35 +0900 + +glibc (2.3.2.ds1-16) unstable; urgency=high + + * GOTO Masanori + + - debian/FAQ: Add note about errno + NPTL workaround. + (Closes: #261035) + - debian/patches/glibc232-mips-dl-machine.dpatch: Fix mips/mipsel + compilation breakage with the recent binutils. (Closes: #262646) + - debian/patches/glibc232-m68k-reloc.dpatch: Fix m68k compilation + breakage with the recent binutils. (Closes: #263601) + + * Jeff Bailey + + - debian/debhelper.in/libc-dev.install.hurd-i386: Don't install + getconf. + + -- GOTO Masanori Mon, 2 Aug 2004 11:53:54 +0900 + +glibc (2.3.2.ds1-15) unstable; urgency=high + + * Jeff Bailey + + - debian/sysdeps/depflags.pl: Replace ${libc}, not libc6. + (Closes: #262669) + + - Marking urgency as high, last upload should have been marked + this way for RC bug fix. + + -- Jeff Bailey Sun, 1 Aug 2004 08:50:13 -0400 + +glibc (2.3.2.ds1-14) unstable; urgency=low + + * GOTO Masanori + + - debian/patches/glibc232-iconv-ucs2-unalign.dpatch: Add to fix + iconv unalignment access with UCS-2BE/UCS-2LE on some architectures. + (Closes: #234691) + - debian/patches/locale-byn_ER.dpatch: Add to fix byn_ER localedef + breakage. Patched by Denis Barbier . + (Closes: #246270, #257658) + - debian/patches/locales-supported.dpatch: Add no_NO.ISO-8859-1 into + SUPPORTED. (Closes: #246170) + - debian/patches/glibc232-nptl-posix-timer.dpatch: Fix posix timer + SIGEV_THREAD notification is broken. (Closes: #259878) + - debian/patches/glibc232-remove-vsyscall.dpatch: Remove __ASSUME_VSYSCALL + to fix the system startup failure on the machine using PAX. + (Closes: #245563) + - debian/patches/90_glibc232-timezones.dpatch: Updated to tzcode2004b + and tzdata2004b. + - debian/patches/locale-eu_FR.dpatch: Add eu_FR and eu_FR@euro. + Patched by Christian Perrier . (Closes: #257840) + - debian/patches/locale-sr_CS.dpatch: Add sr_CS and sr_CS@cyrillic. + Patched by Christian Perrier . But this patch is + conflicted to sr_YU things - it's disabled for a while. + + - debian/local/etc_init.d/nscd: Rewritten the whole script to make + use of the initscript's method. Patched by Thomas Hood + . + (Closes: #229273, #229484, #253119, #252284, #222953) + + - debian/local/manpages/iconv.1: Add small description for `-c' and + so on. (Closes: #189958) + - debian/local/manpages/rpcgen.1: Add -M option description. + (Closes: #193467) + - debian/po/de.po: Updated. Patched by Helge Kreutzmann + . (Closes: #251732) + + - debian/debhelper.in/libc.postinst: Add apache-ssl and apache-perl to + restart script. Suggested by Daniel Jacobowitz . + (Closes: #208997) + - debian/debhelper.in/libc.postinst: Add vsftpd to restart script. + Suggested by Jeff Bailey . (Closes: #213535) + - debian/debhelper.in/libc.postinst: Add lpr-ppd. Change init script + name from lpr, lpr-ppd to lpd, lpd-ppd. (Closes: #205084) + - debian/debhelper.in/libc.postinst: Fix package detection failure when + uninstalled package is encountered during NSS upgrade. + (Closes: #193278) + - debian/debhelper.in/libc.postinst: Add export LANG=C to work scripts + correctly even if user sets locale environment variable. + - debian/debhelper.in/libc.postinst: Change sleep time from 1 to 2. + It's work-around fix, actual fix is start-stop-daemon --stop should + check the process termination. See: #211784. + + - debian/local/usr_sbin/tzconfig: Fix typo: old_timezone vs oldtimezone. + Reported by Kai Henningsen . (Closes: #213159) + + - debian/control.in/libc-dbg: Add Provides: libc-dbg for -dbg package. + (Closes: #219145) + - debian/control.in/libc, debian/control: likewise. + + - /usr/bin/getconf and getconf.1 are moved from libc-dev to libc. + (Closes: #239170) + - debian/debhelper.in/libc-udeb.install: Add libutil* and libcrypt* + to -udeb. (Closes: #258956) + + - Put amd64 port from Andreas Jochens. + - debian/control: Updated. + - debian/control.in: Modify Build-Depends: gcc-3.3 | gcc-3.4. + glibc can build at least gcc-3.3 and later. And this will make it + possible to build glibc with gcc-3.4 when gcc-3.4 becomes the default + on amd64 without changing glibc again. + - debian/sysdeps/amd64.mk: Use workaround -g0 option when gcc-3.4 is + used, because gcc-3.4 on amd64 with -g0 + nested functions are broken: + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=260710 + + * Andreas Jochens + + - debian/rules.d/control.mk: Add amd64 at the appropriate places. + - Add debian/patches/amd64-lib.dpatch to disable the biarch lib64 dir on + amd64 and enable this patch in debian/patches/00list. (Closes: #246547) + - Add a new file debian/sysdeps/amd64.mk with GLIBC_PASSES += nptl + (Closes: #248192) + - debian/sysdeps/amd64.mk: Use gcc instead of gcc-3.3 on amd64. + - debian/patches/fno-unit-at-a-time.dpatch: Add -fno-unit-at-a-time + test to configure for amd64 + gcc-3.4. (Closes: #261082) + + * Jeff Bailey + + - debian/patches/syslog-locale.dpatch: Include patch from Jakub + Jelinek to make sure syslogging happens in the C locale. + Thanks to pere for catching this. (Closes: #161340, #158651) + + - debian/patches/hurd-string.dpatch: New file + - debian/patches/00list.hurd-i386: Only load hurd-string on hurd-i386. + + -- GOTO Masanori Mon, 31 May 2004 23:43:29 +0900 + +glibc (2.3.2.ds1-13) unstable; urgency=low + + * Jeff Bailey + + - debian/control.in/main: Change to new email address. + - debian/debhelper.in/libc-dev.install.hurd-i386: Add missing files. + Thanks to Michael Banck (Closes: #246355) + - debian/sysdeps/gnu.mk: Stub out kernel_check. + Thanks to Michael Banck + + * GOTO Masanori + + - debian/debhelper.in/libc.preinst: Fixed to work when kernel version is + x.y.zFOOz pattern. (Closes: #245643) + - debian/patches/locale-ro_RO.dpatch: Fix Romania can't be built. + (Closes: #245657) + - debian/local/manpages/locale.1: Fix typo: LOC_PATH -> LOCPATH. + (Closes: #246557) + - debian/rules: Fix build correctly when we execute "debian/rules binary". + Patched by Jurij Smakov . (Closes: #247241) + - debian/patches/glibc232-misc-syslog.dpatch: Fix syslog segv under + memory shortage. (Closes: #249559) + - debian/patches/s390-backtrace.dpatch: Fix 900 test failures in the + libjava testsuite in gcc-3.4 on s390. (Closes: #243394) + - debian/sysdeps/linux.mk: Fix build failure when kernel headers directory + in /usr/src has symlink asm direcotry. Patched by Wolfram Gloger + . (Closes: #249408) + + - debian/debhelper.in/libc-udeb.install: Add libnss_files.so*, + - debian/libnss-dns-udeb, libnss-dns-files: Update description. + - debian/control: Update. + + * Colin Watson + + - debian/rules: Add libnss-dns-udeb and libnss-files-udeb. + (Closes: #247430) + - debian/.cvsignore: Likewise. + - debian/control.in/libc: libc-udeb depends on libnss-dns-udeb and + libnss-files-udeb. + - debian/debhelper.in/libc-udeb.install: Remove libnss_dns and libnss_files. + - debian/rules.d/control.mk: Likewise. + - debian/control.in/libnss-dns-udeb: Update description. + + -- GOTO Masanori Wed, 26 May 2004 00:18:06 +0900 + +glibc (2.3.2.ds1-12) unstable; urgency=low + + * GOTO Masanori + + - debian/local/etc_init.d/mountkernfs: Fix typo. (Closes: #229340) + - debian/local/etc_init.d/mountkernfs: Fix error if the kernel does not + set CONFIG_TMPFS on 2.4. (Closes: #230758) + - debian/local/etc_init.d/mountkernfs: Check each mount directory is + actually directory or not. (Closes: #234813) + - debian/local/etc_init.d/mountkernfs: remove "set -e". + - debian/debhelper.in/libc.postinst: use invoke-rc.d to invoke + mountkernfs when it's available, suggested by Junichi Uekawa + . (Closes: #230008) + + - debian/debhelper.in/libc.install: drop installing three files: + debian/local/etc_init.d/mountkernfs, debian/local/etc_default/devpts, + and debian/local/etc_default/tmpfs. Because initscripts now provides + those files. (Closes: #238963) + - debian/debhelper.in/libc.preinst: devpts.sh should be actually replaced to + mountkernfs. But by now mounting filesystems should be done with + mountvirtfs in initscripts. Initscripts needs to remove devpts.sh and + mountkernfs. + - debian/debhelper.in/libc.postinst: likewise. + - debian/debhelper.in/libc.postrm: likewise. + + - debian/debhelper.in/libc.preinst: Fix kernel version detection correctly. + Patched by Goswin von Brederlow . + (Closes: #241395). + + - debian/rules.d/debhelper.mk: Fix build failure in strip processing. + + - debian/patches/51_glibc232-hppa-nopltrel.dpatch: Do not process + lezy relocations if no DT_PLTREL is present. Reported by + Richard Hirst and Patched by + Carlos O'Donell . (Closes: #228375) + - debian/patches/glibc232-ppc32-nanosecond.dpatch: Fix ppc32 stat + reports bogus nanosecond data. Patched by Anton Blanchard + . (Closes: #231358) + - debian/patches/nptl-io-locking.dpatch: Add stdio performance + improvement for nptl. Dpatched by Michael Clark + . (Closes: #238213) + - debian/patches/52_glibc233-hppa-feupdateenv.dpatch: + The newest compiler in unstable has caught a bug in the feupdateenv + implementation for hppa. The code should not be using the constant input + argument as temporary scratch. Patched by Carlos O'Donell + . + - debian/patches/localedef-fix-trampoline.dpatch: Fix localedef segv + when run under exec-shield/PaX and so on due to trampoline issue. + Dpatched by James Troup . + (Closes: #231438, #198099, #215624, #215821, #221740) + - debian/patches/alpha-rtsigaction-fix.dpatch: Fix alpha sigaction with + SA_SIGINFO (rt_sigaction), keep program execution after exiting signal + handler, with correctly calling rt_sigreturn. (Closes: #221969) + - debian/patches/translation-fr.dpatch: Include fr.po translation patch. + Patched by Petter Reinholdtsen . Related bug #243183 + is currently suspended. + - debian/patches/locale-et_EE.dpatch: Fix et_EE locale incorrect charset. + Patched by Petter Reinholdtsen . (Closes: #208238) + + - debian/debhelper.in/libc.postinst: add rsync to NSS checking code. + (Closes: #229196) + - debian/debhelper.in/libc.preinst: add kernel version check code if + real i386 is used. (Closes: #231538) + + - debian/po/da.po: added. Patched by Morten Brix Pedersen . + (Closes: #230669) + - debian/po/cs.po: added. Patched by Miroslav Kure + . (Closes: #230969) + - debian/po/el.po: added. Patched by Konstantinos Margaritis + . (Closes: #230997) + - debian/po/ru.po: added. Patched by Ilgiz Kalmetev + . (Closes: #221657) + - debian/po/uk.po: added. Patched by Eugeniy Meshcheryakov + . (Closes: #235850) + - debian/po/zh_CN.po: added. Patched by Hiei Xu + and Carlos Z.F. Liu . (Closes: #231907) + - debian/po/tr.po: added. Patched by Ercin EKER + and Recai Oktas . (Closes: #240654) + + - debian/debhelper.in/glibc-doc.links: add manpages links for sem_*. + + - debian/patches/template.dpatch: split Author to Dpatch author and + Patch author. + + - debian/sysdeps/hppa.mk: added to create symlink + /usr/hppa64-linux/include to /usr/include for hppa64. (Closes: #239020) + - debian/sysdeps/depflags.pl: added conflicts to gcc-3.3-hppa64 and + gcc-3.4-hppa64. + - debian/sysdeps/depflags.pl: Add replaces: kerberos4th-dev (<< 1.2.2-10) + to avoid conflicting /usr/include/ifaddrs.h. (Closes: #234347) + + - debian/control.in/opt: made libc6-i686 description easier to + understand from users' requests. (Closes: #218396, #239555, #242546) + + - debian/local/usr_sbin/locale-gen: Add code to write an error if the + line doesn't satisfy the format. Patched by Petter Reinholdtsen + . (Closes: #207199) + + * Jeff Bailey + + - debian/debhelper.in/libc.preinst: Don't use awk except in + upgrade mode. (Closes: #229461) + Also make sure that it doesn't trip on words being added to the + upstream revision number. Thanks to James Troup for + mentioning this. + Thanks to Bastian Blank for the fix. + - debian/debhelper.in/libc.postinst: Respect DEBIAN_FRONTEND=noninteractive + for setting timezone. Default to UTC. (Closes: #196382) + + - debian/debhelper.in/libc.docs: Add TODO. + + Hopefully the last round of hurd-i386 fixes: + + - debian/debhelper.in/libc-dev.install.hurd-i386: New file. + - debian/rules.d/debhelper.mk: Deal with the arch-specific install files. + - debian/patches/hurd-cleanup.dpatch: New file for dl-procinfo.c and + missing include in malloc.c (Both in upstream) + - debian/patches/00list: Update + + Locales surgery, with many thanks to Petter Reinholdtsen: + + - debian/patches/glibc22-eo_EO.dpatch: Rename to ... + - debian/patches/locale-eo_EO.dpatch: ... this. + - debian/patches/11_cvs_locales.dpatch: New generated file from CVS. + - debian/patches/locales-stuff.dpatch: Remove bogs code and split + into .. + - debian/patches/locale-de_CH.dpatch: ... this and ... + - debian/patches/locale-ru_RU.dpatch: this. + - debian/patches/locale-no_NO.dpatch: New file to keep no_NO around + during the transition to nb_NO. + - debian/patches/locale-strfmon.dpatch: New file from CVS needed + for new locales formatting. (Closes: #226047) + - debian/patches/00list: Update. + + - debian/patches/glibc22-locales.dpatch: Obsoleted by CVS update. + - debian/patches/locale-es_AR.dpatch: Add template header. + - debian/patches/locales-supported.dpatch: Remove entries provided + by CVS. Add no_NO for transition. + + (Closes: #211607, #215466, #218424) + + - debian/patches/template.dpatch: Tweak to make it easier to + generate patches. + - debian/make-cvs-locales-patch.sh: New file. + + * Daniel Jacobowitz + + - Add separate-debug-info files to libc6-dbg to allow backtraces through + optimized libraries (Closes: #227097, #219459) + - debian/control.in/main: Bump build dependencies for binutils and + debhelper. + - debian/control.in/libc-dbg: Update package description. + - debian/rules: Set NOSTRIP after loading sysdeps rules files, so that + it actually gets set. + - debian/rules.d/debhelper.mk: Generate separate debug info libraries. + Touch stamp file for libc-udeb. + - debian/sysdeps/i386.mk, debian/sysdeps/linux.mk, s390x_extra_cflags, + debian/sysdeps/sparc.mk: Use -g1 instead of -g0 so that we get + unwind information. + - debian/wrapper/objcopy: Wrapper script to remove excess debug + info, for now. + - Remove tabs from debian/changelog, since they confuse + dpkg-parsechangelog. + - Add missing quotes in debhelper.mk NOSTRIP test. + - Don't add libc-dir-add.info to info after all + (Closes: #222171, #230765). + (debhelper.in/glibc-doc.info, debhelper.in/glibc-doc.install) + + * Ben Collins + + - Added and enabled a sparc v9b target (UltraSPARC III). + + * Bastian Blank + + - Add libnss-dns-udeb package. + - Rename udebs to match the real packages. (Closes: #183139) + - Fix provides of udebs. (Closes: #183143) + - Use debhelper udeb knowledge. + + -- GOTO Masanori Wed, 21 Apr 2004 00:40:55 +0900 + +glibc (2.3.2.ds1-11) unstable; urgency=low + + * Jeff Bailey + + - debian/control.in/s390x: Remove -dev dependency on gcc-3.2. + - debian/sysdeps/s390.mk: Add missing ) + - debian/rules: Fixes for cross-compiling + - debian/patches/90_glibc233_tcsetaddr.dpatch: LSB Fix for tcgetattr + (Closes: #218131) + - debian/sysdeps/depflags.pl: Update wine conflicts. + (Closes: #218717) + - debian/sysdeps/depflags.pl: Update cyrus-imapd conflicts. + (Closes: #220983) + - debian/sysdeps/sparc.mk: Force -m32 when building sparcv9 + - debian/patches/glibc-sparc-timing.dpatch: New file to let sparcv9 works. + (Closes: #222886) + - debian/patches/nptl-page-align.dpatch: New file to fix page + alignment troubles. (Closes: #223241, #225466) + + - debian/patches/hurd-exit-attr-hidden.dpatch: New file to fix + compilation on gcc-3.3 and hurd-i386 + - debian/patches/hurd-i386-hwcap.dpatch: New file to give the needed + i386 HWCAP defines on hurd-i386 + - debian/patches/hurd-libc-lock.dpatch: New file to fix FTBFS on hurd-i386 + - debian/patches/hurd-utmp-file.dpatch: New file to fix FTBFS on + non-Linux. + - debian/patches/glibc23-cmov.dpatch: Update for moved i386 HWCAP + definitions. + - debian/patches/glibc23-sse-oldkernel.dpatch: Updated for + severelly munged sysdeps/unix/sysv/linux/i386/dl-procinfo.h + Thanks to Barry deFreese for helping get these in order. + + - debian/patches/00list: Update + + - debian/debhelper.in/libc.preinst: For Linux kernels of the form + x.y.z-n, fail the install if z >= 255. (Closes: #226688) + Thanks to James Morrison and Kevin Everets for help on the wording + of the error message. + + - debian/sysdeps/sparc.mk: Revert Ben's change of '-mcpu=v8 + -mtune=ultrasparc'. This was misleading because it was always + overridden by the glibc Makefile and had no effect. + + * Phil Blundell + + - Require linux-kernel-headers >= 2.5.999-test7-bk-9 to avoid module- + related problems on ARM. + + * Ben Collins + + - Bump sparcv9 back to -mcpu=v8 -mtune=ultrasparc. Should fix sparcv9. + + * Daniel Jacobowitz + + - Pass CC to configure; should fix sparc64. + - Suppress the errno warning message for now. Update to point to + README.Debian.gz. + - debian/patches/glibc23-errno-hack.dpatch, debian/FAQ + - Redirect dpkg -s sysvinit's stderr to /dev/null (Closes: #225601). + - Fix on MIPS targets. Thanks to Guido Guenther + for testing and improvements to the patch (Closes: #223891, #226483). + - debian/patches/mips-asm-unistd.dpatch + - Fix for GCC changes from Thiemo Seufer (Closes: #224744). + - debian/patches/mips-sgidefs.dpatch + - Fix i386-linux build failure. + - debian/patches/glibc23-sse-oldkernel.dpatch + - Quote a backslash in libc.preinst + + * GOTO Masanori + + - debian/debhelper.in/glibc-doc.links: add missing links for + pthread_mutex_*(), pthread_mutexattr_*(), pthread_cond_*(), and + pthread_condattr_*(). + - debian/control.in/main: remove Build-Depends-Indep: latex2html. + (Closes: #221317) + + - debian/local/etc_init.d/devpts.sh: rename to mountkernfs. + - debian/local/etc_init.d/mountkernfs: rename from devpts.sh, for + adding to mount tmpfs(shmfs), sysfs, and usbfs. + - debian/local/etc_default/tmpfs: add to control tmpfs upper limit size. + - debian/debhelper.in/libc.dirs: add to make /sys. + - debian/debhelper.in/libc.install: add mountkernfs and tmpfs, + remove devpts.sh. + - debian/debhelper.in/libc.postrm: rename devpts.sh to mountkernfs. + - debian/debhelper.in/libc.postinst: likewise. + - debian/local/etc_init.d/mountkernfs: fix devpts_mounted to check + its pathname is exactly started from the top directory. + + - debian/debhelper.in/libc.preinst: fix preinst does not stop + on mips even if it's kernel version is < 2.4.22. (Closes: #223769) + + - debian/po/pt_BR.po: Update pt_BR debconf template translation. + Patched by Andre Luis Lopes . (Closes: #219839) + - debian/po/nl.po: Update nl debconf template translation. + Patched by cobaco . (Closes: #220693) + + * Carlos O'Donell + + - debian/patches/51_glibc232-hppa-dist.dpatch: Add entry.h to dist. + - debian/patches/51_glibc232-hppa-profiling.dpatch: Fix profile support. + (Closes: #221010) + + -- Daniel Jacobowitz Tue, 20 Jan 2004 09:41:48 -0500 + +glibc (2.3.2.ds1-10) unstable; urgency=low + + This is the "Swimming to the surface" release. + + * GOTO Masanori + + - debian/control.in/opt: Add more ix86 CPUs in the description. + - debian/debhelper.in/libc.preinst: Ignore old libc4/5. + (Closes: #218449) + + * Daniel Jacobowitz + + - Add a patch to automatically disable NPTL for programs which + reference the old errno; and update the FAQ to match. + (glibc23-errno-hack.dpatch). + - Update make build dependency as reported by Mikko Kautto + (Closes: #218595). + - Update debian/po/nl.po with new translation from Bart Cornelis + (Closes: #218642). + - Update SSE disabling patch to work for static binaries too + (Closes: #218524, #219025). + - debian/debhelper.in/libc.preinst: Ignore ia32-libs also + (Closes: #219176). + - debian/control.in/main: Build depend on fixed linux-kernel-headers + to get ia64 module syscalls (Closes: #218645). + + * Jeff Bailey + + Update to Standards-Version 3.6.1: + - debian/changelog: Convert from Latin-1 to UTF-8. 1 Line affected. + - debian/control.in/main: Update version number. + Fix some lintian warnings: + - debian/changelog: Remove obsolete user-emacs settings. + - debian/control.in/libc: Remove trailing periods from synopis'. These + aren't full sentences. + - debian/local/manpages/gencat.1: New file. + - debian/local/manpages/trace.1: New file. + - debian/debhelper.in/libc-dev.manpages: Install them. + - debian/local/manpages/iconvconfig.8: New file. + - debian/debhelper.in/libc.manpages: Install it. + - debian/patches/90_glibc232-statvfs.dpatch: Don't get confused on bad + mtab. (Closes: #219271) + - debian/patches/90_glibc232-timezones.dpatch: Update timezone + information. + + * Phil Blundell + + - debian/patches/arm-ioperm.dpatch: Third time lucky? + + -- Jeff Bailey Wed, 5 Nov 2003 10:53:14 -0500 + +glibc (2.3.2.ds1-9) unstable; urgency=low + + * GOTO Masanori + + - debian/po/es.po: Update. Patched by Carlos Valdivia Yagüe + . + - debian/debhelper.in/libc.preinst: Replace s/libc6/glibc/ + in messages, actually there are not only libc6, but also + libc6.1, libc0.3, and so on. + + * Daniel Jacobowitz + + - Export libpthread symbols needed for thread debugging + (glibc23-thread-debugging.dpatch). + - Remove glibc23-thread-debugging.dpatch in response to upstream + comments. Don't strip libpthread symbols needed for thread debugging. + - Add version sanity check for kernels whose extraversion starts with a + dot (Closes: #218546). + - Disable SSE for pre-2.4 kernels (Closes: #218524). + - Symlink asm-sparc and asm-sparc64 into debian/include if necessary. + - Don't duplicate .so symlinks in libc6-s390x and libc6-dev-s390x. + - Add a build fix for sparc64; pread syscall has been renamed to + pread64. + - Add a FAQ entry for unresolved errno (Closes: #218561). + - Import patch from CVS to fix ucontext_t/mcontext_t on powerpc32 + (Closes: #207806). + - Patch from Randolph Chung for HPPA system calls + (hppa-syscall.dpatch). + + -- Daniel Jacobowitz Sat, 1 Nov 2003 18:54:16 -0500 + +glibc (2.3.2.ds1-8) unstable; urgency=low + + * Daniel Jacobowitz + + - Don't use --enable-omitfp since we don't install libc_g.a. + - Enable NPTL for S/390. + - Fix the /lib/ld64.so.1 symlink for s390x. + - Update maintainer scripts for fixes lost in the rewrite. + - Enable NPTL for ia64. Thanks to Ian Wienand for testing. + - Automatically cross-compile if the kernel is too old to build + an optimized library. + - Do not run make check if cross compiling. + - Fix msqid_ds on MIPS. Dpatch from Guido Guenther, patch by + Thiemo Seufer (Closes: #215273, #200215, #217593). + - Check for old copies of glibc in a couple of places (Closes: #212224). + - Fix a libio compatibility code bug which crashed the Citrix client + (glibc23-libio-compat.dpatch). + - Remove fuzzy markers from fr.po. Patch from Denis Barbier + (Closes: #217865). + - Re-add debian/patches/80_glibc232-locales-nb_NO-fix.dpatch, which had + gotten lost. + - Re-add typo fixes to iconv.1 and rpcgen.1. (Closes: #202161) + - Merge iconv.1 fix to iconv.pod. + - Re-add fix for locale-gen and POSIXLY_CORRECT. + - Update ldso-disable-hwcap.dpatch and preinst/postinst scripts. + - Update maintainer scripts not to use basename; dpkg invokes the + scripts as tmp.ci/postinst, not libc6.postinst. + - Add a patch for building shlib.lds which fixes a parse error when + building without an existing -dev package installed. + - debian/patches/11_shlib-lds.dpatch + + * Jeff Bailey + + - debian/sysdeps/linux.mk: Use getconf _NPROCESSORS_ONLN instead + of /proc/cpuinfo to calculate NJOBS. The cpuinfo file format + is not consistent between arch's. + - debian/.cvsignore: New file. + + * GOTO Masanori + + - debian/debhelper.in/locales.dirs: Add /usr/lib/locale, because + localedef stops to create locale data if this dir is not found. + - debian/debhelper.in/libc-otherbuild.preinst: Fix typo which + disturbs to install libc-otherbuild package. + - Dan's checking code for old copies in libc6 preinst fixes + installation breakage for example /usr/lib/debug is in + /etc/ld.so.conf, or so on. + (Closes: #165374, #212224). + - debhelper.in/libc.preinst: add kernel version sanity check for + sun4m arch which needs at least 2.4.21 due to hardware multiplication + instruction is used by default. (Closes: #215010, #215012) + - debian/debhelper.in/libc.preinst: fix check_dirs return value. + + -- Daniel Jacobowitz Tue, 28 Oct 2003 18:29:09 -0500 + +glibc (2.3.2.ds1-7) experimental; urgency=low + + * Daniel Jacobowitz + + - Fix TLS libraries, which belong in /lib/tls, not /libtls. + - Fix -march for NPTL libraries on i386 - was i686, should have + been i486. + - Move i686 libraries to /lib/tls/i686/cmov. + - Include make check output in the libc package. + - S/390 perversely uses /lib/ld64.so.1 as the dynamic linker; include + a symlink. + - Leave /lib64/ld64.so.1 executable on S/390. + - Generate SUPPORTED again. + - Update ldconfig to prefer /lib/tls to /lib/i686/cmov. + - Disable conflicts between optimized libraries and libsafe/memprof; + they've worked for a while. + - Switch the i686 optimized libraries to use NPTL, and update their + description. + - Fix dependencies for locales package. + - Include SONAME symlinks in libc6-dbg. + - Remove vestigial gconv-modules Provides. + - Install more files for libc6 and locales packages. + - Correct section for zdump.8 man page. + - Install ld.so.8 in the right directory (debhelper thinks that .so is a + language extension). + - Install info menu entries for functions provided by libc, in + glibc-doc. + - Include changelog in glibc-doc also. + - Re-add libc6-dev dependency on matching libc6. + - Fix libc-udeb build. + + * Phil Blundell + + - debian/patches/arm-ioperm.dpatch: Try again. + + * Jeff Bailey + + Welcome back HPPA, Thanks to Carlos O'Donell + + - debian/patches/50_glibc232-hppa-full-nptl-2003-10-22.dpatch: New. + - debian/patches/50_glibc23-hppa-entry.dpatch: Remove. + - debian/patches/glibc23-00-hppa-pthreads.dpatch: Remove. + - debian/patches/glibc23-01-hppa-dl-machine.dpatch: Remove. + - debian/patches/glibc23-07-hppa-atomicity.dpatch: Remove. + - debian/patches/glibc23-hppa-compat.dpatch: Remove. + - debian/patches/glibc23-hppa-malloc8.dpatch: Remove. + + - debian/patches/00list: Update. + + - debian/rules: Define NJOBS as 1. + - debian/sysdeps/linux.mk: Define NJOBS based on number of processors + - debian/rules.d/build.mk: Use -j $(NJOBS) during build. + Based on patch from Ian Wienand + + - debian/debhelper.in/libc.install: Install pt_chown + - debian/rules.d/debhelper.mk: Don't clobber SUID on pt_chown + - debian/debhelper.in/glibc-doc.docs: Install DEB_SRCDIR/ChangeLog* + - debian/rules.d/build.mk: Don't run testsuite if DEB_BUILD_OPTIONS + contains nocheck + + - debian/sysdeps/gnu.mk: Define slibdir. + - debian/rules.d/build.mk: Only set slibdir in configparms if its set. + - debian/debhelper.in/glibc-doc.doc-base: New file. + - debian/debhelper.in/glibc-doc.install: New file. + - debian/debhelper.in/glibc-doc.links: New file. + - debian/rules.d/build.mk: Generate HTML files. + - debian/rules.d/debhelper.mk: Map LIBC to $(libc) in generated files. + - debian/debhelper.in/libc.install: Install Linuxthreads ChangeLog. + - debian/debhelper.in/libc.docs: Install various docs. + - debian/sysdeps/kfreebsd-gnu.mk: New file. Put in all the magic + from the old packaging. + - debian/sysdeps/kfreebsd.mk: Deleted. + - debian/sysdeps/gnu.mk: Add in GLIBC_OVERLAYS to allow patching to work, + create ld.so symlink at end of build. + - debian/sysdeps/sparc.mk: Change MIN_KERNEL_REQUIRED to + MIN_KERNEL_SUPPORTED. + - debian/sysdeps/s390.mk: Likewise. + - debian/rules: Define kernel_check macro. + - debian/sysdeps/linux.mk: Override kernel_check for Linux. + - debian/rules.d/build.mk: Call kernel_check macro when --build == + --host + + * GOTO Masanori + + - debian/po/ru.po: Update. Patched by Ilgiz Kalmetev + . (Closes: #214349) + + -- Daniel Jacobowitz Sat, 25 Oct 2003 15:09:02 -0400 + +glibc (2.3.2.ds1-6) experimental; urgency=low + + * Phil Blundell + + - debian/patches/arm-ioperm.dpatch: New. + + * Daniel Jacobowitz + + - Add debhelper build dependency. + - Use linux-kernel-headers package for headers. + - Add S/390 support. + - Build libc6-dev-sparc64. + + -- Daniel Jacobowitz Mon, 20 Oct 2003 16:27:39 -0400 + +glibc (2.3.2.ds1-5) experimental; urgency=low + + * Daniel Jacobowitz + + - Fix a thinko in i686 timing patch for non-HP_TIMING architectures. + - Add -k to make check. + + -- Daniel Jacobowitz Mon, 13 Oct 2003 10:53:31 -0400 + +glibc (2.3.2.ds1-4) experimental; urgency=low + + * Daniel Jacobowitz + + - Update i686 timing patch to fix clock_gettime. + - Update glibc23-cmov patch to let ld load tls libraries from + ld.so.cache. + - Include symlinks in optimized library directories to placate + dpkg-shlibdeps. + - Fix shlibs files to include a version again. + - Re-enable make check. + - Update makeconfig.dpatch to fix a typo that broke make check. + - Add glibc-make-check-perms.dpatch to fix an upstream make check + problem. + - Build some optimized libraries using appropriate --build options + so that they can run make check. + + * Jeff Bailey + + - Build libraries for sparcv9 and sparc64. + - Enable TLS for ia64. + + -- Daniel Jacobowitz Sun, 12 Oct 2003 19:42:11 -0400 + +glibc (2.3.2.ds1-3) experimental; urgency=low + + * Daniel Jacobowitz + + - Use ldd* in debhelper.in/libc6, because non-i386 arches don't have + lddlibc4. + - Include gconv-modules in libc6. + - Don't include some unnecessary generated kernel headers. + - Merge previous .dpatch files (Closes: #214470). + - Run depflags.pl again (Closes: #214468). + - Don't include profiled libraries in libc-dev (Closes: #214504). + - Ship /usr/include/asm-generic (Closes: #214512). + + -- Daniel Jacobowitz Mon, 6 Oct 2003 21:18:28 -0400 + +glibc (2.3.2.ds1-2) experimental; urgency=low + + * Daniel Jacobowitz + + - Install the right headers in /usr/include/asm, instead of trying to + replace the directory with a symlink (Closes: #214233). + - Map DEB_HOST_GNU_CPU to a uname value for creating the asm symlink. + - Move libc6-dev's postinst back to preinst. + - Support multiple autoconf.h headers. + - Add an ia64 autoconf.h, from Branden Robinson. + + -- Daniel Jacobowitz Sun, 5 Oct 2003 14:47:05 -0400 + +glibc (2.3.2.ds1-1) experimental; urgency=low + + * Essentially redo the debian/ packaging directory. + + Specifically, the following directories were changed: + - debian/sysdeps/*: Redo into os-based and arch-based handling. + - debian/debhelper.in/*: Use debhelper for all package management. + - debian/rules.d/*: Split out rules file into logical pieces. + - debian/local/*: Move all of the files that Debian provides to here. + + Update dpatch to more closely match the debian package: + - debian/patches/0list: Rename to 00list to match dpatch update. + - debian/rules.d/dpatch.mk: Sync with Debian package with the + following four changes: + 1) Support srcdir != builddir builds. + 2) Support $(stampdir) + 3) patch target depends on unpack + 4) Use $(DEB_SOURCE_PACKAGE) instead of $(PACKAGE) + + Remove dependency on various kernel-headers packages, bring into + the package: + - linux-kernel-headers/: New directory, import from 2.6.0-test2 + + Add NPTL support on i386: + - debian/sysdeps/i386.mk: Add NPTL patterns, set minimum kernel. + + Redo "DBS-Style" tarball support: + - debian/rules.d/tarball.mk: New file + - debian/sysdeps/linux.mk: Bring in linuxthreads and nptl overlays. + - prep.sh: Remove. + - version: Remove. + + Update to recent CVS snapshot to support NPTL: + - debian/patches/10_cvs.dpatch: update + + This cleanup project is the result of several discussions between + Jeff Bailey, GOTO Masanori, Daniel Jacobowitz, and Philip Blundell. + + The initial work here was done by Jeff Bailey, Branden Robinson, + and Daniel Jacobowitz. + + -- Daniel Jacobowitz Thu, 2 Oct 2003 13:47:40 -0400 + +glibc (2.3.2-9) unstable; urgency=medium + + Urgency set to medium, because this version should bring HPPA alive again. + + * GOTO Masanori + + - debian/patches/82_glibc232-iconv-euc-jp-ms-fix.dpatch: Fix EUC-JP-MS + does not work even if they are listed as available in iconv. + Dpatched by Topia . (Closes: #212080) + + - debian/manpages/iconv.1: Fix typo in -o option. Patched by + Max Vozeler . (Closes: #211733) + + - debian/manpages/rpcgen.1: Fix typo which cause some infos for the '-o' + option are not shown, and add -Sm option description. Patched by + Nicolas Francois . + (Closes: #211984) + + - debian/libc/DEBIAN/preinst: Updated libc6 libnss restarting version + from 2.2.94-1 to 2.3.2-2 in preinst. Postinst code was already fixed + in 2.3.2-2. (Closes: #211825) + + - debian/locales/DEBIAN/template: There is no reason to + set LANG=C in /etc/environment, so do not display this locale + in the locales/default_environment_locale question. + - debian/locales/DEBIAN/config: Likewise. + - debian/locales/DEBIAN/postinst: If /etc/environment sets the LANG + variable and a new configuration asks for not setting it, the + line was not removed from this file. + - debian/po/templates.pot: Update templates followed by above changes. + - debian/po/fr.po: Update accordingly using debconf-updatepo with new + translation. + - debian/po/ja.po: Likewise. + - debian/po/ca.po: Update accordingly using debconf-updatepo. + - debian/po/de.po: Likewise. + - debian/po/es.po: Likewise. + - debian/po/fr.po: Likewise. + - debian/po/ko.po: Likewise. + - debian/po/pt_BR.po: Likewise. + - debian/po/ru.po: Likewise. + - debian/po/nl.po: Update accordingly using debconf-updatepo with + fixing line invalid wrapping. + All patched by Denis Barbier . + + - debian/patches/80_glibc232-locales-nb_NO-fix.dpatch: Added to fix + nb_NO as real locale, not an alias. Patched by Petter Reinholdtsen + . (Closes: #206474) + + * Jeff Bailey : + + - 20_glibc232-hppa-full-2003-10-20.dpatch: New HPPA patch. + (Closes: #209253) Thanks to Carlos O'Donell + + - 50_glibc23-hppa-entry.dpatch: Remove. + - 80_glibc232-locales-nb_NO-fix.dpatch: Remove. + - glibc23-00-hppa-pthreads.dpatch: Remove. + - glibc23-01-hppa-dl-machine.dpatch: Remove. + - glibc23-07-hppa-atomicity.dpatch: Remove. + - glibc23-hppa-compat.dpatch: Remove. + - glibc23-hppa-malloc8.dpatch: Remove. + + - 0list: Update + + -- Jeff Bailey Wed, 22 Oct 2003 13:46:39 -0400 + +glibc (2.3.2-8) unstable; urgency=low + + * Phil Blundell + + - debian/control.in/main: add gawk to Build-Depends, since testsuite + apparently requires it. + + - debian/patches/pthread-cleanup.dpatch: Vector __pthread_cleanup_push + and __pthread_cleanup_pop through __libc_pthread_functions. + (Closes: #205234) + + - debian/patches/arm-no-hwcap.dpatch: Admit HWCAP_FAST_MULT again, + since we want to start using this for openssh. + - debian/patches/arm-updates.dpatch: Add some miscellaneous arm + changes taken from upstream. + - debian/patches/arm-vfork.dpatch: Avoid bad interaction between + vfork and libpthread. + + * GOTO Masanori + + - debian/patches/80_glibc232-fesetround-fix.dpatch: Fix fesetround static + link time failure. (Closes: #211135) + + - debian/patches/lo_LA.UTF-8_not_supported.dpatch: Dropped, to support + lo_LA.UTF-8 again. + - debian/patches/80_glibc232-locales-lo_LA.dpatch: Added to support + lo_LA.UTF-8 again. + + - debian/locales/usr/sbin/locale-gen: Fix locale-gen breaks with bash + 2.03, unset POSIXLY_CORRECT iff it's previously defined. + Patched by Daniel Verite . (Closes: #210301) + + -- Philip Blundell Wed, 17 Sep 2003 20:44:48 +0100 + +glibc (2.3.2-7) unstable; urgency=medium + + * GOTO Masanori + + - debian/patches/90_glibc232-mathinline_iso.dpatch: Fix inline math + function complaints with gcc -pedantic -ffast-math. Patched by + Thomas Richter . (Closes: #208016, #207221) + + - debian/patches/template.dpatch: Added DP: Related bugs: field. You can + use it to put which bugs are related with this dpatch. + + * Daniel Jacobowitz + + - debian/control.in/main: Update binutils dependency for !s390. + + - debian/patches/linuxthreads-push-pop.dpatch: Add __libc_cleanup_push + and __libc_cleanup_pop. + - debian/patches/syslog-backrev.dpatch: Remove, no longer necessary. + This should fix the crashes in syslog without libpthread loaded. + + - debian/patches/linuxthreads-jumptable-wine.dpatch: Move + pthread_cond_timedwait out of the way, so that it doesn't break + the way Wine pokes into this structure (Closes: #210347). + + - debian/patches/ia64-memccpy.patch: Fix a segfault on ia64 + (Closes: #210441). + + -- Daniel Jacobowitz Fri, 12 Sep 2003 14:56:19 -0400 + +glibc (2.3.2-6) unstable; urgency=low + + * Phil Blundell + + - debian/control.in/main: require kernel-headers-2.4.20-m68k (>= + 2.4.20-1) for m68k. Requested by Adam Conrad . + + - debian/patches/pthread_cond_timedwait.dpatch: avoid problem when + pthread_cond_timedwait is used in code that doesn't link with + -lpthread. (Closes: #209139) + + * GOTO Masanori + + - debian/sysdeps/kfreebsd-gnu.mk: Added to support kfreebsd-gnu. + Patched by Robert Millan . (Closes: #206663) + - debian/sysdeps/freebsd.mk: Dropped because of replacing kfreebsd-gnu.mk. + - debian/sysdeps/soname.mk: Modified from freebsd to kfreebsd-gnu. + + -- Philip Blundell Mon, 8 Sep 2003 08:51:49 +0100 + +glibc (2.3.2-5) unstable; urgency=low + + * Phil Blundell + + - debian/control: change section for -pic, -dbg, -prof packages + from devel to libdevel. + + - debian/control.in/main: add Build-Depends changes from 2.3.2-3 + here as well. + + - debian/packages.d/*.mk: add md5sums for generated packages, + thanks to Petr Konecny. (Closes: #158354) + + - debian/patches/80_glibc232-locales-header.dpatch: adjust + filenames so patch applies correctly. + + - debian/locales/DEBIAN/config: The "Leave alone" option has been + removed, but locale-gen crashes if it was set by a previous run, + so really discard it. Patch by Denis Barbier (Closes: #204958) + + - debian/patches/lo_LA.UTF-8_not_supported.dpatch: remove this + locale from SUPPORTED file; requested by Denis Barbier. + (Closes: #205118) + + - debian/patches/nss_compat-shadow: fix problem with shadow + passwords and NIS. Patch from Thorsten Kukuk. (Closes: #204711) + + * GOTO Masanori + + - debian/control.in/libc: Add more missing change section for -pic, + -dbg, -prof packages from devel to libdevel. + - debian/control.in/libc-dbg: likewise. + + - debian/patches/80_glibc232-locales-header.dpatch: Fix an_ES, + wa_BE, yi_US localedata header. (Closes: #194289) + + - debian/locales/usr/sbin/locale-gen: Add "unset POSIXLY_CORRECT" + because if user set POSIXLY_CORRECT, this script is interrupted. + (Closes: #206784) + + - debian/patches/glibc22-ttyname-devfs.dpatch: Fix one byte leak + in getttyname_r. Patched by Hunor Csordas . + (Closes: #194637) + + - debian/sysdeps/freebsd.mk: Modified config-os from freebsd-gnu + to kfreebsd-gnu. Patched by Robert Millan . + (Closes: #206663) + + - debian/patches/80_glibc232-iconvdata-fix.dpatch: Fix cp932 + does not work. (Closes: #205679) + + -- Philip Blundell Tue, 26 Aug 2003 22:51:03 +0100 + +glibc (2.3.2-4) unstable; urgency=low + + * Jeff Bailey + - debian/locales/DEBIAN/postinst: Use tail -n 1 instead of tail -1. + Thanks to Jurij Smakov (Closes: #206464) + + * Phil Blundell + - debian/patches/glibc23-arm-waitpid.dpatch: deleted. + - for arm, Build-Depend on kernel-headers 2.4.19-4 or newer. + (Closes: #206895) + - debian/patches/revert-old-libio.dpatch: back out changes causing + problems with fseek in binaries linked with glibc 2.0. + (Closes: #206839) + - debian/libc/DEBIAN/postinst: also restart cucipop (Closes: #206783) + - debian/patches/arm-output-format.dpatch: Very bad hack to avoid + problem with libc.so on ARM until a proper fix is forthcoming. + - debian/patches/81_glibc232-utimes-fix.dpatch: replace with version + that applies cleanly to current sources. + - debian/control: require sed 4.0.5-4 or later. + + * GOTO Masanori + + - debian/po/es.po: Updated Spanish (es) debconf template. + Patched by Carlos Valdivia Yagüe . + - debian/patches/81_glibc232-utimes-fix.dpatch: Fix utimes wrong time + calculation. Patched by Paul Eggert . + (Closes: #204728, #202243, #205110) + + -- Philip Blundell Tue, 26 Aug 2003 17:27:00 +0100 + +glibc (2.3.2-3) unstable; urgency=low + + * GOTO Masanori + + - debian/patches/80_glibc232-futimes-buildfix.dpatch: Fix build failure + on arm, mips, mipsel, due to be missing #include . + (Closes: #204768) + + - debian/libc/DEBIAN/preinst: Modified chown owner:group separater from + `.' to `:', according to POSIX 1003.1-2001. (Closes: #205527) + - debian/packages.d/glibc-doc.mk: likewise. + - debian/packages.d/libc-dbg.mk: likewise. + - debian/packages.d/libc-dev.mk: likewise. + - debian/packages.d/libc-pic.mk: likewise. + - debian/packages.d/libc-prof.mk: likewise. + - debian/packages.d/libc-udeb.mk: likewise. + - debian/packages.d/libc.mk: likewise. + - debian/packages.d/locales.mk: likewise. + - debian/packages.d/nscd.mk: likewise. + - debian/packages.d/optimized.mk: likewise. + - debian/packages.d/s390x.mk: likewise. + - debian/packages.d/sparc64.mk: likewise. + + - debian/libc/DEBIAN/postinst: Restarting script supported dovecot. + (Closes: #205566) + + - debian/po/pt_BR.po: Updated Brazilian Portuguese (pt_BR) debconf + template. Patched by Andre Luis Lopes . + (Closes: #195873) + - debian/po/nl.po: Added nl.po debconf template. Patched by + Bart Cornelis . (Closes: #205090) + + -- GOTO Masanori Fri, 8 Aug 2003 20:32:24 +0900 + +glibc (2.3.2-2) unstable; urgency=low + + This is the "fleeing to the horizon" release... + + * GOTO Masanori + + - debian/patches/glibc23-arm-waitpid.dpatch: Fix arm ld-linux failure due + to sys_waitpid missing. Patched by Philip Blundell . + - debian/patches/50_glibc232-arm-dwarf2-buildfix.dpatch: Avoid arm dwarf2 + build failure. Patched by Philip Blundell . + - debian/patches/50_glibc232-m68k-dwarf2-buildfix.dpatch: Avoid m68k + dwarf2 build failure. Suggested by Philip Blundell , + Andreas Schwab . + - debian/libc/DEBIAN/postinst: Modified watermark of restarting NSS + services from 2.1.94-1 to 2.3.2-2, because libnss_compat is changed in + 2.3.2-1 (2003-06-17 Upstream change). + - debian/patches/80_glibc232-wcsmbs-fix.dpatch: Added to fix wcsmbs bugs + which is lacked in 2003-07-15 upstream cvs. (Closes: #202969) + + - These bugs are fixed in this update: + * Bug in dlopen/dlclose leads to segfaults with kdecore is fixed in this + version. (Closes: #201221) + * Static linking adjtimex() on alpha failed to compile due to undefined + reference to `__adjtimex_tv32'. It's fixed in this version. + (Closes: #186331) + + * Jeff Bailey + - debian/packages.d/s390x.mk: Remove gcc-3.2 hardcode + + * Phil Blundell + - debian/patches/alpha-crti.dpatch: remove stray .prologue causing + alpha build failure. + - debian/patches/alpha-pwrite.dpatch: add missing __GI___pwrite64 alias. + - debian/control: demand binutils 2.14.90.0.5-0.1 or later (required + for .usepv on alpha) + + -- GOTO Masanori Sat, 19 Jul 2003 00:37:11 +0900 + +glibc (2.3.2-1) experimental; urgency=low + + ** UPLOADING THIS TO EXPERIMENTAL ** + + * Clint Adams + - debian/control: build-dep on gcc-3.3 for sparc(64) + - debian/rules: re-enable sparc64 build + - debian/packages.d/sparc64.mk: use gcc-3.3 to build sparc64 + - debian/sysdeps/linux.mk: re-enable sparc64 build + + * Jeff Bailey + - debian/patches/hurd-enable-ldconfig.dpatch: New file + - debian/packages.d/libc.mk: Install regular ldconfig, not + debian/ldconfig-hurd.sh on hurd-i386 + - debian/patches/0list: Add hurd-enable-ldconfig + - debian/sysdeps/paths.mk: Comply with FHS, use $(prefix)/lib, not + $(prefix)/libexec + - debian/rules: Introduce "perfect_make_check_archs" concept - + arch's listed in this variable must pass make check cleanly, + or the build will fail. Start off with i386, powerpc, sparc, alpha + and s390. + - debian/control.in/main: Build-dep on gcc-3.3 + - debian/sysdeps/tools.mk: Use gcc-3.3 + - debian/patches/sparc32-buildfix.dpach: Prune after yet another CVS + update + - debian/patches/syslog-backrev.dpatch: New file + + * GOTO Masanori + - Updated glibc 2.3.2. + - debian/patches/cvs.dpatch: rename it to 10_cvs.dpatch. + I plan to introduce <2digitnumber>_.dpatch filename. + - debian/patches/10_cvs.dpatch: update 2003-07-15 upstream cvs. + - version: bump up to 2.3.2. + - rules.d/shlibs.mk: bump up to 2.3.2. + - debian/sysdeps/sysdeps.mk: i386 optimization level is back to -O2. + + - These debian/patches/ are removed from cvs because + they are no longer being used and were superceeded by CVS patches: + * document-fix.dpatch + * glibc23-cert-rpcxdr.dpatch + * glibc23-getdents64-fix.dpatch + * glibc23-getaddrinfo.dpatch + * glibc23-hppa-shmlba.dpatch + * glibc23-m68k-madv.dpatch + * glibc23-malloc-check.dpatch + * glibc23-regcomp.dpatch + * signal-texi.dpatch + * glibc23-ia64-strncpy.dpatch + * elf-machine-rela-mips.dpatch + * glibc23-linuxthreads-fix.dpatch + * locales-monetary.dpatch + + - These debian/patches/ are removed from cvs because + they are no longer being used and already fixed the previous versions: + * rtsig.dpatch + * crypt.dpatch + * s390x-lib64.dpatch + * hurd-fork-fix.dpatch + + - These debian/patches/ are fixed to apply for glibc + 2.3.2 + cvs.dpatch. + * alpha-pic.dpatch: Fix the diff conflict. + * glibc23-hppa-Rminkernel.dpatch: likewise. + * libgcc-compat-all.dpatch: remove reflected entries in glibc-2.3.2. + * libgcc-compat-other.dpatch: likewise. + * ldconfig.dpatch: modify to be enable to compile again + + - These bugs are fixed in this update: + * glibc 2.3.2 can handle errno correctly if 32 bit uid or gid is used + and errno=ENOSYS is defined before geteuid() is called. + setfsuid(), setfsgid() and getgroups() are also fixed with my patch, + bug reported by Fumihiko Kakuma. (Closes: #183694) + * Submitter Neil's patch is applied in the upstream. (Closes: #181701) + * cfmakeraw definition in manual terminal.texi is fixed with my patch. + It can be reassign only to manpages-dev. + * sparc and powerpc has O_DIRECT definition in fcntl.h. + (Closes: #157142, #157143) + * The definition both __bswap_16 and __bswap_32 in bits/byteswap.h is + fixed and it can be ready for non-gcc C-compilers. (Closes: #181910) + * BSD derived random functions are correctly braced into #if defined + __USE_BSD with my patch. (Closes: #108619) + * Dynamic loading problems with the recent OpenOffice.org, KDE, + Wine/Mono, Quake3 Arena, Oracle, and NVidia libGL library, is fixed. + Glibc TLS does not properly handle using dlopen() to access shared + libraries which utilize some TLS models. + (Closes: #171695, #184696, #167564, #192096, #200386) + * Missing ntp_adjtime weak reference on alpha is defined. + (Closes: #182654) + * Sparc64 sysdep.h typo is fixed. (Closes: #185648) + * stdio-common/sscanf.c for libc6-sparc64 with gcc-3.3 can become to be + compiled. (Closes: #185649) + * Timezone data is updated to tzdata2003a. + (Closes: #140788, #149862, #186210, #164719, #190322) + * /usr/bin/locale -a searches both /usr/lib/locale// and + /usr/lib/locale/locale-archive in this release. (Closes: #166979) + * Powerpc fpu_control.h is fixed to be enable to compile _FPU_SETCW + macro. (Closes: #137020) + * The IA-64 versions of __sigsetjmp() and getcontext failed to restore + ar.unat before returning, is fixed in this version. (Closes: #186654) + * regcomp() crashed with some regexp pattern is fixed. + (Closes: #187475) + * pthread_atfork() is removed from unistd.h. Including this definition + in unistd.h is implementation dependent issue, and the upstream + decided not to keep it. (Closes: #106254) + * It's fixed that malloc_stats() segfaults if you don't first allocate + memory. (Closes: #191295) + * Typo in the symbol lookup code is fixed, which causes the loading of + the oracle binary to fail (and possibly affects other apps as well). + (Closes: #191952) + * The abday values for de_DE is changed to two letters. (Closes: #115536) + * IA64 umount needs to set second parameter for sys_umount. It's fixed + in 2003-05-14 cvs. (Closes: #193327) + * tmpfile64() is now available on hurd-i386. (Closes: #171022) + * SIOCSIFNAME is added. (Closes: #164638) + * cos() now correctly returns the cosine, not the sine, of values near + 0.80 on machines lacking an optimised libm. (Closes: #153548) + * ioperm() returns -ENODEV on ARM machines without ISA or PCI. + (Closes: #199134) + + - debian/locales/usr/sbin/locale-gen: Fix the localedef invocation + argument order, to run under POSIXLY_CORRECT=1 environment. + (Closes: #185924) + + - debian/sysdeps/depflags.pl: add Suggests: manpages-dev in libc-dev + package. (Closes: #158410) + - debian/sysdeps/depflags.pl: Adding entry "Suggests: glibc-doc" + into depflags.pl push. + - debian/control.in/libc: Remove "Suggests: glibc-doc" in each -dev + package entry. + - debian/control: likewise. + + - debian/patches/s390-tls.dpatch: add to build glibc 2.3.2 on s390. + The correct fix is to modify the kernel headers, but for the present + we use it regardless of the kernel issue. + Patched by Gerhard Tonn . + - debian/packages.d/libc-dev.mk: s390 kernel-headers package does not have + generate-asm.sh. The current libc-dev.mk assumes the existence of this + script, but on s390 it's not existed. Now libc-dev.mk s390 asm setup + part does not use generate-asm.sh, and has the generate-asm.sh + functionality in its own. This makes s390 which has 32/64 bit multi + libraries are much easier to build. + Patched by Gerhard Tonn . + - debian/packages.d/s390x.mk: likewise. + + - debian/locales/DEBIAN/postinst: add "rm -rf /usr/lib/locale/*" + to remove all old locale dir and locale-archive in locales + configuration time. Requested by Denis Barbier . + - debian/locales/DEBIAN/config: /usr/lib/locale/* files are no more + deleted when /etc/locale/gen is not managaed by debconf. Patched by + Denis Barbier + - debian/locales/DEBIAN/postinst: likewise. + + - debian/locales/DEBIAN/{config,postinst,templates}: Debconf must not + be used to store configuration items; another even more important is + that user changes in configuration files must be preserved. + These files are now fixed with this issue. Patched by Denis Barbier + . Some suggestions by Joey Hess . + - debian/locales/DEBIAN/config: + * Replace /bin/bash by /bin/sh on the shebang line. + * Add support for backing up. + * Parse configuration files and set debconf values. + - debian/locales/DEBIAN/postinst: + * Recreate configuration files from debconf values and run locale-gen + * As explained by Joey Hess, this script should be safer because some + border cases are now taken into account: configuration files might + have no EOL at EOF, and line order is preserved. + - debian/locales/DEBIAN/templates: + * Apply patch from #117509 and another typo fix by Joey Hess + (Closes: #117509) + * In locales/locales_to_be_generated, Choices is no more translatable + because it is set to Choices: ${locales} + - debian/locales/usr/sbin/locale-gen: + * Clean up /usr/lib/locale/ before generating locales + - debian/po/{ca.po, de.po, es.po, fr.po, ja.po, ko.po, pt_BR.po, ru.po, + templates.pot}: update with debconf-updatepo. + + - debian/control: Change Section: from devel to libdevel for packages: + libc0.3-dev, libc6-dev, libc6-dev-s390x, libc6-dev-sparc64, libc6.1-dev + and libc1-dev. + - debian/control.in/libc: likewise. + - debian/control.in/s390x: likewise. + - debian/control.in/sparc64: likewise. + + - debian/control: Remove "Conflicts: php4" from libc1 and libc0.3. + - debian/control: Add "Conflicts: gcc-3.0 (<< 1:3.0.4ds3-11), libgcc1 + (<< 1:3.0.4ds3-11), fakeroot (<< 0.4.5-2.7)" to fix /usr/lib/64 vs + /usr/lib64 issue with upgrading from woody for sparc64 (see bug 156947). + Suggested by Dagfinn Ilmari Mannsaker . + (Closes: #188383, #193331) + - debian/control.in/sparc64: likewise. + + - debian/copyright: update the version and the year 2003. + + - debian/patches/locales-monetary.dpatch: add to change some locales + LC_MONETARY symbols: ar_SD, sr_YU, sr_YU@cyrillic, and es_EC. + And now this patch is merged into the upstream cvs, drop dpatch. + (Closes: #160040, #173963, #185342, #187142, #188159, #190785, #193020) + (Closes: #193508, #193509, #193510, #194791) + + - debian/manpages/localedef.1: remove "-h" from --help option entry. + (Closes: #187621) + + - debian/debver2localesdep.pl: add clever version recognition for binary + only NMU or source NMU/local packaging. + Patched by Gerhard Tonn . + + - debian/patches/glibc23-linuxthreads-fix.dpatch: add to revert Jakub's + change in 2003-04-02 to be enable to compile librt.so for the present. + And this bug is fixed during the development, this patch is dropped now. + Thanks to Jack Howarth . + + - debian/libc/etc/init.d/devpts.sh: Modify mounting devpts for 2.5.68 and + later. As of 2.5.68, devpts is not automounted when using devfs. So + even in that case, devpts needs to be mounted via the devpts.sh script + as well as the case that devfs is not used. + (Closes: #189792, #189879, #191785) + + - debian/libc/DEBIAN/postinst: Add code to remove a relic of the past + /usr/doc/ symlinks. This script should keep at least until + sarge release. (Closes: #189854) + - debian/glibc-doc/DEBIAN/postinst: likewise. + - debian/locales/DEBIAN/postinst: likewise. + - debian/nscd/DEBIAN/postinst: likewise. + - debian/libc/DEBIAN/postinst: Remove symlinks for libc-{dbg,dev,pic,prof}. + + - prep.sh: Add NPTL extract code. + - version: Add NPTL version. + + - debian/packages.d/sparc64.mk: bumping up --enable-kernel version from + 2.4.0 to 2.4.1. + - debian/packages.d/s390x.mk: likewise. + + - debian/patches/50_glibc232-mips-buildfix.dpatch: add for building + mips/mipsel correctly. Patched by Guido Guenther , + Thiemo Seufer . + + - debian/packages.d/libc-udeb.mk: libc-udeb includes libnss_dns and + libresolv. (Closes: #192577) + + - debian/patches/50_glibc23-hppa-entry.dpatch: added to fix funcptr + (function descriptors) for _start on hppa, so we need a + sysdeps/hppa/elf/entry.h (similar to ppc64, ia64, etc). + Patched by Randolph Chung . (Closes: #193656) + + - debian/patches/30_glibc232-base.dpatch: add that binutils 2.14.90.0.2 + has entered in sid, which contain the binutils portion of the base fix. + Reported by Jack Howarth . + + - debian/patches/sparc32-buildfix.dpatch: added to fix sparc32 build. + + * Ben Collins + - debian/contron.in/sparc64: Remove the superflous (and incorrect) dep on + gcc-3.2 for libc6-dev-sparc64. Add lib64gcc1 as a dep for libc6-sparc64. + - Use CC for building sparc64 libs. + - Remove build-dep for gcc-3.3 on sparc. + - Really fix devpts.sh so that it mounts devpts whenever devpts is + available and not mounted. + - sparcv8-target.dpatch: New patch that enables v8 optimizations for + sparc-linux compiles. Debian specific. For some reason config.sub + doesn't recognize sparcv8, else I'd just pass sparcv8-linux as the host + target. + - Change how things are passed to configure for optimized packages, so + that we let glibc set all the optimizations for us. + - Change how sparc64 and s390x are built. Before the binary stage would + force the build of the packages. Now, the build/install phases dep on + the same for sparc64 and s390x. Same way that the OPT packages are done. + + -- Jeff Bailey Tue, 15 Jul 2003 14:35:58 -0400 + +glibc (2.3.1-17) unstable; urgency=low + + * GOTO Masanori + - debian/libc/DEBIAN/preinst: Add NSS restarting preinstallation + service detection routine and messages. xdm, kdm, gdm, + postgresql, xscreensaver needs user's hand restart. + (Closes: #165258, #165915, #184036, #184495, #188724) + - debian/libc/DEBIAN/postinst: Edit NSS restarting messages to + adopt some preinst messages. + - Cleanup optimized and sparc64 builds. + + -- GOTO Masanori Sat, 19 Apr 2003 22:01:40 +0900 + +glibc (2.3.1-16) unstable; urgency=high + + * GOTO Masanori + - debian/patches/glibc23-cert-rpcxdr.dpatch: Fix "CERT Advisory + CA-2003-10 Integer overflow in Sun RPC XDR library routines" + (Closes: #185508). + + - debian/packages.d/glibc-doc.mk: Fix unneeded file '[' and ']' in + /usr/share/man/man3. + - These debian/patches/ are removed from cvs because + they are no longer being used and were superceeded by CVS patches: + - libgcc-compat-mips.dpatch + - libgcc-compat-sparc.dpatch + - debian/libc/DEBIAN/postinst: add spamassassin to restart during + upgrade from 2.2 to 2.3. (Closes: #185275) + - debian/control.in/opt: add one empty line at the end of file. + This fix avoids opt packages to get mixed debian/control + message with libc-udeb package. (Closes: #185688) + + -- GOTO Masanori Tue, 18 Mar 2003 00:04:13 +0900 + +glibc (2.3.1-15) unstable; urgency=low + + * GOTO Masanori + - debian/packages.d/optimized.mk: drop configure --disable-static + option, because it does not work. enable-kernel version bumps + up to 2.4.1. + + - debian/manpages/nscd.8: Apply slightly improvement for the nscd(8), + nscd_nischeck(8), and nscd.conf(5) man pages. Patched by + Sebastian Rittau (Closes: #94058) + - debian/manpages/nscd.conf.5: likewise. + - debian/manpages/nscd_nischeck.8: likewise. + - debian/manpages/zdump.1: add the description that zonename should be + relative path name from /usr/share/zoneinfo. (Closes: #171017) + - debian/manpages/locale.1: add the description for LOCPATH. + (Closes: #176661) + + - debian/locales/DEBIAN/templates: Add a description "what is the + locale?". (Closes: #119197) + - debian/FAQ: Add description how to setup your own locale with + debconf + locales. (Closes: #99763) + + - debian/locales/DEBIAN/templates: Introducing new templates format + with po-debconf. Thanks to Denis Barbier . + - debian/packages.d/locales.mk: likewise. + - debian/po/*: likewise. + - debian/control.in/main: Build-Depends-Indep: po-debconf. + - debian/po/ja.po: Update translation data. + - debian/po/fr.po: Update translation data. Translated by + Denis Barbier . (Closes: #183652, #193083). + + - debian/sysdeps/depflags.pl: Remove conflicts: file-rc (<< 0.7.0) + - debian/libc/DEBIAN/postinst: Use /usr/sbin/update-rc.d in updatercd(), + suggested by Anthony Towns . + - debian/libc/DEBIAN/postinst: Check /usr/{lib,share}/file-rc/ + because file-rc >= 0.7.0 does not use /usr/lib/file-rc. + + - debian/patches/glibc23-hppa-compat.dpatch: add hppa libgcc-compat + symbols patch, patched by Randolph Chung . + - debian/patches/libgcc-compat-all.dpatch: update for mips and add + for alpha, patched by Guido Guenther . + - debian/patches/libgcc-compat-other.dpatch: add for arm, m68k, ia64 + and s390. Patched by GOTO Masanori . + + - debian/locales/usr/sbin/locale-gen: add "set -e" in order to return + value. (Closes: #183449) + + - debian/packages.d/libc-udeb.mk: contain libpthread.so to support + installer using pthread. (Closes: #183155) + + - debian/sysdeps/depflags.pl: remove php4 conflicts from libc6. + (Closes: #183477, #184091) + + - debian/libc/DEBIAN/postinst: add proftpd-{ldap,mysql,pgsql} to + restart during upgrade from 2.2 to 2.3. (Closes: #184129) + - debian/libc/DEBIAN/postinst: add cupsys. (Closes: #184257) + + - debian/patches/glibc23-m68k-madv.dpatch: add to fix build error + for some MADV_* used software on m68k, pulled from the latest cvs. + (Closes: #159723, #181661, #184589) + + - debian/patches/glibc23-00-hppa-pthreads.dpatch: add to improve + linuxthreads on hppa. Pathced by Carlos O'Donell + . His summary: LinuxThreads is now using a + self-aligning lock. + - debian/patches/glibc23-hppa-malloc8.dpatch: add to improve malloc + on hppa. Patched by Carlos O'Donell . + His summary: Malloc alignment has been moved back to 8 for optimal + performance. + + - These debian/patches/ are removed from cvs because + they are no longer being used and were superceeded by CVS patches: + - glibc23-02-hppa-min-kern-unwind-fde.dpatch + - glibc23-03-hppa-mcontext.dpatch + - glibc23-04-hppa-fcntl64.dpatch + - glibc23-05-hppa-buildhack.dpatch + - glibc23-06-hppa-tests.dpatch + - glibc23-08-hppa-configure.dpatch + + - Glibc 2.3 uses another regex engine: "sed: woody version more than + 1000 times slower than potato version" should be fixed. + (Closes: #155751) + - en_CA can generate without warnings. In addition, we use debconf + interface in these days, this kind of "manual edit /etc/locale.gen" + bug should be avoided. (Closes: #151631) + - libc6.postinst restarts samba in these days. (Closes: #168189) + - _FPU_SETCW/_FPU_GETCW macro works fine on powerpc in these days. + "Incorrect macro _FPU_SETCW in " should be fixed. + (Closes: #137020) + - hyper and unsigned hyper are supported in the current glibc. + "rpcgen(1) doesn't handle 64 bit types" should be fixed. + (Closes: #69041) + + -- GOTO Masanori Wed, 26 Feb 2003 18:44:08 +0900 + +glibc (2.3.1-14) unstable; urgency=low + + * GOTO Masanori + - debian/patches/glibc23-cmov.dpatch: Fix hwcap condition code again, + previous version did not work properly under some situation. + - debian/sysdeps/depflags.pl: Fix libnss-db dependency from << 2.2-6 + to <= 2.2-6.1.1, because the first version of libnss-db to work + with libc6 2.3 is 2.2-6.1, and 2.2-6.2 works under all architectures + correctly. Suggested by Ryan Murray . + (Closes: #181834) + - debian/sysdeps/depflags.pl: Fix libc6.postinst breakage with file-rc + (<< 0.7.0), now libc6 conflicts them. (Closes: #181683, #182320) + + -- GOTO Masanori Fri, 21 Feb 2003 09:19:45 +0900 + +glibc (2.3.1-13) unstable; urgency=low + + * GOTO Masanori + - debian/libc/DEBIAN/postinst: Replace from "/usr/lib/file-rc" to + "/usr/share/file-rc" to follow up file-rc 0.7. + (Closes: #181551, #181556, #181606) + - debian/libc/etc/init.d/devpts.sh: Fix devpts.sh failure if + $devfs_mounted is empty. (Closes: #181541, #181591) + + -- GOTO Masanori Wed, 19 Feb 2003 09:26:17 +0900 + +glibc (2.3.1-12) unstable; urgency=low + + * GOTO Masanori + - debian/patches/glibc23-malloc-check.dpatch: Fix hppa MALLOC_CHECK_ + invalid pointer problem. (Closes: #177242) + - debian/patches/libgcc-compat-sparc.dpatch: Fix sparc libgcc compat + symbol problem. Patched by Guido Guenther + (Closes: #178645) + - debian/patches/locales-supported.dpatch: This dpatch addes many + locales especially for UTF-8 and ISO-8859-15, to display debconf + locale menu using SUPPORTED.orig. + (Closes: #135334, #154556, #177472, #99623, #130517) + - debian/packages.d/glibc-doc.mk: add pthread_{getspecific, key_delete, + setspecific} manpage symlinks to pthread_key_create. (Closes: #99530) + - debian/manpages/ldconfig.8: Update from the redhat manpages. + (Closes: #180916) + - debian/patches/libgcc-compat-all.dpatch: Fix i386 libgcc compat + symbol problem, this dpatch merges with + libgcc-compat-{sparc,mips}.dpatch, patched by Guido Guenther + . (Closes: #179781, #180330) + - debian/locales/DEBIAN/{postinst,templates,config}: Fix default + environment variable "Leave alone" does not affect its meaning. + (Closes: #180040) + * Daniel Jacobowitz + - debian/libc/etc/init.d/devpts.sh: Update devpts.sh to work with the + new grep package (Closes: #181409). + + -- GOTO Masanori Sat, 8 Feb 2003 22:08:59 +0900 + +glibc (2.3.1-11) unstable; urgency=low + + * GOTO Masanori + - debian/libc/DEBIAN/preinst: Fix silly bug at parisc64 kernel version + check, replace from $ver to $kernel_ver. (Closes: #178159, #178217) + - debian/patches/glibc23-cmov.dpatch: Fix hwcap inappropriate handling + not to load CMOV libraries (/*/lib/i686/cmov/) on VIA C3 architecture. + - debian/patches/libgcc-compat-mips.dpatch: Fix undefined some symbols + like __umoddi3 to export libgcc compat symbol. Patched by + Guido Guenther . + - debian/patches/0list: Disabled ldso-disable-hwcap.dpatch because + (1) -opt is not provided currently, (2) disabling hwcap is not good + way whether -opt package is installed or not. + + -- GOTO Masanori Wed, 22 Jan 2003 22:17:45 +0900 + +glibc (2.3.1-10) unstable; urgency=low + + * The "trudging the sludge" release. + + * GOTO Masanori + - debian/packages.d/glibc-doc.mk: install linuxthreads/man/*.man + manpages into glibc-doc package. (Closes: #155794) + - debian/libc/DEBIAN/preinst: add kernel version check compared with + 2.4.19-pa17 on parisc64. Suggested by Randolph Chung. + - debian/libc/DEBIAN/preinst: add kernel version requirement for + 2.5.53-pa3 in 2.5 series kernel on parisc64. + - debian/locales/DEBIAN/config, debian/locales/DEBIAN/templates: + add translated selection "Leave alone" and "None" because such strings + were hardcoded and could not be localized in the templates file. + Patched by Denis Barbier . (Closes: #171502) + - debian/packages.d/glibc-doc.mk: Fix glibc-doc dangling symbolic link for + /usr/share/doc/glibc-doc/html/index.html. (Closes: #169878, #176701) + - debian/libc/DEBIAN/postinst: Fix to work $DEBIAN_FRONTEND value + regardless its case insensitivity. See #176483. + - debian/sysdeps/depflags.pl: Fix again to conflict against wine + (<< 0.0.20021007-1) and php4 (<< 4:4.2.3-5). (Closes: #170385) + - debian/control: Fix unneeded Conflicts: wine and php4, as denoted above. + - debian/control.in/libc: likewise. + - debian/patches/glibc23-cmov.dpatch: Add CMOV to hwcap, for VIA C3 which + is i686 class processor, but does not have 686 optional instruction CMOV. + - debian/patches/glibc23-regcomp.dpatch: Fix regex crash, if clearing + buffer, clear allocated too. This patch is pulled from the current + upstream glibc cvs. (Closes: #175529) + + * Daniel Jacobowitz + - debian/patches/alpha-pic.dpatch: Fix errno reporting from syscalls + on Alpha (Closes: #175511). + + -- GOTO Masanori Sun, 5 Jan 2003 09:13:22 +0900 + +glibc (2.3.1-9) unstable; urgency=low + + * Daniel Jacobowitz + - debian/packages.d/s390x.mk: Don't try to install CVS directories + (Closes: #174267). + - debian/packages.d/optimized.mk, debian/packages.d/sparc64.mk: + Likewise. + - debian/patches/glibc23-errno.dpatch: Updated for "h_errno" and "_res" + also. + - Upload properly this time, with a .diff.gz (Closes: #174436). + + * GOTO Masanori + - debian/patches/glibc23-hppa-shmlba.dpatch: Applied hppa SHMLBA + definition. (Closes: #170507) + - debian/libc/DEBIAN/postinst: add mysql-server in restarting service + list. (Closes: #172123) + - debian/patches/document-fix.dpatch: Applied patches sent by + H. S. Teoh and GOTO Masanori. (Closes: #117680) + - debian/patches/glibc23-asserth-decls.dpatch: Applied patches send by + Jeroen T. Vermeulen . (Closes: #106253, #164571) + - debian/libc/DEBIAN/postinst: Removed 'logind' from checking list + because it does not exist. + - debian/libc/DEBIAN/postinst: Replaced dpkg -s from apache2 to + apache2-common correctly. + - debian/libc/DEBIAN/postinst: Redirect dpkg stderr message to /dev/null, + which is showed if there are not installed packages. (Closes: #168481) + - debian/libc/DEBIAN/postinst: Message typo fixed as "successfully." + (Closes: #168483) + - debian/manpages/ldd.1: Updated newer version which is pulled from + RedHat manpages. + - debian/locales/usr/sbin/locale-gen: add '-A /etc/locale.alias' into + localedef option to consult locale alias name when making archives. + + -- Daniel Jacobowitz Thu, 2 Jan 2003 12:02:13 -0500 + +glibc (2.3.1-8) unstable; urgency=high + + * Daniel Jacobowitz + - debian/patches/glibc23-errno.dpatch: Temporarily re-enable linking + to "errno" to fix compatibility with broken binaries + (Closes: #174040, #174004). + - debian/patches/glibc23-getaddrinfo.dpatch: Add getaddrinfo patch + from CVS (Closes: #174027). + - debian/control.in/main: Add myself to Uploaders. + + -- Daniel Jacobowitz Tue, 24 Dec 2002 12:35:39 -0500 + +glibc (2.3.1-7) unstable; urgency=high + + * The "Climb Ev'ry Mountain" release. + + * GOTO Masanori + - debian/packages.d/s390x.mk: typo fixed, s390x-linux should be + ok to rebuild. (Closes: #173874) + - debian/patches/glibc23-getdents64-fix.dpatch: Fix getdents64 + failure on linux kernel 2.2. (Closes: #173913) + + * Jeff Bailey + - sysdeps/linux.mk: Finish disabling sparc64. + + -- GOTO Masanori Sun, 22 Dec 2002 01:35:43 +0900 + +glibc (2.3.1-6) unstable; urgency=low + + * The "I will not be thwarted" release. + + * Daniel Jacobowitz + - Update glibc23-ctype-compat.patch to fix segfaults in old static + binaries (Closes: #171451). + - Allow building from the CVS checkout without getting CVS dirs in the + resulting packages. Whew. + + * Jeff Bailey + - debian/patches/cvs.dpatch: Update. + (Closes: #171550, #170507) + - debian/patches/0list: Update + - debian/control.in/libc: Conflict against wine (<< 0.0.20021007-1) + (Closes: #170385) + Also conflict against php4 (<< 4:4.2.3-5) + Thanks to Steve Langasek for hunting this down! + - debian/rules: Disable sparc64 build targets for now. + - debian/packages.d/s390x.mx: Setup the 64 bit build as a cross-compile, + because 's390' cannot run binaries intended for 's390x' + + * GOTO Masanori + - cvs.dpatch update resolve some bugs (Closes: #169919, #165603) + - debian/patches/glibc23-hppa-Rminkernel.dpatch: Added hppa kernel + version checking due to prevent people from installing unmatched version. + Patched by Carlos O'Donell (Closes: #171804) + - debian/libc/DEBIAN/preinst: likewise. + - glibc23-function-compat.dpatch: Added for some bad application to + keep running and not to resolve some symbols like __libc_wait, + __libc_waitpid, so on. This patch will be removed when sarge will be + relased apparently. (Closes: #165358, #173201) + + - debian/locales/DEBIAN/config: db_set is set if and only if locale.gen + is existed. Patched by Masato Taruishi + His note: + The previous config script always set locales_to_be_generated + even when /etc/locale.gen doesn't exist. So the question in + dpkg-preconfigure time became empty in dpkg --configure locales time. + This change resolves long outstanding locales bug. + (Closes: #156386, #151784, #154244, #164523) + + -- Daniel Jacobowitz Mon, 2 Dec 2002 17:26:38 -0500 + +glibc (2.3.1-5) unstable; urgency=low + + * This is the "Leonids" release. + + * Jeff Bailey + - debian/packages.d/libc-udeb.mk: Do not rename file to SONAME if it's + a symlink. Needed for hurd-i386. + - debian/patches/signal-texi.dpatch: New file to remove link to + linuxthreads manual. Needed for hurd-i386. + + Welcome back, hppa: + + - debian/patches/glibc23-00-hppa-pthreads.dpatch + - debian/patches/glibc23-01-hppa-dl-machine.dpatch + - debian/patches/glibc23-02-hppa-min-kern-unwind-fde.dpatch + - debian/patches/glibc23-03-hppa-mcontext.dpatch + - debian/patches/glibc23-04-hppa-fcntl64.dpatch + - debian/patches/glibc23-05-hppa-buildhack.dpatch + - debian/patches/glibc23-06-hppa-tests.dpatch + - debian/patches/glibc23-07-hppa-atomicity.dpatch + - debian/patches/glibc23-08-hppa-configure.dpatch + Thanks to Carlos O'Donell for these! + + - debian/control.in/libc-udeb: Remove missing trailing blank line. + Thanks to Tollef Fog Heen. Closes: #169342 + - debian/control.in/s390x: Remove missing trailing blank line. + Thanks to Gerhard Tonn. + + - debian/libc/DEBIAN/postinst: Fix error in apache2 restart logic. + Thanks to Carlos O'Donell. + + - debian/packages.d/libc-dev.mk: Fix missing tabs from s390x section. + - debian/patches/s390-types.dpatch: New file to fix __ssize_t + Thanks to Gerhard Tonn for these. + + - debian/packages.d/libc-udeb.mk: use DEB_HOST_ARCH, not DEB_BUILD_ARCH + for determining package name. Fixes cross-compilation case. + + - debian/patches/0list: Update for above + + -- Jeff Bailey Mon, 18 Nov 2002 23:12:47 -0500 + +glibc (2.3.1-4) unstable; urgency=low + + * Daniel Jacobowitz + - debian/patches/cvs.patch: Fix RCS ID tags. + - debian/rules, debian/sysdeps/sysdeps.mk: Move i386 optimization + hack out of the rules file and put debugging information back in + libc6-dbg for i386 (Closes: #165892). + - debian/patches/crypt.dpatch: Fix initialization in crypt_r + (Closes: #163260). + - debian/patches/rtsig.dpatch: Fix the value of SIGRTMIN in non-threaded + applications (Closes: #165412). + - debian/rules, debian/packages.d/libc-dev.mk, + debian/packages.d/libc-udeb.mk: Don't use '{}' wildcards, to fix + building with /bin/sh -> ash. + + * GOTO Masanori + - debian/libc/DEBIAN/postinst: add more NSS services: + samba, courier-authdaemon + - debian/packages.d/sparc64.mk: fix build error. + - debian/libc/DEBIAN/postinst: modify apache2 service, + apache2 ships its init script in apache2-common, but the script + is in apache2. So replace from apache2-common to apache2 is needed. + Closes: #165959 + - debian/patches/cvs.patch: Hurd trailing slash handling fixed. + Closes: #162414 + - debian/patches/locales-stuff.dpatch: Fixed error generating de_CH, + it's caused by typo. Closes: #140054 + + * Jeff Bailey + - debian/patches/cvs.dpatch: New file. + - debian/patches/0list: Update + - debian/sysdeps/depflags.pl: Conflict against libnss-db <= 2.2-6 + Thanks to Ryan Murray for the patch. Closes: #168890 + + - debian/patches/s390x-lib64.dpatch: New file. + - debian/control.in/s390x: New file. + - debian/libc-s390x/postinst: New file. + - debian/packages.d/libc-dev.mk: Handle asm-s390x + - debian/packages.d/s390x.mk: New file. + - debian/rules: Include s390x files. + - debian/rules.d/control.mk: Add s390x to control_deps, and include + control.in/s390x + - debian/sysdeps/linux.mk: Add s390x support. + + Thanks to Gerhard Tonn. Closes: #169176, #166450. + + - debian/control.in/main: Update Standards-Version to 3.5.7.0 + + - debian/patches/glibc22-hppa-fcntl.dpatch: Remove File + - debian/patches/glibc22-hppa-fcntl-lfs.dpatch: Remove File + - debian/patches/glibc22-hppa-mcontext.dpatch: Remove File + - debian/patches/glibc22-hppa-pthreads.dpatch: Remove File + - debian/patches/glibc22-hppa-rela.dpatch: Remove File + - debian/patches/glibc22-hppa-tests.dpatch: Remove File + - debian/patches/glibc22-hppa-unwind.dpatch: Remove File + + - debian/patches/hurd-fork-fix.dpath: New File. + + Note: CVS patch disabled for this upload + + -- Daniel Jacobowitz Tue, 29 Oct 2002 13:14:51 -0500 + +glibc (2.3.1-3) unstable; urgency=low + + * GOTO Masanori + - debian/patches/librt-mips.dpatch: librt is not worked on + mips/mipsel architecture, we apply it until sarge will be + released. Thanks to Guido Guenther . + - debian/patches/glibc23-ctype-compat.dpatch: added. + glibc 2.3.x changes some symbols (__ctype_b, __ctype_toupper, + __ctype_tolower) as hidden attribute. These symbols that are + crashing the old 2.2.x dynamic linking code in static binaries + are now exported. + This patch is originally pulled from RedHat patch, I modified + it for current debian glibc. Closes: #165554 + + -- GOTO Masanori Sun, 20 Oct 2002 15:04:48 +0900 + +glibc (2.3.1-2) unstable; urgency=low + + * This is the "Why did everything stop working, mommy?" release + + * Jeff Bailey + - debian/libc/DEBIAN/postinst: Warn about NSS changes if upgrading + from older than 2.2.94-1. Add ssh-krb5 and apache2 to list of + services that definetly need restarting. + + Add libc-udeb (closes: #158589) Thanks to Tollef Fog Heen. + - debian/control.in/libc-udeb: New file + - debian/packages.d/libc-udeb.mk: New file + - debian/rules: Call udeb machinery. + - debian/rules.d/control.mk: Call udeb machinery. + + - debian/sysdeps/build-options.mk: Strip libc on alpha + + - debian/control.in/main: 2.13.90.0.10-1 is broken on s390 + require 2.13.90.0.4-1 for them. + + * GOTO Masanori + - debian/patches/0list: disable ip6-fix.dpatch. Closes: #165287 + - debian/packages.d/libc-udeb.mk: Clean up and fix indent crap. + - debian/rules.d/shlibs.mk: bump up to 2.3.1-1. Closes: #165456 + + -- Jeff Bailey Fri, 18 Oct 2002 11:27:07 -0400 + +glibc (2.3.1-1) unstable; urgency=low + + * This is the "twilight" release... + + * Jeff Bailey + - Upgrade tarballs to 2.3.1 + - version: Update to 2.3.1 + + - debian/sysdeps/linux.mk: Do not build optimized libraries + - debian/rules.d/control.mk: Likewise + + - debian/control.in/main: Require binutils 2.13.90.0.10-1 for ppc + + - debian/patches/elf-machine-rela-mips.dpatch: New file + - debian/patches/0list: Update accordingly. + + - debian/rules: Use -O on i386. This should go somewhere else, + but I want to get this release out. + + * XXX Below here was during the 2.3 development, and never released. + + * Jeff Bailey + - Upgrade tarballs to 2.3 + - version: Update to 2.3 + + - debian/patches/hppa-data-start.dpatch: Remove, incorporated upstream + - debian/patches/various-lsb-fixes.dpatch: Remove, incorporated upstream + + - debian/patches/0list: adjust accordingly + Also, prune ia64-reloc-none from the list. + I can't tell from the code snippet if this + has been incorporated or not. + + - .cvsignore: Add the stamp directories + + - debian/rules: Don't put CFLAGS in configparms, resolves ldconfig + miscompile on i386 + + - debian/rules: Add freebsd-i386 support + - debian/rules.d/control.mk: Add freebsd-i386 support + - debian/sysdeps/freebsd.mk: New file to add freebsd-i386 support + - debian/sysdeps/paths.mk: Add freebsd-i386 support + - debian/sysdeps/soname.mk: Add freebsd-i386 support + + * XXX Below here was during the 2.2.94 development, and never released. + + * Jeff Bailey + - Upgrade tarballs to 2.2.94 + - version: Update to 2.2.94 + + - debian/patches/cvs: Remove + - debian/patches/manual-texinfo4: Remove, incorporated upstream. + - debian/patches/i386-mathinline.dpatch: Remove, glibc headers require + ANSI compilers. + - debian/patches/db1-addon-enabler.dpatch: Remove + - debian/patches/0list: adjust accordingly + + - debian/patches/0list: Comment out string2-pointer-arith. + This was originally created to fix #44697, but without this + patch, 44697 is no longer reproducable. + + - debian/patches/fhs-linux-paths.dpatch: Update to new template format + + - .cvsignore: New file + + * XXX Below here was during the 2.2.93 development, and never released. + + * Jeff Bailey + - Upgrade tarballs to 2.2.93 + - version: Update to 2.2.93 + + The following important patches are still disabled: + + glibc22-hppa-pthreads, glibc22-hppa-rela, ia64-perf + + - debian/patches/0list: prune commented out patches that won't + be needed anymore + + - debian/patches/ia64-reloc-none.dpatch: Updated, thank to + Randolph Chung + + - debian/make-cvs-patch.sh: New file. + + - debian/patches/template.dpatch: Update headers to new format. + + - debian/patches/hurd-ioperms.dpatch - Deleted + - debian/patches/hurd-lfs64.dpatch - Deleted + - debian/patches/hurd-update.dpatch - Deleted + - debian/patches/syserrlist.dpatch - Deleted + + - debian/README - More updates + + - debian/rules.d/control.mk: debian/control should Depend on + debian/sysdeps/depflags.pl + + - debian/sysdeps/depflags.pl: Actually add the dependancy on + libdb1-compat. This is an update to GOTO Masanori's change, + Thanks to Ryan Murray for catching this. + + - debian/patches/mathpatch.dpatch: Prune + + - debian/rules.d/patch.mk: Add `setup' as an alias for `patch' + to provide dbs compatability. + + - debian/patches/cvs.dpatch: Sync with CVS from September 14th. + - debian/patches/0list: Updated + + * GOTO Masanori + - debian/packages.d/glibc-doc.mk: change texi2html processed file from + chapters.texi to libc.texinfo. Closes: #159417 + - debian/packages.d/libc-{dbg,pic,prof}.mk: fix /usr/doc removal + compilation failure. + - debian/libc/DEBIAN/postinst: Fix 'grep -v' failure if the size of + /etc/ld.so.nohwcap is 0. + - debian/rules.d/control.mk: Generate libc-opt control information. + + - Updating 2.2.9x fixes LSB 1.2 compliance. Closes: #156821 + - debian/control: add Depends: libdb1-compat. + Until woody, libdb1 is included in libc6 package. However after sarge, + libdb1 support is removed. libdb1-compat contains libdb1 which is + formerly provided by libc6. Now libc6 depends on libdb1-compat, + so upgrading from woody to sarge does not break any libdb1 issues. + Closes: #155904 + + - debian/patches/glibc22-hppa-fcntl.dpatch: added, patched by + Carlos O'Donell . + - debian/patches/glibc22-hppa-fcntl-lfs.dpatch: added, patched by + Randolph Chung . Closes: #160846 + + * Ben Collins + - Make sparc64 build use gcc-3.2. + - Update all config options to not use --disable-sanity-checks, since we + are actually using gcc-3.2 for everything. + - Patch cleanups. + - Re-enable optimized libs. Includes a simple mechanism which should fix + the conflicting symbols during libc/libc-opt upgrade scenarios. This + means that libc6-v9, libc6-i586 and libc6-i686 are back in full swing. + - Remove all references to /usr/doc symlink crap, which is deprecated. + + * XXX Below here was during the 2.2.92 development, and never released. + + * Jeff Bailey + - Upgrade tarballs to 2.2.92 + - version: Update to 2.2.92 + - debian/control.in/main: Require gcc-3.2 for all archs + - debian/patches/0list: prune glibc-cvs, glibc22-s390-resource, + gmon-start, locales-de_CH, sh-sysdep, alpha-build-failure + + These are already included in the 2.3 series. + + - debian/patches/glibc22-misc.dpatch: Split into ... + debian/patches/makeconfig.dpatch: ... this + debian/patches/locale-es_AR.dpatch: ... and this + debian/patches/i386-mathinline.dpatch: ... and this + debian/patches/ldconfig.dpatch: ... and this. + + - debian/patches/makeconfig.dpatch: Update for 2.3 series + + - debian/patches/0list: Temporarily disable some other patches: + + glibc22-hppa-pthreads, glibc22-hppa-rela, ia64-perf + + - debian/rules: memset.S works on ppc now, so stop deleting it. Thanks + to Jack Howarth for letting us know. + + - debian/sysdeps/gnu.mk: Remove --enable-libio, now set by default. Add + NO_TEST = yes, make check does not run on i386-gnu. + + - debian/sysdeps/tools.mk: Hardcode gcc-3.2 for $(CC) and $(BUILD_CC) + until gcc-defaults switches. + + - debian/rules: use CC=$(CC) when calling configure to get any changed + definitions. + + - debian/control.in/main: Require binutils (>= 2.13.90.0.4-1) + + - debian/rules: Add time/date stamps to beginning and end of log files + + - db1-addon-2.1.3.tar.bz2: Delete + + - debian/ppc-memset.S: Delete + + - debian/README: Update + + * GOTO Masanori + - debian/packages.d/libc-dbg.mk: update libpthread-0.9 -> 0.10. + - packages.d/libc.mk: likewise. + - packages.d/optimized.mk: likewise. + - packages.d/sparc64.mk: likewise. + + - debian/patches/glibc22-hppa-mcontext.dpatch: Fix unmatched userland + mcontext_t definition differed from kernel. Patched by + Carlos O'Donell . Closes: #157374 + + * XXX Below here was during the 2.2.5 development, and never released. + + * GOTO Masanori + - debian/patches/glibc-cvs.dpatch: Update from Glibc CVS. + - debian/patches: Dropped applying below patches due to updating + glibc-cvs.dpatch. + hurd-update, hurd-ioperms, ia64-strncpy, sparc-misc, resolv-nss_dns, + glibc-openoffice-fixes, xdr-array-security, hurd-lfs64, + syserrlist, mathpatch + - Fix gcc 3.1/3.2 compatibility building for glibc on ppc, with upstream + patched by Jack Howarth and + Franz Sirl . + Closes: #155606 + + -- Jeff Bailey Thu, 17 Oct 2002 08:37:52 -0400 + +glibc (2.2.5-15) unstable; urgency=low + + * debian/patches/dl-procinfo-fix.dpatch: Fix libssl optimization + problem occured by glibc dl-procinfo. + Closes: #161700, #161717, #161720, #161740, #161773, #161774 + Closes: #161786, #161788, #161813 + + -- GOTO Masanori Thu, 3 Oct 2002 09:56:46 +0900 + +glibc (2.2.5-14.3) unstable; urgency=low + + * NMU + * debian/patches/glibc22-mips-mcontext.dpatch: delete. + + -- Ryan Murray Sun, 15 Sep 2002 14:21:21 -0700 + +glibc (2.2.5-14.2) unstable; urgency=medium + + * NMU + * debian/patches/alpha-stxncpy.dpatch: keep testsuite patch (accepted + upstream), but disable all use of stxncpy until a correct patch can + be made. + + -- Ryan Murray Thu, 12 Sep 2002 13:04:47 -0700 + +glibc (2.2.5-14.1) unstable; urgency=low + + * NMU + * sysdeps/depflags.pl: Make libc{6,6.1} depend on libdb1-compat + (closes: #155904) + * debian/patches/alpha-stxncpy.dpatch: Add patch from Daniel Jacobowitz + for alpha stxncpy (closes: #159633) + * debian/patches/glibc22-mips-msq.dpatch: Add + sysdeps/unix/sysv/linux/mips/bits/msq.h for mips (closes: #159923) + * debian/patches/glibc22-hppa-fcntl.dpatch: Add DN_* and F_NOTIFY definitions + for hppa (closes: #159636) + * debian/patches/glibc22-hppa-mcontext.dpatch: correct definition of mcontext + to match kernel (closes: #157374) + * debian/patches/glibc22-mips-mcontext.dpatch: correct definition of mcontext + to match kernel (closes: #160462) + * add build-depends on dpkg 1.10.8 to ensure we use the install-info that + has the perl 5.8 workaround. + + -- Ryan Murray Tue, 10 Sep 2002 22:35:48 -0700 + +glibc (2.2.5-14) unstable; urgency=low + + * GOTO Masanori + - debian/patches/sh-sysdep.dpatch: Added the patch to compile for sh[34] + sh[34]eb. Closes: #156273 + - debian/patches/glibc22-m68k-compat.dpatch: Newer m68k debian specific + compatibility patch. Patched by Michael Fedrowitz . + - debian/patches/malloc-security.dpatch: Applied malloc security patch + Patched by Wolfram Gloger . + - debian/patches/alpha-build-failure.dpatch: Fix alpha build failure. + + -- GOTO Masanori Wed, 7 Aug 2002 20:56:54 +0900 + +glibc (2.2.5-13) unstable; urgency=low + + * Ben Collins + - Last maintainer upload for me. + - Fix double getent listing for build of libc package. + Closes: #154133, #152866 + - Set maintainer to the debian-glibc mailing list. Set uploaders to myself + and others. + - Placed into CVS (this log entry is the first test commit). + - ia64 build failure was fixed in last NMU. Closes: #151956 + - This sshd/libc bug is long since gone. Closes: #72596, #82468 + - ldconfig search order has also since been fixed. Closes: #105249 + - Add patches that OpenOffice needs in order to build. Closes: #153107 + - Bump min kernel supported to 2.2.0. Closes: #149529 + - Remove db1 compat library. The only user I know of this is coda. Coda + can include it's own version of the library now. I've emailed the coda + maintainer. + - Bump the shlibs ver because of the min-kernel change, and db1 removal. + - Add xdr-array.c security patch, Closes: #154992 + + * GOTO Masanori + - applied patches/locale-de_CH. + - debian/control: fix my uploader address due to my obsolete gpg key. + - debian/copyright: update copyright year. + + * Jeff Bailey + - Add hurd-i386 patch for support LFS from CVS + - Add patch to only declare sys_errlist and sys_nerr on Linux. This + allows gcc to build cleanly on hurd-i386. + - Require mig >= 1.3-2 (hurd-i386 only), and hurd-dev >= 20020608-1 + (hurd-i386 only) + - Prune hurd-ldflags from Hurd patch list. Noone is quite sure what + it's for. With this change, all hurd-i386 patches are now upstream + in CVS. + - Add 'mathpatch' to fix a math testsuite failure. + + -- Ben Collins Thu, 25 Jul 2002 11:13:22 -0400 + +glibc (2.2.5-12) unstable; urgency=low + + * Non-maintainer upload to fix build problems on ia64 + * replaces ia64-asm-fixes.dpatch with ia64-perf.dpatch, ia64-strncpy.dpatch + + -- Bdale Garbee Tue, 16 Jul 2002 17:09:24 -0600 + +glibc (2.2.5-11) unstable; urgency=low + + * Yet another NMU + * Build with a -11 version to work around fragile logic that breaks + locale dependencies when using NMU versioning. Closes: Bug#152968 + + -- Wichert Akkerman Sun, 14 Jul 2002 23:59:04 +0200 + +glibc (2.2.5-10.0) unstable; urgency=low + + * Non-maintainer upload by the security team + * Rebuild, uploads to both testing and unstable are not allowed + + -- Wichert Akkerman Sun, 14 Jul 2002 04:48:50 +0200 + +glibc (2.2.5-9) testing-security unstable; urgency=low + + * Something fucked up. Not sure why the .diff.gz size didn't match the + .changes/.dsc. Not sure why katie didn't reject the upload when it found + that out aswell. + + -- Ben Collins Sat, 13 Jul 2002 10:08:51 -0400 + +glibc (2.2.5-8) testing-security unstable; urgency=low + + * Resolver security bug fix. + + -- Ben Collins Fri, 12 Jul 2002 18:24:28 -0400 + +glibc (2.2.5-7) unstable; urgency=low + + * Misc ia64 asm updates, and strncpy fix + * Misc sparc patches from DaveM + * Revert sparc64 back to lib64 from my rebelious lib/64 effort. Use gcc-3.1 + now. + + -- Ben Collins Mon, 17 Jun 2002 22:33:39 -0400 + +glibc (2.2.5-6) unstable; urgency=low + + * Fix locales/config to be 755. + * Add big fat note to default nscd.conf about how host cache is insecure, + and disable it by default. This lowers the severity of #139879 for the + time being. I'll close it when a proper fix is in. + * Hurd patches from Jeff Bailey. Hurd goes to libc0.3! + + -- Ben Collins Sun, 28 Apr 2002 11:21:48 -0400 + +glibc (2.2.5-5) unstable; urgency=low + + * Fix missing LOCALES var in locale-gen. + * Fix space before "]" in locales/postinst. Closes: #139902, #139977, + #140048, #140464, #141408, #141515, #141558, #141617, #141786 + * Generate list of locales directly in locales/DEBIAN/config, so that we + have a working list during pre-inst. Closes: #76954, #141384 + * Backout nice changes for now. + + -- Ben Collins Mon, 25 Mar 2002 21:05:44 -0500 + +glibc (2.2.5-4) unstable; urgency=low + + * Include s/ip6.arpa/ip6.int/ patch from Fabbione. Closes: #119773, + #132310 + * Fix perms on locales/DEBIAN/config. Closes: #134094, #139682 + * Update from Glibc CVS: Lots of euro conversions and locales updates. + Closes: #128181, #130259 + Lots of other various fixes (please read the ChangeLog). Closes: #138094 + * Upstream fixed ia64 ldd rewrite problem. Closes: #128451 + * Upstream fixed nice return. Closes: #136815 + * pt_BR translation is ok now, Closes: #128530 + * Applied patch from Ganesan R to better handle some locale names. + Closes: #128969 + * Add ARM patch to disable hardware caps. + * Fix typos in catalan template. Closes: #133247 + * Add a "Leave alone" option for locales setting of /etc/environment. + Make it the default. Closes: #133315, #133315 + * HPPA patch from Randolph Chung. Closes: #133666 + * Fix zh_HK date output, from Anthony Fok. + * s/Noninteractive/noninteractive/ (hopefully for the last time). + Closes: #134381, #137348 + * Fix locales/config for when locale.gen doesn't exist. + Closes: #135343, #134613, #139284 + * Patch from Gary Hade (via Randolph Chung) to fix gmon-start. + Closes: #135748, #129903 + * Fix locale.1 - s/LC_PAPR/LC_PAPER/ Closes: #114174 + * Add glibc22-hppa-tests patch from Randolph Chung. Closes: #137513 + * Alistair McKinstry: + - Added locale.alias(5) and locale.gen(5) man pages. Closes: #106117 + - Patch for glibcbug to correctly handle bad EDITOR setting. + Closes: #128699 + - Include glibcbug.1 manpage. Closes: #128701 + - Add patch to fix segv in localedef. + - Patch for locale.1 and localedef.1 to add missing LC_* vars. + Closes: #114174 + - Fix for the d_fmt field in de_CH. Closes: #27397 + - Fix locale.alias so Russion charset is KOI8-R instead of ISO-8859-5. + Closes: #62586 + - s/Jun/Juni/ s/Jul/Juli/ for sr_YU. Closes: #131846 + - Typo in categories.def. Closes: #133379 + - Update iso-4217.def Closes: #133380 + - Re-enable el.po since we are using newer gettext. Closes: #133383 + * nscd.conf.5: Clarification. server-user option cannot be used with + -S/--secure. It will fail to start. Also note that using server-user other + than root may break some lookup services. Closes: #139433 + * Completely remove the pthread man pages. They are _way_ out of date (last + updated in 1998 according to the ChangeLog). Use the info or html docs + instead. Feel free to send me mucho patches for them, if you want them + back. Closes: #139052, #139042 + * Various LSB conformance patches from Joey Hess. Closes: #136815 + * ia64 patch for R_IA64_NONE relocs. Closes: #135314 + + -- Ben Collins Sun, 24 Mar 2002 09:49:37 -0500 + +glibc (2.2.5-3) unstable; urgency=low + + * Fix logic in locales postinst which would fail on empty or missing + /etc/environment. Closes: #132025, #131999, #132244 + * Remove build-dep on gcc-3.0-sparc64 + * Fix case where no locales are selected, so the only choices for LANG are C + and None. This left a hangin comma which debconf doesn't seem to like. + Closes: #132245 + + -- Ben Collins Sun, 3 Feb 2002 23:13:29 -0500 + +glibc (2.2.5-2) unstable; urgency=low + + * Remove glibc22-m68k-resource.dpatch. Patch is already included upstream. + Closes: #130922 + * Fix thinko in locales postinst. Also add a "None" option for LANG, and + check for it in postinst. + * HPPA correct unwind setting, from Matthew Wilcox. Also update patch + splitting the linuxthreads and rel/rela changes. Closes: #131216 + * Fix copyright shown for the GNU Libc Manual. Closes: #130866 + * Fix problem where a binary-NMU rebuild of libc would provide a version + that was incompatible with the current locales dep. + * Fix atomic_lock_t decleration for hppa. Closes: #131367 + * Fix logic in locales where LANG wasn't being set in /etc/environment. + Closes: #131040 + * Moved SUPPORTED list to /usr/share/i18n/, since policy says it can't be in + /usr/share/doc/locales/. Fixup debconf scripts to notice this. + * A few patches from CVS: + - Fixes bad optimization in dynamic linker + - Updates m68k and arm for unwind + - tzdata2002b updates + - Some irrelevant (for us) x86_64 updates + * Patch from Gerhard Tonn for s390-32 for bits/resource.h. + * libc6-sparc64-dev: Change dep to gcc-3.0 instead of gcc-3.0-sparc64. The + packages are now merged. + + -- Ben Collins Fri, 1 Feb 2002 11:52:54 -0500 + +glibc (2.2.5-1) unstable; urgency=low + + * New upstream. Closes: #122980, #126441 + * locales.postinst: Add a signature line to /etc/locale.gen so people can + take over the file manually instead of through debconf. + * Added -de template for locales. Closes: #114078 + * Removed need for generate-config.mk. SUPPORTED list for debconf is now + generated dynamically using SUPPORTED.gz. + * Added debconf option in locales to choose LANG= default in + /etc/environment based on contents of /etc/locale.gen. Closes: #117216, + #120410 + * Patched nscd init script. Patch supplied by Grant Bowman. Closes: #121942 + * Do not install tzconfig(8), Closes: #123679 + * Removed obsolete BSD license clause in debian/copyright. Closes: #123821 + * Applied spelling patch for locales description. Closes: #125092 + * Updated glibc-doc description to note that it includes html docs too. I am + not, however, splitting info and html docs into seperate packages. Closes: + #125825 + * Check for the existence of libdb.so.3 before cat'ing it. Closes: #126459 + * Added powerpc sysconf patch from David Schleef. Closes: #127560 + * Added SuperH support. Closes: #127740 + * No longer apply glibc-vs-gcc3 patch. Implementation merged upstream. + * Last minute ARM patch to fix unwind. + + -- Ben Collins Thu, 24 Jan 2002 00:31:40 -0500 + +glibc (2.2.4-7) unstable; urgency=low + + * glibc22-hppa: Fix mips/pt-machine.h, so that it patches both the ISA-1 and + ISA-2 cases of testandset(). Also add IPC updates from Willy. Closes: #120383 + * glibc22-hppa: Updated, from Mathew Wilcox. + + -- Ben Collins Mon, 3 Dec 2001 12:09:26 -0500 + +glibc (2.2.4-6) unstable; urgency=low + + * glibc22-hppa.dpatch: Fix lock_held macro on non-hppa. This patch is now + enabled by default for all archs. + * Update patches for HPPA dynamic loader from. + * m68k resource.h patch from Roman Zippel, Closes: #118909 + + -- Ben Collins Fri, 9 Nov 2001 21:20:59 -0500 + +glibc (2.2.4-5) unstable; urgency=low + + * Added patch from Ulrich to really fix the [x-] fnmatch() case. + Closes: #96013 + * Updated gcc3 compat patch. + * Several changes to ldconfig: + - Parse the config file before checking system directories. This is needed + to make sure it is possible to override system directories. + - Cleanup the config file parsing routine a bit. Make sure we open the + config file with correct perms in case it gets created by this call. + * Pulled from CVS as of Oct 27, 2001: + - Includes fnmatch fix upstream. + - strxfrm fix. + - dlfcn fix for C++ program usage. + - ENABLE_NLS fixes for various functions (doesn't affect us, since it is + mainly meant for non-nls builds). + - IPv6 reverse lookup fixes. + - Lots of libm fixes. + - Several language translation updates. + - Several m68k setjmp fixes. + - Some mips fixes merged. + - Timezone updates. + - S390 ucontext fixes. + - Several hurd fixes. + - ELFOSABI_* Updates. + * Update the kernel headers on all the systems I build for (arm, ppc, i386, + mips, sparc, sparc64, hppa). + * Added "es" template for locales, from Carlos Valdivia. Closes: #117413 + * Fixup ttyname patch for devfs, which broke some things. Closes: #117551 + * Remove the errno.texi explanation for _GNU_SOURCE for two defines. The + thing is, according to the libc manual conventions, this is not the + correct way to handle it. In fact, it is already done according to the + convention of the rest of the manual. The two items are tagged with the + "GNU" comment, meaning they are GNU extensions. The libc manual explains + in its introductory chapters that this means it needs the _GNU_SOURCE + define. + + -- Ben Collins Mon, 29 Oct 2001 20:25:40 -0500 + +glibc (2.2.4-4) unstable; urgency=low + + * Hopefully fix the damn .html docs. Looks good to me. Closes: #84237, + #89382 + * Fix inttypes.h typo. Closes: #114483 + * Disable sanity checks for gcc-3.0 archs, Closes: #114724 + * Fix entry for locales depending on debconf. Closes: #115155 + * Fix echo commands when generating locales.config. The -e option is not + portable. + * New hppa patch from several people. This, along with the .10 binutils, + should fix all of hppa's problems. + * Apply devfs compatibility patch for ttyname. Closes: #74911 + * Add (modified) patch for ldconfig to create ld.so.conf if it doesn't + exist. Original patch from David Whedon, Closes: #98763 + * Clarify some errno.texi functions wrt _GNU_SOURCE. Patch from Jeremiah + Savage. Closes: #99683 + * Add conflicts/replaces for all the potato locales that cannot be installed + with this glibc (and are actually supported now). Closes: #108015 + * Fix comma in confnames.h to make all the -pedantic folks happy :). + Closes: #113498, #113816, #114672 + * Include a mips termios.h cleanup patch, sent by Ryan Murray, patch by Ralf + Baechle. + * Add Russion template for locales package, by Ilgiz Kalmetev. Closes: + #114303 + * Fix sed in ia64/ldd-rewrite.sh: Closes: #115784 + * Add Brazilian Portuguese locales template from Andre Luis Lopes, closes: + #116435 + + -- Ben Collins Wed, 24 Oct 2001 12:28:49 -0400 + +glibc (2.2.4-3) unstable; urgency=low + + * Apply patch to fix es_AR number formatting. Closes: #108373 + * Fix SA_* defines on some archs. Patch sent upstream, and accepted. + Closes: #113273 + * Brought in dynamic module patch from CVS that fixes + mozilla/galeon/konquerer. Closes: #113457, #113481, #113708 + * Fixed libc postinst for the readlink call. Based on patch supplied by + Branden Robinson. Closes: #113459 + * Increase shlib dep to 2.2.4-2. Closes: #113731 + + -- Ben Collins Sat, 29 Sep 2001 23:38:11 -0400 + +glibc (2.2.4-2) unstable; urgency=low + + * Updates from CVS Head, includes some s390 fixes, closes: #109072 + * Reincluded some missed patches (notable the fakeroot fix), closes: + #109162 + * Include the iconvconfig program in the libc6 package, closes: #109600 + * Fixup locales/libc dep back to the old way, closes: #109850 + * Apply patch for locale-gen.8, closes: #110554 + * Apply patch to make /etc/locale.gen generated by debconf interface. + Thanks to Ho-seok Lee, closes: #110980, #110661 + * glibc22-fts.dpatch: Remove, fixes upstream now. + * libc/DEBIAN/postinst: Before calling init u, make sure /proc/1/exe + resolves to /sbin/init. This should help ensure we don't muck up + debootstrap. closes: #110615 + + -- Ben Collins Fri, 7 Sep 2001 14:52:02 -0400 + +glibc (2.2.4-1) unstable; urgency=low + + * Final release of 2.2.4. Not much changed from 2.2.3-11. + * Remove cruft from debian/patches/ + + -- Ben Collins Thu, 16 Aug 2001 09:29:14 -0400 + +glibc (2.2.3-11) unstable; urgency=low + + * Updated to HEAD of CVS as of Aug 11, 2001 + - Misc fixes found in 2.2.4pre2 + - This is basically 2.2.4pre3 + * New glibc-vs-gcc3 patch, closes: #108408, #108364, #108415, #108364, + #108454, #108476 + + -- Ben Collins Sun, 12 Aug 2001 10:02:12 -0400 + +glibc (2.2.3-10) unstable; urgency=low + + * Updated to HEAD of CVS, as of Aug 4, 2001 + - Mostly arch specific bug fixes. + - This is actually the same as 2.2.4-pre2 (releasing in a day or so) + * Ok, I give up. I don't want any more bug reports, so I've added the + nfs getdents fix. If it breaks anything, I will hunt down all of those + who submitted the patch/bug. closes: #86877 + * Added two more Q/A's to the Debian FAQ (AKA "The Overfiend Clause" :) + This documents Debian's glibc following stable CVS, and also + kernel-headers desync. + * Added latex2html to build-dep-indep, closes: #101662 + * Fix tzconfig so it handles ambiguous names correctly, closes: #105580 + Patch by Martin Pool + * Add copyright and license to tzconfig, closes: #105581 + * Updated libc0.2 hurd dep to (>= 20010718-1), closes: #106291 + * Include locale-gen.8 manpage from Eduard Bloch + * Duh. We don't need to cat in the saved libdb.so.3 to the new location. + Ldconfig does the work for us by creating a symlink to it. + * Remove sysdeps/powerpc/memset.S so ppc gets the generic C version for + now (which is actually faster on most machines anyway), until they get + their memset.S fixed (especially for Power3). + * Added updates for hppa patch from Matthew Wilcox. + * debian/rules.d/control.mk: Added hppa to list of archs for libc6 + + -- Ben Collins Tue, 7 Aug 2001 10:11:22 -0400 + +glibc (2.2.3-9) unstable; urgency=low + + * Really fix the timezone problem this time. I moved the UTC check + before the TZ check, and then reuse that to get the TZ date, instead + of the other way around. That solves the problem. Using this method, I + can get the UTC date first setting LC_ALL=C, and then allow the + override for the real UTC0 and $TZ date, so we get lang support + without breakage now. + + -- Ben Collins Tue, 24 Jul 2001 12:19:48 -0400 + +glibc (2.2.3-8) unstable; urgency=low + + * Use glibc- instead of glibc_ for the provides between libc and + locales. Underscores are actually not allowed in package names. + * CVS as of July 22, 2001 + * Use LC_ALL instead of LANG in libc postinst, closes: #106043, #106078, + #106081, #106187, #106215 + * Use Noninteractive, not noninteractive in postinst's, closes: #105902 + * SUPPORTED file ends in .gz...guess some people can't bother to add + that themselves. Also, add notes about locale-gen closes: #105915 + * Fix cp -L calls, use cat instead to make sure we avoid any command + line problems, closes: #106120, #106096 + * MIPS WARNING: The MAP_BASE_ADDR patch does not apply anymore, since it + seems that whole bit of code was removed. MAKE SURE THIS DOESN'T BREAK + ANYTHING! :) + + -- Ben Collins Sun, 22 Jul 2001 23:04:15 -0400 + +glibc (2.2.3-7) unstable; urgency=low + + * CVS as of 7-9-2001, closes: 101308, 103251, 100398, 100398 + * New hppa patch, still not enabled by default since I got deadlocks in + the linuxthreads tests (ex2 and ex10) on sparc. + * Increased shlibdep to 2.2.3-7 + * SUPPORTED locales list is now in doc dir, and locale.gen is a + non-changing file (still a conffile, but it doesn't change when glibc + changes). + * Fix fts patch so it doesn't break Hurd, closes: 102826 + * Make libc provide glibc_$DEBVERSION, and locales depend on it. This + way we make sure everything matches up. closes: 100605, 100605, + 101034, 100605, 99344 + * Added some more UTF-8 locales, closes: 103742, 86372 + * Fixed hurd's ldconfig, closes: #101691 + * Already fixed ld_envlib_path, closes: 101622 + * In libc preinst, detect if we are upgrading from a version where we + used to provide our own libdb.so.3, and keep a copy. We reuse it + during postinst. This way, we have no time where libdb.so.3 doesn't + exist. closes: 101795, 103586 + * Removed depends on libdb2 from libc6, since our hack above makes it + pointless. Now, libc6 should get installed before libdb2 (since it + depends on libc6), which will leave a working libdb.so.3. After libdb2 + is upgraded, the new libdb.so.3 will be installed, which will work + since the new libc6 that it depends on is also working. + * Fixed calls for zoneinfo as per JoeyH's suggestion. closes: 100461 + * Updated copyright notice since LGPL 2.1 is now used. + + -- Ben Collins Tue, 10 Jul 2001 14:00:59 -0400 + +glibc (2.2.3-6) unstable; urgency=low + + * CVS As of 6-9-2001, closes: #100055 + * debian/sysdeps/depflags.pl: Fix typo where netbase/netkit-rpc wasn't + being added to libc-dev control flags, closes: #98735, #99460, #99990, + #100382 + * Moved rpcinfo from /usr/sbin to /usr/bin... closes: #100279 + * Added fts() security patch + * Updated patch for HPPA, now also enabled per default + + -- Ben Collins Sat, 9 Jun 2001 16:35:29 -0400 + +glibc (2.2.3-5) unstable; urgency=low + + * CVS as of 5-28-2001 + * Added fake ldconfig script for hurd, provided by Robert Bihlmeye, + closes: #95189 + * Add replaces for netbase (<< 4.0), closes: #98708, #98735 + * Install rpcgen/rpcinfo manpages, closes: #98710 + + -- Ben Collins Mon, 28 May 2001 14:36:32 -0400 + +glibc (2.2.3-4) unstable; urgency=low + + * CVS as of 5-24-2001 + * Add forgotten mips ld.so patch + * Added s390 to arch lists, closes: #97718 + * Add m68k fPIC patch for libc_nonshared, closes: #97663 + * Add LD_LIBRARY_PATH to --library-path, closes: #98638 + + -- Ben Collins Thu, 24 May 2001 16:10:09 -0400 + +glibc (2.2.3-3) unstable; urgency=low + + * Upgraded to CVS as of 5-20-2001 + * New HPPA patch (applies cleanly) + * Fix prep.sh, closes: #97600 + * Add rpcinfo to libc, and rpcgen to libc-dev. Add Conflicts/Replaces + for both packages with netkit-rpc, closes: #93280 + + -- Ben Collins Mon, 21 May 2001 09:56:47 -0400 + +glibc (2.2.3-2) unstable; urgency=low + + * Enable threads for hppa + * Updated to CVS as of May 10, 2001, closes: #96968, #94501 + * Run locale-gen on upgrades from before 2.2.3-1, closes: #96767, #96913 + * Should be fixed, old regex problems, closes: #86728, #88677 + * This should be fixed now too, closes: #88662 + * There were some regcomp related fixes that appear to have fixed this, + closes: #93167 + * Build-Depends-Indep: s/perl5/perl/, closes: #95782 + * Updated eo_EO from Edmund GRIMLEY, closes: #78085 + + -- Ben Collins Thu, 10 May 2001 13:54:42 -0400 + +glibc (2.2.3-1) unstable; urgency=low + + * Were up to 2.2.3 now. + * libc-dev: Conflict with older gcc's that do not have the weak-sym or + pic-kludge patches. + * ldd.dpatch: New and improved fix for the "no execute permissions" + buglet. Now, ldd will not call the "file" command for every file. This + should speed up dpkg-shlibdeps a lot. + * Removed some obsolete db2 patches + * Removed some other obsolete patches + * Conflict with libnss-db that used db2 + * Depends on current libdb2 which contains libdb.so.3...hopefully this + wont make apt choke because of a dep loop + * Use the new gcc-3.0 to build sparc64 64bit libc/libc-dev packages. + * Build-Depend += gcc-3.0-sparc64 [sparc] + + -- Ben Collins Thu, 12 Apr 2001 21:08:33 -0400 + +glibc (2.2.2-4) unstable; urgency=low + + * Yeah! We can disable our libdb.so.3 (db2) interface in favor of the + one in libdb2. That package now has a symboled version so we can start + to migrate away from this cruft. However, we do still have the db1 + support. + + -- Ben Collins Fri, 23 Mar 2001 19:17:39 -0500 + +glibc (2.2.2-3) unstable; urgency=low + + * Disable building of optimized libs for now. I did not forsee the + problems involved with symbol skew between ld-linux.so.2 and the + optmized libc.so.6. As of now, I can see no way around this. + * Make libc6 conflict with the optimized libs for now, so we can get rid + of them, closes: #90753, #90758, #90763, #90770, #90778, #90779 + * RPC patch from Jakub Jelenik, probably closes: #90830 + * Add build-dep for file, m4 not needed now that opt libs are gone. + closes: #90773 + + -- Ben Collins Fri, 23 Mar 2001 10:31:24 -0500 + +glibc (2.2.2-2) unstable; urgency=low + + * Fix ld.so shlib output, closes: #87655 + * Update to latest CVS, as of 2001-03-21 + * manual/arith.texi: Fix documentation of fast and least integer + typedef's. Patch sent upstream, closes: #84711 + * glibc22-getaddrinfo.dpatch: Add fix from Hiroyuki YAMAMORI + , closes: #85304 + * i386/mathinlines.h: Fix non-ANSI ?: construct, closes: #85322 + * sysdeps/unix/sysv/linux/mips/bits/mman.h: Add and fix some madvise + declerations, closes: #86676 + * Explicitly list inetd to be restarted, closes: #86715 + * Updated Hurd SIOCS patch from Marcus Brinkman + , closes: #87903 + * Added eo_EO locale by Robert Thomson + * Check to make sure any services actually need to be restarted, closes: + #88440 + * Conflict with old strace, which appears to break under new libc6, + closes: #88775 + * Make sure we remove any CVS cruft, closes: #90173 + * Removed -O2 override for hppa, at Matt Taggart's request. + * Build-Depend on latest gcc so we get the weak sym stuff right. + * Made opt libs compiled specifically for 2.4.0+ kernels. This should + make them even faster and smaller since it reduces the compatibility + code. + * libc-opt/DEBIAN/preinst: Check to make sure we are running under a + 2.4.0 kernel, and under the correct cpu + * libc/DEBIAN/{prerm,postinst}: Changed check for package name to use + basename of $0 as opposed to uname. + + -- Ben Collins Fri, 23 Mar 2001 10:30:47 -0500 + +glibc (2.2.2-1) unstable; urgency=low + + * New upstream version + * Updated to CVS as of 2001-02-16, should make alpha build now. + + -- Ben Collins Thu, 15 Feb 2001 23:55:24 -0500 + +glibc (2.2.1-4) unstable; urgency=low + + * Fixup section "disparities" between control and overrides on + ftp-master + + -- Ben Collins Tue, 13 Feb 2001 11:47:22 -0500 + +glibc (2.2.1-3) unstable; urgency=low + + * Update CVS, should fix regex memleak, closes: #85788 + + -- Ben Collins Mon, 12 Feb 2001 22:57:56 -0500 + +glibc (2.2.1-2) unstable; urgency=low + + * Synced with CVS as of 2001-02-09, 2.2.2-pre1 + * shlibs: s/libdb1/libdb/ + * debian/rules (clean): remove shlibs file, since it is generated + * move getaddrinfo patch to it's own .dpatch + * Added some ia64 setups, closes: #82384 + * clean target, remove debian/control.in/libc?*, since they are + generated + * debian/control.d/main (locales): Fix description to reflect recent + merging of the i18ndata package, closes: #82347 + * Added hppa patch from Matt Taggart + * db/ndbm.h: s,db.h,db1/db.h, closes: #83171, #83443 + * Added extra disclaimer to the locale postinst warning. closes: #83394 + * libc/DEBIAN/postinst: change logic in check for init. closes: #84287 + + -- Ben Collins Mon, 29 Jan 2001 10:54:53 -0500 + +glibc (2.2.1-1) unstable; urgency=low + + * Upstream version 2.2.1 release, not many changes for us really, since + we've been using CVS all along. + * Included Hurd-SIOCS patch from Marcus Brinkman. + * segfault.c: s/__access/access/. Patch sent upstream. closes: #82026 + * Increase shlibdep version to 2.2.1 + * Merged i18ndata package into locales package. closes: #81990 + * Added snmpd to the restart list, closes: #81736 + * Resynced bug list. Count is 57 now... + + -- Ben Collins Wed, 10 Jan 2001 08:55:08 -0500 + +glibc (2.2-11) unstable; urgency=high + + * Synced to CVS as of 2001-01-09 - 52 unique bugs and decrementing... + This fixes the RESOLV_HOST_CONF security problem. + * Included nscd(8), nscd_nischeck(8) and nscd.conf(5) man pages by + Sebastian Rittau . closes: 66365 + * /etc/init.d/nscd: Actually uncomment and use the nscd_nischeck to see + if we want to start in secure mode. + * debian/manpages/getconf.1: New manpage for getconf utility. closes: + #63897 + * debian/manpages/catchsegv.1: New manpage for catchsegv utility. + closes: #70740 + * debian/glibc-doc/usr/share/doc-base/glibc-manual: Fix for new html + setup. + * sysdeps/posix/getaddrinfo.c (gaih_inet): Try absolute lookups first. + closes: #64192 + * manual/conf.texi (File Minimums): make _POSIX_PATH_MAX match the + posix1_lim.h value, patch sent upstream aswell. closes: #81628 + + -- Ben Collins Sun, 7 Jan 2001 16:15:34 -0500 + +glibc (2.2-10) unstable; urgency=low + + * Synced to CVS as of 2001-01-05 - 64 unique bugs and decrementing... + * manual/stdio.texi: getline(): Clarify the return value if EOF is + reached before a newline. Patch sent upstream aswell. closes: #14590 + * manual/string.h: basename()/dirname(): Added documentation for these. + Basename() required two definitions, one for the GNU version, the + other for the XPG version. Included examples. Patch sent upstream. + closes: #27586 + * DISCLAIMER: All three of the above changelog entries did in fact change + the state of the files in this source. It is the opinion of the + maintainer (hereto after refered to as GOD), that the changes made do + in fact make the package(s) better. GOD does not warantee that these + changes will make your life (be it sex life, or no life) better. GOD + does guarantee that you (hereto after refered to as NON-DIETY) will + gain great wisdom simply by using this(these) package(s). The + NON-DIETY shall not, in any event, hold GOD responsible for misreadings + of these statements. + + -- Ben Collins Fri, 5 Jan 2001 10:46:42 -0500 + +glibc (2.2-9) unstable; urgency=low + + * CVS synced as of 2001-01-03. Happy freaking new year. + * Remove FAKEROOT check, since we don't build locales now, we don't have + to worry about it. + * dlfcn/dlerror.c: dlerror(): Check for result->errstring being NULL, + closes: #80991 + * No offense, but I cannot be expected to debug fortran programs + compiled with a commercial(?), non-GNU compiler. Talk to them about + getting it to work. As for the "works on RH, but not Debian", most + likely that didn't do anything to make it very portable. closes: #68510 + * Tested with current NIS, and the test cases passes with no open fd's. + closes: #52222 + * Make note of AMD in libc6-i[56]86 descriptions. closes: #77791 + * Make note about some commercial programs not liking our optimized + libraries (IBM JDK for one). closes: #78656 + NOTE: To the submitter of this bugreport, I'm pretty sure the JDK + relies on frame-pointer to handle some special ass-backwards stuff, + which wont work with these libraries since they are compiled without + frame-pointer (making it hard to strace, and debug using these libs). + * Yes, semget(2) refers to SEMMSL, but nothing I can find says it should + be defined in userspace. closes: #11560 + * This patch only applies to kernel-headers, and since they don't need + to be used in userspace, it's ok to have some oddities, closes: #55578 + * I was able to write an 90 byte "Hello World" .c, and compile it into + an 800 byte static binary using -nostdlib and -Wl,-lc. closes: #21676 + * Making an ar archive from one .o is just silly, closes: #58606 + * Patch sent upstream. Might change a bit, but the result should be the + same, closes: #73003 + * I believe the reason the .pwd.lock file remains is to avoid a race + condition, where something might be waiting for the lock, and + unlinking it would cause something else to be able to obtain the lock, + even though it isn't available. closes: #14093 + * I tried to reproduce this, but glob kept working right for me. I think + the user is misusing the function. Most likely they are passing the + glob on the command line, which is in turn doing some escape + processing, and not working right with glob() itself. closes: #67921 + * In Debian, locales are not required to be installed. closes: #35875 + * Could not reproduce in the latest glibc. Upstream seems to have fixed + this. closes: #75163 + * Bug report log says this is fixed in glibc 2.1.1, closes: #36775 + * I think this was an issue with the gcc-2.95 compiler defaulting to + 486 instruction sets. This was fixed by gcc some time ago. closes: + #38998 + * The "order" directive in host.conf is supposed to be a space seperated + list of sources, not comma. This is a bug in host.conf(5), which has + already been reported. I'm closing this one to avoid duplication. + closes: #35731 + * Appears to be related to #36775, but I checked the test case anyway, + and it worked as expected. closes: #35035 + * I tried the test program, and it worked fine. So either guile or glibc + fixed the bug already. closes: #36030 + * The locales package is not referenced by any other package ATM. + closes: #38742 + * Symlink /usr/share/zoneinfo/localtime to /etc/localtime for libc5 + compat. closes: #48705 + * SUSv2 defines putenv as "int putenv(char *)", closes: #60960 + * From my understanding of of the SUSv2 definition, the pointer + reference of inbuf may be incremented to the current position of + translation. So in actuality, the object is not const. GLibc + interprets this using the __restrict compiler option (defined in gcc's + later than 2.92, e.g. egcs 1.1.2, and gcc 2.95). closes: #77312 + * Fixed ambiguity problem in tzconfig, closes: #69045 + * This was a netscape/libc5/plugin issue, closes: #50672 + * User error. He is setting all of the fd's in the pollfd struct to -1, + which returns POLLNVAL, which is the expected response. closes: #51877 + * objstack_* does use const definitions now, closes: #68918 + * This was the old xmms-segv's-on-exit bug, fixed by glibc 2.1.9X (can't + remember which version exactly). closes: #74345 + * leading zero makes sscanf determine the number as an octal, closes: + #69278 + * zic.8: zdump is section 1, not 8. closes: #72095 + * Old libdb2 upgrade issue, fixed in during the 2.1.9x uploads. closes: + #72663 + * Update this changelog to include the revisions from the stable (potato) + updates. + * Patch sent upstream. Fixes timezone showing up as "/etc/localtime". + closes: #71060 + + -- Ben Collins Tue, 2 Jan 2001 20:22:11 -0500 + +glibc (2.2-8) unstable; urgency=low + + * The one-liner fix for devpts.sh + * Patch sent and accepted upstream, closes: #80485 + * CVS synced as of 2000-12-30 + + -- Ben Collins Thu, 28 Dec 2000 09:49:30 -0500 + +glibc (2.2-7) unstable; urgency=low + + * Synced to CVS as of 2000-12-25 + * Patches sent upstream, closes: #75334, #34550, #71928, #11839, #75349 + closes: #38392, #68923, #77416, #39440 + * TCPOPT_EOL, TCPOPT_NOP, TCPOPT_MAXSEG: not declared in glibc (was a + libc5 thing), so they don't need to be documented, closes: #9888 + * Use texi2html for .html output, which actually does split the file, + closes: #61257, #76678 + * Hmm, not sure I can fix hamm->slink upgrades for libc6-doc->glibc-doc, + closes: #32792, #32801 + * Fixed by upstream, closes: #62173, #10686, #37014, #54051, #57297 + closes: #53786, #74611, #37162, #41388, #60255, #63569, #67204 + closes: #67205, #60034, #42850, #60320, #39594, #59800, #48371 + closes: #66803 + * Could not reproduce. My test program showed that it resolved the + libpthread properly. I am going to assume user error, or some + funkiness on the user's system. closes: #78585 + * This is reported as a kernel issue, and the submitter was asked to try + a newer kernel, but never replied. I'm closing on the grounds that I + believe it was a kernel issue, closes: #45693 + * The iconv test program seems to work as expected in glibc 2.2, + closes: #39762 + * lt_LT uses ISO-8859-13 now, closes: #10358 + * Things relying on sort to work correctly, should set LANG=C to get + expected behavior, closes: #56195, #61746, #69544 + * Fixed long long ago, closes: #58226, #58586, #35948, #76246, #53530 + closes: #39584, #13800, #34452, #53894, #54096, #42490, #30683, #32468 + closes: #29619, #34816, #35113, #39071, #35334, #35497, #42867, #36212 + closes: #59316, #62826, #35131, #36952, #43659, #24090, #36076, #45041 + closes: #54156, #37307, #27146, #34729, #47457, #34699, #35250, #34538 + closes: #30054, #35389, #36655, #36762, #36932, #36933, #61163, #58954 + * We no longer build locales at build time, but at install time, closes: #69172 + * I don't see the problem in this testcase, works for me, closes: #73018 + * debian/control.in/main: Show in description that nscd also handles + host lookups, closes: #48716 + * Unreproducable, probably fixed in 2.2, closes: #57026, #42726, #40768 + closes: #45848, #58367, #62990, #40870, #67296, #38897, #60099, #66769 + * nscd now has a --invalidate option, closes: #42727, #43729 + * adduser now calls nscd -i, so works correctly, closes: #36080 + * Hey, it's one of my bugs, and it isn't any good! closes: #34940 + * Yeah, I agree with the bug report. If you don't want nscd to run on a + particular system, just uh, don't install it, closes: #36621 + * Setting Fixed to, closes: #47289 + * Do not use UNIX_PATH_MAX, use SUN_LEN(ptr) (defined in sys/un.h), + closes: #61963 + * _PATH_DEFPATH is the bare minimum for linux. If you want more, use the + PATH env, closes: #31983 + * The man page is wrong. dlerror.c, and dlfnc.h both show that the + return string is allocated, so it is not const. closes: #35694 + * All together now, "Using kernel headers in userspace is BAD", + closes: #12207, #19646, #43105 + * Ran the test case with -O0, -O2, -O3, -O6 on sparc and i386, and did + not see the problem reported, closes: #37154, #27516 + * Seems perl has worked around this (or libc has), since perl modules + are building fine, AFAICT, closes: #34110 + * Linus does not suggest doing /usr/include/{linux,asm} symlinks + anymore. closes: #24949 + * This isn't a glibc bug, it was a gdb bug that is now fixed. closes: #27544 + * lrint is defined with -D_ISOC99_SOURCE, closes: #43530 + * No reference to which docs, nor is there a test case, so: closes: #63511 + * Doh, this was already fixed by me in 2.2-6! closes: #79666 + * User malfunction, not a bug. closes: #39648, #50261, #36075 + * Including stdio.h only ensures that getline will work, it does not + guarantee you that it's return type is defined, which you must do + yourself. closes: #62511 + * O_LARGEFILE is only usable when compiling with -D_LARGEFILE64_SOURCE, + closes: #68873, #52455 + * Ok, strcoll doesn't seem as slow now as shown in the bug report when + LANG is set. The thing is, this function will always be slower when it + has to take localization into account. closes: #62803 + * Re bug #44093 + a) I'm pretty sure there is no problem with libc translating errno + from the kernel, else we'de have some serious problems. + b) The ioctl() manpage cannot document all returns (and in fact it + says that it does not document all ioctl types). + c) I'm pretty sure the EIO return on this particular case is generated + by the kernel. + closes: #44093 + * Tested this, and I was able to get 1022 temp files from mkstemp on a + single run, using the same template, closes: #31415 + * Ulrich Drepper, Re: sortlist in libresolv: + >It never was and in general is not wanted. Beside, it is another poor + >DNS feature which doesn't work with IPv6. Finally, the NSS gethost*() + >functions don't have the supporting code. + closes: #64327 + * lpd should not be using internal glibc functions. closes: #33686 + * makedb -V has no translation now, closes: #34702 + * Checking printf returns is left to the programmer, closes: #28250 + * Ok, the 51 pages of flaming in tis bug report leads me to believe that + this will never be resolved in glibc. IMO, it is up to the programmer + to be smart enough to check these things (where it matters). I am + closing this bug report on the precedence that it is not really a bug + because current functionality meets specs (and this bug report would + break that compatibility). This entire bug report should be archived + all on it's own. Hell, it should have it's own BTS just to track the + conversation. closes: #28251 + * mkstemp complies with SUSv2 and BSD 4.3. Changing it's bahvior would + cause portability problems. closes: #34793 + * Downgrading is not supported, closes: #36578 + * The test case did not use pthread_detach(), which resolved the issue. + closes: #25879 + * Fix devpts regex for when to mount devfs. closes: #79830 + * I believe Wichert found out that base-passwd did have a bug that was + causing this, and fixed it. closes: #55367, #79043 + * First of all, I do think tzconfig manpage needs to be in section 8. + However, changing the execute permissions does very little. In fact it + does nothing. Since normal users don't have perms to change the system + tz, it doesn't matter if they can execute tzconfig. closes: #62397 + * Added autofs to the services that need to be restarted. + closes: #80453, #79926 + * Use neat dpkg/awk one-liner from Adam Heath to get list of installed + services for the daemon check. closes: #80454 + * tzconfig allows you to choose UTC now. Just go to "12" (none of the + above), and then choose UTC. closes: #38556, #35094 + * Ok, my opinion on this is that you should check dlopen's return every + time. The example program shows that they did not do this. closes: #37604 + * Looks like a bug in haskell to me. closes: #37902 + * IIRC, all the BSD code is gone. closes: #58270 + * Bug report claims it is not a bug. closes: #42155 + * We have optimized libs now, so that should solve this. closes: #44619 + * I'm pretty sure this "large" wtmp file with only 3 entries is a sparse + file (check with du). closes: #43950 + * I seriously doubt that ld.so's LD_LIBRARY_PATH stopped working. + closes: #59110 + * I don't think this is a glibc bug. Sounds more like a cross-compiler + bug. closes: #68424 + * In Debian, 2.1.2 and 2.1.3 are binary compatible. closes: #60113 + * To get i18n/charmaps, you need to install i18ndata. closes: #65132 + * We don't need to mount shmfs anymore, closes: #65510 + * Fixed by dpkg, closes: #66913, #64906 + + -- Ben Collins Mon, 25 Dec 2000 08:42:49 -0500 + +glibc (2.2-6) unstable; urgency=low + + * Added m68k lchown fixes, plus removed conflict for libstdc++2.10-dev + on m68k. Bug/patch provided by Michael Fedrowitz + , closes: #78937 + * libc-opt: added memprof to the death list of packages that don't work + with our optimized libraries, closes: #79224 + * Added Provides: glibc2.2 to libc6/libc6.1/libc0.2 so I can make + locales dep on it, closes: #78495 + * CVS sync as of 2000-12-15 + * Fixed previously: closes: #75865, #77170, #75473 + * Added a "." counter while checking services for install, closes: #78881 + * %hhn works as expected in i386 in this version of glibc, closes: #79221 + * Looks like this is resolved, closes: #59429 + * The libc info page says not to use fgets on streams that may have NULL + char's, which sockets might, closes: #57729 + * This is probably fixed, if not reopen it please, closes: #24414 + * Well this bug report has no report in the BTS, I am going to assume + from the age and type of the title, that it is fixed, closes: #21272 + * Old ld.so issue, most likely resolved in hamm, closes: #46173 + * This bug is a simple programming mistake. For one the child never + * fills the buffer in certain cases, so it's contents are never flushed. + If the program called fflush after every output, then it works fine, + closes: #26226 + * The new upgrade code in libc postint should resolve this, closes: #64074 + * This is a compilation error. libc.so.6 does not contains fxstat + (libc-nonshared.a does), so if you don't link properly (like with + gcc), you will miss some symbols, closes: #36139 + * Similar to the above, also resolved, closes: #30427 + * Old ld.so bug, fixed, closes: #70658 + * Current localedef doesn't seem to segv on improper input, closes: #65634, #64878 + * YAOLDSOB (Yet Another LDSO Bug), closes: #42944 + * Lack of useful info in the BTS ("I suspect glibc" doesn't cut it), + closes: #36498 + * Someone needs to read release notes, closes: #41455 + * Uh, tzconfig works. Tzselect is not for changing timezones, but for + querying what the available ones are. From tzselect(1): + + Note that tzselect will not actually change the timezone + for you. Use the tzconfig(8) utility to achieve this. + + So you see, this is how it's meant to be, closes: #37409 + * Fixed in glibc 2.2, closes: #42512 + * a) all init scripts need to support restart + b) postinst uses stop/start now anyway + c) postinst fails much better now when things go wrong + + closes: #52914 + * getaddrinfo does DNS lookups regardless because of the nature of the + function. Also it handles ipv4/ipv6 better now, closes: #60743 + * I don't see why libc6 needs to create /etc/rcS.d/ when dpkg does it so + closes: #66138 + * strstr seems pretty fast now, closes: #10689 + * Latest emacs/libc6 is working fine, closes: #48476 + * YAOLDSOB, closes: #42135 + * libstdc++-v3/glibc2.2 compiles fine together, closes: #66757 + * strerror() with maxerror+1 works as expected now, closes: #40184 + * No other info, and no similar reports. Assuming user error, closes: #31465 + * Old ssh-nonfree getting a sigsegv is not a bug in libc6, but sshd, + closes: #41800 + * Restarting woffle already, closes: #74164 + * I believe this was due to some old nss1 issues, which are now resolved + during upgrades, closes: #35089 + * This is something libc6 itself cannot fix. Either way, rsh/rlogin is + broken by nature, closes: #19168 + * Well, I can't retroactively go back to hamm and add a stub for + setresuid(), closes: #29675 + * Fixed upstream a long time ago, closes: #39693 + * From unix/getlogin.c: + + /* Get name of tty connected to fd 0. Return NULL if not a tty or + if fd 0 isn't open. Note that a lot of documentation says that + getlogin() is based on the controlling terminal---what they + really mean is "the terminal connected to standard input". The + getlogin() implementation of DEC Unix, SunOS, Solaris, HP-UX all + return NULL if fd 0 has been closed, so this is the compatible + thing to do. Note that ttyname(open("/dev/tty")) on those + systems returns /dev/tty, so that is not a possible solution for + getlogin(). */ + + So basically, closes: #17528 + * Current nis/nss-compat code looks like it handles this right, + closes: #33197 + * libc6 cannot compensate for broken coding, closes: #42912 + * nprocs is fixed in 2.2, closes: #57101 + * libdb.so.2 does have shlibs now, closes: #39578 + * getcwd now returns NULL in the case shown in this bug report, so there + is no suprise if the program checks the return correctly, closes: + #27227 + * Adduser now restarts nscd as needed, closes: #37296 + * getaddrinfo fixes for ipv4/ipv6 fixes this, closes: #58713 + * Programs using libc5/libc6 at the same time via dynamically loading + libc5 apps from a libc6 apps) simply does not work, closes: #42088 + * getaddrinfo fix, closes: #70012 + * libc-64 was never meant to work right, closes: #53748 + * libNoVersion.so.1 is gone, closes: #37681 + * libc/postinst is file-rc friendly now, closes: #40053 + * libdb2 is no longer a reference for libdb stuff, closes: #61154 + * ld.so/ldconfig now have man pages, closes: #41917 + * Bah, libtricks is old and gone, closes: #39080 + * /var/state/glibc is gone, closes: #39562, #39705 + * glibc no longer includes db/db2, so look for docs in those seperate + packages, closes: #23547 + * scsi/scsi.h is there, closes: #31502 + * linux/joystick.h is there, closes: #38028 + * db.h is no longer in libc6-dev, closes: #39077, #74945 + * nprocs works on sparc now, closes: #52420 + * ldd now supports libc5 better, closes: #35644 + * Unreproducable, closes: #39582, #25773, #35624, #35123 + * /var/lib/misc/Makefile does not refer to /var/db, closes: #41947 + * llseek is obsolete, use lseek64 now, closes: #20988 + * Actually this looks like an error in the program, closes: #41952 + * Hmm, I would guess that libc6/libc5.4.38 is correct, and libc5.4.17 is + wrong, close: #21839 + * Fixed in the Before Time, during the Great Long-Long Ago, + closes: #39585, #34442, #59622, #24652 + * That's all for now... + + -- Ben Collins Fri, 15 Dec 2000 15:30:16 -0500 + +glibc (2.2-5) unstable; urgency=low + + * Update to CVS as of 2000-11-27 + - Includes hppa config stuff + * Ok, libsafe seems to be broken with our optimized packages. I + reassigned the bug report to that package. Most likely this wont be + fixed in libsafe for a bit, so for now I am making the optimized + packages conflict with it. The likely cause is the inline string + functions (-D__USE_STRING_INLINES). + * libc/postinst: added lprng and lpr to the list of daemons to restart, + closes: #78132 + + -- Ben Collins Mon, 27 Nov 2000 11:33:25 -0500 + +glibc (2.2-4) unstable; urgency=low + + * Dear god! Who changed things to a symlink in the kernel-headers and + didn't tell me of all people!? This must be a conspiracy! Some one is + out to get me! Everyone, I am going to go underground until the + security of my system is safe once again! (btw, I fixed the asm + include problem before I took a vacation from my sanity...) + + -- Ben Collins Thu, 23 Nov 2000 18:19:24 -0500 + +glibc (2.2-3) unstable; urgency=low + + * Damn, really remove libc6 dep from locales this time + * Include shlibs file with optimized libs, so dpkg-shlibdeps will be + happy with people using them. + * Added updates eo_EO locale + + -- Ben Collins Wed, 22 Nov 2000 15:40:12 -0500 + +glibc (2.2-2) unstable; urgency=low + + * Update to CVS to 2000-11-19 + - Includes the ldconfig patch, so removed from local set + - WOOHOO! Includes a patch to getaddrinfo, so that it only returns + failure if both ipv4 AND ipv6 lookups fail for PF_UNSPEC. + closes: #72764, #72905, #74692, #74692, #74367, #75388, #74692 + - Now includes the USAGI ipv6 patch + * control/locales: remove $(libc) dep...bad for a arch-all package, + closes: #76830 + * Move locales to binary-indep targets, closes: #76830 + * Add another hppa patch for _setjmp. Also, make hppa build with -O for + now. + * libc-dbg: make debug/ld*.so executable + * $(libc): suggests libnss-db + * locale-gen: set umask to 022, closes: #77191 + * etc/locale.gen: uncomment en_US as a default + * debian/sysdeps/optimized.mk: New make snippet, which allows building + optimized sets of runtime libraries. Right now, only sparc and i386 + seem to support hwcap, so we only build i586, i686 and v9 optimized + libraries. When other archs start supporting hwcap, then they too can + join the club. + * prep.sh: use ./version, so ash will work too + * Fixed prior to this release: closes: #71938, #75295, #75488, #76168 + + -- Ben Collins Sun, 19 Nov 2000 16:32:27 -0500 + +glibc (2.2-1) unstable; urgency=low + + * ALL HAIL GLIBC 2.2 RELEASE! Please put seats in full upright position, + remain seated until installed, and do not panic. The ride is almost + over. Once you have installed Glibc 2.2, please procede to our new + Debian-Rough-Ride, Xfree86-4.0.1, which is currently in progress. + * glibc22-ipv6-USAGI.dpatch: New patch, brings some stability and + compatibility to ipv6. This will most likely fix ipv6 issues with + things like ssh (let me know). + * Totally whack job on the locales package! We now do not provide *any* + precompiled locales. Instead we allow the admin to selectively decide + which ones to compile. + * Start of support for future upgrades. A new patch that should make + upgrades easier, post woody. This deals soley with the NSS module + problem and daemons running during upgrade. + * glibc22-hppa-config-fix: Fix config.{sub,guess} so hppa builds (From + the nice Debian folks at HP). BTW, where's my HP/PA BOX!? :) + * glibc22-ldconfig-fix: Fix bad allocation in ldconfig + * Bugs closed by this release: closes: #74057, #74362, #74692, #75249, + #75956, #76390, #76451 + + -- Ben Collins Fri, 10 Nov 2000 12:47:02 -0500 + +glibc (2.1.97-1) unstable; urgency=low + + * New upstream, + recent CVS + - includes lockf fix now + - fixes fmemopen issues + - adds ja_JP.ujis alias, closes: #72686 + - fixes for sparc mathinline.h + - lots of locale related updates + - mips patches are now included upstream + * depflags.pl: added replaces ldso for libc6 too (ldd), closes: #76126 + * Set --enable-kernel for Linux builds, so we can control how much + backward compatibility we have. + * Fix build-depends for gcc to include epoch + * Up'd the shlibs deps to 2.1.97 + * Removed static nss + + -- Ben Collins Tue, 7 Nov 2000 14:04:36 -0500 + +glibc (2.1.96-1) unstable; urgency=low + + * New upstream release (close to a final 2.2), closes: #73058 + - fixes ld.so reference counting (fixes some obscure bugs with + loadable modules, like NSS). + - fixes for ppc + - netinet/tcp.h fixes for uint8, closes: #74061 + - fixes limits.h/LONG_MAX declerations, closes: #75720 + * When running "$(MAKE) test" use -k so we complete as much as possible + * db/Makefile: remove patch that inhibited the db1 headers. Now, db1 + applications can be built again. This is temporary, to give poeple + time to migrate (db2 maintainer can use this for db_dump185), + closes: #72723 + * shlibs.mk: Use $(objdir)/soversions.i for generating the shlibs file, + which is more correct. Thanks to Marcus Brinkman for pointing this + out, closes: #75685 + * debian/glibc-doc/usr/share/doc-base/linuxthreads-faq: removed, no + longer in upstream source, closes: #74046 + * libc/postinst: added wu-ftpd, wu-ftpd-academ, slapd, openldapd and + logind to list of daemons to to restart, closes: #74158 + * libc/postinst: added support for filerc, thanks to Roland Rosenfeld + , closes: #74290 + * libc/postinst: check for existence of /sbin/init before restarting it, + closes: #75310 + * sysdeps/depflags.pl: Change g++ conflict to libstdc++-dev so we + precludes the right package (i.e., we need a newer libstdc++-dev, not a + new g++), closes: #75019 + * sysdeps/depflags.pl: make libc6 depend on libdb2 from woody so we + don't make apt act all weird with a three layer dependency of sorts + (ask Jason, I'm not sure of all the issues, but it seems it is needed + for now), closes: #75601, #75689 + * sysdeps/generic/lockf.c: explicitly set l_type to F_RDLCK (help from + Anton on this one) + * dl-machine.h.mips-2: new patch from Florian Lohoff to + fix ld.so segv on mips (I expect to see some .deb's in the official + archive soon, my Indy is getting jealous :) + + -- Ben Collins Sun, 29 Oct 2000 16:39:12 -0500 + +glibc (2.1.95-1) unstable; urgency=low + + * New upstream release + * debian/sysdeps/depflags.pl: Don't conflict/replace old libdb2, just + conflict. + * debian/libc/DEBIAN/postinst: Don't just check the service name with + "dpkg -s" since we miss things like inetd, which isn't in a package + named "inetd". Check for "installed" and "", then -x of the init.d + file + * debian/patches/ldd.dpatch: fixup so we don't get double output of + libraries, closes: #72710 + * debian/sysdeps/depflags.pl: Hmm...where did the libnss-db dep go + anyway? There now. + * debian/manpages/: Added man pages for ldd, ldconfig and ld.so + to replace the ones removed from ld.so, closes: #72648, #72727 + * locales fixed in -2, closes: #72752 + + -- Ben Collins Mon, 2 Oct 2000 11:18:48 -0400 + +glibc (2.1.94-3) unstable; urgency=low + + * updated CVS post-2.1.94 to 20000929 + * Put db/db2 libs back in for runtime use only (not linkable and no + headers). Closes a shitload of bugs, and makes everyone happy. Oh, let + the sun shine down. + * alpha-dwarf2-dl-machine: merged upstream + * debian/sysdeps/depflags.pl: removed all the db2 cruft conflicts + * debian/libc/DEBIAN/postinst: Use /etc/rc${rl}.d/ instead of + /etc/init.d/ when restarting services. This way, we don't start any + services that were meant to be off. Also, check for a non-zero exit when + starting and report such failures. This will give people a heads up to + any problems. + + -- Ben Collins Fri, 29 Sep 2000 16:29:59 -0400 + +glibc (2.1.94-2) unstable; urgency=low + + * Removed WANT_LDD, we now install it for every arch. This removes the + need for the ldso package completely, on systems without libc5 (YAH!) + * debian/sysdeps/depflags.mk: removed cruft + * debian/sysdeps/depflags.pl: new script with a simplified control deps + setup to replace depflags.mk. The former was getting too complex + * debian/rules.d/shlibs.mk: fixed logic preventing it from actually + installing the new shlibs file + * debian/sysdeps/depflags.pl: Added lots of conflicts for NMU'd packages + that fell prey to the db2 problems. + * debian/contron.in/main: Fix nscd depend on libc6 + + -- Ben Collins Wed, 27 Sep 2000 10:09:51 -0400 + +glibc (2.1.94-1) unstable; urgency=low + + * New maintainer, "Lector, si monumentum requiris, circumspice" + * New upstream version, pre 2.2 now + - crypt is now in glibc source, so is not a seperate tarball + - removed nss1 compat tarball + - db2 is gone aswell + - without db2, upstream split nss_db from main source (*sigh*) + * Added inetd to list of services to restart + * modfl/fmodl: documented in info pages, closes: #17874 + * Just a quick list of bugs that I can verify do not exist any longer, + closes: #45903, #26514, #46547, #32345, #30987, #48713 + * fcloseall: in the case of stdio/fcloseall.c, yes, it only ever + returns success. However, we use libio/fcloseall.c, who does in fact + have a chance to return EOF, closes: #20973 + * libio/libio.h: shows that the Stream Hooks do in fact take (void *) as + the first argument as shown in the protos, closes: #61497 + * trunc/floor: documented correctly in this release, closes: #65683, #65684 + * Hurd maintainers say this can be closed, closes: #54154 + * I'm pretty sure this isn't an issue anymore, else potato wouldn't be + releasing, closes: #35049 + * Sorry this isn't a glibc bug. The kernel handles error returns on a + failed executable. Most likely this is bin_interp's problem, but I + seriously doubt it will be fixed because of conventions, standards and + the like, closes: #22301 + * keyenvoy: no longer compiled for linux (it seems), closes: #47560 + * infnan: is defined now, closes: #19264 + * libc5 bug, no longer applies, closes: #11300 + * Make sure we copy over asm-sparc for sparc aswell as "generate-asm.sh" + script used to generate /usr/include/asm + * Disable parallel build on sparc (broken for some reason, might not be + sparc specific) + * devpts.sh: used a more devfs friendly version from bug submitter, + closes: #65276 + * libc/postinst: cannot reproduce problem, appears to be user error, + closes: #64865 + * glibc-doc: this bug is no longer valid, closes: #33759 + * We now use ldconfig from libc6 for all archs, ldso will conform. + * Change build deps to just "kernel-headers" for non-Hurd archs. With + mips and other coming down the pipe, this is bound to get ugly if we + specify the particular version for each. + * Add checks to automatically detect proper kernel-headers, error out + otherwise. + * hurd: add Depends: hurd (>= 20000803) for libc0.2 + * libpthread: soname version is now 0.9 + * debian/libc/DEBIAN/shlibs: bump to 2.1.94 + * libc6: add temporary depend on libdb2 + * debian/rules: check for FAKEROOTKEY, and fail if it's there. We cannot + build under fakeroot, we need real rewt. Fear my hacking skillz. + + -- Ben Collins Mon, 25 Sep 2000 11:30:45 -0400 + +glibc (2.1.3-14) stable; urgency=low + + * Stable upload for some serious issues in potato + * Patch to match glibc 2.2 to not set personality, closes: #72165 + * Arm ld.so patch, closes: #75982 + * Add check for FAKEROOTKEY, to $(checkroot) to make sure we build as + real root, and not fakeroot. This is required for locale definitions + to be generated properly. closes: #70806, #70876 + * Backport the fix to lockf(F_TEST), which fixed this on alpha and + sparc. + + -- Ben Collins Tue, 2 Jan 2001 17:15:44 -0500 + +glibc (2.1.3-13) stable; urgency=low + + * Damnit...used the 0824 patch set, now there's an 0827 :/ + + -- Ben Collins Fri, 1 Sep 2000 10:54:11 -0400 + +glibc (2.1.3-12) stable; urgency=low + + * Ugh, add three patches posted by Solar Designer which include the ldso + bug (better patch), locales bug, and md5 fixups. + + -- Ben Collins Thu, 31 Aug 2000 11:10:46 -0400 + +glibc (2.1.3-11) stable; urgency=low + + * Security upload for ldso problem + * Fix sparc headers too + * Might aswell change the maintainer too (So long Joel, you are missed) + + -- Ben Collins Thu, 31 Aug 2000 11:10:36 -0400 + +glibc (2.1.3-10) frozen unstable; urgency=low + + * The "Ask not for whom the feep tolls" release. + * zic -l will use hardlinks if /etc and /usr are on the same + filesystem, so revert to ln -s. + * Update Build-Depends to kernel-headers-2.2.15. + + -- Joel Klecker Fri, 28 Apr 2000 18:45:49 -0700 + +glibc (2.1.3-9) frozen unstable; urgency=low + + * The "Insert clever reference here" release. + * debian/patches: + - i386-sys-io-c++: Change '::' to ': :' to avoid confusing g++ + + closes: Bug#57914 + - zic-l: Fix -l in zic(8) (taken from OpenBSD) + * Teach tzconfig to acquire current timezone from /etc/localtime + symlink if necessary. + * Use zic -l instead of ln to make /etc/localtime symlink. + + -- Joel Klecker Fri, 21 Apr 2000 13:30:47 -0700 + +glibc (2.1.3-8) frozen unstable; urgency=low + + * The "What's my name? Say my name, bitch!" release. + * debian/patches: + - i386-linux-ucontext: Don't use ERR. + + closes: Bug#59962 + - ldd: + + Improve non-executable shared object handling. + + Revert ${RTLD} --list stuff. (closes:Bug#60869) + + alpha will break again, someone needs to fix ld.so. + * debian/control.in/main: locales: Depends: @libc@ (= ${Source-Version}) + This will insulate us from data format changes. + * Fix tzconfig man page (closes:Bug#61610,#61613). + * Revert /etc/localtime to a symlink (closes:Bug#60744). + + -- Joel Klecker Mon, 3 Apr 2000 08:40:07 -0700 + +glibc (2.1.3-7) frozen unstable; urgency=low + + * The "Light my Alpha fire with a SPARC" release. + * debian/patches: + - libc-pr-fixes: Fixes for post-2.1.3 PRs + + closes: Bug#59802,#59257 + - tzdata2000c: Includes AR timezone correction + + closes: Bug#59790,#59806 + - sparc-linux-getsysstats: Update so it actually works. + - alpha-dwarf2-dl-machine: Fix for unaligned traps from C++ EH code + + closes: Bug#59789 + + -- Joel Klecker Tue, 7 Mar 2000 10:31:42 -0800 + +glibc (2.1.3-6) frozen unstable; urgency=low + + * The "Smash Everything with a _Huge Steamroller_!" release. + * debian/sysdeps/gnu.mk: Define WANT_LDD (closes:Bug#59165). + * debian/libc/DEBIAN/preinst: Make this as /bin/bash script (closes:Bug#59613). + * debian/libc/DEBIAN/postinst: + - Only make /var/mail symlink on upgrades. + - Make this a /bin/bash script. + * debian/sysdeps/depflags.mk: (libc_control_flags) + C/R/P gconv-modules where necessary, Replace locales (<< 2.1.3-5). + * debian/control.in/main: Build-Indep-Depends: perl5 (closes:Bug#59350). + * debian/libc/etc/init.d/devpts.sh: Remove version check, checking for + the filesystems alone should be sufficient (closes:Bug#59576). + + -- Joel Klecker Sat, 4 Mar 2000 09:28:08 -0800 + +glibc (2.1.3-5) frozen unstable; urgency=high + + * The "Down, not across" release. + * 2.1.3 final. + * Pre-Depends were a bad idea + - quit using readlink. + - removed pre-depends on debianutils. + * Add devpts.sh again, this time not as a conffile. + * Build-Depends: gcc (>= 2.95.2-6) [alpha], remove sharutils [alpha]. + * Move /usr/lib/gconv to $(libc). + + -- Joel Klecker Sat, 26 Feb 2000 00:14:34 -0800 + +glibc (2.1.3-4) frozen unstable; urgency=low + + * The "Pain as bright as steel squared" release. + * glibc 2.1.3pre4. + * Remove debian/patches/po-it-po.dpatch, + debian/patches/powerpc-linux-sys-procfs.h.dpatch, and + debian/patches/powerpc-linux-syscalls.list-mmap64.dpatch; + Integrated upstream. + * Add back debian/patches/linuxthreads-lock.dpatch now that I know + what it's for (closes:Bug#58385). + * Bugs closed since devpts.sh is gone (closes:Bug#57584,#57698,#57580). + * debian/libc/DEBIAN/preinst: + - Save a copy of /etc/timezone in /etc/timezone.save. + - Convert /etc/localtime from link to file. + * debian/libc/DEBIAN/postinst: + - Use /etc/timezone.save if necessary. (closes:Bug#57885,#57922). + - Remove some unnecessary timezone code that caused some odd behavior + (closes:Bug#57456). + * tzconfig: /etc/localtime is a file, not a link. + * $(libc): Pre-Depend on debianutils (>= 1.13.1) for readlink. + + -- Joel Klecker Fri, 18 Feb 2000 17:35:19 -0800 + +glibc (2.1.3-3) frozen unstable; urgency=low + + * The "Pain as bright as steel" release. + * Move iconv, locale, localedef to $(libc). + * Remove devpts.sh. + * debian/patches/po-it-po.dpatch: + Add "portable object" for Italian (closes:Bug#57031). + * $(libc): Replaces: locales (closes:Bug#57482). + * Add Build-Depend for gettext (closes:Bug#57797). + + -- Joel Klecker Fri, 11 Feb 2000 13:02:13 -0800 + +glibc (2.1.3-2) frozen unstable; urgency=low + + * The "Dark, Naughty Evil" release. + * debian/patches/powerpc-linux-sys-procfs.h.dpatch: + Fix sys/procfs.h for powerpc-linux. + + -- Joel Klecker Mon, 7 Feb 2000 17:38:54 -0800 + +glibc (2.1.3-1) frozen unstable; urgency=low + + * The "From now on all of my world-killing weapons will be kept a TOTAL SECRET!" release. + or the "Brown Paper Bag" release. + * Really fix devpts.sh + (closes:Bug#56659,#56687,#56726,#56770,#56782,#56893,#56941,#56850,#56659,#57049,#57005,#57156,#57183). + * Give up and call it 2.1.3. + * CVS as of 2000-01-31. + * Move some docs from glibc-doc back to $(libc). + * Make /etc/init.d/devpts.sh and /etc/default/devpts conffiles (closes:Bug#57081). + * Reenable libnss1-compat.. + + -- Joel Klecker Sun, 6 Feb 2000 08:55:41 -0800 + +glibc (2.1.2-13) frozen unstable; urgency=low + + * The "@!%$&! you, I use Debian" release. + * debian/patches/powerpc-linux-syscalls.list-mmap64.dpatch: + Fix mmap and stuff (closes:Bug#56343). + * Add sharutils [alpha] to Build-Depends, drop gcc dep. + * $(libc): conflict with locales (<< 2.1.2-12). + * locales: replaces $(libc)-bin (closes:Bug#56540,#56536,#56534). + * Fix devpts.sh (closes:Bug#56487,#56507,#56559). + * Update to CVS as of 2000-01-29. + * Restore HTML to glibc-doc (closes:Bug#56609). + + -- Joel Klecker Sun, 30 Jan 2000 01:14:05 -0800 + +glibc (2.1.2-12) frozen unstable; urgency=low + + * The "Cardboard Messiah" release. + * debian/rules: Form arch_packages and indep_packages using += instead + of $(filter-out ...). + * debian/package-rules/locales.mk: Remove cross-compiling kluges. + * debian/package-rules/libc-dbg.mk: Fix libthread_db (closes:Bug#55439). + * debian/control.in/main: + - locales: Architecture all -> any. + - Build-Depends: + + add make (>= 3.78) due to use of new warning and error make functions. + + add gcc (>= 2.95.2-5) for alpha. + * Merge gconv-modules back into locales. + * Move locale and localedef programs back into locales. + * Put devpts.sh init script back in $(libc). (closes:Bug#50913,#53842) + * Add Replaces for timezones back into $(libc). + * Kill $(libc)-bin. + * Restore `tzselect' script, which slipped out of $(libc) (closes:Bug#55377) + * Bugs fixed in -11.0.1 (closes:Bug#53705,#53659,#53680,#53754 + * Update to CVS as of 2000-01-26. + * Eliminate obsoleted patches. + + -- Joel Klecker Wed, 26 Jan 2000 16:44:12 -0800 + +glibc (2.1.2-11.0.1) unstable; urgency=low + + * Binary-only upload of locales. + + -- Joel Klecker Wed, 29 Dec 1999 11:45:56 -0800 + +glibc (2.1.2-11) unstable; urgency=low + + * The "If it ain't broke, you're not tryin'" release. + * Split out $(libc)-bin and libnss1-compat. + * Split debian/rules into debian/package-rules/*. + $(libc-bin): + - Install db_* programs as glibcdb_*. + - Move zic, zdump, locale, localedef, getent here. + - Use alternatives for db_*. (closes:Bug#50311,#50341) + * debian/mk/rules-* -> debian/rules.d/*. + * debian/ now resembles $(tmpdir) tree for . + * Improve setperms rule, so debian/perms can specify fewer files. + * New source unpacking system, see prep.sh. + * Remove devpts.sh, the init script is now in sysvinit. + * Improve debian/libc/DEBIAN/shlibs rule (debian/rules.d/shlibs.mk). + * debian/sysdeps/soname.mk: Bump shlib_depend. + * Add sysdeps files for $(DEB_HOST_GNU_CPU). + * Add debian/patches/glibc-mega.dpatch: + Selected patches from CVS (closes:Bug#48120,#52195). + * Add debian/patches/linuxthreads-mega.dpatch: + Selected patches from CVS. + * Add debian/patches/alpha-pt-machine.h.dpatch: + Fix pt-machine.h so that linuxthreads compiles on Alpha. + * Add debian/patches/db2-alpha-powerpc-mutex.dpatch: + Alpha and PowerPC implementations for db2 spinlocks. + (patches by David Huggins-Daines ) + (db2 patch slightly modified) + * Add debian/patches/powerpc-plt.dpatch: + 1999-10-07 Geoffrey Keating + * sysdeps/powerpc/dl-machine.c: Many minor formatting changes. + (OPCODE_LWZU): New macro. + (OPCODE_ADDIS_HI): New macro. + (OPCODE_LIS_HI): New macro. + (__elf_machine_runtime_setup): Change PLT code-generation scheme + for thread safety even with very large PLTs, better efficiency, + and to fix a cache-flushing bug. + (__elf_machine_fixup_plt): Likewise. + (__process_machine_rela): Don't use elf_machine_fixup_plt. + * Add debian/patches/sparc64-linux-lib64.dpatch: + Use /lib/64 and /usr/lib/64 instead of /lib64 and /usr/lib64. + * Add debian/patches/sparc64-linux-execve.dpatch: + Add __syscall_execve to sparc64 syscalls.list. + * Add automatic parallel build support for SMP systems. + * Fix broken parsing of DEB_BUILD_OPTIONS. + * Add framework to build libc6-64 and libc6-64-dev packages for sparc + (not enabled for potato). + * Split locales into `locales' and `i18ndata'. + + -- Joel Klecker Sat, 25 Dec 1999 09:54:29 -0800 + +glibc (2.1.2-10) unstable; urgency=low + + * The "Omigod! I overdosed on heroin!" release. + * debian/devpts.init: Create /dev/ptmx unconditionally. + * Restore correct nscd DEBIAN dir. + * Revamp rules a bit (split more parts into debian/mk/rules-*). + * debian/mk/sysdeps.mk: Split into pieces and include them. + * debian/patches/tzcode1999h.dpatch: + Update timezone data to 1999h release. + * Add stub for support for libc6-64 packages for sparc. + * Add one more last timezone sanity check to libc postinst (closes:Bug#49539). + * Always unpack linuxthreads add on and pass --enable-add-ons=crypt to + configure for hurd (closes:Bug#49459). + + -- Joel Klecker Mon, 8 Nov 1999 09:47:28 -0800 + +glibc (2.1.2-9) unstable; urgency=low + + * The "Service with a capital 'Bugger Off'" release. + * debian/copyright: Update for 2.1.2. + * debian/rules: Make each binary package depend on setperms (closes:Bug#48914). + * Move debian/libc-doc to debian/glibc-doc and eliminate the need for + postinst and prerm to be generated files. (closes:Bug#48786). + + -- Joel Klecker Sun, 31 Oct 1999 09:23:16 -0800 + +glibc (2.1.2-8) unstable; urgency=low + + * The "Can't Start a Fire Without a SPARC" release. + * Build with unstable dpkg. + * debian/patches/sparc-various.dpatch: Various sparc-specific patches + from Jakub Jelinek and David S. Miller . + + -- Joel Klecker Sat, 30 Oct 1999 06:55:33 -0700 + +glibc (2.1.2-7) unstable; urgency=high + + * The "Fuck Me Harder" release. + * sparc-linux: Replaces: ldso (<< 1.9.11-6). + * debian/{libc.postinst.in,libc/prerm}: Add /usr/doc symlink stuff (closes:Bug#48324). + * debian/control.in-main: Adjust locales depends. + Correct Build-Depends: field. + * debian/mk/source-rules.mk: Split unpack-source, source, and orig-source + targets from debian/rules. + * debian/patches/manual-texinfo4.dpatch: Use @ifnottex instead of @ifinfo. + * Use makeinfo --html to generate HTML version of glibc manual. + * Remove texi2html from debian/scripts. + * Fix debian/scripts/Makefile for cross-compiling. + * Correct debian/patches/string2-pointer-arith.dpatch for archs that don't + support unaligned memory accesses. + + -- Joel Klecker Fri, 29 Oct 1999 09:06:27 -0700 + +glibc (2.1.2-6) unstable; urgency=low + + * The "Evil Bitch Monster of Death" release. + * debian/rules: Move debian/control targets to... + debian/mk/debian-control.mk. + * Move debian/*.mk to debian/mk/. + * Use debian//* for control archive items. + Adjust debian/rules for this. + * Add setperms target to set modes of debian//*. + Make unpack-source and clean depend on it. + * Don't compile with -g when DEB_HOST_GNU_CPU is alpha. + * debian/patches/string2-pointer-arith: New file. + Fix "/usr/include/bits/string2.h:419: warning: pointer of type `void *' + used in arithmetic" (closes:Bug#45824,#44491,#44697) + * Change maintainer back to "Joel Klecker ". + * Update to CVS sources as of 1999-10-24. + * debian/patches/{linuxthreads-signals.c-ucontext,cs-po}.dpatch: + Fixes for source tree brokenness. + * Adjust clean target for new generated files. + * Add libresolv to $(libc)-pic. + * Add readlink.c and texi2html to debian/scripts to eliminate tetex-bin dependency. + * nscd: Install nscd_nischeck. + Sync nscd.init with upstream. + * Implement /usr/doc symlinks. + * $(libc): strip libpthread with --strip-debug. + + -- Joel Klecker Sun, 24 Oct 1999 20:50:58 -0700 + +glibc (2.1.2-5) unstable; urgency=low + + * The "One more week to go" release. + * debian/patches/localedata-SUPPORTED: + Oops, this patch wasn't actually being applied. + eo_EO, zh_TW.Big5, and es_AR should be [back] in locales now. + Back out zh_CN, the definition is broken. + * Remove sparc from HAVE_LIBC{4,5}, we want to install our ldd. + * debian/patches/sparc-linux-ldd.dpatch: New file. + Restore missing patch (in ChangeLog, not in source). + * debian/sysdeps.mk: Tighten alpha shlib_depend to libc6.1 (>= 2.1.2-1). + + -- Joel Klecker Tue, 28 Sep 1999 04:55:35 -0700 + +glibc (2.1.2-4) unstable; urgency=low + + * The "Perl Sucks" release. + * debian/libc.postinst: Steal updatercd shell function from sysvinit postinst. + Use it for devpts.sh. (closes:Bug#45867,#45879,#45880,#45885,#45895) + Bitch-slap perl maintainers. :) + * debian/rules: nscd: run nscd.conf through sed 's/adm/log/'. + * debian/patches/sparc-llnux-chown.dpatch: Update from Ben Collins. + * debian/sysdeps.mk: Drop sparc-linux depends back to libc6 (>= 2.0.105). + + -- Joel Klecker Fri, 24 Sep 1999 12:39:26 -0700 + +glibc (2.1.2-3) unstable; urgency=low + + * The "Pot-smoking Pikachu" release. + * debian/rules: Don't install ldd man page on i386/m68k (closes:Bug#45421). + check: Don't depend on build. + Symlink db_dump185 manpage to db_dump manpage (closes:Bug#42322). + $(libc)-pic: Install map file for libm. + Install map files as $(libdir)/libfoo_pic.map. + * debian/patches/zh_TW.Big5-locale.dpatch: + Split into localedata-charmap-BIG5_1984 and localedata-zh_TW.Big5. + * debian/patches/eo_EO-locale.dpatch: Rename to... + localedata-eo_EO. + * debian/patches/localedata-SUPPORTED.dpatch: New file. + Add eo_EO, es_AR (closes:Bug#37162), zh_CN.GB2312 (closes:Bug#38553), + zh_TW.Big5. + * debian/patches/pthread_create-manpage.dpatch: New file. + Correct pthread_create manpage to match texinfo documentation + (closes:Bug#22119). + + -- Joel Klecker Wed, 22 Sep 1999 19:16:01 -0700 + +glibc (2.1.2-2) unstable; urgency=low + + * The "Bite Me" release. + * debian/rules: $(libc): strip pt_chown. + Don't install ldd on i386/m68k. + Query dpkg-architecture variables individually. + Use bunzip2 -c ... | tar xf - instead of tar yxf. + $(libc)-pic: Add libm_pic.a. + check: New target; run test suite. + Call make with SHELL=/bin/bash, as the test suite seems to rely on + bash behavior. + Use --strip-unneeded (closes:Bug#40467). + * debian/sysdeps.mk: reorganize. + * debian/patches/generic-getenv.dpatch: New file. + 1999-09-10 Andreas Schwab + + * sysdeps/generic/getenv.c (getenv): Fix lookup for single + character variable on bigendian platforms without unaligned memory + access. + + -- Joel Klecker Thu, 16 Sep 1999 14:41:28 -0700 + +glibc (2.1.2-1) unstable; urgency=low + + * The "Gone Evil" release. + * glibc 2.1.2 final. + - Properly free mmaps for archs without spinlocks in db2 (closes:Bug#43786). + + * debian/rules: configure: Fix hurd part (missing \). + Add frame.o hack for alpha. + Use CFLAGS instead of default_cflags. + Create srcdir for each arch. + Remove arch/indep patch split. + New directory layout (build/foo- -> build//foo). + Use bz2 tarballs. + + * debian/patches/sparc-linux-types.dpatch: Remove, applied upstream. + + * devpts.sh never used any bashisms (closes:Bug#43296). + + -- Joel Klecker Tue, 7 Sep 1999 05:00:58 -0700 + +glibc (2.1.2-0pre12) unstable; urgency=low + + * The "Espy's Birthday" release. + * debian/rules: (libc-pic) strip debugging symbols from *_pic.a. + interp.o is no longer needed. + + * debian/patches/sparc-linux-types.dpatch: New file. + 1999-07-25 Jakub Jelinek + + * sysdeps/unix/sysv/linux/sparc/bits/types.h: Define always + __qaddr_t. + __ino64_t should be 32bit unsigned type on sparc32. + Define __off64_t to __quad_t instead of __int64_t. + Make __pic_pid_t unsigned on sparc32. + + * Really change maintainer name to Debian GNU C Library Maintainers. + + * debian/control.in-libc: s/m@archs@/many/ (closes:Bug#43657). + + * debian/devpts.init: Check if devpts is already mounted before trying + to mount it. (closes:Bug#43658,#43659). + Remove exit 0 from end (closes:Bug#42541) + + * Fixed upstream: db_dump185 now linked with libdb1 (closes:Bug#42898). + + -- Joel Klecker Sun, 29 Aug 1999 07:51:16 -0700 + +glibc (2.1.2-0pre11) unstable; urgency=high + + * The "Lesbian Seagull" release. + * glibc 2.1.2pre3. + + -- Joel Klecker Wed, 25 Aug 1999 15:33:23 -0700 + +glibc (2.1.2-0pre10) unstable; urgency=low + + * The "Crack-smoking Squirrel" release. + * CVS as of 1999-08-21. + * Change maintainer name to Debian GNU C Library Maintainers. + + -- Joel Klecker Sat, 21 Aug 1999 10:57:42 -0700 + +glibc (2.1.2-0pre9) unstable; urgency=low + + * The "Son of Drunken Iceweasel" release. + * Compile with gcc 2.95.1. + * CVS as of 1999-08-18. + + -- Joel Klecker Wed, 18 Aug 1999 11:11:29 -0700 + +glibc (2.1.2-0pre8) unstable; urgency=low + + * The "Drunken Iceweasel" release. + * Compile with gcc 2.95.1-0pre1. + * Remove explicit -march=i386 on i386, it's no longer needed. + + -- Joel Klecker Sun, 15 Aug 1999 08:34:55 -0700 + +glibc (2.1.2-0pre7) unstable; urgency=low + + * The "Evil Mastermind" release. + * CVS as of 1999-08-09. + * debian/patches/arm-osabi.dpatch: "...and another patch bites the dust" + (functionality integrated upstream). + * Add -march=i386 on i386 to work around gcc lossage. + + -- Joel Klecker Tue, 10 Aug 1999 01:54:57 -0700 + +glibc (2.1.2-0pre6) unstable; urgency=low + + * The "Stoned Monkey" release. + * More adjustments for multi-arch build tree. + * Split patch rules into debian/patch-rules.mk. + * Divide patch system into indep and arch patches. + * Update sources to CVS as of 1999-08-08 (closes:Bug#42579,#42343). + - I think perhaps this will fix the StarOrifice problem too. + + -- Joel Klecker Sun, 8 Aug 1999 21:11:12 -0700 + +glibc (2.1.2-0pre5) unstable; urgency=low + + * The "Chainsaw Psycho" release. + * Install zdump in $(bindir). + * Fix 3l33t control frags system for "weird" architectures. ;) + * Avoid using DEB_*_ARCH variables, for they are evil. :) + + -- Joel Klecker Fri, 6 Aug 1999 05:34:55 -0700 + +glibc (2.1.2-0pre4) unstable; urgency=low + + * 2.1.2pre2. + * Run testsuite in build target. + * $(libc)-pic: Provides: glibc-pic. + * Logging is back. + * Update copyright file. + + -- Joel Klecker Sun, 1 Aug 1999 17:58:49 -0700 + +glibc (2.1.2-0pre3) unstable; urgency=low + + * CVS as of 19990730. + * Implement new debian/control-frags system. + * $(libc)-pic is back. + * {gconv-modules,$(libc)-{pic,dev,dbg,prof}}: + doc dirs are directories again. + + -- Joel Klecker Fri, 30 Jul 1999 10:52:06 -0700 + +glibc (2.1.2-0pre2) unstable; urgency=low + + * debian/rules: Fix typo that prevented all the linux-specific + patches from being applied. + + -- Joel Klecker Mon, 26 Jul 1999 14:44:46 -0700 + +glibc (2.1.2-0pre1) unstable; urgency=low + + * New upstream pre-release 2.1.2pre1. + * debian/depflags.mk. + - (libc_dev_control_flags): + Add conflicts to alpha/i386/m68k for libncurses4-dev (<< 4.2-3.1) and + libreadlineg2-dev (<< 2.1-13.1). + - (libc_control_flags): + Add conflicts to alpha/i386/m68k for libglib1.2 (<< 1.2.1-2). + * devpts.init: + - Cope with EXTRAVERSION in uname -r (closes:Bug#41064,#41389). + - Don't worry about /dev/ptmx anymore, glibc now checks for a mounted + devpts filesystem as well as an existing /dev/ptmx. + * debian/patches/{ieee754_y0,linux-mmap64,libio-oldiopopen}.dpatch: + Removed; applied upstream. + * debian/patches/arm-{dynamiclinker,tftp}.dpatch: + Removed; applied upstream. + * debian/patches/arm-string.dpatch: + Remove string/endian.h part (applied upstream) and rename to arm-ieee754. + * Disable building of $(libc)-pic, the boot-floppies library + reduction hack doesn't work anyway. + * Adjusted rules for dpkg-architecture and reworked source unpacking + to handle snapshot upstream versions better. + * Use suidmanager for pt_chown. + * More fully adopt dpkg-architecture system. + * Correct libc.preinst for sparc. + * Set sparc shlib_depend to $(libc) (>= 2.1) per request. + + -- Joel Klecker Sat, 24 Jul 1999 12:35:05 -0700 + +glibc (2.1.1-13) unstable; urgency=low + + * debian/devpts.init: Revise again. + * debian/rules: debian/shlibs: Add special case for libdb1. + * debian/sysdeps.mk: Add cflags variable and i386 hack + (hopefully this will allow the library to run on 386es again). + * Use 2.2.10 kernel headers by default on *-linux targets. + * Docs in /usr/share/doc. + * debian/control.in: Update Standards-Version to 3.0.0. + * debian/fhs.dpatch: Adjust for FHS 2.1pre2 /var/mail wording. + * debian/libc.postinst: Symlink /var/mail to /var/spool/mail. + * Integrate changes from Jim Pick's NMUs for arm (closes:#40927,#40479,#40691). + * debian/patches/ieee754_y0.dpatch: Upstream fix for yn() issue. + * debian/patches/linux-mmap64.dpatch: Fix for mmap64() on powerpc + (maybe others too). + * debian/patches/libio-oldiopopen.dpatch: Fix for glibc 2.0 compat popen(). + * debian/copyright: + - Update URLs + - Add libio license + - s%/usr/doc/copyright%/usr/share/common-licenses% + + -- Joel Klecker Wed, 7 Jul 1999 17:36:23 -0700 + +glibc (2.1.1-12.3) unstable; urgency=low + + * Non-maintainer upload. + * Oops, messed up tftp patch for ARM. + + -- Jim Pick Wed, 7 Jul 1999 00:15:48 -0700 + +glibc (2.1.1-12.2) unstable; urgency=low + + * Non-maintainer upload. + * Another patch for ARM to fix tftp struct alignment problem. + + -- Jim Pick Thu, 1 Jul 1999 09:38:02 -0700 + +glibc (2.1.1-12.1) unstable; urgency=low + + * Non-maintainer upload. + * Include patch for ARM to fix dynamic linker. + + -- Jim Pick Thu, 17 Jun 1999 21:11:59 -0700 + +glibc (2.1.1-12) unstable; urgency=low + + * debian/rules: Use /var/lib/misc here too. + * debian/tzconfig: Fix #! line. + * debian/libc.postinst: Minor adjustments. + + -- Joel Klecker Tue, 15 Jun 1999 09:24:49 -0700 + +glibc (2.1.1-11) unstable; urgency=low + + * debian/patches/glibcbug.dpatch: New file. + - Fixes glibcbug to use `sensible-editor' + * debian/patches/fhs.dpatch: Deal with _PATH_VARDB. + * debian/patches/m68k-chown.dpatch: Fix paths (closes:Bug#37933). + * $(libc): Add HTML version of glibc FAQ. + * tzselect is crap, restore old version of tzconfig. + * Use 2.2.9 kernel headers by default on *-linux targets. + + -- Joel Klecker Sun, 13 Jun 1999 09:34:41 -0700 + +glibc (2.1.1-10) unstable; urgency=low + + * debian/libc.postinst: Redirect stdout/stderr to /dev/null when + restarting services (closes:Bug#38413). + * debian/patches/fhs.dpatch: Alter slightly for FHS 2.1 draft. + + -- Joel Klecker Mon, 31 May 1999 01:45:27 -0700 + +glibc (2.1.1-9) unstable; urgency=low + + * 2.1.1 final (closes:Bug#38178). + * -7 was accidentally/intentionally compiled with gcc 2.95pre. + * -8 was a local build. + + -- Joel Klecker Mon, 24 May 1999 22:10:01 -0700 + +glibc (2.1.1-8) unstable; urgency=low + + * Rebuild with egcs 1.1.2. + (/me hides) + + -- Joel Klecker Sun, 23 May 1999 21:28:29 -0700 + +glibc (2.1.1-7) unstable; urgency=low + + * Make sure all patches get applied (closes:Bug#37951,Bug#37974). + * Fixes for m68k via Roman Hodek + - (debian/rules): Add new m68k-chown patch (closes:Bug#38048). + - (debian/depflags.mk): Fix m68k case (closes:Bug#37933). + * There were some localedata changes in format between -5 and -6 + (closes:Bug#37850,Bug#37822,Bug#37829). + * Add patch to fix install-locales target when localedata is not installed. + * Build locales in the `locales' target + (no sense building them in the arch-indep install target). + + -- Joel Klecker Thu, 20 May 1999 14:02:15 -0700 + +glibc (2.1.1-6) unstable; urgency=low + + * 2.1.1pre3. + * (debian/rules): Set BASH and KSH to /bin/bash in configparms. + * (debian/libc.preinst): sparc fix (closes:Bug#37415,Bug#37616). + * (debian/nscd.prerm): Stop nscd before removing it (closes:Bug#37416). + + -- Joel Klecker Mon, 17 May 1999 19:29:12 -0700 + +glibc (2.1.1-5) unstable; urgency=low + + * CVS as of 1999-05-08. + + -- Joel Klecker Sat, 8 May 1999 19:31:52 -0700 + +glibc (2.1.1-4) unstable; urgency=low + + * Fix logic errors in tzconfig. + + -- Joel Klecker Sat, 8 May 1999 00:07:44 -0700 + +glibc (2.1.1-3) unstable; urgency=low + + * 2.1.1pre2. + * glibc-compat 2.1.0. + * debian/copyright: Update URLs for upstream source locations. + * debian/devpts.init: Rewrite for more sensible handling of devfs. + * debian/libc.postinst: Be more paranoid about /etc/timezone, and + always remake /etc/localtime symlink. + * debian/sysdeps.mk: Add sparc to HAVE_LIBC4 to deal with lddlibc4. + * debian/rules: Don't apply sparc32-ldd patch. + * debian/patches/sparc32-ldd.dpatch: delete. + + -- Joel Klecker Fri, 7 May 1999 10:40:11 -0700 + +glibc (2.1.1-2) unstable; urgency=low + + * $(libc): replace locales << 2.1.1-1 + * debian/depflags.mk: clean up + * debian/control.in: locales: remove depend on @libc@ (closes:Bug#36654). + * debian/devpts.sh: Remove bashisms (closes:Bug#36552). + * debian/libc.postinst: + - Use ln -sf instead of zic -l (closes:Bug#36305). + - If upgrading from glibc 2.0, restart services potentially affected + by libnss_* upgrade. + * debian/libc.preinst: Add kernel version sanity check for sparc. + * debian/rules: + - Fix reverse-patches target (closes:Bug#36574). + - Fix libexecdir handling (closes:Bug#36673). + - locales is binary-all, so build it in binary-indep, not binary-arch. + * debian/sysdeps.mk: $(shlib_depend): >= 2.0.105 for sparc. + * locales: Add eo_EO (Esperanto) locale definition. + + -- Joel Klecker Sat, 1 May 1999 22:22:22 -0700 + +glibc (2.1.1-1) unstable; urgency=low + + * Using maintainer versions now; 2.1.1 is still in pre-release. + * CVS as of 1999-04-19. + * Upgrade glibc-compat addon. + * Add kernel version sanity check to nscd init script. + * Slight tweaks to devpts.sh init script. + * Remove hurd-fcntl patch, it is applied upstream. + * Fix libc.preinst libnss code. + * Symlink /var/db to /var/state/glibc for backward compatibility. + * Add zh_TW.Big5 locale and BIG5_1984 charmap. + * Revert to ln -sf instead of zic -l in tzconfig (closes:Bug#36305). + * Add latest version of sparc32-chown patch. + * Move architecture-dependant parts of locales to other packages + and make it Architecture: all. + * Move locale and localedef to $(libc); and split gconv-modules into its + own package. + + -- Joel Klecker Tue, 20 Apr 1999 15:09:18 -0700 + +glibc (2.1.1-0.2) unstable; urgency=low + + * Upgrade to latest CVS sources. + - Fixes ttyname problem which affected screen (closes:Bug#35695). + - libio backward compatibility fixes. + - Many other fixes. + * Put manpages in /usr/share/man, info in /usr/share/info. + * Add devpts.sh init script and /etc/default/devpts to configure it. + * Better FHS compliance. + - /var/db -> /var/state/glibc. + - --libexecdir=/usr/lib (my reading of the FHS seems to allow + executables directly in /usr/lib). + + -- Joel Klecker Wed, 7 Apr 1999 14:47:08 -0700 + +glibc (2.1.1-0.1) unstable; urgency=low + + * Now using NMU-style versions for prereleases. + * Don't start utmpd. + * Somehow the old nss modules (libnss_*.so.1) slipped out + of the last release, put them back. + * Let libc keep its x bit. + (executing it presents some interesting output) + + -- Joel Klecker Wed, 17 Mar 1999 00:44:44 -0800 + +glibc (2.1.1-0pre1.3) unstable; urgency=low + + * Fix source package. + * $(libc)-dbg: Install libpthread (closes:Bug#34461). + * $(libc): Add note about devpts and services to postinst. + - Recreate databases in /var/db if upgrading from glibc 2.0.x + (closes:Bug#34442) + - i386, alpha, m68k: Conflict with libtricks, apt (<< 0.1.10.1). + * Change default_cflags to -O2 -g. + * Allow make check to fail. + + -- Joel Klecker Sat, 13 Mar 1999 15:14:50 -0800 + +glibc (2.1.1-0pre1.2) unstable; urgency=low + + * strip shared libs with --strip-debug instead of --strip-unneeded. + * Loosened shlibs depend. + + -- Joel Klecker Fri, 12 Mar 1999 22:33:01 -0800 + +glibc (2.1.1-0pre1.1) unstable; urgency=low + + * Fix $(libc) replaces on i386. + + -- Joel Klecker Fri, 12 Mar 1999 14:47:28 -0800 + +glibc (2.1.1-0pre1) unstable; urgency=low + + * New upstream release. + * Really release this one to unstable. + + -- Joel Klecker Wed, 10 Mar 1999 09:14:29 -0800 + +glibc (2.1-4) unstable; urgency=low + + * First release for unstable. + * Add glibc-compat addon. + * $(libc): Conflict with libwcsmbs + - Start utmpd and touch /var/run/utmpx, /var/log/wtmpx. + * $(libc)-dbg: Install unstripped shared libs in /usr/lib/glibc_dbg. + * $(libc)-prof: Strip libraries. + * glibc-doc: Remove cruft from top-level of info dir. + * Split nscd into separate package. + * Fixed $KERNEL_SOURCE handling. + * Bugs fixed: 19264, 22788, 26148, 26306, 30609, 30773, 31415 + (will elaborate later :) + + -- Joel Klecker Fri, 5 Mar 1999 11:29:44 -0800 + +glibc (2.1-3) unstable; urgency=low + + * (debian/depflags.mk): + - Correct typo + - Add libc_dev_control_flags for Conflicts + + -- Joel Klecker Mon, 8 Feb 1999 03:22:27 -0800 + +glibc (2.1-2) unstable; urgency=low + + * Get shlibs file dependencies correct. + + -- Joel Klecker Sat, 6 Feb 1999 22:56:22 -0800 + +glibc (2.1-1) unstable; urgency=low + + * New upstream release. + * (debian/control.in): Update maintainer address. + * (debian/depflags.mk): + $(libc): conflict and replace timezone, timezones; replace libdb2 + * (debian/rules): + $(libc)-dev: copy subdirectories from $(KERNEL_HEADERS)/linux too. + timezones: remove + $(libc): Put timezone data, and the zic and zdump utils here + * Sync with HURD again. + * Removed hurd-utimes patch, it is integrated upstream. + + -- Joel Klecker Sat, 6 Feb 1999 12:26:10 -0800 + --- glibc-2.7.orig/debian/rules.d/quilt.mk +++ glibc-2.7/debian/rules.d/quilt.mk @@ -0,0 +1,60 @@ +# Implements the patch and unpatch targets, called when building packages. + +# -*- Makefile -*-, you silly Emacs! +# vim: set ft=make: + +DEBQUILTRC = debian/quiltrc +QUILTOPT = --quiltrc $(DEBQUILTRC) +QUILT = quilt $(QUILTOPT) + +patch: $(stamp)patch-stamp +$(stamp)patch-stamp: $(stamp)unpack quilt + @cd $(DEB_SRCDIR); \ + if $(QUILT) next >/dev/null 2>&1; then \ + echo -n "Applying patches..."; \ + if $(QUILT) push -a -v > ${stamp}patch-log 2>&1; then \ + echo "successful."; \ + mv ${stamp}patch-log $@; \ + else \ + echo "failed! (check ${stamp}patch-log for details)"; \ + exit 1; \ + fi; \ + else \ + echo "No patches to apply"; \ + fi + +# By default, quilt looks for patches in the patches/ directory. +# Debian maintainers often set QUILT_PATCHES="debian/patches" +# in their $HOME/.quiltrc +# These symbolic links are useful when running quilt interactively +# from $(DEB_SRCDIR), or from the patch/unpatch targets. +# Patches specific to a certain architecture are applied first. +quilt: $(stamp)unpack + @if test -n "$(DEB_SRCDIR)" && test -d $(DEB_SRCDIR); then \ + test -L $(DEB_SRCDIR)/debian || ln -s . $(DEB_SRCDIR)/debian; \ + test -L $(DEB_SRCDIR)/patches || ln -s $(shell pwd)/debian/patches $(DEB_SRCDIR)/patches; \ + if test -r debian/patches/series.$(DEB_HOST_ARCH); then \ + pc=".pc.$(DEB_HOST_ARCH)"; \ + test -d "$(DEB_SRCDIR)/$$pc" || mkdir "$(DEB_SRCDIR)/$$pc"; \ + cp debian/patches/series.$(DEB_HOST_ARCH) $(DEB_SRCDIR)/$$pc/series; \ + cd $(DEB_SRCDIR); \ + QUILT_PC="$$pc" quilt upgrade || true; \ + QUILT_PC="$$pc" quilt push -a || true; \ + fi; \ + fi + +unpatch: quilt + @echo -n "Unapplying patches..." + @cd $(DEB_SRCDIR); \ + if $(QUILT) top >/dev/null 2>&1; then \ + if $(QUILT) pop -a -v > $(stamp)unpatch-log 2>&1; then \ + echo "successful."; \ + else \ + echo "failed! (check $(stamp)unpatch-log for details)"; \ + exit 1; \ + fi; \ + else \ + echo "nothing to do."; \ + fi + -rm -f $(stamp)patch-stamp $(stamp)patch-log $(stamp)unpatch-log + --- glibc-2.7.orig/debian/rules.d/control.mk +++ glibc-2.7/debian/rules.d/control.mk @@ -0,0 +1,44 @@ +control_deps := $(addprefix debian/control.in/, libc6 libc6.1 libc0.1 libc0.3 sparc64 s390x powerpc ppc64 opt amd64 mipsn32 mips64) + +debian/control.in/libc6: debian/control.in/libc debian/rules.d/control.mk + sed -e 's%@libc@%libc6%g' \ + -e 's%@archs@%amd64 arm armeb armel i386 lpia m32r m68k mips mipsel powerpc ppc64 sparc s390 hppa sh3 sh4 sh3eb sh4eb%g' < $< > $@ + +debian/control.in/libc6.1: debian/control.in/libc debian/rules.d/control.mk + sed -e 's%@libc@%libc6.1%g;s%@archs@%alpha ia64%g' < $< > $@ + +debian/control.in/libc0.3: debian/control.in/libc debian/rules.d/control.mk + sed -e 's%@libc@%libc0.3%g;s%@archs@%hurd-i386%g;s/nscd, //' < $< > $@ + +debian/control.in/libc0.1: debian/control.in/libc debian/rules.d/control.mk + sed -e 's%@libc@%libc0.1%g;s%@archs@%kfreebsd-i386 kfreebsd-amd64%g' < $< > $@ + +debian/control: $(stamp)control +$(stamp)control: debian/control.in/main $(control_deps) \ + debian/rules.d/control.mk # debian/sysdeps/depflags.pl + + # Check that all files end with a new line + set -e ; for i in debian/control.in/* ; do \ + tail -n1 $$i | grep -q "^$$" ; \ + done + + cat debian/control.in/main > $@T + cat debian/control.in/libc6 >> $@T + cat debian/control.in/libc6.1 >> $@T + cat debian/control.in/libc0.3 >> $@T + cat debian/control.in/libc0.1 >> $@T + cat debian/control.in/i386 >> $@T + cat debian/control.in/sparc64 >> $@T + cat debian/control.in/s390x >> $@T + cat debian/control.in/amd64 >> $@T + cat debian/control.in/powerpc >> $@T + cat debian/control.in/ppc64 >> $@T + cat debian/control.in/mipsn32 >> $@T + cat debian/control.in/mips64 >> $@T + cat debian/control.in/kfreebsd-i386 >> $@T + cat debian/control.in/opt >> $@T + cat debian/control.in/libnss-dns-udeb >> $@T + cat debian/control.in/libnss-files-udeb >> $@T + sed -e 's%@libc@%$(libc)%g;s%@glibc@%glibc%g' < $@T > debian/control + rm $@T + touch $@ --- glibc-2.7.orig/debian/rules.d/build.mk +++ glibc-2.7/debian/rules.d/build.mk @@ -0,0 +1,172 @@ +# Because variables can be masked at anypoint by declaring +# PASS_VAR, we need to call all variables as $(call xx,VAR) +# This little bit of magic makes it possible: +xx=$(if $($(curpass)_$(1)),$($(curpass)_$(1)),$($(1))) + +# We want to log output to a logfile but we also need to preserve the +# return code of the command being run. +# This little bit of magic makes it possible: +# $(call logme, [-a] , ) +define logme +(exec 3>&1; exit `( ( ( $(2) ) 2>&1 3>&-; echo $$? >&4) | tee $(1) >&3) 4>&1`) +endef + + +$(patsubst %,mkbuilddir_%,$(GLIBC_PASSES)) :: mkbuilddir_% : $(stamp)mkbuilddir_% +$(stamp)mkbuilddir_%: $(stamp)patch-stamp $(KERNEL_HEADER_DIR) + @echo Making builddir for $(curpass) + test -d $(DEB_BUILDDIR) || mkdir $(DEB_BUILDDIR) + touch $@ + +$(patsubst %,configure_%,$(GLIBC_PASSES)) :: configure_% : $(stamp)configure_% +$(stamp)configure_%: $(stamp)mkbuilddir_% + + @echo Configuring $(curpass) + rm -f $(DEB_BUILDDIR)/configparms + echo "CC = $(call xx,CC)" >> $(DEB_BUILDDIR)/configparms + echo "CXX = $(call xx,CXX)" >> $(DEB_BUILDDIR)/configparms + echo "BUILD_CC = $(BUILD_CC)" >> $(DEB_BUILDDIR)/configparms + echo "BUILD_CXX = $(BUILD_CXX)" >> $(DEB_BUILDDIR)/configparms + echo "CFLAGS = $(HOST_CFLAGS)" >> $(DEB_BUILDDIR)/configparms + echo "BUILD_CFLAGS = $(BUILD_CFLAGS)" >> $(DEB_BUILDDIR)/configparms + echo "LDFLAGS = " >> $(DEB_BUILDDIR)/configparms + echo "BASH := /bin/bash" >> $(DEB_BUILDDIR)/configparms + echo "KSH := /bin/bash" >> $(DEB_BUILDDIR)/configparms + echo "LIBGD = no" >> $(DEB_BUILDDIR)/configparms + echo "bindir = $(bindir)" >> $(DEB_BUILDDIR)/configparms + echo "datadir = $(datadir)" >> $(DEB_BUILDDIR)/configparms + echo "localedir = $(localedir)" >> $(DEB_BUILDDIR)/configparms + echo "sysconfdir = $(sysconfdir)" >> $(DEB_BUILDDIR)/configparms + echo "libexecdir = $(libexecdir)" >> $(DEB_BUILDDIR)/configparms + echo "rootsbindir = $(rootsbindir)" >> $(DEB_BUILDDIR)/configparms + echo "includedir = $(call xx,includedir)" >> $(DEB_BUILDDIR)/configparms + echo "docdir = $(docdir)" >> $(DEB_BUILDDIR)/configparms + echo "mandir = $(mandir)" >> $(DEB_BUILDDIR)/configparms + echo "sbindir = $(sbindir)" >> $(DEB_BUILDDIR)/configparms + libdir="$(call xx,libdir)" ; if test -n "$$libdir" ; then \ + echo "libdir = $$libdir" >> $(DEB_BUILDDIR)/configparms ; \ + fi + slibdir="$(call xx,slibdir)" ; if test -n "$$slibdir" ; then \ + echo "slibdir = $$slibdir" >> $(DEB_BUILDDIR)/configparms ; \ + fi + rtlddir="$(call xx,rtlddir)" ; if test -n "$$rtlddir" ; then \ + echo "rtlddir = $$rtlddir" >> $(DEB_BUILDDIR)/configparms ; \ + fi + + # Prevent autoconf from running unexpectedly by setting it to false. + # Also explicitly pass CC down - this is needed to get -m64 on + # Sparc, et cetera. + + configure_build=$(call xx,configure_build); \ + if [ $(call xx,configure_target) = $$configure_build ]; then \ + echo "Checking that we're running at least kernel version: $(call xx,MIN_KERNEL_SUPPORTED)"; \ + if ! $(call kernel_check,$(call xx,MIN_KERNEL_SUPPORTED)); then \ + configure_build=`echo $$configure_build | sed 's/^\([^-]*\)-\([^-]*\)$$/\1-dummy-\2/'`; \ + echo "No. Forcing cross-compile by setting build to $$configure_build."; \ + fi; \ + fi; \ + $(call logme, -a $(log_build), echo -n "Build started: " ; date --rfc-2822 ; echo "---------------") ; \ + $(call logme, -a $(log_build), \ + cd $(DEB_BUILDDIR) && \ + CC="$(call xx,CC)" \ + CXX="$(call xx,CXX)" \ + LDFLAGS="" \ + AUTOCONF=false \ + $(CURDIR)/$(DEB_SRCDIR)/configure \ + --host=$(call xx,configure_target) \ + --build=$$configure_build --prefix=/usr --without-cvs \ + --enable-add-ons=$(standard-add-ons)"$(call xx,add-ons)" \ + --enable-profile \ + --without-selinux \ + $(call xx,with_headers) $(call xx,extra_config_options)) + touch $@ + +$(patsubst %,build_%,$(GLIBC_PASSES)) :: build_% : $(stamp)build_% +$(stamp)build_%: $(stamp)configure_% + @echo Building $(curpass) + $(call logme, -a $(log_build), LDFLAGS="" $(MAKE) -C $(DEB_BUILDDIR) $(NJOBS)) + $(call logme, -a $(log_build), echo "---------------" ; echo -n "Build ended: " ; date --rfc-2822) + if [ $(curpass) = libc ]; then \ + $(MAKE) -C $(DEB_BUILDDIR) $(NJOBS) \ + objdir=$(DEB_BUILDDIR) install_root=$(CURDIR)/build-tree/locales-all \ + localedata/install-locales; \ + sync; \ + tar --use-compress-program /usr/bin/lzma --owner root --group root -cf $(CURDIR)/build-tree/locales-all/supported.tar.lzma -C $(CURDIR)/build-tree/locales-all/usr/lib/locale .; \ + fi + touch $@ + +$(patsubst %,check_%,$(GLIBC_PASSES)) :: check_% : $(stamp)check_% +$(stamp)check_%: $(stamp)build_% + if [ -n "$(findstring nocheck,$(DEB_BUILD_OPTIONS))" ]; then \ + echo "DEB_BUILD_OPTIONS contains nocheck, skipping tests."; \ + echo "Tests have been disabled via DEB_BUILD_OPTIONS." > $(log_test) ; \ + elif [ $(call xx,configure_build) != $(call xx,configure_target) ] && \ + ! $(DEB_BUILDDIR)/elf/ld.so $(DEB_BUILDDIR)/libc.so >/dev/null 2>&1 ; then \ + echo "Cross compiling, skipping tests."; \ + echo "Flavour cross-compiled, tests have been skipped." > $(log_test) ; \ + elif ! $(call kernel_check,$(call xx,MIN_KERNEL_SUPPORTED)); then \ + echo "Kernel too old, skipping tests."; \ + echo "Kernel too old, tests have been skipped." > $(log_test) ; \ + elif grep -q "cpu model.*SiByte SB1" /proc/cpuinfo ; then \ + echo "MIPS SB1 platform detected, skipping tests."; \ + echo "MIPS SB1 platform detected, skipping tests." > $(log_test) ; \ + elif uname -m | grep -q "^arm" && uname -r | grep -q "2\.6\.2[1-4]" ; then \ + echo "ARM machine running a 2.6.21-24 kernel detected, tests have been skipped."; \ + echo "ARM machine running a 2.6.21-24 kernel detected, tests have been skipped." > $(log_test) ; \ + elif [ $(call xx,RUN_TESTSUITE) != "yes" ]; then \ + echo "Testsuite disabled for $(curpass), skipping tests."; \ + echo "Tests have been disabled." > $(log_test) ; \ + else \ + echo Testing $(curpass); \ + echo -n "Testsuite started: " | tee -a $(log_test); \ + date --rfc-2822 | tee -a $(log_test); \ + echo "--------------" | tee -a $(log_test); \ + TIMEOUTFACTOR="$(TIMEOUTFACTOR)" $(MAKE) -C $(DEB_BUILDDIR) $(NJOBS) -k check 2>&1 | tee -a $(log_test); \ + echo "--------------" | tee -a $(log_test); \ + echo -n "Testsuite ended: " | tee -a $(log_test); \ + date --rfc-2822 | tee -a $(log_test); \ + fi + @n=$$(grep '^make.* Error' $(log_test) | wc -l || true); \ + echo "TEST SUMMARY $(log_test) ($$n matching lines)"; \ + grep '^make.* Error' $(log_test) || true; \ + echo "END TEST SUMMARY $(log_test)" + touch $@ + +$(patsubst %,install_%,$(GLIBC_PASSES)) :: install_% : $(stamp)install_% +$(stamp)install_%: $(stamp)check_% + @echo Installing $(curpass) + rm -rf $(CURDIR)/debian/tmp-$(curpass) + $(MAKE) -C $(DEB_BUILDDIR) \ + install_root=$(CURDIR)/debian/tmp-$(curpass) install + + # Generate the list of SUPPORTED locales + if [ $(curpass) = libc ]; then \ + $(MAKE) -f debian/generate-supported.mk IN=$(DEB_SRCDIR)/localedata/SUPPORTED \ + OUT=debian/tmp-$(curpass)/usr/share/i18n/SUPPORTED; \ + (cd $(DEB_SRCDIR)/manual && texi2html -split_chapter libc.texinfo); \ + fi + + # Create the multidir directories, and the configuration file in /etc/ld.so.conf.d + if [ $(curpass) = libc ]; then \ + mkdir -p debian/tmp-$(curpass)/etc/ld.so.conf.d; \ + machine=`sed '/^ *config-machine *=/!d;s/.*= *//g' $(DEB_BUILDDIR)/config.make`; \ + os=`sed '/^ *config-os *=/!d;s/.*= *//g' $(DEB_BUILDDIR)/config.make`; \ + triplet="$$machine-$$os"; \ + mkdir -p debian/tmp-$(curpass)/lib/$$triplet debian/tmp-$(curpass)/usr/lib/$$triplet; \ + conffile="debian/tmp-$(curpass)/etc/ld.so.conf.d/$$triplet.conf"; \ + echo "# Multiarch support" > $$conffile; \ + echo /lib/$$triplet >> $$conffile; \ + echo /usr/lib/$$triplet >> $$conffile; \ + fi + + # Create a default configuration file that adds /usr/local/lib to the search path + if [ $(curpass) = libc ]; then \ + mkdir -p debian/tmp-$(curpass)/etc/ld.so.conf.d; \ + echo "# libc default configuration" > debian/tmp-$(curpass)/etc/ld.so.conf.d/libc.conf ; \ + echo /usr/local/lib >> debian/tmp-$(curpass)/etc/ld.so.conf.d/libc.conf ; \ + fi + + $(call xx,extra_install) + touch $@ + +.NOTPARALLEL: $(patsubst %,install_%,$(GLIBC_PASSES)) --- glibc-2.7.orig/debian/rules.d/tarball.mk +++ glibc-2.7/debian/rules.d/tarball.mk @@ -0,0 +1,21 @@ +unpack: $(stamp)unpack +$(stamp)unpack: $(DEB_TARBALL) $(patsubst %,$(stamp)%,$(GLIBC_OVERLAYS)) + touch $(stamp)unpack + +# FIXME: Support gzip as well! +$(DEB_TARBALL): $(stamp)$(DEB_TARBALL) +$(stamp)$(DEB_TARBALL): + mkdir -p $(build-tree) + cd $(build-tree) && tar -xjf $(CURDIR)/$(DEB_TARBALL) + touch $@ + +$(patsubst %,$(stamp)%,$(GLIBC_OVERLAYS)): $(stamp)$(DEB_TARBALL) + cd $(DEB_SRCDIR) && tar -xjf $(CURDIR)/$(notdir $@) + a=`echo $(notdir $@) | sed -e 's/^glibc-//' -e 's/-[^-]*$$//'`; \ + d=`echo $(notdir $@) | sed -e 's/\.tar\.bz2$$//'`; \ + if test -d $(DEB_SRCDIR)/$$d; then \ + cd $(DEB_SRCDIR) && mv $$d $$a; \ + fi + touch $@ + + --- glibc-2.7.orig/debian/rules.d/debhelper.mk +++ glibc-2.7/debian/rules.d/debhelper.mk @@ -0,0 +1,280 @@ +# This is so horribly wrong. libc-pic does a whole pile of gratuitous +# renames. There's very little we can do for now. Maybe after +# Sarge releases we can consider breaking packages, but certainly not now. + +$(stamp)binaryinst_$(libc)-pic:: $(stamp)debhelper + @echo Running special kludge for $(libc)-pic + dh_testroot + dh_installdirs -p$(curpass) + install --mode=0644 build-tree/$(DEB_HOST_ARCH)-libc/libc_pic.a debian/$(libc)-pic/usr/lib/. + install --mode=0644 build-tree/$(DEB_HOST_ARCH)-libc/libc.map debian/$(libc)-pic/usr/lib/libc_pic.map + install --mode=0644 build-tree/$(DEB_HOST_ARCH)-libc/elf/soinit.os debian/$(libc)-pic/usr/lib/libc_pic/soinit.o + install --mode=0644 build-tree/$(DEB_HOST_ARCH)-libc/elf/sofini.os debian/$(libc)-pic/usr/lib/libc_pic/sofini.o + + install --mode=0644 build-tree/$(DEB_HOST_ARCH)-libc/math/libm_pic.a debian/$(libc)-pic/usr/lib/. + install --mode=0644 build-tree/$(DEB_HOST_ARCH)-libc/libm.map debian/$(libc)-pic/usr/lib/libm_pic.map + install --mode=0644 build-tree/$(DEB_HOST_ARCH)-libc/resolv/libresolv_pic.a debian/$(libc)-pic/usr/lib/. + install --mode=0644 build-tree/$(DEB_HOST_ARCH)-libc/libresolv.map debian/$(libc)-pic/usr/lib/libresolv_pic.map + +# Some per-package extra files to install. +define $(libc)_extra_debhelper_pkg_install + install --mode=0644 $(DEB_SRCDIR)/ChangeLog debian/$(curpass)/usr/share/doc/$(curpass)/changelog + install --mode=0644 $(DEB_SRCDIR)/nptl/ChangeLog debian/$(curpass)/usr/share/doc/$(curpass)/ChangeLog.nptl + sed -e "/KERNEL_VERSION_CHECK/r debian/script.in/kernelcheck.sh" \ + debian/local/etc_init.d/glibc.sh | \ + sed -e "s/EXIT_CHECK/sleep 5/" -e "s/DEB_HOST_ARCH/$(DEB_HOST_ARCH)/" > debian/glibc.sh.generated + install --mode=0755 debian/glibc.sh.generated debian/$(curpass)/etc/init.d/glibc.sh + # dh_installmanpages thinks that .so is a language. + install --mode=0644 debian/local/manpages/ld.so.8 debian/$(curpass)/usr/share/man/man8/ld.so.8 + + install --mode=0644 debian/FAQ debian/$(curpass)/usr/share/doc/$(curpass)/README.Debian +endef + +# Should each of these have per-package options? + +$(patsubst %,binaryinst_%,$(DEB_ARCH_REGULAR_PACKAGES) $(DEB_INDEP_REGULAR_PACKAGES)) :: binaryinst_% : $(stamp)binaryinst_% + +# Make sure the debug packages are built last, since other packages may add +# files to them. +debug-packages = $(filter %-dbg,$(DEB_ARCH_REGULAR_PACKAGES)) +non-debug-packages = $(filter-out %-dbg,$(DEB_ARCH_REGULAR_PACKAGES)) +$(patsubst %,$(stamp)binaryinst_%,$(debug-packages)):: $(patsubst %,$(stamp)binaryinst_%,$(non-debug-packages)) + +$(patsubst %,$(stamp)binaryinst_%,$(DEB_ARCH_REGULAR_PACKAGES) $(DEB_INDEP_REGULAR_PACKAGES)):: $(stamp)debhelper + @echo Running debhelper for $(curpass) + dh_testroot + dh_installdirs -p$(curpass) + dh_install -p$(curpass) + dh_installman -p$(curpass) + dh_installinfo -p$(curpass) + dh_installdebconf -p$(curpass) + dh_installchangelogs -p$(curpass) + dh_installinit -p$(curpass) + dh_installdocs -p$(curpass) + dh_link -p$(curpass) + set -e; if test -d debian/bug/$(curpass); then \ + dh_installdirs -p$(curpass) usr/share/bug; \ + dh_install -p$(curpass) debian/bug/$(curpass) usr/share/bug; \ + fi + + set -ex; case $(curpass) in libc6|libc6.1) \ + mv debian/$(curpass)/sbin/ldconfig \ + debian/$(curpass)/sbin/ldconfig.real; \ + install -m755 -o0 -g0 debian/local/ldconfig_wrap \ + debian/$(curpass)/sbin/ldconfig; \ + ;; esac + + # extra_debhelper_pkg_install is used for debhelper.mk only. + # when you want to install extra packages, use extra_pkg_install. + $(call xx,extra_debhelper_pkg_install) + $(call xx,extra_pkg_install) + +ifeq ($(filter nostrip,$(DEB_BUILD_OPTIONS)),) + # libpthread must be stripped specially; GDB needs the + # non-dynamic symbol table in order to load the thread + # debugging library. We keep a full copy of the symbol + # table in libc6-dbg but basic thread debugging should + # work even without that package installed. + + # We use a wrapper script so that we only include the bare + # minimum in /usr/lib/debug/lib for backtraces; anything + # else takes too long to load in GDB. + + if test "$(NOSTRIP_$(curpass))" != 1; then \ + chmod a+x debian/wrapper/objcopy; \ + export PATH=$(shell pwd)/debian/wrapper:$$PATH; \ + dh_strip -p$(curpass) -Xlibpthread --keep-debug; \ + mkdir -p debian/$(libc)-dbg/usr/lib/debug; \ + if test -d debian/$(curpass)/usr/lib/debug; then \ + cd debian/$(curpass)/usr/lib/debug; \ + find . -type f -name \*.so\* \ + | cpio -pd $(shell pwd)/debian/$(libc)-dbg/usr/lib/debug; \ + cd ../../../../..; \ + rm -rf debian/$(curpass)/usr/lib/debug; \ + fi; \ + (cd debian/$(curpass); \ + find . -name libpthread-\*.so -exec \ + ../../debian/wrapper/objcopy --only-keep-debug '{}' \ + ../$(libc)-dbg/usr/lib/debug/'{}' ';' || true; \ + find . -name libpthread-\*.so -exec objcopy \ + --add-gnu-debuglink=../$(libc)-dbg/usr/lib/debug/'{}' \ + '{}' ';' || true); \ + find debian/$(curpass) -name libpthread-\*.so -exec \ + strip --strip-debug --remove-section=.comment \ + --remove-section=.note '{}' ';' || true; \ + fi +endif + + dh_compress -p$(curpass) + dh_fixperms -p$(curpass) -Xpt_chown + # Use this instead of -X to dh_fixperms so that we can use + # an unescaped regular expression. ld.so must be executable; + # libc.so and NPTL's libpthread.so print useful version + # information when executed. + find debian/$(curpass) -type f \( -regex '.*/ld.*so' \ + -o -regex '.*/libpthread-.*so' \ + -o -regex '.*/libc-.*so' \) \ + -exec chmod a+x '{}' ';' + dh_makeshlibs -X/usr/lib/debug -p$(curpass) -V "$(call xx,shlib_dep)" + + if [ -f debian/$(curpass).lintian ] ; then \ + install -d -m 755 -o root -g root debian/$(curpass)/usr/share/lintian/overrides/ ; \ + install -m 644 -o root -g root debian/$(curpass).lintian \ + debian/$(curpass)/usr/share/lintian/overrides/$(curpass) ; \ + fi + + if [ -f debian/$(curpass).triggers ] ; then \ + install -m 644 -o root -g root debian/$(curpass).triggers \ + debian/$(curpass)/DEBIAN/triggers ; \ + fi + + if [ -f debian/$(curpass).linda ] ; then \ + install -d -m 755 -o root -g root debian/$(curpass)/usr/share/linda/overrides/ ; \ + install -m 644 -o root -g root debian/$(curpass).linda \ + debian/$(curpass)/usr/share/linda/overrides/$(curpass) ; \ + fi + + dh_installdeb -p$(curpass) + if [ $(curpass) = nscd ] ; then \ + dh_shlibdeps -p$(curpass) ; \ + fi + dh_gencontrol -p$(curpass) -- $($(curpass)_control_flags) + if [ $(curpass) = nscd ] ; then \ + sed -i -e "s/\(Depends:.*libc[0-9.]\+\)-[a-z0-9]\+/\1/" debian/nscd/DEBIAN/control ; \ + fi + dh_md5sums -p$(curpass) + dh_builddeb -p$(curpass) + + touch $@ + +$(patsubst %,binaryinst_%,$(DEB_UDEB_PACKAGES)) :: binaryinst_% : $(stamp)binaryinst_% +$(patsubst %,$(stamp)binaryinst_%,$(DEB_UDEB_PACKAGES)): $(stamp)debhelper + @echo Running debhelper for $(curpass) + dh_testroot + dh_installdirs -p$(curpass) + dh_install -p$(curpass) + dh_strip -p$(curpass) + + # when you want to install extra packages, use extra_pkg_install. + $(call xx,extra_pkg_install) + + dh_compress -p$(curpass) + dh_fixperms -p$(curpass) + find debian/$(curpass) -type f \( -regex '.*lib[0-9]*/ld.*so.*' \ + -o -regex '.*lib[0-9]*/.*libpthread.*so.*' \ + -o -regex '.*lib[0-9]*/libc[.-].*so.*' \) \ + -exec chmod a+x '{}' ';' + # dh_makeshlibs -X/usr/lib/debug -p$(curpass) -V "$(call xx,shlib_dep)" + dh_installdeb -p$(curpass) + # dh_shlibdeps -p$(curpass) + dh_gencontrol -p$(curpass) + dh_builddeb -p$(curpass) + + touch $@ + +OPT_PASSES = $(filter-out libc, $(GLIBC_PASSES)) +OPT_DIRS = $(foreach pass,$(OPT_PASSES),$($(pass)_slibdir) $($(pass)_libdir)) + +debhelper: $(stamp)debhelper +$(stamp)debhelper: + + for x in `find debian/debhelper.in -maxdepth 1 -type f`; do \ + y=debian/`basename $$x`; \ + z=`echo $$y | sed -e 's#/libc#/$(libc)#'`; \ + cp $$x $$z; \ + sed -e "s#DEB_SRCDIR#$(DEB_SRCDIR)#" -i $$z; \ + sed -e "/KERNEL_VERSION_CHECK/r debian/script.in/kernelcheck.sh" -i $$z; \ + sed -e "/NSS_CHECK/r debian/script.in/nsscheck.sh" -i $$z; \ + sed -e "/NOHWCAP/r debian/script.in/nohwcap.sh" -i $$z; \ + sed -e "s#LIBC#$(libc)#" -i $$z; \ + sed -e "s#CURRENT_VER#$(DEB_VERSION)#" -i $$z; \ + sed -e "s#EXIT_CHECK##" -i $$z; \ + sed -e "s#DEB_HOST_ARCH#$(DEB_HOST_ARCH)#" -i $$z; \ + case $$z in \ + *.install) \ + sed -e "s/^#.*//" -i $$z ; \ + if [ $(DEB_HOST_ARCH) != $(DEB_BUILD_ARCH) ]; then \ + sed -i "/^.*librpcsvc.a.*/d" $$z ; \ + fi ; \ + ;; \ + debian/$(libc).preinst) \ + rtld=`LANG=C LC_ALL=C readelf -l debian/tmp-libc/usr/bin/iconv | grep "interpreter" | sed -e 's/.*interpreter: \(.*\)]/\1/g'`; \ + c_so=`ls debian/tmp-libc/lib/ | grep "libc\.so\."` ; \ + m_so=`ls debian/tmp-libc/lib/ | grep "libm\.so\."` ; \ + pthread_so=`ls debian/tmp-libc/lib/ | grep "libpthread\.so\."` ; \ + rt_so=`ls debian/tmp-libc/lib/ | grep "librt\.so\."` ; \ + dl_so=`ls debian/tmp-libc/lib/ | grep "libdl\.so\."` ; \ + sed -e "s#RTLD#$$rtld#" -e "s#C_SO#$$c_so#" -e "s#M_SO#$$m_so#" -e "s#PTHREAD_SO#$$pthread_so#" -e "s#RT_SO#$$rt_so#" -e "s#DL_SO#$$dl_so#" -i $$z ; \ + ;; \ + esac; \ + done + + # Hack: special-case passes whose destdir is a biarch directory + # to use a different install template, which includes more + # libraries. Also generate a -dev. Other libraries get scripts + # to temporarily disable hwcap. This needs some cleaning up. + set -- $(OPT_DIRS); \ + for x in $(OPT_PASSES); do \ + slibdir=$$1; \ + shift; \ + case $$slibdir in \ + /lib32 | /lib64 | /emul/ia32-linux/lib) \ + suffix="alt"; \ + libdir=$$1; \ + shift; \ + ;; \ + *) \ + suffix="otherbuild"; \ + ;; \ + esac; \ + for y in debian/$(libc)*-$$suffix.* ; do \ + z=`echo $$y | sed -e "s/$$suffix/$$x/"` ; \ + cp $$y $$z ; \ + sed -e "s#TMPDIR#debian/tmp-$$x#g" -i $$z; \ + sed -e "s#SLIBDIR#$$slibdir#g" -i $$z; \ + sed -e "s#LIBDIR#$$libdir#g" -i $$z; \ + sed -e "s#FLAVOR#$$x#g" -i $$z; \ + done ; \ + done + + # Substitute __PROVIDED_LOCALES__. + perl -i -pe 'BEGIN {undef $$/; open(IN, "debian/tmp-libc/usr/share/i18n/SUPPORTED"); $$j=;} s/__PROVIDED_LOCALES__/$$j/g;' debian/locales.config debian/locales.postinst + + # Generate common substvars files. + echo "locale:Depends=$(shell perl debian/debver2localesdep.pl $(LOCALES_DEP_VER))" > tmp.substvars + echo "locale-compat:Depends=$(shell perl debian/debver2localesdep.pl $(LOCALES_COMPAT_VER))" >> tmp.substvars + + for pkg in $(DEB_ARCH_REGULAR_PACKAGES) $(DEB_INDEP_REGULAR_PACKAGES) $(DEB_UDEB_PACKAGES); do \ + cp tmp.substvars debian/$$pkg.substvars; \ + done + rm -f tmp.substvars + + touch $(stamp)debhelper + +debhelper-clean: + dh_clean + + rm -f debian/*.install* + rm -f debian/*.install.* + rm -f debian/*.manpages + rm -f debian/*.links + rm -f debian/*.postinst + rm -f debian/*.preinst + rm -f debian/*.postinst + rm -f debian/*.prerm + rm -f debian/*.postrm + rm -f debian/*.info + rm -f debian/*.init + rm -f debian/*.config + rm -f debian/*.templates + rm -f debian/*.dirs + rm -f debian/*.docs + rm -f debian/*.doc-base + rm -f debian/*.generated + rm -f debian/*.lintian + rm -f debian/*.linda + rm -f debian/*.NEWS + rm -f debian/*.README.Debian + rm -f debian/*.triggers + + rm -f $(stamp)binaryinst* --- glibc-2.7.orig/debian/watch +++ glibc-2.7/debian/watch @@ -0,0 +1,2 @@ +version=3 +ftp://ftp.gnu.org/gnu/glibc/glibc-([\d\.]+)\.tar\.gz debian uupdate --- glibc-2.7.orig/debian/make-cvs-locales-patch.sh +++ glibc-2.7/debian/make-cvs-locales-patch.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +set -e + +# This script is designed to help make patches to update from the last +# release to the latest CVS. Hand it the argument of the directory from +# which to generate the diff. + +# This script is not robust. Feel free to improve it. Specifically, +# run this from the root of the package. + +# This file is in the PUBLIC DOMAIN +# written by Jeff Bailey jbailey@debian.org September 6th, 2002 + +if [ $# -ne 1 ]; then + echo "`basename $0`: script expects a CVS tree to diff against" + exit 1 +fi + +PATCHLIST=10_cvs debian/rules patch + +SRCDIR=build-tree/glibc-* + +# DESCRIPTION, DETAILS, DATE, PATCHLEVEL + +cat debian/patches/template.dpatch | sed -e "s/@DESCRIPTION@/Locales CVS Update/" -e "s/@DATE@/`date`/" -e "s/@PATCHLEVEL@/2/" > debian/patches/11_cvs_locales.dpatch + +diff -urN -x CVS $SRCDIR/localedata $1/localedata >>debian/patches/11_cvs_locales.dpatch + --- glibc-2.7.orig/debian/sysdeps/hurd.mk +++ glibc-2.7/debian/sysdeps/hurd.mk @@ -0,0 +1,31 @@ +ifeq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH)) +CC = gcc-4.2 +CXX = g++-4.2 +endif + +# This is for the GNU OS. Commonly known as the Hurd. + +GLIBC_OVERLAYS ?= $(shell ls glibc-linuxthreads* glibc-ports* glibc-libidn*) + +threads = no +libc = libc0.3 +slibdir = /lib + +# Glibc should really do this for us. +define libc_extra_install +mkdir -p debian/tmp-$(curpass)/lib +ln -s ld.so.1 debian/tmp-$(curpass)/lib/ld.so +endef + +# Do not care about kernel versions for now. +define kernel_check +true +endef + +libc_extra_config_options := $(extra_config_options) + +# Only use libidn as add-on. +standard-add-ons = libidn + +# disabled because the testsuite is known to provoke build abortions. +RUN_TESTSUITE = no --- glibc-2.7.orig/debian/sysdeps/powerpc.mk +++ glibc-2.7/debian/sysdeps/powerpc.mk @@ -0,0 +1,21 @@ +# build 64-bit (ppc64) alternative library +GLIBC_PASSES += ppc64 +DEB_ARCH_REGULAR_PACKAGES += libc6-ppc64 libc6-dev-ppc64 +ppc64_add-ons = nptl $(add-ons) +ppc64_configure_target = powerpc64-linux +ppc64_CC = $(CC) -fno-stack-protector -m64 +ppc64_CXX = $(CXX) -fno-stack-protector -m64 +libc6-ppc64_shlib_dep = libc6-ppc64 (>= $(shlib_dep_ver)) +ppc64_extra_cflags = -O3 +ppc64_extra_config_options := $(extra_config_options) --disable-profile +ppc64_slibdir = /lib64 +ppc64_libdir = /usr/lib64 +ppc64_includedir = /usr/include/powerpc64-linux-gnu + +define libc6-dev-ppc64_extra_pkg_install +mkdir -p debian/libc6-dev-ppc64/usr/include/gnu +cp -af debian/tmp-ppc64/usr/include/powerpc64-linux-gnu/gnu/stubs-64.h \ + debian/libc6-dev-ppc64/usr/include/gnu +mkdir -p debian/libc6-dev-ppc64/usr/include/powerpc64-linux-gnu +endef + --- glibc-2.7.orig/debian/sysdeps/lpia.mk +++ glibc-2.7/debian/sysdeps/lpia.mk @@ -0,0 +1,4 @@ +# We use -mno-tls-direct-seg-refs to not wrap-around segments, as it +# greatly reduce the speed when running under the Xen hypervisor. +# libc_extra_config_options = $(extra_config_options) --without-__thread --disable-sanity-checks +libc_extra_cflags = -mno-tls-direct-seg-refs -march=i686 -mtune=i586 -g -O3 --- glibc-2.7.orig/debian/sysdeps/kfreebsd.mk +++ glibc-2.7/debian/sysdeps/kfreebsd.mk @@ -0,0 +1,59 @@ +GLIBC_OVERLAYS ?= $(shell ls glibc-linuxthreads* glibc-ports* glibc-libidn*) +MIN_KERNEL_SUPPORTED := 5.4.0 +libc = libc0.1 + +# Linuxthreads Config +threads = yes +libc_add-ons = ports linuxthreads $(add-ons) +libc_extra_config_options = $(extra_config_options) --disable-compatible-utmp + +ifndef KFREEBSD_SOURCE + ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) + KFREEBSD_HEADERS := /usr/include + else + KFREEBSD_HEADERS := /usr/$(DEB_HOST_GNU_TYPE)/include + endif +else + KFREEBSD_HEADERS := $(KFREEBSD_SOURCE)/sys +endif + +# Minimum Kernel supported +with_headers = --with-headers=$(shell pwd)/debian/include --enable-kernel=$(call xx,MIN_KERNEL_SUPPORTED) + +KERNEL_HEADER_DIR = $(stamp)mkincludedir +$(stamp)mkincludedir: + rm -rf debian/include + mkdir debian/include + ln -s $(KFREEBSD_HEADERS)/net debian/include + ln -s $(KFREEBSD_HEADERS)/netatalk debian/include + ln -s $(KFREEBSD_HEADERS)/netipx debian/include + ln -s $(KFREEBSD_HEADERS)/nfs debian/include + ln -s $(KFREEBSD_HEADERS)/osreldate.h debian/include + ln -s $(KFREEBSD_HEADERS)/sys debian/include + ln -s $(KFREEBSD_HEADERS)/vm debian/include + + # Link all machine directories. We can't just link machine + # because of explicit references to and + # . + find $(KFREEBSD_HEADERS) -maxdepth 1 -xtype d -name machine\* \ + -exec ln -s '{}' debian/include ';' + + # To make configure happy if libc0.1-dev is not installed. + touch debian/include/assert.h + + touch $@ + +# Also to make configure happy. +export CPPFLAGS = -isystem $(shell pwd)/debian/include + +# This round of ugliness decomposes the FreeBSD kernel version number +# into an integer so it can be easily compared and then does so. +CURRENT_KERNEL_VERSION=$(shell uname -r) +define kernel_check +(minimum=$$((`echo $(1) | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\1 \* 10000 + \2 \* 100 + \3/'`)); \ +current=$$((`echo $(CURRENT_KERNEL_VERSION) | sed 's/\([0-9]*\)\.\([0-9]*\).*/\1 \* 10000 + \2 \* 100/'`)); \ +if [ $$current -lt $$minimum ]; then \ + false; \ +fi) +endef + --- glibc-2.7.orig/debian/sysdeps/i386.mk +++ glibc-2.7/debian/sysdeps/i386.mk @@ -0,0 +1,74 @@ +# We use -mno-tls-direct-seg-refs to not wrap-around segments, as it +# greatly reduce the speed when running under the Xen hypervisor. +# libc_extra_config_options = $(extra_config_options) --without-__thread --disable-sanity-checks +libc_extra_cflags = -mno-tls-direct-seg-refs + +# We use -march=i686 and glibc's i686 routines use cmov, so require it. +# A Debian-local glibc patch adds cmov to the search path. +# The optimized libraries also use NPTL! +GLIBC_PASSES += i686 +DEB_ARCH_REGULAR_PACKAGES += libc6-i686 +i686_add-ons = nptl $(add-ons) +i686_configure_target=i686-linux +i686_extra_cflags = -march=i686 -mtune=i686 -O3 +i686_rtlddir = /lib +i686_slibdir = /lib/tls/i686/cmov +i686_extra_config_options = $(extra_config_options) --disable-profile + +# We use -mno-tls-direct-seg-refs to not wrap-around segments, as it +# greatly increase the speed when running under the Xen hypervisor. +GLIBC_PASSES += xen +DEB_ARCH_REGULAR_PACKAGES += libc6-xen +xen_add-ons = nptl $(add-ons) +xen_configure_target=i686-linux +xen_extra_cflags = -march=i686 -mtune=i686 -O3 -mno-tls-direct-seg-refs +xen_rtlddir = /lib +xen_slibdir = /lib/tls/i686/nosegneg +xen_extra_config_options = $(extra_config_options) --disable-profile + +define xen_extra_pkg_install +mkdir -p debian/libc6-xen/etc/ld.so.conf.d +echo '# This directive teaches ldconfig to search in nosegneg subdirectories' > debian/libc6-xen/etc/ld.so.conf.d/xen.conf +echo '# and cache the DSOs there with extra bit 0 set in their hwcap match' >> debian/libc6-xen/etc/ld.so.conf.d/xen.conf +echo '# fields. In Xen guest kernels, the vDSO tells the dynamic linker to' >> debian/libc6-xen/etc/ld.so.conf.d/xen.conf +echo '# search in nosegneg subdirectories and to match this extra hwcap bit' >> debian/libc6-xen/etc/ld.so.conf.d/xen.conf +echo '# in the ld.so.cache file.' >> debian/libc6-xen/etc/ld.so.conf.d/xen.conf +echo 'hwcap 0 nosegneg' >> debian/libc6-xen/etc/ld.so.conf.d/xen.conf +endef + +# build 64-bit (amd64) alternative library +GLIBC_PASSES += amd64 +DEB_ARCH_REGULAR_PACKAGES += libc6-amd64 libc6-dev-amd64 +libc6-amd64_shlib_dep = libc6-amd64 (>= $(shlib_dep_ver)) +amd64_add-ons = nptl $(add-ons) +amd64_configure_target = x86_64-linux +# __x86_64__ is defined here because Makeconfig uses -undef and the +# /usr/include/asm wrappers need that symbol. +amd64_CC = $(CC) -m64 -D__x86_64__ +amd64_CXX = $(CXX) -m64 -D__x86_64__ +amd64_extra_cflags = -O3 +amd64_extra_config_options = $(extra_config_options) --disable-profile +amd64_slibdir = /lib64 +amd64_libdir = /usr/lib64 + +define amd64_extra_install +cp debian/tmp-amd64/usr/bin/ldd \ + debian/tmp-libc/usr/bin +cp -af debian/tmp-amd64/usr/include/* \ + debian/tmp-libc/usr/include +rm -f debian/tmp-libc/usr/include/gnu/stubs-64.h +endef + +define libc6-dev_extra_pkg_install +mkdir -p debian/libc6-dev/usr/lib/xen +cp -af debian/tmp-xen/usr/lib/*.a \ + debian/libc6-dev/usr/lib/xen +endef + +define libc6-dev-amd64_extra_pkg_install +mkdir -p debian/libc6-dev-amd64/usr/include/gnu +cp -af debian/tmp-amd64/usr/include/gnu/stubs-64.h \ + debian/libc6-dev-amd64/usr/include/gnu +mkdir -p debian/libc6-dev-amd64/usr/include/x86_64-linux-gnu +endef + --- glibc-2.7.orig/debian/sysdeps/m32r.mk +++ glibc-2.7/debian/sysdeps/m32r.mk @@ -0,0 +1,3 @@ +libc_MIN_KERNEL_SUPPORTED = 2.6.9 +libc_add-ons = ports linuxthreads $(add-ons) +libc_extra_config_options = $(extra_config_options) --disable-sanity-checks --- glibc-2.7.orig/debian/sysdeps/ia64.mk +++ glibc-2.7/debian/sysdeps/ia64.mk @@ -0,0 +1 @@ +libc = libc6.1 --- glibc-2.7.orig/debian/sysdeps/m68k.mk +++ glibc-2.7/debian/sysdeps/m68k.mk @@ -0,0 +1,3 @@ +libc_MIN_KERNEL_SUPPORTED = 2.4.1 +libc_add-ons = ports linuxthreads $(add-ons) +libc_extra_config_options = $(extra_config_options) --disable-sanity-checks --without-__thread --without-tls --- glibc-2.7.orig/debian/sysdeps/ppc64.mk +++ glibc-2.7/debian/sysdeps/ppc64.mk @@ -0,0 +1,37 @@ +libc_slibdir = /lib +libc_libdir = /usr/lib +libc_rtlddir = /lib64 + +# /lib64 and /usr/lib64 are provided as symlinks +define libc6_extra_pkg_install +ln -sf /lib debian/$(curpass)/lib64 +ln -sf lib debian/$(curpass)/usr/lib64 +endef + +# build 32-bit (powerpc) alternative library +GLIBC_PASSES += powerpc +DEB_ARCH_REGULAR_PACKAGES += libc6-powerpc libc6-dev-powerpc +libc6-powerpc_shlib_dep = libc6-powerpc (>= $(shlib_dep_ver)) +powerpc_add-ons = nptl $(add-ons) +powerpc_configure_target = powerpc-linux +powerpc_CC = $(CC) -m32 +powerpc_CXX = $(CXX) -m32 +powerpc_extra_cflags = -O3 +powerpc_includedir = /usr/include/powerpc-linux-gnu +powerpc_extra_config_options := $(extra_config_options) --disable-profile +powerpc_rtlddir = /lib +powerpc_slibdir = /lib32 +powerpc_libdir = /usr/lib32 + +define libc6-dev-powerpc_extra_pkg_install +mkdir -p debian/libc6-dev-powerpc/usr/include/gnu +cp -af debian/tmp-powerpc/usr/include/powerpc-linux-gnu/gnu/stubs-32.h \ + debian/libc6-dev-powerpc/usr/include/gnu +mkdir -p debian/libc6-dev-powerpc/usr/include/powerpc-linux-gnu +endef + +# create a symlink for the 32 bit dynamic linker in /lib +define libc6-powerpc_extra_pkg_install +mkdir -p debian/$(curpass)/lib +ln -s /lib32/ld.so.1 debian/$(curpass)/lib +endef --- glibc-2.7.orig/debian/sysdeps/armel.mk +++ glibc-2.7/debian/sysdeps/armel.mk @@ -0,0 +1,7 @@ +libc_add-ons = ports nptl $(add-ons) + +# First kernel version that supports EABI +libc_MIN_KERNEL_SUPPORTED = 2.6.14 + +# Some tests assume a fast machine +TIMEOUTFACTOR=3 --- glibc-2.7.orig/debian/sysdeps/mips.mk +++ glibc-2.7/debian/sysdeps/mips.mk @@ -0,0 +1,35 @@ +libc_add-ons = ports nptl $(add-ons) + +# build 32-bit (n32) alternative library +GLIBC_PASSES += mipsn32 +DEB_ARCH_REGULAR_PACKAGES += libc6-mipsn32 libc6-dev-mipsn32 +mipsn32_add-ons = ports nptl $(add-ons) +mipsn32_configure_target = mips32-linux +mipsn32_CC = $(CC) -mabi=n32 +mipsn32_CXX = $(CXX) -mabi=n32 +libc6-mipsn32_shlib_dep = libc6-mipsn32 (>= $(shlib_dep_ver)) +mipsn32_extra_cflags = -O3 +mipsn32_slibdir = /lib32 +mipsn32_libdir = /usr/lib32 +mipsn32_extra_config_options := $(extra_config_options) --disable-profile + +# build 64-bit alternative library +GLIBC_PASSES += mips64 +DEB_ARCH_REGULAR_PACKAGES += libc6-mips64 libc6-dev-mips64 +mips64_add-ons = ports nptl $(add-ons) +mips64_configure_target = mips64-linux +mips64_CC = $(CC) -mabi=64 +mips64_CXX = $(CXX) -mabi=64 +libc6-mips64_shlib_dep = libc6-mips64 (>= $(shlib_dep_ver)) +mips64_extra_cflags = -O3 +mips64_slibdir = /lib64 +mips64_libdir = /usr/lib64 +mips64_extra_config_options := $(extra_config_options) --disable-profile + +# Need to put a tri-arch aware version of ldd in the base package +define mipsn32_extra_install +cp debian/tmp-mipsn32/usr/bin/ldd debian/tmp-libc/usr/bin +endef + +# Some tests assume a fast machine +TIMEOUTFACTOR=2 --- glibc-2.7.orig/debian/sysdeps/depflags.pl +++ glibc-2.7/debian/sysdeps/depflags.pl @@ -0,0 +1,111 @@ +#!/usr/bin/perl + +# These get export by debian/sysdeps/depflags.mk +$DEB_HOST_ARCH_OS = $ENV{'DEB_HOST_ARCH_OS'}; +$DEB_HOST_ARCH = $ENV{'DEB_HOST_ARCH'}; +$libc = $ENV{'libc'}; +$glibc = $ENV{'glibc'}; +@deptypes = ('Depends', 'Replaces', 'Conflicts', 'Provides', + 'Suggests'); + +# Let's make sure we are sane +if (!defined($DEB_HOST_ARCH_OS) or !defined($DEB_HOST_ARCH) or + !defined($libc) or !defined($glibc)) { + die "Could not get all parameters"; +} + +@ARGV == 1 or die "Usage: depflags "; +$type = $ARGV[0]; + +# OS specific stuff +if ($DEB_HOST_ARCH_OS eq "hurd") { + push @{$libc_dev_c{'Depends'}}, ('gnumach-dev', 'hurd-dev', 'libpthread-stubs0-dev'); + push @{$libc_dev_c{'Replaces'}}, 'glibc2-dev'; + push @{$libc_dev_c{'Conflicts'}}, 'glibc2-dev'; + push @{$libc_c{'Replaces'}}, 'glibc2'; + push @{$libc_c{'Conflicts'}}, 'glibc2'; + push @{$libc_c{'Depends'}}, 'hurd (>= 20070606-1+SVN)'; +} +if ($DEB_HOST_ARCH_OS eq "linux") { + push @{$libc_c{'Suggests'}}, 'locales'; + push @{$libc_dev_c{'Recommends'}}, 'c-compiler'; + push @{$libc_dev_c{'Replaces'}}, ('man-db (<= 2.3.10-41)', 'gettext (<= 0.10.26-1)', + 'ppp (<= 2.2.0f-24)', 'libgdbmg1-dev (<= 1.7.3-24)'); + push @{$libc_dev_c{'Depends'}}, 'linux-libc-dev'; +} +if ($DEB_HOST_ARCH_OS eq "kfreebsd") { + push @{$libc_c{'Suggests'}}, 'locales'; + push @{$libc_c{'Replaces'}}, 'libc0.1-dev (<< 2.3.2.ds1-14)'; + push @{$libc_dev_c{'Recommends'}}, 'c-compiler'; + push @{$libc_dev_c{'Replaces'}}, 'kfreebsd-kernel-headers (<< 0.11)'; + push @{$libc_dev_c{'Depends'}}, 'kfreebsd-kernel-headers (>= 0.11)'; +} + +# ${glibc}-doc is suggested by $libc_c and $libc_dev_c. +push @{$libc_c{'Suggests'}}, "${glibc}-doc"; +push @{$libc_dev_c{'Suggests'}}, "${glibc}-doc"; +push @{$libc_dev_c{'Suggests'}}, "manpages-dev"; + +# nss-db is now seperate +push @{$libc_c{'Recommends'}}, 'libnss-db'; + +# tzdata is now separate +# In Ubuntu, it's a recommends. +push @{$libc_c{'Recommends'}}, 'tzdata'; + +# 2.1.94 required a patch, applied in gcc -15, so c++ compiles will work again +push @{$libc_dev_c{'Conflicts'}}, 'libstdc++2.10-dev (<< 1:2.95.2-15)'; + +# 2.2.2+CVS requires a newer gcc. For non-i386, we just worry about the +# weak-sym patch, since on i386 we need an even newer one because of the +# pic-kludge that breaks libc_nonshared.a inclusion. +if ($DEB_HOST_ARCH =~ m/^i386$/) { + push @{$libc_dev_c{'Conflicts'}}, 'gcc-2.95 (<< 1:2.95.3-9)'; + push @{$libc_c{'Suggests'}}, 'libc6-i686'; +} else { + push @{$libc_dev_c{'Conflicts'}}, 'gcc-2.95 (<< 1:2.95.3-8)'; +} + +# Ubuntu hack to cope with the fact that we shipped /lib64 and /usr/lib64 +# in base-files for a while, and now they're in libc6, same as Debian +if ($DEB_HOST_GNU_TYPE eq "x86_64-linux-gnu") { + push @{$libc_c{'Replaces'}}, 'base-files (<< 3.1.9ubuntu8)'; +} + +## Conflict versions of binutils version that does not support DT_GNU_HASH +push @{$libc_dev_c{'Conflicts'}}, 'binutils (<< 2.17cvs20070426-1)'; + +# Make sure we only have one version of libc-dev installed +push @{$libc_dev_c{'Provides'}}, 'libc-dev'; +push @{$libc_dev_c{'Conflicts'}}, 'libc-dev'; +if ($libc ne "libc6") { + push @{$libc_dev_c{'Provides'}}, 'libc6-dev'; +} + +# Conflict with broken libterm-readline-gnu-perl to avoid #326856. +push @{$libc_c{'Conflicts'}}, 'libterm-readline-gnu-perl (<< 1.15-2)'; + +# Conflict with older versions of tzdata that need tzconfig. +push @{$libc_c{'Conflicts'}}, 'tzdata (<< 2007k-1)'; + +# Depends on libgcc1/libgcc2/libgcc4 +if ($DEB_HOST_ARCH =~ m/^hppa$/) { + push @{$libc_c{'Depends'}}, 'libgcc4'; +} elsif ($DEB_HOST_ARCH =~ m/^m68k$/) { + push @{$libc_c{'Depends'}}, 'libgcc2'; +} else { + push @{$libc_c{'Depends'}}, 'libgcc1'; +} + +if ($type eq "libc") { + %pkg = %libc_c; +} elsif ($type eq "libc_dev") { + %pkg = %libc_dev_c; +} else { + die "Unknown package $type"; +} + +foreach $dep (@deptypes) { + next if not defined($pkg{$dep}); + print "-D${dep}=\"" . join(', ', @{$pkg{$dep}}) . "\" "; +} --- glibc-2.7.orig/debian/sysdeps/sh4.mk +++ glibc-2.7/debian/sysdeps/sh4.mk @@ -0,0 +1,6 @@ +# Some tests assume a fast machine +TIMEOUTFACTOR=4 + +# Requires Linux 2.6.11 for NPTL +libc_MIN_KERNEL_SUPPORTED = 2.6.11 + --- glibc-2.7.orig/debian/sysdeps/hppa.mk +++ glibc-2.7/debian/sysdeps/hppa.mk @@ -0,0 +1,22 @@ +# To build the NPTL version of the glibc on hppa, uncomment the following line +# and comment the two next ones. Note that it is currently not binary +# compatible with the linuxthreads version. +libc_add-ons = ports nptl $(add-ons) + +# We need LWS CAS support +libc_MIN_KERNEL_SUPPORTED = 2.6.9 + +# Some tests assume a fast machine +TIMEOUTFACTOR=2 + +# hppa64 needs symlink /usr/hppa64-linux/include to /usr/include +# (See: Bug#239020) In future we may drop this file with supporting hppa64. + +define libc6-dev_extra_pkg_install +mkdir -p debian/$(curpass)/usr +mkdir -p debian/$(curpass)/usr/hppa64-linux +ln -sf /usr/include debian/$(curpass)/usr/hppa64-linux/include +mkdir -p debian/$(curpass)/usr/hppa64-linux-gnu +ln -sf /usr/include debian/$(curpass)/usr/hppa64-linux-gnu/include +endef + --- glibc-2.7.orig/debian/sysdeps/kfreebsd-i386.mk +++ glibc-2.7/debian/sysdeps/kfreebsd-i386.mk @@ -0,0 +1,16 @@ +ifeq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH)) +CC = gcc-4.3 +CXX = g++-4.3 +endif + +GLIBC_PASSES += i686 +DEB_ARCH_REGULAR_PACKAGES += libc0.1-i686 + +# We use -march=i686 and glibc's i686 routines use cmov, so require it. +# A Debian-local glibc patch adds cmov to the search path. +i686_add-ons = ports linuxthreads $(add-ons) +i686_configure_target=i686-kfreebsd +i686_extra_cflags = -march=i686 -mtune=i686 -O3 +i686_rtlddir = /lib +i686_slibdir = /lib/i686/cmov +i686_extra_config_options = $(extra_config_options) --disable-profile --disable-compatible-utmp --- glibc-2.7.orig/debian/sysdeps/mipsel.mk +++ glibc-2.7/debian/sysdeps/mipsel.mk @@ -0,0 +1,35 @@ +libc_add-ons = ports nptl $(add-ons) + +# build 32-bit (n32) alternative library +GLIBC_PASSES += mipsn32 +DEB_ARCH_REGULAR_PACKAGES += libc6-mipsn32 libc6-dev-mipsn32 +mipsn32_add-ons = ports nptl $(add-ons) +mipsn32_configure_target = mips32-linux +mipsn32_CC = $(CC) -mabi=n32 +mipsn32_CXX = $(CXX) -mabi=n32 +libc6-mipsn32_shlib_dep = libc6-mipsn32 (>= $(shlib_dep_ver)) +mipsn32_extra_cflags = -O3 +mipsn32_slibdir = /lib32 +mipsn32_libdir = /usr/lib32 +mipsn32_extra_config_options := $(extra_config_options) --disable-profile + +# build 64-bit alternative library +GLIBC_PASSES += mips64 +DEB_ARCH_REGULAR_PACKAGES += libc6-mips64 libc6-dev-mips64 +mips64_add-ons = ports nptl $(add-ons) +mips64_configure_target = mips64-linux +mips64_CC = $(CC) -mabi=64 +mips64_CXX = $(CXX) -mabi=64 +libc6-mips64_shlib_dep = libc6-mips64 (>= $(shlib_dep_ver)) +mips64_extra_cflags = -O3 +mips64_slibdir = /lib64 +mips64_libdir = /usr/lib64 +mips64_extra_config_options := $(extra_config_options) --disable-profile + +# Need to put a tri-arch aware version of ldd in the base package +define mipsn32_extra_install +cp debian/tmp-mipsn32/usr/bin/ldd debian/tmp-libc/usr/bin +endef + +# Some tests assume a fast machine +TIMEOUTFACTOR=2 --- glibc-2.7.orig/debian/sysdeps/linux.mk +++ glibc-2.7/debian/sysdeps/linux.mk @@ -0,0 +1,51 @@ +GLIBC_OVERLAYS ?= $(shell ls glibc-linuxthreads* glibc-ports* glibc-libidn*) +MIN_KERNEL_SUPPORTED := 2.6.8 +libc = libc6 + +# NPTL Config +threads = yes +libc_add-ons = nptl $(add-ons) +libc_extra_config_options = $(extra_config_options) + +ifndef LINUX_SOURCE + ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) + LINUX_HEADERS := /usr/include + else + LINUX_HEADERS := /usr/$(DEB_HOST_GNU_TYPE)/include + endif +else + LINUX_HEADERS := $(LINUX_SOURCE)/include +endif + +# Minimum Kernel supported +with_headers = --with-headers=$(shell pwd)/debian/include --enable-kernel=$(call xx,MIN_KERNEL_SUPPORTED) + +KERNEL_HEADER_DIR = $(stamp)mkincludedir +$(stamp)mkincludedir: + rm -rf debian/include + mkdir debian/include + ln -s $(LINUX_HEADERS)/linux debian/include + # Link all asm directories. We can't just link asm and asm-generic + # because of explicit references to and + # . + find $(LINUX_HEADERS) -maxdepth 1 -xtype d -name asm\* \ + -exec ln -s '{}' debian/include ';' + + # To make configure happy if libc6-dev is not installed. + touch debian/include/assert.h + + touch $@ + +# Also to make configure happy. +export CPPFLAGS = -isystem $(shell pwd)/debian/include + +# This round of ugliness decomposes the Linux kernel version number +# into an integer so it can be easily compared and then does so. +CURRENT_KERNEL_VERSION=$(shell uname -r) +define kernel_check +(minimum=$$((`echo $(1) | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 65536 + \2 \* 256 + \3/'`)); \ +current=$$((`echo $(CURRENT_KERNEL_VERSION) | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1 \* 65536 + \2 \* 256 + \3/'`)); \ +if [ $$current -lt $$minimum ]; then \ + false; \ +fi) +endef --- glibc-2.7.orig/debian/sysdeps/armeb.mk +++ glibc-2.7/debian/sysdeps/armeb.mk @@ -0,0 +1 @@ +libc_add-ons = ports nptl $(add-ons) --- glibc-2.7.orig/debian/sysdeps/s390.mk +++ glibc-2.7/debian/sysdeps/s390.mk @@ -0,0 +1,33 @@ +ifeq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH)) +CC = gcc-4.2 +CXX = g++-4.2 +endif + +# Some tests assume a fast machine +TIMEOUTFACTOR=2 + +# build 64-bit (s390x) alternative library +GLIBC_PASSES += s390x +DEB_ARCH_REGULAR_PACKAGES += libc6-s390x libc6-dev-s390x +s390x_add-ons = nptl $(add-ons) +s390x_configure_target = s390x-linux +s390x_CC = $(CC) -m64 +s390x_CXX = $(CXX) -m64 +libc6-s390x_shlib_dep = libc6-s390x (>= $(shlib_dep_ver)) +s390x_extra_cflags = -O3 +s390x_extra_config_options := $(extra_config_options) --disable-profile +s390x_includedir = /usr/include/s390x-linux-gnu +s390x_slibdir = /lib64 +s390x_libdir = /usr/lib64 + +define libc6-dev-s390x_extra_pkg_install +mkdir -p debian/libc6-dev-s390x/usr/include/gnu +cp -af debian/tmp-s390x/usr/include/s390x-linux-gnu/gnu/stubs-64.h \ + debian/libc6-dev-s390x/usr/include/gnu +mkdir -p debian/libc6-dev-s390x/usr/include/s390x-linux-gnu +endef + +define libc6-s390x_extra_pkg_install +mkdir -p debian/$(curpass)/lib +ln -s /lib64/ld64.so.1 debian/$(curpass)/lib +endef --- glibc-2.7.orig/debian/sysdeps/kfreebsd-amd64.mk +++ glibc-2.7/debian/sysdeps/kfreebsd-amd64.mk @@ -0,0 +1,43 @@ +libc_slibdir = /lib +libc_libdir = /usr/lib +libc_rtlddir = /lib + +# /lib64 and /usr/lib64 are provided by glibc instead base-files: #259302. +define libc0.1_extra_pkg_install +ln -sf /lib debian/$(curpass)/lib64 +ln -sf lib debian/$(curpass)/usr/lib64 +endef + +# build 32-bit (i386) alternative library +GLIBC_PASSES += i386 +DEB_ARCH_REGULAR_PACKAGES += libc0.1-i386 libc0.1-dev-i386 +libc0.1-i386_shlib_dep = libc0.1-i386 (>= $(shlib_dep_ver)) + +i386_configure_target = i486-kfreebsd +i386_CC = $(CC) -m32 +i386_CXX = $(CXX) -m32 +i386_add-ons = ports linuxthreads $(add-ons) +i386_extra_cflags = -march=pentium4 -O3 +i386_extra_config_options = $(extra_config_options) --disable-compatible-utmp +i386_includedir = /usr/include/i486-kfreebsd-gnu +i386_rtlddir = /lib +i386_slibdir = /lib32 +i386_libdir = /usr/lib32 +i386_MIN_KERNEL_SUPPORTED = 5.4.0 + +define libc0.1-dev-i386_extra_pkg_install +mkdir -p debian/libc0.1-dev-i386/usr/include/gnu +cp -af debian/tmp-i386/usr/include/i486-kfreebsd-gnu/gnu/stubs-32.h \ + debian/libc0.1-dev-i386/usr/include/gnu +mkdir -p debian/libc0.1-dev-i386/usr/include/sys +cp -af debian/tmp-i386/usr/include/i486-kfreebsd-gnu/sys/vm86.h \ + debian/libc0.1-dev-i386/usr/include/sys +mkdir -p debian/libc0.1-dev-i386/usr/include/i486-kfreebsd-gnu +endef + +define libc0.1-i386_extra_pkg_install +mkdir -p debian/libc0.1-i386/lib +ln -sf /lib32/ld.so.1 debian/libc0.1-i386/lib +ln -sf /lib32 debian/libc0.1-i386/lib32 +endef + --- glibc-2.7.orig/debian/sysdeps/sparc.mk +++ glibc-2.7/debian/sysdeps/sparc.mk @@ -0,0 +1,85 @@ +# build 64-bit (sparc64) alternative library +GLIBC_PASSES += sparc64 +DEB_ARCH_REGULAR_PACKAGES += libc6-sparc64 libc6-dev-sparc64 +sparc64_add-ons = nptl $(add-ons) +sparc64_configure_target=sparc64-linux +sparc64_CC = $(CC) -m64 +sparc64_CXX = $(CXX) -m64 +libc6-sparc64_shlib_dep = libc6-sparc64 (>= $(shlib_dep_ver)) +sparc64_extra_cflags = -O3 +sparc64_extra_config_options = $(extra_config_options) --disable-profile +sparc64_includedir = /usr/include/sparc64-linux-gnu +sparc64_slibdir = /lib64 +sparc64_libdir = /usr/lib64 + +define libc6-dev-sparc64_extra_pkg_install +mkdir -p debian/libc6-dev-sparc64/usr/include/gnu +cp -af debian/tmp-sparc64/usr/include/sparc64-linux-gnu/gnu/stubs-64.h \ + debian/libc6-dev-sparc64/usr/include/gnu +mkdir -p debian/libc6-dev-sparc64/usr/include/sparc64-linux-gnu +endef + +GLIBC_PASSES += sparc64b +DEB_ARCH_REGULAR_PACKAGES += libc6-sparc64b +sparc64b_add-ons = nptl $(add-ons) +sparc64b_configure_build=sparc64-linux +sparc64b_configure_target=sparc64b-linux +sparc64b_CC = $(CC) -m64 -mcpu=ultrasparc3 +sparc64b_CXX = $(CXX) -m64 -mcpu=ultrasparc3 +sparc64b_extra_cflags = -g2 -O3 +sparc64b_extra_config_options = $(extra_config_options) --disable-profile +libc6-sparc64b_shlib_dep = libc6-sparc64b (>= $(shlib_dep_ver)) +sparc64b_slibdir = /lib64/ultra3 + +GLIBC_PASSES += sparc64v +DEB_ARCH_REGULAR_PACKAGES += libc6-sparc64v +sparc64v_add-ons = nptl $(add-ons) +sparc64v_configure_build=sparc64-linux +sparc64v_configure_target=sparc64v-linux +sparc64v_CC = $(CC) -m64 -mcpu=niagara +sparc64v_CXX = $(CXX) -m64 -mcpu=niagara +sparc64v_extra_cflags = -g2 -O3 +sparc64v_extra_config_options = $(extra_config_options) --disable-profile +libc6-sparc64v_shlib_dep = libc6-sparc64v (>= $(shlib_dep_ver)) +sparc64v_slibdir = /lib64/v9v + +GLIBC_PASSES += sparc64v2 +DEB_ARCH_REGULAR_PACKAGES += libc6-sparc64v2 +sparc64v2_add-ons = nptl $(add-ons) +sparc64v2_configure_build=sparc64-linux +sparc64v2_configure_target=sparc64v2-linux +sparc64v2_CC = $(CC) -m64 -mcpu=niagara2 +sparc64v2_CXX = $(CXX) -m64 -mcpu=niagara2 +sparc64v2_extra_cflags = -g2 -O3 +sparc64v2_extra_config_options = $(extra_config_options) --disable-profile +libc6-sparc64v2_shlib_dep = libc6-sparc64v2 (>= $(shlib_dep_ver)) +sparc64v2_slibdir = /lib64/v9v2 + +# build a sparcv9b optimized library +GLIBC_PASSES += sparcv9b +DEB_ARCH_REGULAR_PACKAGES += libc6-sparcv9b +sparcv9b_add-ons = nptl $(add-ons) +sparcv9b_configure_target=sparcv9b-linux +sparcv9b_configure_build=sparcv9b-linux +sparcv9b_extra_cflags = -mtune=ultrasparc3 -O3 +sparcv9b_extra_config_options = $(extra_config_options) --disable-profile +sparcv9b_rtlddir = /lib +sparcv9b_slibdir = /lib/ultra3 + +GLIBC_PASSES += sparcv9v +DEB_ARCH_REGULAR_PACKAGES += libc6-sparcv9v +sparcv9v_add-ons = nptl $(add-ons) +sparcv9v_configure_target=sparcv9v-linux +sparcv9v_extra_cflags = -O3 -mtune=niagara +sparcv9v_extra_config_options = $(extra_config_options) --disable-profile --with-tls --with-__thread +sparcv9v_rtlddir = /lib +sparcv9v_slibdir = /lib/v9v + +GLIBC_PASSES += sparcv9v2 +DEB_ARCH_REGULAR_PACKAGES += libc6-sparcv9v2 +sparcv9v2_add-ons = nptl $(add-ons) +sparcv9v2_configure_target=sparcv9v2-linux +sparcv9v2_extra_cflags = -O3 -mtune=niagara2 +sparcv9v2_extra_config_options = $(extra_config_options) --disable-profile --with-tls --with-__thread +sparcv9v2_rtlddir = /lib +sparcv9v2_slibdir = /lib/v9v2 --- glibc-2.7.orig/debian/sysdeps/alpha.mk +++ glibc-2.7/debian/sysdeps/alpha.mk @@ -0,0 +1,15 @@ +libc = libc6.1 + +# Requires Linux 2.6.9 for NPTL +libc_MIN_KERNEL_SUPPORTED = 2.6.9 + +# build an ev67 optimized library +GLIBC_PASSES += alphaev67 +DEB_ARCH_REGULAR_PACKAGES += libc6.1-alphaev67 +alphaev67_MIN_KERNEL_SUPPORTED = 2.6.9 +alphaev67_add-ons = nptl $(add-ons) +alphaev67_configure_target = alphaev67-linux +alphaev67_extra_cflags = -mcpu=ev67 -mtune=ev67 -O2 +alphaev67_extra_config_options = $(extra_config_options) --disable-profile +alphaev67_rtlddir = /lib +alphaev67_slibdir = /lib/ev67 --- glibc-2.7.orig/debian/sysdeps/arm.mk +++ glibc-2.7/debian/sysdeps/arm.mk @@ -0,0 +1,7 @@ +libc_add-ons = ports nptl $(add-ons) + +# We need __ARM_NR_set_tls syscall +libc_MIN_KERNEL_SUPPORTED = 2.6.12 + +# Some tests assume a fast machine +TIMEOUTFACTOR=4 --- glibc-2.7.orig/debian/sysdeps/amd64.mk +++ glibc-2.7/debian/sysdeps/amd64.mk @@ -0,0 +1,48 @@ +libc_add_ons = nptl $(add-ons) +libc_extra_cflags = -O3 +libc_slibdir = /lib +libc_libdir = /usr/lib +libc_rtlddir = /lib64 + +# /lib64 and /usr/lib64 are provided by glibc instead base-files: #259302. +define libc6_extra_pkg_install +ln -sf /lib debian/$(curpass)/lib64 +ln -sf lib debian/$(curpass)/usr/lib64 +endef + +# build 32-bit (i386) alternative library +GLIBC_PASSES += i386 +DEB_ARCH_REGULAR_PACKAGES += libc6-i386 libc6-dev-i386 +libc6-i386_shlib_dep = libc6-i386 (>= $(shlib_dep_ver)) + +# This section is quite different in Ubuntu. +# +# This only looks like i386. It's really i686, fine for compatability +i386_add-ons = nptl $(add-ons) +i386_configure_target = i686-linux +i386_CC = $(BUILD_CC) -m32 +i386_CXX = $(BUILD_CXX) -m32 +i386_MAKEFLAGS = MAKEFLAGS="gconvdir=/usr/lib32/gconv" +i386_extra_cflags = -march=i686 -mtune=generic -O3 +i386_extra_config_options = $(extra_config_options) --disable-profile +i386_includedir = /usr/include/i486-linux-gnu +i386_slibdir = /lib32 +i386_libdir = /usr/lib32 + +define libc6-dev-i386_extra_pkg_install +mkdir -p debian/libc6-dev-i386/usr/include/gnu +cp -af debian/tmp-i386/usr/include/i486-linux-gnu/gnu/stubs-32.h \ + debian/libc6-dev-i386/usr/include/gnu +mkdir -p debian/libc6-dev-i386/usr/include/sys +cp -af debian/tmp-i386/usr/include/i486-linux-gnu/sys/elf.h \ + debian/libc6-dev-i386/usr/include/sys +cp -af debian/tmp-i386/usr/include/i486-linux-gnu/sys/vm86.h \ + debian/libc6-dev-i386/usr/include/sys +mkdir -p debian/libc6-dev-i386/usr/include/i486-linux-gnu +endef + +define libc6-i386_extra_pkg_install +mkdir -p debian/libc6-i386/lib +ln -s /lib32/ld-linux.so.2 debian/libc6-i386/lib/ld-linux.so.2 +endef + --- glibc-2.7.orig/debian/sysdeps/depflags.mk +++ glibc-2.7/debian/sysdeps/depflags.mk @@ -0,0 +1,25 @@ +depflags = libc=$(libc) glibc=glibc \ + DEB_HOST_ARCH_OS=$(DEB_HOST_ARCH_OS) \ + DEB_HOST_ARCH=$(DEB_HOST_ARCH) \ + perl debian/sysdeps/depflags.pl + +libc_control_flags = $(shell $(depflags) libc) +libc_dev_control_flags = $(shell $(depflags) libc_dev) + +# If there's a -DDepends for libc-dev, add this to it. If there isn't +# then the control file's depends line (which contains this) will be used. +# This is gross and another reason why depflags.pl must die. +libc_dev_dep = $(libc) (= $(DEB_VERSION)), +libc_dev_control_flags := $(subst Depends=",Depends="$(libc_dev_dep) ,$(libc_dev_control_flags)) + +$(libc)_control_flags = $(libc_control_flags) +$(libc)-dev_control_flags = $(libc_dev_control_flags) + +test_depflags: + @echo + @echo "$(libc):" + @echo ' $(libc_control_flags)' + @echo + @echo "$(libc)-dev:" + @echo ' $(libc_dev_control_flags)' + @echo --- glibc-2.7.orig/debian/shlibver +++ glibc-2.7/debian/shlibver @@ -0,0 +1 @@ +shlib_dep_ver = 2.7-1 --- glibc-2.7.orig/debian/debhelper.in/libc-otherbuild.install +++ glibc-2.7/debian/debhelper.in/libc-otherbuild.install @@ -0,0 +1,5 @@ +# This file is used for making NPTL and other +# optimized libraries. +TMPDIR/SLIBDIR/*.so* SLIBDIR + +log-test-*-FLAVOR usr/share/doc/LIBC-FLAVOR --- glibc-2.7.orig/debian/debhelper.in/libc.postrm +++ glibc-2.7/debian/debhelper.in/libc.postrm @@ -0,0 +1,48 @@ +#! /bin/sh +set -e + +if [ "$1" = remove ]; then + if command -v suidunregister >/dev/null 2>&1 && [ -e /etc/suid.conf ]; then + if [ -x /usr/lib/pt_chown ]; then + suidunregister -s LIBC /usr/lib/pt_chown + elif [ -x /usr/libexec/pt_chown ]; then + suidunregister -s LIBC /usr/libexec/pt_chown + fi + fi + # Created in the postinst by iconvconfig + rm -f /usr/lib/gconv/gconv-modules.cache || true +fi + +if [ "$1" = upgrade ]; then + case $(dpkg --print-architecture) in + i386|sparc) + if dpkg --compare-versions "$2" lt 2.3.4-3; then + # Make sure the downgraded package does not support + # ld.so.hwcappkgs mechanism on i686 and sparc. + rm -f /etc/ld.so.hwcappkgs + echo "downgrade-to-old-glibc" >> /etc/ld.so.nohwcap + + echo + echo You are trying to downgrade to glibc 2.3.4-2 or earlier. + echo Such old packages do not support the version mismatch between + echo standard libc and hwcap libc using /etc/ld.so.hwcappkgs + echo on i386 and sparc. To be safe from library inconsistency, + echo hwcap libraries are disabled until glibc 2.3.4-3 or later + echo is installed. + echo + fi + ;; + esac +fi + +if [ "$1" = deconfigure ]; then + :; # blah, do something useful with ldso +fi + +#if [ "$1" = purge ]; then +# update-rc.d mountkernfs remove > /dev/null +#fi + +#DEBHELPER# + +exit 0 --- glibc-2.7.orig/debian/debhelper.in/libc-dev-alt.lintian +++ glibc-2.7/debian/debhelper.in/libc-dev-alt.lintian @@ -0,0 +1,4 @@ +# Those file are actually .o files not package in a ar archive, and +# thus should not be stripped +LIBC-dev-FLAVOR: unstripped-binary-or-object .LIBDIR/libieee.a +LIBC-dev-FLAVOR: unstripped-binary-or-object .LIBDIR/libmcheck.a --- glibc-2.7.orig/debian/debhelper.in/locales-all.NEWS +++ glibc-2.7/debian/debhelper.in/locales-all.NEWS @@ -0,0 +1,8 @@ +locales-all (2.7-1) unstable; urgency=low + + * Starting with locales 2.7-1 the deprecated no_NO locale has been + removed. Users who have not yet switched to nb_NO should do it + after the installation of this package. + + -- Aurelien Jarno Mon, 26 Nov 2007 18:56:32 +0100 + --- glibc-2.7.orig/debian/debhelper.in/libc-pic.dirs +++ glibc-2.7/debian/debhelper.in/libc-pic.dirs @@ -0,0 +1 @@ +usr/lib/libc_pic --- glibc-2.7.orig/debian/debhelper.in/nscd.init +++ glibc-2.7/debian/debhelper.in/nscd.init @@ -0,0 +1,125 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: nscd +# Required-Start: $remote_fs +# Required-Stop: $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Starts the Name Service Cache Daemon +### END INIT INFO + +# +# nscd: Starts the Name Service Cache Daemon +# +# description: This is a daemon which handles passwd and group lookups +# for running programs and caches the results for the next +# query. You should start this daemon only if you use +# slow Services like NIS or NIS+ + +# Sanity checks. + +NAME="nscd" +DESC="Name Service Cache Daemon" +DAEMON="/usr/sbin/nscd" +PIDFILE="/var/run/nscd/nscd.pid" + +# Sanity checks. +umask 022 +[ -f /etc/nscd.conf ] || exit 0 +[ -x "$DAEMON" ] || exit 0 +[ -d /var/run/nscd ] || mkdir -p /var/run/nscd +. /lib/lsb/init-functions + +start_nscd() +{ + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # 2 if daemon could not be started + start-stop-daemon --start --quiet --pidfile "$PIDFILE" --exec "$DAEMON" || return 2 +} + +stop_nscd() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + + # we try to stop using nscd --shutdown, that fails also if nscd is not present. + # in that case, fallback to "good old methods" + RETVAL=0 + if ! $DAEMON --shutdown; then + start-stop-daemon --stop --quiet --pidfile "$PIDFILE" --name "$NAME" --test > /dev/null + RETVAL="$?" + [ "$?" -ne 0 -a "$?" -ne 1 ] && return 2 + fi + + # Wait for children to finish too + start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec "$DAEMON" > /dev/null + [ "$?" -ne 0 -a "$?" -ne 1 ] && return 2 + rm -f "$PIDFILE" + return "$RETVAL" +} + +status() +{ + # Return + # 0 if daemon is stopped + # 1 if daemon is running + start-stop-daemon --start --quiet --pidfile "$PIDFILE" --exec "$DAEMON" --test > /dev/null || return 1 + return 0 +} + +case "$1" in +start) + log_daemon_msg "Starting $DESC" "$NAME" + start_nscd + case "$?" in + 0) log_end_msg 0 ; exit 0 ;; + 1) log_warning_msg " (already running)." ; exit 0 ;; + *) log_end_msg 1 ; exit 1 ;; + esac + ;; +stop) + log_daemon_msg "Stopping $DESC" "$NAME" + stop_nscd + case "$?" in + 0) log_end_msg 0 ; exit 0 ;; + 1) log_warning_msg " (not running)." ; exit 0 ;; + *) log_end_msg 1 ; exit 1 ;; + esac + ;; +restart|force-reload|reload) + log_daemon_msg "Restarting $DESC" "$NAME" + stop_nscd + $DAEMON --invalidate passwd --invalidate group --invalidate hosts + case "$?" in + 0|1) + start_nscd + case "$?" in + 0) log_end_msg 0 ; exit 0 ;; + 1) log_failure_msg " (failed -- old process is still running)." ; exit 1 ;; + *) log_failure_msg " (failed to start)." ; exit 1 ;; + esac + ;; + *) + log_failure_msg " (failed to stop)." + exit 1 + ;; + esac + ;; +status) + log_daemon_msg "Status of $DESC service: " + status + case "$?" in + 0) log_failure_msg "not running." ; exit 1 ;; + 1) log_success_msg "running." ; exit 0 ;; + esac + ;; +*) + echo "Usage: /etc/init.d/$NAME {start|stop|reload|force-reload|restart|status}" >&2 + exit 1 + ;; +esac + --- glibc-2.7.orig/debian/debhelper.in/libc-dev.lintian +++ glibc-2.7/debian/debhelper.in/libc-dev.lintian @@ -0,0 +1,6 @@ +# Those file are actually .o files not package in a ar archive, and +# thus should not be stripped +LIBC-dev: unstripped-binary-or-object ./usr/lib/libieee.a +LIBC-dev: unstripped-binary-or-object ./usr/lib/libmcheck.a +LIBC-dev: unstripped-binary-or-object ./usr/lib/xen/libieee.a +LIBC-dev: unstripped-binary-or-object ./usr/lib/xen/libmcheck.a --- glibc-2.7.orig/debian/debhelper.in/locales-all.prerm +++ glibc-2.7/debian/debhelper.in/locales-all.prerm @@ -0,0 +1,21 @@ +#!/bin/sh +set -e + +case "$1" in + remove|purge) + # Is locales installed? + if [ -x /usr/sbin/locale-gen ] ; then + # If yes, generate locales selected in the debconf question + /usr/sbin/locale-gen + else + # If not, clean the locales + rm -f /usr/lib/locale/locale-archive + fi + ;; + *) + ;; +esac + +#DEBHELPER# + +exit 0 --- glibc-2.7.orig/debian/debhelper.in/glibc-doc.install +++ glibc-2.7/debian/debhelper.in/glibc-doc.install @@ -0,0 +1 @@ +DEB_SRCDIR/manual/libc/*.html usr/share/doc/glibc-doc/html --- glibc-2.7.orig/debian/debhelper.in/libc-dev.manpages +++ glibc-2.7/debian/debhelper.in/libc-dev.manpages @@ -0,0 +1,4 @@ +debian/local/manpages/gencat.1 +debian/local/manpages/mtrace.1 +debian/local/manpages/rpcgen.1 +debian/local/manpages/sprof.1 --- glibc-2.7.orig/debian/debhelper.in/glibc-source.install +++ glibc-2.7/debian/debhelper.in/glibc-source.install @@ -0,0 +1,5 @@ +debian/patches /usr/src/glibc +glibc-*.tar.* /usr/src/glibc +glibc-libidn-*.tar.* /usr/src/glibc +glibc-linuxthreads-*.tar.* /usr/src/glibc +glibc-ports-*.tar.* /usr/src/glibc --- glibc-2.7.orig/debian/debhelper.in/libc-otherbuild.lintian +++ glibc-2.7/debian/debhelper.in/libc-otherbuild.lintian @@ -0,0 +1,3 @@ +# libpthread must be stripped specially; GDB needs the non-dynamic +# symbol table in order to load the thread debugging library. +LIBC-FLAVOR: unstripped-binary-or-object .SLIBDIR/libpthread-2.5.so --- glibc-2.7.orig/debian/debhelper.in/libc-dbg.install +++ glibc-2.7/debian/debhelper.in/libc-dbg.install @@ -0,0 +1 @@ +debian/tmp-libc/lib/*.so* usr/lib/debug --- glibc-2.7.orig/debian/debhelper.in/libc.triggers +++ glibc-2.7/debian/debhelper.in/libc.triggers @@ -0,0 +1 @@ +interest ldconfig --- glibc-2.7.orig/debian/debhelper.in/nscd.dirs +++ glibc-2.7/debian/debhelper.in/nscd.dirs @@ -0,0 +1,2 @@ +var/cache/nscd +var/run/nscd --- glibc-2.7.orig/debian/debhelper.in/locales.prerm +++ glibc-2.7/debian/debhelper.in/locales.prerm @@ -0,0 +1,17 @@ +#!/bin/sh +set -e + +case "$1" in + remove|purge) + if ! [ -f /usr/lib/locales-all/supported.tar.lzma ] ; then + # If locales-all is not installed, clean the locales + rm -f /usr/lib/locale/locale-archive + fi + ;; + *) + ;; +esac + +#DEBHELPER# + +exit 0 --- glibc-2.7.orig/debian/debhelper.in/glibc-doc.docs +++ glibc-2.7/debian/debhelper.in/glibc-doc.docs @@ -0,0 +1 @@ +DEB_SRCDIR/ChangeLog* --- glibc-2.7.orig/debian/debhelper.in/libc-prof.install +++ glibc-2.7/debian/debhelper.in/libc-prof.install @@ -0,0 +1 @@ +debian/tmp-libc/usr/lib/*_p.a usr/lib --- glibc-2.7.orig/debian/debhelper.in/libc-dev-alt.install +++ glibc-2.7/debian/debhelper.in/libc-dev-alt.install @@ -0,0 +1,21 @@ +# This file is used for making biarch libraries development packages. +TMPDIR/LIBDIR/libanl.a LIBDIR +TMPDIR/LIBDIR/libBrokenLocale.a LIBDIR +TMPDIR/LIBDIR/libbsd-compat.a LIBDIR +TMPDIR/LIBDIR/libc.a LIBDIR +TMPDIR/LIBDIR/libc_nonshared.a LIBDIR +TMPDIR/LIBDIR/libcrypt.a LIBDIR +TMPDIR/LIBDIR/libdl.a LIBDIR +TMPDIR/LIBDIR/libg.a LIBDIR +TMPDIR/LIBDIR/libieee.a LIBDIR +TMPDIR/LIBDIR/libm.a LIBDIR +TMPDIR/LIBDIR/libmcheck.a LIBDIR +TMPDIR/LIBDIR/libnsl.a LIBDIR +TMPDIR/LIBDIR/libpthread.a LIBDIR +TMPDIR/LIBDIR/libpthread_nonshared.a LIBDIR +TMPDIR/LIBDIR/libresolv.a LIBDIR +TMPDIR/LIBDIR/librt.a LIBDIR +TMPDIR/LIBDIR/libutil.a LIBDIR + +TMPDIR/LIBDIR/*.o LIBDIR +TMPDIR/LIBDIR/*.so LIBDIR --- glibc-2.7.orig/debian/debhelper.in/libc.docs +++ glibc-2.7/debian/debhelper.in/libc.docs @@ -0,0 +1,10 @@ +DEB_SRCDIR/BUGS +DEB_SRCDIR/FAQ +DEB_SRCDIR/NEWS +DEB_SRCDIR/NOTES +DEB_SRCDIR/PROJECTS +DEB_SRCDIR/README +DEB_SRCDIR/hesiod/README.hesiod +DEB_SRCDIR/CONFORMANCE +DEB_SRCDIR/NAMESPACE +debian/TODO --- glibc-2.7.orig/debian/debhelper.in/nscd.NEWS +++ glibc-2.7/debian/debhelper.in/nscd.NEWS @@ -0,0 +1,11 @@ +glibc (2.5-5) unstable; urgency=low + + Since this release, hosts caching in nscd is off by default: for some of the + libc calls (gethostby* calls) nscd does not respect the DNS TTLs. It can + lead to system lockups (e.g. if you are using pam-ldap and change the IP of + your authentication server) hence is not considered safe. + + See debian bug #335476 and how upstream answered to that in + http://sourceware.org/bugzilla/show_bug.cgi?id=4428. + + -- Pierre Habouzit Sat, 28 Apr 2007 11:10:56 +0200 --- glibc-2.7.orig/debian/debhelper.in/locales.postrm +++ glibc-2.7/debian/debhelper.in/locales.postrm @@ -0,0 +1,14 @@ +#!/bin/sh +set -e + +case "$1" in + purge) + rm -f /etc/locale.gen + ;; + *) + ;; +esac + +#DEBHELPER# + +exit 0 --- glibc-2.7.orig/debian/debhelper.in/locales.NEWS +++ glibc-2.7/debian/debhelper.in/locales.NEWS @@ -0,0 +1,28 @@ +locales (2.7-3) unstable; urgency=low + + * Starting with locales 2.7-3, users can provide their own locales in + /usr/local/share/i18n. See /usr/share/doc/locales/README.Debian for + more information. + + -- Aurelien Jarno Thu 29 Nov 2007 18:54:12 +0100 + +locales (2.7-1) unstable; urgency=low + + * Starting with locales 2.7-1 the deprecated no_NO locale has been + removed. The switch to the nb_NO locale should be done automatically + by this package, however some applications may have to be restarted + in order to recognize the new locale settings. + + -- Aurelien Jarno Mon, 26 Nov 2007 18:56:32 +0100 + +locales (2.3.6-7) unstable; urgency=low + + * Locale variables are now stored in /etc/default/locale and no more + /etc/environment. The reason is that Debian Policy forbids modifying + configuration files of other packages, and /etc/environment is a + configuration file for PAM. + Make sure to remove old definitions from /etc/environment, this file + is no more modified for the reason explained above. + + -- Denis Barbier Tue, 11 Apr 2006 21:24:13 +0200 + --- glibc-2.7.orig/debian/debhelper.in/libc.lintian +++ glibc-2.7/debian/debhelper.in/libc.lintian @@ -0,0 +1,18 @@ +# ldconfig must be executable even when the libc is not configured, and +# thus must be linked statically +LIBC: statically-linked-binary ./sbin/ldconfig + +# libpthread must be stripped specially; GDB needs the non-dynamic +# symbol table in order to load the thread debugging library. +LIBC: unstripped-binary-or-object ./lib/libpthread-2.5.so + +# ld.so must be executable, otherwise the system will not work +LIBC: shlib-with-executable-bit lib/ld-2.5.so 0755 + +# pt_chown must be setuid root, otherwise non-root users won't be able +# to login +LIBC: setuid-binary usr/lib/pt_chown 4755 root/root + +# It is normal that the ELF dynamic linker does not need any other +# library +LIBC: shared-lib-without-dependency-information ./lib/ld-2.5.so --- glibc-2.7.orig/debian/debhelper.in/libc-udeb.install +++ glibc-2.7/debian/debhelper.in/libc-udeb.install @@ -0,0 +1,14 @@ +# FIXME: someday we may need to handle installing into non-lib. +debian/tmp-libc/lib/ld*.so* lib +debian/tmp-libc/lib/libm-*.so* lib +debian/tmp-libc/lib/libm.so* lib +debian/tmp-libc/lib/libdl*.so* lib +debian/tmp-libc/lib/libresolv*.so* lib +debian/tmp-libc/lib/libc-*.so* lib +debian/tmp-libc/lib/libc.so* lib +debian/tmp-libc/lib/libutil* lib +debian/tmp-libc/lib/libcrypt* lib +debian/tmp-libc/lib/librt*.so* lib +# FIXME: This should be with_threads arch's only. +debian/tmp-libc/lib/libpthread*.so* lib + --- glibc-2.7.orig/debian/debhelper.in/locales.manpages +++ glibc-2.7/debian/debhelper.in/locales.manpages @@ -0,0 +1,4 @@ +debian/local/manpages/locale-gen.8 +debian/local/manpages/locale.gen.5 +debian/local/manpages/update-locale.8 +debian/local/manpages/validlocale.8 --- glibc-2.7.orig/debian/debhelper.in/libc-otherbuild.postinst +++ glibc-2.7/debian/debhelper.in/libc-otherbuild.postinst @@ -0,0 +1,12 @@ +#!/bin/sh + +set -e + +if [ "$1" = "configure" ] +then + # /etc/ld.so.nohwcap code: NOHWCAP +fi + +#DEBHELPER# + +exit 0 --- glibc-2.7.orig/debian/debhelper.in/libnss-dns-udeb.install +++ glibc-2.7/debian/debhelper.in/libnss-dns-udeb.install @@ -0,0 +1,3 @@ +# FIXME: someday we may need to handle installing into non-lib. +debian/tmp-libc/lib/libnss_dns*.so* lib + --- glibc-2.7.orig/debian/debhelper.in/locales.postinst +++ glibc-2.7/debian/debhelper.in/locales.postinst @@ -0,0 +1,71 @@ +#! /bin/sh +set -e + +LG="/etc/locale.gen" +EE="/etc/default/locale" + +# List of locales provided by the current version +PROVIDED_LOCALES="__PROVIDED_LOCALES__" + +# List of locales provided by the user +if [ -f /usr/local/share/i18n/SUPPORTED ] ; then + USER_LOCALES="$(sed -e 's/#.*//g' /usr/local/share/i18n/SUPPORTED)" +fi + +# List of supported locales +SUPPORTED_LOCALES=$(echo "$PROVIDED_LOCALES$USER_LOCALES" | sed -e 's/^ *//g' -e 's/ *$//g' | sort -u | tr '\n' ',' | sed -e 's/, */, /g' -e 's/, *$//g') + + +if [ "$1" = configure ]; then + + . /usr/share/debconf/confmodule + db_version 2.0 + + db_get locales/locales_to_be_generated && SELECTED_LOCALES=$RET + db_get locales/default_environment_locale && DEFAULT_ENVIRONMENT="$RET" + + if [ "$SELECTED_LOCALES" = "All locales" ]; then + [ -e $LG ] && rm -f $LG + ln -s /usr/share/i18n/SUPPORTED $LG + else + cat > $LG << EOF +# This file lists locales that you wish to have built. You can find a list +# of valid supported locales at /usr/share/i18n/SUPPORTED, and you can add +# user defined locales to /usr/locale/share/i18n/SUPPORTED. If you change +# this file, you need to rerun locale-gen. +# + +EOF + IFS="," + for LOCALE in $SUPPORTED_LOCALES ; do + LOCALE=${LOCALE## } + if echo "$SELECTED_LOCALES" | grep -q "\b$LOCALE\b" ; then + echo "$LOCALE" >> $LG + else + echo "# $LOCALE" >> $LG + fi + done + IFS=" " + fi + # Update requested locales if locales-all is not installed + if [ -f /usr/lib/locales-all/supported.tar.lzma ] ; then + echo "locales-all installed, skipping locales generation" + else + /usr/sbin/locale-gen + fi + + if ! [ -e $EE ] || [ -n "$DEBCONF_RECONFIGURE" ] ; then + # Set default LANG environment variable + if [ -e $EE ]; then + # Remove previous definitions + /usr/sbin/update-locale --no-checks LANG + fi + if [ -n "$DEFAULT_ENVIRONMENT" ] && [ "$DEFAULT_ENVIRONMENT" != "None" ]; then + /usr/sbin/update-locale "LANG=$DEFAULT_ENVIRONMENT" + fi + fi +fi + +#DEBHELPER# + +exit 0 --- glibc-2.7.orig/debian/debhelper.in/libc-alt.install +++ glibc-2.7/debian/debhelper.in/libc-alt.install @@ -0,0 +1,6 @@ +# This file is used for biarch libraries. +TMPDIR/SLIBDIR/*.so* SLIBDIR +TMPDIR/LIBDIR/gconv/*.so* LIBDIR/gconv/ +TMPDIR/LIBDIR/gconv/gconv-modules LIBDIR/gconv + +log-test-*-FLAVOR usr/share/doc/LIBC-FLAVOR --- glibc-2.7.orig/debian/debhelper.in/libc-alt-dev.postinst +++ glibc-2.7/debian/debhelper.in/libc-alt-dev.postinst @@ -0,0 +1,18 @@ +#!/bin/sh + +set -e +export LC_ALL=C + +type=$1 +preversion=$2 + +if [ `dpkg --print-installation-architecture` = "powerpc" ]; then + if dpkg --compare-versions "$preversion" lt 2.4-1ubuntu7; then + if [ ! -L /usr/include/ppc64-linux-gnu ]; then + rm -rf /usr/include/ppc64-linux-gnu + ln -s /usr/include/powerpc64-linux-gnu /usr/include/ppc64-linux-gnu + fi + fi +fi + +#DEBHELPER# --- glibc-2.7.orig/debian/debhelper.in/locales.install +++ glibc-2.7/debian/debhelper.in/locales.install @@ -0,0 +1,8 @@ +debian/tmp-libc/usr/share/locale/[a-z][a-z] usr/share/locale +debian/tmp-libc/usr/share/locale/[a-z][a-z]_[A-Z][A-Z] usr/share/locale +debian/tmp-libc/usr/share/locale/locale.alias /etc +debian/tmp-libc/usr/share/i18n/* usr/share/i18n +debian/local/usr_sbin/locale-gen usr/sbin +debian/local/usr_sbin/update-locale usr/sbin +debian/local/usr_sbin/validlocale usr/sbin +DEB_SRCDIR/localedata/README usr/share/doc/locales --- glibc-2.7.orig/debian/debhelper.in/locales.dirs +++ glibc-2.7/debian/debhelper.in/locales.dirs @@ -0,0 +1 @@ +usr/lib/locale --- glibc-2.7.orig/debian/debhelper.in/nscd.manpages +++ glibc-2.7/debian/debhelper.in/nscd.manpages @@ -0,0 +1,2 @@ +debian/local/manpages/nscd.conf.5 +debian/local/manpages/nscd.8 --- glibc-2.7.orig/debian/debhelper.in/locales-all.dirs +++ glibc-2.7/debian/debhelper.in/locales-all.dirs @@ -0,0 +1 @@ +usr/lib/locales-all --- glibc-2.7.orig/debian/debhelper.in/libnss-files-udeb.install +++ glibc-2.7/debian/debhelper.in/libnss-files-udeb.install @@ -0,0 +1,3 @@ +# FIXME: someday we may need to handle installing into non-lib. +debian/tmp-libc/lib/libnss_files*.so* lib + --- glibc-2.7.orig/debian/debhelper.in/locales.templates +++ glibc-2.7/debian/debhelper.in/locales.templates @@ -0,0 +1,27 @@ +Template: locales/locales_to_be_generated +Type: multiselect +#flag:translate:1 +__Choices: All locales, ${locales} +_Description: Locales to be generated: + Locales are a framework to switch between multiple languages and + allow users to use their language, country, characters, collation + order, etc. + . + Please choose which locales to generate. UTF-8 locales should be + chosen by default, particularly for new installations. Other + character sets may be useful for backwards compatibility with older + systems and software. + +Template: locales/default_environment_locale +Type: select +#flag:translate:1 +__Choices: None, ${locales} +Default: None +_Description: Default locale for the system environment: + Many packages in Debian use locales to display text in the correct + language for the user. You can choose a default locale for the system + from the generated locales. + . + This will select the default language for the entire system. If this + system is a multi-user system where not all users are able to speak + the default language, they will experience difficulties. --- glibc-2.7.orig/debian/debhelper.in/glibc-doc.doc-base +++ glibc-2.7/debian/debhelper.in/glibc-doc.doc-base @@ -0,0 +1,24 @@ +Document: glibc-manual +Title: The GNU C Library Reference Manual +Author: Sandra Loosemore with Richard M. Stallman, Roland McGrath, + Andrew Oram, and Ulrich Drepper +Abstract: The GNU C Library Reference Manual + The GNU C library, described in this document, defines all of the + library functions that are specified by the ISO C standard, as well as + additional features specific to POSIX and other derivatives of the Unix + operating system, and extensions specific to the GNU system. + . + The purpose of this manual is to tell you how to use the facilities + of the GNU library. We have mentioned which features belong to which + standards to help you identify things that are potentially non-portable + to other systems. But the emphasis in this manual is not on strict + portability. +Section: Apps/Programming + +Format: info +Index: /usr/share/info/libc.info.gz +Files: /usr/share/info/libc.* + +Format: HTML +Index: /usr/share/doc/glibc-doc/html/index.html +Files: /usr/share/doc/glibc-doc/html/* --- glibc-2.7.orig/debian/debhelper.in/libc-dev.install.hurd-i386 +++ glibc-2.7/debian/debhelper.in/libc-dev.install.hurd-i386 @@ -0,0 +1,27 @@ +debian/tmp-libc/usr/bin/gencat usr/bin +debian/tmp-libc/usr/bin/mtrace usr/bin +debian/tmp-libc/usr/bin/rpcgen usr/bin +debian/tmp-libc/usr/bin/sprof usr/bin + +debian/tmp-libc/usr/lib/libBrokenLocale.a usr/lib +debian/tmp-libc/usr/lib/libbsd-compat.a usr/lib +debian/tmp-libc/usr/lib/libc.a usr/lib +debian/tmp-libc/usr/lib/libcrt.a usr/lib +debian/tmp-libc/usr/lib/libcrt_nonshared.a usr/lib +debian/tmp-libc/usr/lib/libcrypt.a usr/lib +debian/tmp-libc/usr/lib/libdl.a usr/lib +debian/tmp-libc/usr/lib/libg.a usr/lib +debian/tmp-libc/usr/lib/libhurduser.a usr/lib +debian/tmp-libc/usr/lib/libieee.a usr/lib +debian/tmp-libc/usr/lib/libm.a usr/lib +debian/tmp-libc/usr/lib/libmachuser.a usr/lib +debian/tmp-libc/usr/lib/libmcheck.a usr/lib +debian/tmp-libc/usr/lib/libnsl.a usr/lib +debian/tmp-libc/usr/lib/libresolv.a usr/lib +debian/tmp-libc/usr/lib/librpcsvc.a usr/lib +debian/tmp-libc/usr/lib/librt.a usr/lib +debian/tmp-libc/usr/lib/libutil.a usr/lib + +debian/tmp-libc/usr/lib/*.o usr/lib +debian/tmp-libc/usr/lib/*.so usr/lib +debian/tmp-libc/usr/include/* usr/include --- glibc-2.7.orig/debian/debhelper.in/libc.dirs +++ glibc-2.7/debian/debhelper.in/libc.dirs @@ -0,0 +1,2 @@ +etc/init.d +etc/ld.so.conf.d --- glibc-2.7.orig/debian/debhelper.in/locales.links +++ glibc-2.7/debian/debhelper.in/locales.links @@ -0,0 +1 @@ +etc/locale.alias usr/share/locale/locale.alias --- glibc-2.7.orig/debian/debhelper.in/libc-otherbuild.postrm +++ glibc-2.7/debian/debhelper.in/libc-otherbuild.postrm @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +if [ "$1" = "remove" ]; then + # /etc/ld.so.nohwcap code: NOHWCAP +fi + +#DEBHELPER# + +exit 0 --- glibc-2.7.orig/debian/debhelper.in/glibc-doc.info +++ glibc-2.7/debian/debhelper.in/glibc-doc.info @@ -0,0 +1 @@ +DEB_SRCDIR/manual/*.info* --- glibc-2.7.orig/debian/debhelper.in/locales-all.install +++ glibc-2.7/debian/debhelper.in/locales-all.install @@ -0,0 +1 @@ +build-tree/locales-all/supported.tar.lzma usr/lib/locales-all --- glibc-2.7.orig/debian/debhelper.in/libc-dev.install +++ glibc-2.7/debian/debhelper.in/libc-dev.install @@ -0,0 +1,27 @@ +debian/tmp-libc/usr/bin/gencat usr/bin +debian/tmp-libc/usr/bin/mtrace usr/bin +debian/tmp-libc/usr/bin/rpcgen usr/bin +debian/tmp-libc/usr/bin/sprof usr/bin + +debian/tmp-libc/usr/lib/libanl.a usr/lib +debian/tmp-libc/usr/lib/libBrokenLocale.a usr/lib +debian/tmp-libc/usr/lib/libbsd-compat.a usr/lib +debian/tmp-libc/usr/lib/libc.a usr/lib +debian/tmp-libc/usr/lib/libc_nonshared.a usr/lib +debian/tmp-libc/usr/lib/libcrypt.a usr/lib +debian/tmp-libc/usr/lib/libdl.a usr/lib +debian/tmp-libc/usr/lib/libg.a usr/lib +debian/tmp-libc/usr/lib/libieee.a usr/lib +debian/tmp-libc/usr/lib/libm.a usr/lib +debian/tmp-libc/usr/lib/libmcheck.a usr/lib +debian/tmp-libc/usr/lib/libnsl.a usr/lib +debian/tmp-libc/usr/lib/libpthread.a usr/lib +debian/tmp-libc/usr/lib/libpthread_nonshared.a usr/lib +debian/tmp-libc/usr/lib/libresolv.a usr/lib +debian/tmp-libc/usr/lib/librpcsvc.a usr/lib +debian/tmp-libc/usr/lib/librt.a usr/lib +debian/tmp-libc/usr/lib/libutil.a usr/lib + +debian/tmp-libc/usr/lib/*.o usr/lib +debian/tmp-libc/usr/lib/*.so usr/lib +debian/tmp-libc/usr/include/* usr/include --- glibc-2.7.orig/debian/debhelper.in/libc.templates +++ glibc-2.7/debian/debhelper.in/libc.templates @@ -0,0 +1,39 @@ +Template: glibc/upgrade +Type: boolean +Default: true +_Description: Do you want to upgrade glibc now? + Running services and programs that are using NSS need to be restarted, + otherwise they might not be able to do lookup or authentication any more. + The installation process is able to restart some services (such as ssh or + telnetd), but other programs cannot be restarted automatically. One such + program that needs manual stopping and restart after the glibc upgrade by + yourself is xdm - because automatic restart might disconnect your active + X11 sessions. + . + This script detected the following installed services which must be + stopped before the upgrade: ${services} + . + If you want to interrupt the upgrade now and continue later, please + answer No to the question below. + +Template: glibc/restart-services +Type: string +_Description: Services to restart for GNU libc library upgrade: + Running services and programs that are using NSS need to be restarted, + otherwise they might not be able to do lookup or authentication any more + (for services such as ssh, this can affect your ability to login). + Please review the following space-separated list of init.d scripts for + services to be restarted now, and correct it if needed. + . + Note: restarting sshd/telnetd should not affect any existing connections. + +Template: glibc/restart-failed +Type: error +#flag:translate!:3 +_Description: Failure restarting some services for GNU libc upgrade + The following services could not be restarted for the GNU libc library upgrade: + . + ${services} + . + You will need to start these manually by running + '/etc/init.d/ start'. --- glibc-2.7.orig/debian/debhelper.in/libc.manpages +++ glibc-2.7/debian/debhelper.in/libc.manpages @@ -0,0 +1,12 @@ +debian/local/manpages/catchsegv.1 +debian/local/manpages/gai.conf.5 +debian/local/manpages/getent.1 +debian/local/manpages/getconf.1 +debian/local/manpages/iconv.1 +debian/local/manpages/iconvconfig.8 +debian/local/manpages/ldconfig.8 +debian/local/manpages/ldd.1 +debian/local/manpages/rpcinfo.8 +debian/local/manpages/tzselect.1 +debian/local/manpages/zdump.1 +debian/local/manpages/zic.8 --- glibc-2.7.orig/debian/debhelper.in/libc.NEWS +++ glibc-2.7/debian/debhelper.in/libc.NEWS @@ -0,0 +1,35 @@ +glibc (2.6.1-2) unstable; urgency=low + + Starting with version 2.6.1, glibc ships a /etc/ld.so.conf.d/libc.conf that + enforces /usr/local/lib to take precedence over /usr/lib. This is the + intended behaviour (it works like the $PATH where /usr/local/bin takes + precedence over /usr/bin). + + To revert that (though doing so is discouraged) you can add /usr/lib to the + beginning of /etc/ld.so.conf.d/libc.conf. (see bug#440394). + + -- Pierre Habouzit Sat, 01 Sep 2007 16:58:15 +0200 + +glibc (2.5-1) unstable; urgency=low + + The script tzconfig has been removed from glibc 2.5-1 and following + versions. Please use 'dpkg-reconfigure tzdata' instead to configure + the timezone. + + -- Aurelien Jarno Fri, 16 Nov 2007 15:38:54 +0100 + +glibc (2.5-1) unstable; urgency=low + + Starting with version 2.5-1, the glibc requires a 2.6.1 or later + kernel. If you use a 2.4 kernel, please upgrade it *before* + installing glibc. + + This also means that it is not possible to use LD_ASSUME_KERNEL with a + version lower than 2.6.1. If you have set such a thing in /etc/profile, + ~/.bashrc or any other initialization file (something you should have + never done!!!), please remove that *before* installing glibc. + + Note: This does not apply to the m68k architecture and to non-Linux + kernels. + + -- Aurelien Jarno Tue, 24 Apr 2007 00:26:48 +0200 --- glibc-2.7.orig/debian/debhelper.in/glibc-doc.links +++ glibc-2.7/debian/debhelper.in/glibc-doc.links @@ -0,0 +1,38 @@ +usr/share/man/man3/pthread_attr_init.3.gz usr/share/man/man3/pthread_attr_destroy.3.gz +usr/share/man/man3/pthread_attr_init.3.gz usr/share/man/man3/pthread_attr_setdetachstate.3.gz +usr/share/man/man3/pthread_attr_init.3.gz usr/share/man/man3/pthread_attr_getdetachstate.3.gz +usr/share/man/man3/pthread_attr_init.3.gz usr/share/man/man3/pthread_attr_setschedpolicy.3.gz +usr/share/man/man3/pthread_attr_init.3.gz usr/share/man/man3/pthread_attr_getschedpolicy.3.gz +usr/share/man/man3/pthread_attr_init.3.gz usr/share/man/man3/pthread_attr_setschedparam.3.gz +usr/share/man/man3/pthread_attr_init.3.gz usr/share/man/man3/pthread_attr_getschedparam.3.gz +usr/share/man/man3/pthread_attr_init.3.gz usr/share/man/man3/pthread_attr_setinheritsched.3.gz +usr/share/man/man3/pthread_attr_init.3.gz usr/share/man/man3/pthread_attr_getinheritsched.3.gz +usr/share/man/man3/pthread_attr_init.3.gz usr/share/man/man3/pthread_attr_setscope.3.gz +usr/share/man/man3/pthread_attr_init.3.gz usr/share/man/man3/pthread_attr_getscope.3.gz +usr/share/man/man3/pthread_cancel.3.gz usr/share/man/man3/pthread_setcanceltype.3.gz +usr/share/man/man3/pthread_cancel.3.gz usr/share/man/man3/pthread_setcancelstate.3.gz +usr/share/man/man3/pthread_cancel.3.gz usr/share/man/man3/pthread_testcancel.3.gz +usr/share/man/man3/pthread_cleanup_push.3.gz usr/share/man/man3/pthread_cleanup_pop.3.gz +usr/share/man/man3/pthread_cleanup_push.3.gz usr/share/man/man3/pthread_cleanup_push_defer_np.3.gz +usr/share/man/man3/pthread_cleanup_push.3.gz usr/share/man/man3/pthread_cleanup_pop_restore_np.3.gz +usr/share/man/man3/pthread_condattr_init.3.gz usr/share/man/man3/pthread_condattr_destroy.3.gz +usr/share/man/man3/pthread_cond_init.3.gz usr/share/man/man3/pthread_cond_signal.3.gz +usr/share/man/man3/pthread_cond_init.3.gz usr/share/man/man3/pthread_cond_broadcast.3.gz +usr/share/man/man3/pthread_cond_init.3.gz usr/share/man/man3/pthread_cond_wait.3.gz +usr/share/man/man3/pthread_cond_init.3.gz usr/share/man/man3/pthread_cond_timedwait.3.gz +usr/share/man/man3/pthread_cond_init.3.gz usr/share/man/man3/pthread_cond_destroy.3.gz +usr/share/man/man3/pthread_key_create.3.gz usr/share/man/man3/pthread_getspecific.3.gz +usr/share/man/man3/pthread_key_create.3.gz usr/share/man/man3/pthread_key_delete.3.gz +usr/share/man/man3/pthread_key_create.3.gz usr/share/man/man3/pthread_setspecific.3.gz +usr/share/man/man3/pthread_mutexattr_init.3.gz usr/share/man/man3/pthread_mutexattr_destroy.3.gz +usr/share/man/man3/pthread_mutexattr_init.3.gz usr/share/man/man3/pthread_mutexattr_settype.3.gz +usr/share/man/man3/pthread_mutexattr_init.3.gz usr/share/man/man3/pthread_mutexattr_gettype.3.gz +usr/share/man/man3/pthread_mutexattr_setkind_np.3.gz usr/share/man/man3/pthread_mutexattr_getkind_np.3.gz +usr/share/man/man3/pthread_mutex_init.3.gz usr/share/man/man3/pthread_mutex_lock.3.gz +usr/share/man/man3/pthread_mutex_init.3.gz usr/share/man/man3/pthread_mutex_trylock.3.gz +usr/share/man/man3/pthread_mutex_init.3.gz usr/share/man/man3/pthread_mutex_unlock.3.gz +usr/share/man/man3/pthread_mutex_init.3.gz usr/share/man/man3/pthread_mutex_destroy.3.gz +usr/share/man/man3/pthread_setschedparam.3.gz usr/share/man/man3/pthread_getschedparam.3.gz +usr/share/man/man3/pthread_sigmask.3.gz usr/share/man/man3/pthread_kill.3.gz +usr/share/man/man3/pthread_sigmask.3.gz usr/share/man/man3/sigwait.3.gz +usr/share/doc/glibc-doc/html/libc.html usr/share/doc/glibc-doc/html/index.html --- glibc-2.7.orig/debian/debhelper.in/nscd.postrm +++ glibc-2.7/debian/debhelper.in/nscd.postrm @@ -0,0 +1,14 @@ +#!/bin/sh +set -e + +case "$1" in + purge) + rm -rf /var/cache/nscd + ;; + *) + ;; +esac + +#DEBHELPER# + +exit 0 --- glibc-2.7.orig/debian/debhelper.in/libc.install +++ glibc-2.7/debian/debhelper.in/libc.install @@ -0,0 +1,27 @@ +debian/tmp-libc/lib/*.so* lib +debian/tmp-libc/usr/lib/gconv/*.so usr/lib/gconv +debian/tmp-libc/usr/lib/gconv/gconv-modules usr/lib/gconv +debian/tmp-libc/usr/bin/iconv usr/bin +debian/tmp-libc/usr/bin/getent usr/bin +debian/tmp-libc/usr/bin/getconf usr/bin +debian/tmp-libc/usr/bin/catchsegv usr/bin +debian/tmp-libc/usr/bin/tzselect usr/bin +debian/tmp-libc/usr/bin/ldd usr/bin +debian/tmp-libc/usr/sbin/zdump usr/bin +debian/tmp-libc/usr/sbin/rpcinfo usr/bin + +debian/tmp-libc/usr/sbin/zic usr/sbin +debian/tmp-libc/usr/sbin/iconvconfig usr/sbin + +debian/tmp-libc/sbin/ldconfig sbin + +debian/tmp-libc/usr/lib/pt_chown usr/lib + +debian/tmp-libc/lib/*-*-gnu*/ lib +debian/tmp-libc/usr/lib/*-*-gnu*/ usr/lib + +debian/tmp-libc/etc/ld.so.conf.d /etc +build-tree/glibc-2.*/posix/gai.conf /etc +debian/local/etc/bindresvport.blacklist /etc + +log-test-*-libc usr/share/doc/LIBC --- glibc-2.7.orig/debian/debhelper.in/nscd.install +++ glibc-2.7/debian/debhelper.in/nscd.install @@ -0,0 +1,3 @@ +debian/tmp-libc/usr/sbin/nscd usr/sbin +DEB_SRCDIR/nscd/nscd.conf /etc + --- glibc-2.7.orig/debian/debhelper.in/locales.README.Debian +++ glibc-2.7/debian/debhelper.in/locales.README.Debian @@ -0,0 +1,17 @@ +locales +------- + + * Starting with locales 2.7-3, users can provide their own locales in + addition to the ones provided by the package. They will be handled + as other locales in the various scripts. + + Each user defined locale has to be provided as a single file and + placed in the /usr/local/share/i18n/locales/ directory. The list of + user defined locales should be placed, one by line, in the file + /usr/local/share/i18n/SUPPORTED. You can have a look to the locales + provided by the locales package in /usr/share/i18n/ for more details. + + To enable the new locales, just run 'dpkg-reconfigure locales' and + select the new locales. + + -- Aurelien Jarno Thu 29 Nov 2007 18:54:12 +0100 --- glibc-2.7.orig/debian/debhelper.in/glibc-doc.manpages +++ glibc-2.7/debian/debhelper.in/glibc-doc.manpages @@ -0,0 +1 @@ +DEB_SRCDIR/linuxthreads/man/pthread*.man --- glibc-2.7.orig/debian/debhelper.in/libc-alt.lintian +++ glibc-2.7/debian/debhelper.in/libc-alt.lintian @@ -0,0 +1,12 @@ +# libpthread must be stripped specially; GDB needs the non-dynamic +# symbol table in order to load the thread debugging library. +LIBC-FLAVOR: unstripped-binary-or-object .SLIBDIR/libpthread-2.5.so + +# Those file are actually .o files not package in a ar archive, and +# thus should not be stripped +LIBC-FLAVOR: unstripped-binary-or-object .LIBDIR/libieee.a +LIBC-FLAVOR: unstripped-binary-or-object .LIBDIR/libmcheck.a + +# It is normal that the ELF dynamic linker does not need any other +# library +LIBC-FLAVOR: shared-lib-without-dependency-information .SLIBDIR/ld-2.5.so --- glibc-2.7.orig/debian/debhelper.in/libc-udeb.install.hurd-i386 +++ glibc-2.7/debian/debhelper.in/libc-udeb.install.hurd-i386 @@ -0,0 +1,11 @@ +# FIXME: someday we may need to handle installing into non-lib. +debian/tmp-libc/lib/ld*.so* lib +debian/tmp-libc/lib/libm-*.so* lib +debian/tmp-libc/lib/libm.so* lib +debian/tmp-libc/lib/libdl*.so* lib +debian/tmp-libc/lib/libresolv*.so* lib +debian/tmp-libc/lib/libc-*.so* lib +debian/tmp-libc/lib/libc.so* lib +debian/tmp-libc/lib/libutil* lib +debian/tmp-libc/lib/libcrypt* lib +debian/tmp-libc/lib/librt*.so* lib --- glibc-2.7.orig/debian/debhelper.in/libc.preinst +++ glibc-2.7/debian/debhelper.in/libc.preinst @@ -0,0 +1,203 @@ +#!/bin/sh +set -e +export LC_ALL=C + +type=$1 +preversion=$2 + +if [ "$type" = upgrade ] +then + # Load debconf module if available + if [ -f /usr/share/debconf/confmodule ] ; then + . /usr/share/debconf/confmodule + fi + + if [ -n "$preversion" ]; then + # NSS authentication trouble guard + if dpkg --compare-versions "$preversion" lt 2.6-1; then + + check="gdm kdm proftpd postgresql xscreensaver xdm" + # NSS services check: NSS_CHECK + if [ -n "$services" ]; then + if [ -f /usr/share/debconf/confmodule ] ; then + db_version 2.0 + db_reset glibc/upgrade + db_subst glibc/upgrade services $services + if [ "$RELEASE_UPGRADE_MODE" = desktop ]; then + db_input medium glibc/upgrade || true + else + db_input critical glibc/upgrade || true + fi + db_go || true + db_get glibc/upgrade + answer=$RET + else + echo "Name Service Switch update in the GNU C Library" + echo + echo "Running services and programs that are using NSS need to be restarted," + echo "otherwise they might not be able to do lookup or authentication any more." + echo "The installation process is able to restart some services (such as ssh or" + echo "telnetd), but other programs cannot be restarted automatically. One such" + echo "program that needs manual stopping and restart after the glibc upgrade by" + echo "yourself is xdm - because automatic restart might disconnect your active" + echo "X11 sessions." + echo + echo "This script detected the following installed services which must be" + echo "stopped before the upgrade: $services" + echo + echo "If you want to interrupt the upgrade now and continue later, please" + echo "answer No to the question below." + echo + frontend=`echo "$DEBIAN_FRONTEND" | tr '[:upper:]' '[:lower:]'` + if [ "$frontend" = noninteractive ]; then + echo "Non-interactive mode, upgrade glibc forcibly" + answer=true + else + echo -n "Do you want to upgrade glibc now? [Y/n] " + read answer + case $answer in + Y*|y*) answer=true ;; + N*|n*) answer=false ;; + *) answer=true ;; + esac + fi + echo + fi + + if [ "x$answer" != "xtrue" ]; then + echo "Stopped glibc upgrade. Please retry the upgrade after you have" + echo "checked or stopped services by hand." + exit 1 + fi + fi + fi # end upgrading and $preversion lt 2.6-1 + fi # Upgrading + + # This will keep us from using hwcap libs (optimized) during an + # upgrade. + touch /etc/ld.so.nohwcap +fi + +# Sanity check. +# If there are versions of glibc outside of the normal installation +# location (/lib, /lib64, etc.) then things may break very badly +# as soon as ld.so is replaced by a new version. This check is not +# foolproof, but it's pretty accurate. This script ignores libraries +# with different sonames, and libraries incompatible with the +# to-be-installed ld.so. + +check_dirs () { + for dir in $*; do + # Follow symlinks + dirlink=$(readlink -e $dir) + [ -n "$dirlink" ] && dir=$dirlink + + # Handle /lib in LD_LIBRARY_PATH. + if expr $dir : "/lib.*" > /dev/null; then + continue + fi + # Skip ia32-libs package on ia64, and similar libraries + # (not sure why these get added to /etc/ld.so.conf) + if expr $dir : "/emul/.*" > /dev/null; then + continue + fi + if test -d $dir; then + output=$(ls $dir | egrep '^(C_SO|M_SO|PTHREAD_SO|RT_SO|DL_SO)$' 2>/dev/null) + + if test -n "$output"; then + # See if the found libraries are compatible with the system ld.so; + # if they aren't, they'll be ignored. Check e_ident, e_type (which + # will just be ET_DYN), and e_machine. If a match is found, there + # is a risk of breakage. + for lib in $output + do + if test -f "$dir/$lib"; then + libbytes=`head -c 20 $dir/$lib | od -c` + if test "$ldbytes" = "$libbytes"; then + echo "Matching libraries: $dir/$lib" + return 0 + fi + fi + done + fi + fi + done + return 1 +} + +if [ "$type" != abort-upgrade ] +then + ldbytes=`head -c 20 RTLD | od -c` + dirs="/lib32 /lib64 /usr/local/lib /usr/local/lib32 /usr/local/lib64" + if ! test -L /usr; then + dirs="$dirs /usr/lib /usr/lib32 /usr/lib64" + fi + if check_dirs $dirs; then + echo + echo "A copy of glibc was found in an unexpected directory." + echo "It is not safe to upgrade the C library in this situation;" + echo "please remove that copy of the C library and try again." + echo "Please check: https://launchpad.net/bugs/81125" + fi + + if test -n "$LD_LIBRARY_PATH"; then + dirs=$(echo $LD_LIBRARY_PATH | sed 's/:/ /') + if check_dirs $dirs; then + echo + echo "Another copy of the C library was found via LD_LIBRARY_PATH." + echo "It is not safe to upgrade the C library in this situation;" + echo "please remove the directory from LD_LIBRARY_PATH and try again." + echo "Please check: https://launchpad.net/bugs/81125" + fi + fi + if test -e /etc/ld.so.conf; then + dirs=$(echo $(cat /etc/ld.so.conf)) + if check_dirs $dirs; then + echo + echo "Another copy of the C library was found via /etc/ld.so.conf." + echo "It is not safe to upgrade the C library in this situation;" + echo "please remove the directory from /etc/ld.so.conf and try again." + echo "Please check: https://launchpad.net/bugs/81125" + fi + fi + for i in ld-2.3.2.so libc-2.3.2.so ld-2.3.6.so libc-2.3.6.so ; do + if [ -e /lib/tls/$i ] && ! dpkg-query -L LIBC 2>/dev/null | grep -q /lib/tls/$i ; then + echo + echo "A non-dpkg owned copy of the C library was found in /lib/tls." + echo "It is not safe to upgrade the C library in this situation;" + echo "please remove that copy of the C library and try again." + exit 1 + fi + done + if [ -e /lib/tls/i686/cmov/libc.so.6 ] || [ -e /lib/i686/cmov/libc.so.6 ] ; then + status_i686=$(dpkg -s libc6-i686 2>/dev/null | grep ^Status: | sed -e 's/^Status: \(.*\) \(.*\) \(.*\)/\3/g') + status_xen=$(dpkg -s libc6-xen 2>/dev/null | grep ^Status: | sed -e 's/^Status: \(.*\) \(.*\) \(.*\)/\3/g') + if ([ -z "$status_i686" ] || [ "$status_i686" = "not-installed" ] || [ "$status_i686" = "config-files" ]) && \ + ([ -z "$status_xen" ] || [ "$status_xen" = "not-installed" ] || [ "$status_xen" = "config-files" ]); then + echo + echo "A non-dpkg owned copy of the libc6-i686 package was found." + echo "It is not safe to upgrade the C library in this situation;" + echo "please remove that copy of the C library and try again." + exit 1 + fi + fi + if [ -n "$LD_ASSUME_KERNEL" ] ; then + if dpkg --compare-versions "$LD_ASSUME_KERNEL" le "2.6.1"; then + echo + echo "POSIX threads library NPTL requires kernel version 2.6.1" + echo "or later. It appears that LD_ASSUME_KERNEL is set to $LD_ASSUME_KERNEL." + echo "It is not safe to upgrade the C library in this situation;" + echo "Please unset this environment variable and try again." + exit 1 + fi + fi +fi + +if [ "$type" != abort-upgrade ] +then + # glibc kernel version check: KERNEL_VERSION_CHECK +fi + +#DEBHELPER# + +exit 0 --- glibc-2.7.orig/debian/debhelper.in/libc.postinst +++ glibc-2.7/debian/debhelper.in/libc.postinst @@ -0,0 +1,314 @@ +#!/bin/sh +set -e +export LC_ALL=C + +type=$1 +preversion=$2 + +if [ "x$type" = xtriggered ] +then + LDCONFIG_NOTRIGGER=y + export LDCONFIG_NOTRIGGER + echo ldconfig deferred processing now taking place + ldconfig + exit 0 +fi + +package_name() +{ + echo LIBC +} + +# Borrowed from sysvinit's postinst. +# Function like update-rc.d but simpler & faster. +# Usage: updatercd basename start|stop NN runlevel . +# +# Now we use the real update-rc.d, so now this function should +# be equivalent to /usr/sbin/update-rc.d. +# +updatercd() { + + if [ ! -f /etc/init.d/$1 ] + then + return + fi + + if [ -x /usr/sbin/update-rc.d ] + then + update-rc.d "$@" > /dev/null + return $? + fi + + base=$1 + shift + while [ "$1" != "" ] + do + if [ "$1" = stop ] + then + tlet=K + else + tlet=S + fi + lev=$2 + shift 2 + while [ "$1" != "." ] + do + cd /etc/rc$1.d + tmp="`echo $tlet??$base`" + case "$tmp" in + "$tlet??$base") + # Not present yet. + ln -s ../init.d/$base $tlet$lev$base + ;; + *) + # Already present. + ;; + esac + shift + done + shift + done +} + +# element() is a helper function for file-rc: +element() { + local element list IFS + + element="$1" + + [ "$2" = "in" ] && shift + list="$2" + [ "$list" = "-" ] && return 1 + [ "$list" = "*" ] && return 0 + + IFS="," + set -- $list + case $element in + "$1"|"$2"|"$3"|"$4"|"$5"|"$6"|"$7"|"$8"|"$9") + return 0 + esac + return 1 +} + +# filerc (runlevel, service) returns /etc/init.d/service, if service is +# running in $runlevel: +filerc() { + local runlevel basename + runlevel=$1 + basename=$2 + while read LINE + do + case $LINE in + \#*|"") continue + esac + + set -- $LINE + SORT_NO="$1"; STOP="$2"; START="$3"; CMD="$4" + [ "$CMD" = "/etc/init.d/$basename" ] || continue + + if element "$runlevel" in "$START" || element "S" in "$START" + then + echo "/etc/init.d/$basename" + return 0 + fi + done < /etc/runlevel.conf + echo "" +} + +checkpkgver () { + local status pkg + pkg=$1 + status=$(dpkg -s $pkg 2>/dev/null | grep ^Status: | sed -e 's/^Status: \(.*\) \(.*\) \(.*\)/\3/g') + if [ -n "$status" ] && [ "$status" != "not-installed" ] && [ "$status" != "config-files" ]; then + echo $(dpkg -s $pkg 2>/dev/null | grep ^Version: | sed -e 's/^Version: *//'); + fi +} + +if [ "$type" = "configure" ] +then + # Add support for /etc/ld.so.conf.d + if [ -e /etc/ld.so.conf ]; then + [ -z "$(tail -n 1 /etc/ld.so.conf)" ] || echo >> /etc/ld.so.conf + else + touch /etc/ld.so.conf + fi + if ! grep -q '^include /etc/ld.so.conf.d/.*\.conf$' /etc/ld.so.conf ; then + echo 'include /etc/ld.so.conf.d/*.conf' >> /etc/ld.so.conf + fi + + # We don't use a registry anymore, remove the old file + rm -f /etc/ld.so.hwcappkgs + + # /etc/ld.so.nohwcap code: NOHWCAP + + # Load debconf module if available + if [ -f /usr/share/debconf/confmodule ] ; then + . /usr/share/debconf/confmodule + fi + + if [ -n "$preversion" ]; then + if [ ! -d /var/mail ] && [ ! -L /var/mail ]; then + ln -sf spool/mail /var/mail + fi + if dpkg --compare-versions "$preversion" lt 2.6-1; then + check="apache2-common apache apache-ssl apache-perl autofs at" + check="$check boa cucipop courier-authdaemon cron cupsys exim" + check="$check exim4-base dovecot-common cucipop lprng lpr" + check="$check lpr-ppd mysql-server nis openbsd-inetd" + check="$check openldapd postfix postfix-tls rsync samba" + check="$check sasl2-bin slapd smail sendmail snmpd ssh" + check="$check spamassassin vsftpd wu-ftpd wu-ftpd-academ wwwoffle" + check="$check webmin dropbear" + # NSS services check: NSS_CHECK + if [ -n "$services" ]; then + + if [ -f /usr/share/debconf/confmodule ] ; then + db_version 2.0 + db_reset glibc/restart-services + db_set glibc/restart-services "$services" + if [ "$RELEASE_UPGRADE_MODE" = desktop ]; then + db_input medium glibc/restart-services || true + else + db_input critical glibc/restart-services || true + fi + db_go || true + db_get glibc/restart-services + if [ "x$RET" != "x" ] + then + services="$RET" + else + services="" + fi + else + echo + echo "Name Service Switch update in the C Library: post-installation question." + echo + echo "Running services and programs that are using NSS need to be restarted," + echo "otherwise they might not be able to do lookup or authentication any more" + echo "(for services such as ssh, this can affect your ability to login)." + echo "Note: restarting sshd/telnetd should not affect any existing connections." + echo + echo "The services detected are: " + echo " $services" + echo + echo "If other services have begun to fail mysteriously after this upgrade, it is" + echo "probably necessary to restart them too. We recommend that you reboot your" + echo "machine after the upgrade to avoid NSS-related troubles." + echo + frontend=`echo "$DEBIAN_FRONTEND" | tr '[:upper:]' '[:lower:]'` + if [ "$frontend" = noninteractive ]; then + echo "Non-interactive mode, restarting services" + answer=yes + else + echo -n "Do you wish to restart services? [Y/n] " + read answer + case $answer in + N*|n*) services="" ;; + *) ;; + esac + fi + fi + echo + if [ "$services" != "" ]; then + echo "Restarting services possibly affected by the upgrade:" + failed="" + for service in $services; do + if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then + idl="invoke-rc.d ${service}" + elif [ -f /usr/share/file-rc/rc ] || [ -f /usr/lib/file-rc/rc ] && [ -f /etc/runlevel.conf ]; then + idl=$(filerc $rl $service) + else + idl=$(ls /etc/rc${rl}.d/S??${service} 2> /dev/null | head -1) + fi + echo -n " $service: stopping..." + $idl stop > /dev/null 2>&1 || true + sleep 2 + echo -n "starting..." + if $idl start > /dev/null 2>&1; then + echo "done." + else + echo "FAILED! ($?)" + failed="$service $failed" + fi + done + echo + if [ -n "$failed" ]; then + if [ -f /usr/share/debconf/confmodule ] ; then + db_fset glibc/restart-failed seen false + db_subst glibc/restart-failed services "$failed" + if [ "$RELEASE_UPGRADE_MODE" = desktop ]; then + db_input medium glibc/restart-failed || true + else + db_input critical glibc/restart-failed || true + fi + db_go || true + else + echo "The following services failed to start: $failed" + echo + echo "You will need to start these manually by running \`/etc/init.d/ start'" + echo "If the service still fails to start, you may need to file a bug on" + echo "$(package_name) or the service involved." + frontend=`echo "$DEBIAN_FRONTEND" | tr '[:upper:]' '[:lower:]'` + if [ "$frontend" != noninteractive ]; then + echo + echo -n "Press ENTER to continue: " + read foo + fi + fi + else + echo "Services restarted successfully." + fi + fi + # Shut down the frontend, to make sure none of the + # restarted services keep a connection open to it + if [ -f /usr/share/debconf/confmodule ] ; then + db_stop + fi + else + echo "Nothing to restart." + fi + fi # end upgrading and $preversion lt 2.6-1 + fi # Upgrading + + # Generate cache file /usr/lib/gconv/gconv-modules.cache + iconvconfig || true + + # Ubuntu change. Do not do kernel version detection at startup. + update-rc.d -f glibc.sh remove >/dev/null 2>&1 + +fi + +if [ "`uname -s`" = Linux ]; then +# +# Upgrade init if possible. There was a bug in all versions +# up to and including 2.75-4, which didn't affect i386 but +# did affect most other architectures. +# +sysvinitver="`dpkg -s sysvinit 2>/dev/null | grep ^Version: | sed -e 's/^Version: *//'`" +case "`uname -m`" in + i?86) + badsysvinitver="2.[0-6]*|2.7[0-3]*" + ;; + *) + badsysvinitver="2.[0-6]*|2.7[0-4]*|2.75-*" + ;; +esac +# Black magic. If we are in a chroot, then /proc/1/exe will not resolve to +# a file (will return EPERM). This keeps us from breaking things in +# debootstrap, and the like. +case "$sysvinitver" in + $badsysvinitver) + ;; + *) + if [ "$(stat -c %d/%i /)" = "$(stat -Lc %d/%i /proc/1/root 2>/dev/null)" ]; then + # the devicenumber/inode pair of / is the same as that of /sbin/init's + # root, so we're *not* in a chroot + (init u ; sleep 1) + fi + ;; +esac +fi + +#DEBHELPER# + +exit 0 --- glibc-2.7.orig/debian/debhelper.in/locales-all.postinst +++ glibc-2.7/debian/debhelper.in/locales-all.postinst @@ -0,0 +1,19 @@ +#!/bin/sh +set -e +export LC_ALL=C + +if [ "$1" = "configure" ]; then + [ -d /usr/lib/locale ] || mkdir /usr/lib/locale + # Remove existing locales, otherwise localedef does not + # overwrite them and exits with a non-null value + rm -f /usr/lib/locale/locale-archive 2>/dev/null || true + tmpdir=$(mktemp -d -t locales.XXXXXXXXXX) + trap 'rm -rf "$tmpdir" > /dev/null 2>&1' exit + tar --use-compress-program /usr/bin/lzma -xf /usr/lib/locales-all/supported.tar.lzma -C "$tmpdir" + localedef --quiet --add-to-archive "$tmpdir"/* +fi + +#DEBHELPER# + +exit 0 + --- glibc-2.7.orig/debian/debhelper.in/locales.config +++ glibc-2.7/debian/debhelper.in/locales.config @@ -0,0 +1,82 @@ +#! /bin/sh +set -e + +. /usr/share/debconf/confmodule +db_version 2.0 +db_capb backup multiselect + +# List of locales provided by the current version +PROVIDED_LOCALES="__PROVIDED_LOCALES__" + +# List of locales provided by the user +if [ -f /usr/local/share/i18n/SUPPORTED ] ; then + USER_LOCALES="$(sed -e 's/#.*//g' /usr/local/share/i18n/SUPPORTED)" +fi + +# List of supported locales +SUPPORTED_LOCALES=$(echo "$PROVIDED_LOCALES$USER_LOCALES" | sed -e 's/^ *//g' -e 's/ *$//g' | sort -u | tr '\n' ',' | sed -e 's/, */, /g' -e 's/, *$//g') + +# Get the list of selected locales from /etc/locale.gen +SELECTED_LOCALES= +if [ -L /etc/locale.gen ] && [ "$(readlink /etc/locale.gen)" = /usr/share/i18n/SUPPORTED ]; then + SELECTED_LOCALES="All locales" +elif [ -e /etc/locale.gen ]; then + SELECTED_LOCALES=$(LC_ALL=C sed -e '/^[a-zA-Z]/!d' -e "s/^ *//g" -e 's/ *$//g' -e 's/no_NO/nb_NO/' /etc/locale.gen | sort -u | while read LINE ; do + if echo "$SUPPORTED_LOCALES" | grep -q -e "\b$LINE\b" ; then + echo -n "$LINE, " + fi + done) + SELECTED_LOCALES=${SELECTED_LOCALES%%, } +fi + +DEFAULT_ENVIRONMENT=$(cat /etc/environment /etc/default/locale 2>/dev/null | awk 'BEGIN {lang="None"} /^LANG=/ {gsub("\"", ""); sub("LANG=", ""); lang=$0;} END {print lang}') + +# Convert no_NO locales to nb_NO +DEFAULT_ENVIRONMENT=$(echo "$DEFAULT_ENVIRONMENT" | sed -e "s/no_NO/nb_NO/") + +if ! echo "$SUPPORTED_LOCALES" | grep -q -e "\b$DEFAULT_ENVIRONMENT\b" ; then + DEFAULT_ENVIRONMENT=None +fi + +if [ -e /etc/locale.gen ]; then + db_set locales/locales_to_be_generated "${SELECTED_LOCALES}" + db_set locales/default_environment_locale "${DEFAULT_ENVIRONMENT}" +fi +db_subst locales/locales_to_be_generated locales "${SUPPORTED_LOCALES}" + +STATE=1 +while [ "$STATE" -ge 0 ]; do + case "$STATE" in + 0) + exit 1 + ;; + 1) + db_input medium locales/locales_to_be_generated || true + ;; + 2) + db_get locales/locales_to_be_generated || RET= + if expr ", $RET," : ".*, None,.*" >/dev/null 2>&1; then + # "None" was a choice in older packages + db_set locales/locales_to_be_generated "" + RET= + elif expr ", $RET," : ".*, All locales,.*" >/dev/null 2>&1; then + # When "All locales" is selected, other choices have to be dropped + db_set locales/locales_to_be_generated "All locales" + RET=$SUPPORTED_LOCALES + fi + DEFAULT_LOCALES=$(echo $RET | sed -e 's/ [^ ]*,/,/g' -e 's/ [^ ]*$//') + if [ -n "$DEFAULT_LOCALES" ]; then + db_subst locales/default_environment_locale locales $DEFAULT_LOCALES + db_input medium locales/default_environment_locale || true + fi + ;; + *) + break + ;; + esac + if db_go; then + STATE=$(($STATE + 1)) + else + STATE=$(($STATE - 1)) + fi +done --- glibc-2.7.orig/debian/locales-depver +++ glibc-2.7/debian/locales-depver @@ -0,0 +1,20 @@ +# When glibc is uploaded into unstable, the locales package is immediately +# available because it is arch:all. But libc binary parckages are processed +# by autobuilders and become available later. +# +# If compiling locales depend on a given version of localedef (for instance +# when ISO codes are updated), the idea is to first bump LOCALES_COMPAT_VER and +# make an upload without changing locales. When this version is available on +# all architectures in unstable, locales can be modified and LOCALES_DEP_VER +# is bumped too. +# +# LOCALES_COMPAT_VER must always contain two values during the transition phase +# so that dependencies in unstable can always be satisfied, and +# LOCALES_DEP_VER point to the highest value of LOCALES_COMPAT_VER when +# packages are available for all architectures in unstable. + +LOCALES_DEP_VER = 2.7-1 +LOCALES_COMPAT_VER = 2.7-1 + +# Previous versions: +# 2.6-1: glibc 2.6.1 --- glibc-2.7.orig/debian/wrapper/objcopy +++ glibc-2.7/debian/wrapper/objcopy @@ -0,0 +1,11 @@ +#!/bin/sh + +case " $* " in + *" --only-keep-debug "*) + exec /usr/bin/objcopy -R .debug_info -R .debug_aranges -R .debug_pubnames \ + -R .debug_abbrev -R .debug_line -R .debug_str -R .debug_ranges \ + -R .debug_loc -R .comment -R .note "$@" + ;; +esac + +exec /usr/bin/objcopy "$@"