diff -urN glibc-2.2.4.orig/configparms glibc-2.2.4/configparms --- glibc-2.2.4.orig/configparms Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/configparms Mon Sep 10 13:11:31 2001 @@ -0,0 +1,11 @@ +CFLAGS := -ml -m4 -O $(CFLAGS) +ASFLAGS-.o := -ml +LDFLAGS-relocatable := -ml +crts-predefined=yes +build-programs=no +CC=sh4-linux-gcc -ml -m4 +RANLIB=sh4-linux-ranlib +AS=sh4-linux-gcc -ml +LD=sh4-linux-ld -ml +AR=sh4-linux-ar +BUILD_CC=gcc diff -urN glibc-2.2.4.orig/debian/FAQ glibc-2.2.4/debian/FAQ --- glibc-2.2.4.orig/debian/FAQ Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/FAQ Mon Sep 10 13:11:31 2001 @@ -0,0 +1,61 @@ +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. + +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. diff -urN glibc-2.2.4.orig/debian/README glibc-2.2.4/debian/README --- glibc-2.2.4.orig/debian/README Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/README Mon Sep 10 13:11:31 2001 @@ -0,0 +1,36 @@ +This directory contains the files needed to build glibc for the Debian +GNU/Linux and GNU/Hurd distributions. + +To build this package, you'll need this `debian' directory, and +`glibc-VERSION.tar.gz', and `glibc-linuxthreads-LTVERSION.tar.gz' (the +VERSIONS need not match). Put them all in a directory called +`glibc-VERSION', and make sure that the `debian/rules', `debian/changelog', +and `debian/sysdeps/config.mk' refer correctly to VERSION. Then, you can +run dpkg-buildpackage, which will automatically unpack the tarballs, and +start the build. + +Compiling the GNU C library yourself requires a lot of resources. For +a complete build using dpkg-buildpackage you need at least 200MB 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 runs for about 6 hours on a 486-133 and still just +about 3 hours on a Pentium 133. 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. + +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. + +It is suggested that you also read the `README' and `INSTALL' files in +the top-level of the glibc source tree. diff -urN glibc-2.2.4.orig/debian/changelog glibc-2.2.4/debian/changelog --- glibc-2.2.4.orig/debian/changelog Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/changelog Mon Sep 10 13:11:31 2001 @@ -0,0 +1,1775 @@ +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 + +Local Variables: + mode: debian-changelog + add-log-mailing-address: "debian-glibc@lists.debian.org" +End: diff -urN glibc-2.2.4.orig/debian/changelog.old glibc-2.2.4/debian/changelog.old --- glibc-2.2.4.orig/debian/changelog.old Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/changelog.old Mon Sep 10 13:11:31 2001 @@ -0,0 +1,1389 @@ +glibc (2.1.2-12) unstable; urgency=low + + * The "" release. + * debian/rules: Form arch_packages and indep_packages using += instead + of $(filter-out ...). + * debian/package-rules/locales.mk: Remove cross-compiling kluges. + * debian/control.in/main: + - locales: Architecture all -> any. + - Build-Depends: add make (>= 3.78) due to use of new + call, warning, and error make functions. + * Merge gconv-modules back into locales. + * Move locale and localedef programs back into locales. + * Put devpts.sh init script back in $(libc). + + -- + +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.0.112-1) unstable; urgency=low + + * New upstream release. + * (debian/rules): New system for applying patches + * (patches/2.0.112-i386-libm): Fixes for some libm routines. + + -- Joel Klecker Sat, 30 Jan 1999 23:34:47 -0800 + +glibc (2.0.112-0.1) unstable; urgency=low + + * Non-maintainer upload. + * New upstream release. + * Delete patches glibc-2.0.111-config, glibc-2.0.111-arm-dl-machine, + since they have been merged upstream. + * Edit and rename patch glibc-2.0.111-arm-string to + glibc-2.0.112-arm-string since this has been partially merged. + * New patch, glibc-2.0.112-hurd-utimes from Mark Kettenis to fix Single + Unix compliance for utimes. + + -- Gordon Matzigkeit Sat, 30 Jan 1999 18:28:09 -0800 + +glibc (2.0.111-1.1) unstable; urgency=low + + * NMU to update Hurd packages. + * Change Hurd rules so that glibc works correctly whether or not /usr + is a symlink to the root directory. + * Make sure libSegFault.so doesn't appear in the -dev package. + * Be sure to apply patches before configuring. + * Force glibc-doc to be `Architecture: all' for sloppy cross-builders. + + -- Gordon Matzigkeit Tue, 26 Jan 1999 18:28:24 -0800 + +glibc (2.0.111-1) experimental; urgency=low + + * New upstream release. + + -- Joel Klecker Thu, 21 Jan 1999 20:06:48 -0800 + +glibc (2.0.110-1) experimental; urgency=low + + * New upstream release. + * Incorporate Hurd patches from Gordon Matzigkeit. + * Debian release for experimental. + * Radical change in packaging. + + -- Joel Klecker Mon, 11 Jan 1999 01:26:56 -0800 + +glibc (2.0.109-1) unstable; urgency=low + + * New upstream release. + * Delete patches that have been merged: arm-string, arm-dl-machine. + * Put libSegFault.so into the libc6 package, not libc6-dev. + * Many Hurd packaging tweaks. + * Add debian/patches/hurd-fcntl to simulate whole-file fcntl locking + using flock on the Hurd. From Roland McGrath. + * Add debian/patches/hurd-ldflags to avoid linking libmachuser and + libhurduser against libc. From Mark Kettenis. + * Add a stubbed ldconfig for the Hurd, and make libc0.2 provide ldso. + + -- Gordon Matzigkeit Thu, 7 Jan 1999 09:37:23 -0900 + +glibc (2.0.7-19981211-1) frozen unstable; urgency=low + + * Changed version to match reality. + - reality is there will not be a "real" release of glibc 2.0.7, + and I'd like to use an honest version. + - The glibc 2.0 CVS branch is stable, regardless of whether or + not it has a "warm-fuzzy" version number. + - The date comes from the last entry in the ChangeLog. + * Reinstated proper conditional for `init u' + (I forgot libc/postinst.in clobbers libc/postinst). + * Integrated patches from current RedHat source rpm. + * Add libdb man pages from RedHat (closes:Bug#23547,13163,13217,26105,19072). + * Fix filenames in $(libc)-pic package (closes:Bug#30904). + * (timezones): Added man pages for zic and zdump (closes:Bug#10395,27943). + * Use glibc 2.1 version of db-Makefile (handles shadow.db safely). + * Begrudgingly added m68k lchown patch from Bug#29497 + (If any glibc developers see this: don't blame me, I was told + in no uncertain terms that the Debian/m68k folks will apply + this patch to their libc over my dead body if necessary). + * Install glibc's ldd even on architectures with libc5. + * Rewrite debian/shlibs generation again; this time nothing is hard-coded. + * Various things I've forgotten. + + -- Joel Klecker Sun, 3 Jan 1999 22:09:41 -0800 + +glibc (2.0.7v-1) frozen unstable; urgency=low + + * New maintainer. + * Upgrade to current CVS sources (bug fixes). + * Use unified debian/ directory (see previous changelog entry). + * Change required sysvinit version for "init u" to >= 2.76-1 + since previous versions of sysvinit had a dangerous bug related to + "init u" on alpha. + * Fix up libstdc++ conflicts. + * [locales] Move /usr/share/locale/locale.alias to /etc/locale.alias + and make it a conffile (closes:Bug#23444). + * [doc] Regenerate info from texinfo sources (closes:Bug#29289,26984,27120). + * Add patch to enable --with-headers configure argument for glibc 2.0. + * Moved glibcbug and makedb to lib package. + * Install nss/db-Makefile (contains rules to generate database versions of + system configuration files such as /etc/passwd and /etc/group) as + /var/db/Makefile in lib package. + + -- Joel Klecker Wed, 9 Dec 1998 18:20:54 -0800 + +glibc-pre2.1 (2.0.106-1) unstable; urgency=low + + * Integrated Jim Pick's ARM patches. + * [debian/guessvers]: + - renamed from debian/versions + - glibc 2.0 doesn't have an up to date + linuxthreads/Banner, use linuxthreads/Makefile instead + * [debian/mkshlibs]: + - adjust dependencies for glibc 2.0 + - minor cleanup + * [debian/rules]: + - Adjust conditionals for determining arguments to pass to configure. + - Handle conditionals for kernel headers better. + - Hopefully fixed hurd support. + - add glibc argument for versions call. + - add conflicts libstdc++2.9 << 2.91.59-2 and libstdc++2.8 = 2.90.29-1 + for i386 libc_control_flags. + - (timezones) glibc 2.0 has time/README, not timezones/README. + - (binary-lib) move creation of glibc 2.1-specific dirs into appropriate + conditionals. + - (binary-dbg) Move catchsegv and libSegFault.so into this package. + - (binary-pic) Install versioning map for glibc 2.1. + - Various fixes for stupid bugs. + - Use suidregister for glibc 2.1's pt_chown helper program. + - Fixes to doc-base support. + - probably some other things I've forgotten :) + * Patch glibc 2.0 localedata/Makefile to not use chroot (needed for fakeroot + to work as the -r command). + * I actually tried this debian/ dir with glibc 2.0.7u and it generates + usuable packages. (this is the reason for all the changes) ;-) + + -- Joel Klecker Tue, 8 Dec 1998 07:53:38 -0800 + +glibc (2.0.7u-7.1) frozen unstable; urgency=low + + * Non-maintainer release. + * Remove unnecessary dpkg conflicts. + * Add libstdc++2.8 << 2.90.29-2 and libstdc++2.9 << 2.91.59-1 + conflicts. + + -- Joel Klecker Fri, 4 Dec 1998 23:31:52 -0600 + +glibc (2.0.7u-7) frozen unstable; urgency=high + + * removed conflict with sysvinit by adding check in postinstall + * this should make the upgrade a bit smoother: fixes 28265 + * fixed conflict expressions for dpkg exclusions and corrected + * previous entry in this changelog to conform to what was released. + * added thread debuging patch for Andreas Jellinghaus. + * removed version dependencies from shlibs file. + + -- Dale Scheetz Wed, 2 Dec 1998 08:36:42 -0500 + +glibc (2.0.7u-6) frozen unstable; urgency=high + + * applied Zack Weinberg's __register_frame_info patch: fixes #29450 + * added conflicts for dpkg versions 1.4.0.28 thru 1.4.1 + * compiled using gcc 2.7.2.3 + * fixed locales so russian locale uses KOI8-R encoding + * fixed asinh MATH_INLINE definition: fixes #27516 and #27146 + + -- Dale Scheetz Mon, 23 Nov 1998 15:11:01 -0500 + +glibc (2.0.7u-5) frozen unstable; urgency=high + + * put the fix for bug 28265 in the right place: fixes 29196 + * did the same for bug 28333. The dependency has been removed. + * moved the creation of the control file to the clean target + * in the rules file so that the source builds with the correct + * control file. + + -- Dale Scheetz Mon, 9 Nov 1998 12:46:45 -0500 + +glibc (2.0.7u-4) unstable; urgency=low + + * Removed dependence on libc6 from libc6-doc: fixes 28333 + * libc6 conflicts with sysvinit <<2.74, so init u will run: fixes 28265 + + -- Dale Scheetz Sun, 25 Oct 1998 16:18:50 -0500 + +glibc (2.0.7u-3) unstable; urgency=low + + * Recovered glibcbug.in patch from 2.0.7r-1. fixes #27846 + * Added 'init u' to the postinst script for libc. fixes #27403 + + -- Dale Scheetz Sun, 18 Oct 1998 12:18:41 -0400 + +glibc (2.0.7u-2) unstable; urgency=low + + * added (>=2.0.7u) to shlibs, as this version is not backward compatible + * with earlier versions: fixes 27314 + + -- Dale Scheetz Thu, 1 Oct 1998 14:47:04 -0400 + +glibc (2.0.7u-1) unstable; urgency=low + + * Upstream source release. + + -- Dale Scheetz Sat, 19 Sep 1998 12:29:09 -0400 + +glibc (2.0.7t-2) frozen unstable; urgency=high + + * Fixed upstream rtld.c patch + + -- Dale Scheetz Mon, 20 Jul 1998 21:58:28 -0400 + +glibc (2.0.7t-1) frozen unstable; urgency=high + + * upstream source fixes security hole in rtld.c patch + * upstram patches to linuxthreads + * fixed preinstall to only remove symbolic links for backward compatibility + + -- Dale Scheetz Thu, 16 Jul 1998 20:17:05 -0400 + +glibc (2.0.7s-1) frozen unstable; urgency=high + + * extensive patching indicated time to sync source with CVS archive + * fixes 24103, 22266, 16434, 16912, 19797, 24002, 13315 + * included Debian patches for rtld.c, as upstream patch fails. + + -- Dale Scheetz Mon, 13 Jul 1998 11:35:10 -0400 + +glibc (2.0.7r-5) frozen unstable; urgency=high + + * installed newer, better patch form Herber Xu with also repairs + * the problem with /etc/ld.so.preload: fixes 23893, 24201, 24216 + + -- Dale Scheetz Sat, 4 Jul 1998 13:40:07 -0400 + +glibc (2.0.7r-4) frozen unstable; urgency=high + + * set tzconfig and tzview mode 755: fixes 24132 + * added patch from Herber Xu for 'env LD_PRELOAD=/lib/libc.so.6 ls' + * so now both empty and populated strings work correctly + * and don't dump core: fixes 23893, 24201, 24216 + + -- Dale Scheetz Wed, 1 Jul 1998 14:29:56 -0400 + +glibc (2.0.7r-3) frozen unstable; urgency=high + + * set mode bits on /usr/doc/lib6/* to 644: fixes 23847 + * rewrote FAQ to match current practice: fixes 23863 + * fixed details in copyright file: fixes 23861 + * implimented upstream patches to nss + * cleaned up rules file access to kernel includes + * added code from David Engel to convert relative symlinks + * to absolute symlinks: fixes 21884 + * rejuvinated the insecure use of temp patch, which disapeared + * somewhere between execution and release: re fixes 19797 + * installed David Engel's patch for 'env LD_PRELOAD= ls' segfault + * and core dump: fixes 23893 + + -- Dale Scheetz Mon, 29 Jun 1998 10:57:42 -0400 + +glibc (2.0.7r-2) frozen unstable; urgency=high + + * Installed forgotten patch for libc6-dev replacing libgdbmg1-dev + * fixes #21609, #21987, #22504, #22596 and #22663 + + -- Dale Scheetz Tue, 23 Jun 1998 13:53:08 -0400 + +glibc (2.0.7r-1) frozen unstable; urgency=high + + * due to popular demand the version number has been changed + + -- Dale Scheetz Mon, 22 Jun 1998 12:27:45 -0400 + +glibc (2.0.7-1) frozen unstable; urgency=high + + * upstream release: fixes 20714 + * upstream fixes for several bugs: fixes 20799, 22626, and 22790 + * 20799 - getgrpnam does not return when group doesn't exist + * 22626 - network security fix + * 22790 - incorrect utmp loging, fixed with supplied patch + * fixed glibcbug.in for more secure use of /tmp: fixes 19797 + * Linux kernel headers are now delivered in libc6-dev + * this removes the depenence on any kernel header packages. + * added Richard Braakman's man page for localedef: fixes 11589 + * added Marcus Brinkmann's man pages for tzconfig, tzselect, and + * a script called tzview, to the timezones package: fixes 23512 + + -- Dale Scheetz Mon, 15 Jun 1998 15:20:09 -0400 + +glibc-pre2.1 (2.0.105-1) unstable; urgency=low + + * New upstream release. + * Replaces glibc-corel for ARM architecture. + + -- Jim Pick Wed, 2 Dec 1998 17:46:05 -0800 + +glibc-pre2.1 (2.0.104-1) unstable; urgency=low + + * New upstream release. + + -- Joel Klecker Thu, 26 Nov 1998 01:09:29 -0800 + +glibc-pre2.1 (2.0.103-1) unstable; urgency=low + + * New upstream release. + + -- Joel Klecker Thu, 26 Nov 1998 01:08:33 -0800 + +glibc-pre2.1 (2.0.102-1) unstable; urgency=low + + * New upstream release. + * [debian/libc-doc/{prerm,postinst,glibc-manual}]: + doc-base support. + * [debian/rules]: More glibc 2.0 compatibility. + + -- Joel Klecker Wed, 18 Nov 1998 23:24:02 -0800 + +glibc-pre2.1 (2.0.100-2.1) unstable; urgency=low + + * port maintainer upload + * add another sparc patch (failsafe on getcwd in ld.so) + * fix sigaction not to return -1 when oact isn't given + (sparc specific) + + -- Christian Meder Wed, 11 Nov 1998 18:52:52 +0100 + +glibc-pre2.1 (2.0.100-2) unstable; urgency=low + + * Remove ldconfig and re-add the dependencies on ldso. + * Make debian/rules handle patching. + * Update sparc support, courtesy of Chris Meder. + + -- Daniel Jacobowitz Sun, 1 Nov 1998 19:37:04 -0500 + +glibc-pre2.1 (2.0.100-1) unstable; urgency=low + + * New Upstream release. + + -- Joel Klecker Fri, 6 Nov 1998 00:26:06 -0800 + +glibc-pre2.1 (2.0.99-19981031-1) unstable; urgency=low + + * Non-maintainer upload + * New upstream release from cvs + * included packaging changes from Joel Klecker + * dropped powerpc ioctl patch, it's included upstream + * dropped most of the ancient sparc patches which shouldn't be + necessary anymore + * added chown/lchown handling similar to i386 (otherwise dpkg will break) + + -- Daniel Jacobowitz Sun, 1 Nov 1998 19:37:04 -0500 + +glibc-pre2.1 (2.0.99-19981024-1) unstable; urgency=low + + * New upstream CVS release, with temporary patch from + Matt McLean for pread/pwrite powerpc bug. + + -- Daniel Jacobowitz Sat, 24 Oct 1998 14:03:04 -0400 + +glibc-pre2.1 (2.0.97-19981012-1) unstable; urgency=low + + * New upstream release. + * Clean .mo files. + + -- Daniel Jacobowitz Tue, 13 Oct 1998 17:18:17 -0400 + +glibc-pre2.1 (2.0.97-1) unstable; urgency=low + + * New upstream release. + * Packaging changes: + - debian/mkshlibs script rewritten + - glibc-only archs such as powerpc, arm, and alpha + no longer need depend on ldso or ldconfig + - $(LIBC)-doc is no longer Architecture: all + (the data may be arch independant, but the package itself isn't) + + -- Joel Klecker Wed, 7 Oct 1998 14:55:55 -0700 + +glibc-pre2.1 (2.0.95-980825-0.3) unstable; urgency=low + + * Non-maintainer upload + * fix symlink for pthread (0.7 -> 0.8) + * include fix by David Miller for broken exception + handling (taken from 2.0.97); should fix the floating + point problems on Sparc architecture + + -- Christian Meder Thu, 8 Oct 1998 17:56:25 +0200 + +glibc-pre2.1 (2.0.95-980825-0.2) unstable; urgency=low + + * Non-maintainer upload + * bring sigaction.h on sparc in line with other architectures otherwise g++ barfs + * correct conflicting libc5 on sparc + + -- Christian Meder Wed, 30 Sep 1998 11:42:08 +0200 + +glibc-pre2.1 (2.0.95-980825-0.1) unstable; urgency=low + + * Non-maintainer upload + * New upstream version based on the packaging from Joel Klecker espy@debian.org + * incorporated the preliminary ioctl translation patch by Daniel Jacobowitz + + -- Christian Meder Thu, 20 Aug 1998 14:39:22 +0200 + +glibc-pre2.1 (2.0.95-1) unstable; urgency=low + + * New release. + +-- Joel Klecker Wed, 28 July 1998 20:49:33 -0700 + +glibc-pre2.1 (2.0.93-980414-1) unstable; urgency=low + + * New upstream version + * Added powerpc patches by Joel "Espy" Klecker + + -- Juan Cespedes Mon, 20 Apr 1998 10:24:09 +0200 + +glibc-pre2.1 (2.0.92-980326-1) unstable; urgency=low + + * New upstream version + * Corrected a group problem + + -- Juan Cespedes Tue, 7 Apr 1998 09:03:24 +0200 + +glibc-pre2.1 (2.0.92-980301-1) unstable; urgency=low + + * New upstream version + * Changed source package name to be less sparc-centric + + -- Juan Cespedes Tue, 3 Mar 1998 08:25:40 +0100 + +glibc-sparc (2.0.91-980111-5) unstable; urgency=low + + * Added soinit.so, sofini.so and interp.so to libc6-pic + + -- Juan Cespedes Wed, 11 Feb 1998 13:42:48 +0100 + +glibc-sparc (2.0.91-980111-4) unstable; urgency=low + + * Fixed /etc/ld.so.preload handling + * Included .{u,}{div,mul,rem} in libc.map + * New maintainer address (Juan Cespedes ) + * New Standards-Version (2.4.0.0) + + -- Juan Cespedes Tue, 10 Feb 1998 16:10:55 +0100 + +glibc-sparc (2.0.91-980111-3) unstable; urgency=low + + * Really removed `_IO_2_1_stdin_' warning now + * Include missing linux/version.h and linux/autoconf.h + * Replace /usr/include/asm-sparc with /usr/include/asm + + -- Juan Cespedes Thu, 22 Jan 1998 09:32:10 +0100 + +glibc-sparc (2.0.91-980111-2) unstable; urgency=low + + * Workaround enabled fixing nasty `_IO_2_1_stdin_' bug + * Removed warning when using with a binary compiled with glibc-2.0.90 + * Added shlibs entry: `Depends: libc6 (>= 2.0.91)' + + -- Juan Cespedes Mon, 19 Jan 1998 13:44:04 +0100 + +glibc-sparc (2.0.91-980111-1) unstable; urgency=low + + * Not released version, due to `_IO_2_1_stdin_' bug + * New upstream version, including: + libc-980111 + glibc-crypt-2.0.90 + linuxthreads-971204 + * Merged the `glibc_2.0.6-2' Debian diffs + * Fixed `getdomainname()' and other syscalls + * Added sparclinux-2.0-980106 kernel headers + * Fixed `strcmp()' when used with optimization + * Changed `select' so that it still works with older kernels + * Fixed getpagesize() bug (Anders Hammarquist ) + + -- Juan Cespedes Tue, 13 Jan 1998 01:05:45 +0100 + +glibc-sparc (2.0.90-971126-1) unstable; urgency=low + + * non-maintainer release + * new source package name, to be able to upload sources to master + * new upstream version, including: + glibc-971126 + glibc-crypt-2.0.90 + glibc-linuxthreads-971105 + glibc-localedata-971103 + + -- Juan Cespedes Thu, 20 Nov 1997 16:14:40 +0100 + +glibc (2.0.90-970928-1) unstable; urgency=low + + * new upstream version: + .glibc 970928 snapshot + .glibc-crypt 2.0.90 + .glibc-linuxthreads 970813 + .glibc-localedata 2.0.5 + * Fix security hole in tzconfig. (11609) + + -- Eric Delaunay Tue, 7 Oct 1997 11:44:16 +0200 + +glibc (2.0.90-970629-2) unstable; urgency=low + + * added kernel_termios.h to standard includes + * added #include + to sysdeps/unix/sysv/linux/sparc/bits/termios.h (provides + needed, at least, by ncurses + * patched sysdeps/unix/sysv/linux/sparc/bits/ioctls.h for TCGETS/TCSETS macros + + -- Eric Delaunay Wed, 16 Jul 1997 11:47:08 +0200 + +glibc (2.0.90-970629-1) unstable; urgency=low + + * new Maintainer + * new upstream version + * Specific SPARC release because latest 2.0 public release doesn't support + SPARC architecture. + * work done on top of glibc 2.0.4-1 from standard Debian distribution: + . replaced glibc sources by a development snapshot (970629) + . replaced glibc-crypt sources by a development snapshot (970628) + . replaced glibc-linuxthreads sources by a development snapshot (2.0.90) + . replaced debian/include/asm-sparc by headers from sparclinux-2.0.30 + . merged specific sparclinux-2.0.30 headers to debian/include/linux + + -- Eric Delaunay Mon, 30 Jun 1997 14:14:40 +0200 + +glibc (2.0.7pre3-1) unstable; urgency=low + + * This is the last (hopefully) pre-release of 2.0.7 + * Locales now uses SUPPORTED in the rules file instead of do_locales + * Now provide changelog.gz and link ChangeLog.gz: fixes 13503 + + -- Dale Scheetz Wed, 15 Apr 1998 12:12:06 -0400 + +glibc (2.0.7pre1-4) unstable; urgency=low + + * fixed date format in de_DE locales: fixes 9707 + * applied strops.c upstream patch to handle MODE 0 + * applied alpha patches for COMPAT-DEV: fixes 17776 + * corrected directory for libc-pic .so libs to libc_pic + + -- Dale Scheetz Sat, 7 Mar 1998 16:46:23 -0500 + +glibc (2.0.7pre1-3) unstable; urgency=low + + * Upgraded replaces mandb to -41 : fixes 17498 + * fixed timezone.postrm script : fixes 18642 + + -- Dale Scheetz Sun, 1 Mar 1998 19:02:48 -0500 + +glibc (2.0.7pre1-2) unstable; urgency=low + + * removed kernel-source depends for libc6-dev + * and moved /usr/include/{linux,asm} links: fixes 16820, 17414, 16601 + * added so libraries to the pic lib package : fixes 16586 + * repaired priority field for timezones : fixes 16586 + * corrected kernel version for m68k : fixes 18454 + * added #include to statsfbuf.h : fixes 10925 + + -- Dale Scheetz Sun, 22 Feb 1998 13:14:42 -0500 + +glibc (2.0.7pre1-1) unstable; urgency=low + + * New upstream source + * Applied patch to s_modfl.c: fixes #17873 + * Applied various upstream patches + + -- Dale Scheetz Sun, 8 Feb 1998 16:45:39 -0500 + +glibc (2.0.6-3) unstable; urgency=low + + * New Maintainer + * applied many upstream patches to libc6 + + -- Dale Scheetz Tue, 20 Jan 1998 12:45:05 -0500 + +glibc (2.0.6-2) unstable; urgency=low + + * Fixed /etc/ld.so.preload handling. + + -- David Engel Tue, 30 Dec 1997 14:50:48 -0600 + +glibc (2.0.6-1) unstable; urgency=low + + * New upstream version (2.0.6). + + -- David Engel Sun, 28 Dec 1997 15:09:41 -0600 + +glibc (2.0.6-0.6) unstable; urgency=low + + * New upstream version (2.0.6pre6). + + -- David Engel Sat, 27 Dec 1997 23:34:43 -0600 + +glibc (2.0.6-0.5) unstable; urgency=low + + * New upstream version (2.0.6pre5). + * Updated Debian README and FAQ for inclusion in upstream source. + * Changed libc6 to conflict with old libc5 packages. + * Changed libc6 to conflict with existing libpthread0 packages. + * Fixed libc6-dev to create /usr/include symlinks correctly. + * Changed libc6-dev to depend on either kernel-headers or kernel-source. + * Fixed libc6-doc to not include erroneous dir.gz. + + -- David Engel Mon, 22 Dec 1997 01:14:22 -0600 + +glibc (2.0.6-0.4) unstable; urgency=low + + * New upstream version (2.0.6-pre4). + * Use and depend on kernel-headers-2.0.32 package for the kernel + header files. + * Remove obsolete patches from debian directory. + + -- David Engel Fri, 12 Dec 1997 00:20:57 -0600 + +glibc (2.0.6-0.3) unstable; urgency=low + + * New upstream version (2.0.6-pre3). + + -- David Engel Tue, 9 Dec 1997 21:47:20 -0600 + +glibc (2.0.6-0.2) unstable; urgency=low + + * New upstream version (2.0.6-pre2). + * New kernel headers (2.0.32). + * Fixed m68k build and dependency problems. + * Added Conflicts: libpthread0 (=0.6-1). + * Added INSTALL to /usr/doc at request of upstream maintainer. + + -- David Engel Wed, 19 Nov 1997 20:23:02 -0600 + +glibc (2.0.6-0.1) unstable; urgency=low + + * New upstream version (2.0.6-pre1). + * New kernel headers (2.0.32-pre4). + + -- David Engel Fri, 14 Nov 1997 19:43:06 -0600 + +glibc (2.0.5c-0.1) unstable; urgency=low + + * New upstream version. (10417,12304) + * Fix security hole in tzconfig. (11609) + * Patch linuxthreads for libstdc++ + + -- Guy Maor Fri, 3 Oct 1997 14:08:30 -0500 + +glibc (2.0.4-1) unstable; urgency=low + + * new Maintainer + * new upstream version + * included asm-m68k fixes (James Troup ) + + -- Helmut Geyer Fri, 23 May 1997 20:00:00 +0200 + +glibc (2.0.3-4) unstable; urgency=low + + * Changed tzconfig to allow Canadian timezones to be selected by + name. + * Changed libc6-dev to legally replace parts of the man-db, gettext + and ppp packages (Bug#9815 abd Bug#9825). + + -- David Engel Thu, 15 May 1997 12:35:43 -0500 + +glibc (2.0.3-3) unstable; urgency=low + + * Integrated Mike Dorman's patches for the alpha (Bug#9208, + Bug#9212 and Bug#9219). + + -- David Engel Mon, 5 May 1997 11:32:14 -0500 + +glibc (2.0.3-2) unstable; urgency=low + + * Fixed a problem with the .orig.tar.gz file. + * Really moved from experimental to unstable. + * Added initial, integrated support for alpha architecture. + + -- David Engel Fri, 25 Apr 1997 15:15:37 -0500 + +glibc (2.0.3-1) experimental; urgency=low + + * Updated to new upstream version. + * Moved from experimental section to unstable. + * Included man pages for linuxthreads. + + -- David Engel Tue, 22 Apr 1997 08:56:37 -0500 + +glibc (2.0.2-2) experimental; urgency=low + + * Added a shlibs entry for /lib/ld-linux.so.2. + * Added symlinks to /usr/doc/libc6 for -dev, -dbg and -doc + packages. + + -- David Engel Fri, 4 Apr 1997 21:58:44 -0600 + +glibc (2.0.2-1) experimental; urgency=low + + * Updated to new upstream version. + + -- David Engel Sat, 22 Mar 1997 11:53:16 -0600 + +glibc (2.0.1-2) experimental; urgency=low + + * Changed to work with ldso-1.9.x. + * Changed to build with local kernel headers. + * Changed is_IS locale to match that from wg15-locale. + * Added compiled versions of locales. + * Added documentation from add-on packages. + * Fixed install problems with timezones. + * Moved libdb headers from /usr/include/db to /usr/include. + + -- David Engel Thu, 27 Feb 1997 19:57:25 -0600 + +glibc (2.0.1-1) experimental; urgency=low + + * Initial packaging. + + -- David Engel Thu, 20 Feb 1997 21:15:52 -0600 + +Local Variables: + mode: debian-changelog + add-log-mailing-address: "debian-glibc@lists.debian.org" +End: diff -urN glibc-2.2.4.orig/debian/control glibc-2.2.4/debian/control --- glibc-2.2.4.orig/debian/control Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/control Mon Sep 10 13:11:31 2001 @@ -0,0 +1,240 @@ +Source: glibc +Section: libs +Priority: required +Build-Depends: gettext (>= 0.10.37-1), make (>= 3.78-4), dpkg-dev (>= 1.4.1.5), debianutils (>= 1.13.1), tar (>= 1.13.11), bzip2, texinfo (>= 4.0), kernel-headers-2.4 [!hurd-i386], mig [hurd-i386], hurd-dev [hurd-i386], gnumach-dev [hurd-i386], texi2html, file, gcc-3.0-sparc64 [sparc], autoconf +Build-Depends-Indep: perl +Build-Conflicts: gcc-2.95 (<< 1:2.95.3-8) [!i386], gcc-2.95 (<< 1:2.95.3-9) [i386] +Maintainer: Ben Collins +Standards-Version: 3.1.1 + +Package: glibc-doc +Architecture: all +Section: doc +Priority: optional +Conflicts: libc-doc, libc6-doc, glibcdoc +Replaces: libc-doc, libc6-doc, glibcdoc +Provides: libc-doc +Description: GNU C Library: Documentation + Contains The GNU C Library Reference manual in info format as well as man + pages for libpthread functions. Also included is the complete GNU C Library + ChangeLog. + +Package: locales +Architecture: all +Section: base +Priority: standard +Provides: i18ndata +Conflicts: localebin, wg15-locale, i18ndata +Replaces: localebin, wg15-locale, libc6-bin, i18ndata, glibc2 +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 + savings over how this package used to be, where all locales were generated + by default. This created a package that unpacked to an excess of 30megs. + +Package: nscd +Architecture: alpha arm i386 m68k mips mipsel powerpc sparc ia64 hppa s390 sh3 sh4 sh3eb sh4eb +Section: admin +Priority: optional +Depends: libc6 (>= ${Source-Version}) +Replaces: libc6 (<< 2.1-4) +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: arm i386 m68k mips mipsel powerpc sparc s390 hppa sh3 sh4 sh3eb sh4eb +Section: base +Priority: required +Description: GNU C Library: Shared libraries and Timezone data + 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. + Timezone data is also included. + +Package: libc6-dev +Architecture: arm i386 m68k mips mipsel powerpc sparc s390 hppa sh3 sh4 sh3eb sh4eb +Section: devel +Priority: standard +Depends: libc6 (= ${Source-Version}) +Recommends: c-compiler +Suggests: glibc-doc +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: arm i386 m68k mips mipsel powerpc sparc s390 hppa sh3 sh4 sh3eb sh4eb +Section: devel +Priority: extra +Depends: libc6 (= ${Source-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, this 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: arm i386 m68k mips mipsel powerpc sparc s390 hppa sh3 sh4 sh3eb sh4eb +Section: devel +Priority: extra +Depends: libc6 (= ${Source-Version}) +Description: GNU C Library: Profiling Libraries. + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: libc6-pic +Architecture: arm i386 m68k mips mipsel powerpc sparc s390 hppa sh3 sh4 sh3eb sh4eb +Section: devel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: libc6 (= ${Source-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 +Architecture: alpha ia64 +Section: base +Priority: required +Description: GNU C Library: Shared libraries and Timezone data + 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. + Timezone data is also included. + +Package: libc6.1-dev +Architecture: alpha ia64 +Section: devel +Priority: standard +Depends: libc6.1 (= ${Source-Version}) +Recommends: c-compiler +Suggests: glibc-doc +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: devel +Priority: extra +Depends: libc6.1 (= ${Source-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, this 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: devel +Priority: extra +Depends: libc6.1 (= ${Source-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: devel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: libc6.1 (= ${Source-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.2 +Architecture: hurd-i386 +Section: base +Priority: required +Description: GNU C Library: Shared libraries and Timezone data + 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. + Timezone data is also included. + +Package: libc0.2-dev +Architecture: hurd-i386 +Section: devel +Priority: standard +Depends: libc0.2 (= ${Source-Version}) +Recommends: c-compiler +Suggests: glibc-doc +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.2-dbg +Architecture: hurd-i386 +Section: devel +Priority: extra +Depends: libc0.2 (= ${Source-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, this 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.2-prof +Architecture: hurd-i386 +Section: devel +Priority: extra +Depends: libc0.2 (= ${Source-Version}) +Description: GNU C Library: Profiling Libraries. + Static libraries compiled with profiling info (-pg) suitable for use + with gprof. + +Package: libc0.2-pic +Architecture: hurd-i386 +Section: devel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: libc0.2 (= ${Source-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-sparc64 +Architecture: sparc +Section: base +Priority: required +Depends: libc6 (= ${Source-Version}) +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: devel +Priority: standard +Depends: libc6-sparc64 (= ${Source-Version}), libc6-dev (= ${Source-Version}), gcc-sparc64 +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. diff -urN glibc-2.2.4.orig/debian/control.in/libc glibc-2.2.4/debian/control.in/libc --- glibc-2.2.4.orig/debian/control.in/libc Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/control.in/libc Mon Sep 10 13:11:31 2001 @@ -0,0 +1,57 @@ +Package: @libc@ +Architecture: @archs@ +Section: base +Priority: required +Description: GNU C Library: Shared libraries and Timezone data + 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. + Timezone data is also included. + +Package: @libc@-dev +Architecture: @archs@ +Section: devel +Priority: standard +Depends: @libc@ (= ${Source-Version}) +Recommends: c-compiler +Suggests: @glibc@-doc +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: devel +Priority: extra +Depends: @libc@ (= ${Source-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, this 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: devel +Priority: extra +Depends: @libc@ (= ${Source-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: devel +Priority: optional +Conflicts: libc-pic +Provides: libc-pic, glibc-pic +Depends: @libc@ (= ${Source-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. + diff -urN glibc-2.2.4.orig/debian/control.in/libc-dbg glibc-2.2.4/debian/control.in/libc-dbg --- glibc-2.2.4.orig/debian/control.in/libc-dbg Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/control.in/libc-dbg Mon Sep 10 13:11:31 2001 @@ -0,0 +1,12 @@ +Package: @libc@-dbg +Architecture: @archs@ +Section: devel +Priority: extra +Depends: @libc@ (= ${Source-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, this makes it somewhat easier to interpret core + dumps. The libraries are installed in /usr/lib/libc_debug and can be + used by placing that directory in LD_LIBRARY_PATH. + Most people will not need this package. diff -urN glibc-2.2.4.orig/debian/control.in/main glibc-2.2.4/debian/control.in/main --- glibc-2.2.4.orig/debian/control.in/main Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/control.in/main Mon Sep 10 13:11:31 2001 @@ -0,0 +1,50 @@ +Source: @glibc@ +Section: libs +Priority: required +Build-Depends: gettext (>= 0.10.37-1), make (>= 3.78-4), dpkg-dev (>= 1.4.1.5), debianutils (>= 1.13.1), tar (>= 1.13.11), bzip2, texinfo (>= 4.0), kernel-headers-2.4 [!hurd-i386], mig [hurd-i386], hurd-dev [hurd-i386], gnumach-dev [hurd-i386], texi2html, file, gcc-3.0-sparc64 [sparc], autoconf +Build-Depends-Indep: perl +Build-Conflicts: gcc-2.95 (<< 1:2.95.3-8) [!i386], gcc-2.95 (<< 1:2.95.3-9) [i386] +Maintainer: Ben Collins +Standards-Version: 3.1.1 + +Package: @glibc@-doc +Architecture: all +Section: doc +Priority: optional +Conflicts: libc-doc, libc6-doc, glibcdoc +Replaces: libc-doc, libc6-doc, glibcdoc +Provides: libc-doc +Description: GNU C Library: Documentation + Contains The GNU C Library Reference manual in info format as well as man + pages for libpthread functions. Also included is the complete GNU C Library + ChangeLog. + +Package: locales +Architecture: all +Section: base +Priority: standard +Provides: i18ndata +Conflicts: localebin, wg15-locale, i18ndata +Replaces: localebin, wg15-locale, @libc@-bin, i18ndata, glibc2 +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 + savings over how this package used to be, where all locales were generated + by default. This created a package that unpacked to an excess of 30megs. + +Package: nscd +Architecture: @threads_archs@ +Section: admin +Priority: optional +Depends: @libc@ (>= ${Source-Version}) +Replaces: @libc@ (<< 2.1-4) +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+ + diff -urN glibc-2.2.4.orig/debian/control.in/opt glibc-2.2.4/debian/control.in/opt --- glibc-2.2.4.orig/debian/control.in/opt Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/control.in/opt Mon Sep 10 13:11:31 2001 @@ -0,0 +1,57 @@ +Package: libc6-v9 +Architecture: sparc +Section: libs +Priority: extra +Pre-Depends: @libc@ (= ${Source-Version}) +Description: GNU C Library: Shared libraries [v9 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 v9 ABI. It only + needs to be installed on UltraSPARC machines. If you install this on a + non-UltraSPARC, it wont even be used. + . + WARNING: Some commercial programs do not work well with these libraries. + Most notably, IBM's JDK. If you experience problems with such + applications, you will need to remove this package. + +Package: libc6-i586 +Architecture: i386 +Section: libs +Priority: extra +Pre-Depends: @libc@ (= ${Source-Version}) +Description: GNU C Library: Shared libraries [i586 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 i586 machines. Only install this + if you have a i586 class CPU (check the output of `uname -m'). This + usually includes all standard Pentium class systems (including clones + such as AMD). For Pentium Pro, Pentium II/III and Celeron, you should + check libc6-i686 package. + . + WARNING: Some commercial programs do not work well with these libraries. + Most notably, IBM's JDK. If you experience problems with such + applications, you will need to remove this package. + +Package: libc6-i686 +Architecture: i386 +Section: libs +Priority: extra +Pre-Depends: @libc@ (= ${Source-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. Only install this + if you have a i686 class CPU (check the output of `uname -m'). This + usually includes Pentium Pro, Pentium II/III, Celeron CPU's and similar + class CPU's (including clones such as AMD). For standard Pentium class + machines, check the libc6-i586 package. + . + WARNING: Some commercial programs do not work well with these libraries. + Most notably, IBM's JDK. If you experience problems with such + applications, you will need to remove this package. diff -urN glibc-2.2.4.orig/debian/control.in/sparc64 glibc-2.2.4/debian/control.in/sparc64 --- glibc-2.2.4.orig/debian/control.in/sparc64 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/control.in/sparc64 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,19 @@ +Package: libc6-sparc64 +Architecture: sparc +Section: base +Priority: required +Depends: libc6 (= ${Source-Version}) +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: devel +Priority: standard +Depends: libc6-sparc64 (= ${Source-Version}), libc6-dev (= ${Source-Version}), gcc-sparc64 +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. diff -urN glibc-2.2.4.orig/debian/copyright glibc-2.2.4/debian/copyright --- glibc-2.2.4.orig/debian/copyright Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/copyright Mon Sep 10 13:11:31 2001 @@ -0,0 +1,198 @@ +This is the Debian prepackaged version of the GNU C Library version +2.2.x + +It was put together by Ben Collins +from the following sources: + + + + +Copyright (C) 1991,92,93,94,95,96,97,98,99,2000,2001 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., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 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'. + +The following applies to the GNU C Library Reference Manual (libc.info): + +Copyright (C) 1993, '94, '95, '96, '97, '98, '99, 2000, 2001 +Free Software Foundation, Inc. + + 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 process this file through TeX and print the + results, provided the printed document carries copying permission + notice identical to this one except for the removal of this paragraph + (this paragraph not being relevant to the printed manual). + + Permission is granted to copy and distribute modified versions of this + manual under the conditions for verbatim copying, provided also that the + section entitled ``GNU Library General Public License'' is included + exactly as in the original, and provided that the entire resulting + derived work is distributed under the terms of a permission notice + identical to this one. + + Permission is granted to copy and distribute translations of this manual + into another language, under the above conditions for modified versions, + except that the text of the translation of the section entitled ``GNU + Library General Public License'' must be approved for accuracy by the + Foundation. + +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. All advertising materials mentioning features or use of + this software must display the following acknowledgement: + This product includes software developed by the + University of California, Berkeley and its + contributors. + + 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. + + * 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. diff -urN glibc-2.2.4.orig/debian/generate-supported.mk glibc-2.2.4/debian/generate-supported.mk --- glibc-2.2.4.orig/debian/generate-supported.mk Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/generate-supported.mk Mon Sep 10 13:11:31 2001 @@ -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 diff -urN glibc-2.2.4.orig/debian/glibc-doc/DEBIAN/postinst glibc-2.2.4/debian/glibc-doc/DEBIAN/postinst --- glibc-2.2.4.orig/debian/glibc-doc/DEBIAN/postinst Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/glibc-doc/DEBIAN/postinst Mon Sep 10 13:11:31 2001 @@ -0,0 +1,24 @@ +#!/bin/sh +set -e + +if [ "$1" = configure ]; then + install-info --quiet --section '^GNU Libraries:' 'GNU Libraries:' \ + /usr/share/info/libc.info.gz + + if command -v install-docs >/dev/null 2>&1; then + echo -n "Registering GNU C Library Documentation..." + install-docs -i /usr/share/doc-base/glibc-manual >/dev/null 2>&1 + echo "done." + fi + if [ -d /usr/doc ]; then + package=$(basename $0 .postinst) + if [ ! -e /usr/doc/$package ]; then + (cd /usr/doc; + if [ -d ../share/doc/$package ]; then + ln -s ../share/doc/$package $package ; + fi + ) + fi + fi +fi + diff -urN glibc-2.2.4.orig/debian/glibc-doc/DEBIAN/prerm glibc-2.2.4/debian/glibc-doc/DEBIAN/prerm --- glibc-2.2.4.orig/debian/glibc-doc/DEBIAN/prerm Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/glibc-doc/DEBIAN/prerm Mon Sep 10 13:11:31 2001 @@ -0,0 +1,18 @@ +#!/bin/sh +set -e + +if [ "$1" = remove ]; then + install-info --quiet --remove libc + + install-info --quiet --remove /usr/share/doc/glibc-doc/libc.info.gz + + if command -v install-docs >/dev/null 2>&1; then + install-docs -r glibc-manual >/dev/null 2>&1 + fi + if [ -d /usr/doc ]; then + package=$(basename $0 .prerm) + if [ -L /usr/doc/$package ]; then + rm /usr/doc/$package ; + fi + fi +fi diff -urN glibc-2.2.4.orig/debian/glibc-doc/usr/share/doc-base/glibc-manual glibc-2.2.4/debian/glibc-doc/usr/share/doc-base/glibc-manual --- glibc-2.2.4.orig/debian/glibc-doc/usr/share/doc-base/glibc-manual Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/glibc-doc/usr/share/doc-base/glibc-manual Mon Sep 10 13:11:31 2001 @@ -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/* diff -urN glibc-2.2.4.orig/debian/ldconfig-hurd.sh glibc-2.2.4/debian/ldconfig-hurd.sh --- glibc-2.2.4.orig/debian/ldconfig-hurd.sh Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/ldconfig-hurd.sh Mon Sep 10 13:11:31 2001 @@ -0,0 +1,49 @@ +#!/bin/sh + +while true; do + case "$1" in + --help|--usage|--version) info=1; shift;; + # ignore these + --verbose|--print-cache|--format) shift;; + # stop option processing + --) shift; break;; + --*) echo Unknown option "$1"; shift;; + -*) getopts vnNXf:C:r:lpc:V opt || break + case $opt in + V) info=1;; + # ignore these + v|p|c|f|C) ;; + # seems like the user wants something we can't really do + n|N|l|r) notsupp=1;; + ?) shift;; + *) echo $0: Internal error; exit 255;; + esac;; + *) break;; + esac +done + +shift `expr $OPTIND - 1` +[ -n "$1" ] && notsupp=1 +[ -n "$info" -o -n "$notsupp" ] && echo The Hurd has no real ldconfig. +if [ -n "$info" ]; then + cat < realname links for shared libraries. +On Debian GNU/Hurd, all packages should come with this link, otherwise the +package has a bug. Therefore administrators will not need ldconfig. + +ldconfig is sometimes also used during library building to create these +symlinks. This is not portable and should be considered a bug. Portable means +include linking by hand via "ln -s" or simply building the library with the +help of "libtool". +EOF +fi +if [ -n "$notsupp" ]; then + echo 'See "ldconfig --help" for an explanation.' + exit 1 +fi + +exit 0 diff -urN glibc-2.2.4.orig/debian/libc/DEBIAN/conffiles glibc-2.2.4/debian/libc/DEBIAN/conffiles --- glibc-2.2.4.orig/debian/libc/DEBIAN/conffiles Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc/DEBIAN/conffiles Mon Sep 10 13:11:31 2001 @@ -0,0 +1 @@ +/etc/default/devpts diff -urN glibc-2.2.4.orig/debian/libc/DEBIAN/postinst glibc-2.2.4/debian/libc/DEBIAN/postinst --- glibc-2.2.4.orig/debian/libc/DEBIAN/postinst Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc/DEBIAN/postinst Mon Sep 10 13:11:31 2001 @@ -0,0 +1,322 @@ +#!/bin/bash +set -e + +package_name() +{ + echo $(basename $0 .postinst) +} + +zone_banner() { + TZBase=$(LC_ALL=C TZ=UTC0 date) + UTdate=$(TZ=UTC0 date -d "$TZBase") + TZdate=$(TZ="$timezone" date -d "$TZBase") + extra_info=" +Local time is now: $TZdate. +Universal Time is now: $UTdate." + echo "Current default timezone: '$timezone'.$extra_info" + echo "Run 'tzconfig' if you wish to change it." +} + +set_timezone() { + echo "Running 'tzconfig' to set this system's timezone." + /usr/sbin/tzconfig +} + +# Borrowed from sysvinit's postinst. +# Function like update-rc.d but simpler & faster. +# Usage: updatercd basename start|stop NN runlevel . +# +# Uses the real update-rc.d if file-rc is detected. +# +updatercd() { + + if [ -d /usr/lib/file-rc/. ] + 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 +} + +realpath() +{ + fname=${1%/} # strips trailing '/' + while [ -L "$fname" ]; do + oldfname="$fname" + fname="$(command ls -l $fname)" + fname="${fname#*\> }" + if [ "$fname" = . ] ; then + fname="$(dirname $oldfname)" + elif echo $fname | grep -vq '^/' - ; then + fname="$(dirname $oldfname)/$fname" + fi + done + pushd $(dirname $fname) > /dev/null + fname=$(pwd -P)/$(basename $fname) + popd > /dev/null + echo $fname +} + +# 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 "" +} + + +if [ "$1" = "configure" ] +then + # Handle upgrades for libdb.so.3. We do this before calling ldconfig, + # since it will create a symlink for us. Just move everything over. We + # use `cat' because I feel it is simpler and safer. Make sure that + # libdb.so.3 is either a symlink, or non-existent, just in case + # something weird happened and the new libdb2 is unpacked before we + # get here. + if [ -e /lib/libdb.so.3.old ]; then + if [ -L /lib/libdb.so.3 -o ! -e /lib/libdb.so.3 ]; then + rm -f /lib/libdb.so.3 + cat /lib/libdb.so.3.old > /lib/libdb.so.3 + fi + rm -f /lib/libdb.so.3.old + fi + + ldconfig + + if [ -d /usr/doc ]; then + package=$(package_name) + if [ ! -e /usr/doc/$package ]; then + (cd /usr/doc; + if [ -d ../share/doc/$package ]; then + ln -s ../share/doc/$package $package ; + fi + ) + fi + fi + + if [ ! -z $2 ]; then + if [ ! -d /var/mail ] && [ ! -L /var/mail ]; then + ln -sf spool/mail /var/mail + fi + if dpkg --compare-versions $2 lt 2.1.95-1; then + echo -n "Checking for services that may need to be restarted..." + + check="nis smail sendmail exim ssh netbase apache proftpd" + check="$check ssh-nonfree postfix-tls wu-ftpd boa cron postfix" + check="$check wu-ftpd-academ slapd openldapd logind wwwoffle" + check="$check lprng lpr autofs snmpd" + # Only get the ones that are installed, and configured + check=$(dpkg -s $check | awk 'BEGIN{RS="\n\n";FS="\n"}{if ( $2 ~ /Status: .* installed$/ ) { print $1 } }' | cut -f 2 -d ' ') + # We have to list inetd explicitly, because the package is a + # different name from it's init script + check="$check inetd" + rl=$(runlevel | awk '{print $2}') + for service in $check; do + if [ -f /usr/lib/file-rc/rc -a -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 + done + echo "done." + if [ -n "$services" ]; then + echo + echo "Name Service Switch has changed in the C Library." + echo "Running programs may not be able to do NSS lookups until they are" + echo "restarted (for services such as ssh, this can affect your ability to" + echo "login)." + echo "Note: restarting sshd should not affect any existing connections." + echo + echo "The services detected are: $services" + echo + echo "If other services begin to fail mysteriously after this upgrade," + echo "it may be necessary to restart them too." + echo + if [ "$DEBIAN_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 + Y*|y*) answer=yes ;; + N*|n*) answer=no ;; + *) answer=yes ;; + esac + fi + echo + if [ "$answer" = yes ] && [ "$services" != "" ]; then + echo "Restarting services possibly affected by the upgrade:" + failed="" + for service in $services; do + idl=$(ls /etc/rc${rl}.d/S??${service} 2> /dev/null | head -1) + echo -n " $service: stopping..." + $idl stop > /dev/null 2>&1 || true + sleep 1 + 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 + # Ruh roh, George + 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." + if [ "$DEBIAN_FRONTEND" != Noninteractive ]; then + echo + echo -n "Press ENTER to continue: " + read foo + fi + else + echo "Services restarted succesfully!" + fi + echo + fi + fi + fi # end upgrading and $2 lt 2.1.95-1 + fi # Upgrading + if [ -f /etc/timezone.save ]; then + mv -fb /etc/timezone.save /etc/timezone + fi + if [ -f /etc/timezone ]; then + timezone=$(cat /etc/timezone) + else + timezone=Factory + fi + if [ "$timezone" = Factory ]; then + if [ -L /etc/localtime ]; then + localtime_link=$(realpath /etc/localtime) + if [ -f "$localtime_link" ]; then + link_not_dangling=true + fi + if [ "$link_not_dangling" = true ]; then + timezone=$(echo $localtime_link | sed 's%^/usr/share/zoneinfo/%%') + fi + fi + fi + if [ -f /usr/share/zoneinfo/$timezone ] && [ "$timezone" != Factory ] + then +# zic -l $timezone + rm -f /etc/localtime && \ + ln -sf /usr/share/zoneinfo/$timezone /etc/localtime + zone_banner + # Handle problem caused by lame old tzconfig. + elif [ "$timezone" = "US/Pacific-New" ] + then + echo "US/Pacific" > /etc/timezone +# zic -l US/Pacific + rm -f /etc/localtime && \ + ln -sf /usr/share/zoneinfo/US/Pacific /etc/localtime + zone_banner + else + set_timezone + fi + if [ "$(date +%Z)" = "/etc/localtime" ]; then + set_timezone + fi + # DO NOT FOLLOW THIS EXAMPLE IN OTHER PACKAGES + updatercd devpts.sh start 35 S . + /etc/init.d/devpts.sh 2>/dev/null || true +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 | 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 +eval "case \"$sysvinitver\" in + $badsysvinitver) + ;; + *) + [ ! -x "/sbin/init" ] || (init u ; sleep 1) +esac" +fi + +exit 0 diff -urN glibc-2.2.4.orig/debian/libc/DEBIAN/postrm glibc-2.2.4/debian/libc/DEBIAN/postrm --- glibc-2.2.4.orig/debian/libc/DEBIAN/postrm Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc/DEBIAN/postrm Mon Sep 10 13:11:31 2001 @@ -0,0 +1,27 @@ +#! /bin/sh +set -e + +package_name() +{ + echo `basename $0 .postrm` +} + +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 `package_name` /usr/lib/pt_chown + elif [ -x /usr/libexec/pt_chown ]; then + suidunregister -s `package_name` /usr/libexec/pt_chown + fi + fi +fi + +if [ "$1" = deconfigure ]; then + :; # blah, do something useful with ldso +fi + +if [ "$1" = purge ]; then + update-rc.d devpts.sh remove > /dev/null +fi + +exit 0 diff -urN glibc-2.2.4.orig/debian/libc/DEBIAN/preinst glibc-2.2.4/debian/libc/DEBIAN/preinst --- glibc-2.2.4.orig/debian/libc/DEBIAN/preinst Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc/DEBIAN/preinst Mon Sep 10 13:11:31 2001 @@ -0,0 +1,100 @@ +#!/bin/bash +set -e + +dpkg --assert-support-predepends + +if [ "$1" = upgrade ] +then + if [ -f /var/lib/dpkg/info/timezone.postrm ]; then + rm -f /var/lib/dpkg/info/timezone.postrm + fi + if [ -f /var/lib/dpkg/info/timezones.postrm ]; then + rm -f /var/lib/dpkg/info/timezones.postrm + fi + if dpkg --compare-versions "$2" lt 2.1.3-8; then + if [ -s /etc/timezone ]; then + cp -a /etc/timezone /etc/timezone.save + fi + fi + if dpkg --compare-versions "$2" le 2.2.2-4; then + # Make upgrades to newer libdb.so.3 easier + cat /lib/libdb.so.3 > /lib/libdb.so.3.old + fi + if dpkg --compare-versions "$2" le 2.1.1-0.1; then + if [ -f /var/run/utmpd.pid ]; then + if kill -TERM `cat /var/run/utmpd.pid` > /dev/null 2>&1 + then + if [ -f /var/run/utmp ]; then + cp /dev/null /var/run/utmp + if grep '^utmp:' /etc/group; then + chown root.utmp /var/run/utmp + chmod 664 /var/run/utmp + else + chown root.root /var/run/utmp + chmod 644 /var/run/utmp + fi + fi + if [ -f /var/log/wtmp ]; then + savelog /var/log/wtmp + touch /var/log/wtmp + if grep '^utmp:' /etc/group; then + chown root.utmp /var/log/wtmp + chmod 664 /var/log/wtmp + else + chown root.root /var/log/wtmp + chmod 644 /var/log/wtmp + fi + fi + rm -f /etc/init.d/utmpd + update-rc.d utmpd remove > /dev/null + fi + fi + if [ -f /var/run/utmpx ]; then rm -f /var/run/utmpx; fi + if [ -f /var/log/wtmpx ]; then rm -f /var/log/wtmpx*; fi + if [ -e /var/run/utmpd.ro ]; then rm -f /var/run/utmpd.ro; fi + if [ -e /var/run/utmpd.rw ]; then rm -f /var/run/utmpd.rw; fi + fi +fi + +if [ "$1" != abort-upgrade ] && [ "`uname -s`" = Linux ] +then + # SPARC sun4m requires a recent kernel + realarch=`uname -m` + if [ "$realarch" = sparc ] + then + cputype=`egrep '^type.*:.*sun4m' /proc/cpuinfo 2> /dev/null` || true + kernel_ver=`uname -r` + + if [ "$cputype" != "" ] + then + kernel_ver=`uname -r` + if dpkg --compare-versions "$kernel_ver" lt 2.2.7 + then + echo WARNING: You have a cpu which requires kernel 2.2.7 + echo or greater in order to install this version of libc6. + echo Please upgrade the kernel before installing this package. + echo + echo You should be able to install the latest version of the + echo sparc kernel-image in order to satisfy this need. You + echo can also download and compile the latest kernel source + echo yourself from a kernel mirror \(see http://www.kernel.org/\). + exit 1 + fi + else + if dpkg --compare-versions "$kernel_ver" lt 2.2.0 #should be safe + then + echo WARNING: This version of libc6 suggests atleast a + echo 2.2.0 kernel in order to work properly. 2.0.x kernels + echo will not be able to support certain functions and + echo may cause problems. 2.2 kernels have proven to be much + echo more reliable than 2.0.x kernels on the sparc platform + echo anyway, so an upgrade is suggested. If you have a 2.1.x + echo kernel is is suggested you upgrade to the latest 2.2 + echo release, since it is more stable and fixes many bugs. + exit 1 + fi + fi + fi +fi + +exit 0 diff -urN glibc-2.2.4.orig/debian/libc/DEBIAN/prerm glibc-2.2.4/debian/libc/DEBIAN/prerm --- glibc-2.2.4.orig/debian/libc/DEBIAN/prerm Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc/DEBIAN/prerm Mon Sep 10 13:11:31 2001 @@ -0,0 +1,11 @@ +#! /bin/sh +set -e + +if [ "$1" = remove ]; then + if [ -d /usr/doc ]; then + package=`basename $0 .prerm` + if [ -L /usr/doc/$package ]; then + rm /usr/doc/$package ; + fi + fi +fi diff -urN glibc-2.2.4.orig/debian/libc/etc/default/devpts glibc-2.2.4/debian/libc/etc/default/devpts --- glibc-2.2.4.orig/debian/libc/etc/default/devpts Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc/etc/default/devpts Mon Sep 10 13:11:31 2001 @@ -0,0 +1,5 @@ +# GID of the `tty' group +TTYGRP=5 + +# Set to 600 to have `mesg n' be the default +TTYMODE=620 diff -urN glibc-2.2.4.orig/debian/libc/etc/init.d/devpts.sh glibc-2.2.4/debian/libc/etc/init.d/devpts.sh --- glibc-2.2.4.orig/debian/libc/etc/init.d/devpts.sh Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc/etc/init.d/devpts.sh Mon Sep 10 13:11:31 2001 @@ -0,0 +1,32 @@ +#! /bin/sh + +set -e + +. /etc/default/devpts + +[ "`uname -s`" = "Linux" ] || exit 0 + +# +# First find out if devpts is available. Also check if devfs +# is already mounted - in that case we don't want to use devpts. +# +devpts_avail=`grep -qci '[<[:space:]]devpts' /proc/filesystems || true` +devpts_mounted=`grep -qci '/dev/pts' /proc/mounts || true` +devfs_mounted=`grep -qci '[<[:space:]]/dev[>[:space:]].*devfs' /proc/mounts || true` + +if [ $devfs_mounted = 0 ] && [ $devpts_avail != 0 ] +then + # + # Create mountpoint and multiplexor device. + # + [ -d /dev/pts ] || mkdir --mode=755 /dev/pts + [ -c /dev/ptmx ] || mknod --mode=666 /dev/ptmx c 5 2 + + # + # Mount /dev/pts if needed. + # + if [ $devpts_mounted = 0 ] + then + mount -t devpts devpts /dev/pts -ogid=${TTYGRP},mode=${TTYMODE} + fi +fi diff -urN glibc-2.2.4.orig/debian/libc/usr/sbin/tzconfig glibc-2.2.4/debian/libc/usr/sbin/tzconfig --- glibc-2.2.4.orig/debian/libc/usr/sbin/tzconfig Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc/usr/sbin/tzconfig Mon Sep 10 13:11:31 2001 @@ -0,0 +1,124 @@ +#! /bin/sh + +# Copyright (C) 2001 Software in the Public Interest +# +# Licensed under the GPL v2 +# + +show_continents() { + +cat < $TIMEZONES ) +valid=no +while [ $valid = no ]; do + show_continents + echo -n "Number: " ; read area + case $area in + 1) continent=Africa ; valid=yes ;; + 2) continent=America ; valid=yes ;; + 3) continent=US ; valid=yes ;; + 4) continent=Canada ; valid=yes ;; + 5) continent=Asia ; valid=yes ;; + 6) continent=Atlantic ; valid=yes ;; + 7) continent=Australia ; valid=yes ;; + 8) continent=Europe ; valid=yes ;; + 9) continent=Indian ; valid=yes ;; + 10) continent=Pacific ; valid=yes ;; + 11) continent=SystemV ; valid=yes ;; + 12) continent=Etc ; valid=yes ;; + esac +done + +if [ -x /usr/bin/fmt ]; then fmt_bin=/usr/bin/fmt +else fmt_bin=/bin/more ; fi + +valid=no +zone="" + +while [ $valid = no ]; do + if [ -n "$zone" ]; then + # We accept the zone if either it is an unambiguous prefix, or + # it is a complete zone name. + number=`grep -i -c "^$continent/$zone" $TIMEZONES` + if [ $number -eq 1 ]; then + timezone=`grep -i "^$continent/$zone" $TIMEZONES` + else + timezone=`grep -i -s "^$continent/$zone"'$' $TIMEZONES` + fi + + if [ -n "$timezone" ]; then + zone_info + echo "Your default time zone is set to '$timezone'.$extra_info" + valid=yes + break + fi + fi + echo + grep -i "^$continent/$zone" $TIMEZONES | cut -d/ -f2- | $fmt_bin + echo + echo "Please enter the name of one of these cities or zones" + echo "You just need to type enough letters to resolve ambiguities" + echo "Press Enter to view all of them again" + echo -n "Name: [$zone] " ; read zone +done + +echo $timezone > /etc/timezone +#zic -l $timezone +rm -f /etc/localtime && ln -sf /usr/share/zoneinfo/$timezone /etc/localtime +trap 'rm -f $TIMEZONES' 0 1 2 3 13 15 diff -urN glibc-2.2.4.orig/debian/libc-dbg/postinst glibc-2.2.4/debian/libc-dbg/postinst --- glibc-2.2.4.orig/debian/libc-dbg/postinst Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc-dbg/postinst Mon Sep 10 13:11:31 2001 @@ -0,0 +1,16 @@ +#! /bin/sh +set -e + +if [ "$1" = configure ]; then + if [ -d /usr/doc ]; then + package=$(basename $0 .postinst) + if [ ! -e /usr/doc/$package ]; then + (cd /usr/doc; + if [ -d ../share/doc/$package ]; then + ln -s ../share/doc/$package $package ; + fi + ) + fi + fi +fi + diff -urN glibc-2.2.4.orig/debian/libc-dbg/prerm glibc-2.2.4/debian/libc-dbg/prerm --- glibc-2.2.4.orig/debian/libc-dbg/prerm Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc-dbg/prerm Mon Sep 10 13:11:31 2001 @@ -0,0 +1,12 @@ +#! /bin/sh +set -e + +if [ "$1" = remove ]; then + if [ -d /usr/doc ]; then + package=$(basename $0 .prerm) + if [ -L /usr/doc/$package ]; then + rm /usr/doc/$package ; + fi + fi +fi + diff -urN glibc-2.2.4.orig/debian/libc-dev/postinst glibc-2.2.4/debian/libc-dev/postinst --- glibc-2.2.4.orig/debian/libc-dev/postinst Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc-dev/postinst Mon Sep 10 13:11:31 2001 @@ -0,0 +1,16 @@ +#! /bin/sh +set -e + +if [ "$1" = configure ]; then + if [ -d /usr/doc ]; then + package=$(basename $0 .postinst) + if [ ! -e /usr/doc/$package ]; then + (cd /usr/doc; + if [ -d ../share/doc/$package ]; then + ln -s ../share/doc/$package $package ; + fi + ) + fi + fi +fi + diff -urN glibc-2.2.4.orig/debian/libc-dev/preinst glibc-2.2.4/debian/libc-dev/preinst --- glibc-2.2.4.orig/debian/libc-dev/preinst Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc-dev/preinst Mon Sep 10 13:11:31 2001 @@ -0,0 +1,7 @@ +#!/bin/sh +set -e + +# Remove old symlinks, if they exist +if [ -L /usr/include/asm ] ; then rm -f /usr/include/asm ; fi +if [ -L /usr/include/linux ] ; then rm -f /usr/include/linux ; fi +if [ -L /usr/include/scsi ] ; then rm -f /usr/include/scsi ; fi diff -urN glibc-2.2.4.orig/debian/libc-dev/prerm glibc-2.2.4/debian/libc-dev/prerm --- glibc-2.2.4.orig/debian/libc-dev/prerm Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc-dev/prerm Mon Sep 10 13:11:31 2001 @@ -0,0 +1,12 @@ +#! /bin/sh +set -e + +if [ $1 = remove ]; then + if [ -d /usr/doc ]; then + package=$(basename $0 .prerm) + if [ -L /usr/doc/$package ]; then + rm /usr/doc/$package + fi + fi +fi + diff -urN glibc-2.2.4.orig/debian/libc-opt/postinst glibc-2.2.4/debian/libc-opt/postinst --- glibc-2.2.4.orig/debian/libc-opt/postinst Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc-opt/postinst Mon Sep 10 13:11:31 2001 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +if [ "$1" = "configure" ] +then + ldconfig + + if [ -d /usr/doc ]; then + package=`basename $0 .postinst` + if [ ! -e /usr/doc/$package ]; then + (cd /usr/doc; + if [ -d ../share/doc/$package ]; then + ln -s ../share/doc/$package $package ; + fi + ) + fi + fi +fi diff -urN glibc-2.2.4.orig/debian/libc-opt/preinst.m4 glibc-2.2.4/debian/libc-opt/preinst.m4 --- glibc-2.2.4.orig/debian/libc-opt/preinst.m4 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc-opt/preinst.m4 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,42 @@ +#!/bin/sh +changequote({,}) +if [ "$1" != abort-upgrade ] && [ "`uname -s`" = Linux ]; then + # These opt libs require a 2.4.x kernel, and certain + # types of cpu's. + + kernel_ver=`uname -r` + cpu=`uname -m` + + if dpkg --compare-versions "$kernel_ver" lt 2.4.0; then + echo "This package requires you to be running a 2.4.0 kernel. Using an" + echo "older kernel will cause sever failures so long as this package is" + echo "installed." + exit 1 + fi +ifelse(OPT,i586,{ + case $cpu in + i[34]86) + echo "Your cpu is not capable of running these libraries. Installing them" + echo "will cause severe problems on your system." + exit 1 + esac + }, + OPT,i686,{ + case $cpu in + i[345]86) + echo "Your cpu is not capable of running these libraries. Installing them" + echo "will cause severe problems on your system." + exit 1 + esac + }, + OPT,v9,{ + if [ "$cpu" != "sparc64" ]; then + echo "These libraries require an UltraSPARC in order to be usable." + echo "Installing them will cause severe problems on your system." + exit 1 + fi + },{ + errprint(error: unknown value OPT for macro {OPT} +)m4exit(1) + }) +fi diff -urN glibc-2.2.4.orig/debian/libc-opt/prerm glibc-2.2.4/debian/libc-opt/prerm --- glibc-2.2.4.orig/debian/libc-opt/prerm Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc-opt/prerm Mon Sep 10 13:11:31 2001 @@ -0,0 +1,10 @@ +#!/bin/sh -e + +if [ "$1" = remove ]; then + if [ -d /usr/doc ]; then + package=$(basename $0 .prerm) + if [ -L /usr/doc/$package ]; then + rm /usr/doc/$package ; + fi + fi +fi diff -urN glibc-2.2.4.orig/debian/libc-pic/postinst glibc-2.2.4/debian/libc-pic/postinst --- glibc-2.2.4.orig/debian/libc-pic/postinst Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc-pic/postinst Mon Sep 10 13:11:31 2001 @@ -0,0 +1,16 @@ +#! /bin/sh +set -e + +if [ "$1" = configure ]; then + if [ -d /usr/doc ]; then + package=$(basename $0 .postinst) + if [ ! -e /usr/doc/$package ]; then + (cd /usr/doc; + if [ -d ../share/doc/$package ]; then + ln -s ../share/doc/$package $package ; + fi + ) + fi + fi +fi + diff -urN glibc-2.2.4.orig/debian/libc-pic/prerm glibc-2.2.4/debian/libc-pic/prerm --- glibc-2.2.4.orig/debian/libc-pic/prerm Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc-pic/prerm Mon Sep 10 13:11:31 2001 @@ -0,0 +1,12 @@ +#! /bin/sh +set -e + +if [ "$1" = remove ]; then + if [ -d /usr/doc ]; then + package=$(basename $0 .prerm) + if [ -L /usr/doc/$package ]; then + rm /usr/doc/$package ; + fi + fi +fi + diff -urN glibc-2.2.4.orig/debian/libc-prof/postinst glibc-2.2.4/debian/libc-prof/postinst --- glibc-2.2.4.orig/debian/libc-prof/postinst Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc-prof/postinst Mon Sep 10 13:11:31 2001 @@ -0,0 +1,16 @@ +#! /bin/sh +set -e + +if [ "$1" = configure ]; then + if [ -d /usr/doc ]; then + package=$(basename $0 .postinst) + if [ ! -e /usr/doc/$package ]; then + (cd /usr/doc; + if [ -d ../share/doc/$package ]; then + ln -s ../share/doc/$package $package ; + fi + ) + fi + fi +fi + diff -urN glibc-2.2.4.orig/debian/libc-prof/prerm glibc-2.2.4/debian/libc-prof/prerm --- glibc-2.2.4.orig/debian/libc-prof/prerm Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc-prof/prerm Mon Sep 10 13:11:31 2001 @@ -0,0 +1,12 @@ +#! /bin/sh +set -e + +if [ "$1" = remove ]; then + if [ -d /usr/doc ]; then + package=$(basename $0 .prerm) + if [ -L /usr/doc/$package ]; then + rm /usr/doc/$package + fi + fi +fi + diff -urN glibc-2.2.4.orig/debian/libc-sparc64/postinst glibc-2.2.4/debian/libc-sparc64/postinst --- glibc-2.2.4.orig/debian/libc-sparc64/postinst Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc-sparc64/postinst Mon Sep 10 13:11:31 2001 @@ -0,0 +1,17 @@ +#!/bin/sh -e + +if [ "$1" = "configure" ] +then + ldconfig + + if [ -d /usr/doc ]; then + package=`basename $0 .postinst` + if [ ! -e /usr/doc/$package ]; then + (cd /usr/doc; + if [ -d ../share/doc/$package ]; then + ln -s ../share/doc/$package $package ; + fi + ) + fi + fi +fi diff -urN glibc-2.2.4.orig/debian/libc-sparc64/prerm glibc-2.2.4/debian/libc-sparc64/prerm --- glibc-2.2.4.orig/debian/libc-sparc64/prerm Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/libc-sparc64/prerm Mon Sep 10 13:11:31 2001 @@ -0,0 +1,10 @@ +#!/bin/sh -e + +if [ "$1" = remove ]; then + if [ -d /usr/doc ]; then + package=$(basename $0 .prerm) + if [ -L /usr/doc/$package ]; then + rm /usr/doc/$package ; + fi + fi +fi diff -urN glibc-2.2.4.orig/debian/locales/DEBIAN/conffiles glibc-2.2.4/debian/locales/DEBIAN/conffiles --- glibc-2.2.4.orig/debian/locales/DEBIAN/conffiles Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/locales/DEBIAN/conffiles Mon Sep 10 13:11:31 2001 @@ -0,0 +1,2 @@ +/etc/locale.alias +/etc/locale.gen diff -urN glibc-2.2.4.orig/debian/locales/DEBIAN/postinst glibc-2.2.4/debian/locales/DEBIAN/postinst --- glibc-2.2.4.orig/debian/locales/DEBIAN/postinst Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/locales/DEBIAN/postinst Mon Sep 10 13:11:31 2001 @@ -0,0 +1,41 @@ +#! /bin/sh +set -e + +if [ "$1" = configure ]; then + if [ -d /usr/doc ]; then + package=$(basename $0 .postinst) + if [ ! -e /usr/doc/$package ]; then + (cd /usr/doc; + if [ -d ../share/doc/$package ]; then + ln -s ../share/doc/$package $package ; + fi + ) + fi + fi + + if [ ! -z $2 ]; then + if dpkg --compare-versions $2 le 2.2-1; then + cat << EOF + +WARNING: The locales package no longer supplies precompiled versions of +the locale definitions. Instead, you must uncomment the definitions you +want in /etc/locale.gen, and run the \`locale-gen' program as root. Each +time the locales package is upgraded, these definitions will automatically +be regenerated. If you wish, you can type ^Z (CTRL+Z) now to background +this install, edit /etc/locale.gen, and type \`fg' when done, so that +locales will be generated now. + +NOTE: If you do not generate locales, you will not be able to properly see +8bit character sets. +EOF + echo + if [ "$DEBIAN_FRONTEND" != Noninteractive ]; then + echo -n "Press [ENTER] to continue: " + read FOO + fi + fi + fi + + # Update requested locales + /usr/sbin/locale-gen +fi diff -urN glibc-2.2.4.orig/debian/locales/DEBIAN/prerm glibc-2.2.4/debian/locales/DEBIAN/prerm --- glibc-2.2.4.orig/debian/locales/DEBIAN/prerm Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/locales/DEBIAN/prerm Mon Sep 10 13:11:31 2001 @@ -0,0 +1,12 @@ +#! /bin/sh +set -e + +if [ "$1" = remove ]; then + if [ -d /usr/doc ]; then + package=$(basename $0 .postrm) + if [ -L /usr/doc/$package ]; then + rm /usr/doc/$package ; + fi + fi +fi + diff -urN glibc-2.2.4.orig/debian/locales/etc/locale.gen glibc-2.2.4/debian/locales/etc/locale.gen --- glibc-2.2.4.orig/debian/locales/etc/locale.gen Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/locales/etc/locale.gen Mon Sep 10 13:11:31 2001 @@ -0,0 +1,9 @@ +# This file lists locales that you wish to have built. You can find a list +# of valid supported locales at /usr/share/doc/locales/SUPPORTED.gz. Other +# combinations are possible, but may not be well tested. If you change +# this file, you need to rerun locale-gen. + + +# Build en_US by default. + +en_US ISO-8859-1 diff -urN glibc-2.2.4.orig/debian/locales/usr/sbin/locale-gen glibc-2.2.4/debian/locales/usr/sbin/locale-gen --- glibc-2.2.4.orig/debian/locales/usr/sbin/locale-gen Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/locales/usr/sbin/locale-gen Mon Sep 10 13:11:31 2001 @@ -0,0 +1,21 @@ +#!/bin/sh + +LOCALEGEN=/etc/locale.gen + +[ -f $LOCALEGEN -a -s $LOCALEGEN ] || exit 0; + +umask 022 + +echo "Generating locales..." +while read locale charset; do \ + case $locale in \#*) continue;; esac; \ + [ -n "$locale" -a -n "$charset" ] || continue + echo -n " `echo $locale | sed 's/\([^.\@]*\).*/\1/'`"; \ + echo -n ".$charset"; \ + echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'`; \ + echo -n '...'; \ + input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \ + localedef -i $input -c -f $charset $locale; \ + echo ' done'; \ +done < $LOCALEGEN +echo "Generation complete." diff -urN glibc-2.2.4.orig/debian/manpages/Makefile glibc-2.2.4/debian/manpages/Makefile --- glibc-2.2.4.orig/debian/manpages/Makefile Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/Makefile Mon Sep 10 13:11:31 2001 @@ -0,0 +1,10 @@ +#! /usr/bin/make -f + +SGML_MAN = locale-gen.8 + +all: $(patsubst %.pod,%.1,$(wildcard *.pod)) $(SGML_MAN) +%.1: %.pod + pod2man --center="Debian GNU/Linux" --release="woody" $< > $@ + +locale-gen.8: locale-gen.sgml + docbook-to-man $< > $@ diff -urN glibc-2.2.4.orig/debian/manpages/catchsegv.1 glibc-2.2.4/debian/manpages/catchsegv.1 --- glibc-2.2.4.orig/debian/manpages/catchsegv.1 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/catchsegv.1 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,215 @@ +.rn '' }` +''' $RCSfile: glibc-2.2.4-sh-linux.diff,v $$Revision: 1.3 $$Date: 2001/09/13 21:43:16 $ +''' +''' $Log: glibc-2.2.4-sh-linux.diff,v $ +''' Revision 1.3 2001/09/13 21:43:16 bgat +''' *** empty log message *** +''' +''' +.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 meaninful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH CATCHSEGV 1 "woody" "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" + diff -urN glibc-2.2.4.orig/debian/manpages/catchsegv.pod glibc-2.2.4/debian/manpages/catchsegv.pod --- glibc-2.2.4.orig/debian/manpages/catchsegv.pod Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/catchsegv.pod Mon Sep 10 13:11:31 2001 @@ -0,0 +1,20 @@ +=head1 NAME + +catchsegv - Catch segmentation faults in programs + +=head1 SYNOPSIS + +B B [B] + +=head1 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. + +=head1 AUTHOR + +I was written by Ulrich Drepper for the GNU C Library + +This man page was written by Ben Collins Ebcollins@debian.orgE for +the Debian GNU/Linux system. diff -urN glibc-2.2.4.orig/debian/manpages/getconf.1 glibc-2.2.4/debian/manpages/getconf.1 --- glibc-2.2.4.orig/debian/manpages/getconf.1 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/getconf.1 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,236 @@ +.rn '' }` +''' $RCSfile: glibc-2.2.4-sh-linux.diff,v $$Revision: 1.3 $$Date: 2001/09/13 21:43:16 $ +''' +''' $Log: glibc-2.2.4-sh-linux.diff,v $ +''' Revision 1.3 2001/09/13 21:43:16 bgat +''' *** empty log message *** +''' +''' +.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 meaninful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH GETCONF 1 "woody" "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" + diff -urN glibc-2.2.4.orig/debian/manpages/getconf.pod glibc-2.2.4/debian/manpages/getconf.pod --- glibc-2.2.4.orig/debian/manpages/getconf.pod Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/getconf.pod Mon Sep 10 13:11:31 2001 @@ -0,0 +1,37 @@ +=head1 NAME + +getconf - Query system configuration variables + +=head1 SYNOPSIS + +B [B<-v specification>] system_var + +B [B<-v specification>] path_var pathname + +=head1 DESCRIPTION + +B<-v> + + Indicate the specification and version for which to obtain + configuration variables. + +B + + A system configuration variable, as defined by sysconf(3) or + confstr(3). + +B + + A system configuration variable as defined by pathconf(3). This + must be used with a pathname. + +=head1 AUTHOR + +I was written by Roland McGrath for the GNU C Library + +This man page was written by Ben Collins Ebcollins@debian.orgE for +the Debian GNU/Linux system. + +=head1 SEE ALSO + +B(3), B(3), B(3) diff -urN glibc-2.2.4.orig/debian/manpages/getent.1 glibc-2.2.4/debian/manpages/getent.1 --- glibc-2.2.4.orig/debian/manpages/getent.1 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/getent.1 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,216 @@ +.rn '' }` +''' $RCSfile: glibc-2.2.4-sh-linux.diff,v $$Revision: 1.3 $$Date: 2001/09/13 21:43:16 $ +''' +''' $Log: glibc-2.2.4-sh-linux.diff,v $ +''' Revision 1.3 2001/09/13 21:43:16 bgat +''' *** empty log message *** +''' +''' +.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 meaninful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH GETENT 1 "woody" "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" +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 "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 "AUTHOR" + diff -urN glibc-2.2.4.orig/debian/manpages/getent.pod glibc-2.2.4/debian/manpages/getent.pod --- glibc-2.2.4.orig/debian/manpages/getent.pod Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/getent.pod Mon Sep 10 13:11:31 2001 @@ -0,0 +1,21 @@ +=head1 NAME + +getent - get entries from administrative database + +=head1 SYNOPSIS + +B I [I ...] + +=head1 DESCRIPTION + +The I program gathers entries from the specified +administrative database using the specified search keys. +Where I is one of passwd, group, hosts, services, protocols, +or networks. + +=head1 AUTHOR + +I was written by Thorsten Kukuk for the GNU C Library. + +This man page was written by Joel Klecker Eespy@debian.orgE for +the Debian GNU/Linux system. diff -urN glibc-2.2.4.orig/debian/manpages/iconv.1 glibc-2.2.4/debian/manpages/iconv.1 --- glibc-2.2.4.orig/debian/manpages/iconv.1 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/iconv.1 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,236 @@ +.rn '' }` +''' $RCSfile: glibc-2.2.4-sh-linux.diff,v $$Revision: 1.3 $$Date: 2001/09/13 21:43:16 $ +''' +''' $Log: glibc-2.2.4-sh-linux.diff,v $ +''' Revision 1.3 2001/09/13 21:43:16 bgat +''' *** empty log message *** +''' +''' +.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 meaninful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH ICONV 1 "woody" "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" +iconv \- Convert encoding of given files from one encoding to another +.SH "SYNOPSIS" +iconv \fB\-f\fR \fIencoding\fR \fB\-t\fR \fIencoding\fR \fIinputfile\fR +.SH "DESCRIPTION" +The \fBiconv\fR program converts the encoding of characters in +\fIinputfile\fR from one coded character set to another. The result is +written to standard output unless otherwise specified by the +\fB--output\fR option. +.PP +\fB--from-code\fR, \fB\-f\fR \fIencoding\fR +.PP +Convert characters from \fIencoding\fR +.PP +\fB--to-code\fR, \fB\-t\fR \fIencoding\fR +.PP +Convert characters to \fIencoding\fR +.PP +\fB--list\fR +.PP +List known coded character sets +.PP +\fB--output\fR, \fB\-o\fR \fIfile\fR +.PP +Specify output file (instead of stdin) +.PP +\fB--verbose\fR +.PP +Print progress information. +.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 "AUTHOR" + diff -urN glibc-2.2.4.orig/debian/manpages/iconv.pod glibc-2.2.4/debian/manpages/iconv.pod --- glibc-2.2.4.orig/debian/manpages/iconv.pod Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/iconv.pod Mon Sep 10 13:11:31 2001 @@ -0,0 +1,45 @@ +=head1 NAME + +iconv - Convert encoding of given files from one encoding to another + +=cut + +=head1 SYNOPSIS + +iconv B<-f> I B<-t> I I + +=head1 DESCRIPTION + +The B program converts the encoding of characters in +I from one coded character set to another. The result is +written to standard output unless otherwise specified by the +B<--output> option. + +B<--from-code>, B<-f> I + +Convert characters from I + +B<--to-code>, B<-t> I + +Convert characters to I + +B<--list> + +List known coded character sets + +B<--output>, B<-o> I + +Specify output file (instead of stdin) + +B<--verbose> + +Print progress information. + +=head1 AUTHOR + +I was written by Ulrich Drepper as part of the GNU C Library. + +This man page was written by Joel Klecker Eespy@debian.orgE, +for the Debian GNU/Linux system. + + diff -urN glibc-2.2.4.orig/debian/manpages/ld.so.8 glibc-2.2.4/debian/manpages/ld.so.8 --- glibc-2.2.4.orig/debian/manpages/ld.so.8 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/ld.so.8 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,113 @@ +.TH ld.so 8 "14 March 1998" +.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 /usr/lib , +and then +.BR /lib . +.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_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_KEEPDIR +Don't ignore the directory in the names of a.out libraries to be loaded. +Use of this option is strongly discouraged. +.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 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). diff -urN glibc-2.2.4.orig/debian/manpages/ldconfig.8 glibc-2.2.4/debian/manpages/ldconfig.8 --- glibc-2.2.4.orig/debian/manpages/ldconfig.8 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/ldconfig.8 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,174 @@ +.TH ldconfig 8 "30 September 2000" +.SH NAME +ldconfig \- determine run-time link bindings +.SH SYNOPSIS +ldconfig +.RB [OPTION...] +.SH DESCRIPTION +.B ldconfig +creates 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. libc5 or libc6/glibc) +based on what C libs if any the library was linked against, therefore when +making dynamic libraries, it is wise to explicitly link against libc (use -lc). +.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. +It is normally run automatically at bootup, from /etc/rc, or manually +whenever new DLL's are installed. +.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 \-?\ \-\-help \-\-usage +Print usage information. +.TP +.B \-V\ \-\-version +Print version and exit. +.SH EXAMPLES +In the bootup file +.I /etc/rc +having the line +.RS + +/sbin/ldconfig -v + +.RE +will set up the correct links for the shared binaries and rebuild +the cache. +.TP +On the command line +.RS + +# /sbin/ldconfig -n /lib + +.RE +as root after the installation of a new DLL, will properly update the +shared library symbolic links in /lib. + +.SH FILES +.PD 0 +.TP 20 +.B /lib/ld.so, /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 spearated +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 's +functionality, in conjunction with +.BR ld.so , +is only available for executables compiled using libc version 4.4.3 or greater. +.PP +.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 DLL is installed. +.SH AUTHORS +David Engel and Mitch D'Souza. diff -urN glibc-2.2.4.orig/debian/manpages/ldd.1 glibc-2.2.4/debian/manpages/ldd.1 --- glibc-2.2.4.orig/debian/manpages/ldd.1 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/ldd.1 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,56 @@ +.\" 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 +.\" 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 September 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. +.TP +.B \-d\ \-\-data\-relocs +Perform relocations and report any missing functions (ELF only). +.TP +.B \-r\ \-\-function\-relocs +Perform relocations for both data objects and functions, and +report any missing objects (ELF only). +.TP +.B \-\-help +Usage information. +.SH BUGS +.B ldd +does not work very well on libc.so.5 itself. +.PP +.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 +David Engel. +.SH SEE ALSO +.BR ldconfig (8), +.BR ld.so (8). diff -urN glibc-2.2.4.orig/debian/manpages/locale-gen.8 glibc-2.2.4/debian/manpages/locale-gen.8 --- glibc-2.2.4.orig/debian/manpages/locale-gen.8 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/locale-gen.8 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,99 @@ +.\" 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 useable localisation +files for every supported language. This limitation has became necessary +because of the irrational size of files and the plenty of languages +supported by libc. So we decided to use a special mechanism in Debian, +preparing the actuall localisation files on the target host and +distributing only the templates for them. +.PP +\fBlocale-gen\fP is a program that reads the file +\fB/etc/locale.gen\fP and invokes the +\fBlocaledef\fP for the choosen 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 with a simple format: every line that is not empty and does not begin with a # is threaded as a locale definition that is to be build. + +.SH "SEE ALSO" +.PP +localedef (1), locale (1). +.SH "AUTHOR" +.PP +This manual page was written by Eduard Bloch blade@debian.org 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 04 Aug 2001, 12:44 diff -urN glibc-2.2.4.orig/debian/manpages/locale-gen.sgml glibc-2.2.4/debian/manpages/locale-gen.sgml --- glibc-2.2.4.orig/debian/manpages/locale-gen.sgml Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/locale-gen.sgml Mon Sep 10 13:11:31 2001 @@ -0,0 +1,127 @@ + 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"> + + July 27, 2001"> + + 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 useable localisation + files for every supported language. This limitation has became necessary + because of the irrational size of files and the plenty of languages + supported by libc. So we decided to use a special mechanism in Debian, + preparing the actuall localisation files on the target host and + distributing only the templates for them. + + &dhpackage; is a program that reads the file + /etc/locale.gen and invokes the + localedef for the choosen localisation profiles. + Run &dhpackage; after you have modified the /etc/locale.gen file. + + + + + + FILES + + /etc/locale.gen + The main configuration file with a simple format: every line that is not empty and does not begin with a # is threaded as a locale definition that is to be build. + + + + + + SEE ALSO + + localedef (1), locale (1). + + + + + 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. + + +
+ + diff -urN glibc-2.2.4.orig/debian/manpages/locale.1 glibc-2.2.4/debian/manpages/locale.1 --- glibc-2.2.4.orig/debian/manpages/locale.1 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/locale.1 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,276 @@ +.rn '' }` +''' $RCSfile: glibc-2.2.4-sh-linux.diff,v $$Revision: 1.3 $$Date: 2001/09/13 21:43:16 $ +''' +''' $Log: glibc-2.2.4-sh-linux.diff,v $ +''' Revision 1.3 2001/09/13 21:43:16 bgat +''' *** empty log message *** +''' +''' +.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 meaninful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH LOCALE 1 "woody" "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" +locale \- Get locale-specific information. +.SH "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" +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:" +\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" +LC_CTYPE +.PP +.Vb 1 +\& Character classification and case conversion. +.Ve +LC_COLLATE +.PP +.Vb 1 +\& Collation order. +.Ve +LC_TIME +.PP +.Vb 1 +\& Date and time formats. +.Ve +LC_NUMERIC +.PP +.Vb 1 +\& Non-monetary numeric formats. +.Ve +LC_MONETARY +.PP +.Vb 1 +\& Monetary formats. +.Ve +LC_MESSAGES +.Ip "\ \ \ \ \ \ \ \ Formats\ of\ informative\ and\ diagnostic\ messages\ and \ \ \ \ \ \ \ \ interactive\ responses." 0 +.SH "AUTHOR" +\fIlocale\fR was written by Ulrich Drepper for the GNU C Library. +.PP +This manpage was written by Joel Klecker for +the Debian GNU/Linux system. + +.rn }` '' +.IX Title "LOCALE 1" +.IX Name "locale - Get locale-specific information." + +.IX Header "NAME" + +.IX Header "SYNOPSIS" + +.IX Header "DESCRIPTION" + +.IX Subsection "Output Format:" + +.IX Header "ENVIRONMENT VARIABLES" + +.IX Item "\ \ \ \ \ \ \ \ Formats\ of\ informative\ and\ diagnostic\ messages\ and \ \ \ \ \ \ \ \ interactive\ responses." + +.IX Header "AUTHOR" + diff -urN glibc-2.2.4.orig/debian/manpages/locale.pod glibc-2.2.4/debian/manpages/locale.pod --- glibc-2.2.4.orig/debian/manpages/locale.pod Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/locale.pod Mon Sep 10 13:11:31 2001 @@ -0,0 +1,71 @@ +=head1 NAME + +locale - Get locale-specific information. + +=head1 SYNOPSIS + +B B<[> C<-a> | C<-m>B<]> + +B B<[> -ck B<]> I... + +=head1 DESCRIPTION + +The I program writes information about the current locale +environment, or all locales, to standard output. + +When invoked without arguments, I summarizes the current +locale environment for each locale category defined by the LC_* +environment variables. + +B<-a>, B<--all-locales> + + Write names of available locales. + +B<-m>, B<--charmaps> + + Write names of available charmaps. + +=head2 Output Format: + +B<-c>, B<--category-name> + + Write names of selected categories. + +B<-k>, B<--keyword-name> + + Write names and values of selected keywords. + +=head1 ENVIRONMENT VARIABLES + +LC_CTYPE + + Character classification and case conversion. + +LC_COLLATE + + Collation order. + +LC_TIME + + Date and time formats. + +LC_NUMERIC + + Non-monetary numeric formats. + +LC_MONETARY + + Monetary formats. + +LC_MESSAGES + +=item +S< Formats of informative and diagnostic messages and> +S< interactive responses.> + +=head1 AUTHOR + +I was written by Ulrich Drepper for the GNU C Library. + +This manpage was written by Joel Klecker Eespy@debian.orgE for +the Debian GNU/Linux system. diff -urN glibc-2.2.4.orig/debian/manpages/localedef.1 glibc-2.2.4/debian/manpages/localedef.1 --- glibc-2.2.4.orig/debian/manpages/localedef.1 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/localedef.1 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,153 @@ +.TH LOCALEDEF 1 "July 28, 1997" +.SH NAME +localedef \- compile locale definition files +.SH SYNOPSIS +.B localedef +.RB [ \-f +.IR charmapfile ] +.\" This option is ignored by the localedef program. +.\" To avoid confusion, I decided not to list it in the synopsis. +.\" .RB [ \-u +.\" .IR codeset ] +.RB [ \-i +.IR inputfile ] +.RB [ \-\-force ] +.RB [ \-\-verbose ] +.RB [ \-\-posix ] +.RB [ \-\-quiet ] +.I outputpath +.br +.B "localedef \-\-version" +.br +.B "localedef \-\-help" +.SH DESCRIPTION +The +.B localedef +program reads the indicated +.I charmap +and +.I input +files, compiles them to a form usable by the +.BR locale (7) +functions in the C library, and places the six output files in the +.I outputpath +directory. +.PP +If no +.I charmapfile +is given, +.I POSIX +is used by default. +If no +.I inputfile +is given, or if it is given as +.BR \- , +.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 (e.g. +.BR \-cv ). +If an option takes an argument, the argument can be given separately +as the next word, or it can be written as option=argument. +.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 directory 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 +.B "\-c, \-\-force" +Write the output files even if warnings were generated about the input +file. +.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 +Be strictly POSIX conformant. Implies +.BR \-\-verbose . +This option currently has no other effect. Posix conformance is +assumed if the environment variable +.B POSIXLY_CORRECT +is set. +.TP +.BI \-u " codeset" ", \-\-code\-set\-name=" codeset +This option is accepted but ignored. +.TP +.B "\-h, \-\-help" +Print a usage summary and exit. Also prints the default paths used by +.BR localedef . +.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 +The default directory for locale definition files. +.SH FILES +.TP +.B /usr/share/i18n/charmaps +Usual default charmap path. +.TP +.B /usr/share/locale +Usual default output path. See the output from +.B "localedef \-\-help" +for the paths used in your version. +.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. +.SH "SEE ALSO" +.BR locale "(5), " locale "(7), " locale (1) +.SH AUTHOR +The program was written by Ulrich Drepper. +.PP +This manpage was written by Richard Braakman on +behalf of the Debian GNU/Linux Project and anyone else who wants it. +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 diff -urN glibc-2.2.4.orig/debian/manpages/nscd.8 glibc-2.2.4/debian/manpages/nscd.8 --- glibc-2.2.4.orig/debian/manpages/nscd.8 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/nscd.8 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,86 @@ +.\" 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 . +.El +.Bl -tag -width Ds +.It Fl g , Fl -statistic +Print current configuration statistic. +.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. The number of threads started denotes that 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 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 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 diff -urN glibc-2.2.4.orig/debian/manpages/nscd.conf.5 glibc-2.2.4/debian/manpages/nscd.conf.5 --- glibc-2.2.4.orig/debian/manpages/nscd.conf.5 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/nscd.conf.5 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,171 @@ +.\" 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 +The caches +.BR nscd (8) +uses as well as some generic options can be configured in +.IR /etc/nscd.conf . + +.PP +The configuration file consists of a set of lines. +All empty lines, and all text on a line after a '#', will be ignored. +All remaining lines denote the setting of an option. There are two +kinds of options: General options influence +.BR nscd (8)'s +general behaviour, while cache options only affect the named 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 output that +is produced. +.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 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 is ignored if +.BR nscd (8) +is called with the +.I -S +or +.I --secure +argument. +.SH CACHE OPTIONS +All cache options take two arguments, the first one denoting +the service or cache the options is going to affect. Currently +.I service +can be one of +.BR passwd , +.B 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 +cache 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. +.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) diff -urN glibc-2.2.4.orig/debian/manpages/nscd_nischeck.8 glibc-2.2.4/debian/manpages/nscd_nischeck.8 --- glibc-2.2.4.orig/debian/manpages/nscd_nischeck.8 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/nscd_nischeck.8 Mon Sep 10 13:11:31 2001 @@ -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 everybody has read permissions for a given NIS+ table and returns 0 +if this is the case or 1 +if only authenticated users can read the table. +.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 diff -urN glibc-2.2.4.orig/debian/manpages/rpcgen.1 glibc-2.2.4/debian/manpages/rpcgen.1 --- glibc-2.2.4.orig/debian/manpages/rpcgen.1 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/rpcgen.1 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,434 @@ +.\" @(#)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|\-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. +When 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 compatibilty. 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\-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\-s\Sc, +\f4\-s\Ss +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\-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). diff -urN glibc-2.2.4.orig/debian/manpages/rpcinfo.8 glibc-2.2.4/debian/manpages/rpcinfo.8 --- glibc-2.2.4.orig/debian/manpages/rpcinfo.8 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/rpcinfo.8 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,166 @@ +.\" from: @(#)rpcinfo.8c 2.2 88/08/03 4.0 RPCSRC; from 1.24 88/02/25 SMI +.\" $Id: glibc-2.2.4-sh-linux.diff,v 1.3 2001/09/13 21:43:16 bgat 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. diff -urN glibc-2.2.4.orig/debian/manpages/sprof.1 glibc-2.2.4/debian/manpages/sprof.1 --- glibc-2.2.4.orig/debian/manpages/sprof.1 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/sprof.1 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,227 @@ +.rn '' }` +''' $RCSfile: glibc-2.2.4-sh-linux.diff,v $$Revision: 1.3 $$Date: 2001/09/13 21:43:16 $ +''' +''' $Log: glibc-2.2.4-sh-linux.diff,v $ +''' Revision 1.3 2001/09/13 21:43:16 bgat +''' *** empty log message *** +''' +''' +.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 meaninful fashion. +.if \nF \{ +.de IX +.tm Index:\\$1\t\\n%\t"\\$2" +.. +.nr % 0 +.rr F +.\} +.TH SPROF 1 "woody" "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" + diff -urN glibc-2.2.4.orig/debian/manpages/sprof.pod glibc-2.2.4/debian/manpages/sprof.pod --- glibc-2.2.4.orig/debian/manpages/sprof.pod Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/sprof.pod Mon Sep 10 13:11:31 2001 @@ -0,0 +1,28 @@ +=head1 NAME + +sprof - Read and display shared object profiling data + +=head1 SYNOPSIS + +B B<-p>|B<-c> [B<-q>] + +=head1 DESCRIPTION + +B<--call-pairs>, B<-c> + + print list of count paths and their number of use + +B<--flat-profile>, B<-p> + + generate flat profile with counts and ticks + +B<--graph>, B<-q> + + generate call graph + +=head1 AUTHOR + +I was written by Ulrich Drepper for the GNU C Library + +This man page was written by Joel Klecker Eespy@debian.orgE for +the Debian GNU/Linux system. diff -urN glibc-2.2.4.orig/debian/manpages/tzconfig.8 glibc-2.2.4/debian/manpages/tzconfig.8 --- glibc-2.2.4.orig/debian/manpages/tzconfig.8 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/tzconfig.8 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,111 @@ +.\" 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 +.TH TZCONFIG 8 "12 June 1998" "Debian" "Debian Timezone Configuration" +.SH NAME +tzconfig \- set the local timezone +.SH SYNOPSIS +.B tzconfig +.SH DESCRIPTION +This manual page explains how you can use the +.B "tzconfig" +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. + +A valid system time together with the correct local time zone will give you best performance +and highest reliablility. 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. + +.B tzconfig +is called without any parameters from the shell. First it presents the current setting and asks +for verification to change it. + +You may press +.B Ctrl-C +to interrupt the script at any time. + +After you made your choice, +.B tzconfig +will try to change the timezone for you. See the +.B Internals +section below for technical details. You must have root privilegies to actually change +anything. Please use +.BR tzselect (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. +.SH "A WORD OF WARNING" +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. + +The Debian GNU/Linux system gains its knowledge of this setting +from the file +.IR /etc/default/rcS . +This file contains either the line +.BR UTC=yes , +which indicates that the hardware clock is set to UTC, or it contains the line +.BR UTC=no , +which declares the hardware clock is set to Local Time. If these setting are correct, and the hardware +clock is truely 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 +.BR hwclock (8) +for more details on this topic. + +.SH Internals +The work done by +.B tzconfig +is actually pretty simple. It just updates the link +.I /etc/localtime +to point to the correct timezone installed in +.IR /usr/share/zoneinfo/ . + +There is nothing wrong with doing this manually. However, using +.B tzconfig +you don't have to remember the path to the timezones. +.SH FILES +.I /etc/timezone +.BR +.I /etc/localtime +.BR +.I /usr/share/zoneinfo +.SH "SEE ALSO" +.BR hwclock (8) +.BR tzselect (1) +.BR rcS (5) +.SH AUTHOR +Copyright 1998 Marcus Brinkmann +.BR +Edits Copyright 1998 Dale Scheetz + +Please see nroff source for legal notice. + + + + + + + diff -urN glibc-2.2.4.orig/debian/manpages/tzselect.1 glibc-2.2.4/debian/manpages/tzselect.1 --- glibc-2.2.4.orig/debian/manpages/tzselect.1 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/tzselect.1 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,70 @@ +.\" 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 tzconfig +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. + +Nothe that +.B tzselect +will not actually change the timezone for you. Use the +.BR tzconfig (8) +utility to achieve this. +.SH FILES +.I /usr/share/zoneinfo/ +.SH "SEE ALSO" +.BR hwclock (8) +.BR tzconfig (8) +.SH AUTHOR +Copyright 1998 Marcus Brinkmann + +Please see nroff source for legal notice. + + + + + + + + diff -urN glibc-2.2.4.orig/debian/manpages/zdump.1 glibc-2.2.4/debian/manpages/zdump.1 --- glibc-2.2.4.orig/debian/manpages/zdump.1 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/zdump.1 Mon Sep 10 13:11:31 2001 @@ -0,0 +1,39 @@ +.TH ZDUMP 8 +.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. +.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 diff -urN glibc-2.2.4.orig/debian/manpages/zic.8 glibc-2.2.4/debian/manpages/zic.8 --- glibc-2.2.4.orig/debian/manpages/zic.8 Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/manpages/zic.8 Mon Sep 10 13:11:31 2001 @@ -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 diff -urN glibc-2.2.4.orig/debian/nscd/DEBIAN/conffiles glibc-2.2.4/debian/nscd/DEBIAN/conffiles --- glibc-2.2.4.orig/debian/nscd/DEBIAN/conffiles Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/nscd/DEBIAN/conffiles Mon Sep 10 13:11:31 2001 @@ -0,0 +1,2 @@ +/etc/nscd.conf +/etc/init.d/nscd diff -urN glibc-2.2.4.orig/debian/nscd/DEBIAN/postinst glibc-2.2.4/debian/nscd/DEBIAN/postinst --- glibc-2.2.4.orig/debian/nscd/DEBIAN/postinst Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/nscd/DEBIAN/postinst Mon Sep 10 13:11:31 2001 @@ -0,0 +1,19 @@ +#! /bin/sh +set -e + +if [ "$1" = configure ]; then + update-rc.d nscd defaults 19 > /dev/null + /etc/init.d/nscd restart + if [ -d /usr/doc ]; then + package=$(basename $0 .postinst) + if [ ! -e /usr/doc/$package ]; then + (cd /usr/doc; + if [ -d ../share/doc/$package ]; then + ln -s ../share/doc/$package $package ; + fi + ) + fi + fi +fi +exit 0 + diff -urN glibc-2.2.4.orig/debian/nscd/DEBIAN/postrm glibc-2.2.4/debian/nscd/DEBIAN/postrm --- glibc-2.2.4.orig/debian/nscd/DEBIAN/postrm Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/nscd/DEBIAN/postrm Mon Sep 10 13:11:31 2001 @@ -0,0 +1,8 @@ +#! /bin/sh +set -e + +if [ "x$1" = xpurge ]; then + update-rc.d nscd remove > /dev/null +fi + +exit 0 diff -urN glibc-2.2.4.orig/debian/nscd/DEBIAN/prerm glibc-2.2.4/debian/nscd/DEBIAN/prerm --- glibc-2.2.4.orig/debian/nscd/DEBIAN/prerm Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/nscd/DEBIAN/prerm Mon Sep 10 13:11:31 2001 @@ -0,0 +1,13 @@ +#! /bin/sh +set -e + +/etc/init.d/nscd stop || true + +if [ $1 = remove ]; then + if [ -d /usr/doc ]; then + package=$(basename $0 .prerm) + if [ -L /usr/doc/$package ]; then + rm /usr/doc/$package + fi + fi +fi diff -urN glibc-2.2.4.orig/debian/nscd/etc/init.d/nscd glibc-2.2.4/debian/nscd/etc/init.d/nscd --- glibc-2.2.4.orig/debian/nscd/etc/init.d/nscd Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/nscd/etc/init.d/nscd Mon Sep 10 13:11:31 2001 @@ -0,0 +1,62 @@ +#!/bin/sh +# +# 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. +[ -f /etc/nscd.conf ] || exit 0 +[ -x /usr/sbin/nscd ] || exit 0 + +# nscd does not run on any kernel lower than 2.2.0 because of threading +# problems, so we require that in first place. +case `uname -r` in + 2.[0-1].*|1.*) + # This is not ok + exit 0 + ;; +esac + +RETVAL=0 +case "$1" in + start) + secure="" + for table in passwd group + do + if egrep '^'$table':.*nisplus' /etc/nsswitch.conf >/dev/null + then + /usr/sbin/nscd_nischeck $table || + secure="$secure -S $table,yes" + fi + done + echo -n "Starting Name Service Cache Daemon: " + echo "nscd." + start-stop-daemon --start --quiet --exec /usr/sbin/nscd -- $secure + RETVAL=$? + ;; + stop) + echo -n "Stopping Name Service Cache Daemon: " + echo nscd. + /usr/sbin/nscd -K + RETVAL=$? + ;; + reload) + echo "Reloading Name Service Cache Daemon configuration." + start-stop-daemon --stop --signal 1 --quiet --oknodo --exec /usr/sbin/nscd + RETVAL=$? + ;; + force-reload) + $0 stop + $0 start + ;; + restart) + $0 force-reload + ;; + *) + echo "Usage: /etc/init.d/nscd {start|stop|reload|force-reload|restart}" + ;; +esac +exit $RETVAL diff -urN glibc-2.2.4.orig/debian/packages.d/glibc-doc.mk glibc-2.2.4/debian/packages.d/glibc-doc.mk --- glibc-2.2.4.orig/debian/packages.d/glibc-doc.mk Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/packages.d/glibc-doc.mk Mon Sep 10 13:11:31 2001 @@ -0,0 +1,41 @@ +$(glibc)-doc: $(stamp_install) debian/control $(mkdir)/sysdeps.mk + $(checkroot) + $(debian-clean) + -rm -rf $(tmpdir)/$@ + + $(make_directory) $(tmpdir)/$@$(infodir) + $(INSTALL_DATA) $(install_root)$(infodir)/*.info* $(tmpdir)/$@$(infodir)/. + -gzip -9f $(tmpdir)/$@$(infodir)/* + + $(make_directory) $(tmpdir)/$@$(mandir)/man3 + unset MAKEFLAGS; $(MAKE) -C $(srcdir)/linuxthreads/man all + $(make_directory) $(install_root)$(mandir)/man3 + $(INSTALL_DATA) $(srcdir)/linuxthreads/man/*.3thr \ + $(install_root)$(mandir)/man3/. + $(INSTALL_DATA) $(install_root)$(mandir)/man3/* $(tmpdir)/$@$(mandir)/man3/. + -gzip -f9 $(tmpdir)/$@$(mandir)/man?/* + + $(make_directory) $(tmpdir)/$@$(docdir)/$@ + unset MAKEFLAGS; $(MAKE) -C $(objdir) subdirs=manual info + cd $(srcdir)/manual && texi2html -l2h -split chapter chapters.texi + $(make_directory) $(tmpdir)/$@$(docdir)/$@/html + $(INSTALL_DATA) $(srcdir)/manual/*.html $(tmpdir)/$@$(docdir)/$@/html/. + ln -sf chapters_toc.html $(tmpdir)/$@$(docdir)/$@/html/index.html + # This is blank for some reason + rm -f $(tmpdir)/$@$(docdir)/$@/html/chapters.html + $(INSTALL_DATA) $(srcdir)/manual/dir-add.info \ + $(tmpdir)/$@$(docdir)/$@/libc.info + -gzip -f9 $(tmpdir)/$@$(docdir)/$@/libc.info + $(INSTALL_DATA) $(srcdir)/ChangeLog* $(tmpdir)/$@$(docdir)/$@/. + -gzip -f9 $(tmpdir)/$@$(docdir)/$@/ChangeLog* + ln -sf ChangeLog.gz $(tmpdir)/$@$(docdir)/$@/changelog.gz + $(INSTALL_DATA) $(srcdir)/linuxthreads/FAQ.html $(tmpdir)/$@$(docdir)/$@/FAQ.threads.html + $(INSTALL_DATA) debian/changelog $(tmpdir)/$@$(docdir)/$@/changelog.Debian + -gzip -f9 $(tmpdir)/$@$(docdir)/$@/changelog.Debian + $(INSTALL_DATA) debian/copyright $(tmpdir)/$@$(docdir)/$@/. + + cp -a debian/$@/* $(tmpdir)/$@ + dpkg-gencontrol -isp -p$@ -P$(tmpdir)/$@ + chown -R root.root $(tmpdir)/$@ + chmod -R go=rX $(tmpdir)/$@ + dpkg --build $(tmpdir)/$@ .. diff -urN glibc-2.2.4.orig/debian/packages.d/libc-dbg.mk glibc-2.2.4/debian/packages.d/libc-dbg.mk --- glibc-2.2.4.orig/debian/packages.d/libc-dbg.mk Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/packages.d/libc-dbg.mk Mon Sep 10 13:11:31 2001 @@ -0,0 +1,32 @@ +$(libc)-dbg: $(stamp_install) debian/control $(mkdir)/sysdeps.mk + $(checkroot) + $(debian-clean) + -rm -rf $(tmpdir)/$@ + + $(make_directory) $(tmpdir)/$@/DEBIAN + $(make_directory) $(tmpdir)/$@$(libdir)/debug + $(INSTALL_DATA) $(install_root)/lib/*-$(VERSION).so \ + $(tmpdir)/$@$(libdir)/debug/. +ifeq ($(threads),yes) + $(INSTALL_DATA) $(install_root)/lib/libpthread-0.9.so \ + $(tmpdir)/$@$(libdir)/debug/libpthread-0.9.so + $(INSTALL_DATA) $(install_root)/lib/libthread_db-1.0.so \ + $(tmpdir)/$@$(libdir)/debug/. +endif + for link in `find $(install_root)/lib -type l \ + -name '*.so.*' ! -name 'libnss*_*.so.1*'`; do \ + cp -vdf $$link $(tmpdir)/$@$(libdir)/debug; done + + $(make_directory) $(tmpdir)/$@$(docdir)/$@ + $(INSTALL_DATA) debian/changelog $(tmpdir)/$@$(docdir)/$@/changelog.Debian + gzip -9fv $(tmpdir)/$@$(docdir)/$@/changelog.Debian + $(INSTALL_DATA) debian/copyright $(tmpdir)/$@$(docdir)/$@/. + + cp -a debian/$@/* $(tmpdir)/$@/DEBIAN + + dpkg-gencontrol -isp -p$@ -P$(tmpdir)/$@ + chown -R root.root $(tmpdir)/$@ + chmod -R go=rX $(tmpdir)/$@ + # Make ld.so executable + chmod 755 $(tmpdir)/$@$(libdir)/debug/ld-$(VERSION).so + dpkg --build $(tmpdir)/$@ .. diff -urN glibc-2.2.4.orig/debian/packages.d/libc-dev.mk glibc-2.2.4/debian/packages.d/libc-dev.mk --- glibc-2.2.4.orig/debian/packages.d/libc-dev.mk Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/packages.d/libc-dev.mk Mon Sep 10 13:11:31 2001 @@ -0,0 +1,80 @@ +$(libc)-dev: $(stamp_install) debian/control $(mkdir)/sysdeps.mk + $(checkroot) + $(debian-clean) + -rm -rf $(tmpdir)/$@ + + $(make_directory) $(tmpdir)/$@/DEBIAN + $(make_directory) $(tmpdir)/$@$(bindir) + $(INSTALL_PROGRAM) $(addprefix $(install_root)$(bindir)/, \ + gencat getconf mtrace rpcgen) $(tmpdir)/$@$(bindir)/. + + $(make_directory) $(tmpdir)/$@$(mandir)/man1 + $(INSTALL_DATA) $(addprefix debian/manpages/, getconf.1 rpcgen.1) \ + $(tmpdir)/$@$(mandir)/man1/. + -gzip -9f $(tmpdir)/$@$(mandir)/man?/* + +ifeq ($(DEB_BUILD_OPTION_STRIP),yes) + -$(STRIP) --strip-unneeded -R .comment -R .note $(tmpdir)/$@$(bindir)/* +endif + $(make_directory) $(tmpdir)/$@$(libdir) + $(INSTALL_DATA) $(install_root)$(libdir)/*.o $(tmpdir)/$@$(libdir)/. + $(INSTALL_DATA) $(install_root)$(libdir)/*.a $(tmpdir)/$@$(libdir)/. + rm -f $(tmpdir)/$@$(libdir)/*_?.a +ifeq ($(DEB_BUILD_OPTION_STRIP),yes) +# Don't strip linker scripts. + @tostrip=; for file in $(tmpdir)/$@$(libdir)/*; do \ + case `file $$file` in \ + *text) ;; *) tostrip="$$tostrip $$file" ;; esac; \ + done; echo "$(STRIP) -g $$tostrip"; \ + $(STRIP) -g $$tostrip +endif +# Install development links. + for f in $(install_root)$(libdir)/lib*.so; do \ + case "$$f" in \ + *-$(VERSION).so | *-0.[789].so ) ;; \ + */libSegFault.so|*/libthread_db.so|*/libdb.so) ;; \ + *) cp -df $$f $(tmpdir)/$@$(libdir)/. || exit 1 ;; \ + esac; \ + done +ifneq ($(libdir),/lib) +# Make links absolute, not relative + cd $(tmpdir)/$@$(libdir); \ + for link in `find . -name '*.so' -type l`; do \ + linksrc=$$(readlink $$link | sed 's%../..%%'); \ + rm -f $$link; ln -sf $$linksrc $$link; done +endif + $(make_directory) $(tmpdir)/$@$(includedir) + cp -a $(install_root)$(includedir) $(tmpdir)/$@/usr/ +ifeq ($(DEB_HOST_GNU_SYSTEM),linux) + $(make_directory) $(addprefix $(tmpdir)/$@$(includedir)/,asm linux) + cp -R $(LINUX_SOURCE)/include/linux/. $(tmpdir)/$@$(includedir)/linux/ + cp -R $(LINUX_SOURCE)/include/asm/. $(tmpdir)/$@$(includedir)/asm/ +ifeq ($(DEB_HOST_GNU_CPU),sparc) + # Sparc has a 32/64 build setup, make sure we support it + cp -R $(LINUX_SOURCE)/include/asm-{sparc,sparc64} \ + $(tmpdir)/$@$(includedir)/. + $(INSTALL_PROGRAM) $(LINUX_SOURCE)/generate-asm.sh \ + $(tmpdir)/$@$(bindir)/generate-asm + $(tmpdir)/$@$(bindir)/generate-asm $(tmpdir)/$@$(includedir)/ + rm -rf $(tmpdir)/$@$(includedir)/asm-sparc64 +else + cp -R $(LINUX_SOURCE)/include/asm/. $(tmpdir)/$@$(includedir)/asm/ +endif + rm -rf $(tmpdir)/$@$(includedir)/linux/modules + rm -f $(tmpdir)/$@$(includedir)/linux/modversions.h +endif + # Remove cruft from CVS trees + find $(tmpdir)/$@$(includedir)/ -name CVS -type d | xargs -r rm -rf + find $(tmpdir)/$@$(includedir)/ -name '.#*' -type f | xargs rm -f + $(make_directory) $(tmpdir)/$@$(docdir)/$@ + $(INSTALL_DATA) debian/changelog $(tmpdir)/$@$(docdir)/$@/changelog.Debian + -find $(tmpdir)/$@$(docdir)/$@ -type f | xargs -r gzip -9f + $(INSTALL_DATA) debian/copyright $(tmpdir)/$@$(docdir)/$@/. + + cp -a debian/$@/* $(tmpdir)/$@/DEBIAN + + dpkg-gencontrol -isp -p$@ -P$(tmpdir)/$@ $(libc_dev_control_flags) + chown -R root.root $(tmpdir)/$@ + chmod -R go=rX $(tmpdir)/$@ + dpkg --build $(tmpdir)/$@ .. + diff -urN glibc-2.2.4.orig/debian/packages.d/libc-pic.mk glibc-2.2.4/debian/packages.d/libc-pic.mk --- glibc-2.2.4.orig/debian/packages.d/libc-pic.mk Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/packages.d/libc-pic.mk Mon Sep 10 13:11:31 2001 @@ -0,0 +1,33 @@ +$(libc)-pic: $(stamp_install) debian/control $(mkdir)/sysdeps.mk + $(checkroot) + $(debian-clean) + -rm -rf $(tmpdir)/$@ + + $(make_directory) $(tmpdir)/$@$(libdir)/libc_pic + $(INSTALL_DATA) $(objdir)/libc_pic.a $(tmpdir)/$@$(libdir)/. + $(INSTALL_DATA) $(objdir)/libc.map $(tmpdir)/$@$(libdir)/libc_pic.map + $(INSTALL_DATA) $(objdir)/elf/soinit.os $(tmpdir)/$@$(libdir)/libc_pic/soinit.o + $(INSTALL_DATA) $(objdir)/elf/sofini.os $(tmpdir)/$@$(libdir)/libc_pic/sofini.o + + $(INSTALL_DATA) $(objdir)/math/libm_pic.a $(tmpdir)/$@$(libdir)/. + $(INSTALL_DATA) $(objdir)/libm.map $(tmpdir)/$@$(libdir)/libm_pic.map + $(INSTALL_DATA) $(objdir)/resolv/libresolv_pic.a $(tmpdir)/$@$(libdir)/. + $(INSTALL_DATA) $(objdir)/libresolv.map $(tmpdir)/$@$(libdir)/libresolv_pic.map +ifeq ($(DEB_HOST_GNU_SYSTEM),gnu) + $(INSTALL_DATA) $(objdir)/hurd/libhurduser_pic.a $(tmpdir)/$@$(libdir)/. + $(INSTALL_DATA) $(objdir)/mach/libmachuser_pic.a $(tmpdir)/$@$(libdir)/. +endif +ifeq ($(DEB_BUILD_OPTION_STRIP),yes) + $(STRIP) -g $(tmpdir)/$@$(libdir)/lib*_pic.a +endif + $(make_directory) $(tmpdir)/$@$(docdir)/$@ + $(INSTALL_DATA) debian/changelog $(tmpdir)/$@$(docdir)/$@/changelog.Debian + -find $(tmpdir)/$@$(docdir)/$@ -type f | xargs -r gzip -9f + $(INSTALL_DATA) debian/copyright $(tmpdir)/$@$(docdir)/$@/. + + $(make_directory) $(tmpdir)/$@/DEBIAN + cp -a debian/$@/* $(tmpdir)/$@/DEBIAN + dpkg-gencontrol -isp -p$@ -P$(tmpdir)/$@ + chown -R root.root $(tmpdir)/$@ + chmod -R go=rX $(tmpdir)/$@ + dpkg --build $(tmpdir)/$@ .. diff -urN glibc-2.2.4.orig/debian/packages.d/libc-prof.mk glibc-2.2.4/debian/packages.d/libc-prof.mk --- glibc-2.2.4.orig/debian/packages.d/libc-prof.mk Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/packages.d/libc-prof.mk Mon Sep 10 13:11:31 2001 @@ -0,0 +1,44 @@ +$(libc)-prof: $(stamp_install) debian/control $(mkdir)/sysdeps.mk + $(checkroot) + $(debian-clean) + -rm -rf $(tmpdir)/$@ + + $(make_directory) $(tmpdir)/$@/DEBIAN + $(make_directory) $(tmpdir)/$@$(libdir) + + $(INSTALL_DATA) $(install_root)$(libdir)/*_p.a $(tmpdir)/$@$(libdir)/. + + $(make_directory) $(tmpdir)/$@$(bindir) + + $(INSTALL_PROGRAM) $(install_root)$(bindir)/sprof $(tmpdir)/$@$(bindir)/. + + $(make_directory) $(tmpdir)/$@$(mandir)/man1 + + $(INSTALL_DATA) debian/manpages/sprof.1 $(tmpdir)/$@$(mandir)/man1/. +ifeq ($(DEB_BUILD_OPTION_STRIP),yes) + $(STRIP) --strip-unneeded -R .note $(tmpdir)/$@$(bindir)/sprof +# Don't strip linker scripts. + @tostrip=; for file in \ + `find $(tmpdir)/$@$(libdir) \ + -type f -name '*.o' -o -name '*.a'`; do \ + case `file $$file` in \ + *text) ;; \ + *) tostrip="$$tostrip $$file" ;; \ + esac; \ + done; \ + echo "$(STRIP) -g $$tostrip"; \ + $(STRIP) -g $$tostrip +endif + -gzip -f9 $(tmpdir)/$@$(mandir)/man1/sprof.1 + + $(make_directory) $(tmpdir)/$@$(docdir)/$@ + $(INSTALL_DATA) debian/changelog $(tmpdir)/$@$(docdir)/$@/changelog.Debian + -find $(tmpdir)/$@$(docdir)/$@ -type f | xargs -r gzip -9f + $(INSTALL_DATA) debian/copyright $(tmpdir)/$@$(docdir)/$@/. + + cp -a debian/$@/* $(tmpdir)/$@/DEBIAN + + dpkg-gencontrol -isp -p$@ -P$(tmpdir)/$@ + chown -R root.root $(tmpdir)/$@ + chmod -R go=rX $(tmpdir)/$@ + dpkg --build $(tmpdir)/$@ .. diff -urN glibc-2.2.4.orig/debian/packages.d/libc.mk glibc-2.2.4/debian/packages.d/libc.mk --- glibc-2.2.4.orig/debian/packages.d/libc.mk Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/packages.d/libc.mk Mon Sep 10 13:11:31 2001 @@ -0,0 +1,109 @@ +$(libc): $(stamp_install) debian/control $(mkdir)/sysdeps.mk debian/libc/DEBIAN/shlibs + $(checkroot) + $(debian-clean) + -rm -rf $(tmpdir)/$@ + + $(make_directory) $(tmpdir)/$@/lib + $(INSTALL_PROGRAM) $(install_root)/lib/ld-$(VERSION).so $(tmpdir)/$@/lib/. + $(INSTALL_DATA) $(install_root)/lib/lib*-$(VERSION).so $(tmpdir)/$@/lib/. + $(INSTALL_PROGRAM) $(install_root)/lib/libc-$(VERSION).so $(tmpdir)/$@/lib/. + $(INSTALL_DATA) $(install_root)/lib/libSegFault.so $(tmpdir)/$@/lib/. +ifeq ($(threads),yes) + $(INSTALL_DATA) $(install_root)/lib/libpthread-0.9.so $(tmpdir)/$@/lib/. + $(INSTALL_DATA) $(install_root)/lib/libthread_db-1.0.so $(tmpdir)/$@/lib/. +endif + @set -ex; cd $(install_root)/lib && \ + for l in `find . -type l -name '*.so.*' ! -name 'libnss*_*.so.1*'`; \ + do cp -df $(install_root)/lib/$$l $(tmpdir)/$@/lib/.; done +ifeq ($(DEB_HOST_GNU_SYSTEM),gnu) +# Why doesn't the glibc makefile install this? + ln -sf ld.so.1 $(tmpdir)/$@/lib/ld.so +endif + $(make_directory) $(tmpdir)/$@$(libdir)/gconv + $(INSTALL_DATA) $(install_root)$(libdir)/gconv/* $(tmpdir)/$@$(libdir)/gconv/. + + $(make_directory) $(tmpdir)/$@$(datadir) + $(make_directory) $(tmpdir)/$@$(bindir) + $(INSTALL_PROGRAM) $(addprefix $(install_root)$(bindir)/, \ + getent iconv locale localedef) $(tmpdir)/$@$(bindir)/. + $(INSTALL_SCRIPT) $(addprefix $(install_root)$(bindir)/, \ + catchsegv glibcbug tzselect) $(tmpdir)/$@$(bindir)/. + $(INSTALL_SCRIPT) $(install_root)$(bindir)/ldd $(tmpdir)/$@$(bindir)/. + set -e ; if [ -f "$(install_root)$(bindir)/lddlibc4" ] ; then \ + $(INSTALL_PROGRAM) $(install_root)$(bindir)/lddlibc4 $(tmpdir)/$@$(bindir)/.; \ + fi + $(make_directory) $(tmpdir)/$@/sbin +ifeq ($(DEB_HOST_GNU_SYSTEM),gnu) + # Fake ldconfig script for HURD + $(INSTALL_SCRIPT) debian/ldconfig-hurd.sh $(tmpdir)/$@/sbin/ldconfig +else + $(INSTALL_PROGRAM) $(install_root)/sbin/ldconfig $(tmpdir)/$@/sbin +endif + $(INSTALL_PROGRAM) $(install_root)$(bindir)/getent $(tmpdir)/$@$(bindir)/. + + $(INSTALL_PROGRAM) $(install_root)$(sbindir)/zdump $(tmpdir)/$@$(bindir)/. + + $(make_directory) $(tmpdir)/$@$(sbindir) + $(INSTALL_PROGRAM) $(install_root)$(sbindir)/zic $(tmpdir)/$@$(sbindir)/. + # History wants rpcinfo here + $(INSTALL_PROGRAM) $(install_root)$(sbindir)/rpcinfo $(tmpdir)/$@$(bindir)/. + $(make_directory) $(tmpdir)/$@$(libexecdir) + $(INSTALL) --mode=4755 $(install_root)$(libexecdir)/pt_chown $(tmpdir)/$@$(libexecdir)/. + + $(make_directory) $(tmpdir)/$@$(mandir)/man1 + $(INSTALL_DATA) $(addprefix debian/manpages/, \ + getent.1 iconv.1 locale.1 localedef.1 tzselect.1 ldd.1 zdump.1 catchsegv.1) \ + $(tmpdir)/$@$(mandir)/man1/. + $(make_directory) $(tmpdir)/$@$(mandir)/man8 + $(INSTALL_DATA) $(addprefix debian/manpages/, \ + zic.8 ld.so.8 ldconfig.8 tzconfig.8 rpcinfo.8) $(tmpdir)/$@$(mandir)/man8/. + -gzip -9f $(tmpdir)/$@$(mandir)/man?/* + +# It is safe to strip the dynamic linker though _dl_debug_state must be kept +# in order for gdb to work. +ifeq ($(DEB_BUILD_OPTION_STRIP),yes) + #ifeq ($(DEB_HOST_GNU_CPU),i386) // Let's try this for all archs + $(STRIP) -g -K _dl_debug_state -R .note -R .comment $(tmpdir)/$@/lib/ld-$(VERSION).so + #endif + cd $(tmpdir)/$@ && \ + $(STRIP) --strip-unneeded -R .note -R .comment lib/libSegFault.so \ + lib/lib*-$(VERSION).so ./$(libexecdir)/pt_chown + -$(STRIP) --strip-unneeded -R .note $(tmpdir)/$@$(bindir)/* $(tmpdir)/$@$(sbindir)/* \ + $(tmpdir)/$@/sbin/* +ifeq ($(threads),yes) + $(STRIP) --strip-debug -R .note -R .comment $(tmpdir)/$@/lib/libpthread-0.9.so + $(STRIP) --strip-unneeded -R .note -R .comment $(tmpdir)/$@/lib/libthread_db-1.0.so +endif + $(STRIP) $(tmpdir)/$@$(libdir)/gconv/*.so +endif + $(make_directory) $(tmpdir)/$@$(datadir) +ifeq ($(cross_compiling),yes) + $(warning Copying zoneinfo from build system.) + cp -a /usr/share/zoneinfo $(tmpdir)/$@$(datadir)/. +else + cp -a $(install_root)$(datadir)/zoneinfo $(tmpdir)/$@$(datadir)/. +endif + ln -sf /etc/localtime $(tmpdir)/$@$(datadir)/zoneinfo/localtime + $(make_directory) $(tmpdir)/$@$(docdir)/$@ + $(INSTALL_DATA) $(addprefix $(srcdir)/,BUGS FAQ INSTALL INTERFACE \ + NEWS NOTES PROJECTS README hesiod/README.hesiod) \ + $(tmpdir)/$@$(docdir)/$@/. +ifeq ($(threads),yes) + $(INSTALL_DATA) $(srcdir)/linuxthreads/ChangeLog \ + $(tmpdir)/$@$(docdir)/$@/ChangeLog.linuxthreads + $(INSTALL_DATA) $(srcdir)/linuxthreads/README $(tmpdir)/$@$(docdir)/$@/README.linuxthreads +endif + $(INSTALL_DATA) debian/FAQ $(tmpdir)/$@$(docdir)/$@/README.Debian + $(INSTALL_DATA) $(srcdir)/ChangeLog $(tmpdir)/$@$(docdir)/$@/changelog + $(INSTALL_DATA) debian/changelog $(tmpdir)/$@$(docdir)/$@/changelog.Debian + -find $(tmpdir)/$@$(docdir)/$@ -type f | xargs -r gzip -9f + $(INSTALL_DATA) debian/copyright $(tmpdir)/$@$(docdir)/$@/copyright + + cp -a debian/$@/* $(tmpdir)/$@ + + dpkg-gencontrol -isp -p$@ -P$(tmpdir)/$@ $(libc_control_flags) \ + -DConflicts="locales (<< $(DEBVERSION))" \ + -DConflicts="locales (>> $(DEBVERSION))" + chown -R root.root $(tmpdir)/$@ + chmod -R go=rX $(tmpdir)/$@ + dpkg --build $(tmpdir)/$@ .. diff -urN glibc-2.2.4.orig/debian/packages.d/locales.mk glibc-2.2.4/debian/packages.d/locales.mk --- glibc-2.2.4.orig/debian/packages.d/locales.mk Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/packages.d/locales.mk Mon Sep 10 13:11:31 2001 @@ -0,0 +1,43 @@ +localegen = $(tmpdir)/locales/etc/locale.gen + +locales: $(stamp_install) debian/control $(mkdir)/sysdeps.mk + $(checkroot) + $(debian-clean) + -rm -rf $(tmpdir)/$@ + + # Don't let the build system compile locales + if [ ! -e $(srcdir)/localedata/SUPPORTED.orig ]; then \ + cp $(srcdir)/localedata/SUPPORTED $(srcdir)/localedata/SUPPORTED.orig; \ + touch $(srcdir)/localedata/SUPPORTED; \ + fi + + unset MAKEFLAGS; $(MAKE) -C $(srcdir)/localedata install_root=$(install_root) \ + objdir=$(objdir) LOCALEDEF="env I18NPATH=$(objdir)/localedata GCONV_PATH=$(srcdir)/iconvdata LC_ALL=C localedef" install-locales + + $(make_directory) $(tmpdir)/$@$(datadir)/. + cp -a $(install_root)$(datadir)/locale $(tmpdir)/$@$(datadir)/. + cp -a $(install_root)$(datadir)/i18n $(tmpdir)/$@$(datadir)/. + $(make_directory) $(tmpdir)/$@$(libdir)/locale + $(make_directory) $(tmpdir)/$@/etc + mv -f $(tmpdir)/$@$(datadir)/locale/locale.alias $(tmpdir)/$@/etc/. + ln -sf /etc/locale.alias $(tmpdir)/$@$(datadir)/locale/locale.alias + + $(make_directory) $(tmpdir)/$@$(docdir)/$@/ + $(MAKE) -f debian/generate-supported.mk IN=$(srcdir)/localedata/SUPPORTED.orig \ + OUT=$(tmpdir)/$@$(docdir)/$@/SUPPORTED + + $(make_directory) $(tmpdir)/$@$(mandir)/man8 + $(INSTALL_DATA) $(addprefix debian/manpages/, \ + locale-gen.8) $(tmpdir)/$@$(mandir)/man8/. + + $(INSTALL_DATA) $(srcdir)/localedata/ChangeLog $(tmpdir)/$@$(docdir)/$@/changelog + $(INSTALL_DATA) debian/changelog $(tmpdir)/$@$(docdir)/$@/changelog.Debian + $(INSTALL_DATA) $(srcdir)/localedata/README $(tmpdir)/$@$(docdir)/$@/. + -gzip -9f $(tmpdir)/$@$(docdir)/$@/* + $(INSTALL_DATA) debian/copyright $(tmpdir)/$@$(docdir)/$@/. + + cp -a debian/locales/* $(tmpdir)/$@/. + dpkg-gencontrol -isp -p$@ -P$(tmpdir)/$@ $($@_control_flags) + chown -R root.root $(tmpdir)/$@ + chmod -R go=rX $(tmpdir)/$@ + dpkg --build $(tmpdir)/$@ .. diff -urN glibc-2.2.4.orig/debian/packages.d/nscd.mk glibc-2.2.4/debian/packages.d/nscd.mk --- glibc-2.2.4.orig/debian/packages.d/nscd.mk Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/packages.d/nscd.mk Mon Sep 10 13:11:31 2001 @@ -0,0 +1,38 @@ +nscd: $(stamp_install) debian/control $(mkdir)/sysdeps.mk + $(checkroot) + $(debian-clean) + -rm -rf $(tmpdir)/$@ + + $(make_directory) $(tmpdir)/$@$(sbindir) + + $(INSTALL_PROGRAM) $(install_root)$(sbindir)/nscd \ + $(tmpdir)/$@$(sbindir)/. + $(INSTALL_PROGRAM) $(install_root)$(sbindir)/nscd_nischeck \ + $(tmpdir)/$@$(sbindir)/. +ifeq ($(DEB_BUILD_OPTION_STRIP),yes) + $(STRIP) --strip-unneeded -R .note $(tmpdir)/$@$(sbindir)/nscd* +endif + cp -a debian/$@/* $(tmpdir)/$@ + + $(INSTALL_DATA) $(srcdir)/nscd/nscd.conf $(tmpdir)/$@/etc/nscd.conf + + $(make_directory) $(tmpdir)/$@$(docdir)/$@ + + $(INSTALL_DATA) debian/changelog \ + $(tmpdir)/$@$(docdir)/$@/changelog.Debian + -find $(tmpdir)/$@$(docdir)/$@ -type f | xargs -r gzip -9f + $(INSTALL_DATA) debian/copyright \ + $(tmpdir)/$@$(docdir)/$@/copyright + + $(make_directory) $(tmpdir)/$@$(mandir)/man5 + $(INSTALL_DATA) $(addprefix debian/manpages/, nscd.conf.5) \ + $(tmpdir)/$@$(mandir)/man5/. + $(make_directory) $(tmpdir)/$@$(mandir)/man8 + $(INSTALL_DATA) $(addprefix debian/manpages/, nscd.8 nscd_nischeck.8) \ + $(tmpdir)/$@$(mandir)/man8/. + -gzip -9f $(tmpdir)/$@$(mandir)/man?/* + + dpkg-gencontrol -isp -p$@ -P$(tmpdir)/$@ + chown -R root.root $(tmpdir)/$@ + chmod -R go=rX $(tmpdir)/$@ + dpkg --build $(tmpdir)/$@ .. diff -urN glibc-2.2.4.orig/debian/packages.d/optimized.mk glibc-2.2.4/debian/packages.d/optimized.mk --- glibc-2.2.4.orig/debian/packages.d/optimized.mk Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/packages.d/optimized.mk Mon Sep 10 13:11:31 2001 @@ -0,0 +1,111 @@ +# Build optimized library packages + +cpu_flags = $(cpu_flags_$(OPT)) +as_flags = $(as_flags_$(OPT)) +objdir_opt = $(objdir)_$(OPT) +install_root_opt = $(install_root)_$(OPT) +stamp_install_opt = $(stamp_install)_$(OPT) +stamp_build_opt = $(stamp_build)_$(OPT) +stamp_configure_opt = $(stamp_configure)_$(OPT) + +# This is the same thing glibc does with --enable-omitfp +opt_flags = -g0 -O99 -fomit-frame-pointer -D__USE_STRING_INLINES -Wall $(as_flags) $(cpu_flags) + +ifeq ($(log_build),/dev/tty) + log_build_opt = /dev/tty +else + log_build_opt = $(log_build)_$(OPT) +endif + +$(stamp_install_opt): $(stamp_build_opt) + $(checkroot) + $(make_directory) $(install_root_opt) + unset MAKEFLAGS; $(MAKE) -C $(objdir_opt) install_root=$(install_root_opt) install + touch $@ + +$(libc)-$(OPT)-build: $(stamp_build_opt) +$(stamp_build_opt): $(stamp_configure_opt) +ifeq ($(NO_LOG),) + @if [ -s $(log_build_opt) ]; then savelog $(log_build_opt); fi +endif + @echo 'Building GNU C Library for a $(DEB_BUILD_GNU_TYPE) host ($(OPT) Optimized).' + unset MAKEFLAGS; $(MAKE) -C $(objdir_opt) PARALLELMFLAGS="$(PARALLELMFLAGS)" 2>&1 | tee $(log_build_opt) + touch $@ + +$(stamp_configure_opt): $(stamp_unpack) $(stamp_patch) + $(make_directory) $(objdir_opt) $(stampdir) + rm -f $(objdir_opt)/configparms + echo "CC = $(CC)" >> $(objdir_opt)/configparms + echo "BUILD_CC = $(BUILD_CC)" >> $(objdir_opt)/configparms + echo "CFLAGS = $(opt_flags)" >> $(objdir_opt)/configparms + echo "BUILD_CFLAGS = $(opt_flags)" >> $(objdir_opt)/configparms + echo "BASH := /bin/bash" >> $(objdir_opt)/configparms + echo "KSH := /bin/bash" >> $(objdir_opt)/configparms + echo "mandir = $(mandir)" >> $(objdir_opt)/configparms + echo "infodir = $(infodir)" >> $(objdir_opt)/configparms + echo "libexecdir = $(libexecdir)" >> $(objdir_opt)/configparms + echo "LIBGD = no" >> $(objdir_opt)/configparms + echo "ASFLAGS-.os = $(as_flags)" >> $(objdir_opt)/configparms + echo + cd $(objdir_opt) && CC="$(CC)" CFLAGS="$(opt_flags)" \ + $(srcdir)/configure --host=$(DEB_HOST_GNU_TYPE) \ + --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --without-cvs \ + --disable-profile --disable-static --enable-kernel=2.4.0 \ + --enable-add-ons="$(add-ons)" $(with_headers) + + touch $@ + +$(libc)-$(OPT): $(stamp_install_opt) debian/control $(mkdir)/sysdeps.mk \ + debian/libc/DEBIAN/shlibs + $(checkroot) + $(debian-clean) + -rm -rf $(tmpdir)/$@ + + $(make_directory) $(tmpdir)/$@/DEBIAN + $(INSTALL_PROGRAM) debian/libc-opt/* $(tmpdir)/$@/DEBIAN + # blah, not the m4's, process them + rm $(tmpdir)/$@/DEBIAN/*.m4 + for m4 in debian/libc-opt/*.m4; do \ + bn=`basename $$m4 .m4`; \ + m4 -DOPT=$(OPT) debian/libc-opt/preinst.m4 > \ + $(tmpdir)/$@/DEBIAN/$$bn; \ + chmod 755 $(tmpdir)/$@/DEBIAN/$$bn; \ + done + $(INSTALL_DATA) debian/libc/DEBIAN/shlibs $(tmpdir)/$@/DEBIAN + + $(make_directory) $(tmpdir)/$@/lib/$(OPT) + $(INSTALL_DATA) $(install_root_opt)/lib/lib*-$(VERSION).so $(tmpdir)/$@/lib/$(OPT)/. + $(INSTALL_PROGRAM) $(install_root_opt)/lib/libc-$(VERSION).so $(tmpdir)/$@/lib/$(OPT)/. + $(INSTALL_DATA) $(install_root_opt)/lib/libSegFault.so $(tmpdir)/$@/lib/$(OPT)/. +ifeq ($(threads),yes) + $(INSTALL_DATA) $(install_root_opt)/lib/libpthread-0.9.so $(tmpdir)/$@/lib/$(OPT)/. + $(INSTALL_DATA) $(install_root_opt)/lib/libthread_db-1.0.so $(tmpdir)/$@/lib/$(OPT)/. +endif + @set -e; \ + cd $(install_root_opt)/lib; \ + for l in `find . -type l -name 'lib*.so.*'`; \ + do cp -vdf $$l $(tmpdir)/$@/lib/$(OPT)/.; done + cd $(tmpdir)/$@ && \ + $(STRIP) lib/$(OPT)/lib*-$(VERSION).so +ifeq ($(threads),yes) + $(STRIP) $(tmpdir)/$@/lib/$(OPT)/libpthread-0.9.so + $(STRIP) $(tmpdir)/$@/lib/$(OPT)/libthread_db-1.0.so +endif + # Get rid of the NSS libs, they don't get used anyway + rm -f $(tmpdir)/$@/lib/$(OPT)/libnss_* + # Yes, we need ld-linux.so, it is most important + $(INSTALL_PROGRAM) $(install_root_opt)/lib/ld*.so.* $(tmpdir)/$@/lib/. + $(make_directory) $(tmpdir)/$@$(docdir) + ln -sf $(libc) $(tmpdir)/$@$(docdir)/$@ + # The libsafe and memprof packages do not like our opt packages + dpkg-gencontrol -isp -p$@ -P$(tmpdir)/$@ -DDepends="$(libc) (= $(DEBVERSION))" \ + $(libc_opt_control_flags) + chown -R root.root $(tmpdir)/$@ + chmod -R go=rX $(tmpdir)/$@ + dpkg --build $(tmpdir)/$@ .. + +opt-$(libc)-%-build: + $(MAKE) -f debian/rules OPT=$* $(libc)-$*-build + +opt-$(libc)-%-pkg: + $(MAKE) -f debian/rules OPT=$* $(libc)-$* diff -urN glibc-2.2.4.orig/debian/packages.d/sparc64.mk glibc-2.2.4/debian/packages.d/sparc64.mk --- glibc-2.2.4.orig/debian/packages.d/sparc64.mk Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/packages.d/sparc64.mk Mon Sep 10 13:11:31 2001 @@ -0,0 +1,148 @@ +# Build 64bit libraries + +objdir_64 = $(objdir)_64 +install_root_64 = $(install_root)_64 +stamp_install_64 = $(stamp_install)_64 +stamp_build_64 = $(stamp_build)_64 +stamp_configure_64 = $(stamp_configure)_64 + +flags_64 = -g0 -O2 -Wall + +MYCC = gcc-3.0 -m64 + +ifeq ($(log_build),/dev/tty) + log_build_64 = /dev/tty +else + log_build_64 = $(log_build)_64 +endif + +$(stamp_install_64): $(stamp_build_64) + $(checkroot) + $(make_directory) $(install_root_64) + $(MAKE) -C $(objdir_64) install_root=$(install_root_64) install + touch $@ + +$(stamp_build_64): $(stamp_configure_64) +ifeq ($(NO_LOG),) + @if [ -s $(log_build_64) ]; then savelog $(log_build_64); fi +endif + @echo 'Building GNU C Library for a $(DEB_BUILD_GNU_TYPE) host (64bit).' + $(MAKE) -C $(objdir_64) PARALLELMFLAGS="$(PARALLELMFLAGS)" 2>&1 | tee $(log_build_64) + touch $@ + +$(stamp_configure_64): $(stamp_unpack) $(stamp_patch) + $(make_directory) $(objdir_64) $(stampdir) + rm -f $(objdir_64)/configparms + echo "CC = $(MYCC)" >> $(objdir_64)/configparms + echo "BUILD_CC = $(MYCC)" >> $(objdir_64)/configparms + echo "CFLAGS = $(flags_64)" >> $(objdir_64)/configparms + echo "BUILD_CFLAGS = $(flags_64)" >> $(objdir_64)/configparms + echo "BASH := /bin/bash" >> $(objdir_64)/configparms + echo "KSH := /bin/bash" >> $(objdir_64)/configparms + echo "mandir = $(mandir)" >> $(objdir_64)/configparms + echo "infodir = $(infodir)" >> $(objdir_64)/configparms + echo "libexecdir = $(libexecdir)" >> $(objdir_64)/configparms + echo "LIBGD = no" >> $(objdir_64)/configparms + echo + cd $(objdir_64) && CC="$(MYCC)" CFLAGS="$(flags_64)" \ + $(srcdir)/configure --host=sparc64-linux \ + --build=sparc64-linux --prefix=/usr --without-cvs \ + --disable-profile --enable-static --enable-kernel=2.4.0 \ + --enable-add-ons="$(add-ons)" --disable-sanity-checks \ + $(with_headers) + + touch $@ + +$(libc)-sparc64: $(stamp_install_64) debian/control $(mkdir)/sysdeps.mk \ + debian/libc/DEBIAN/shlibs + $(checkroot) + $(debian-clean) + -rm -rf $(tmpdir)/$@ + + $(make_directory) $(tmpdir)/$@/DEBIAN + $(INSTALL_PROGRAM) debian/libc-sparc64/* $(tmpdir)/$@/DEBIAN + cat debian/libc/DEBIAN/shlibs | sed -e 's_$(libc)_$@_' -e \ + 's_/lib/_/lib/64/_' > \ + $(tmpdir)/$@/DEBIAN/shlibs + + $(make_directory) $(tmpdir)/$@/lib/64 $(tmpdir)/$@/usr/lib/64 + $(INSTALL_DATA) $(install_root_64)/lib/64/lib*-$(VERSION).so $(tmpdir)/$@/lib/64/. + $(INSTALL_PROGRAM) $(install_root_64)/lib/64/libc-$(VERSION).so $(tmpdir)/$@/lib/64/. + $(INSTALL_DATA) $(install_root_64)/lib/64/libSegFault.so $(tmpdir)/$@/lib/64/. +ifeq ($(threads),yes) + $(INSTALL_DATA) $(install_root_64)/lib/64/libpthread-0.9.so $(tmpdir)/$@/lib/64/. + $(INSTALL_DATA) $(install_root_64)/lib/64/libthread_db-1.0.so $(tmpdir)/$@/lib/64/. +endif + @set -e; \ + cd $(install_root_64)/lib/64/; \ + for l in `find . -type l -name 'lib*.so.*'`; \ + do cp -vdf $$l $(tmpdir)/$@/lib/64/.; done + cd $(tmpdir)/$@ && \ + $(STRIP) lib/64/lib*-$(VERSION).so +ifeq ($(threads),yes) + $(STRIP) $(tmpdir)/$@/lib/64/libpthread-0.9.so + $(STRIP) $(tmpdir)/$@/lib/64/libthread_db-1.0.so +endif + $(INSTALL_PROGRAM) $(install_root_64)/lib/64/ld-$(VERSION).so \ + $(tmpdir)/$@/lib/64/. + cp -vdf $(install_root_64)/lib/64/ld*.so.* \ + $(tmpdir)/$@/lib/64/. + cp -vfa $(install_root_64)/usr/lib/64/gconv \ + $(tmpdir)/$@/usr/lib/64/. + $(make_directory) $(tmpdir)/$@$(docdir) + ln -sf $(libc) $(tmpdir)/$@$(docdir)/$@ + dpkg-gencontrol -isp -p$@ -P$(tmpdir)/$@ + chown -R root.root $(tmpdir)/$@ + chmod -R go=rX $(tmpdir)/$@ + dpkg --build $(tmpdir)/$@ .. + +$(libc)-dev-sparc64: $(stamp_install_64) debian/control $(mkdir)/sysdeps.mk + $(checkroot) + $(debian-clean) + -rm -rf $(tmpdir)/$@ + + $(make_directory) $(tmpdir)/$@/DEBIAN + + $(make_directory) $(tmpdir)/$@$(libdir)/64 + $(INSTALL_DATA) $(install_root_64)$(libdir)/64/*.o $(tmpdir)/$@$(libdir)/64/. + $(INSTALL_DATA) $(install_root_64)$(libdir)/64/*.a $(tmpdir)/$@$(libdir)/64/. + rm -f $(tmpdir)/$@$(libdir)/64/*_?.a +ifeq ($(DEB_BUILD_OPTION_STRIP),yes) +# Don't strip linker scripts. + @tostrip=; for file in $(tmpdir)/$@$(libdir)/64/*; do \ + case `file $$file` in \ + *text) ;; *) tostrip="$$tostrip $$file" ;; esac; \ + done; echo "$(STRIP) -g $$tostrip"; \ + $(STRIP) -g $$tostrip +endif + for f in $(install_root_64)$(libdir)/64/lib*.so; do \ + case "$$f" in \ + *-$(VERSION).so | *-0.[789].so ) ;; \ + */libSegFault.so|*/libthread_db.so|*/libdb.so) ;; \ + *) cp -df $$f $(tmpdir)/$@$(libdir)/64/. || exit 1 ;; \ + esac; \ + done + cd $(tmpdir)/$@$(libdir)/64; \ + for link in `find . -name '*.so' -type l`; do \ + linksrc=$$(readlink $$link | sed 's%../../..%%'); \ + rm -f $$link; ln -sf $$linksrc $$link; done + + # Sparc has a 32/64 build setup, make sure we support it + $(make_directory) $(tmpdir)/$@$(includedir) + cp -R $(LINUX_SOURCE)/include/asm-sparc64 \ + $(tmpdir)/$@$(includedir)/. + # Remove cruft from CVS trees + find $(tmpdir)/$@$(includedir)/ -name CVS -type d | xargs -r rm -rf + find $(tmpdir)/$@$(includedir)/ -name '.#*' -type f | xargs rm -f + + $(make_directory) $(tmpdir)/$@$(docdir)/$@ + $(INSTALL_DATA) debian/changelog $(tmpdir)/$@$(docdir)/$@/changelog.Debian + -find $(tmpdir)/$@$(docdir)/$@ -type f | xargs -r gzip -9f + $(INSTALL_DATA) debian/copyright $(tmpdir)/$@$(docdir)/$@/. + + cp -a debian/libc-dev/{postinst,prerm} $(tmpdir)/$@/DEBIAN + + dpkg-gencontrol -isp -p$@ -P$(tmpdir)/$@ + chown -R root.root $(tmpdir)/$@ + chmod -R go=rX $(tmpdir)/$@ + dpkg --build $(tmpdir)/$@ .. diff -urN glibc-2.2.4.orig/debian/patches/0list glibc-2.2.4/debian/patches/0list --- glibc-2.2.4.orig/debian/patches/0list Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/patches/0list Mon Sep 10 13:11:31 2001 @@ -0,0 +1,21 @@ +#glibc-cvs +glibc-vs-gcc3 +db1-addon-enabler +manual-texinfo4 +ldd +glibcbug +hurd-ldflags +fhs-linux-paths +pthread_create-manpage +string2-pointer-arith +glibc22-nss-upgrade +glibc22-getaddrinfo +#glibc22-hppa +glibc22-eo_EO +glibc22-m68k-compat +glibc22-m68k-fpic +glibc22-locales +sparc64-fixups +glibc22-fts +glibc22-getdents-fix +sh-sysdep diff -urN glibc-2.2.4.orig/debian/patches/db1-addon-enabler.dpatch glibc-2.2.4/debian/patches/db1-addon-enabler.dpatch --- glibc-2.2.4.orig/debian/patches/db1-addon-enabler.dpatch Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/patches/db1-addon-enabler.dpatch Mon Sep 10 13:11:31 2001 @@ -0,0 +1,67 @@ +#! /bin/sh -e + +# DP: Enable db compatibility add-on to be built + +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 + +diff -urN glibc-2.1.94.orig/Makeconfig glibc-2.1.94/Makeconfig +--- glibc-2.1.94.orig/Makeconfig Mon Sep 25 11:23:01 2000 ++++ glibc-2.1.94/Makeconfig Fri Sep 29 14:01:25 2000 +@@ -822,7 +823,7 @@ + # is more or less arbitrary. The sorting step will take care of the + # dependencies. Only the $(binfmt-subdir) should always be kept at the + # end of the list. +-all-subdirs = csu assert ctype locale intl catgets math setjmp signal \ ++all-subdirs = csu assert ctype locale intl catgets math setjmp signal db \ + stdlib stdio-common $(stdio) malloc string wcsmbs time dirent \ + grp pwd posix io termios resource misc socket sysvipc gmon \ + gnulib iconv iconvdata wctype manual shadow po argp \ +diff -urN glibc-2.1.94.orig/db/Makefile glibc-2.1.94/db/Makefile +--- glibc-2.1.94.orig/db/Makefile Sun Mar 21 20:14:47 1999 ++++ glibc-2.1.94/db/Makefile Fri Sep 29 14:18:06 2000 +@@ -41,6 +39,8 @@ + + $(db1-headers:%=$(inst_includedir)/db1/%): $(inst_includedir)/db1/%: % $(+force) + $(do-install) ++ ++libdb1-inhibit-o = $(filter-out .os,$(object-suffixes)) + + include ../Rules + +diff -urN glibc-2.1.94.orig/shlib-versions glibc-2.1.94/shlib-versions +--- glibc-2.1.94.orig/shlib-versions Mon Sep 25 11:23:06 2000 ++++ glibc-2.1.94/shlib-versions Fri Sep 29 14:01:25 2000 +@@ -98,6 +98,11 @@ + mips.*-.*-linux.* libnsl=1 GLIBC_2.0 GLIBC_2.2 + .*-.*-.* libnsl=1 + ++# This is the Berkeley DB 1.85. We use the version numbers from glibc 2.0.* ++# for all times. ++alpha-.*-linux.* libdb1=2.1 ++.*-.*-.* libdb1=2 ++ + # This defines the shared library version numbers we will install. + alpha.*-.*-linux.* libcrypt=1.1 + .*-.*-.* libcrypt=1 +--- glibc-2.1.94.orig/db/ndbm.h Mon Jan 29 11:03:28 2001 ++++ glibc-2.1.94/db/ndbm.h Mon Jan 29 11:03:06 2001 +@@ -39,7 +39,7 @@ + #ifndef _NDBM_H + #define _NDBM_H 1 + +-#include ++#include + + /* Map dbm interface onto db(3). */ + #define DBM_RDONLY O_RDONLY diff -urN glibc-2.2.4.orig/debian/patches/fhs-linux-paths.dpatch glibc-2.2.4/debian/patches/fhs-linux-paths.dpatch --- glibc-2.2.4.orig/debian/patches/fhs-linux-paths.dpatch Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/patches/fhs-linux-paths.dpatch Mon Sep 10 13:11:31 2001 @@ -0,0 +1,29 @@ +#! /bin/sh -e + +# All lines beginning with `# DP:' are a description of the patch. +# DP: Correct linux paths for FHS + +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 + +--- glibc-2.1.1/sysdeps/unix/sysv/linux/paths.h~ Thu May 27 13:16:33 1999 ++++ glibc-2.1.1/sysdeps/unix/sysv/linux/paths.h Thu May 27 13:17:55 1999 +@@ -71,7 +71,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/" + diff -urN glibc-2.2.4.orig/debian/patches/glibc-vs-gcc3.dpatch glibc-2.2.4/debian/patches/glibc-vs-gcc3.dpatch --- glibc-2.2.4.orig/debian/patches/glibc-vs-gcc3.dpatch Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/patches/glibc-vs-gcc3.dpatch Mon Sep 10 13:11:31 2001 @@ -0,0 +1,4359 @@ +#! /bin/sh -e + +# DP: Patch to allow glibc to interact with gcc3 correctly. Patch provided +# DP: by Jakub Jelinek. + +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 + cd $2 && autoconf + ;; + -unpatch) + patch -d "$2" -f --no-backup-if-mismatch -R -p1 < $0 + cd $2 && autoconf + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +2001-08-12 Jakub Jelinek + H.J. Lu + + * Versions.def (libc): Add GCC_3.0. + * configure.in (libc_cv_gcc_static_libgcc): Set to -static-libgcc + if gcc supports this flag. + (EXPORT_UNWIND_FIND_FDE): Define unless target configure + disables it. + * configure: Rebuilt. + * config.h.in (EXPORT_UNWIND_FIND_FDE): Add. + * config.make.in (static-libgcc): Add. + * Makerules (build-shlib-helper, build-module-helper): Use it. + * scripts/versions.awk: Make sure GLIBC_ versions come first. + * elf/soinit.c (__libc_global_ctors): Set tbases and dbases if + necessary. + * elf/Versions (__register_frame_info, __deregister_frame_info): Add + at GLIBC_2.0. + (__register_frame_info_bases, __register_frame_info_table_bases, + __deregister_frame_info_bases, _Unwind_Find_FDE): Add at GCC_3.0. + * elf/Makefile (routines): Add unwind-dw2-fde. + (shared-only-routines): Add unwind-dw2-fde. + * sysdeps/alpha/gccframe.h: New. + * sysdeps/arm/gccframe.h: New. + * sysdeps/generic/framestate.c: New. + * sysdeps/generic/dwarf2.h: New. + * sysdeps/generic/gccframe.h (struct object): Update from gcc 3.0. + * sysdeps/generic/unwind-dw2-fde.c: New. + * sysdeps/unix/sysv/linux/ia64/unwind-dw2-fde.c: New. + * sysdeps/generic/unwind-dw2-fde.h: New. + * sysdeps/generic/unwind-dw2.c: New. + * sysdeps/generic/unwind-pe.h: New. + * sysdeps/generic/unwind.h: New. + * sysdeps/hppa/gccframe.h: New. + * sysdeps/i386/gccframe.h: New. + * sysdeps/m68k/gccframe.h: New. + * sysdeps/mips/gccframe.h: New. + * sysdeps/powerpc/gccframe.h: New. + * sysdeps/s390/gccframe.h: New. + * sysdeps/sh/gccframe.h: New. + * sysdeps/sparc/gccframe.h: New. + * sysdeps/vax/gccframe.h: New. + * sysdeps/unix/sysv/linux/configure.in (libc_cv_gcc_unwind_find_fde): + Set to no on ia64. + * sysdeps/unix/sysv/linux/configure: Rebuilt. + * sysdeps/mach/hurd/i386/Versions (__register_frame_info, + __deregister_frame_info): Move to elf/Versions. + * sysdeps/unix/sysv/linux/m68k/Versions: Likewise. + * sysdeps/unix/sysv/linux/arm/Versions: Likewise. + * sysdeps/unix/sysv/linux/alpha/Versions: Likewise. + * sysdeps/unix/sysv/linux/i386/Versions: Likewise. + * sysdeps/unix/sysv/linux/mips/Versions: Likewise. + * sysdeps/unix/sysv/linux/powerpc/Versions: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/Versions: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/Versions: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/Versions: Likewise. + * sysdeps/mach/hurd/i386/Makefile (sysdep-routines): Add + framestate. + * sysdeps/unix/sysv/linux/arm/Makefile: Likewise. + * sysdeps/unix/sysv/linux/alpha/Makefile: Likewise. + * sysdeps/unix/sysv/linux/i386/Makefile: Likewise. + * sysdeps/unix/sysv/linux/m68k/Makefile: Likewise. + * sysdeps/unix/sysv/linux/mips/Makefile: Likewise. + * sysdeps/unix/sysv/linux/powerpc/Makefile: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/Makefile: Likewise. + * sysdeps/unix/sysv/linux/sparc/Makefile: Likewise. + +--- libc/elf/soinit.c.jj Fri Feb 2 06:16:35 2001 ++++ libc/elf/soinit.c Mon Aug 6 04:47:19 2001 +@@ -48,6 +48,22 @@ __libc_global_ctors (void) + { + static struct object ob; + __register_frame_info (__EH_FRAME_BEGIN__, &ob); ++# if defined(CRT_GET_RFIB_TEXT) || defined(CRT_GET_RFIB_DATA) ++ /* This is problematic. ++ We cannot use __register_frame_info_bases here, since if ++ e.g. libstdc++ from gcc < 3.0 comes earlier in the search ++ scope than glibc, we need to register with it. */ ++ if (ob.pc_begin == (void *)-1 ++ && (char *) ob.u.single == __EH_FRAME_BEGIN__) ++ { ++# ifdef CRT_GET_RFIB_TEXT ++ CRT_GET_RFIB_TEXT (ob.tbase); ++# endif ++# ifdef CRT_GET_RFIB_DATA ++ CRT_GET_RFIB_DATA (ob.dbase); ++# endif ++ } ++# endif + } + # else + __register_frame (__EH_FRAME_BEGIN__); +--- libc/elf/Versions.jj Sat Aug 4 15:00:20 2001 ++++ libc/elf/Versions Mon Aug 6 05:22:38 2001 +@@ -2,6 +2,9 @@ libc { + GLIBC_2.0 { + # functions used in other libraries + _dl_open; _dl_close; _dl_addr; ++%ifdef EXPORT_UNWIND_FIND_FDE ++ __register_frame_info; __deregister_frame_info; ++%endif + } + GLIBC_2.1 { + # functions used in other libraries +@@ -17,6 +20,12 @@ libc { + GLIBC_2.2.4 { + dl_iterate_phdr; + } ++%ifdef EXPORT_UNWIND_FIND_FDE ++ GCC_3.0 { ++ __register_frame_info_bases; __deregister_frame_info_bases; ++ __register_frame_info_table_bases; _Unwind_Find_FDE; ++ } ++%endif + } + + ld { +--- libc/elf/Makefile.jj Wed Jul 25 17:30:16 2001 ++++ libc/elf/Makefile Mon Aug 6 05:24:14 2001 +@@ -23,7 +23,8 @@ subdir := elf + headers = elf.h bits/elfclass.h link.h + routines = $(dl-routines) dl-open dl-close dl-support dl-iteratephdr \ + dl-iteratephdr-static dl-addr enbl-secure dl-profstub \ +- dl-origin dl-libc dl-sym ++ dl-origin dl-libc dl-sym unwind-dw2-fde ++shared-only-routines = unwind-dw2-fde + + # The core dynamic linking functions are in libc for the static and + # profiled libraries. +--- libc/scripts/versions.awk.jj Wed Mar 22 16:36:08 2000 ++++ libc/scripts/versions.awk Sun Aug 12 07:37:57 2001 +@@ -61,7 +61,10 @@ BEGIN { + # current library. This is the only place where we print something to + # the intermediate file. + /^ / { +- printf("%s %s %s\n", actlib, actver, $0) | sort; ++ sortver=actver ++ # Ensure GLIBC_ versions come always first ++ sub(/^GLIBC_/," GLIBC_",sortver) ++ printf("%s %s %s\n", actlib, sortver, $0) | sort; + } + + +--- libc/sysdeps/alpha/gccframe.h.jj Sat Aug 4 15:40:57 2001 ++++ libc/sysdeps/alpha/gccframe.h Sat Aug 4 16:04:16 2001 +@@ -0,0 +1,22 @@ ++/* Definition of object in frame unwind info. alpha 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 FIRST_PSEUDO_REGISTER 64 ++ ++#include +--- libc/sysdeps/arm/gccframe.h.jj Sat Aug 4 15:40:57 2001 ++++ libc/sysdeps/arm/gccframe.h Sat Aug 4 16:04:24 2001 +@@ -0,0 +1,22 @@ ++/* Definition of object in frame unwind info. arm 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 FIRST_PSEUDO_REGISTER 27 ++ ++#include +--- libc/sysdeps/generic/dwarf2.h.jj Sat Aug 4 15:40:57 2001 ++++ libc/sysdeps/generic/dwarf2.h Fri Jun 8 09:40:54 2001 +@@ -0,0 +1,585 @@ ++/* Declarations and definitions of codes relating to the DWARF2 symbolic ++ debugging information format. ++ Copyright (C) 1992, 1993, 1995, 1996, 1997, 2000 ++ Free Software Foundation, Inc. ++ Contributed by Gary Funck (gary@intrepid.com). Derived from the ++ DWARF 1 implementation written by Ron Guilmette (rfg@monkeys.com). ++ ++This file is part of GNU CC. ++ ++GNU CC 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. ++ ++GNU CC is distributed in the hope that 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 GNU CC; see the file COPYING. If not, write to ++the Free Software Foundation, 59 Temple Place - Suite 330, ++Boston, MA 02111-1307, USA. */ ++ ++/* This file is derived from the DWARF specification (a public document) ++ Revision 2.0.0 (July 27, 1993) developed by the UNIX International ++ Programming Languages Special Interest Group (UI/PLSIG) and distributed ++ by UNIX International. Copies of this specification are available from ++ UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054. */ ++ ++/* This file is shared between GCC and GDB, and should not contain ++ prototypes. */ ++ ++/* Tag names and codes. */ ++ ++enum dwarf_tag ++ { ++ DW_TAG_padding = 0x00, ++ DW_TAG_array_type = 0x01, ++ DW_TAG_class_type = 0x02, ++ DW_TAG_entry_point = 0x03, ++ DW_TAG_enumeration_type = 0x04, ++ DW_TAG_formal_parameter = 0x05, ++ DW_TAG_imported_declaration = 0x08, ++ DW_TAG_label = 0x0a, ++ DW_TAG_lexical_block = 0x0b, ++ DW_TAG_member = 0x0d, ++ DW_TAG_pointer_type = 0x0f, ++ DW_TAG_reference_type = 0x10, ++ DW_TAG_compile_unit = 0x11, ++ DW_TAG_string_type = 0x12, ++ DW_TAG_structure_type = 0x13, ++ DW_TAG_subroutine_type = 0x15, ++ DW_TAG_typedef = 0x16, ++ DW_TAG_union_type = 0x17, ++ DW_TAG_unspecified_parameters = 0x18, ++ DW_TAG_variant = 0x19, ++ DW_TAG_common_block = 0x1a, ++ DW_TAG_common_inclusion = 0x1b, ++ DW_TAG_inheritance = 0x1c, ++ DW_TAG_inlined_subroutine = 0x1d, ++ DW_TAG_module = 0x1e, ++ DW_TAG_ptr_to_member_type = 0x1f, ++ DW_TAG_set_type = 0x20, ++ DW_TAG_subrange_type = 0x21, ++ DW_TAG_with_stmt = 0x22, ++ DW_TAG_access_declaration = 0x23, ++ DW_TAG_base_type = 0x24, ++ DW_TAG_catch_block = 0x25, ++ DW_TAG_const_type = 0x26, ++ DW_TAG_constant = 0x27, ++ DW_TAG_enumerator = 0x28, ++ DW_TAG_file_type = 0x29, ++ DW_TAG_friend = 0x2a, ++ DW_TAG_namelist = 0x2b, ++ DW_TAG_namelist_item = 0x2c, ++ DW_TAG_packed_type = 0x2d, ++ DW_TAG_subprogram = 0x2e, ++ DW_TAG_template_type_param = 0x2f, ++ DW_TAG_template_value_param = 0x30, ++ DW_TAG_thrown_type = 0x31, ++ DW_TAG_try_block = 0x32, ++ DW_TAG_variant_part = 0x33, ++ DW_TAG_variable = 0x34, ++ DW_TAG_volatile_type = 0x35, ++ /* SGI/MIPS Extensions */ ++ DW_TAG_MIPS_loop = 0x4081, ++ /* GNU extensions */ ++ DW_TAG_format_label = 0x4101, /* for FORTRAN 77 and Fortran 90 */ ++ DW_TAG_function_template = 0x4102, /* for C++ */ ++ DW_TAG_class_template = 0x4103, /* for C++ */ ++ DW_TAG_GNU_BINCL = 0x4104, ++ DW_TAG_GNU_EINCL = 0x4105 ++ }; ++ ++#define DW_TAG_lo_user 0x4080 ++#define DW_TAG_hi_user 0xffff ++ ++/* flag that tells whether entry has a child or not */ ++#define DW_children_no 0 ++#define DW_children_yes 1 ++ ++/* Form names and codes. */ ++enum dwarf_form ++ { ++ DW_FORM_addr = 0x01, ++ DW_FORM_block2 = 0x03, ++ DW_FORM_block4 = 0x04, ++ DW_FORM_data2 = 0x05, ++ DW_FORM_data4 = 0x06, ++ DW_FORM_data8 = 0x07, ++ DW_FORM_string = 0x08, ++ DW_FORM_block = 0x09, ++ DW_FORM_block1 = 0x0a, ++ DW_FORM_data1 = 0x0b, ++ DW_FORM_flag = 0x0c, ++ DW_FORM_sdata = 0x0d, ++ DW_FORM_strp = 0x0e, ++ DW_FORM_udata = 0x0f, ++ DW_FORM_ref_addr = 0x10, ++ DW_FORM_ref1 = 0x11, ++ DW_FORM_ref2 = 0x12, ++ DW_FORM_ref4 = 0x13, ++ DW_FORM_ref8 = 0x14, ++ DW_FORM_ref_udata = 0x15, ++ DW_FORM_indirect = 0x16 ++ }; ++ ++/* Attribute names and codes. */ ++ ++enum dwarf_attribute ++ { ++ DW_AT_sibling = 0x01, ++ DW_AT_location = 0x02, ++ DW_AT_name = 0x03, ++ DW_AT_ordering = 0x09, ++ DW_AT_subscr_data = 0x0a, ++ DW_AT_byte_size = 0x0b, ++ DW_AT_bit_offset = 0x0c, ++ DW_AT_bit_size = 0x0d, ++ DW_AT_element_list = 0x0f, ++ DW_AT_stmt_list = 0x10, ++ DW_AT_low_pc = 0x11, ++ DW_AT_high_pc = 0x12, ++ DW_AT_language = 0x13, ++ DW_AT_member = 0x14, ++ DW_AT_discr = 0x15, ++ DW_AT_discr_value = 0x16, ++ DW_AT_visibility = 0x17, ++ DW_AT_import = 0x18, ++ DW_AT_string_length = 0x19, ++ DW_AT_common_reference = 0x1a, ++ DW_AT_comp_dir = 0x1b, ++ DW_AT_const_value = 0x1c, ++ DW_AT_containing_type = 0x1d, ++ DW_AT_default_value = 0x1e, ++ DW_AT_inline = 0x20, ++ DW_AT_is_optional = 0x21, ++ DW_AT_lower_bound = 0x22, ++ DW_AT_producer = 0x25, ++ DW_AT_prototyped = 0x27, ++ DW_AT_return_addr = 0x2a, ++ DW_AT_start_scope = 0x2c, ++ DW_AT_stride_size = 0x2e, ++ DW_AT_upper_bound = 0x2f, ++ DW_AT_abstract_origin = 0x31, ++ DW_AT_accessibility = 0x32, ++ DW_AT_address_class = 0x33, ++ DW_AT_artificial = 0x34, ++ DW_AT_base_types = 0x35, ++ DW_AT_calling_convention = 0x36, ++ DW_AT_count = 0x37, ++ DW_AT_data_member_location = 0x38, ++ DW_AT_decl_column = 0x39, ++ DW_AT_decl_file = 0x3a, ++ DW_AT_decl_line = 0x3b, ++ DW_AT_declaration = 0x3c, ++ DW_AT_discr_list = 0x3d, ++ DW_AT_encoding = 0x3e, ++ DW_AT_external = 0x3f, ++ DW_AT_frame_base = 0x40, ++ DW_AT_friend = 0x41, ++ DW_AT_identifier_case = 0x42, ++ DW_AT_macro_info = 0x43, ++ DW_AT_namelist_items = 0x44, ++ DW_AT_priority = 0x45, ++ DW_AT_segment = 0x46, ++ DW_AT_specification = 0x47, ++ DW_AT_static_link = 0x48, ++ DW_AT_type = 0x49, ++ DW_AT_use_location = 0x4a, ++ DW_AT_variable_parameter = 0x4b, ++ DW_AT_virtuality = 0x4c, ++ DW_AT_vtable_elem_location = 0x4d, ++ /* SGI/MIPS Extensions */ ++ DW_AT_MIPS_fde = 0x2001, ++ DW_AT_MIPS_loop_begin = 0x2002, ++ DW_AT_MIPS_tail_loop_begin = 0x2003, ++ DW_AT_MIPS_epilog_begin = 0x2004, ++ DW_AT_MIPS_loop_unroll_factor = 0x2005, ++ DW_AT_MIPS_software_pipeline_depth = 0x2006, ++ DW_AT_MIPS_linkage_name = 0x2007, ++ DW_AT_MIPS_stride = 0x2008, ++ DW_AT_MIPS_abstract_name = 0x2009, ++ DW_AT_MIPS_clone_origin = 0x200a, ++ DW_AT_MIPS_has_inlines = 0x200b, ++ /* GNU extensions. */ ++ DW_AT_sf_names = 0x2101, ++ DW_AT_src_info = 0x2102, ++ DW_AT_mac_info = 0x2103, ++ DW_AT_src_coords = 0x2104, ++ DW_AT_body_begin = 0x2105, ++ DW_AT_body_end = 0x2106 ++ }; ++ ++#define DW_AT_lo_user 0x2000 /* implementation-defined range start */ ++#define DW_AT_hi_user 0x3ff0 /* implementation-defined range end */ ++ ++/* Location atom names and codes. */ ++ ++enum dwarf_location_atom ++ { ++ DW_OP_addr = 0x03, ++ DW_OP_deref = 0x06, ++ DW_OP_const1u = 0x08, ++ DW_OP_const1s = 0x09, ++ DW_OP_const2u = 0x0a, ++ DW_OP_const2s = 0x0b, ++ DW_OP_const4u = 0x0c, ++ DW_OP_const4s = 0x0d, ++ DW_OP_const8u = 0x0e, ++ DW_OP_const8s = 0x0f, ++ DW_OP_constu = 0x10, ++ DW_OP_consts = 0x11, ++ DW_OP_dup = 0x12, ++ DW_OP_drop = 0x13, ++ DW_OP_over = 0x14, ++ DW_OP_pick = 0x15, ++ DW_OP_swap = 0x16, ++ DW_OP_rot = 0x17, ++ DW_OP_xderef = 0x18, ++ DW_OP_abs = 0x19, ++ DW_OP_and = 0x1a, ++ DW_OP_div = 0x1b, ++ DW_OP_minus = 0x1c, ++ DW_OP_mod = 0x1d, ++ DW_OP_mul = 0x1e, ++ DW_OP_neg = 0x1f, ++ DW_OP_not = 0x20, ++ DW_OP_or = 0x21, ++ DW_OP_plus = 0x22, ++ DW_OP_plus_uconst = 0x23, ++ DW_OP_shl = 0x24, ++ DW_OP_shr = 0x25, ++ DW_OP_shra = 0x26, ++ DW_OP_xor = 0x27, ++ DW_OP_bra = 0x28, ++ DW_OP_eq = 0x29, ++ DW_OP_ge = 0x2a, ++ DW_OP_gt = 0x2b, ++ DW_OP_le = 0x2c, ++ DW_OP_lt = 0x2d, ++ DW_OP_ne = 0x2e, ++ DW_OP_skip = 0x2f, ++ DW_OP_lit0 = 0x30, ++ DW_OP_lit1 = 0x31, ++ DW_OP_lit2 = 0x32, ++ DW_OP_lit3 = 0x33, ++ DW_OP_lit4 = 0x34, ++ DW_OP_lit5 = 0x35, ++ DW_OP_lit6 = 0x36, ++ DW_OP_lit7 = 0x37, ++ DW_OP_lit8 = 0x38, ++ DW_OP_lit9 = 0x39, ++ DW_OP_lit10 = 0x3a, ++ DW_OP_lit11 = 0x3b, ++ DW_OP_lit12 = 0x3c, ++ DW_OP_lit13 = 0x3d, ++ DW_OP_lit14 = 0x3e, ++ DW_OP_lit15 = 0x3f, ++ DW_OP_lit16 = 0x40, ++ DW_OP_lit17 = 0x41, ++ DW_OP_lit18 = 0x42, ++ DW_OP_lit19 = 0x43, ++ DW_OP_lit20 = 0x44, ++ DW_OP_lit21 = 0x45, ++ DW_OP_lit22 = 0x46, ++ DW_OP_lit23 = 0x47, ++ DW_OP_lit24 = 0x48, ++ DW_OP_lit25 = 0x49, ++ DW_OP_lit26 = 0x4a, ++ DW_OP_lit27 = 0x4b, ++ DW_OP_lit28 = 0x4c, ++ DW_OP_lit29 = 0x4d, ++ DW_OP_lit30 = 0x4e, ++ DW_OP_lit31 = 0x4f, ++ DW_OP_reg0 = 0x50, ++ DW_OP_reg1 = 0x51, ++ DW_OP_reg2 = 0x52, ++ DW_OP_reg3 = 0x53, ++ DW_OP_reg4 = 0x54, ++ DW_OP_reg5 = 0x55, ++ DW_OP_reg6 = 0x56, ++ DW_OP_reg7 = 0x57, ++ DW_OP_reg8 = 0x58, ++ DW_OP_reg9 = 0x59, ++ DW_OP_reg10 = 0x5a, ++ DW_OP_reg11 = 0x5b, ++ DW_OP_reg12 = 0x5c, ++ DW_OP_reg13 = 0x5d, ++ DW_OP_reg14 = 0x5e, ++ DW_OP_reg15 = 0x5f, ++ DW_OP_reg16 = 0x60, ++ DW_OP_reg17 = 0x61, ++ DW_OP_reg18 = 0x62, ++ DW_OP_reg19 = 0x63, ++ DW_OP_reg20 = 0x64, ++ DW_OP_reg21 = 0x65, ++ DW_OP_reg22 = 0x66, ++ DW_OP_reg23 = 0x67, ++ DW_OP_reg24 = 0x68, ++ DW_OP_reg25 = 0x69, ++ DW_OP_reg26 = 0x6a, ++ DW_OP_reg27 = 0x6b, ++ DW_OP_reg28 = 0x6c, ++ DW_OP_reg29 = 0x6d, ++ DW_OP_reg30 = 0x6e, ++ DW_OP_reg31 = 0x6f, ++ DW_OP_breg0 = 0x70, ++ DW_OP_breg1 = 0x71, ++ DW_OP_breg2 = 0x72, ++ DW_OP_breg3 = 0x73, ++ DW_OP_breg4 = 0x74, ++ DW_OP_breg5 = 0x75, ++ DW_OP_breg6 = 0x76, ++ DW_OP_breg7 = 0x77, ++ DW_OP_breg8 = 0x78, ++ DW_OP_breg9 = 0x79, ++ DW_OP_breg10 = 0x7a, ++ DW_OP_breg11 = 0x7b, ++ DW_OP_breg12 = 0x7c, ++ DW_OP_breg13 = 0x7d, ++ DW_OP_breg14 = 0x7e, ++ DW_OP_breg15 = 0x7f, ++ DW_OP_breg16 = 0x80, ++ DW_OP_breg17 = 0x81, ++ DW_OP_breg18 = 0x82, ++ DW_OP_breg19 = 0x83, ++ DW_OP_breg20 = 0x84, ++ DW_OP_breg21 = 0x85, ++ DW_OP_breg22 = 0x86, ++ DW_OP_breg23 = 0x87, ++ DW_OP_breg24 = 0x88, ++ DW_OP_breg25 = 0x89, ++ DW_OP_breg26 = 0x8a, ++ DW_OP_breg27 = 0x8b, ++ DW_OP_breg28 = 0x8c, ++ DW_OP_breg29 = 0x8d, ++ DW_OP_breg30 = 0x8e, ++ DW_OP_breg31 = 0x8f, ++ DW_OP_regx = 0x90, ++ DW_OP_fbreg = 0x91, ++ DW_OP_bregx = 0x92, ++ DW_OP_piece = 0x93, ++ DW_OP_deref_size = 0x94, ++ DW_OP_xderef_size = 0x95, ++ DW_OP_nop = 0x96 ++ }; ++ ++#define DW_OP_lo_user 0x80 /* implementation-defined range start */ ++#define DW_OP_hi_user 0xff /* implementation-defined range end */ ++ ++/* Type encodings. */ ++ ++enum dwarf_type ++ { ++ DW_ATE_void = 0x0, ++ DW_ATE_address = 0x1, ++ DW_ATE_boolean = 0x2, ++ DW_ATE_complex_float = 0x3, ++ DW_ATE_float = 0x4, ++ DW_ATE_signed = 0x5, ++ DW_ATE_signed_char = 0x6, ++ DW_ATE_unsigned = 0x7, ++ DW_ATE_unsigned_char = 0x8 ++ }; ++ ++#define DW_ATE_lo_user 0x80 ++#define DW_ATE_hi_user 0xff ++ ++/* Array ordering names and codes. */ ++enum dwarf_array_dim_ordering ++ { ++ DW_ORD_row_major = 0, ++ DW_ORD_col_major = 1 ++ }; ++ ++/* access attribute */ ++enum dwarf_access_attribute ++ { ++ DW_ACCESS_public = 1, ++ DW_ACCESS_protected = 2, ++ DW_ACCESS_private = 3 ++ }; ++ ++/* visibility */ ++enum dwarf_visibility_attribute ++ { ++ DW_VIS_local = 1, ++ DW_VIS_exported = 2, ++ DW_VIS_qualified = 3 ++ }; ++ ++/* virtuality */ ++enum dwarf_virtuality_attribute ++ { ++ DW_VIRTUALITY_none = 0, ++ DW_VIRTUALITY_virtual = 1, ++ DW_VIRTUALITY_pure_virtual = 2 ++ }; ++ ++/* case sensitivity */ ++enum dwarf_id_case ++ { ++ DW_ID_case_sensitive = 0, ++ DW_ID_up_case = 1, ++ DW_ID_down_case = 2, ++ DW_ID_case_insensitive = 3 ++ }; ++ ++/* calling convention */ ++enum dwarf_calling_convention ++ { ++ DW_CC_normal = 0x1, ++ DW_CC_program = 0x2, ++ DW_CC_nocall = 0x3 ++ }; ++ ++#define DW_CC_lo_user 0x40 ++#define DW_CC_hi_user 0xff ++ ++/* inline attribute */ ++enum dwarf_inline_attribute ++ { ++ DW_INL_not_inlined = 0, ++ DW_INL_inlined = 1, ++ DW_INL_declared_not_inlined = 2, ++ DW_INL_declared_inlined = 3 ++ }; ++ ++/* discriminant lists */ ++enum dwarf_discrim_list ++ { ++ DW_DSC_label = 0, ++ DW_DSC_range = 1 ++ }; ++ ++/* line number opcodes */ ++enum dwarf_line_number_ops ++ { ++ DW_LNS_extended_op = 0, ++ DW_LNS_copy = 1, ++ DW_LNS_advance_pc = 2, ++ DW_LNS_advance_line = 3, ++ DW_LNS_set_file = 4, ++ DW_LNS_set_column = 5, ++ DW_LNS_negate_stmt = 6, ++ DW_LNS_set_basic_block = 7, ++ DW_LNS_const_add_pc = 8, ++ DW_LNS_fixed_advance_pc = 9 ++ }; ++ ++/* line number extended opcodes */ ++enum dwarf_line_number_x_ops ++ { ++ DW_LNE_end_sequence = 1, ++ DW_LNE_set_address = 2, ++ DW_LNE_define_file = 3 ++ }; ++ ++/* call frame information */ ++enum dwarf_call_frame_info ++ { ++ DW_CFA_advance_loc = 0x40, ++ DW_CFA_offset = 0x80, ++ DW_CFA_restore = 0xc0, ++ DW_CFA_nop = 0x00, ++ DW_CFA_set_loc = 0x01, ++ DW_CFA_advance_loc1 = 0x02, ++ DW_CFA_advance_loc2 = 0x03, ++ DW_CFA_advance_loc4 = 0x04, ++ DW_CFA_offset_extended = 0x05, ++ DW_CFA_restore_extended = 0x06, ++ DW_CFA_undefined = 0x07, ++ DW_CFA_same_value = 0x08, ++ DW_CFA_register = 0x09, ++ DW_CFA_remember_state = 0x0a, ++ DW_CFA_restore_state = 0x0b, ++ DW_CFA_def_cfa = 0x0c, ++ DW_CFA_def_cfa_register = 0x0d, ++ DW_CFA_def_cfa_offset = 0x0e, ++ DW_CFA_def_cfa_expression = 0x0f, ++ DW_CFA_expression = 0x10, ++ /* Dwarf 2.1 */ ++ DW_CFA_offset_extended_sf = 0x11, ++ DW_CFA_def_cfa_sf = 0x12, ++ DW_CFA_def_cfa_offset_sf = 0x13, ++ ++ /* SGI/MIPS specific */ ++ DW_CFA_MIPS_advance_loc8 = 0x1d, ++ ++ /* GNU extensions */ ++ DW_CFA_GNU_window_save = 0x2d, ++ DW_CFA_GNU_args_size = 0x2e, ++ DW_CFA_GNU_negative_offset_extended = 0x2f ++ }; ++ ++#define DW_CIE_ID 0xffffffff ++#define DW_CIE_VERSION 1 ++ ++#define DW_CFA_extended 0 ++#define DW_CFA_low_user 0x1c ++#define DW_CFA_high_user 0x3f ++ ++#define DW_CHILDREN_no 0x00 ++#define DW_CHILDREN_yes 0x01 ++ ++#define DW_ADDR_none 0 ++ ++/* Source language names and codes. */ ++ ++enum dwarf_source_language ++ { ++ DW_LANG_C89 = 0x0001, ++ DW_LANG_C = 0x0002, ++ DW_LANG_Ada83 = 0x0003, ++ DW_LANG_C_plus_plus = 0x0004, ++ DW_LANG_Cobol74 = 0x0005, ++ DW_LANG_Cobol85 = 0x0006, ++ DW_LANG_Fortran77 = 0x0007, ++ DW_LANG_Fortran90 = 0x0008, ++ DW_LANG_Pascal83 = 0x0009, ++ DW_LANG_Modula2 = 0x000a, ++ DW_LANG_Java = 0x000b, ++ DW_LANG_Mips_Assembler = 0x8001 ++ }; ++ ++ ++#define DW_LANG_lo_user 0x8000 /* implementation-defined range start */ ++#define DW_LANG_hi_user 0xffff /* implementation-defined range start */ ++ ++/* Names and codes for macro information. */ ++ ++enum dwarf_macinfo_record_type ++ { ++ DW_MACINFO_define = 1, ++ DW_MACINFO_undef = 2, ++ DW_MACINFO_start_file = 3, ++ DW_MACINFO_end_file = 4, ++ DW_MACINFO_vendor_ext = 255 ++ }; ++ ++ ++/* @@@ For use with GNU frame unwind information. */ ++ ++#define DW_EH_PE_absptr 0x00 ++#define DW_EH_PE_omit 0xff ++ ++#define DW_EH_PE_uleb128 0x01 ++#define DW_EH_PE_udata2 0x02 ++#define DW_EH_PE_udata4 0x03 ++#define DW_EH_PE_udata8 0x04 ++#define DW_EH_PE_sleb128 0x09 ++#define DW_EH_PE_sdata2 0x0A ++#define DW_EH_PE_sdata4 0x0B ++#define DW_EH_PE_sdata8 0x0C ++#define DW_EH_PE_signed 0x08 ++ ++#define DW_EH_PE_pcrel 0x10 ++#define DW_EH_PE_textrel 0x20 ++#define DW_EH_PE_datarel 0x30 ++#define DW_EH_PE_funcrel 0x40 ++#define DW_EH_PE_aligned 0x50 ++ ++#define DW_EH_PE_indirect 0x80 +--- libc/sysdeps/generic/gccframe.h.jj Mon Jul 9 14:57:58 2001 ++++ libc/sysdeps/generic/gccframe.h Sat Aug 4 15:40:57 2001 +@@ -1,5 +1,5 @@ + /* Definition of object in frame unwind info. Generic version. +- Copyright (C) 2000 Free Software Foundation, Inc. ++ Copyright (C) 2000, 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 +@@ -17,14 +17,34 @@ + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +-/* This must match what's in frame.h in gcc. */ ++#include ++ ++struct dwarf_fde; ++struct fde_vector; + + struct object + { + void *pc_begin; +- void *pc_end; +- void *fde_begin; +- void *fde_array; +- __SIZE_TYPE__ count; ++ void *tbase; ++ void *dbase; ++ union { ++ struct dwarf_fde *single; ++ struct dwarf_fde **array; ++ struct fde_vector *sort; ++ } u; ++ ++ union { ++ struct { ++ unsigned long sorted : 1; ++ unsigned long from_array : 1; ++ unsigned long mixed_encoding : 1; ++ unsigned long encoding : 8; ++ /* ??? Wish there was an easy way to detect a 64-bit host here; ++ we've got 32 bits left to play with... */ ++ unsigned long count : 21; ++ } b; ++ size_t i; ++ } s; ++ + struct object *next; + }; +--- libc/sysdeps/generic/unwind-dw2-fde.c.jj Sat Aug 4 15:40:57 2001 ++++ libc/sysdeps/generic/unwind-dw2-fde.c Mon Aug 6 03:49:55 2001 +@@ -0,0 +1,1013 @@ ++/* Subroutines needed for unwinding stack frames for exception handling. */ ++/* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. ++ Contributed by Jason Merrill . ++ ++This file is part of GNU CC. ++ ++GNU CC 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. ++ ++In addition to the permissions in the GNU General Public License, the ++Free Software Foundation gives you unlimited permission to link the ++compiled version of this file into combinations with other programs, ++and to distribute those combinations without any restriction coming ++from the use of this file. (The General Public License restrictions ++do apply in other respects; for example, they cover modification of ++the file, and distribution when not linked into a combine ++executable.) ++ ++GNU CC is distributed in the hope that 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 GNU CC; see the file COPYING. If not, write to ++the Free Software Foundation, 59 Temple Place - Suite 330, ++Boston, MA 02111-1307, USA. */ ++ ++#ifdef _LIBC ++#include ++#include ++#include ++#include ++#include ++#define NO_BASE_OF_ENCODED_VALUE ++#include ++#include ++#else ++#include "tconfig.h" ++#include "tsystem.h" ++#include "dwarf2.h" ++#include "unwind.h" ++#define NO_BASE_OF_ENCODED_VALUE ++#include "unwind-pe.h" ++#include "unwind-dw2-fde.h" ++#include "gthr.h" ++#endif ++ ++/* The unseen_objects list contains objects that have been registered ++ but not yet categorized in any way. The seen_objects list has had ++ it's pc_begin and count fields initialized at minimum, and is sorted ++ by decreasing value of pc_begin. */ ++static struct object *unseen_objects; ++static struct object *seen_objects; ++ ++#ifdef _LIBC ++ ++__libc_lock_define_initialized_recursive (static, object_mutex) ++#define init_object_mutex_once() ++#define __gthread_mutex_lock(m) __libc_lock_lock (*(m)) ++#define __gthread_mutex_unlock(m) __libc_lock_unlock (*(m)) ++ ++#else ++ ++#ifdef __GTHREAD_MUTEX_INIT ++static __gthread_mutex_t object_mutex = __GTHREAD_MUTEX_INIT; ++#else ++static __gthread_mutex_t object_mutex; ++#endif ++ ++#ifdef __GTHREAD_MUTEX_INIT_FUNCTION ++static void ++init_object_mutex (void) ++{ ++ __GTHREAD_MUTEX_INIT_FUNCTION (&object_mutex); ++} ++ ++static void ++init_object_mutex_once (void) ++{ ++ static __gthread_once_t once = __GTHREAD_ONCE_INIT; ++ __gthread_once (&once, init_object_mutex); ++} ++#else ++#define init_object_mutex_once() ++#endif ++ ++#endif /* _LIBC */ ++ ++/* Called from crtbegin.o to register the unwind info for an object. */ ++ ++void ++__register_frame_info_bases (void *begin, struct object *ob, ++ void *tbase, void *dbase) ++{ ++ ob->pc_begin = (void *)-1; ++ ob->tbase = tbase; ++ ob->dbase = dbase; ++ ob->u.single = begin; ++ ob->s.i = 0; ++ ob->s.b.encoding = DW_EH_PE_omit; ++ ++ init_object_mutex_once (); ++ __gthread_mutex_lock (&object_mutex); ++ ++ ob->next = unseen_objects; ++ unseen_objects = ob; ++ ++ __gthread_mutex_unlock (&object_mutex); ++} ++ ++void ++__register_frame_info (void *begin, struct object *ob) ++{ ++ __register_frame_info_bases (begin, ob, 0, 0); ++} ++ ++void ++__register_frame (void *begin) ++{ ++ struct object *ob = (struct object *) malloc (sizeof (struct object)); ++ __register_frame_info (begin, ob); ++} ++ ++/* Similar, but BEGIN is actually a pointer to a table of unwind entries ++ for different translation units. Called from the file generated by ++ collect2. */ ++ ++void ++__register_frame_info_table_bases (void *begin, struct object *ob, ++ void *tbase, void *dbase) ++{ ++ ob->pc_begin = (void *)-1; ++ ob->tbase = tbase; ++ ob->dbase = dbase; ++ ob->u.array = begin; ++ ob->s.i = 0; ++ ob->s.b.from_array = 1; ++ ob->s.b.encoding = DW_EH_PE_omit; ++ ++ init_object_mutex_once (); ++ __gthread_mutex_lock (&object_mutex); ++ ++ ob->next = unseen_objects; ++ unseen_objects = ob; ++ ++ __gthread_mutex_unlock (&object_mutex); ++} ++ ++void ++__register_frame_info_table (void *begin, struct object *ob) ++{ ++ __register_frame_info_table_bases (begin, ob, 0, 0); ++} ++ ++void ++__register_frame_table (void *begin) ++{ ++ struct object *ob = (struct object *) malloc (sizeof (struct object)); ++ __register_frame_info_table (begin, ob); ++} ++ ++/* Called from crtbegin.o to deregister the unwind info for an object. */ ++/* ??? Glibc has for a while now exported __register_frame_info and ++ __deregister_frame_info. If we call __register_frame_info_bases ++ from crtbegin (wherein it is declared weak), and this object does ++ not get pulled from libgcc.a for other reasons, then the ++ invocation of __deregister_frame_info will be resolved from glibc. ++ Since the registration did not happen there, we'll abort. ++ ++ Therefore, declare a new deregistration entry point that does the ++ exact same thing, but will resolve to the same library as ++ implements __register_frame_info_bases. */ ++ ++void * ++__deregister_frame_info_bases (void *begin) ++{ ++ struct object **p; ++ struct object *ob = 0; ++ ++ init_object_mutex_once (); ++ __gthread_mutex_lock (&object_mutex); ++ ++ for (p = &unseen_objects; *p ; p = &(*p)->next) ++ if ((*p)->u.single == begin) ++ { ++ ob = *p; ++ *p = ob->next; ++ goto out; ++ } ++ ++ for (p = &seen_objects; *p ; p = &(*p)->next) ++ if ((*p)->s.b.sorted) ++ { ++ if ((*p)->u.sort->orig_data == begin) ++ { ++ ob = *p; ++ *p = ob->next; ++ free (ob->u.sort); ++ goto out; ++ } ++ } ++ else ++ { ++ if ((*p)->u.single == begin) ++ { ++ ob = *p; ++ *p = ob->next; ++ goto out; ++ } ++ } ++ ++ __gthread_mutex_unlock (&object_mutex); ++ abort (); ++ ++ out: ++ __gthread_mutex_unlock (&object_mutex); ++ return (void *) ob; ++} ++ ++void * ++__deregister_frame_info (void *begin) ++{ ++ return __deregister_frame_info_bases (begin); ++} ++ ++void ++__deregister_frame (void *begin) ++{ ++ free (__deregister_frame_info (begin)); ++} ++ ++ ++/* Like base_of_encoded_value, but take the base from a struct object ++ instead of an _Unwind_Context. */ ++ ++static _Unwind_Ptr ++base_from_object (unsigned char encoding, struct object *ob) ++{ ++ if (encoding == DW_EH_PE_omit) ++ return 0; ++ ++ switch (encoding & 0x70) ++ { ++ case DW_EH_PE_absptr: ++ case DW_EH_PE_pcrel: ++ case DW_EH_PE_aligned: ++ return 0; ++ ++ case DW_EH_PE_textrel: ++ return (_Unwind_Ptr) ob->tbase; ++ case DW_EH_PE_datarel: ++ return (_Unwind_Ptr) ob->dbase; ++ } ++ abort (); ++} ++ ++/* Return the FDE pointer encoding from the CIE. */ ++/* ??? This is a subset of extract_cie_info from unwind-dw2.c. */ ++ ++static int ++get_cie_encoding (struct dwarf_cie *cie) ++{ ++ const unsigned char *aug, *p; ++ _Unwind_Ptr dummy; ++ ++ aug = cie->augmentation; ++ if (aug[0] != 'z') ++ return DW_EH_PE_absptr; ++ ++ p = aug + strlen (aug) + 1; /* Skip the augmentation string. */ ++ p = read_uleb128 (p, &dummy); /* Skip code alignment. */ ++ p = read_sleb128 (p, &dummy); /* Skip data alignment. */ ++ p++; /* Skip return address column. */ ++ ++ aug++; /* Skip 'z' */ ++ p = read_uleb128 (p, &dummy); /* Skip augmentation length. */ ++ while (1) ++ { ++ /* This is what we're looking for. */ ++ if (*aug == 'R') ++ return *p; ++ /* Personality encoding and pointer. */ ++ else if (*aug == 'P') ++ { ++ /* ??? Avoid dereferencing indirect pointers, since we're ++ faking the base address. Gotta keep DW_EH_PE_aligned ++ intact, however. */ ++ p = read_encoded_value_with_base (*p & 0x7F, 0, p + 1, &dummy); ++ } ++ /* LSDA encoding. */ ++ else if (*aug == 'L') ++ p++; ++ /* Otherwise end of string, or unknown augmentation. */ ++ else ++ return DW_EH_PE_absptr; ++ aug++; ++ } ++} ++ ++static inline int ++get_fde_encoding (struct dwarf_fde *f) ++{ ++ return get_cie_encoding (get_cie (f)); ++} ++ ++ ++/* Sorting an array of FDEs by address. ++ (Ideally we would have the linker sort the FDEs so we don't have to do ++ it at run time. But the linkers are not yet prepared for this.) */ ++ ++/* Comparison routines. Three variants of increasing complexity. */ ++ ++static saddr ++fde_unencoded_compare (struct object *ob __attribute__((unused)), ++ fde *x, fde *y) ++{ ++ return *(saddr *)x->pc_begin - *(saddr *)y->pc_begin; ++} ++ ++static saddr ++fde_single_encoding_compare (struct object *ob, fde *x, fde *y) ++{ ++ _Unwind_Ptr base, x_ptr, y_ptr; ++ ++ base = base_from_object (ob->s.b.encoding, ob); ++ read_encoded_value_with_base (ob->s.b.encoding, base, x->pc_begin, &x_ptr); ++ read_encoded_value_with_base (ob->s.b.encoding, base, y->pc_begin, &y_ptr); ++ ++ return x_ptr - y_ptr; ++} ++ ++static saddr ++fde_mixed_encoding_compare (struct object *ob, fde *x, fde *y) ++{ ++ int x_encoding, y_encoding; ++ _Unwind_Ptr x_ptr, y_ptr; ++ ++ x_encoding = get_fde_encoding (x); ++ read_encoded_value_with_base (x_encoding, base_from_object (x_encoding, ob), ++ x->pc_begin, &x_ptr); ++ ++ y_encoding = get_fde_encoding (y); ++ read_encoded_value_with_base (y_encoding, base_from_object (y_encoding, ob), ++ y->pc_begin, &y_ptr); ++ ++ return x_ptr - y_ptr; ++} ++ ++typedef saddr (*fde_compare_t) (struct object *, fde *, fde *); ++ ++ ++/* This is a special mix of insertion sort and heap sort, optimized for ++ the data sets that actually occur. They look like ++ 101 102 103 127 128 105 108 110 190 111 115 119 125 160 126 129 130. ++ I.e. a linearly increasing sequence (coming from functions in the text ++ section), with additionally a few unordered elements (coming from functions ++ in gnu_linkonce sections) whose values are higher than the values in the ++ surrounding linear sequence (but not necessarily higher than the values ++ at the end of the linear sequence!). ++ The worst-case total run time is O(N) + O(n log (n)), where N is the ++ total number of FDEs and n is the number of erratic ones. */ ++ ++struct fde_accumulator ++{ ++ struct fde_vector *linear; ++ struct fde_vector *erratic; ++}; ++ ++static inline int ++start_fde_sort (struct fde_accumulator *accu, size_t count) ++{ ++ size_t size; ++ if (! count) ++ return 0; ++ ++ size = sizeof (struct fde_vector) + sizeof (fde *) * count; ++ if ((accu->linear = (struct fde_vector *) malloc (size))) ++ { ++ accu->linear->count = 0; ++ if ((accu->erratic = (struct fde_vector *) malloc (size))) ++ accu->erratic->count = 0; ++ return 1; ++ } ++ else ++ return 0; ++} ++ ++static inline void ++fde_insert (struct fde_accumulator *accu, fde *this_fde) ++{ ++ if (accu->linear) ++ accu->linear->array[accu->linear->count++] = this_fde; ++} ++ ++/* Split LINEAR into a linear sequence with low values and an erratic ++ sequence with high values, put the linear one (of longest possible ++ length) into LINEAR and the erratic one into ERRATIC. This is O(N). ++ ++ Because the longest linear sequence we are trying to locate within the ++ incoming LINEAR array can be interspersed with (high valued) erratic ++ entries. We construct a chain indicating the sequenced entries. ++ To avoid having to allocate this chain, we overlay it onto the space of ++ the ERRATIC array during construction. A final pass iterates over the ++ chain to determine what should be placed in the ERRATIC array, and ++ what is the linear sequence. This overlay is safe from aliasing. */ ++ ++static inline void ++fde_split (struct object *ob, fde_compare_t fde_compare, ++ struct fde_vector *linear, struct fde_vector *erratic) ++{ ++ static fde *marker; ++ size_t count = linear->count; ++ fde **chain_end = ▮ ++ size_t i, j, k; ++ ++ /* This should optimize out, but it is wise to make sure this assumption ++ is correct. Should these have different sizes, we cannot cast between ++ them and the overlaying onto ERRATIC will not work. */ ++ if (sizeof (fde *) != sizeof (fde **)) ++ abort (); ++ ++ for (i = 0; i < count; i++) ++ { ++ fde **probe; ++ ++ for (probe = chain_end; ++ probe != &marker && fde_compare (ob, linear->array[i], *probe) < 0; ++ probe = chain_end) ++ { ++ chain_end = (fde **)erratic->array[probe - linear->array]; ++ erratic->array[probe - linear->array] = NULL; ++ } ++ erratic->array[i] = (fde *)chain_end; ++ chain_end = &linear->array[i]; ++ } ++ ++ /* Each entry in LINEAR which is part of the linear sequence we have ++ discovered will correspond to a non-NULL entry in the chain we built in ++ the ERRATIC array. */ ++ for (i = j = k = 0; i < count; i++) ++ if (erratic->array[i]) ++ linear->array[j++] = linear->array[i]; ++ else ++ erratic->array[k++] = linear->array[i]; ++ linear->count = j; ++ erratic->count = k; ++} ++ ++/* This is O(n log(n)). BSD/OS defines heapsort in stdlib.h, so we must ++ use a name that does not conflict. */ ++ ++static void ++frame_heapsort (struct object *ob, fde_compare_t fde_compare, ++ struct fde_vector *erratic) ++{ ++ /* For a description of this algorithm, see: ++ Samuel P. Harbison, Guy L. Steele Jr.: C, a reference manual, 2nd ed., ++ p. 60-61. */ ++ fde ** a = erratic->array; ++ /* A portion of the array is called a "heap" if for all i>=0: ++ If i and 2i+1 are valid indices, then a[i] >= a[2i+1]. ++ If i and 2i+2 are valid indices, then a[i] >= a[2i+2]. */ ++#define SWAP(x,y) do { fde * tmp = x; x = y; y = tmp; } while (0) ++ size_t n = erratic->count; ++ size_t m = n; ++ size_t i; ++ ++ while (m > 0) ++ { ++ /* Invariant: a[m..n-1] is a heap. */ ++ m--; ++ for (i = m; 2*i+1 < n; ) ++ { ++ if (2*i+2 < n ++ && fde_compare (ob, a[2*i+2], a[2*i+1]) > 0 ++ && fde_compare (ob, a[2*i+2], a[i]) > 0) ++ { ++ SWAP (a[i], a[2*i+2]); ++ i = 2*i+2; ++ } ++ else if (fde_compare (ob, a[2*i+1], a[i]) > 0) ++ { ++ SWAP (a[i], a[2*i+1]); ++ i = 2*i+1; ++ } ++ else ++ break; ++ } ++ } ++ while (n > 1) ++ { ++ /* Invariant: a[0..n-1] is a heap. */ ++ n--; ++ SWAP (a[0], a[n]); ++ for (i = 0; 2*i+1 < n; ) ++ { ++ if (2*i+2 < n ++ && fde_compare (ob, a[2*i+2], a[2*i+1]) > 0 ++ && fde_compare (ob, a[2*i+2], a[i]) > 0) ++ { ++ SWAP (a[i], a[2*i+2]); ++ i = 2*i+2; ++ } ++ else if (fde_compare (ob, a[2*i+1], a[i]) > 0) ++ { ++ SWAP (a[i], a[2*i+1]); ++ i = 2*i+1; ++ } ++ else ++ break; ++ } ++ } ++#undef SWAP ++} ++ ++/* Merge V1 and V2, both sorted, and put the result into V1. */ ++static inline void ++fde_merge (struct object *ob, fde_compare_t fde_compare, ++ struct fde_vector *v1, struct fde_vector *v2) ++{ ++ size_t i1, i2; ++ fde * fde2; ++ ++ i2 = v2->count; ++ if (i2 > 0) ++ { ++ i1 = v1->count; ++ do { ++ i2--; ++ fde2 = v2->array[i2]; ++ while (i1 > 0 && fde_compare (ob, v1->array[i1-1], fde2) > 0) ++ { ++ v1->array[i1+i2] = v1->array[i1-1]; ++ i1--; ++ } ++ v1->array[i1+i2] = fde2; ++ } while (i2 > 0); ++ v1->count += v2->count; ++ } ++} ++ ++static inline void ++end_fde_sort (struct object *ob, struct fde_accumulator *accu, size_t count) ++{ ++ fde_compare_t fde_compare; ++ ++ if (accu->linear && accu->linear->count != count) ++ abort (); ++ ++ if (ob->s.b.mixed_encoding) ++ fde_compare = fde_mixed_encoding_compare; ++ else if (ob->s.b.encoding == DW_EH_PE_absptr) ++ fde_compare = fde_unencoded_compare; ++ else ++ fde_compare = fde_single_encoding_compare; ++ ++ if (accu->erratic) ++ { ++ fde_split (ob, fde_compare, accu->linear, accu->erratic); ++ if (accu->linear->count + accu->erratic->count != count) ++ abort (); ++ frame_heapsort (ob, fde_compare, accu->erratic); ++ fde_merge (ob, fde_compare, accu->linear, accu->erratic); ++ free (accu->erratic); ++ } ++ else ++ { ++ /* We've not managed to malloc an erratic array, ++ so heap sort in the linear one. */ ++ frame_heapsort (ob, fde_compare, accu->linear); ++ } ++} ++ ++ ++/* Update encoding, mixed_encoding, and pc_begin for OB for the ++ fde array beginning at THIS_FDE. Return the number of fdes ++ encountered along the way. */ ++ ++static size_t ++classify_object_over_fdes (struct object *ob, fde *this_fde) ++{ ++ struct dwarf_cie *last_cie = 0; ++ size_t count = 0; ++ int encoding = DW_EH_PE_absptr; ++ _Unwind_Ptr base = 0; ++ ++ for (; this_fde->length != 0; this_fde = next_fde (this_fde)) ++ { ++ struct dwarf_cie *this_cie; ++ _Unwind_Ptr mask, pc_begin; ++ ++ /* Skip CIEs. */ ++ if (this_fde->CIE_delta == 0) ++ continue; ++ ++ /* Determine the encoding for this FDE. Note mixed encoded ++ objects for later. */ ++ this_cie = get_cie (this_fde); ++ if (this_cie != last_cie) ++ { ++ last_cie = this_cie; ++ encoding = get_cie_encoding (this_cie); ++ base = base_from_object (encoding, ob); ++ if (ob->s.b.encoding == DW_EH_PE_omit) ++ ob->s.b.encoding = encoding; ++ else if (ob->s.b.encoding != encoding) ++ ob->s.b.mixed_encoding = 1; ++ } ++ ++ read_encoded_value_with_base (encoding, base, this_fde->pc_begin, ++ &pc_begin); ++ ++ /* Take care to ignore link-once functions that were removed. ++ In these cases, the function address will be NULL, but if ++ the encoding is smaller than a pointer a true NULL may not ++ be representable. Assume 0 in the representable bits is NULL. */ ++ mask = size_of_encoded_value (encoding); ++ if (mask < sizeof (void *)) ++ mask = (1L << (mask << 3)) - 1; ++ else ++ mask = -1; ++ ++ if ((pc_begin & mask) == 0) ++ continue; ++ ++ count += 1; ++ if ((void *)pc_begin < ob->pc_begin) ++ ob->pc_begin = (void *)pc_begin; ++ } ++ ++ return count; ++} ++ ++static void ++add_fdes (struct object *ob, struct fde_accumulator *accu, fde *this_fde) ++{ ++ struct dwarf_cie *last_cie = 0; ++ int encoding = ob->s.b.encoding; ++ _Unwind_Ptr base = base_from_object (ob->s.b.encoding, ob); ++ ++ for (; this_fde->length != 0; this_fde = next_fde (this_fde)) ++ { ++ struct dwarf_cie *this_cie; ++ ++ /* Skip CIEs. */ ++ if (this_fde->CIE_delta == 0) ++ continue; ++ ++ if (ob->s.b.mixed_encoding) ++ { ++ /* Determine the encoding for this FDE. Note mixed encoded ++ objects for later. */ ++ this_cie = get_cie (this_fde); ++ if (this_cie != last_cie) ++ { ++ last_cie = this_cie; ++ encoding = get_cie_encoding (this_cie); ++ base = base_from_object (encoding, ob); ++ } ++ } ++ ++ if (encoding == DW_EH_PE_absptr) ++ { ++ if (*(_Unwind_Ptr *)this_fde->pc_begin == 0) ++ continue; ++ } ++ else ++ { ++ _Unwind_Ptr pc_begin, mask; ++ ++ read_encoded_value_with_base (encoding, base, this_fde->pc_begin, ++ &pc_begin); ++ ++ /* Take care to ignore link-once functions that were removed. ++ In these cases, the function address will be NULL, but if ++ the encoding is smaller than a pointer a true NULL may not ++ be representable. Assume 0 in the representable bits is NULL. */ ++ mask = size_of_encoded_value (encoding); ++ if (mask < sizeof (void *)) ++ mask = (1L << (mask << 3)) - 1; ++ else ++ mask = -1; ++ ++ if ((pc_begin & mask) == 0) ++ continue; ++ } ++ ++ fde_insert (accu, this_fde); ++ } ++} ++ ++/* Set up a sorted array of pointers to FDEs for a loaded object. We ++ count up the entries before allocating the array because it's likely to ++ be faster. We can be called multiple times, should we have failed to ++ allocate a sorted fde array on a previous occasion. */ ++ ++static inline void ++init_object (struct object* ob) ++{ ++ struct fde_accumulator accu; ++ size_t count; ++ ++ count = ob->s.b.count; ++ if (count == 0) ++ { ++ if (ob->s.b.from_array) ++ { ++ fde **p = ob->u.array; ++ for (count = 0; *p; ++p) ++ count += classify_object_over_fdes (ob, *p); ++ } ++ else ++ count = classify_object_over_fdes (ob, ob->u.single); ++ ++ /* The count field we have in the main struct object is somewhat ++ limited, but should suffice for virtually all cases. If the ++ counted value doesn't fit, re-write a zero. The worst that ++ happens is that we re-count next time -- admittedly non-trivial ++ in that this implies some 2M fdes, but at least we function. */ ++ ob->s.b.count = count; ++ if (ob->s.b.count != count) ++ ob->s.b.count = 0; ++ } ++ ++ if (!start_fde_sort (&accu, count)) ++ return; ++ ++ if (ob->s.b.from_array) ++ { ++ fde **p; ++ for (p = ob->u.array; *p; ++p) ++ add_fdes (ob, &accu, *p); ++ } ++ else ++ add_fdes (ob, &accu, ob->u.single); ++ ++ end_fde_sort (ob, &accu, count); ++ ++ /* Save the original fde pointer, since this is the key by which the ++ DSO will deregister the object. */ ++ accu.linear->orig_data = ob->u.single; ++ ob->u.sort = accu.linear; ++ ++ ob->s.b.sorted = 1; ++} ++ ++/* A linear search through a set of FDEs for the given PC. This is ++ used when there was insufficient memory to allocate and sort an ++ array. */ ++ ++static fde * ++linear_search_fdes (struct object *ob, fde *this_fde, void *pc) ++{ ++ struct dwarf_cie *last_cie = 0; ++ int encoding = ob->s.b.encoding; ++ _Unwind_Ptr base = base_from_object (ob->s.b.encoding, ob); ++ ++ for (; this_fde->length != 0; this_fde = next_fde (this_fde)) ++ { ++ struct dwarf_cie *this_cie; ++ _Unwind_Ptr pc_begin, pc_range; ++ ++ /* Skip CIEs. */ ++ if (this_fde->CIE_delta == 0) ++ continue; ++ ++ if (ob->s.b.mixed_encoding) ++ { ++ /* Determine the encoding for this FDE. Note mixed encoded ++ objects for later. */ ++ this_cie = get_cie (this_fde); ++ if (this_cie != last_cie) ++ { ++ last_cie = this_cie; ++ encoding = get_cie_encoding (this_cie); ++ base = base_from_object (encoding, ob); ++ } ++ } ++ ++ if (encoding == DW_EH_PE_absptr) ++ { ++ pc_begin = ((_Unwind_Ptr *)this_fde->pc_begin)[0]; ++ pc_range = ((_Unwind_Ptr *)this_fde->pc_begin)[1]; ++ if (pc_begin == 0) ++ continue; ++ } ++ else ++ { ++ _Unwind_Ptr mask; ++ const char *p; ++ ++ p = read_encoded_value_with_base (encoding, base, ++ this_fde->pc_begin, &pc_begin); ++ read_encoded_value_with_base (encoding & 0x0F, 0, p, &pc_range); ++ ++ /* Take care to ignore link-once functions that were removed. ++ In these cases, the function address will be NULL, but if ++ the encoding is smaller than a pointer a true NULL may not ++ be representable. Assume 0 in the representable bits is NULL. */ ++ mask = size_of_encoded_value (encoding); ++ if (mask < sizeof (void *)) ++ mask = (1L << (mask << 3)) - 1; ++ else ++ mask = -1; ++ ++ if ((pc_begin & mask) == 0) ++ continue; ++ } ++ ++ if ((_Unwind_Ptr)pc - pc_begin < pc_range) ++ return this_fde; ++ } ++ ++ return NULL; ++} ++ ++/* Binary search for an FDE containing the given PC. Here are three ++ implementations of increasing complexity. */ ++ ++static inline fde * ++binary_search_unencoded_fdes (struct object *ob, void *pc) ++{ ++ struct fde_vector *vec = ob->u.sort; ++ size_t lo, hi; ++ ++ for (lo = 0, hi = vec->count; lo < hi; ) ++ { ++ size_t i = (lo + hi) / 2; ++ fde *f = vec->array[i]; ++ void *pc_begin; ++ uaddr pc_range; ++ ++ pc_begin = ((void **)f->pc_begin)[0]; ++ pc_range = ((uaddr *)f->pc_begin)[1]; ++ ++ if (pc < pc_begin) ++ hi = i; ++ else if (pc >= pc_begin + pc_range) ++ lo = i + 1; ++ else ++ return f; ++ } ++ ++ return NULL; ++} ++ ++static inline fde * ++binary_search_single_encoding_fdes (struct object *ob, void *pc) ++{ ++ struct fde_vector *vec = ob->u.sort; ++ int encoding = ob->s.b.encoding; ++ _Unwind_Ptr base = base_from_object (encoding, ob); ++ size_t lo, hi; ++ ++ for (lo = 0, hi = vec->count; lo < hi; ) ++ { ++ size_t i = (lo + hi) / 2; ++ fde *f = vec->array[i]; ++ _Unwind_Ptr pc_begin, pc_range; ++ const char *p; ++ ++ p = read_encoded_value_with_base (encoding, base, f->pc_begin, ++ &pc_begin); ++ read_encoded_value_with_base (encoding & 0x0F, 0, p, &pc_range); ++ ++ if ((_Unwind_Ptr)pc < pc_begin) ++ hi = i; ++ else if ((_Unwind_Ptr)pc >= pc_begin + pc_range) ++ lo = i + 1; ++ else ++ return f; ++ } ++ ++ return NULL; ++} ++ ++static inline fde * ++binary_search_mixed_encoding_fdes (struct object *ob, void *pc) ++{ ++ struct fde_vector *vec = ob->u.sort; ++ size_t lo, hi; ++ ++ for (lo = 0, hi = vec->count; lo < hi; ) ++ { ++ size_t i = (lo + hi) / 2; ++ fde *f = vec->array[i]; ++ _Unwind_Ptr pc_begin, pc_range; ++ const char *p; ++ int encoding; ++ ++ encoding = get_fde_encoding (f); ++ p = read_encoded_value_with_base (encoding, ++ base_from_object (encoding, ob), ++ f->pc_begin, &pc_begin); ++ read_encoded_value_with_base (encoding & 0x0F, 0, p, &pc_range); ++ ++ if ((_Unwind_Ptr)pc < pc_begin) ++ hi = i; ++ else if ((_Unwind_Ptr)pc >= pc_begin + pc_range) ++ lo = i + 1; ++ else ++ return f; ++ } ++ ++ return NULL; ++} ++ ++static fde * ++search_object (struct object* ob, void *pc) ++{ ++ /* If the data hasn't been sorted, try to do this now. We may have ++ more memory available than last time we tried. */ ++ if (! ob->s.b.sorted) ++ { ++ init_object (ob); ++ ++ /* Despite the above comment, the normal reason to get here is ++ that we've not processed this object before. A quick range ++ check is in order. */ ++ if (pc < ob->pc_begin) ++ return NULL; ++ } ++ ++ if (ob->s.b.sorted) ++ { ++ if (ob->s.b.mixed_encoding) ++ return binary_search_mixed_encoding_fdes (ob, pc); ++ else if (ob->s.b.encoding == DW_EH_PE_absptr) ++ return binary_search_unencoded_fdes (ob, pc); ++ else ++ return binary_search_single_encoding_fdes (ob, pc); ++ } ++ else ++ { ++ /* Long slow labourious linear search, cos we've no memory. */ ++ if (ob->s.b.from_array) ++ { ++ fde **p; ++ for (p = ob->u.array; *p ; p++) ++ { ++ fde *f = linear_search_fdes (ob, *p, pc); ++ if (f) ++ return f; ++ } ++ return NULL; ++ } ++ else ++ return linear_search_fdes (ob, ob->u.single, pc); ++ } ++} ++ ++fde * ++_Unwind_Find_FDE (void *pc, struct dwarf_eh_bases *bases) ++{ ++ struct object *ob; ++ fde *f = NULL; ++ ++ init_object_mutex_once (); ++ __gthread_mutex_lock (&object_mutex); ++ ++ /* Linear search through the classified objects, to find the one ++ containing the pc. Note that pc_begin is sorted decending, and ++ we expect objects to be non-overlapping. */ ++ for (ob = seen_objects; ob; ob = ob->next) ++ if (pc >= ob->pc_begin) ++ { ++ f = search_object (ob, pc); ++ if (f) ++ goto fini; ++ break; ++ } ++ ++ /* Classify and search the objects we've not yet processed. */ ++ while ((ob = unseen_objects)) ++ { ++ struct object **p; ++ ++ unseen_objects = ob->next; ++ f = search_object (ob, pc); ++ ++ /* Insert the object into the classified list. */ ++ for (p = &seen_objects; *p ; p = &(*p)->next) ++ if ((*p)->pc_begin < ob->pc_begin) ++ break; ++ ob->next = *p; ++ *p = ob; ++ ++ if (f) ++ goto fini; ++ } ++ ++ fini: ++ __gthread_mutex_unlock (&object_mutex); ++ ++ if (f) ++ { ++ int encoding; ++ ++ bases->tbase = ob->tbase; ++ bases->dbase = ob->dbase; ++ ++ encoding = ob->s.b.encoding; ++ if (ob->s.b.mixed_encoding) ++ encoding = get_fde_encoding (f); ++ read_encoded_value_with_base (encoding, base_from_object (encoding, ob), ++ f->pc_begin, (_Unwind_Ptr *)&bases->func); ++ } ++ ++ return f; ++} +--- libc/sysdeps/generic/unwind-dw2-fde.h.jj Sat Aug 4 15:40:57 2001 ++++ libc/sysdeps/generic/unwind-dw2-fde.h Mon Aug 6 07:59:59 2001 +@@ -0,0 +1,165 @@ ++/* Subroutines needed for unwinding stack frames for exception handling. */ ++/* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. ++ Contributed by Jason Merrill . ++ ++This file is part of GNU CC. ++ ++GNU CC 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. ++ ++In addition to the permissions in the GNU General Public License, the ++Free Software Foundation gives you unlimited permission to link the ++compiled version of this file into combinations with other programs, ++and to distribute those combinations without any restriction coming ++from the use of this file. (The General Public License restrictions ++do apply in other respects; for example, they cover modification of ++the file, and distribution when not linked into a combine ++executable.) ++ ++GNU CC is distributed in the hope that 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 GNU CC; see the file COPYING. If not, write to ++the Free Software Foundation, 59 Temple Place - Suite 330, ++Boston, MA 02111-1307, USA. */ ++ ++ ++struct fde_vector ++{ ++ void *orig_data; ++ size_t count; ++ struct dwarf_fde *array __flexarr; ++}; ++ ++#ifdef _LIBC ++#include ++#else ++struct object ++{ ++ void *pc_begin; ++ void *tbase; ++ void *dbase; ++ union { ++ struct dwarf_fde *single; ++ struct dwarf_fde **array; ++ struct fde_vector *sort; ++ } u; ++ ++ union { ++ struct { ++ unsigned long sorted : 1; ++ unsigned long from_array : 1; ++ unsigned long mixed_encoding : 1; ++ unsigned long encoding : 8; ++ /* ??? Wish there was an easy way to detect a 64-bit host here; ++ we've got 32 bits left to play with... */ ++ unsigned long count : 21; ++ } b; ++ size_t i; ++ } s; ++ ++ struct object *next; ++}; ++#endif ++ ++/* This is the original definition of struct object. While the struct ++ itself was opaque to users, they did know how large it was, and ++ allocate one statically in crtbegin for each DSO. Keep this around ++ so that we're aware of the static size limitations for the new struct. */ ++struct old_object ++{ ++ void *pc_begin; ++ void *pc_end; ++ struct dwarf_fde *fde_begin; ++ struct dwarf_fde **fde_array; ++ size_t count; ++ struct old_object *next; ++}; ++ ++struct dwarf_eh_bases ++{ ++ void *tbase; ++ void *dbase; ++ void *func; ++}; ++ ++ ++extern void __register_frame_info_bases (void *, struct object *, ++ void *, void *); ++extern void __register_frame_info (void *, struct object *); ++extern void __register_frame (void *); ++extern void __register_frame_info_table_bases (void *, struct object *, ++ void *, void *); ++extern void __register_frame_info_table (void *, struct object *); ++extern void __register_frame_table (void *); ++extern void *__deregister_frame_info (void *); ++extern void *__deregister_frame_info_bases (void *); ++extern void __deregister_frame (void *); ++ ++ ++typedef int sword __attribute__ ((mode (SI))); ++typedef unsigned int uword __attribute__ ((mode (SI))); ++typedef unsigned int uaddr __attribute__ ((mode (pointer))); ++typedef int saddr __attribute__ ((mode (pointer))); ++typedef unsigned char ubyte; ++ ++/* Terminology: ++ CIE - Common Information Element ++ FDE - Frame Descriptor Element ++ ++ There is one per function, and it describes where the function code ++ is located, and what the register lifetimes and stack layout are ++ within the function. ++ ++ The data structures are defined in the DWARF specfication, although ++ not in a very readable way (see LITERATURE). ++ ++ Every time an exception is thrown, the code needs to locate the FDE ++ for the current function, and starts to look for exception regions ++ from that FDE. This works in a two-level search: ++ a) in a linear search, find the shared image (i.e. DLL) containing ++ the PC ++ b) using the FDE table for that shared object, locate the FDE using ++ binary search (which requires the sorting). */ ++ ++/* The first few fields of a CIE. The CIE_id field is 0 for a CIE, ++ to distinguish it from a valid FDE. FDEs are aligned to an addressing ++ unit boundary, but the fields within are unaligned. */ ++struct dwarf_cie ++{ ++ uword length; ++ sword CIE_id; ++ ubyte version; ++ unsigned char augmentation __flexarr; ++} __attribute__ ((packed, aligned (__alignof__ (void *)))); ++ ++/* The first few fields of an FDE. */ ++struct dwarf_fde ++{ ++ uword length; ++ sword CIE_delta; ++ unsigned char pc_begin __flexarr; ++} __attribute__ ((packed, aligned (__alignof__ (void *)))); ++ ++typedef struct dwarf_fde fde; ++ ++/* Locate the CIE for a given FDE. */ ++ ++static inline struct dwarf_cie * ++get_cie (struct dwarf_fde *f) ++{ ++ return (void *)&f->CIE_delta - f->CIE_delta; ++} ++ ++static inline fde * ++next_fde (fde *f) ++{ ++ return (fde *)((char *)f + f->length + sizeof (f->length)); ++} ++ ++extern fde * _Unwind_Find_FDE (void *, struct dwarf_eh_bases *); +--- libc/sysdeps/generic/unwind-dw2.c.jj Sat Aug 4 15:40:57 2001 ++++ libc/sysdeps/generic/unwind-dw2.c Mon Aug 6 08:03:52 2001 +@@ -0,0 +1,1207 @@ ++/* DWARF2 exception handling and frame unwind runtime interface routines. ++ Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. ++ ++ This file is part of GNU CC. ++ ++ GNU CC 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. ++ ++ GNU CC is distributed in the hope that 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 GNU CC; see the file COPYING. If not, write to ++ the Free Software Foundation, 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++#ifdef _LIBC ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#else ++#include "tconfig.h" ++#include "tsystem.h" ++#include "dwarf2.h" ++#include "unwind.h" ++#include "unwind-pe.h" ++#include "unwind-dw2-fde.h" ++#include "gthr.h" ++#endif ++ ++#if !USING_SJLJ_EXCEPTIONS ++ ++#ifndef STACK_GROWS_DOWNWARD ++#define STACK_GROWS_DOWNWARD 0 ++#else ++#undef STACK_GROWS_DOWNWARD ++#define STACK_GROWS_DOWNWARD 1 ++#endif ++ ++/* A target can override (perhaps for backward compatibility) how ++ many dwarf2 columns are unwound. */ ++#ifndef DWARF_FRAME_REGISTERS ++#define DWARF_FRAME_REGISTERS FIRST_PSEUDO_REGISTER ++#endif ++ ++/* This is the register and unwind state for a particular frame. */ ++struct _Unwind_Context ++{ ++ void *reg[DWARF_FRAME_REGISTERS+1]; ++ void *cfa; ++ void *ra; ++ void *lsda; ++ struct dwarf_eh_bases bases; ++ _Unwind_Word args_size; ++}; ++ ++#ifndef _LIBC ++/* Byte size of every register managed by these routines. */ ++static unsigned char dwarf_reg_size_table[DWARF_FRAME_REGISTERS]; ++#endif ++ ++ ++/* The result of interpreting the frame unwind info for a frame. ++ This is all symbolic at this point, as none of the values can ++ be resolved until the target pc is located. */ ++typedef struct ++{ ++ /* Each register save state can be described in terms of a CFA slot, ++ another register, or a location expression. */ ++ struct frame_state_reg_info ++ { ++ struct { ++ union { ++ unsigned int reg; ++ _Unwind_Sword offset; ++ const unsigned char *exp; ++ } loc; ++ enum { ++ REG_UNSAVED, ++ REG_SAVED_OFFSET, ++ REG_SAVED_REG, ++ REG_SAVED_EXP, ++ } how; ++ } reg[DWARF_FRAME_REGISTERS+1]; ++ ++ /* Used to implement DW_CFA_remember_state. */ ++ struct frame_state_reg_info *prev; ++ } regs; ++ ++ /* The CFA can be described in terms of a reg+offset or a ++ location expression. */ ++ _Unwind_Sword cfa_offset; ++ _Unwind_Word cfa_reg; ++ const unsigned char *cfa_exp; ++ enum { ++ CFA_UNSET, ++ CFA_REG_OFFSET, ++ CFA_EXP, ++ } cfa_how; ++ ++ /* The PC described by the current frame state. */ ++ void *pc; ++ ++ /* The information we care about from the CIE/FDE. */ ++ _Unwind_Personality_Fn personality; ++ signed int data_align; ++ unsigned int code_align; ++ unsigned char retaddr_column; ++ unsigned char fde_encoding; ++ unsigned char lsda_encoding; ++ unsigned char saw_z; ++ void *eh_ptr; ++} _Unwind_FrameState; ++ ++/* Read unaligned data from the instruction buffer. */ ++ ++union unaligned ++{ ++ void *p; ++ unsigned u2 __attribute__ ((mode (HI))); ++ unsigned u4 __attribute__ ((mode (SI))); ++ unsigned u8 __attribute__ ((mode (DI))); ++ signed s2 __attribute__ ((mode (HI))); ++ signed s4 __attribute__ ((mode (SI))); ++ signed s8 __attribute__ ((mode (DI))); ++} __attribute__ ((packed)); ++ ++static inline void * ++read_pointer (const void *p) { const union unaligned *up = p; return up->p; } ++ ++static inline int ++read_1u (const void *p) { return *(const unsigned char *)p; } ++ ++static inline int ++read_1s (const void *p) { return *(const signed char *)p; } ++ ++static inline int ++read_2u (const void *p) { const union unaligned *up = p; return up->u2; } ++ ++static inline int ++read_2s (const void *p) { const union unaligned *up = p; return up->s2; } ++ ++static inline unsigned int ++read_4u (const void *p) { const union unaligned *up = p; return up->u4; } ++ ++static inline int ++read_4s (const void *p) { const union unaligned *up = p; return up->s4; } ++ ++static inline unsigned long ++read_8u (const void *p) { const union unaligned *up = p; return up->u8; } ++ ++static inline unsigned long ++read_8s (const void *p) { const union unaligned *up = p; return up->s8; } ++ ++/* Get the value of register REG as saved in CONTEXT. */ ++ ++inline _Unwind_Word ++_Unwind_GetGR (struct _Unwind_Context *context, int index) ++{ ++ /* This will segfault if the register hasn't been saved. */ ++ return * (_Unwind_Word *) context->reg[index]; ++} ++ ++/* Overwrite the saved value for register REG in CONTEXT with VAL. */ ++ ++inline void ++_Unwind_SetGR (struct _Unwind_Context *context, int index, _Unwind_Word val) ++{ ++ * (_Unwind_Word *) context->reg[index] = val; ++} ++ ++/* Retrieve the return address for CONTEXT. */ ++ ++inline _Unwind_Ptr ++_Unwind_GetIP (struct _Unwind_Context *context) ++{ ++ return (_Unwind_Ptr) context->ra; ++} ++ ++/* Overwrite the return address for CONTEXT with VAL. */ ++ ++inline void ++_Unwind_SetIP (struct _Unwind_Context *context, _Unwind_Ptr val) ++{ ++ context->ra = (void *) val; ++} ++ ++void * ++_Unwind_GetLanguageSpecificData (struct _Unwind_Context *context) ++{ ++ return context->lsda; ++} ++ ++_Unwind_Ptr ++_Unwind_GetRegionStart (struct _Unwind_Context *context) ++{ ++ return (_Unwind_Ptr) context->bases.func; ++} ++ ++#ifndef __ia64__ ++_Unwind_Ptr ++_Unwind_GetDataRelBase (struct _Unwind_Context *context) ++{ ++ return (_Unwind_Ptr) context->bases.dbase; ++} ++ ++_Unwind_Ptr ++_Unwind_GetTextRelBase (struct _Unwind_Context *context) ++{ ++ return (_Unwind_Ptr) context->bases.tbase; ++} ++#endif ++ ++/* Extract any interesting information from the CIE for the translation ++ unit F belongs to. Return a pointer to the byte after the augmentation, ++ or NULL if we encountered an undecipherable augmentation. */ ++ ++static const unsigned char * ++extract_cie_info (struct dwarf_cie *cie, struct _Unwind_Context *context, ++ _Unwind_FrameState *fs) ++{ ++ const unsigned char *aug = cie->augmentation; ++ const unsigned char *p = aug + strlen (aug) + 1; ++ const unsigned char *ret = NULL; ++ _Unwind_Ptr tmp; ++ ++ /* g++ v2 "eh" has pointer immediately following augmentation string, ++ so it must be handled first. */ ++ if (aug[0] == 'e' && aug[1] == 'h') ++ { ++ fs->eh_ptr = read_pointer (p); ++ p += sizeof (void *); ++ aug += 2; ++ } ++ ++ /* Immediately following the augmentation are the code and ++ data alignment and return address column. */ ++ p = read_uleb128 (p, &tmp); fs->code_align = tmp; ++ p = read_sleb128 (p, &tmp); fs->data_align = (saddr) tmp; ++ fs->retaddr_column = *p++; ++ fs->lsda_encoding = DW_EH_PE_omit; ++ ++ /* If the augmentation starts with 'z', then a uleb128 immediately ++ follows containing the length of the augmentation field following ++ the size. */ ++ if (*aug == 'z') ++ { ++ p = read_uleb128 (p, &tmp); ++ ret = p + tmp; ++ ++ fs->saw_z = 1; ++ ++aug; ++ } ++ ++ /* Iterate over recognized augmentation subsequences. */ ++ while (*aug != '\0') ++ { ++ /* "L" indicates a byte showing how the LSDA pointer is encoded. */ ++ if (aug[0] == 'L') ++ { ++ fs->lsda_encoding = *p++; ++ aug += 1; ++ } ++ ++ /* "R" indicates a byte indicating how FDE addresses are encoded. */ ++ else if (aug[0] == 'R') ++ { ++ fs->fde_encoding = *p++; ++ aug += 1; ++ } ++ ++ /* "P" indicates a personality routine in the CIE augmentation. */ ++ else if (aug[0] == 'P') ++ { ++ p = read_encoded_value (context, *p, p + 1, ++ (_Unwind_Ptr *) &fs->personality); ++ aug += 1; ++ } ++ ++ /* Otherwise we have an unknown augmentation string. ++ Bail unless we saw a 'z' prefix. */ ++ else ++ return ret; ++ } ++ ++ return ret ? ret : p; ++} ++ ++#ifndef _LIBC ++/* Decode a DW_OP stack program. Return the top of stack. Push INITIAL ++ onto the stack to start. */ ++ ++static _Unwind_Word ++execute_stack_op (const unsigned char *op_ptr, const unsigned char *op_end, ++ struct _Unwind_Context *context, _Unwind_Word initial) ++{ ++ _Unwind_Word stack[64]; /* ??? Assume this is enough. */ ++ int stack_elt; ++ ++ stack[0] = initial; ++ stack_elt = 1; ++ ++ while (op_ptr < op_end) ++ { ++ enum dwarf_location_atom op = *op_ptr++; ++ _Unwind_Word result = 0, reg; ++ _Unwind_Sword offset; ++ _Unwind_Ptr ptrtmp; ++ ++ switch (op) ++ { ++ case DW_OP_lit0: ++ case DW_OP_lit1: ++ case DW_OP_lit2: ++ case DW_OP_lit3: ++ case DW_OP_lit4: ++ case DW_OP_lit5: ++ case DW_OP_lit6: ++ case DW_OP_lit7: ++ case DW_OP_lit8: ++ case DW_OP_lit9: ++ case DW_OP_lit10: ++ case DW_OP_lit11: ++ case DW_OP_lit12: ++ case DW_OP_lit13: ++ case DW_OP_lit14: ++ case DW_OP_lit15: ++ case DW_OP_lit16: ++ case DW_OP_lit17: ++ case DW_OP_lit18: ++ case DW_OP_lit19: ++ case DW_OP_lit20: ++ case DW_OP_lit21: ++ case DW_OP_lit22: ++ case DW_OP_lit23: ++ case DW_OP_lit24: ++ case DW_OP_lit25: ++ case DW_OP_lit26: ++ case DW_OP_lit27: ++ case DW_OP_lit28: ++ case DW_OP_lit29: ++ case DW_OP_lit30: ++ case DW_OP_lit31: ++ result = op - DW_OP_lit0; ++ break; ++ ++ case DW_OP_addr: ++ result = (_Unwind_Word) (_Unwind_Ptr) read_pointer (op_ptr); ++ op_ptr += sizeof (void *); ++ break; ++ ++ case DW_OP_const1u: ++ result = read_1u (op_ptr); ++ op_ptr += 1; ++ break; ++ case DW_OP_const1s: ++ result = read_1s (op_ptr); ++ op_ptr += 1; ++ break; ++ case DW_OP_const2u: ++ result = read_2u (op_ptr); ++ op_ptr += 2; ++ break; ++ case DW_OP_const2s: ++ result = read_2s (op_ptr); ++ op_ptr += 2; ++ break; ++ case DW_OP_const4u: ++ result = read_4u (op_ptr); ++ op_ptr += 4; ++ break; ++ case DW_OP_const4s: ++ result = read_4s (op_ptr); ++ op_ptr += 4; ++ break; ++ case DW_OP_const8u: ++ result = read_8u (op_ptr); ++ op_ptr += 8; ++ break; ++ case DW_OP_const8s: ++ result = read_8s (op_ptr); ++ op_ptr += 8; ++ break; ++ case DW_OP_constu: ++ op_ptr = read_uleb128 (op_ptr, &ptrtmp); ++ result = ptrtmp; ++ break; ++ case DW_OP_consts: ++ op_ptr = read_sleb128 (op_ptr, &ptrtmp); ++ result = (saddr)ptrtmp; ++ break; ++ ++ case DW_OP_reg0: ++ case DW_OP_reg1: ++ case DW_OP_reg2: ++ case DW_OP_reg3: ++ case DW_OP_reg4: ++ case DW_OP_reg5: ++ case DW_OP_reg6: ++ case DW_OP_reg7: ++ case DW_OP_reg8: ++ case DW_OP_reg9: ++ case DW_OP_reg10: ++ case DW_OP_reg11: ++ case DW_OP_reg12: ++ case DW_OP_reg13: ++ case DW_OP_reg14: ++ case DW_OP_reg15: ++ case DW_OP_reg16: ++ case DW_OP_reg17: ++ case DW_OP_reg18: ++ case DW_OP_reg19: ++ case DW_OP_reg20: ++ case DW_OP_reg21: ++ case DW_OP_reg22: ++ case DW_OP_reg23: ++ case DW_OP_reg24: ++ case DW_OP_reg25: ++ case DW_OP_reg26: ++ case DW_OP_reg27: ++ case DW_OP_reg28: ++ case DW_OP_reg29: ++ case DW_OP_reg30: ++ case DW_OP_reg31: ++ result = _Unwind_GetGR (context, op - DW_OP_reg0); ++ break; ++ case DW_OP_regx: ++ op_ptr = read_uleb128 (op_ptr, &ptrtmp); reg = ptrtmp; ++ result = _Unwind_GetGR (context, reg); ++ break; ++ ++ case DW_OP_breg0: ++ case DW_OP_breg1: ++ case DW_OP_breg2: ++ case DW_OP_breg3: ++ case DW_OP_breg4: ++ case DW_OP_breg5: ++ case DW_OP_breg6: ++ case DW_OP_breg7: ++ case DW_OP_breg8: ++ case DW_OP_breg9: ++ case DW_OP_breg10: ++ case DW_OP_breg11: ++ case DW_OP_breg12: ++ case DW_OP_breg13: ++ case DW_OP_breg14: ++ case DW_OP_breg15: ++ case DW_OP_breg16: ++ case DW_OP_breg17: ++ case DW_OP_breg18: ++ case DW_OP_breg19: ++ case DW_OP_breg20: ++ case DW_OP_breg21: ++ case DW_OP_breg22: ++ case DW_OP_breg23: ++ case DW_OP_breg24: ++ case DW_OP_breg25: ++ case DW_OP_breg26: ++ case DW_OP_breg27: ++ case DW_OP_breg28: ++ case DW_OP_breg29: ++ case DW_OP_breg30: ++ case DW_OP_breg31: ++ op_ptr = read_sleb128 (op_ptr, &ptrtmp); offset = (saddr)ptrtmp; ++ result = _Unwind_GetGR (context, op - DW_OP_breg0) + offset; ++ break; ++ case DW_OP_bregx: ++ op_ptr = read_uleb128 (op_ptr, &ptrtmp); reg = ptrtmp; ++ op_ptr = read_sleb128 (op_ptr, &ptrtmp); offset = (saddr)ptrtmp; ++ result = _Unwind_GetGR (context, reg) + offset; ++ break; ++ ++ case DW_OP_dup: ++ if (stack_elt < 1) ++ abort (); ++ result = stack[stack_elt - 1]; ++ break; ++ ++ case DW_OP_drop: ++ if (--stack_elt < 0) ++ abort (); ++ goto no_push; ++ ++ case DW_OP_pick: ++ offset = *op_ptr++; ++ if (offset >= stack_elt - 1) ++ abort (); ++ result = stack[stack_elt - 1 - offset]; ++ break; ++ ++ case DW_OP_over: ++ if (stack_elt < 2) ++ abort (); ++ result = stack[stack_elt - 2]; ++ break; ++ ++ case DW_OP_rot: ++ { ++ _Unwind_Word t1, t2, t3; ++ ++ if (stack_elt < 3) ++ abort (); ++ t1 = stack[stack_elt - 1]; ++ t2 = stack[stack_elt - 2]; ++ t3 = stack[stack_elt - 3]; ++ stack[stack_elt - 1] = t2; ++ stack[stack_elt - 2] = t3; ++ stack[stack_elt - 3] = t1; ++ goto no_push; ++ } ++ ++ case DW_OP_deref: ++ case DW_OP_deref_size: ++ case DW_OP_abs: ++ case DW_OP_neg: ++ case DW_OP_not: ++ case DW_OP_plus_uconst: ++ /* Unary operations. */ ++ if (--stack_elt < 0) ++ abort (); ++ result = stack[stack_elt]; ++ ++ switch (op) ++ { ++ case DW_OP_deref: ++ { ++ void *ptr = (void *)(_Unwind_Ptr) result; ++ result = (_Unwind_Ptr) read_pointer (ptr); ++ } ++ break; ++ ++ case DW_OP_deref_size: ++ { ++ void *ptr = (void *)(_Unwind_Ptr) result; ++ switch (*op_ptr++) ++ { ++ case 1: ++ result = read_1u (ptr); ++ break; ++ case 2: ++ result = read_2u (ptr); ++ break; ++ case 4: ++ result = read_4u (ptr); ++ break; ++ case 8: ++ result = read_8u (ptr); ++ break; ++ default: ++ abort (); ++ } ++ } ++ break; ++ ++ case DW_OP_abs: ++ if ((_Unwind_Sword) result < 0) ++ result = -result; ++ break; ++ case DW_OP_neg: ++ result = -result; ++ break; ++ case DW_OP_not: ++ result = ~result; ++ break; ++ case DW_OP_plus_uconst: ++ op_ptr = read_uleb128 (op_ptr, &ptrtmp); reg = ptrtmp; ++ result += reg; ++ break; ++ /* Avoid warnings. */ ++ default: ++ break; ++ } ++ break; ++ ++ case DW_OP_and: ++ case DW_OP_div: ++ case DW_OP_minus: ++ case DW_OP_mod: ++ case DW_OP_mul: ++ case DW_OP_or: ++ case DW_OP_plus: ++ case DW_OP_le: ++ case DW_OP_ge: ++ case DW_OP_eq: ++ case DW_OP_lt: ++ case DW_OP_gt: ++ case DW_OP_ne: ++ { ++ /* Binary operations. */ ++ _Unwind_Word first, second; ++ if ((stack_elt -= 2) < 0) ++ abort (); ++ second = stack[stack_elt]; ++ first = stack[stack_elt + 1]; ++ ++ switch (op) ++ { ++ case DW_OP_and: ++ result = second & first; ++ break; ++ case DW_OP_div: ++ result = (_Unwind_Sword)second / (_Unwind_Sword)first; ++ break; ++ case DW_OP_minus: ++ result = second - first; ++ break; ++ case DW_OP_mod: ++ result = (_Unwind_Sword)second % (_Unwind_Sword)first; ++ break; ++ case DW_OP_mul: ++ result = second * first; ++ break; ++ case DW_OP_or: ++ result = second | first; ++ break; ++ case DW_OP_plus: ++ result = second + first; ++ break; ++ case DW_OP_shl: ++ result = second << first; ++ break; ++ case DW_OP_shr: ++ result = second >> first; ++ break; ++ case DW_OP_shra: ++ result = (_Unwind_Sword)second >> first; ++ break; ++ case DW_OP_xor: ++ result = second ^ first; ++ break; ++ case DW_OP_le: ++ result = (_Unwind_Sword)first <= (_Unwind_Sword)second; ++ break; ++ case DW_OP_ge: ++ result = (_Unwind_Sword)first >= (_Unwind_Sword)second; ++ break; ++ case DW_OP_eq: ++ result = (_Unwind_Sword)first == (_Unwind_Sword)second; ++ break; ++ case DW_OP_lt: ++ result = (_Unwind_Sword)first < (_Unwind_Sword)second; ++ break; ++ case DW_OP_gt: ++ result = (_Unwind_Sword)first > (_Unwind_Sword)second; ++ break; ++ case DW_OP_ne: ++ result = (_Unwind_Sword)first != (_Unwind_Sword)second; ++ break; ++ default: ++ /* Avoid warnings. */ ++ break; ++ } ++ } ++ break; ++ ++ case DW_OP_skip: ++ offset = read_2s (op_ptr); ++ op_ptr += 2; ++ op_ptr += offset; ++ goto no_push; ++ ++ case DW_OP_bra: ++ if (--stack_elt < 0) ++ abort (); ++ offset = read_2s (op_ptr); ++ op_ptr += 2; ++ if (stack[stack_elt] != 0) ++ op_ptr += offset; ++ goto no_push; ++ ++ case DW_OP_nop: ++ goto no_push; ++ ++ default: ++ abort (); ++ } ++ ++ /* Most things push a result value. */ ++ if ((size_t) stack_elt >= sizeof(stack)/sizeof(*stack)) ++ abort (); ++ stack[++stack_elt] = result; ++ no_push:; ++ } ++ ++ /* We were executing this program to get a value. It should be ++ at top of stack. */ ++ if (--stack_elt < 0) ++ abort (); ++ return stack[stack_elt]; ++} ++#endif ++ ++/* Decode DWARF 2 call frame information. Takes pointers the ++ instruction sequence to decode, current register information and ++ CIE info, and the PC range to evaluate. */ ++ ++static void ++execute_cfa_program (const unsigned char *insn_ptr, ++ const unsigned char *insn_end, ++ struct _Unwind_Context *context, ++ _Unwind_FrameState *fs) ++{ ++ struct frame_state_reg_info *unused_rs = NULL; ++ ++ /* Don't allow remember/restore between CIE and FDE programs. */ ++ fs->regs.prev = NULL; ++ ++ while (insn_ptr < insn_end && fs->pc < context->ra) ++ { ++ unsigned char insn = *insn_ptr++; ++ _Unwind_Word reg; ++ _Unwind_Sword offset; ++ _Unwind_Ptr ptrtmp; ++ ++ if (insn & DW_CFA_advance_loc) ++ fs->pc += (insn & 0x3f) * fs->code_align; ++ else if (insn & DW_CFA_offset) ++ { ++ reg = insn & 0x3f; ++ insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); ++ offset = ptrtmp * fs->data_align; ++ fs->regs.reg[reg].how = REG_SAVED_OFFSET; ++ fs->regs.reg[reg].loc.offset = offset; ++ } ++ else if (insn & DW_CFA_restore) ++ { ++ reg = insn & 0x3f; ++ fs->regs.reg[reg].how = REG_UNSAVED; ++ } ++ else switch (insn) ++ { ++ case DW_CFA_set_loc: ++ insn_ptr = read_encoded_value (context, fs->fde_encoding, ++ insn_ptr, (_Unwind_Ptr *) &fs->pc); ++ break; ++ ++ case DW_CFA_advance_loc1: ++ fs->pc += read_1u (insn_ptr) * fs->code_align; ++ insn_ptr += 1; ++ break; ++ case DW_CFA_advance_loc2: ++ fs->pc += read_2u (insn_ptr) * fs->code_align; ++ insn_ptr += 2; ++ break; ++ case DW_CFA_advance_loc4: ++ fs->pc += read_4u (insn_ptr) * fs->code_align; ++ insn_ptr += 4; ++ break; ++ ++ case DW_CFA_offset_extended: ++ insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); reg = ptrtmp; ++ insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); ++ offset = ptrtmp * fs->data_align; ++ fs->regs.reg[reg].how = REG_SAVED_OFFSET; ++ fs->regs.reg[reg].loc.offset = offset; ++ break; ++ ++ case DW_CFA_restore_extended: ++ insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); reg = ptrtmp; ++ fs->regs.reg[reg].how = REG_UNSAVED; ++ break; ++ ++ case DW_CFA_undefined: ++ case DW_CFA_same_value: ++ case DW_CFA_nop: ++ break; ++ ++ case DW_CFA_register: ++ { ++ _Unwind_Word reg2; ++ insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); reg = ptrtmp; ++ insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); reg2 = ptrtmp; ++ fs->regs.reg[reg].how = REG_SAVED_REG; ++ fs->regs.reg[reg].loc.reg = reg2; ++ } ++ break; ++ ++ case DW_CFA_remember_state: ++ { ++ struct frame_state_reg_info *new_rs; ++ if (unused_rs) ++ { ++ new_rs = unused_rs; ++ unused_rs = unused_rs->prev; ++ } ++ else ++ new_rs = alloca (sizeof (struct frame_state_reg_info)); ++ ++ *new_rs = fs->regs; ++ fs->regs.prev = new_rs; ++ } ++ break; ++ ++ case DW_CFA_restore_state: ++ { ++ struct frame_state_reg_info *old_rs = fs->regs.prev; ++ fs->regs = *old_rs; ++ old_rs->prev = unused_rs; ++ unused_rs = old_rs; ++ } ++ break; ++ ++ case DW_CFA_def_cfa: ++ insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); ++ fs->cfa_reg = ptrtmp; ++ insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); ++ fs->cfa_offset = ptrtmp; ++ fs->cfa_how = CFA_REG_OFFSET; ++ break; ++ ++ case DW_CFA_def_cfa_register: ++ insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); ++ fs->cfa_reg = ptrtmp; ++ fs->cfa_how = CFA_REG_OFFSET; ++ break; ++ ++ case DW_CFA_def_cfa_offset: ++ insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); ++ fs->cfa_offset = ptrtmp; ++ /* cfa_how deliberately not set. */ ++ break; ++ ++ case DW_CFA_def_cfa_expression: ++ insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); ++ fs->cfa_exp = insn_ptr; ++ fs->cfa_how = CFA_EXP; ++ insn_ptr += ptrtmp; ++ break; ++ ++ case DW_CFA_expression: ++ insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); reg = ptrtmp; ++ insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); ++ fs->regs.reg[reg].how = REG_SAVED_EXP; ++ fs->regs.reg[reg].loc.exp = insn_ptr; ++ insn_ptr += ptrtmp; ++ break; ++ ++ /* From the 2.1 draft. */ ++ case DW_CFA_offset_extended_sf: ++ insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); reg = ptrtmp; ++ insn_ptr = read_sleb128 (insn_ptr, &ptrtmp); ++ offset = (saddr)ptrtmp * fs->data_align; ++ fs->regs.reg[reg].how = REG_SAVED_OFFSET; ++ fs->regs.reg[reg].loc.offset = offset; ++ break; ++ ++ case DW_CFA_def_cfa_sf: ++ insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); ++ fs->cfa_reg = ptrtmp; ++ insn_ptr = read_sleb128 (insn_ptr, &ptrtmp); ++ fs->cfa_offset = (saddr)ptrtmp; ++ fs->cfa_how = CFA_REG_OFFSET; ++ break; ++ ++ case DW_CFA_def_cfa_offset_sf: ++ insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); ++ fs->cfa_offset = ptrtmp; ++ /* cfa_how deliberately not set. */ ++ break; ++ ++ case DW_CFA_GNU_window_save: ++ /* ??? Hardcoded for SPARC register window configuration. */ ++ for (reg = 16; reg < 32; ++reg) ++ { ++ fs->regs.reg[reg].how = REG_SAVED_OFFSET; ++ fs->regs.reg[reg].loc.offset = (reg - 16) * sizeof (void *); ++ } ++ break; ++ ++ case DW_CFA_GNU_args_size: ++ insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); ++ context->args_size = ptrtmp; ++ break; ++ ++ case DW_CFA_GNU_negative_offset_extended: ++ /* Obsoleted by DW_CFA_offset_extended_sf, but used by ++ older PowerPC code. */ ++ insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); reg = ptrtmp; ++ insn_ptr = read_uleb128 (insn_ptr, &ptrtmp); ++ offset = ptrtmp * fs->data_align; ++ fs->regs.reg[reg].how = REG_SAVED_OFFSET; ++ fs->regs.reg[reg].loc.offset = -offset; ++ break; ++ ++ default: ++ abort (); ++ } ++ } ++} ++ ++static _Unwind_Reason_Code ++uw_frame_state_for (struct _Unwind_Context *context, _Unwind_FrameState *fs) ++{ ++ struct dwarf_fde *fde; ++ struct dwarf_cie *cie; ++ const unsigned char *aug, *insn, *end; ++ ++ memset (fs, 0, sizeof (*fs)); ++ context->args_size = 0; ++ context->lsda = 0; ++ ++ fde = _Unwind_Find_FDE (context->ra - 1, &context->bases); ++ if (fde == NULL) ++ { ++ /* Couldn't find frame unwind info for this function. Try a ++ target-specific fallback mechanism. This will necessarily ++ not profide a personality routine or LSDA. */ ++#ifdef MD_FALLBACK_FRAME_STATE_FOR ++ MD_FALLBACK_FRAME_STATE_FOR (context, fs, success); ++ return _URC_END_OF_STACK; ++ success: ++ return _URC_NO_REASON; ++#else ++ return _URC_END_OF_STACK; ++#endif ++ } ++ ++ fs->pc = context->bases.func; ++ ++ cie = get_cie (fde); ++ insn = extract_cie_info (cie, context, fs); ++ if (insn == NULL) ++ /* CIE contained unknown augmentation. */ ++ return _URC_FATAL_PHASE1_ERROR; ++ ++ /* First decode all the insns in the CIE. */ ++ end = (unsigned char *) next_fde ((struct dwarf_fde *) cie); ++ execute_cfa_program (insn, end, context, fs); ++ ++ /* Locate augmentation for the fde. */ ++ aug = (unsigned char *)fde + sizeof (*fde); ++ aug += 2 * size_of_encoded_value (fs->fde_encoding); ++ insn = NULL; ++ if (fs->saw_z) ++ { ++ _Unwind_Ptr i; ++ aug = read_uleb128 (aug, &i); ++ insn = aug + i; ++ } ++ if (fs->lsda_encoding != DW_EH_PE_omit) ++ aug = read_encoded_value (context, fs->lsda_encoding, aug, ++ (_Unwind_Ptr *) &context->lsda); ++ ++ /* Then the insns in the FDE up to our target PC. */ ++ if (insn == NULL) ++ insn = aug; ++ end = (unsigned char *) next_fde (fde); ++ execute_cfa_program (insn, end, context, fs); ++ ++ return _URC_NO_REASON; ++} ++ ++typedef struct frame_state ++{ ++ void *cfa; ++ void *eh_ptr; ++ long cfa_offset; ++ long args_size; ++ long reg_or_offset[DWARF_FRAME_REGISTERS+1]; ++ unsigned short cfa_reg; ++ unsigned short retaddr_column; ++ char saved[DWARF_FRAME_REGISTERS+1]; ++} frame_state; ++ ++struct frame_state * __frame_state_for (void *, struct frame_state *); ++ ++/* Called from pre-G++ 3.0 __throw to find the registers to restore for ++ a given PC_TARGET. The caller should allocate a local variable of ++ `struct frame_state' and pass its address to STATE_IN. */ ++ ++struct frame_state * ++__frame_state_for (void *pc_target, struct frame_state *state_in) ++{ ++ struct _Unwind_Context context; ++ _Unwind_FrameState fs; ++ int reg; ++ ++ memset (&context, 0, sizeof (struct _Unwind_Context)); ++ context.ra = pc_target + 1; ++ ++ if (uw_frame_state_for (&context, &fs) != _URC_NO_REASON) ++ return 0; ++ ++ /* We have no way to pass a location expression for the CFA to our ++ caller. It wouldn't understand it anyway. */ ++ if (fs.cfa_how == CFA_EXP) ++ return 0; ++ ++ for (reg = 0; reg < DWARF_FRAME_REGISTERS + 1; reg++) ++ { ++ state_in->saved[reg] = fs.regs.reg[reg].how; ++ switch (state_in->saved[reg]) ++ { ++ case REG_SAVED_REG: ++ state_in->reg_or_offset[reg] = fs.regs.reg[reg].loc.reg; ++ break; ++ case REG_SAVED_OFFSET: ++ state_in->reg_or_offset[reg] = fs.regs.reg[reg].loc.offset; ++ break; ++ default: ++ state_in->reg_or_offset[reg] = 0; ++ break; ++ } ++ } ++ ++ state_in->cfa_offset = fs.cfa_offset; ++ state_in->cfa_reg = fs.cfa_reg; ++ state_in->retaddr_column = fs.retaddr_column; ++ state_in->args_size = context.args_size; ++ state_in->eh_ptr = fs.eh_ptr; ++ ++ return state_in; ++} ++ ++#ifndef _LIBC ++ ++static void ++uw_update_context_1 (struct _Unwind_Context *context, _Unwind_FrameState *fs) ++{ ++ struct _Unwind_Context orig_context = *context; ++ void *cfa; ++ long i; ++ ++ /* Compute this frame's CFA. */ ++ switch (fs->cfa_how) ++ { ++ case CFA_REG_OFFSET: ++ /* Special handling here: Many machines do not use a frame pointer, ++ and track the CFA only through offsets from the stack pointer from ++ one frame to the next. In this case, the stack pointer is never ++ stored, so it has no saved address in the context. What we do ++ have is the CFA from the previous stack frame. */ ++ if (context->reg[fs->cfa_reg] == NULL) ++ cfa = context->cfa; ++ else ++ cfa = (void *) (_Unwind_Ptr) _Unwind_GetGR (context, fs->cfa_reg); ++ cfa += fs->cfa_offset; ++ break; ++ ++ case CFA_EXP: ++ /* ??? No way of knowing what register number is the stack pointer ++ to do the same sort of handling as above. Assume that if the ++ CFA calculation is so complicated as to require a stack program ++ that this will not be a problem. */ ++ { ++ const unsigned char *exp = fs->cfa_exp; ++ _Unwind_Ptr len; ++ ++ exp = read_uleb128 (exp, &len); ++ cfa = (void *) (_Unwind_Ptr) ++ execute_stack_op (exp, exp + len, context, 0); ++ break; ++ } ++ ++ default: ++ abort (); ++ } ++ context->cfa = cfa; ++ ++ /* Compute the addresses of all registers saved in this frame. */ ++ for (i = 0; i < DWARF_FRAME_REGISTERS + 1; ++i) ++ switch (fs->regs.reg[i].how) ++ { ++ case REG_UNSAVED: ++ break; ++ case REG_SAVED_OFFSET: ++ context->reg[i] = cfa + fs->regs.reg[i].loc.offset; ++ break; ++ case REG_SAVED_REG: ++ context->reg[i] = orig_context.reg[fs->regs.reg[i].loc.reg]; ++ break; ++ case REG_SAVED_EXP: ++ { ++ const unsigned char *exp = fs->regs.reg[i].loc.exp; ++ _Unwind_Ptr len; ++ _Unwind_Ptr val; ++ ++ exp = read_uleb128 (exp, &len); ++ val = execute_stack_op (exp, exp + len, &orig_context, ++ (_Unwind_Ptr) cfa); ++ context->reg[i] = (void *) val; ++ } ++ break; ++ } ++} ++ ++static void ++uw_update_context (struct _Unwind_Context *context, _Unwind_FrameState *fs) ++{ ++ uw_update_context_1 (context, fs); ++ ++ /* Compute the return address now, since the return address column ++ can change from frame to frame. */ ++ context->ra = __builtin_extract_return_addr ++ ((void *) (_Unwind_Ptr) _Unwind_GetGR (context, fs->retaddr_column)); ++} ++ ++/* Fill in CONTEXT for top-of-stack. The only valid registers at this ++ level will be the return address and the CFA. */ ++ ++#define uw_init_context(CONTEXT) \ ++do { \ ++ /* Do any necessary initialization to access arbitrary stack frames. \ ++ On the SPARC, this means flushing the register windows. */ \ ++ __builtin_unwind_init (); \ ++ uw_init_context_1 (CONTEXT, __builtin_dwarf_cfa (), \ ++ __builtin_return_address (0)); \ ++} while (0) ++ ++static void ++uw_init_context_1 (struct _Unwind_Context *context, ++ void *outer_cfa, void *outer_ra) ++{ ++ void *ra = __builtin_extract_return_addr (__builtin_return_address (0)); ++ _Unwind_FrameState fs; ++ ++ memset (context, 0, sizeof (struct _Unwind_Context)); ++ context->ra = ra; ++ ++ if (uw_frame_state_for (context, &fs) != _URC_NO_REASON) ++ abort (); ++ ++ /* Force the frame state to use the known cfa value. */ ++ context->cfa = outer_cfa; ++ fs.cfa_how = CFA_REG_OFFSET; ++ fs.cfa_reg = 0; ++ fs.cfa_offset = 0; ++ ++ uw_update_context_1 (context, &fs); ++ ++ /* If the return address column was saved in a register in the ++ initialization context, then we can't see it in the given ++ call frame data. So have the initialization context tell us. */ ++ context->ra = __builtin_extract_return_addr (outer_ra); ++} ++ ++ ++/* Install TARGET into CURRENT so that we can return to it. This is a ++ macro because __builtin_eh_return must be invoked in the context of ++ our caller. */ ++ ++#define uw_install_context(CURRENT, TARGET) \ ++do { \ ++ long offset = uw_install_context_1 ((CURRENT), (TARGET)); \ ++ void *handler = __builtin_frob_return_addr ((TARGET)->ra); \ ++ __builtin_eh_return (offset, handler); \ ++} while (0) ++ ++static inline void ++init_dwarf_reg_size_table (void) ++{ ++ __builtin_init_dwarf_reg_size_table (dwarf_reg_size_table); ++} ++ ++static long ++uw_install_context_1 (struct _Unwind_Context *current, ++ struct _Unwind_Context *target) ++{ ++ long i; ++ ++#if __GTHREADS ++ { ++ static __gthread_once_t once_regsizes = __GTHREAD_ONCE_INIT; ++ if (__gthread_once (&once_regsizes, init_dwarf_reg_size_table) != 0 ++ || dwarf_reg_size_table[0] == 0) ++ init_dwarf_reg_size_table (); ++ } ++#else ++ if (dwarf_reg_size_table[0] == 0) ++ init_dwarf_reg_size_table (); ++#endif ++ ++ for (i = 0; i < DWARF_FRAME_REGISTERS; ++i) ++ { ++ void *c = current->reg[i]; ++ void *t = target->reg[i]; ++ if (t && c && t != c) ++ memcpy (c, t, dwarf_reg_size_table[i]); ++ } ++ ++ /* We adjust SP by the difference between CURRENT and TARGET's CFA. */ ++ if (STACK_GROWS_DOWNWARD) ++ return target->cfa - current->cfa + target->args_size; ++ else ++ return current->cfa - target->cfa - target->args_size; ++} ++ ++static inline _Unwind_Ptr ++uw_identify_context (struct _Unwind_Context *context) ++{ ++ return _Unwind_GetIP (context); ++} ++ ++ ++#include "unwind.inc" ++ ++#endif /* _LIBC */ ++#endif /* !USING_SJLJ_EXCEPTIONS */ +--- libc/sysdeps/generic/unwind-pe.h.jj Sat Aug 4 15:40:57 2001 ++++ libc/sysdeps/generic/unwind-pe.h Mon Aug 6 04:54:54 2001 +@@ -0,0 +1,272 @@ ++/* Exception handling and frame unwind runtime interface routines. ++ Copyright (C) 2001 Free Software Foundation, Inc. ++ ++ This file is part of GNU CC. ++ ++ GNU CC 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. ++ ++ GNU CC is distributed in the hope that 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 GNU CC; see the file COPYING. If not, write to ++ the Free Software Foundation, 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* @@@ Really this should be out of line, but this also causes link ++ compatibility problems with the base ABI. This is slightly better ++ than duplicating code, however. */ ++ ++/* If using C++, references to abort have to be qualified with std::. */ ++#if __cplusplus ++#define __gxx_abort std::abort ++#else ++#define __gxx_abort abort ++#endif ++ ++/* Pointer encodings, from dwarf2.h. */ ++#define DW_EH_PE_absptr 0x00 ++#define DW_EH_PE_omit 0xff ++ ++#define DW_EH_PE_uleb128 0x01 ++#define DW_EH_PE_udata2 0x02 ++#define DW_EH_PE_udata4 0x03 ++#define DW_EH_PE_udata8 0x04 ++#define DW_EH_PE_sleb128 0x09 ++#define DW_EH_PE_sdata2 0x0A ++#define DW_EH_PE_sdata4 0x0B ++#define DW_EH_PE_sdata8 0x0C ++#define DW_EH_PE_signed 0x08 ++ ++#define DW_EH_PE_pcrel 0x10 ++#define DW_EH_PE_textrel 0x20 ++#define DW_EH_PE_datarel 0x30 ++#define DW_EH_PE_funcrel 0x40 ++#define DW_EH_PE_aligned 0x50 ++ ++#define DW_EH_PE_indirect 0x80 ++ ++ ++/* Given an encoding, return the number of bytes the format occupies. ++ This is only defined for fixed-size encodings, and so does not ++ include leb128. */ ++ ++#ifndef _LIBC ++static ++#endif ++unsigned int ++size_of_encoded_value (unsigned char encoding) ++#if defined(_LIBC) && !defined(NO_BASE_OF_ENCODED_VALUE) ++; ++#else ++{ ++ if (encoding == DW_EH_PE_omit) ++ return 0; ++ ++ switch (encoding & 0x07) ++ { ++ case DW_EH_PE_absptr: ++ return sizeof (void *); ++ case DW_EH_PE_udata2: ++ return 2; ++ case DW_EH_PE_udata4: ++ return 4; ++ case DW_EH_PE_udata8: ++ return 8; ++ } ++ __gxx_abort (); ++} ++#endif ++ ++#ifndef NO_BASE_OF_ENCODED_VALUE ++ ++/* Given an encoding and an _Unwind_Context, return the base to which ++ the encoding is relative. This base may then be passed to ++ read_encoded_value_with_base for use when the _Unwind_Context is ++ not available. */ ++ ++static _Unwind_Ptr ++base_of_encoded_value (unsigned char encoding, struct _Unwind_Context *context) ++{ ++ if (encoding == DW_EH_PE_omit) ++ return 0; ++ ++ switch (encoding & 0x70) ++ { ++ case DW_EH_PE_absptr: ++ case DW_EH_PE_pcrel: ++ case DW_EH_PE_aligned: ++ return 0; ++ ++ case DW_EH_PE_textrel: ++ return _Unwind_GetTextRelBase (context); ++ case DW_EH_PE_datarel: ++ return _Unwind_GetDataRelBase (context); ++ case DW_EH_PE_funcrel: ++ return _Unwind_GetRegionStart (context); ++ } ++ __gxx_abort (); ++} ++ ++#endif ++ ++/* Load an encoded value from memory at P. The value is returned in VAL; ++ The function returns P incremented past the value. BASE is as given ++ by base_of_encoded_value for this encoding in the appropriate context. */ ++ ++#ifndef _LIBC ++static ++#endif ++const unsigned char * ++read_encoded_value_with_base (unsigned char encoding, _Unwind_Ptr base, ++ const unsigned char *p, _Unwind_Ptr *val) ++#if defined(_LIBC) && !defined(NO_BASE_OF_ENCODED_VALUE) ++; ++#else ++{ ++ union unaligned ++ { ++ void *ptr; ++ unsigned u2 __attribute__ ((mode (HI))); ++ unsigned u4 __attribute__ ((mode (SI))); ++ unsigned u8 __attribute__ ((mode (DI))); ++ signed s2 __attribute__ ((mode (HI))); ++ signed s4 __attribute__ ((mode (SI))); ++ signed s8 __attribute__ ((mode (DI))); ++ } __attribute__((__packed__)); ++ ++ union unaligned *u = (union unaligned *) p; ++ _Unwind_Ptr result; ++ ++ if (encoding == DW_EH_PE_aligned) ++ { ++ _Unwind_Ptr a = (_Unwind_Ptr)p; ++ a = (a + sizeof (void *) - 1) & - sizeof(void *); ++ result = *(_Unwind_Ptr *) a; ++ p = (const unsigned char *)(a + sizeof (void *)); ++ } ++ else ++ { ++ switch (encoding & 0x0f) ++ { ++ case DW_EH_PE_absptr: ++ result = (_Unwind_Ptr) u->ptr; ++ p += sizeof (void *); ++ break; ++ ++ case DW_EH_PE_uleb128: ++ { ++ unsigned int shift = 0; ++ unsigned char byte; ++ ++ result = 0; ++ do ++ { ++ byte = *p++; ++ result |= (_Unwind_Ptr)(byte & 0x7f) << shift; ++ shift += 7; ++ } ++ while (byte & 0x80); ++ } ++ break; ++ ++ case DW_EH_PE_sleb128: ++ { ++ unsigned int shift = 0; ++ unsigned char byte; ++ ++ result = 0; ++ do ++ { ++ byte = *p++; ++ result |= (_Unwind_Ptr)(byte & 0x7f) << shift; ++ shift += 7; ++ } ++ while (byte & 0x80); ++ ++ if (shift < 8 * sizeof(result) && (byte & 0x40) != 0) ++ result |= -(1L << shift); ++ } ++ break; ++ ++ case DW_EH_PE_udata2: ++ result = u->u2; ++ p += 2; ++ break; ++ case DW_EH_PE_udata4: ++ result = u->u4; ++ p += 4; ++ break; ++ case DW_EH_PE_udata8: ++ result = u->u8; ++ p += 8; ++ break; ++ ++ case DW_EH_PE_sdata2: ++ result = u->s2; ++ p += 2; ++ break; ++ case DW_EH_PE_sdata4: ++ result = u->s4; ++ p += 4; ++ break; ++ case DW_EH_PE_sdata8: ++ result = u->s8; ++ p += 8; ++ break; ++ ++ default: ++ __gxx_abort (); ++ } ++ ++ if (result != 0) ++ { ++ result += ((encoding & 0x70) == DW_EH_PE_pcrel ++ ? (_Unwind_Ptr)u : base); ++ if (encoding & DW_EH_PE_indirect) ++ result = *(_Unwind_Ptr *)result; ++ } ++ } ++ ++ *val = result; ++ return p; ++} ++#endif ++ ++#ifndef NO_BASE_OF_ENCODED_VALUE ++ ++/* Like read_encoded_value_with_base, but get the base from the context ++ rather than providing it directly. */ ++ ++static inline const unsigned char * ++read_encoded_value (struct _Unwind_Context *context, unsigned char encoding, ++ const unsigned char *p, _Unwind_Ptr *val) ++{ ++ return read_encoded_value_with_base (encoding, ++ base_of_encoded_value (encoding, context), ++ p, val); ++} ++ ++#endif ++ ++/* Read an unsigned leb128 value from P, store the value in VAL, return ++ P incremented past the value. */ ++ ++static inline const unsigned char * ++read_uleb128 (const unsigned char *p, _Unwind_Ptr *val) ++{ ++ return read_encoded_value_with_base (DW_EH_PE_uleb128, 0, p, val); ++} ++ ++/* Similar, but read a signed leb128 value. */ ++ ++static inline const unsigned char * ++read_sleb128 (const unsigned char *p, _Unwind_Ptr *val) ++{ ++ return read_encoded_value_with_base (DW_EH_PE_sleb128, 0, p, val); ++} +--- libc/sysdeps/generic/unwind.h.jj Sat Aug 4 15:40:57 2001 ++++ libc/sysdeps/generic/unwind.h Sun May 13 03:10:02 2001 +@@ -0,0 +1,191 @@ ++/* Exception handling and frame unwind runtime interface routines. ++ Copyright (C) 2001 Free Software Foundation, Inc. ++ ++ This file is part of GNU CC. ++ ++ GNU CC 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. ++ ++ GNU CC is distributed in the hope that 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 GNU CC; see the file COPYING. If not, write to ++ the Free Software Foundation, 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* This is derived from the C++ ABI for IA-64. Where we diverge ++ for cross-architecture compatibility are noted with "@@@". */ ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++/* Level 1: Base ABI */ ++ ++/* @@@ The IA-64 ABI uses uint64 throughout. Most places this is ++ inefficient for 32-bit and smaller machines. */ ++typedef unsigned _Unwind_Word __attribute__((__mode__(__word__))); ++typedef signed _Unwind_Sword __attribute__((__mode__(__word__))); ++typedef unsigned _Unwind_Ptr __attribute__((__mode__(__pointer__))); ++ ++/* @@@ The IA-64 ABI uses a 64-bit word to identify the producer and ++ consumer of an exception. We'll go along with this for now even on ++ 32-bit machines. We'll need to provide some other option for ++ 16-bit machines and for machines with > 8 bits per byte. */ ++typedef unsigned _Unwind_Exception_Class __attribute__((__mode__(__DI__))); ++ ++/* The unwind interface uses reason codes in several contexts to ++ identify the reasons for failures or other actions. */ ++typedef enum ++{ ++ _URC_NO_REASON = 0, ++ _URC_FOREIGN_EXCEPTION_CAUGHT = 1, ++ _URC_FATAL_PHASE2_ERROR = 2, ++ _URC_FATAL_PHASE1_ERROR = 3, ++ _URC_NORMAL_STOP = 4, ++ _URC_END_OF_STACK = 5, ++ _URC_HANDLER_FOUND = 6, ++ _URC_INSTALL_CONTEXT = 7, ++ _URC_CONTINUE_UNWIND = 8 ++} _Unwind_Reason_Code; ++ ++ ++/* The unwind interface uses a pointer to an exception header object ++ as its representation of an exception being thrown. In general, the ++ full representation of an exception object is language- and ++ implementation-specific, but it will be prefixed by a header ++ understood by the unwind interface. */ ++ ++struct _Unwind_Exception; ++ ++typedef void (*_Unwind_Exception_Cleanup_Fn) (_Unwind_Reason_Code, ++ struct _Unwind_Exception *); ++ ++struct _Unwind_Exception ++{ ++ _Unwind_Exception_Class exception_class; ++ _Unwind_Exception_Cleanup_Fn exception_cleanup; ++ _Unwind_Word private_1; ++ _Unwind_Word private_2; ++ ++ /* @@@ The IA-64 ABI says that this structure must be double-word aligned. ++ Taking that literally does not make much sense generically. Instead we ++ provide the maximum alignment required by any type for the machine. */ ++} __attribute__((__aligned__)); ++ ++ ++/* The ACTIONS argument to the personality routine is a bitwise OR of one ++ or more of the following constants. */ ++typedef int _Unwind_Action; ++ ++#define _UA_SEARCH_PHASE 1 ++#define _UA_CLEANUP_PHASE 2 ++#define _UA_HANDLER_FRAME 4 ++#define _UA_FORCE_UNWIND 8 ++ ++/* This is an opaque type used to refer to a system-specific data ++ structure used by the system unwinder. This context is created and ++ destroyed by the system, and passed to the personality routine ++ during unwinding. */ ++struct _Unwind_Context; ++ ++/* Raise an exception, passing along the given exception object. */ ++extern _Unwind_Reason_Code _Unwind_RaiseException (struct _Unwind_Exception *); ++ ++/* Raise an exception for forced unwinding. */ ++ ++typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn) ++ (int, _Unwind_Action, _Unwind_Exception_Class, ++ struct _Unwind_Exception *, struct _Unwind_Context *, void *); ++ ++extern _Unwind_Reason_Code _Unwind_ForcedUnwind (struct _Unwind_Exception *, ++ _Unwind_Stop_Fn, ++ void *); ++ ++/* Helper to invoke the exception_cleanup routine. */ ++extern void _Unwind_DeleteException (struct _Unwind_Exception *); ++ ++/* Resume propagation of an existing exception. This is used after ++ e.g. executing cleanup code, and not to implement rethrowing. */ ++extern void _Unwind_Resume (struct _Unwind_Exception *); ++ ++/* These functions are used for communicating information about the unwind ++ context (i.e. the unwind descriptors and the user register state) between ++ the unwind library and the personality routine and landing pad. Only ++ selected registers maybe manipulated. */ ++ ++extern _Unwind_Word _Unwind_GetGR (struct _Unwind_Context *, int); ++extern void _Unwind_SetGR (struct _Unwind_Context *, int, _Unwind_Word); ++ ++extern _Unwind_Ptr _Unwind_GetIP (struct _Unwind_Context *); ++extern void _Unwind_SetIP (struct _Unwind_Context *, _Unwind_Ptr); ++ ++extern void *_Unwind_GetLanguageSpecificData (struct _Unwind_Context *); ++ ++extern _Unwind_Ptr _Unwind_GetRegionStart (struct _Unwind_Context *); ++ ++ ++/* The personality routine is the function in the C++ (or other language) ++ runtime library which serves as an interface between the system unwind ++ library and language-specific exception handling semantics. It is ++ specific to the code fragment described by an unwind info block, and ++ it is always referenced via the pointer in the unwind info block, and ++ hence it has no ABI-specified name. ++ ++ Note that this implies that two different C++ implementations can ++ use different names, and have different contents in the language ++ specific data area. Moreover, that the language specific data ++ area contains no version info because name of the function invoked ++ provides more effective versioning by detecting at link time the ++ lack of code to handle the different data format. */ ++ ++typedef _Unwind_Reason_Code (*_Unwind_Personality_Fn) ++ (int, _Unwind_Action, _Unwind_Exception_Class, ++ struct _Unwind_Exception *, struct _Unwind_Context *); ++ ++/* @@@ The following alternate entry points are for setjmp/longjmp ++ based unwinding. */ ++ ++struct SjLj_Function_Context; ++extern void _Unwind_SjLj_Register (struct SjLj_Function_Context *); ++extern void _Unwind_SjLj_Unregister (struct SjLj_Function_Context *); ++ ++extern _Unwind_Reason_Code _Unwind_SjLj_RaiseException ++ (struct _Unwind_Exception *); ++extern _Unwind_Reason_Code _Unwind_SjLj_ForcedUnwind ++ (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *); ++extern void _Unwind_SjLj_Resume (struct _Unwind_Exception *); ++ ++/* @@@ The following provide access to the base addresses for text ++ and data-relative addressing in the LDSA. In order to stay link ++ compatible with the standard ABI for IA-64, we inline these. */ ++ ++#ifdef __ia64__ ++#include ++ ++static inline _Unwind_Ptr ++_Unwind_GetDataRelBase (struct _Unwind_Context *_C) ++{ ++ /* The GP is stored in R1. */ ++ return _Unwind_GetGR (_C, 1); ++} ++ ++static inline _Unwind_Ptr ++_Unwind_GetTextRelBase (struct _Unwind_Context *_C) ++{ ++ abort (); ++ return 0; ++} ++#else ++extern _Unwind_Ptr _Unwind_GetDataRelBase (struct _Unwind_Context *); ++extern _Unwind_Ptr _Unwind_GetTextRelBase (struct _Unwind_Context *); ++#endif ++ ++#ifdef __cplusplus ++} ++#endif +--- libc/sysdeps/generic/framestate.c.jj Mon Aug 6 15:23:35 2001 ++++ libc/sysdeps/generic/framestate.c Mon Aug 6 08:02:43 2001 +@@ -0,0 +1,47 @@ ++/* __frame_state_for unwinder helper function wrapper ++ Copyright (C) 2001 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Jakub Jelinek , 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 ++#define __frame_state_for fallback_frame_state_for ++#include ++#undef __frame_state_for ++ ++typedef struct frame_state * (*framesf)(void *pc, struct frame_state *); ++struct frame_state *__frame_state_for (void *pc, ++ struct frame_state *frame_state); ++ ++struct frame_state * ++__frame_state_for (void *pc, struct frame_state *frame_state) ++{ ++ static framesf frame_state_for; ++ ++ if (frame_state_for == NULL) ++ { ++ void *handle = __libc_dlopen ("libgcc_s.so.1"); ++ ++ if (handle == NULL ++ || (frame_state_for ++ = (framesf) __libc_dlsym (handle, "__frame_state_for")) == NULL) ++ frame_state_for = fallback_frame_state_for; ++ } ++ ++ return frame_state_for (pc, frame_state); ++} +--- libc/sysdeps/hppa/gccframe.h.jj Sat Aug 4 15:40:57 2001 ++++ libc/sysdeps/hppa/gccframe.h Sat Aug 4 15:57:33 2001 +@@ -0,0 +1,23 @@ ++/* Definition of object in frame unwind info. hppa 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. */ ++ ++/* Note: For hppa64 this is 61 */ ++#define DWARF_FRAME_REGISTERS 89 ++ ++#include +--- libc/sysdeps/i386/gccframe.h.jj Sat Aug 4 15:40:57 2001 ++++ libc/sysdeps/i386/gccframe.h Mon Aug 6 04:10:49 2001 +@@ -0,0 +1,28 @@ ++/* Definition of object in frame unwind info. i386 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 17 ++ ++#define CRT_GET_RFIB_DATA(BASE) \ ++ { \ ++ register void *__ebx __asm__("ebx");\ ++ BASE = __ebx; \ ++ } ++ ++#include +--- libc/sysdeps/m68k/gccframe.h.jj Sat Aug 4 15:40:57 2001 ++++ libc/sysdeps/m68k/gccframe.h Sat Aug 4 16:05:41 2001 +@@ -0,0 +1,22 @@ ++/* Definition of object in frame unwind info. m68k 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 FIRST_PSEUDO_REGISTER 24 ++ ++#include +--- libc/sysdeps/mach/hurd/i386/Versions.jj Mon Jun 26 04:18:48 2000 ++++ libc/sysdeps/mach/hurd/i386/Versions Mon Aug 6 05:26:07 2001 +@@ -2,7 +2,6 @@ libc { + GLIBC_2.0 { + # Exception handling support functions from libgcc + __register_frame; __register_frame_table; __deregister_frame; +- __register_frame_info; __deregister_frame_info; __frame_state_for; +- __register_frame_info_table; ++ __frame_state_for; __register_frame_info_table; + } + } +--- libc/sysdeps/mach/hurd/i386/Makefile.jj Wed Jun 6 10:05:41 2001 ++++ libc/sysdeps/mach/hurd/i386/Makefile Mon Aug 6 05:38:05 2001 +@@ -7,3 +7,11 @@ $(objpfx)crt0.o: $(objpfx)static-start.o + $(link-relocatable) + + endif ++ ++ifeq ($(subdir),elf) ++ifeq (yes,$(build-shared)) ++# This is needed to support g++ v2 and v3. ++sysdep_routines += framestate ++shared-only-routines += framestate ++endif ++endif +--- libc/sysdeps/mips/gccframe.h.jj Sat Aug 4 15:40:57 2001 ++++ libc/sysdeps/mips/gccframe.h Sat Aug 4 16:05:57 2001 +@@ -0,0 +1,22 @@ ++/* Definition of object in frame unwind info. mips 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 FIRST_PSEUDO_REGISTER 76 ++ ++#include +--- libc/sysdeps/powerpc/gccframe.h.jj Sat Aug 4 15:40:57 2001 ++++ libc/sysdeps/powerpc/gccframe.h Sat Aug 4 16:06:04 2001 +@@ -0,0 +1,22 @@ ++/* Definition of object in frame unwind info. powerpc 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 77 ++ ++#include +--- libc/sysdeps/s390/gccframe.h.jj Sat Aug 4 15:40:57 2001 ++++ libc/sysdeps/s390/gccframe.h Sat Aug 4 16:00:55 2001 +@@ -0,0 +1,22 @@ ++/* Definition of object in frame unwind info. s390 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 FIRST_PSEUDO_REGISTER 34 ++ ++#include +--- libc/sysdeps/sh/gccframe.h.jj Sat Aug 4 15:40:57 2001 ++++ libc/sysdeps/sh/gccframe.h Sat Aug 4 16:02:12 2001 +@@ -0,0 +1,22 @@ ++/* Definition of object in frame unwind info. sh 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 49 ++ ++#include +--- libc/sysdeps/sparc/gccframe.h.jj Sat Aug 4 15:40:57 2001 ++++ libc/sysdeps/sparc/gccframe.h Sat Aug 4 16:06:51 2001 +@@ -0,0 +1,22 @@ ++/* Definition of object in frame unwind info. sparc 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 FIRST_PSEUDO_REGISTER 101 ++ ++#include +--- libc/sysdeps/unix/sysv/linux/arm/Versions.jj Sat Aug 19 13:10:40 2000 ++++ libc/sysdeps/unix/sysv/linux/arm/Versions Mon Aug 6 05:26:53 2001 +@@ -2,8 +2,7 @@ libc { + GLIBC_2.0 { + # Exception handling support functions from libgcc + __register_frame; __register_frame_table; __deregister_frame; +- __register_frame_info; __deregister_frame_info; __frame_state_for; +- __register_frame_info_table; ++ __frame_state_for; __register_frame_info_table; + } + GLIBC_2.1 { + ioperm; iopl; +--- libc/sysdeps/unix/sysv/linux/arm/Makefile.jj Fri Mar 16 13:40:07 2001 ++++ libc/sysdeps/unix/sysv/linux/arm/Makefile Mon Aug 6 05:37:12 2001 +@@ -19,4 +19,10 @@ sysdep-dl-routines += dl-procinfo + sysdep_routines += dl-procinfo + # extra shared linker files to link only into dl-allobjs.so + sysdep-rtld-routines += dl-procinfo ++ ++ifeq (yes,$(build-shared)) ++# This is needed to support g++ v2 and v3. ++sysdep_routines += framestate ++shared-only-routines += framestate ++endif + endif +--- libc/sysdeps/unix/sysv/linux/alpha/Versions.jj Fri Feb 16 03:44:54 2001 ++++ libc/sysdeps/unix/sysv/linux/alpha/Versions Mon Aug 6 05:27:48 2001 +@@ -6,8 +6,7 @@ libc { + + # Exception handling support functions from libgcc + __register_frame; __register_frame_table; __deregister_frame; +- __register_frame_info; __deregister_frame_info; __frame_state_for; +- __register_frame_info_table; ++ __frame_state_for; __register_frame_info_table; + + # b* + bus_base; bus_base_sparse; +--- libc/sysdeps/unix/sysv/linux/alpha/Makefile.jj Fri Nov 17 19:20:14 2000 ++++ libc/sysdeps/unix/sysv/linux/alpha/Makefile Mon Aug 6 05:37:12 2001 +@@ -23,3 +23,11 @@ ifeq ($(subdir),signal) + sysdep_routines += rt_sigsuspend rt_sigprocmask rt_sigtimedwait \ + rt_sigqueueinfo rt_sigaction rt_sigpending + endif ++ ++ifeq ($(subdir),elf) ++ifeq (yes,$(build-shared)) ++# This is needed to support g++ v2 and v3. ++sysdep_routines += framestate ++shared-only-routines += framestate ++endif ++endif +--- libc/sysdeps/unix/sysv/linux/i386/Versions.jj Sat Aug 19 13:10:41 2000 ++++ libc/sysdeps/unix/sysv/linux/i386/Versions Mon Aug 6 05:28:00 2001 +@@ -2,8 +2,7 @@ libc { + GLIBC_2.0 { + # Exception handling support functions from libgcc + __register_frame; __register_frame_table; __deregister_frame; +- __register_frame_info; __deregister_frame_info; __frame_state_for; +- __register_frame_info_table; ++ __frame_state_for; __register_frame_info_table; + + ioperm; iopl; + +--- libc/sysdeps/unix/sysv/linux/i386/Makefile.jj Wed Jun 6 10:06:07 2001 ++++ libc/sysdeps/unix/sysv/linux/i386/Makefile Mon Aug 6 05:37:12 2001 +@@ -12,6 +12,12 @@ sysdep-dl-routines += dl-procinfo + sysdep_routines += dl-procinfo + # extra shared linker files to link only into dl-allobjs.so + sysdep-rtld-routines += dl-procinfo ++ ++ifeq (yes,$(build-shared)) ++# This is needed to support g++ v2 and v3. ++sysdep_routines += framestate ++shared-only-routines += framestate ++endif + endif + + ifeq ($(subdir),resource) +--- libc/sysdeps/unix/sysv/linux/ia64/unwind-dw2-fde.c.jj Mon Aug 6 05:04:26 2001 ++++ libc/sysdeps/unix/sysv/linux/ia64/unwind-dw2-fde.c Mon Aug 6 05:06:33 2001 +@@ -0,0 +1 @@ ++/* Linux/ia64 does not need unwind table registry. */ +--- libc/sysdeps/unix/sysv/linux/m68k/Versions.jj Mon Oct 16 16:21:16 2000 ++++ libc/sysdeps/unix/sysv/linux/m68k/Versions Mon Aug 6 05:28:13 2001 +@@ -2,8 +2,7 @@ libc { + GLIBC_2.0 { + # Exception handling support functions from libgcc + __register_frame; __register_frame_table; __deregister_frame; +- __register_frame_info; __deregister_frame_info; __frame_state_for; +- __register_frame_info_table; ++ __frame_state_for; __register_frame_info_table; + + # c* + cacheflush; +--- libc/sysdeps/unix/sysv/linux/m68k/Makefile.jj Mon Oct 16 16:21:16 2000 ++++ libc/sysdeps/unix/sysv/linux/m68k/Makefile Mon Aug 6 05:37:12 2001 +@@ -10,6 +10,12 @@ endif + ifeq ($(subdir),elf) + sysdep-others += lddlibc4 + install-bin += lddlibc4 ++ ++ifeq (yes,$(build-shared)) ++# This is needed to support g++ v2 and v3. ++sysdep_routines += framestate ++shared-only-routines += framestate ++endif + endif + + ifeq ($(subdir),resource) +--- libc/sysdeps/unix/sysv/linux/mips/Versions.jj Mon Jul 31 16:42:41 2000 ++++ libc/sysdeps/unix/sysv/linux/mips/Versions Mon Aug 6 05:28:25 2001 +@@ -2,8 +2,7 @@ libc { + GLIBC_2.0 { + # Exception handling support functions from libgcc + __register_frame; __register_frame_table; __deregister_frame; +- __register_frame_info; __deregister_frame_info; __frame_state_for; +- __register_frame_info_table; ++ __frame_state_for; __register_frame_info_table; + + # Needed by gcc: + _flush_cache; +--- libc/sysdeps/unix/sysv/linux/mips/Makefile.jj Mon Sep 11 08:46:31 2000 ++++ libc/sysdeps/unix/sysv/linux/mips/Makefile Mon Aug 6 05:37:12 2001 +@@ -9,3 +9,11 @@ sysdep_routines += cachectl cacheflush s + + sysdep_headers += sys/cachectl.h sys/sysmips.h sys/tas.h + endif ++ ++ifeq ($(subdir),elf) ++ifeq (yes,$(build-shared)) ++# This is needed to support g++ v2 and v3. ++sysdep_routines += framestate ++shared-only-routines += framestate ++endif ++endif +--- libc/sysdeps/unix/sysv/linux/powerpc/Versions.jj Sat Aug 19 13:10:44 2000 ++++ libc/sysdeps/unix/sysv/linux/powerpc/Versions Mon Aug 6 05:28:35 2001 +@@ -2,8 +2,7 @@ libc { + GLIBC_2.0 { + # Exception handling support functions from libgcc + __register_frame; __register_frame_table; __deregister_frame; +- __register_frame_info; __deregister_frame_info; __frame_state_for; +- __register_frame_info_table; ++ __frame_state_for; __register_frame_info_table; + } + GLIBC_2.2 { + # functions used in other libraries +--- libc/sysdeps/unix/sysv/linux/powerpc/Makefile.jj Wed Jun 6 10:06:16 2001 ++++ libc/sysdeps/unix/sysv/linux/powerpc/Makefile Mon Aug 6 05:37:12 2001 +@@ -6,3 +6,11 @@ endif + ifeq ($(subdir),resource) + sysdep_routines += oldgetrlimit64 + endif ++ ++ifeq ($(subdir),elf) ++ifeq (yes,$(build-shared)) ++# This is needed to support g++ v2 and v3. ++sysdep_routines += framestate ++shared-only-routines += framestate ++endif ++endif +--- libc/sysdeps/unix/sysv/linux/s390/s390-32/Versions.jj Fri Mar 16 13:40:11 2001 ++++ libc/sysdeps/unix/sysv/linux/s390/s390-32/Versions Mon Aug 6 05:28:50 2001 +@@ -2,8 +2,7 @@ libc { + GLIBC_2.0 { + # Exception handling support functions from libgcc + __register_frame; __register_frame_table; __deregister_frame; +- __register_frame_info; __deregister_frame_info; __frame_state_for; +- __register_frame_info_table; ++ __frame_state_for; __register_frame_info_table; + } + GLIBC_2.2 { + # functions used in other libraries +--- libc/sysdeps/unix/sysv/linux/s390/s390-32/Makefile.jj Wed Jun 6 10:06:17 2001 ++++ libc/sysdeps/unix/sysv/linux/s390/s390-32/Makefile Mon Aug 6 05:37:12 2001 +@@ -6,3 +6,11 @@ endif + ifeq ($(subdir),resource) + sysdep_routines += oldgetrlimit64 + endif ++ ++ifeq ($(subdir),elf) ++ifeq (yes,$(build-shared)) ++# This is needed to support g++ v2 and v3. ++sysdep_routines += framestate ++shared-only-routines += framestate ++endif ++endif +--- libc/sysdeps/unix/sysv/linux/sparc/sparc32/Versions.jj Sat Aug 19 13:10:46 2000 ++++ libc/sysdeps/unix/sysv/linux/sparc/sparc32/Versions Mon Aug 6 05:29:01 2001 +@@ -2,8 +2,7 @@ libc { + GLIBC_2.0 { + # Exception handling support functions from libgcc + __register_frame; __register_frame_table; __deregister_frame; +- __register_frame_info; __deregister_frame_info; __frame_state_for; +- __register_frame_info_table; ++ __frame_state_for; __register_frame_info_table; + } + GLIBC_2.2 { + # functions used in other libraries +--- libc/sysdeps/unix/sysv/linux/sparc/sparc64/Versions.jj Fri Feb 16 03:44:54 2001 ++++ libc/sysdeps/unix/sysv/linux/sparc/sparc64/Versions Mon Aug 6 05:29:11 2001 +@@ -2,8 +2,7 @@ libc { + GLIBC_2.0 { + # Exception handling support functions from libgcc + __register_frame; __register_frame_table; __deregister_frame; +- __register_frame_info; __deregister_frame_info; __frame_state_for; +- __register_frame_info_table; ++ __frame_state_for; __register_frame_info_table; + } + GLIBC_2.2.2 { + # w* +--- libc/sysdeps/unix/sysv/linux/sparc/Makefile.jj Thu Nov 9 16:54:47 2000 ++++ libc/sysdeps/unix/sysv/linux/sparc/Makefile Mon Aug 6 05:37:12 2001 +@@ -42,3 +42,11 @@ $(objpfx)syscall-%.h $(objpfx)syscall-%. + mv -f $(@:.h=.d)-t2 $(@:.h=.d) + + endif ++ ++ifeq ($(subdir),elf) ++ifeq (yes,$(build-shared)) ++# This is needed to support g++ v2 and v3. ++sysdep_routines += framestate ++shared-only-routines += framestate ++endif ++endif +--- libc/sysdeps/unix/sysv/linux/configure.in.jj Mon Jul 9 15:42:57 2001 ++++ libc/sysdeps/unix/sysv/linux/configure.in Mon Aug 6 05:13:06 2001 +@@ -44,6 +44,7 @@ case "$machine" in + ;; + ia64*) + arch_minimum_kernel=2.4.0 ++ libc_cv_gcc_unwind_find_fde=no + ;; + hppa*) + arch_minimum_kernel=2.3.99 +--- libc/sysdeps/unix/sysv/linux/configure.jj Mon Jul 9 15:42:57 2001 ++++ libc/sysdeps/unix/sysv/linux/configure Mon Aug 6 05:13:40 2001 +@@ -57,6 +57,7 @@ case "$machine" in + ;; + ia64*) + arch_minimum_kernel=2.4.0 ++ libc_cv_gcc_unwind_find_fde=no + ;; + hppa*) + arch_minimum_kernel=2.3.99 +--- libc/sysdeps/vax/gccframe.h.jj Sat Aug 4 15:40:57 2001 ++++ libc/sysdeps/vax/gccframe.h Sat Aug 4 16:03:30 2001 +@@ -0,0 +1,22 @@ ++/* Definition of object in frame unwind info. vax 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 16 ++ ++#include +--- libc/Versions.def.jj Sat Aug 4 15:00:20 2001 ++++ libc/Versions.def Mon Aug 6 05:16:58 2001 +@@ -16,6 +16,9 @@ libc { + %ifdef USE_IN_LIBIO + HURD_CTHREADS_0.3 + %endif ++%ifdef EXPORT_UNWIND_FIND_FDE ++ GCC_3.0 ++%endif + } + libcrypt { + GLIBC_2.0 +--- libc/configure.in.jj Sat Aug 4 14:47:21 2001 ++++ libc/configure.in Mon Aug 6 09:12:04 2001 +@@ -692,6 +692,14 @@ AC_MSG_ERROR([ + *** and run configure again.]) + fi + ++AC_CACHE_CHECK(whether GCC supports -static-libgcc, libc_cv_gcc_static_libgcc, [dnl ++if $CC -v -static-libgcc 2>&1 | grep -q 'unrecognized option.*static-libgcc'; then ++ libc_cv_gcc_static_libgcc= ++else ++ libc_cv_gcc_static_libgcc=-static-libgcc ++fi]) ++AC_SUBST(libc_cv_gcc_static_libgcc) ++ + AC_PATH_PROG(BASH, bash, no) + if test "$BASH" != no && + $BASH -c 'test "$BASH_VERSINFO" \ +@@ -1412,6 +1420,7 @@ libc_link_sources= + use_ldconfig=no + ldd_rewrite_script=no + libc_cv_sysconfdir=$sysconfdir ++libc_cv_gcc_unwind_find_fde=yes + + # Iterate over all the sysdep directories we will use, running their + # configure fragments, and looking for a uname implementation. +@@ -1437,6 +1446,10 @@ for dir in $sysnames; do + ]dnl + done + ++if test x$libc_cv_gcc_unwind_find_fde = xyes; then ++ AC_DEFINE(EXPORT_UNWIND_FIND_FDE) ++fi ++ + AC_LINK_FILES(`echo $libc_link_sources`, `echo $libc_link_dests`) + + # If we will use the generic uname implementation, we must figure out what +--- libc/config.h.in.jj Sat Aug 4 14:47:21 2001 ++++ libc/config.h.in Mon Aug 6 05:16:31 2001 +@@ -44,6 +44,9 @@ + /* Define a symbol_name as a global .symbol_name for ld. */ + #undef HAVE_ASM_GLOBAL_DOT_NAME + ++/* Define if _Unwind_Find_FDE should be exported from glibc. */ ++#undef EXPORT_UNWIND_FIND_FDE ++ + /* Define to use GNU libio instead of GNU stdio. + This is defined by configure under --enable-libio. */ + #undef USE_IN_LIBIO +--- libc/config.make.in.jj Mon Jul 9 14:56:55 2001 ++++ libc/config.make.in Mon Aug 6 06:03:28 2001 +@@ -46,6 +46,8 @@ need-nopic-initfini = @nopic_initfini@ + with-cvs = @with_cvs@ + old-glibc-headers = @old_glibc_headers@ + ++static-libgcc = @libc_cv_gcc_static_libgcc@ ++ + versioning = @VERSIONING@ + oldest-abi = @oldest_abi@ + no-whole-archive = @no_whole_archive@ +--- libc/Makerules.jj Mon Jul 9 15:42:52 2001 ++++ libc/Makerules Mon Aug 6 06:03:10 2001 +@@ -400,7 +400,7 @@ endif + + ifeq ($(elf),yes) + define build-shlib-helper +-$(LINK.o) -shared -Wl,-O1 $(sysdep-LDFLAGS) $(config-LDFLAGS) \ ++$(LINK.o) -shared $(static-libgcc) -Wl,-O1 $(sysdep-LDFLAGS) $(config-LDFLAGS) \ + $(extra-B-$(@F:lib%.so=%).so) -B$(csu-objpfx) \ + $(extra-B-$(@F:lib%.so=%).so) $(load-map-file) \ + -Wl,-soname=lib$(libprefix)$(@F:lib%.so=%).so$($(@F)-version) \ +@@ -460,7 +460,7 @@ $(LINK.o) -Wl,-G -Wl,-bM:SRE -Wl,-bnoent + endef + else + define build-module-helper +-$(LINK.o) -shared $(sysdep-LDFLAGS) $(config-LDFLAGS) \ ++$(LINK.o) -shared $(static-libgcc) $(sysdep-LDFLAGS) $(config-LDFLAGS) \ + -B$(csu-objpfx) $(load-map-file) \ + $(LDFLAGS.so) $(LDFLAGS-$(@F:%.so=%).so) \ + -L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link) diff -urN glibc-2.2.4.orig/debian/patches/glibc22-eo_EO.dpatch glibc-2.2.4/debian/patches/glibc22-eo_EO.dpatch --- glibc-2.2.4.orig/debian/patches/glibc22-eo_EO.dpatch Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/patches/glibc22-eo_EO.dpatch Mon Sep 10 13:11:31 2001 @@ -0,0 +1,236 @@ +#! /bin/sh -e + +# DP: Updated eo_EO locale for glibc 2.2 + +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 + +--- glibc-2.2.3/localedata/locales/eo_EO~ Wed Dec 31 19:00:00 1969 ++++ glibc-2.2.3/localedata/locales/eo_EO Thu May 10 15:10:30 2001 +@@ -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 "2001-03-29" ++% ++category "eo_EO:2000";LC_IDENTIFICATION ++category "eo_EO:2000";LC_CTYPE ++category "eo_EO:2000";LC_COLLATE ++category "eo_EO:2000";LC_TIME ++category "eo_EO:2000";LC_NUMERIC ++category "eo_EO:2000";LC_MONETARY ++category "eo_EO:2000";LC_MESSAGES ++category "eo_EO:2000";LC_PAPER ++category "eo_EO:2000";LC_NAME ++category "eo_EO:2000";LC_ADDRESS ++category "eo_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_lib "" % "eo" ++END LC_ADDRESS diff -urN glibc-2.2.4.orig/debian/patches/glibc22-fts.dpatch glibc-2.2.4/debian/patches/glibc22-fts.dpatch --- glibc-2.2.4.orig/debian/patches/glibc22-fts.dpatch Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/patches/glibc22-fts.dpatch Mon Sep 10 13:11:31 2001 @@ -0,0 +1,789 @@ +#! /bin/sh -e + +# DP: Fixes some security concerns in fts() + +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 + +----- Forwarded message from Kris Kennaway ----- + +From: Kris Kennaway +To: security-officer@netbsd.org, deraadt@openbsd.org, millert@openbsd.org, + vendor-sec@lst.de, security-bsd-apple@group.apple.com, + security-officer@FreeBSD.org +Subject: Vulnerability in FTS +Date: Wed, 30 May 2001 12:57:18 -0700 + +The message below describes an attack on the fts(3) routines in libc +in FreeBSD. It seems to apply to OpenBSD as well, I didn't check +NetBSD or Darwin yet. No idea if any of the Linux guys use this. + +The impact of the problem is that fts can be made to recurse back +beyond its starting point in the !FTS_NOCHDIR case (the default) by +moving around a deep directory to a higher point in the hierarchy; fts +uses chdir("..") until it thinks it's moved back n levels to the root, +but it's actually left the hierarchy and gone elsewhere. + +This allows rm -r, find -delete, and probably other utilities to +remove (or otherwise operate on) more or less arbitrary files on the +system owned by the user running the process. + +Kris + +Proposed patch: + +The significant changes are: + +1. It should no longer be possible to trick FTS into leaving the +intended directory hierarchy. (DoS attacks on FTS itself remain +possible. Additionally, certain Linux 2.4 setups with multiply- +mounted devices may make this code unsafe once again, as pointed out +by Alan Cox.) + +2. fts_pathlen wraparounds are now detected (hopefully). (There's +still one related issue: on glibc, the fts_pathlen in FTS is int, but +the fts_pathlen in FTSENT is u_short. I wonder if there's still any +reason to keep them this way? My patches don't fix this yet.) + +3. Some off-by-one's and missing NUL termination bugs fixed. + +4. Some memory leaks fixed. + +Other changes include: + +1. bcopy -> memmove/memcpy as appropriate, bzero -> memset. + +2. CLR/ISSET/SET macros improved and now used in more places. + +3. Various whiteout updates from *BSD, not compiled in unless the UFS- +specific header files are added. + +4. Various formatting changes and corrections to the comments, mostly +taken from OpenBSD and FreeBSD (will get smaller diffs next time). + +Tested with mtree, mapping a hierarchy with 863 directories on clean +vs. patched glibc 2.1.3 (same output). (Of course, this means that +the fixes are in fact not tested to really fix what they're supposed +to, but I'll trust the *BSD teams and my eyes for now.) + +-- +/sd + +--- glibc-2.2.2/io/fts.c.orig Tue Aug 15 22:16:20 2000 ++++ glibc-2.2.2/io/fts.c Sun Jun 3 07:44:57 2001 +@@ -32,10 +32,11 @@ + #endif /* LIBC_SCCS and not lint */ + + #include +-#include +-#include ++#include ++ + #include + #include ++#include + #include + #include + #include +@@ -58,11 +59,12 @@ + static void fts_lfree __P((FTSENT *)) internal_function; + static void fts_load __P((FTS *, FTSENT *)); + static size_t fts_maxarglen __P((char * const *)) internal_function; +-static void fts_padjust __P((FTS *, void *)) internal_function; ++static void fts_padjust __P((FTS *, FTSENT *)) internal_function; + static int fts_palloc __P((FTS *, size_t)) internal_function; + static FTSENT *fts_sort __P((FTS *, FTSENT *, int)) internal_function; +-static u_short fts_stat __P((FTS *, struct dirent *, FTSENT *, int)) +- internal_function; ++static u_short fts_stat __P((FTS *, FTSENT *, int)) internal_function; ++static int fts_safe_changedir __P((FTS *, FTSENT *, int, const char *)) ++ internal_function; + + #ifndef MAX + #define MAX(a, b) ({ __typeof__ (a) _a = (a); \ +@@ -72,10 +74,10 @@ + + #define ISDOT(a) (a[0] == '.' && (!a[1] || (a[1] == '.' && !a[2]))) + +-#define ISSET(opt) (sp->fts_options & opt) +-#define SET(opt) (sp->fts_options |= opt) ++#define CLR(opt) (sp->fts_options &= ~(opt)) ++#define ISSET(opt) (sp->fts_options & (opt)) ++#define SET(opt) (sp->fts_options |= (opt)) + +-#define CHDIR(sp, path) (!ISSET(FTS_NOCHDIR) && __chdir(path)) + #define FCHDIR(sp, fd) (!ISSET(FTS_NOCHDIR) && __fchdir(fd)) + + /* fts_build flags */ +@@ -104,10 +106,12 @@ + /* Allocate/initialize the stream */ + if ((sp = malloc((u_int)sizeof(FTS))) == NULL) + return (NULL); +- __bzero(sp, sizeof(FTS)); ++ memset(sp, 0, sizeof(FTS)); + sp->fts_compar = (int (*) __P((const void *, const void *))) compar; + sp->fts_options = options; + ++ tmp = NULL; /* avoid the gcc warning */ ++ + /* Logical walks turn on NOCHDIR; symbolic links are too hard. */ + if (ISSET(FTS_LOGICAL)) + SET(FTS_NOCHDIR); +@@ -139,7 +140,7 @@ + p->fts_level = FTS_ROOTLEVEL; + p->fts_parent = parent; + p->fts_accpath = p->fts_name; +- p->fts_info = fts_stat(sp, NULL, p, ISSET(FTS_COMFOLLOW)); ++ p->fts_info = fts_stat(sp, p, ISSET(FTS_COMFOLLOW)); + + /* Command-line "." and ".." are real directories. */ + if (p->fts_info == FTS_DOT) +@@ -176,14 +177,13 @@ + sp->fts_cur->fts_info = FTS_INIT; + + /* +- * If using chdir(2), grab a file descriptor pointing to dot to insure ++ * If using chdir(2), grab a file descriptor pointing to dot to ensure + * that we can get back here; this could be avoided for some paths, + * but almost certainly not worth the effort. Slashes, symbolic links, + * and ".." are all fairly nasty problems. Note, if we can't get the + * descriptor we run anyway, just more slowly. + */ +- if (!ISSET(FTS_NOCHDIR) +- && (sp->fts_rfd = __open(".", O_RDONLY, 0)) < 0) ++ if (!ISSET(FTS_NOCHDIR) && (sp->fts_rfd = __open(".", O_RDONLY, 0)) < 0) + SET(FTS_NOCHDIR); + + return (sp); +@@ -211,10 +211,10 @@ + * known that the path will fit. + */ + len = p->fts_pathlen = p->fts_namelen; +- bcopy(p->fts_name, sp->fts_path, len + 1); +- if ((cp = rindex(p->fts_name, '/')) && (cp != p->fts_name || cp[1])) { ++ memmove(sp->fts_path, p->fts_name, len + 1); ++ if ((cp = strrchr(p->fts_name, '/')) && (cp != p->fts_name || cp[1])) { + len = strlen(++cp); +- bcopy(cp, p->fts_name, len + 1); ++ memmove(p->fts_name, cp, len + 1); + p->fts_namelen = len; + } + p->fts_accpath = p->fts_path = sp->fts_path; +@@ -227,7 +227,6 @@ + { + register FTSENT *freep, *p; + int saved_errno; +- int retval = 0; + + /* + * This still works if we haven't read anything -- the dummy structure +@@ -254,27 +253,28 @@ + if (!ISSET(FTS_NOCHDIR)) { + saved_errno = __fchdir(sp->fts_rfd) ? errno : 0; + (void)__close(sp->fts_rfd); +- } + +- /* Set errno and return. */ +- if (!ISSET(FTS_NOCHDIR) && saved_errno) { +- __set_errno (saved_errno); +- retval = -1; ++ /* Set errno and return. */ ++ if (saved_errno != 0) { ++ /* Free up the stream pointer. */ ++ free(sp); ++ __set_errno (saved_errno); ++ return (-1); ++ } + } + + /* Free up the stream pointer. */ +- free (sp); +- +- return retval; ++ free(sp); ++ return (0); + } + + /* +- * Special case a root of "/" so that slashes aren't appended which would +- * cause paths to be written as "//foo". ++ * Special case of "/" at the end of the path so that slashes aren't ++ * appended which would cause paths to be written as "....//foo". + */ + #define NAPPEND(p) \ +- (p->fts_level == FTS_ROOTLEVEL && p->fts_pathlen == 1 && \ +- p->fts_path[0] == '/' ? 0 : p->fts_pathlen) ++ (p->fts_path[p->fts_pathlen - 1] == '/' \ ++ ? p->fts_pathlen - 1 : p->fts_pathlen) + + FTSENT * + fts_read(sp) +@@ -298,7 +298,7 @@ + + /* Any type of file may be re-visited; re-stat and re-turn. */ + if (instr == FTS_AGAIN) { +- p->fts_info = fts_stat(sp, NULL, p, 0); ++ p->fts_info = fts_stat(sp, p, 0); + return (p); + } + +@@ -310,7 +310,7 @@ + */ + if (instr == FTS_FOLLOW && + (p->fts_info == FTS_SL || p->fts_info == FTS_SLNONE)) { +- p->fts_info = fts_stat(sp, NULL, p, 1); ++ p->fts_info = fts_stat(sp, p, 1); + if (p->fts_info == FTS_D && !ISSET(FTS_NOCHDIR)) { + if ((p->fts_symfd = __open(".", O_RDONLY, 0)) < 0) { + p->fts_errno = errno; +@@ -337,8 +337,8 @@ + } + + /* Rebuild if only read the names and now traversing. */ +- if (sp->fts_child && sp->fts_options & FTS_NAMEONLY) { +- sp->fts_options &= ~FTS_NAMEONLY; ++ if (sp->fts_child && ISSET(FTS_NAMEONLY)) { ++ CLR(FTS_NAMEONLY); + fts_lfree(sp->fts_child); + sp->fts_child = NULL; + } +@@ -356,7 +356,7 @@ + * FTS_STOP or the fts_info field of the node. + */ + if (sp->fts_child) { +- if (CHDIR(sp, p->fts_accpath)) { ++ if (fts_safe_changedir(sp, p, -1, p->fts_accpath)) { + p->fts_errno = errno; + p->fts_flags |= FTS_DONTCHDIR; + for (p = sp->fts_child; p; p = p->fts_link) +@@ -379,11 +379,11 @@ + free(tmp); + + /* +- * If reached the top, return to the original directory, and +- * load the paths for the next root. ++ * If reached the top, return to the original directory (or ++ * the root of the tree), and load the paths for the next root. + */ + if (p->fts_level == FTS_ROOTLEVEL) { +- if (!ISSET(FTS_NOCHDIR) && FCHDIR(sp, sp->fts_rfd)) { ++ if (FCHDIR(sp, sp->fts_rfd)) { + SET(FTS_STOP); + return (NULL); + } +@@ -399,7 +399,7 @@ + if (p->fts_instr == FTS_SKIP) + goto next; + if (p->fts_instr == FTS_FOLLOW) { +- p->fts_info = fts_stat(sp, NULL, p, 1); ++ p->fts_info = fts_stat(sp, p, 1); + if (p->fts_info == FTS_D && !ISSET(FTS_NOCHDIR)) { + if ((p->fts_symfd = + __open(".", O_RDONLY, 0)) < 0) { +@@ -413,7 +413,7 @@ + + name: t = sp->fts_path + NAPPEND(p->fts_parent); + *t++ = '/'; +- bcopy(p->fts_name, t, p->fts_namelen + 1); ++ memmove(t, p->fts_name, p->fts_namelen + 1); + return (sp->fts_cur = p); + } + +@@ -431,7 +431,7 @@ + return (sp->fts_cur = NULL); + } + +- /* Nul terminate the pathname. */ ++ /* NUL terminate the pathname. */ + sp->fts_path[p->fts_pathlen] = '\0'; + + /* +@@ -440,7 +440,7 @@ + * one directory. + */ + if (p->fts_level == FTS_ROOTLEVEL) { +- if (!ISSET(FTS_NOCHDIR) && FCHDIR(sp, sp->fts_rfd)) { ++ if (FCHDIR(sp, sp->fts_rfd)) { + SET(FTS_STOP); + return (NULL); + } +@@ -453,11 +453,10 @@ + return (NULL); + } + (void)__close(p->fts_symfd); +- } else if (!(p->fts_flags & FTS_DONTCHDIR)) { +- if (CHDIR(sp, "..")) { +- SET(FTS_STOP); +- return (NULL); +- } ++ } else if (!(p->fts_flags & FTS_DONTCHDIR) && ++ fts_safe_changedir(sp, p->fts_parent, -1, "..")) { ++ SET(FTS_STOP); ++ return (NULL); + } + p->fts_info = p->fts_errno ? FTS_ERR : FTS_DP; + return (sp->fts_cur = p); +@@ -528,7 +527,7 @@ + fts_lfree(sp->fts_child); + + if (instr == FTS_NAMEONLY) { +- sp->fts_options |= FTS_NAMEONLY; ++ SET(FTS_NAMEONLY); + instr = BNAMES; + } else + instr = BCHILD; +@@ -578,8 +577,9 @@ + register int nitems; + FTSENT *cur, *tail; + DIR *dirp; +- void *adjaddr; +- int cderrno, descend, len, level, maxlen, nlinks, saved_errno; ++ void *oldaddr; ++ int cderrno, descend, len, level, maxlen, nlinks, nostat, doadjust; ++ int saved_errno; + char *cp; + #ifdef DTF_HIDEW + int oflag; +@@ -593,14 +593,14 @@ + * If being called from fts_read, set the fts_info field. + */ + #ifdef DTF_HIDEW +- if (ISSET (FTS_WHITEOUT)) ++ if (ISSET(FTS_WHITEOUT)) + oflag = DTF_NODUP|DTF_REWIND; + else + oflag = DTF_HIDEW|DTF_NODUP|DTF_REWIND; + #else +-# define __opendir2(path, flag) __opendir(path) ++#define __opendir2(path, flag) __opendir(path) + #endif +- if ((dirp = __opendir2 (cur->fts_accpath, oflag)) == NULL) { ++ if ((dirp = __opendir2(cur->fts_accpath, oflag)) == NULL) { + if (type == BREAD) { + cur->fts_info = FTS_DNR; + cur->fts_errno = errno; +@@ -613,12 +613,16 @@ + * directory if we're cheating on stat calls, 0 if we're not doing + * any stat calls at all, -1 if we're doing stats on everything. + */ +- if (type == BNAMES) ++ if (type == BNAMES) { + nlinks = 0; +- else if (ISSET(FTS_NOSTAT) && ISSET(FTS_PHYSICAL)) ++ nostat = 0; /* avoid the gcc warning */ ++ } else if (ISSET(FTS_NOSTAT) && ISSET(FTS_PHYSICAL)) { + nlinks = cur->fts_nlink - (ISSET(FTS_SEEDOT) ? 0 : 2); +- else ++ nostat = 1; ++ } else { + nlinks = -1; ++ nostat = 0; ++ } + + #ifdef notdef + (void)printf("nlinks == %d (cur: %d)\n", nlinks, cur->fts_nlink); +@@ -642,12 +646,14 @@ + */ + cderrno = 0; + if (nlinks || type == BREAD) { +- if (FCHDIR(sp, dirfd(dirp))) { ++ if (fts_safe_changedir(sp, cur, dirfd(dirp), NULL)) { + if (nlinks && type == BREAD) + cur->fts_errno = errno; + cur->fts_flags |= FTS_DONTCHDIR; + descend = 0; + cderrno = errno; ++ (void)__closedir(dirp); ++ dirp = NULL; + } else + descend = 1; + } else +@@ -663,20 +669,21 @@ + * If not changing directories set a pointer so that can just append + * each new name into the path. + */ +- maxlen = sp->fts_pathlen - cur->fts_pathlen - 1; + len = NAPPEND(cur); + if (ISSET(FTS_NOCHDIR)) { + cp = sp->fts_path + len; + *cp++ = '/'; ++ } else { ++ cp = NULL; /* avoid the gcc warning */ + } ++ len++; ++ maxlen = sp->fts_pathlen - len; + + level = cur->fts_level + 1; + + /* Read the directory, attaching each entry to the `link' pointer. */ +- adjaddr = NULL; +- head = tail = NULL; +- nitems = 0; +- while((dp = __readdir(dirp))) { ++ doadjust = 0; ++ for (head = tail = NULL, nitems = 0; dirp && (dp = readdir(dirp));) { + int namlen; + + if (!ISSET(FTS_SEEDOT) && ISDOT(dp->d_name)) +@@ -685,8 +692,9 @@ + namlen = _D_EXACT_NAMLEN (dp); + if ((p = fts_alloc(sp, dp->d_name, namlen)) == NULL) + goto mem1; +- if (namlen > maxlen) { +- if (fts_palloc(sp, (size_t)namlen)) { ++ if (namlen >= maxlen) { /* include space for NUL */ ++ oldaddr = sp->fts_path; ++ if (fts_palloc(sp, namlen + len + 1)) { + /* + * No more memory for path or structures. Save + * errno, free up the current structure and the +@@ -697,18 +705,46 @@ + free(p); + fts_lfree(head); + (void)__closedir(dirp); +- __set_errno (saved_errno); + cur->fts_info = FTS_ERR; + SET(FTS_STOP); ++ __set_errno (saved_errno); + return (NULL); + } +- adjaddr = sp->fts_path; +- maxlen = sp->fts_pathlen - sp->fts_cur->fts_pathlen - 1; ++ /* Did realloc() change the pointer? */ ++ if (oldaddr != sp->fts_path) { ++ doadjust = 1; ++ if (ISSET(FTS_NOCHDIR)) ++ cp = sp->fts_path + len; ++ } ++ maxlen = sp->fts_pathlen - len; + } + +- p->fts_pathlen = len + namlen + 1; +- p->fts_parent = sp->fts_cur; + p->fts_level = level; ++ p->fts_parent = sp->fts_cur; ++ p->fts_pathlen = len + namlen; ++ if (p->fts_pathlen < len) { ++ /* ++ * If we wrap, free up the current structure and ++ * the structures already allocated, then error ++ * out with ENAMETOOLONG. ++ */ ++ free(p); ++ fts_lfree(head); ++ (void)__closedir(dirp); ++ cur->fts_info = FTS_ERR; ++ SET(FTS_STOP); ++ __set_errno (ENAMETOOLONG); ++ return (NULL); ++ } ++ ++#ifdef DT_WHT ++ /* ++ * UFS-specific, not compiled into glibc with the current ++ * set of header files. ++ */ ++ if (dp->d_type == DT_WHT) ++ p->fts_flags |= FTS_ISW; ++#endif + + if (cderrno) { + if (nlinks) { +@@ -719,7 +755,7 @@ + p->fts_accpath = cur->fts_accpath; + } else if (nlinks == 0 + #if defined DT_DIR && defined _DIRENT_HAVE_D_TYPE +- || (nlinks > 0 && ++ || (nostat && + dp->d_type != DT_DIR && dp->d_type != DT_UNKNOWN) + #endif + ) { +@@ -730,11 +766,11 @@ + /* Build a file name for fts_stat to stat. */ + if (ISSET(FTS_NOCHDIR)) { + p->fts_accpath = p->fts_path; +- bcopy(p->fts_name, cp, p->fts_namelen + 1); ++ memmove(cp, p->fts_name, p->fts_namelen + 1); + } else + p->fts_accpath = p->fts_name; + /* Stat it. */ +- p->fts_info = fts_stat(sp, dp, p, 0); ++ p->fts_info = fts_stat(sp, p, 0); + + /* Decrement link count if applicable. */ + if (nlinks > 0 && (p->fts_info == FTS_D || +@@ -752,21 +788,22 @@ + } + ++nitems; + } +- (void)__closedir(dirp); ++ if (dirp) ++ (void)__closedir(dirp); + + /* +- * If had to realloc the path, adjust the addresses for the rest +- * of the tree. ++ * If realloc() changed the address of the path, adjust the ++ * addresses for the rest of the tree and the dir list. + */ +- if (adjaddr) +- fts_padjust(sp, adjaddr); ++ if (doadjust) ++ fts_padjust(sp, head); + + /* + * If not changing directories, reset the path back to original + * state. + */ + if (ISSET(FTS_NOCHDIR)) { +- if (cp - 1 > sp->fts_path) ++ if (len == sp->fts_pathlen || nitems == 0) + --cp; + *cp = '\0'; + } +@@ -779,8 +816,8 @@ + * can't get back, we're done. + */ + if (descend && (type == BCHILD || !nitems) && +- (cur->fts_level == FTS_ROOTLEVEL ? +- FCHDIR (sp, sp->fts_rfd) : CHDIR (sp, ".."))) { ++ (cur->fts_level == FTS_ROOTLEVEL ? FCHDIR (sp, sp->fts_rfd) : ++ fts_safe_changedir(sp, cur->fts_parent, -1, ".."))) { + cur->fts_info = FTS_ERR; + SET(FTS_STOP); + return (NULL); +@@ -801,10 +838,9 @@ + + static u_short + internal_function +-fts_stat(sp, dp, p, follow) ++fts_stat(sp, p, follow) + FTS *sp; + register FTSENT *p; +- struct dirent *dp; + int follow; + { + register FTSENT *t; +@@ -817,16 +853,14 @@ + sbp = ISSET(FTS_NOSTAT) ? &sb : p->fts_statp; + + #if defined DT_WHT && defined S_IFWHT +- /* +- * Whited-out files don't really exist. However, there's stat(2) file +- * mask for them, so we set it so that programs (i.e., find) don't have +- * to test FTS_W separately from other file types. +- */ +- if (dp != NULL && dp->d_type == DT_WHT) { +- memset(sbp, 0, sizeof(struct stat)); +- sbp->st_mode = S_IFWHT; ++ /* check for whiteout */ ++ if (p->fts_flags & FTS_ISW) { ++ if (sbp != &sb) { ++ memset(sbp, '\0', sizeof (*sbp)); ++ sbp->st_mode = S_IFWHT; ++ } + return (FTS_W); +- } ++ } + #endif + + /* +@@ -846,7 +880,7 @@ + } + } else if (lstat(p->fts_accpath, sbp)) { + p->fts_errno = errno; +-err: __bzero(sbp, sizeof(struct stat)); ++err: memset(sbp, 0, sizeof(struct stat)); + return (FTS_NS); + } + +@@ -903,12 +937,18 @@ + * 40 so don't realloc one entry at a time. + */ + if (nitems > sp->fts_nitems) { ++ struct _ftsent **a; ++ + sp->fts_nitems = nitems + 40; +- if ((sp->fts_array = realloc(sp->fts_array, +- (size_t)(sp->fts_nitems * sizeof(FTSENT *)))) == NULL) { ++ if ((a = realloc(sp->fts_array, ++ (size_t)sp->fts_nitems * sizeof(FTSENT *))) == NULL) { ++ if (sp->fts_array) ++ free(sp->fts_array); ++ sp->fts_array = NULL; + sp->fts_nitems = 0; + return (head); + } ++ sp->fts_array = a; + } + for (ap = sp->fts_array, p = head; p; p = p->fts_link) + *ap++ = p; +@@ -943,8 +983,9 @@ + if ((p = malloc(len)) == NULL) + return (NULL); + +- /* Copy the name plus the trailing NULL. */ +- bcopy(name, p->fts_name, namelen + 1); ++ /* Copy the name and guarantee NUL termination. */ ++ memmove(p->fts_name, name, namelen); ++ p->fts_name[namelen] = '\0'; + + if (!ISSET(FTS_NOSTAT)) + p->fts_statp = (struct stat *)ALIGN(p->fts_name + namelen + 2); +@@ -984,9 +1025,29 @@ + FTS *sp; + size_t more; + { +- sp->fts_pathlen += more + 256; +- sp->fts_path = realloc(sp->fts_path, (size_t)sp->fts_pathlen); +- return (sp->fts_path == NULL); ++ char *p; ++ ++ /* ++ * Check for possible wraparound. ++ */ ++ more += 256; ++ if (sp->fts_pathlen + more < sp->fts_pathlen) { ++ if (sp->fts_path) ++ free(sp->fts_path); ++ sp->fts_path = NULL; ++ __set_errno (ENAMETOOLONG); ++ return (1); ++ } ++ sp->fts_pathlen += more; ++ p = realloc(sp->fts_path, sp->fts_pathlen); ++ if (p == NULL) { ++ if (sp->fts_path) ++ free(sp->fts_path); ++ sp->fts_path = NULL; ++ return (1); ++ } ++ sp->fts_path = p; ++ return (0); + } + + /* +@@ -995,23 +1056,26 @@ + */ + static void + internal_function +-fts_padjust(sp, addr) ++fts_padjust(sp, head) + FTS *sp; +- void *addr; ++ FTSENT *head; + { + FTSENT *p; ++ char *addr = sp->fts_path; + + #define ADJUST(p) { \ +- (p)->fts_accpath = \ +- (char *)addr + ((p)->fts_accpath - (p)->fts_path); \ ++ if ((p)->fts_accpath != (p)->fts_name) { \ ++ (p)->fts_accpath = \ ++ (char *)addr + ((p)->fts_accpath - (p)->fts_path); \ ++ } \ + (p)->fts_path = addr; \ + } + /* Adjust the current set of children. */ + for (p = sp->fts_child; p; p = p->fts_link) + ADJUST(p); + +- /* Adjust the rest of the tree. */ +- for (p = sp->fts_cur; p->fts_level >= FTS_ROOTLEVEL;) { ++ /* Adjust the rest of the tree, including the current level. */ ++ for (p = head; p->fts_level >= FTS_ROOTLEVEL;) { + ADJUST(p); + p = p->fts_link ? p->fts_link : p->fts_parent; + } +@@ -1027,5 +1091,44 @@ + for (max = 0; *argv; ++argv) + if ((len = strlen(*argv)) > max) + max = len; +- return (max); ++ return (max + 1); ++} ++ ++/* ++ * Change to dir specified by fd or p->fts_accpath without getting ++ * tricked by someone changing the world out from underneath us. ++ * Assumes p->fts_dev and p->fts_ino are filled in. ++ */ ++static int ++internal_function ++fts_safe_changedir(sp, p, fd, path) ++ FTS *sp; ++ FTSENT *p; ++ int fd; ++ const char *path; ++{ ++ int ret, oerrno, newfd; ++ struct stat sb; ++ ++ newfd = fd; ++ if (ISSET(FTS_NOCHDIR)) ++ return (0); ++ if (fd < 0 && (newfd = __open(path, O_RDONLY, 0)) < 0) ++ return (-1); ++ if (fstat(newfd, &sb)) { ++ ret = -1; ++ goto bail; ++ } ++ if (p->fts_dev != sb.st_dev || p->fts_ino != sb.st_ino) { ++ errno = ENOENT; /* disinformation */ ++ ret = -1; ++ goto bail; ++ } ++ ret = __fchdir(newfd); ++bail: ++ oerrno = errno; ++ if (fd < 0) ++ (void)__close(newfd); ++ __set_errno (oerrno); ++ return (ret); + } +--- glibc-2.2.2/io/fts.h.orig Mon Oct 11 22:45:07 1999 ++++ glibc-2.2.2/io/fts.h Sun Jun 3 07:44:57 2001 +@@ -53,7 +53,7 @@ + #define FTS_PHYSICAL 0x0010 /* physical walk */ + #define FTS_SEEDOT 0x0020 /* return dot and dot-dot */ + #define FTS_XDEV 0x0040 /* don't cross devices */ +-#define FTS_WHITEOUT 0x0080 /* return whiteout information */ ++#define FTS_WHITEOUT 0x0080 /* return whiteout information */ + #define FTS_OPTIONMASK 0x00ff /* valid user option mask */ + + #define FTS_NAMEONLY 0x0100 /* (private) child names only */ +@@ -95,11 +95,12 @@ + #define FTS_NSOK 11 /* no stat(2) requested */ + #define FTS_SL 12 /* symbolic link */ + #define FTS_SLNONE 13 /* symbolic link without target */ +-#define FTS_W 14 /* whiteout object */ ++#define FTS_W 14 /* whiteout object */ + u_short fts_info; /* user flags for FTSENT structure */ + + #define FTS_DONTCHDIR 0x01 /* don't chdir .. to the parent */ + #define FTS_SYMFOLLOW 0x02 /* followed a symlink to get here */ ++#define FTS_ISW 0x04 /* this is a whiteout object */ + u_short fts_flags; /* private flags for FTSENT structure */ + + #define FTS_AGAIN 1 /* read node again */ + + +----- End forwarded message ----- + +-- + _________________________________________________________________ + / Nothing is fool-proof to a sufficiently talented fool \ +| wichert@cistron.nl http://www.liacs.nl/~wichert/ | +| 1024D/2FA3BC2D 576E 100B 518D 2F16 36B0 2805 3CB8 9250 2FA3 BC2D | + diff -urN glibc-2.2.4.orig/debian/patches/glibc22-getaddrinfo.dpatch glibc-2.2.4/debian/patches/glibc22-getaddrinfo.dpatch --- glibc-2.2.4.orig/debian/patches/glibc22-getaddrinfo.dpatch Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/patches/glibc22-getaddrinfo.dpatch Mon Sep 10 13:11:31 2001 @@ -0,0 +1,150 @@ +#! /bin/sh -e + +# DP: Hack for some ordering in getaddrinfo lookups + +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 + +--- glibc/sysdeps/posix/getaddrinfo.c~ 2000/11/18 08:30:02 1.34 ++++ glibc/sysdeps/posix/getaddrinfo.c 2001/01/09 01:46:49 +@@ -264,7 +264,7 @@ + return 0; + } + +-#define gethosts(_family, _type) \ ++#define gethosts(_family, _type, _name) \ + { \ + int i, herrno; \ + size_t tmpbuflen; \ +@@ -275,11 +275,12 @@ + do { \ + tmpbuflen *= 2; \ + tmpbuf = __alloca (tmpbuflen); \ +- rc = __gethostbyname2_r (name, _family, &th, tmpbuf, \ ++ rc = __gethostbyname2_r (_name, _family, &th, tmpbuf, \ + tmpbuflen, &h, &herrno); \ + } while (rc == ERANGE && herrno == NETDB_INTERNAL); \ + if (rc != 0) \ + { \ ++ succeeded--; \ + if (herrno == NETDB_INTERNAL) \ + { \ + __set_h_errno (herrno); \ +@@ -307,6 +308,26 @@ + } \ + } + ++/* If we are looking for both IPv4 and IPv6 address we don't ++ want the lookup functions to automatically promote IPv4 ++ addresses to IPv6 addresses. Currently this is decided ++ by setting the RES_USE_INET6 bit in _res.options. */ ++#define tryname(__name) \ ++ { \ ++ succeeded = req->ai_family == AF_UNSPEC ? 2 : 1; \ ++ if (req->ai_family == AF_UNSPEC) \ ++ _res.options &= ~RES_USE_INET6; \ ++ if (req->ai_family == AF_UNSPEC || \ ++ req->ai_family == AF_INET6) \ ++ gethosts (AF_INET6, struct in6_addr, __name); \ ++ no_inet6_data = no_data; \ ++ if (req->ai_family == AF_UNSPEC) \ ++ _res.options = old_res_options; \ ++ if (req->ai_family == AF_UNSPEC || \ ++ req->ai_family == AF_INET) \ ++ gethosts (AF_INET, struct in_addr, __name); \ ++ } ++ + static int + gaih_inet (const char *name, const struct gaih_service *service, + const struct addrinfo *req, struct addrinfo **pai) +@@ -316,6 +337,10 @@ + struct gaih_addrtuple *at = NULL; + int rc; + ++ /* Make sure we are initialized now */ ++ if (!(_res.options & RES_INIT)) ++ res_ninit(&_res); ++ + if (req->ai_protocol || req->ai_socktype) + { + ++tp; +@@ -489,34 +514,47 @@ + struct gaih_addrtuple **pat = &at; + int no_data = 0; + int no_inet6_data; ++ int succeeded = -1; + int old_res_options = _res.options; + +- /* If we are looking for both IPv4 and IPv6 address we don't +- want the lookup functions to automatically promote IPv4 +- addresses to IPv6 addresses. Currently this is decided +- by setting the RES_USE_INET6 bit in _res.options. */ +- if (req->ai_family == AF_UNSPEC) +- _res.options &= ~RES_USE_INET6; +- +- if (req->ai_family == AF_UNSPEC || req->ai_family == AF_INET6) +- gethosts (AF_INET6, struct in6_addr); +- no_inet6_data = no_data; ++ /* If we have a dotted name, first try an absolute lookup. This ++ avoids problem where the resolver will try to search domains ++ even though we may have a fqdn, which is bad since ipv6 lookups ++ are performed first. */ ++ if (strchr(name, '.') != NULL) ++ { ++ int namelen = strlen(name); ++ char *newname = __alloca(namelen + 2); + +- if (req->ai_family == AF_UNSPEC) +- _res.options = old_res_options; ++ strcpy(newname, name); ++ newname[namelen] = '.'; ++ newname[namelen+1] = '\0'; + +- if (req->ai_family == AF_UNSPEC || req->ai_family == AF_INET) +- gethosts (AF_INET, struct in_addr); ++ tryname(newname); ++ } + +- if (no_data != 0 && no_inet6_data != 0) ++ /* If the previous didn't work, or we don't have a dotted name, ++ we try again like normal, letting the resolver manage domain ++ searching. */ ++ if (succeeded <= 0) + { +- /* If both requests timed out report this. */ +- if (no_data == EAI_AGAIN && no_inet6_data == EAI_AGAIN) +- return -EAI_AGAIN; +- +- /* We made requests but they turned out no data. The name +- is known, though. */ +- return (GAIH_OKIFUNSPEC | -EAI_NODATA); ++ _res.options = old_res_options; ++ ++ if (succeeded == 0) /* we've tried absolute, now try searches */ ++ _res.ndots = 99; ++ ++ tryname(name); ++ ++ if (no_data != 0 && no_inet6_data != 0) ++ { ++ /* If both requests timed out report this. */ ++ if (no_data == EAI_AGAIN && no_inet6_data == EAI_AGAIN) ++ return -EAI_AGAIN; ++ ++ /* We made requests but they turned out no data. The name ++ is known, though. */ ++ return (GAIH_OKIFUNSPEC | -EAI_NODATA); ++ } + } + } + diff -urN glibc-2.2.4.orig/debian/patches/glibc22-getdents-fix.dpatch glibc-2.2.4/debian/patches/glibc22-getdents-fix.dpatch --- glibc-2.2.4.orig/debian/patches/glibc22-getdents-fix.dpatch Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/patches/glibc22-getdents-fix.dpatch Mon Sep 10 13:11:31 2001 @@ -0,0 +1,78 @@ +#! /bin/sh -e + +# All lines beginning with `# DP:' are a description of the patch. +# DP: A patch I got from Trond Myklebust to fix NFS problems + +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.2.2/sysdeps/unix/sysv/linux/getdents.c~ Tue Feb 20 14:53:40 2001 ++++ glibc-2.2.2/sysdeps/unix/sysv/linux/getdents.c Tue Feb 20 14:59:46 2001 +@@ -47,6 +47,8 @@ + #endif + + #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) ++#define test_overflow(VAR, SIZE) ((((VAR) < 0 ? -(VAR):(VAR)) >> 8*(SIZE)) != 0) ++ + + extern int __syscall_getdents (int fd, char *__unbounded buf, unsigned int nbytes); + extern int __syscall_getdents64 (int fd, char *__unbounded buf, unsigned int nbytes); +@@ -98,7 +100,6 @@ + __GETDENTS (int fd, char *buf, size_t nbytes) + { + DIRENT_TYPE *dp; +- off64_t last_offset = -1; + ssize_t retval; + + #ifdef __NR_getdents64 +@@ -126,6 +127,7 @@ + # endif + { + struct kernel_dirent64 *kdp; ++ int64_t last_offset = 0; + const size_t size_diff = (offsetof (struct kernel_dirent64, d_name) + - offsetof (DIRENT_TYPE, d_name)); + +@@ -157,12 +159,12 @@ + if ((sizeof (dp->d_ino) != sizeof (kdp->d_ino) + && dp->d_ino != d_ino) + || (sizeof (dp->d_off) != sizeof (kdp->d_off) +- && dp->d_off != d_off)) ++ && test_overflow(d_off, sizeof(dp->d_off)))) + { + /* Overflow. If there was at least one entry + before this one, return them without error, + otherwise signal overflow. */ +- if (last_offset != -1) ++ if (dp != buf) + { + __lseek64 (fd, last_offset, SEEK_SET); + return (char *) dp - buf; +@@ -193,6 +195,7 @@ + { + size_t red_nbytes; + struct kernel_dirent *skdp, *kdp; ++ __kernel_off_t last_offset = 0; + const size_t size_diff = (offsetof (DIRENT_TYPE, d_name) + - offsetof (struct kernel_dirent, d_name)); + +@@ -221,7 +224,7 @@ + { + /* Our heuristic failed. We read too many entries. Reset + the stream. */ +- assert (last_offset != -1); ++ assert (dp != buf); + __lseek64 (fd, last_offset, SEEK_SET); + + if ((char *) dp == buf) diff -urN glibc-2.2.4.orig/debian/patches/glibc22-hppa.dpatch glibc-2.2.4/debian/patches/glibc22-hppa.dpatch --- glibc-2.2.4.orig/debian/patches/glibc22-hppa.dpatch Wed Dec 31 18:00:00 1969 +++ glibc-2.2.4/debian/patches/glibc22-hppa.dpatch Mon Sep 10 13:11:31 2001 @@ -0,0 +1,1200 @@ +#! /bin/sh -e + +# DP: A few remaining hppa diffs to 2.2.3 that have not been merged upstream + +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 + +diff -urNx CVS libc-upstream/elf/elf.h libc-hppa/elf/elf.h +--- libc-upstream/elf/elf.h Tue Jul 10 10:23:49 2001 ++++ libc-hppa/elf/elf.h Tue Jul 10 10:26:31 2001 +@@ -139,6 +139,7 @@ + #define EI_OSABI 7 /* OS ABI identification */ + #define ELFOSABI_SYSV 0 /* UNIX System V ABI */ + #define ELFOSABI_HPUX 1 /* HP-UX */ ++#define ELFOSABI_LINUX 3 /* Linux */ + #define ELFOSABI_ARM 97 /* ARM */ + #define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */ + +diff -urNx CVS libc-upstream/linuxthreads/internals.h libc-hppa/linuxthreads/internals.h +--- libc-upstream/linuxthreads/internals.h Tue Jun 26 11:16:11 2001 ++++ libc-hppa/linuxthreads/internals.h Tue Jun 26 11:25:26 2001 +@@ -28,7 +28,8 @@ + #include + #include /* for _LIBC_TSD_KEY_N */ + +-extern long int testandset (int *spinlock); ++extern int try_lock(__atomic_lock_t *spinlock); ++extern int lock_held(__atomic_lock_t *spinlock); + extern int __compare_and_swap (long int *p, long int oldval, long int newval); + + #include "pt-machine.h" +@@ -107,7 +108,7 @@ + + struct pthread_atomic { + long p_count; +- int p_spinlock; ++ __atomic_lock_t p_spinlock; + }; + + /* Context info for read write locks. The pthread_rwlock_info structure +diff -urNx CVS libc-upstream/linuxthreads/oldsemaphore.c libc-hppa/linuxthreads/oldsemaphore.c +--- libc-upstream/linuxthreads/oldsemaphore.c Sat Jun 9 16:32:45 2001 ++++ libc-hppa/linuxthreads/oldsemaphore.c Sat Jun 9 16:17:01 2001 +@@ -73,7 +73,7 @@ + errno = ENOSYS; + return -1; + } +- sem->sem_spinlock = __LT_SPINLOCK_INIT; ++ sem->sem_spinlock = __ATOMIC_LOCK_INIT; + sem->sem_status = ((long)value << 1) + 1; + return 0; + } +diff -urNx CVS libc-upstream/linuxthreads/pt-machine.c libc-hppa/linuxthreads/pt-machine.c +--- libc-upstream/linuxthreads/pt-machine.c Sat Jun 9 16:32:45 2001 ++++ libc-hppa/linuxthreads/pt-machine.c Sat Jun 9 16:17:01 2001 +@@ -19,7 +19,9 @@ + + #define PT_EI + +-extern long int testandset (int *spinlock); ++#include +