mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 20:40:05 +00:00
88cc61e84e
* README: Regenerated.
1607 lines
59 KiB
Plaintext
1607 lines
59 KiB
Plaintext
GNU C Library NEWS -- history of user-visible changes. 2006-09-29
|
||
Copyright (C) 1992-2002,2003,2004,2005,2006 Free Software Foundation, Inc.
|
||
See the end for copying conditions.
|
||
|
||
Please send GNU C library bug reports via <http://sources.redhat.com/bugzilla/>
|
||
using `glibc' in the "product" field.
|
||
|
||
Version 2.5
|
||
|
||
* For Linux, the sorting of addresses returned by getaddrinfo now also
|
||
handles rules 3, 4, and 7 from RFC 3484. I.e., all rules are handled.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Allow system admin to configure getaddrinfo with the /etc/gai.conf file.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* New Linux interfaces: splice, tee, sync_file_range, vmsplice.
|
||
|
||
* New iconv module for MIK. Contributed by Alexander Shopov.
|
||
|
||
* For sites with broken group and/or passwd database, the auto-propagate
|
||
option of nscd can prevent creating ID lookup entries from the results
|
||
of a name lookup and vice versa. This usually is no problem but some
|
||
site might have problems with the default behavior.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* Iterating over entire database in NIS can be slow. With the
|
||
SETENT_BATCH_READ option in /etc/default/nss a system admin can decide
|
||
to trade time for memory. The entire database will be read at once.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* The interfaces introduced in RFC 3542 have been implemented by
|
||
Ulrich Drepper.
|
||
|
||
* Support for the new ELF hash table format was added by Ulrich Drepper.
|
||
|
||
* Support for priority inheritance mutexes added by Jakub Jelinek and
|
||
Ulrich Drepper.
|
||
|
||
* Support for priority protected mutexes added by Jakub Jelinek.
|
||
|
||
* New locales: nr_ZA, pa_PK, ca_AD, ca_FR, ca_IT, el_CY, tr_CY, as_IN,
|
||
or_IN, csb_PL, fy_NL, sr_ME.
|
||
|
||
Version 2.4
|
||
|
||
* More overflow detection functions.
|
||
|
||
* New iconv converters for IBM1025, IBM1122, IBM1137, IBM1153,
|
||
IBM1154, IBM1155, IBM1156, IBM1157, and IBM1158 contributed by Jiro Sekiba.
|
||
|
||
More converters for IBM803, IBM901, IBM902, IBM921, IBM1008, IBM1097,
|
||
IBM1112, IBM1123, IBM1130, IBM1140, IBM1141, IBM1142, IBM1143, IBM1144,
|
||
IBM1145, IBM1146, IBM1147, IBM1148, IBM1149, IBM1166, IBM1167, IBM4517,
|
||
IBM4899, IBM4909, IBM4971, IBM5347, IBM9030, IBM9066, IBM9448, IBM12712,
|
||
IBM16804, IBM1364, IBM1371, IBM1388, IBM1390, and IBM1399 contributed
|
||
by Masahide Washizawa.
|
||
|
||
* It is now possible to install audit libraries for the dynamic linker using
|
||
LD_AUDIT. Implemented by Ulrich Drepper.
|
||
|
||
* The LinuxThreads add-on, providing pthreads on Linux 2.4 kernels, is no
|
||
longer supported. The new NPTL implementation requires Linux 2.6 kernels.
|
||
For a libc and libpthread that works well on Linux 2.4 kernels, we
|
||
recommend using the stable 2.3 branch.
|
||
|
||
* The new function open_wmemstream acts like open_memstream,
|
||
but uses a wchar_t wide character buffer.
|
||
|
||
* The new function ppoll is an improved version of poll, similar to pselect.
|
||
|
||
* New interfaces: fdopendir, openat, fstatat, fchmodat, fchownat,
|
||
futimesat, faccessat, mkdirat, mkfifoat, mknodat,
|
||
renameat, unlinkat, linkat, symlinkat, readlinkat.
|
||
|
||
* New Linux kernel system calls: unshare,
|
||
inotify_init, inotify_add_watch, inotify_rm_watch.
|
||
|
||
* The euidaccess function is now also known by the alias eaccess,
|
||
for compatibility with some other systems.
|
||
|
||
* Timezone data updated to 2006b version.
|
||
|
||
Version 2.3.6
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
38, 253, 549, 622, 653, 721, 758, 851, 877, 915, 934, 955, 961,
|
||
1016, 1037, 1076, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086,
|
||
1087, 1088, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098,
|
||
1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109,
|
||
1110, 1111, 1112, 1113, 1125, 1137, 1138, 1249, 1250, 1251, 1252,
|
||
1253, 1254, 1350, 1358, 1394, 1438, 1498, 1534
|
||
|
||
Visit <http://sources.redhat.com/bugzilla/> for the details of each bug.
|
||
|
||
* As of this release, GCC 4 can be used to compile the C Library.
|
||
|
||
* Timezone data updated to 2005m version.
|
||
|
||
Version 2.3.5
|
||
|
||
* The following bugs are resolved with this release:
|
||
|
||
284, 592, 602, 626, 633, 640, 650, 661, 671, 681, 693, 700, 710, 719,
|
||
722, 723, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736,
|
||
737, 738, 739, 740, 741, 742, 743, 744, 745, 765, 767, 768, 769, 776,
|
||
777, 787, 821, 822, 823, 825
|
||
|
||
Visit <http://sources.redhat.com/bugzilla/> for the details of each bug.
|
||
|
||
Version 2.3.4
|
||
|
||
* Support for RFC 3678. Real implementations exist only for Linux so far.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* nscd can now cache entries persistently. Expiring entries are reloaded.
|
||
For speedups the cache can be shared in memory with client processes.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* nscd can now perform SELinux checks.
|
||
Implemented by Matthew Rickard <mjricka@epoch.ncsc.mil>.
|
||
|
||
* getaddrinfo queries are now cached. Canonical name lookup is performed
|
||
efficiently.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* The nothrow function attribute is used when headers are used by gcc when
|
||
compiling C code. This can avoid significant amounts of exception
|
||
handling data.
|
||
|
||
* The malloc functions perform more error checking and are stricter when
|
||
it comes to reacting on errors. The default action is to terminate
|
||
the process after showing an error message. Implemented by Ulrich Drepper.
|
||
|
||
* Reverse lookups of IPv6 addresses does not use bit string or .ip6.int
|
||
lookups anymore unless explicitly requested. Implemented by Ulrich Drepper.
|
||
|
||
* Namespaces in ld.so are implemented. DSOs can be loaded in separate
|
||
namespaces using the new function dlmopen(). This feature is of course,
|
||
like most other dynamic loading functionality, not available in statically
|
||
linked applications. Implemented by Ulrich Drepper.
|
||
|
||
* Low-overhead boundary checking variants of string and some stdio functions
|
||
were added. These are to be used in conjunction with a gcc patch by
|
||
Jakub Jelinek which adds calls to these functions if possible.
|
||
Implemented by Jakub Jelinek and Ulrich Drepper.
|
||
|
||
* Old code for several operating systems and machine architectures that
|
||
have not been in working condition in a long time have been removed from
|
||
the main source tree maintained by the GNU C Library's maintainers.
|
||
These files are now reside in the separate `ports' source module
|
||
that is usable as an add-on when building the library.
|
||
|
||
Version 2.3.3
|
||
|
||
* New functions `dladdr1' and `dlinfo' in <dlfcn.h> provide more ways to
|
||
interrogate the dynamic linker, compatible with the Solaris interface.
|
||
|
||
* ELF thread-local storage support (TLS) now works on PowerPC and PowerPC64;
|
||
implemented by Paul Mackerras, Steven Munroe, and Roland McGrath.
|
||
|
||
* getifaddrs now uses the netlink interface on Linux to get its information.
|
||
Implemented by Thorsten Kukuk.
|
||
|
||
* getaddrinfo now implements AI_V4MAPPED, AI_ALL, and AI_ADDRCONF.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
* support for non-executable stacks on x86 has been added. Changes mostly
|
||
by Roland McGrath.
|
||
|
||
* regex is now much faster for multibyte locales. Changes by Jakub Jelinek
|
||
and Ulrich Drepper.
|
||
|
||
* getaddrinfo now performs destination address selection according to
|
||
RFC 3484.
|
||
|
||
Version 2.3.2
|
||
|
||
* Thread-safe interfaces for many functions that access locale data
|
||
were added in version 2.3, but these features were omitted from NEWS.
|
||
Many functions have variants with an `_l' suffix that take a `locale_t'
|
||
object as a parameter rather than consulting the current locale.
|
||
The new functions `newlocale', `duplocale', and `freelocale' in <locale.h>
|
||
create and maintain `locale_t' objects. Additionally, the new function
|
||
`uselocale' sets "the current locale" (as used by functions not so
|
||
parameterized) set for an individual thread. These features were added
|
||
in version 2.3, implemented by Ulrich Drepper and Roland McGrath.
|
||
|
||
* The functions getresuid, getresgid, setresuid, and setresgid, which
|
||
have long been available on Linux, are now declared in <unistd.h>
|
||
and are now also available on the Hurd.
|
||
|
||
* ELF thread-local storage support (TLS) now works on x86-64.
|
||
|
||
* The new dynamic string token $LIB is expanded in shared library names.
|
||
This normally expands to lib, but on some 64-bit platforms to lib64 instead.
|
||
|
||
* Aldy Hernandez contributed complete software floating point support for
|
||
PowerPC machines with no FPU.
|
||
|
||
* fexecve is implemented on Linux.
|
||
|
||
* The `btowc' function should work at least twice as fast due to
|
||
specialized callbacks in the iconv modules. Implemented by Bruno Haible.
|
||
|
||
* With approriate thread add-ons cancelable functions are now implemented
|
||
in libc.so as well. No need to call the function in libpthread. This
|
||
change allowed to finally disable the incorrect and expensive handling
|
||
of weak definition in ld.so.
|
||
|
||
* Yet more PLT entries in libc.so have been removed. We finally arrived
|
||
at the bare minimum. Startup times improved appropriately.
|
||
|
||
* Support for the new Linux/x86 system call interface was added. The
|
||
AT_SYSINFO auxiliary vector entry is recognized and handled.
|
||
|
||
Version 2.3
|
||
|
||
* Masahide Washizawa contributed iconv modules for IBM1163 and IBM1164
|
||
charsets.
|
||
|
||
* iconv (the program and the interface) now accepts empty names (excluding
|
||
options like //TRANSLIT) to mean "use charset of current locale".
|
||
|
||
* localedef can now transliterate characters in strings which are not in
|
||
the provided charmap. The information from the input locale is used.
|
||
|
||
* Prelinking support was added for ELF targets. This requires additional
|
||
tools and recent versions of the GNU binutils. Contributed by Jakub Jelinek.
|
||
|
||
* Read-only stdio streams now use mmap to speed up operation by eliminating
|
||
copying and buffer underflows. To use add 'm' to the mode string of
|
||
the fopen/fdopen/freopen call. Implemented by Ulrich Drepper.
|
||
|
||
* The malloc functions were completely rewritten by Wolfram Gloger based
|
||
on Doug Lea's malloc-2.7.0.c.
|
||
|
||
* Isamu Hasegawa contributed a completely new and POSIX-conformant
|
||
implementation of regex.
|
||
|
||
* Bruno Haible upgraded the iconv and locale implementation to support
|
||
Unicode 3.2.
|
||
|
||
* Contents of the LC_* and LANG environment variables in the CEN style are
|
||
not recognized anymore. It never was used. Change by Ulrich Drepper.
|
||
|
||
* The runtime (ld.so, libc, libpthread for Linux) now can handle the ELF
|
||
thread-local storage (TLS) ABI on some platforms.
|
||
Changes by Ulrich Drepper. SH support by Kaz Kojima.
|
||
|
||
* Bruno Haible contributed iconv converters for ISO-2022-JP-3, SHIFT JIS-X0213,
|
||
EUC-JISX0213, and TSCII.
|
||
|
||
* New header <ifaddrs.h> with functions `getifaddrs' and `freeifaddrs':
|
||
BSD-compatible interface for getting all network interface addresses.
|
||
Implementation for IPv4 by Roland McGrath.
|
||
|
||
* Loading of locale data is faster due to the introduction of a locale
|
||
archive. Implemented by Roland McGrath and Ulrich Drepper.
|
||
|
||
* Startup times are significantly reduced by not using exported functions
|
||
inside the library itself. Changes by Jakub Jelinek, Roland McGrath,
|
||
and Ulrich Drepper.
|
||
|
||
* Steven Munroe contributed a port to PowerPC64/Linux.
|
||
|
||
Version 2.2.6
|
||
|
||
* The Hurd now uses the GNU libio implementation of stdio rather than the
|
||
old GNU stdio implementation, and uses a new ABI (libc.so.0.3).
|
||
|
||
* The Hurd on x86 now has the `ioperm' function and <sys/io.h> header file
|
||
with the same behavior as the Linux system call of the same name.
|
||
|
||
Version 2.2.5
|
||
|
||
* Stephen Moshier implemented log2, log10, powl and cbrtl for the
|
||
128-bit long double format.
|
||
|
||
* Masahide Washizawa contributed iconv modules for IBM1132, IBM1133, IBM1160,
|
||
IBM1161, and IBM1162 charsets.
|
||
|
||
* Andreas Jaeger contributed a port to x86-64/Linux.
|
||
|
||
* Peter Bruin contributed a port to PowerPC/Hurd.
|
||
|
||
* libc functions using I/O streams now can handle wide-oriented streams
|
||
as well.
|
||
|
||
* optimizations in the dynamic linker. Binaries created by recent binutils
|
||
versions start up quicker due to reduced time spent on relocations.
|
||
|
||
* Support for use of gcc3 added by Jakub Jelinek and HJ Lu.
|
||
|
||
Version 2.2.4
|
||
|
||
* Stephen Moshier implemented cosh, expm1, log1p, acos, sinh, tanh,
|
||
asinh, atanh, j0 for the 128-bit long double format.
|
||
|
||
* Bruno Haible updated all the code handling Unicode in some form to
|
||
support Unicode 3.1.
|
||
|
||
* Speed of regex for single-byte locales is back to previous levels.
|
||
Patch by Isamu Hasegawa.
|
||
|
||
* Alpha, SPARC, and IA-64 now also using floating stacks.
|
||
|
||
* Startup time of internationalized applications greatly improved through
|
||
iconv cache. Use iconvconfig to generate the cache file.
|
||
Contributed by Ulrich Drepper.
|
||
|
||
* The IA-64 specific part of ld.so was rewritten to eliminate some pretty
|
||
severe performance problems. Patch by David Mosberger.
|
||
|
||
* The Hurd port got a lot more functionality like AIO, various stdio
|
||
extensions, etc. Mainly done by Roland McGrath.
|
||
|
||
* mtrace can now lookup symbols in shared libraries.
|
||
|
||
Version 2.2.3
|
||
|
||
* Intel's IA-64 math library is largely integrated. It provides fast and
|
||
accurate implementatations for most basic and standard math functions
|
||
in float, double, and long double format.
|
||
|
||
* Stephen Moshier implemented j0, j1, jn, y0, y1, yn, lgamma, erf, erfc,
|
||
and asin for the 96-bit long double format and asin, log, tan for the
|
||
128-bit long double format.
|
||
|
||
* The beginning of a last-bit accurate math library by IBM Haifa were added.
|
||
The basic double functions exist today. Contributed by Abraham Ziv
|
||
<ziv@il.ibm.com>, Moshe Olshansky <olshansk@il.ibm.com>, Ealan Henis
|
||
<ealan@il.ibm.com>, and Anna Reitman <reitman@il.ibm.com>.
|
||
|
||
* An asynchronous name lookup library was added. The interface is designed
|
||
after POSIX AIO. The proposal was circulated beforehand to get comments.
|
||
No negative ones came in. Implemented by Ulrich Drepper.
|
||
|
||
* Port to S390/64bit contributed by Martin Schwidefsky
|
||
<schwidefsky@de.ibm.com>.
|
||
|
||
* David Mosberger <davidm@hpl.hp.com> implemented the setcontext family
|
||
of functions for Linux/IA-64.
|
||
|
||
* The RPC code is now thread safe. Threads can now use the same service
|
||
of different services at the same time. Patch by Eric Norum
|
||
<eric.norum@usask.ca> with some help by Ulrich Drepper.
|
||
|
||
* Martin Schwidefsky <schwidefsky@de.ibm.com> implemented the setcontext
|
||
family of functions for Linux/S390.
|
||
|
||
* Ulrich Drepper <drepper@redhat.com> implemented the setcontext family
|
||
of functions for Linux/x86.
|
||
|
||
* Port to Linux/CRIS contributed by Axis Communications.
|
||
|
||
Version 2.2.2
|
||
|
||
* Lots of headers were cleaned up. Using the tool in the conform/ subdir
|
||
we can now check for namespace violations and missing declarations. The
|
||
result is that almost all headers are now Unix-compliant (as defined in
|
||
the upcoming XPG6). The negative side is that some programs might need
|
||
corrections, too, if they depend on the incorrect form of the headers in
|
||
previous versions which defined too many symbols and included too many
|
||
other headers.
|
||
|
||
* regex now handles multibyte character sets correctly.
|
||
Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
|
||
|
||
* iconv (the program) does now conform to the upcoming XPG6 and handles
|
||
charmaps. Instead of the charset names the path of charmaps can be
|
||
provided and the conversion happens based on this data.
|
||
Contributed by Ulrich Drepper.
|
||
|
||
* The locale program now provides detailed information about the installed
|
||
locales. While
|
||
|
||
locale -a
|
||
|
||
only lists the names of the supported locales
|
||
|
||
locale -a --verbose
|
||
|
||
provides details such as country, language, and codeset name.
|
||
Contributed by Ulrich Drepper.
|
||
|
||
Version 2.2.1
|
||
|
||
* The gencat program now parses the input file according to the charset
|
||
selected by the LC_CTYPE category. This is important for stateful
|
||
character sets. To make generating catalogs easier there is a way
|
||
to overwrite the charset selected by the locale: before the first
|
||
message or $ quote line the catalog can contain a line like
|
||
|
||
$ codeset=ISO-8859-2
|
||
|
||
to select the charset (ISO-8859-2 in this case).
|
||
|
||
Implemented by Shinya Hanataka and Ulrich Drepper.
|
||
|
||
* New codeset conversion modules: IBM-922 (Estonia PC codeset),
|
||
IBM-1124 (Ukraine PC codeset), IBM-1129 (Vietnamese PC codeset).
|
||
Contributed by Masahide Washizawa <washi@jp.ibm.com>.
|
||
|
||
* Optimized string functions for Alpha ev6 and ev67 by Richard Henderson
|
||
<rth@redhat.com> and Rick Gorton <rick.gorton@alpha-processor.com>.
|
||
|
||
* The LANGUAGE environment variable is now ignored unless the locale is
|
||
changed from the default "C" locale.
|
||
|
||
* The usual bug fixes.
|
||
|
||
Version 2.2
|
||
|
||
* Greg McGary added runtime support for bounds checking using gcc's
|
||
new -fbounded-pointers option. ix86 target is complete. PowerPC
|
||
is in progress.
|
||
|
||
* Thorsten Kukuk added secure mode support to nscd.
|
||
|
||
* The Berkeley db libraries have been removed.
|
||
|
||
Related, the nss_db module is now in a separate package since it
|
||
obviously requires a database library being available.
|
||
|
||
* Wide character I/O streams implemented by Ulrich Drepper.
|
||
|
||
* Functions from the extended socket API added by Ulrich Drepper.
|
||
|
||
* Functions feenableexcept and fedisableexcept to control the
|
||
behaviour of individual exceptions have been added by Andreas Jaeger.
|
||
|
||
* ldconfig program added by Andreas Jaeger and Jakub Jelinek.
|
||
|
||
* The resolver code has been updated from bind 8.2.3-T5B which supports
|
||
threads. The integration was done by Andreas Jaeger, Adam D. Bradley,
|
||
and Mark Kettenis.
|
||
|
||
This change could in some situations effect backward compatibility. Since
|
||
now `_res' is a thread-local instead of a global variable, modifying it
|
||
in one thread does not have any effect in other threads.
|
||
|
||
The resolver library was also extended to allow IPv6 as the transport
|
||
protocol for the requests. This work was done by Stig Venaas.
|
||
|
||
* Compatibility code for K&R C compilers has been removed from the
|
||
header files. A ISO C compiler is needed to use the library
|
||
(conforming to either C89 or C99 standard).
|
||
|
||
* Complete rewrite of the localedef program to support multibyte character
|
||
sets. Implement handling of ISO 14651 and ISO 14652. Rewrite strcoll,
|
||
strxfrm, wcscoll, and wcsxfrm functions. Make isw*() functions work.
|
||
Implemented by Ulrich Drepper.
|
||
|
||
Bruno Haible significantly improved the generation and use of the data
|
||
structures for the wide character tables.
|
||
|
||
* Plural handling in gettext implemented by Ulrich Drepper.
|
||
|
||
* The utmp daemon has been removed.
|
||
|
||
* The port to MIPS-Linux has been finished by Andreas Jaeger.
|
||
|
||
* A port to Hitachi SH3 and SH4 has been contributed by Kazumoto Kojima
|
||
and Yutaka Niibe.
|
||
|
||
* POSIX clocks and timers implemented by Kaz Kylheku and Ulrich Drepper.
|
||
|
||
* POSIX barriers implemented by Kaz Kylheku.
|
||
|
||
* POSIX spawn function family implemented by Ulrich Drepper.
|
||
|
||
* POSIX spinlocks are now available.
|
||
|
||
* Timed wait functions for mutex, rwlock, and semaphores are implemented.
|
||
|
||
* the configure option --enable-kernel=X.Y.Z allows to strip out
|
||
compatibility for kernel versions before X.Y.Z. This is currently only
|
||
implemented for Linux.
|
||
|
||
* the sockaddr_in6 structure changed. The IPv6 working group added a new
|
||
field sin6_scope_id. This means that all programs using IPv6 should be
|
||
recompiled. Don't expect binary compatibility with previous glibc
|
||
versions.
|
||
|
||
* various conversion modules for IBM character sets contributed by
|
||
Masahide Washizawa.
|
||
|
||
* IA-64 port by Jes Sorensen and HJ Lu.
|
||
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
Compiling the GNU C Library for Linux/ia64
|
||
******************************************
|
||
|
||
Please refer to the file INSTALL in the same directory as you found
|
||
this file for general information about configuring and compiling
|
||
glibc.
|
||
|
||
For general inquiries about glibc under Linux/ia64 please use the
|
||
following mailing list linux-ia64@linuxia64.org or one of the relevant
|
||
glibc mailing lists.
|
||
|
||
Recommended Tools for Compilation
|
||
=================================
|
||
|
||
In order for glibc-2.2 to build correctly on the ia64 you need at
|
||
least the following versions of the GNU tools (the :
|
||
|
||
* The Cygnus toolchain snapshot for the ia64 as of August 4
|
||
including the provided set of patches. It is however recommend
|
||
you use the October 24 toolchain snapshot or a more recent version.
|
||
|
||
OR alternatively you can try the following (the Cygnus toolchain is
|
||
the recommended solution):
|
||
|
||
* GCC and binutils, GAS and GNU LD out of CVS from
|
||
sources.redhat.com as of August 28, 2000 or later. The CVS tree
|
||
may require special patches to work properly on the ia64.
|
||
|
||
Configuring and compiling GNU Libc for Linux/ia64
|
||
=================================================
|
||
|
||
The library requires Linux kernel version 2.4.0-test4-000728 or
|
||
later to funtion properly. Besides that it support for debug libraries
|
||
is currently untested. Hence the following options
|
||
are required for configuring the library:
|
||
|
||
--disable-debug --enable-kernel=2.4.0
|
||
|
||
It is also important that you make sure the library picks up the
|
||
appropriate kernel header files, if you do not have recent enough
|
||
kernel headers in /usr/src/linux/include, you should use the
|
||
--with-headers=<path> option to specify the location.
|
||
|
||
As an example I personally use the following options to configure
|
||
the library:
|
||
|
||
--disable-debug
|
||
--disable-cvs
|
||
--enable-kernel=2.4.0
|
||
--host=ia64-linux
|
||
--enable-add-ons=yes
|
||
--prefix=/usr
|
||
--with-headers=/home/jes/linux/include
|
||
|
||
|
||
Good luck
|
||
|
||
Jes Sorensen <jes@linuxcare.com>,
|
||
November 14th, 2000
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
Version 2.1.3
|
||
|
||
* bug fixes
|
||
|
||
|
||
Version 2.1.2
|
||
|
||
* bug fixes
|
||
|
||
|
||
Version 2.1.1
|
||
|
||
* New ISO C 9x function _Exit, imaxabs, and imaxdiv are added.
|
||
|
||
* New xdr functions are added; some rpc functions are now 64bit clean.
|
||
|
||
* Fixed a number of bugs and memory leaks (especially in NIS+ code).
|
||
|
||
* Fixed known incompatibilities with glibc 2.0.
|
||
|
||
* New functions lock64, strchrnul, rawmemchr, getutmp and getutmpx.
|
||
|
||
* Optimized a number of functions (especially the ELF dynamic loader).
|
||
|
||
* Update timezone data files.
|
||
|
||
* lots of charmaps corrections
|
||
|
||
* some new locale definitions and charmaps
|
||
|
||
|
||
Version 2.1
|
||
|
||
* Richard Henderson corrected size of struct timeval on Linux/Alpha to
|
||
conform to POSIX member type requirements. Symbol versions have been
|
||
adjusted as needed within the library, and for direct use by applications,
|
||
but there is potential for problems if third-party libraries use
|
||
struct timeval as part of their interface. This does not present
|
||
a problem for X and other "essential" system libraries.
|
||
|
||
* An additional locale model to support C++ Standard Library locale
|
||
model and probably more was implemented by Ulrich Drepper.
|
||
|
||
* Eric Youngdale and Ulrich Drepper implemented versioning of objects on
|
||
symbol level.
|
||
|
||
* Miles Bader provided the `argp' function family to support hierachical
|
||
command line argument parsing, layered on top of getopt.
|
||
|
||
* strtod accepts new hexadecimal floating-point format from ISO C 9X.
|
||
|
||
* printf has two new specifiers %a and %A to print hexadecimal flaoting-point
|
||
numbers.
|
||
|
||
* scanf recognizes the %a and %A format for scanning floating point numbers.
|
||
|
||
* the new headers <stdint.h> and <inttypes.h> from ISO C 9X provides
|
||
information and interfaces for the available integer types.
|
||
|
||
* about 130 new math functions were added to implement the ISO C9x math
|
||
library.
|
||
|
||
* the new header <complex.h> contains definitions of the complex math
|
||
functions from ISO C 9X.
|
||
|
||
* the new header <tgmath.h> defines generic macros to use complex or
|
||
real valued functions.
|
||
|
||
* Thorsten Kukuk provided an implementation for NIS+, securelevel 0, 1 and 2.
|
||
|
||
* Andreas Jaeger provided a test suite for the math library.
|
||
|
||
* Mark Kettenis implemented the utmpx interface and an utmp daemon.
|
||
|
||
* Ulrich Drepper added character set conversion functions (iconv).
|
||
|
||
* Optimized string functions have been added.
|
||
|
||
* The localedata addon is now part of glibc.
|
||
|
||
* An implementation of profiling shared libraries was added by Ulrich Drepper.
|
||
|
||
* Thorsten Kukuk and Ulrich Drepper provided an implementation for a caching
|
||
daemon for NSS (nscd).
|
||
|
||
Missing a better place here are some numbers on improvements. Under
|
||
Linux 2.1.125 un-tar-ing the kernel sources takes
|
||
|
||
user system wall
|
||
|
||
using local files 12.19s 6.88s 22.91s
|
||
|
||
using NIS 13.92s 8.91s 26.34s
|
||
|
||
using NIS & nscd 10.37s 7.34s 25.30s
|
||
|
||
using NIS+ 27.57s 30.37s 640.46s
|
||
|
||
using NIS+ & nscd 10.25s 7.83s 26.51s
|
||
|
||
using NIS & old nscd [1] 13.83s 8.32s 29.60s
|
||
|
||
Keep in mind that non-namelookup related operations dominate above times.
|
||
It was just a common complain that using NIS+ unpacking the kernel is
|
||
horribly slow.
|
||
|
||
[1] The old nscd implementation is not available anymore since it was
|
||
distributed with glibc up to version 2.0.98 and thus is now replaced.
|
||
|
||
* Tim Waugh provided an implementation of the POSIX.2 wordexp function family.
|
||
|
||
* Mark Kettenis provided a Hesiod NSS module.
|
||
|
||
* The ELF dynamic loader knows how to process dynamic string tokens ($ORIGIN
|
||
and $PLATFORM) in RPATHs and similar strings (Ulrich Drepper).
|
||
|
||
* rcmd can now handle netgroups (Dick Streefland).
|
||
|
||
* A port to the ARM was contributed by Phil Blundell, Pat Beirne and Scott
|
||
Bambrough.
|
||
|
||
* Support for the IPv6 protocol has been added to the socket API, as per the
|
||
latest draft standards.
|
||
|
||
* Support for Linux 2.2 has been added.
|
||
|
||
* Interface changes relative to the latest 2.0.x release:
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
addseverity NEW: Unix98
|
||
alphasort64 NEW: LFS
|
||
argp_err_exit_status NEW: argp, GNU ext
|
||
argp_error NEW: argp, GNU ext
|
||
argp_failure NEW: argp, GNU ext
|
||
argp_help NEW: argp, GNU ext
|
||
argp_parse NEW: argp, GNU ext
|
||
argp_program_bug_address NEW: argp, GNU ext
|
||
argp_program_version NEW: argp, GNU ext
|
||
argp_program_version_hook NEW: argp, GNU ext
|
||
argp_state_help NEW: argp, GNU ext
|
||
argp_usage NEW: argp, GNU ext
|
||
authdes_create NEW: Secure RPC
|
||
authdes_getucred NEW: Secure RPC
|
||
authdes_pk_create NEW: Secure RPC
|
||
backtrace NEW: GNU ext.
|
||
backtrace_symbols NEW: GNU ext.
|
||
backtrace_symbols_fd NEW: GNU ext.
|
||
cacos NEW: ISO C 9x
|
||
cacosf NEW: ISO C 9x
|
||
cacosh NEW: ISO C 9x
|
||
cacoshf NEW: ISO C 9x
|
||
cacoshl NEW: ISO C 9x
|
||
cacosl NEW: ISO C 9x
|
||
capget NEW: kernel
|
||
capset NEW: kernel
|
||
carg NEW: ISO C 9x
|
||
cargf NEW: ISO C 9x
|
||
cargl NEW: ISO C 9x
|
||
casin NEW: ISO C 9x
|
||
casinf NEW: ISO C 9x
|
||
casinh NEW: ISO C 9x
|
||
casinhf NEW: ISO C 9x
|
||
casinhl NEW: ISO C 9x
|
||
casinl NEW: ISO C 9x
|
||
catan NEW: ISO C 9x
|
||
catanf NEW: ISO C 9x
|
||
catanh NEW: ISO C 9x
|
||
catanhf NEW: ISO C 9x
|
||
catanhl NEW: ISO C 9x
|
||
catanl NEW: ISO C 9x
|
||
cbc_crypt NEW: Secure RPC
|
||
ccos NEW: ISO C 9x
|
||
ccosf NEW: ISO C 9x
|
||
ccosh NEW: ISO C 9x
|
||
ccoshf NEW: ISO C 9x
|
||
ccoshl NEW: ISO C 9x
|
||
ccosl NEW: ISO C 9x
|
||
cexp NEW: ISO C 9x
|
||
cexpf NEW: ISO C 9x
|
||
cexpl NEW: ISO C 9x
|
||
cimag NEW: ISO C 9x
|
||
cimagf NEW: ISO C 9x
|
||
cimagl NEW: ISO C 9x
|
||
clearerr_locked REMOVED
|
||
clntunix_create NEW: sunrpc ext
|
||
clog NEW: ISO C 9x
|
||
clog10 NEW: ISO C 9x
|
||
clog10f NEW: ISO C 9x
|
||
clog10l NEW: ISO C 9x
|
||
clogf NEW: ISO C 9x
|
||
clogl NEW: ISO C 9x
|
||
conj NEW: ISO C 9x
|
||
conjf NEW: ISO C 9x
|
||
conjl NEW: ISO C 9x
|
||
cpow NEW: ISO C 9x
|
||
cpowf NEW: ISO C 9x
|
||
cpowl NEW: ISO C 9x
|
||
cproj NEW: ISO C 9x
|
||
cprojf NEW: ISO C 9x
|
||
cprojl NEW: ISO C 9x
|
||
creal NEW: ISO C 9x
|
||
crealf NEW: ISO C 9x
|
||
creall NEW: ISO C 9x
|
||
creat64 NEW: LFS
|
||
csin NEW: ISO C 9x
|
||
csinf NEW: ISO C 9x
|
||
csinh NEW: ISO C 9x
|
||
csinhf NEW: ISO C 9x
|
||
csinhl NEW: ISO C 9x
|
||
csinl NEW: ISO C 9x
|
||
csqrt NEW: ISO C 9x
|
||
csqrtf NEW: ISO C 9x
|
||
csqrtl NEW: ISO C 9x
|
||
ctan NEW: ISO C 9x
|
||
ctanf NEW: ISO C 9x
|
||
ctanh NEW: ISO C 9x
|
||
ctanhf NEW: ISO C 9x
|
||
ctanhl NEW: ISO C 9x
|
||
ctanl NEW: ISO C 9x
|
||
des_setparity NEW: Secure RPC
|
||
ecb_crypt NEW: Secure RPC
|
||
endutxent NEW: Unix98
|
||
exp10 NEW: ISO C 9x
|
||
exp10f NEW: ISO C 9x
|
||
exp10l NEW: ISO C 9x
|
||
exp2 NEW: ISO C 9x
|
||
exp2f NEW: ISO C 9x
|
||
exp2l NEW: ISO C 9x
|
||
fattach NEW: STREAMS
|
||
fdetach NEW: STREAMS
|
||
fdim NEW: ISO C 9x
|
||
fdimf NEW: ISO C 9x
|
||
fdiml NEW: ISO C 9x
|
||
feclearexcept NEW: ISO C 9x
|
||
fegetenv NEW: ISO C 9x
|
||
fegetexceptflag NEW: ISO C 9x
|
||
fegetround NEW: ISO C 9x
|
||
feholdexcept NEW: ISO C 9x
|
||
feof_locked REMOVED
|
||
feraiseexcept NEW: ISO C 9x
|
||
ferror_locked REMOVED
|
||
fesetenv NEW: ISO C 9x
|
||
fesetexceptflag NEW: ISO C 9x
|
||
fesetround NEW: ISO C 9x
|
||
fetestexcept NEW: ISO C 9x
|
||
feupdateenv NEW: ISO C 9x
|
||
fflush_locked REMOVED
|
||
ffsl NEW: GNU ext.
|
||
ffsll NEW: GNU ext.
|
||
fgetpos64 NEW: LFS
|
||
fgets_unlocked NEW: GNU ext.
|
||
fileno_locked REMOVED
|
||
fma NEW: ISO C 9x
|
||
fmaf NEW: ISO C 9x
|
||
fmal NEW: ISO C 9x
|
||
fmax NEW: ISO C 9x
|
||
fmaxf NEW: ISO C 9x
|
||
fmaxl NEW: ISO C 9x
|
||
fmin NEW: ISO C 9x
|
||
fminf NEW: ISO C 9x
|
||
fminl NEW: ISO C 9x
|
||
fmtmsg NEW: Unix98
|
||
fopen64 NEW: LFS
|
||
fputc_locked REMOVED
|
||
fputs_unlocked NEW: GNU ext.
|
||
fread_unlocked NEW: GNU ext.
|
||
freopen64 NEW: LFS
|
||
fseeko NEW: Unix98
|
||
fsetpos64 NEW: LFS
|
||
fstatfs64 NEW: LFS
|
||
fstatvfs NEW: Unix98
|
||
fstatvfs64 NEW: LFS
|
||
ftello NEW: Unix98
|
||
ftello64 NEW: LFS
|
||
ftruncate64 NEW: LFS
|
||
ftw64 NEW: LFS
|
||
fwrite_unlocked NEW: GNU ext.
|
||
gai_strerror NEW: IPv6
|
||
gamma_r REMOVED
|
||
gammaf_r REMOVED
|
||
gammal_r REMOVED
|
||
getchar_locked REMOVED
|
||
getdate NEW: Unix98
|
||
getdate_err NEW: Unix98
|
||
getdate_r NEW: GNU ext.
|
||
getmsg NEW: STREAMS
|
||
getnameinfo NEW: IPv6
|
||
getnetname NEW: Secure RPC
|
||
getpmsg NEW: STREAMS
|
||
getpt NEW: Unix98 PTY
|
||
getrlimit64 NEW: LFS
|
||
getutxent NEW: Unix98
|
||
getutxid NEW: Unix98
|
||
getutxline NEW: Unix98
|
||
glob64 NEW: GNU ext.
|
||
globfree64 NEW: GNU ext.
|
||
gnu_get_libc_release NEW: GNU ext.
|
||
gnu_get_libc_version NEW: GNU ext.
|
||
grantpt NEW: Unix98 PTY
|
||
host2netname NEW: Secure RPC
|
||
iconv NEW: iconv
|
||
iconv_close NEW: iconv
|
||
iconv_open NEW: iconv
|
||
if_freenameindex NEW: IPv6
|
||
if_indextoname NEW: IPv6
|
||
if_nameindex NEW: IPv6
|
||
if_nametoindex NEW: IPv6
|
||
in6addr_any NEW: IPv6
|
||
in6addr_loopback NEW: IPv6
|
||
inet6_isipv4mapped NEW: IPv6
|
||
isastream NEW: STREAMS
|
||
iswblank NEW: GNU ext.
|
||
key_decryptsession NEW: Secure RPC
|
||
key_decryptsession_pk NEW: Secure RPC
|
||
key_encryptsession NEW: Secure RPC
|
||
key_encryptsession_pk NEW: Secure RPC
|
||
key_gendes NEW: Secure RPC
|
||
key_get_conv NEW: Secure RPC
|
||
key_secretkey_is_set NEW: Secure RPC
|
||
key_setnet NEW: Secure RPC
|
||
key_setsecret NEW: Secure RPC
|
||
llrint NEW: ISO C 9x
|
||
llrintf NEW: ISO C 9x
|
||
llrintl NEW: ISO C 9x
|
||
llround NEW: ISO C 9x
|
||
llroundf NEW: ISO C 9x
|
||
llroundl NEW: ISO C 9x
|
||
log2 NEW: ISO C 9x
|
||
log2f NEW: ISO C 9x
|
||
log2l NEW: ISO C 9x
|
||
lrint NEW: ISO C 9x
|
||
lrintf NEW: ISO C 9x
|
||
lrintl NEW: ISO C 9x
|
||
lround NEW: ISO C 9x
|
||
lroundf NEW: ISO C 9x
|
||
lroundl NEW: ISO C 9x
|
||
lseek64 NEW: LFS
|
||
makecontext NEW: Unix98
|
||
mempcpy NEW: GNU ext.
|
||
mmap64 NEW: LFS
|
||
moncontrol REMOVED
|
||
modify_ldt NEW: kernel
|
||
nan NEW: ISO C 9x
|
||
nanf NEW: ISO C 9x
|
||
nanl NEW: ISO C 9x
|
||
nearbyint NEW: ISO C 9x
|
||
nearbyintf NEW: ISO C 9x
|
||
nearbyintl NEW: ISO C 9x
|
||
netname2host NEW: Secure RPC
|
||
netname2user NEW: Secure RPC
|
||
nexttoward NEW: ISO C 9x
|
||
nexttowardf NEW: ISO C 9x
|
||
nexttowardl NEW: ISO C 9x
|
||
nftw NEW: Unix98
|
||
nftw64 NEW: LFS
|
||
open64 NEW: LFS
|
||
passwd2des NEW: Secure RPC
|
||
pow10 NEW: GNU ext.
|
||
pow10f NEW: GNU ext.
|
||
pow10l NEW: GNU ext.
|
||
pread NEW: Unix98
|
||
pread64 NEW: LFS
|
||
printf_size NEW: GNU ext.
|
||
printf_size_info NEW: GNU ext.
|
||
profil_counter REMOVED
|
||
pthread_mutexattr_getkind_np REPLACED
|
||
pthread_mutexattr_setkind_np REPLACED
|
||
ptsname NEW: Unix98 PTY
|
||
ptsname_r NEW: Unix98 PTY
|
||
putc_locked REMOVED
|
||
putchar_locked REMOVED
|
||
putgrent NEW: GNU ext.
|
||
putmsg NEW: STREAMS
|
||
putpmsg NEW: STREAMS
|
||
pututxline NEW: Unix98
|
||
pwrite NEW: Unix98
|
||
pwrite64 NEW: LFS
|
||
readdir64 NEW: LFS
|
||
readdir64_r NEW: LFS
|
||
remquo NEW: ISO C 9x
|
||
remquof NEW: ISO C 9x
|
||
remquol NEW: ISO C 9x
|
||
round NEW: ISO C 9x
|
||
roundf NEW: ISO C 9x
|
||
roundl NEW: ISO C 9x
|
||
rtime NEW: GNU ext.
|
||
scalbln NEW: ISO C 9x
|
||
scalblnf NEW: ISO C 9x
|
||
scalblnl NEW: ISO C 9x
|
||
scandir64 NEW: LFS
|
||
sendfile NEW: kernel
|
||
setcontext NEW: Unix98
|
||
setrlimit64 NEW: LFS
|
||
setutxent NEW: Unix98
|
||
sighold NEW: Unix98
|
||
sigignore NEW: Unix98
|
||
sigqueue NEW: POSIX.1b
|
||
sigrelse NEW: Unix98
|
||
sigset NEW: POSIX.1b
|
||
sigtimedwait NEW: POSIX.1b
|
||
sigwaitinfo NEW: POSIX.1b
|
||
sincos NEW: GNU ext.
|
||
sincosf NEW: GNU ext.
|
||
sincosl NEW: GNU ext.
|
||
statfs64 NEW: LFS
|
||
statvfs NEW: Unix98
|
||
statvfs64 NEW: LFS
|
||
strcasestr NEW: GNU ext.
|
||
strtoimax NEW: ISO C 9x
|
||
strtoumax NEW: ISO C 9x
|
||
strverscmp NEW: GNU ext.
|
||
svcauthdes_stats NEW: Secure RPC
|
||
svcunix_create NEW: sunrpc etx
|
||
svcunixfd_create NEW: sunrpc ext
|
||
swapcontext NEW: Unix98
|
||
tcgetsid NEW: Unix98 PTY
|
||
tdestroy NEW: GNU ext.
|
||
tgamma NEW: ISO C 9x
|
||
tgammaf NEW: ISO C 9x
|
||
tgammal NEW: ISO C 9x
|
||
tmpfile64 NEW: LFS
|
||
trunc NEW: ISO C 9x
|
||
truncate64 NEW: LFS
|
||
truncf NEW: ISO C 9x
|
||
truncl NEW: ISO C 9x
|
||
umount2 NEW: kernel
|
||
unlockpt NEW: Unix98 PTY
|
||
updwtmpx NEW: Unix98
|
||
user2netname NEW: Secure RPC
|
||
utmpxname NEW: Unix98
|
||
versionsort NEW: GNU ext.
|
||
versionsort64 NEW: GNU ext.
|
||
waitid NEW: Unix98
|
||
wcscasecmp NEW: GNU ext.
|
||
wcsncasecmp NEW: GNU ext.
|
||
wcsnlen NEW: GNU ext.
|
||
wcstoimax NEW: ISO C 9x
|
||
wcstoll NEW: ISO C 9x
|
||
wcstoull NEW: ISO C 9x
|
||
wcstoumax NEW: ISO C 9x
|
||
wcswcs NEW: Unix98
|
||
wordexp NEW: POSIX.2
|
||
wordfree NEW: POSIX.2
|
||
write_profiling REMOVED
|
||
xdecrypt NEW: Secure RPC
|
||
xdr_authdes_cred NEW: Secure RPC
|
||
xdr_authdes_verf NEW: Secure RPC
|
||
xdr_cryptkeyarg NEW: Secure RPC
|
||
xdr_cryptkeyarg2 NEW: Secure RPC
|
||
xdr_cryptkeyres NEW: Secure RPC
|
||
xdr_getcredres NEW: Secure RPC
|
||
xdr_key_netstarg NEW: Secure RPC
|
||
xdr_key_netstres NEW: Secure RPC
|
||
xdr_keybuf NEW: Secure RPC
|
||
xdr_keystatus NEW: Secure RPC
|
||
xdr_netnamestr NEW: Secure RPC
|
||
xdr_sizeof NEW: Secure RPC
|
||
xdr_unixcred NEW: sunrpc ext
|
||
xencrypt NEW: Secure RPC
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
||
Version 2.0.6
|
||
|
||
* more bug fixes
|
||
|
||
|
||
Version 2.0.5
|
||
|
||
* more bug fixes
|
||
|
||
* inet_ntoa is thread-safe
|
||
|
||
* updwtmp is moved from libutil to libc
|
||
|
||
* rewrite of cbrt function
|
||
|
||
* update of timezone data
|
||
|
||
Version 2.0.4
|
||
|
||
* more bug fixes
|
||
|
||
Version 2.0.3
|
||
|
||
* more bug fixes
|
||
|
||
Version 2.0.2
|
||
|
||
* more bug fixes
|
||
|
||
* add atoll function
|
||
|
||
* fix complex problems in Berkeley DB code
|
||
|
||
* fix math functions
|
||
|
||
Version 2.0.1
|
||
|
||
* fixed lots of header problems (especially Linux/GNU specific)
|
||
|
||
* dynamic loader preserves all registers
|
||
|
||
* Roland McGrath provided support for handling of auxiliary objects in
|
||
the ELF dynamic loader.
|
||
|
||
* support for parallel builds is improved
|
||
|
||
Version 2.0
|
||
|
||
* GNU extensions are no longer declared by default. To enable them you
|
||
must define the macro `_GNU_SOURCE' in your program or compile with
|
||
`-D_GNU_SOURCE'.
|
||
|
||
* The library has changed from using GNU ld symbol aliases to using weak
|
||
symbols where available. The ELF object file format supports weak
|
||
symbols; GNU ld also supports weak symbols in the a.out format. (There
|
||
is also now support for other GNU ld extensions in ELF. Use the
|
||
`--with-elf' option to configure to indicate you have ELF, and
|
||
`--with-gnu-ld' if using GNU ld.) This change resulted in the deletion
|
||
of many files which contained only symbol aliases, reducing the size of
|
||
the source and the compiled library; many other files were renamed to
|
||
less cryptic names previously occupied by the symbol alias files.
|
||
There is a new header file <elf.h> for programs which operate on
|
||
files in the ELF format.
|
||
|
||
* Converted to Autoconf version 2, so `configure' has more options.
|
||
Run `configure --help' to see the details.
|
||
|
||
* The library can now be configured to build profiling, highly-optimized
|
||
(but undebuggable), and/or shared libraries (ELF with GNU ld only). The
|
||
`--enable-profile', `--enable-omitfp', and `--enable-shared' options to
|
||
`configure' enable building these extra libraries. The shared library is
|
||
built by default when using both ELF and GNU ld. When shared libraries
|
||
are enabled, the new library `-ldl' is available for arbitrary run-time
|
||
loading of shared objects; its interface is defined in <dlfcn.h>. The
|
||
new header file <link.h> gives access to the internals of the run-time
|
||
dynamic linker, `ld.so'. The shell script `ldd' is similar to the
|
||
application of same name on other systems and it provides information
|
||
about dynamically linked binaries.
|
||
|
||
* The C library now provides the run-time support code for profiling
|
||
executables compiled with `-pg'. Programs can control the profiling code
|
||
through the interface in <sys/gmon.h>. The `gmon.out' files written by
|
||
the GNU C library can be read only by GNU `gprof' (from GNU binutils);
|
||
the support for this file format was contributed by David Mosberger-Tang.
|
||
|
||
* The math code has been replaced with a math library based on fdlibm from
|
||
Sun, and modified by JT Conklin and Ulrich Drepper with i387 support, by
|
||
Ian Taylor with `float' functions and by Ulrich Drepper with `long double'
|
||
functions. The math functions now reside in a separate library, so
|
||
programs using them will need to use `-lm' their linking commands.
|
||
|
||
* John C. Bowman contributed optimized ix87 assembler inline functions.
|
||
|
||
* Ulrich Drepper has contributed support for an `/etc/nsswitch.conf'
|
||
mechanism similar to that found in Solaris 2. This is now used for the
|
||
group, passwd, hosts, networks, services, protocols, rpc, ethers,
|
||
shadow, netgroup, publickey, and alias databases. The `nsswitch.conf'
|
||
file controls what services are used for each individual database. This
|
||
works by loading shared libraries with names specified in `nsswitch.conf',
|
||
so service modules can be changed or added at any time without even
|
||
relinking any program. Currently there are the file, db, and NIS based
|
||
NSS services available.
|
||
|
||
* The new functions `strtoq' and `strtouq' parse integer values from
|
||
strings, like `strtol' and `strtoul', but they return `long long int' and
|
||
`unsigned long long int' values, respectively (64-bit quantities).
|
||
|
||
* The new functions `strtof' and `strtold' parse floating-point values from
|
||
strings, like `strtod', but they return `float' and `long double' values,
|
||
respectively (on some machines `double' and `long double' are the same).
|
||
|
||
* Ulrich Drepper has contributed new implementations of the floating-point
|
||
printing and reading code used in the `printf' family of functions and
|
||
`strtod', `strtof', and `strtold'. These new functions are perfectly
|
||
accurate, and much faster than the old ones.
|
||
|
||
* The implementation of the POSIX locale model was completely rewritten by
|
||
Ulrich Drepper. This includes the new programs `localedef' and `locale'
|
||
to compile the POSIX locale definition.
|
||
|
||
* The former dummy implementations of the strcoll and strxfrm function are
|
||
now replaced by fully functional code contributed by Ulrich Drepper. The
|
||
collation information comes from the POSIX locale definitions.
|
||
|
||
* The new header <langinfo.h> defines an interface for accessing
|
||
various locale-dependent data (using the locale chosen with `setlocale').
|
||
|
||
* Ulrich Drepper has contributed a new suite of functions for operation on
|
||
wide-character and multibyte-character strings, in <wchar.h>;
|
||
and classification and case conversion of wide characters, in <wctype.h>.
|
||
These new functions are conforming to the ISO C, Amendement 1 specification.
|
||
|
||
* There is now a second implementation of the standard I/O library available.
|
||
It comes from GNU libg++ as was written by Per Bothner, heavily modified
|
||
by Hongjiu Lu and made thread safe by Ulrich Drepper.
|
||
|
||
* You can now use positional parameter specifications in format strings
|
||
for the `printf' and `scanf' families of functions. For example,
|
||
`printf ("Number %2$d, Mr %1$s\n", "Jones", 6);'' prints
|
||
``Number 6, Mr Jones''. This is mainly useful when providing different
|
||
format strings for different languages, whose grammars may dictate
|
||
different orderings of the values being printed. To support this
|
||
feature, the interface for `register_printf_handler' has changed; see
|
||
the header file <printf.h> for details.
|
||
|
||
* The `printf' and `scanf' families of functions now understand a new
|
||
formatting flag for numeric conversions: the ' flag (e.g. %'d or %'f) says
|
||
to group numbers as indicated by the locale; for `scanf' and friends, this
|
||
says to accept as valid only a number with all the proper grouping
|
||
separators in the right places. In the default "C" locale, numbers are
|
||
not grouped; but locales for specific countries will define the usual
|
||
conventions (i.e. separate thousands with `,' in the US locale).
|
||
|
||
* The pgrp functions have been regularized, slightly incompatibly but much
|
||
less confusingly. The core functions are now `getpgid' and `setpgid',
|
||
which take arguments for the PID to operate on; the POSIX.1 `getpgrp' (no
|
||
argument) and BSD `setpgrp' (identical to `setpgid') functions are
|
||
provided for compatibility. There is no longer an incompatible `getpgrp'
|
||
with an argument declared under _BSD_SOURCE; no BSD code uses it.
|
||
|
||
* The new header file <fts.h> and suite of functions simplify programs that
|
||
operate on directory trees. This code comes from 4.4 BSD.
|
||
|
||
* The resolver code has been updated from the BIND 4.9.5-P1 release.
|
||
Parts of the code were heavily modified by Ulrich Drepper to fit in the
|
||
NSS scheme used in glibc.
|
||
|
||
* There is a new malloc debugging hook `__memalign_hook'.
|
||
|
||
* There are new typedefs `ushort' for `unsigned short int' and `uint' for
|
||
`unsigned int' in <sys/types.h>. These are for compatibility only and
|
||
their use is discouraged.
|
||
|
||
* The `-lmcheck' library to enable standard malloc debugging hooks is now
|
||
done differently, so that it works even without GNU ld.
|
||
|
||
* New function `euidaccess' checks allowed access to a file like `access',
|
||
but using the effective IDs instead of the real IDs.
|
||
|
||
* The time zone data files have been updated for the latest and greatest
|
||
local time conventions of the countries of the world.
|
||
|
||
* The new function `dirfd' extracts the file descriptor used by a DIR stream;
|
||
see <dirent.h>.
|
||
|
||
* The new functions `ecvt', `fcvt', and `gcvt' provide an obsolete interface
|
||
for formatting floating-point numbers. They are provided only for
|
||
compatibility; new programs should use `sprintf' instead. There are
|
||
also equivalent function for the `long double' floating-point type and
|
||
all functions also exist in a reentrant form.
|
||
|
||
* The new auxiliary library `-lutil' from 4.4 BSD contains various
|
||
functions for maintaining the login-record files (primarily of use to
|
||
system programs such as `login'), and convenient functions for
|
||
allocating and initializing a pseudo-terminal (pty) device.
|
||
|
||
* Ulrich Drepper has contributed new support for System V style
|
||
shared memory and IPC on systems that support it.
|
||
|
||
* Ulrich Drepper has contributed several miscellaneous new functions found
|
||
in System V: The `hsearch' family of functions provide an effective
|
||
implementation of hash tables; `a64l' and `l64a' provide a very simple
|
||
binary to ASCII mapping; `drand48' and friends provide a 48-bit random
|
||
number generator.
|
||
|
||
* Ulrich Drepper has contributed new reentrant counterparts for the
|
||
`random' and `hsearch' families of functions; `random_r', `hsearch_r', etc.
|
||
|
||
* Ulrich Drepper has contributed new, highly-optimized versions of several
|
||
string functions for the i486/Pentium family of processors.
|
||
|
||
* Ulrich Drepper has updated the Linux-specific code, based largely
|
||
on work done in Hongjiu Lu's version of GNU libc for Linux.
|
||
The GNU library now supports Linux versions 2.0.10 and later,
|
||
using the ELF object file format (i[3456]86-*-linux).
|
||
|
||
* Andreas Schwab has ported the C library to Linux/m68k (m68k-*-linux).
|
||
|
||
* David Mosberger-Tang and Richard Henderson have ported the C library
|
||
to Linux/Alpha (alpha-*-linux). Richard Henderson contributed the
|
||
dynamic linking support for ELF/Alpha.
|
||
|
||
* Richard Henderson contributed several Alpha optimized assembler function
|
||
for arithmetic and string handling.
|
||
|
||
* Ulrich Drepper has contributed a new set of message catalog functions to
|
||
support multiple languages using the <libintl.h> interface, for use with
|
||
his new package GNU gettext. Translation volunteers have contributed
|
||
catalogs of the library's messages in Spanish, German, and Korean.
|
||
|
||
* For compatibility with XPG4, Ulrich Drepper has contributed the `gencat'
|
||
program and the `catgets' function for reading the catalog files it
|
||
creates. (The <libintl.h> interface is preferred; we include the
|
||
<nl_types.h> interface using `catgets' only for source compatibility with
|
||
programs already written to use it.)
|
||
|
||
* New header file <values.h> gives SVID-compatible names for <limits.h>
|
||
constants.
|
||
|
||
* Various new macros, declarations, and small header files for compatibility
|
||
with 4.4 BSD.
|
||
|
||
* New function `group_member' is a convenient way to check if a process has
|
||
a given effective group ID.
|
||
|
||
* When using GCC 2.7 and later, the socket functions are now declared in a
|
||
special way so that passing an argument of type `struct sockaddr_in *',
|
||
`struct sockaddr_ns *', or `struct sockaddr_un *' instead of the generic
|
||
`struct sockaddr *' type, does not generate a type-clash warning.
|
||
|
||
* New function `error' declared in header file <error.h> is a convenient
|
||
function for printing error messages and optionally exiting; this is the
|
||
canonical function used in GNU programs. The new functions `err', `warn',
|
||
and friends in header file <err.h> are the canonical 4.4 BSD interface for
|
||
doing the same thing.
|
||
|
||
* The <glob.h> interface has several new flags from 4.4 BSD that extend the
|
||
POSIX.2 `glob' function to do ~ and {...} expansion.
|
||
|
||
* New function `unsetenv' complements `setenv' for compatibility with 4.4 BSD.
|
||
`clearenv' which is used in POSIX.9 is also available.
|
||
|
||
* New function `getsid' returns session ID number on systems that support it.
|
||
|
||
* We have incorporated the 4.4 BSD `db' library (version 1.85). New header
|
||
files <db.h> and <mpool.h> provide a rich set of functions for several
|
||
types of simple databases stored in memory and in files, and <ndbm.h> is
|
||
an old `ndbm'-compatible interface using the `db' functions. Link with
|
||
`-ldb' to get these functions.
|
||
|
||
* New macro `strdupa' copies a string like `strdup', but uses local stack
|
||
space from `alloca' instead of dynamic heap space from `malloc'.
|
||
|
||
* New function `strnlen' is like `strlen' but searches only a given maximum
|
||
number of characters for the null terminator. `stpncpy', `strndup' and
|
||
`strndupa' are similar variants for the `stpcpy', `strdup' and `strdupa'
|
||
function.
|
||
|
||
* New function `statfs' in header <sys/statfs.h>.
|
||
|
||
* The new <argz.h> and <envz.h> interfaces contributed by Miles Bader
|
||
provide convenient functions for operating on blocks of null-terminated
|
||
strings.
|
||
|
||
* A new suite of functions in <utmp.h> handle all the details of reading
|
||
and writing the utmp file.
|
||
|
||
* An implementation of the NIS/YP(tm) based NSS service was contributed by
|
||
Thorsten Kukuk.
|
||
|
||
* Paul Eggert and Ulrich Drepper modified the `strftime' function to be
|
||
completely POSIX compliant and also implemented the extended functionality
|
||
to handle alternate digit representation and alternate era date formats.
|
||
|
||
* Ulrich Drepper provided an implementation of the `strptime' function
|
||
defined in XPG4.2 which transforms a string into a `struct tm' value.
|
||
|
||
* Paul Eggert provided the tzselect shell script as part of the timezone
|
||
code. The shell script makes it easy to select the correct timezone
|
||
specification.
|
||
|
||
* The implementation of the malloc family of functions is completely replaced
|
||
by a new implementation by Doug Lea with many improvements by Wolfram Gloger.
|
||
The implementation uses the mmap function (if available) and it is
|
||
optimized for the use in multi threaded programs.
|
||
|
||
* Ulrich Drepper contributed a MD5 "encryption" for the crypt family of
|
||
functions. This new functionality is usable by specifying a special
|
||
salt string and it is compatible with implementation on *BSD systems.
|
||
|
||
* Lots of functions from the XPG4.2 standard were added by Ulrich Drepper:
|
||
`getsubopt' to handle second level command line options, `bsd_signal'
|
||
to access BSD style `signal' functionality, the obsolete `regexp' style
|
||
expression matcher.
|
||
|
||
* the `lchown' function is available on system which support this
|
||
functionality.
|
||
|
||
* The implementation of the shadow password handling function was contributed
|
||
by Ulrich Drepper.
|
||
|
||
* David Mosberger-Tang changed the SunRPC implementation to be 64bit safe.
|
||
|
||
* POSIX.1g support was added. The <sys/select.h> header is available,
|
||
`isfdtype' and `pselect' are implemented. Craig Metz contributed an
|
||
implementation of `getaddrinfo'.
|
||
|
||
Version 1.09
|
||
|
||
* For cross-compilation you should now set `BUILD_CC' instead of `HOST_CC'.
|
||
|
||
* New header file <fstab.h> and new functions `getfsspec', `getfsent' and
|
||
friends, for parsing /etc/fstab. This code comes from 4.4 BSD.
|
||
|
||
* The new function `daemon' from 4.4 BSD is useful for server programs that
|
||
want to put themselves in the background.
|
||
|
||
* Joel Sherrill has contributed support for several standalone boards that
|
||
run without an operating system.
|
||
|
||
* `printf', `scanf' and friends now accept a `q' type modifier for long
|
||
long int as well as `ll'. Formats using these might be `%qu' or `%lld'.
|
||
|
||
* All of the code taken from BSD (notably most of the math and networking
|
||
routines) has been updated from the BSD 4.4-Lite release.
|
||
|
||
* The resolver code has been updated from the BIND-4.9.3-BETA9 release.
|
||
|
||
* The new functions `getdomainname' and `setdomainname' fetch or change the
|
||
YP/NIS domain name. These are system calls which exist on systems which
|
||
have YP (aka NIS).
|
||
|
||
* The time zone data files have been updated for the latest international
|
||
conventions.
|
||
|
||
* The SunRPC programs `portmap' and `rpcinfo' are now installed in
|
||
$(sbindir) (usually /usr/local/sbin) instead of $(bindir).
|
||
|
||
Version 1.08
|
||
|
||
* The C library now includes support for Sun RPC, from Sun's free
|
||
RPCSRC-4.0 distribution. The `portmap', `rpcinfo', and `rpcgen' programs
|
||
are included. (There is still no support for YP.)
|
||
|
||
* Tom Quinn has contributed a port of the C library to SGI machines running
|
||
Irix 4 (mips-sgi-irix4).
|
||
|
||
* The new `lockf' function is a simplified interface to the locking
|
||
facilities of `fcntl', included for compatibility.
|
||
|
||
* New time functions `timegm', `timelocal', and `dysize' for compatibility.
|
||
|
||
* New header file <sys/timeb.h> and new function `ftime' for compatibility.
|
||
|
||
* New header files <poll.h> and <sys/poll.h> and new function `poll' for
|
||
compatibility.
|
||
|
||
* The error message printed by `assert' for a failed assertion now includes
|
||
the name of the program (if using GNU ld) and the name of the calling
|
||
function (with versions of GCC that support this).
|
||
|
||
* The `psignal' function is now declared in <signal.h>, not <stdio.h>.
|
||
|
||
* The library now includes the <sys/mman.h> header file and memory
|
||
management functions `mmap', `munmap', `mprotect', `msync', and
|
||
`madvise', on systems that support those facilities.
|
||
|
||
* The interface for `mcheck' has changed slightly: the function called to
|
||
abort the program when an allocation inconsistency is detected now takes
|
||
an argument that indicates the type of failure. The new function
|
||
`mprobe' lets you request a consistency check for a particular block at
|
||
any time (checks are normally done only when you call `free' or `realloc'
|
||
on a block).
|
||
|
||
* It is now possible to easily cross-compile the C library, building on one
|
||
system a library to run on another machine and/or operating system. All
|
||
you need to do is set the variable `HOST_CC' in `configparms' to the
|
||
native compiler for programs to run on the machine you are building on (a
|
||
few generator programs are used on Unix systems); set `CC' to the
|
||
cross-compiler.
|
||
|
||
* The new function `fexecve' (only implemented on the GNU system) executes
|
||
a program file given a file descriptor already open on the file.
|
||
|
||
Version 1.07
|
||
|
||
* Brendan Kehoe has contributed most of a port to the DEC Alpha
|
||
running OSF/1 (alpha-dec-osf1). He says it is 75% complete.
|
||
|
||
* You can set the variable `libprefix' in `configparms' to specify a prefix
|
||
to be prepended to installed library files; this makes it easy to install
|
||
the GNU C library to be linked as `-lgnuc' or whatever.
|
||
|
||
* The new `stpncpy' is a cross between `stpcpy' and `strncpy': It
|
||
copies a limited number of characters from a string, and returns the
|
||
address of the last character written.
|
||
|
||
* You no longer need to check for whether the installed `stddef.h' is
|
||
compatible with the GNU C library. configure now checks for you.
|
||
|
||
* You can now define a per-stream `fileno' function to convert the
|
||
stream's cookie into an integral file descriptor.
|
||
|
||
* ``malloc (0)'' no longer returns a null pointer. Instead, it
|
||
allocates zero bytes of storage, and returns a unique pointer which
|
||
you can pass to `realloc' or `free'. The behavior is undefined if
|
||
you dereference this pointer.
|
||
|
||
* The C library now runs on Sony NEWS m68k machines running either
|
||
NewsOS 3 or NewsOS 4.
|
||
|
||
* The new `syscall' function is a system-dependent primitive function
|
||
for invoking system calls. It has the canonical behavior on Unix
|
||
systems, including unreliable return values for some calls (such as
|
||
`pipe', `fork' and `getppid').
|
||
|
||
* The error code `EWOULDBLOCK' is now obsolete; it is always defined
|
||
to `EAGAIN', which is the preferred name. On systems whose kernels
|
||
use two distinct codes, the C library now translates EWOULDBLOCK to
|
||
EAGAIN in every system call function.
|
||
|
||
Version 1.06
|
||
|
||
* The GNU C Library Reference Manual is now distributed with the library.
|
||
`make dvi' will produce a DVI file of the printed manual.
|
||
`make info' will produce Info files that you can read on line using C-h i
|
||
in Emacs or the `info' program.
|
||
Please send comments on the manual to bug-glibc-manual@gnu.org.
|
||
|
||
* The library now supports SVR4 on i386s (i386-unknown-sysv4).
|
||
|
||
* Brendan Kehoe has contributed a port to Sun SPARCs running Solaris 2.
|
||
|
||
* Jason Merrill has contributed a port to the Sequent Symmetry running
|
||
Dynix version 3 (i386-sequent-dynix).
|
||
|
||
* The library has been ported to i386s running SCO 3.2.4 (also known as SCO
|
||
ODT 2.0; i386-unknown-sco3.2.4) or SCO 3.2 (i386-unknown-sco3.2).
|
||
|
||
* New function `memory_warnings' lets you arrange to get warnings when
|
||
malloc is running out of memory to allocate, like Emacs gives you.
|
||
|
||
* The C library now contains the relocating allocator used in Emacs 19 for
|
||
its editing buffers. This allocator (ralloc) minimizes allocation
|
||
overhead and fragmentation by moving allocated regions around whenever it
|
||
needs to. You always refer to a ralloc'd region with a "handle" (a
|
||
pointer to a pointer--an object of type `void **').
|
||
|
||
* There is a new `printf' format: `%m' gives you the string corresponding
|
||
to the error code in `errno'.
|
||
|
||
* In `scanf' formats, you can now use `%as' or `%a[' to do the normal `%s'
|
||
or `%[' conversion, but instead of filling in a fixed-sized buffer you
|
||
pass, the `a' modifier says to fill in a `char **' you pass with a
|
||
malloc'd string.
|
||
|
||
* The `fnmatch' function supports the new flag bits `FNM_LEADING_DIR' and
|
||
`FNM_CASEFOLD'. `FNM_LEADING_DIR' lets a pattern like `foo*' match a
|
||
name like `foo/bar'. `FNM_CASEFOLD' says to ignore case in matching.
|
||
|
||
* `mkstemp' is a traditional Unix function to atomically create and open a
|
||
uniquely-named temporary file.
|
||
|
||
Version 1.05
|
||
|
||
* The standard location for the file that says what the local timezone is
|
||
has changed again. It is now `/usr/local/etc/localtime' (or more
|
||
precisely, `${prefix}/etc/localtime') rather than `/etc/localtime'.
|
||
|
||
* The distribution no longer contains any files with names longer than 14
|
||
characters.
|
||
|
||
* `struct ttyent' has two new flag bits: TTY_TRUSTED and TTY_CONSOLE.
|
||
These are set by the new `trusted' and `console' keywords in `/etc/ttys'.
|
||
|
||
* New functions `ttyslot' and `syslog' from 4.4 BSD.
|
||
|
||
Version 1.04
|
||
|
||
* The configuration process has changed quite a bit. The `configure'
|
||
script is now used just like the configuration scripts for other GNU
|
||
packages. The `sysdeps' directory hierarchy is much rearranged.
|
||
The file `INSTALL' explains the new scheme in detail.
|
||
|
||
* The header files no longer need to be processed into ANSI C and
|
||
traditional C versions. There is just one set of files to install, and
|
||
it will work with ANSI or old C compilers (including `gcc -traditional').
|
||
|
||
* Brendan Kehoe and Ian Lance Taylor have ported the library to the
|
||
MIPS DECStation running Ultrix 4.
|
||
|
||
* The Sun 4 startup code (crt0) can now properly load SunOS 4 shared libraries.
|
||
Tom Quinn contributed the initial code. The GNU C library can NOT yet be
|
||
made itself into a shared library.
|
||
|
||
* Yet further improved support for the i386, running 4.3 BSD-like systems
|
||
(such as Mach 3 with the Unix single-server), or System V.
|
||
|
||
* New function `strncasecmp' to do case-insensitive string comparison
|
||
with limited length.
|
||
|
||
* New function `strsep' is a reentrant alternative to `strtok'.
|
||
|
||
* New functions `scandir' and `alphasort' for searching directories.
|
||
|
||
* New function `setenv' is a better interface to `putenv'.
|
||
|
||
* Ian Lance Taylor has contributed an implementation of the SVID `ftw'
|
||
function for traversing a directory tree.
|
||
|
||
* The GNU obstack package is now also part of the C library.
|
||
The new function `open_obstack_stream' creates a stdio stream that
|
||
writes onto an obstack; `obstack_printf' and `obstack_vprintf' do
|
||
formatted output directly to an obstack.
|
||
|
||
* Miscellaneous new functions: reboot, nice, sigaltstack (4.4 BSD only),
|
||
cfmakeraw, getusershell, getpass, swab, getttyent, seteuid, setegid.
|
||
|
||
* `FNM_FILE_NAME' is another name for `FNM_PATHNAME', used with `fnmatch'.
|
||
|
||
* The new functions `strfry' and `memfrob' do mysterious and wonderful
|
||
things to your strings.
|
||
|
||
* There are some new test programs: test-fseek, testmb, and testrand.
|
||
|
||
* Some work has been done to begin porting the library to 4.4 BSD and Linux.
|
||
These ports are not finished, but are a good starting place for really
|
||
supporting those systems.
|
||
|
||
* `/etc/localtime' is now the standard location for the file that says what
|
||
the local timezone is, rather than `/usr/local/lib/zoneinfo/localtime'.
|
||
This follows the general principle that `/etc' is the place for all local
|
||
configuration files.
|
||
|
||
* The C library header files now use `extern "C"' when used by the C++
|
||
compiler, so the C library should now work with C++ code.
|
||
|
||
* The header file <bstring.h> is gone. <string.h> now declares bcopy,
|
||
bcmp, bzero, and ffs. (Update: nowadays these functions are declared
|
||
in <strings.h>.)
|
||
|
||
* Mike Haertel (of GNU e?grep and malloc fame) has written a new sorting
|
||
function which uses the `merge sort' algorithm, and is said to be
|
||
significantly faster than the old GNU `qsort' function. Merge sort is
|
||
now the standard `qsort' function. The new algorithm can require a lot
|
||
of temporary storage; so, the old sorting function is called when the
|
||
required storage is not available.
|
||
|
||
* The C library now includes Michael Glad's Ultra Fast Crypt, which
|
||
provides the Unix `crypt' function, plus some other entry points.
|
||
|
||
* The code and header files taken from 4.4 BSD have been updated with the
|
||
latest files released from Berkeley.
|
||
|
||
----------------------------------------------------------------------
|
||
Copyright information:
|
||
|
||
Copyright (C) 1992-1999,2000,2001,2002,2003,2004,2005,2006
|
||
Free Software Foundation, Inc.
|
||
|
||
Permission is granted to anyone to make or distribute verbatim copies
|
||
of this document as received, in any medium, provided that the
|
||
copyright notice and this permission notice are preserved,
|
||
thus giving the recipient permission to redistribute in turn.
|
||
|
||
Permission is granted to distribute modified versions
|
||
of this document, or of portions of it,
|
||
under the above conditions, provided also that they
|
||
carry prominent notices stating who last changed them.
|
||
|
||
Local variables:
|
||
version-control: never
|
||
End:
|