Provide additional interfaces and documentation for version-etc module.
[gnulib.git] / ChangeLog
index e845591..7405482 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,287 @@
+2009-06-25  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Provide additional interfaces and documentation for version-etc
+       module.
+
+       * lib/version-etc.c (version_etc_arn, version_etc_ar): New
+       interfaces.
+       * lib/version-etc.h (version_etc_arn, version_etc_ar): New
+       prototypes.
+
+2009-06-24  Bruno Haible  <bruno@clisp.org>
+
+       * m4/lib-link.m4 (AC_LIB_HAVE_LINKFLAGS): Fix description of
+       HAVE_LIB${NAME} macro.
+       Reported by Sam Steingold <sds@gnu.org>.
+
+2009-06-23  Simon Josefsson  <simon@josefsson.org>
+
+       * modules/hash-tests (test_hash_LDADD): Link to libintl when
+       needed.
+
+2009-06-21  Bruno Haible  <bruno@clisp.org>
+
+       Make two consecutive identical invocations of AC_LIB_HAVE_LINKFLAGS
+       work.
+       * m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Reset HAVE_LIB${NAME}
+       together with LIB${NAME}, LTLIB${NAME}.
+       Reported by Sam Steingold <sds@gnu.org>.
+
+2009-06-20  Jim Meyering  <meyering@redhat.com>
+
+       tests: make sc_require_test_exit_idiom more generic
+       * top/maint.mk (Exit_witness_file): New overridable variable.
+       (sc_require_test_exit_idiom): Don't hard-code tests/test-lib.sh.
+       Relax test for /^Exit \$fail$$/ to just /^Exit ./.
+
+2009-06-19  Jim Meyering  <meyering@redhat.com>
+
+       hash: reverse order of src/dst parameters in an internal interface
+       * lib/hash.c (transfer_entries): Reverse order of parameters to
+       put DST before SRC.  Adjust callers.
+
+       tests: test-hash: avoid wholesale duplication
+       * tests/test-hash.c (main): Don't copy/paste a 60-line loop.
+       Instead, use a loop and add a single conditional.
+
+       tests: test-hash: allow seed selection via a command line argument
+       * tests/test-hash.c (get_seed): New function.
+       (main): Use it.
+
+2009-06-19  Eric Blake  <ebb9@byu.net>
+
+       hash: avoid memory leak on allocation failure
+       * lib/hash.c: (hash_rehash): Avoid memory leak on allocation
+       failure.  Factor repeated algorithm...
+       (transfer_entries): ...into new helper routine.
+       (hash_delete): React to hash_rehash return value.
+
+       hash: reduce memory pressure in hash_rehash no-op case
+       * lib/hash.c (next_prime): Avoid overflow.
+       (hash_initialize): Factor bucket size computation...
+       (compute_bucket_size): ...into new helper function.
+       (hash_rehash): Use new function and open coding to reduce memory
+       pressure, and avoid a memory leak in USE_OBSTACK code.
+       Reported by Jim Meyering.
+
+2009-06-18  Eric Blake  <ebb9@byu.net>
+
+       hash: make rotation more obvious
+       * modules/hash (Depends-on): Add bitrotate and stdint.
+       * lib/bitrotate.h (rotl_sz, rotr_sz): New functions.
+       * lib/hash.c (headers): Drop limits.h.  Add stdint.h.
+       (SIZE_MAX): Rely on headers for definition.
+       (hash_string) [USE_DIFF_HASH]: Use rotl_sz.
+       (raw_hasher): Use rotr_sz.
+       Suggested by Jim Meyering.
+
+       hash: fix memory leak in last patch
+       * lib/hash.c (hash_rehash): Avoid memory leak.
+
+       hash: avoid no-op rehashing
+       * lib/hash.c (hash_rehash): Recognize useless rehash attempts.
+
+       hash: provide default callback functions
+       * lib/hash.c (raw_hasher, raw_comparator): New functions.
+       (hash_initialize): Use them as defaults.
+       * tests/test-hash.c (main): Test this.
+
+       hash: minor optimization
+       * lib/hash.c (hash_lookup, hash_find_entry): Avoid function call
+       when possible.
+       (hash_initialize): Document this promise.
+       (hash_do_for_each, hash_clear, hash_free): Use C89 syntax.
+       * tests/test-hash.c (hash_compare_strings): Test this.
+
+2009-06-18  Bruno Haible  <bruno@clisp.org>
+
+       * m4/strstr.m4 (gl_FUNC_STRSTR): Skip linear time test if strstr is
+       going to be replaced anyway.
+
+2009-06-18  Bruno Haible  <bruno@clisp.org>
+
+       * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): Invoke AC_LIBOBJ only
+       in one place.
+       (gl_FUNC_STRCASESTR): Skip linear time test if strcasestr is going to
+       be replaced anyway.
+
+2009-06-18  Eric Blake  <ebb9@byu.net>
+
+       hash: check for resize before insertion
+       * lib/hash.c (hash_insert): Check whether bucket usage exceeds
+       threshold before insertion, so that a pathological hash_rehash
+       that fills every bucket can still trigger another rehash.
+
+2009-06-18  Jim Meyering  <meyering@redhat.com>
+
+       hash-tests: add a loop around the small tests
+       * tests/test-hash.c (main): Repeat small tests with selected
+       small initial table sizes.
+
+2009-06-17  Eric Blake  <ebb9@byu.net>
+
+       hash: minor cleanups
+       * lib/hash.h (hash_entry): Make opaque, by moving...
+       * lib/hash.c (hash_entry): ...here.
+       (hash_insert): Clarify restrictions on what can be inserted.
+       (hash_get_next): Clarify when it is safe to remove an element
+       during traversal.
+       (check_tuning): Skip verification when tuning is known safe.
+       (hash_initialize): Clarify restrictions on tuning.
+
+2009-06-17  Jim Meyering  <jim@meyering.net>
+       and Eric Blake  <ebb9@byu.net>
+
+       hash-tests: new module
+       * modules/hash-tests: New file.
+       * tests/test-hash.c: New file.
+
+2009-06-17  Eric Blake  <ebb9@byu.net>
+
+       strstr-simple: document new module
+       * MODULES.html.sh: Document new module.
+
+       strstr, strcasestr: replace on platforms with broken memchr
+       * modules/strstr: Split into...
+       * modules/strstr-simple: ...new module that does not care about
+       performance, but does care about glibc bug.
+       * m4/strstr.m4 (gl_FUNC_STRSTR): Split...
+       (gl_FUNC_STRSTR_SIMPLE): ...into new macro, which replaces strstr
+       if platform memchr is broken, per Debian bug 521737.
+       * m4/strcasestr.m4 (gl_FUNC_STRCASESTR_SIMPLE): React to broken
+       memchr.
+       * m4/memchr.m4 (gl_FUNC_MEMCHR): Only expand once.
+       * doc/posix-functions/strstr.texi (strstr): Document the fix.
+       * doc/glibc-functions/strcasestr.texi (strcasestr): Likewise.
+       * modules/mountlist (Depends-on): Add strstr-simple.
+       * modules/gen-uni-tables (Depends-on): Likewise.
+       * modules/argz (Depends-on): Add strstr.
+
+2009-06-17  Bruno Haible  <bruno@clisp.org>
+
+       * modules/posix_spawn-internal (Depends-on): Add errno.
+
+2009-06-17  Bruno Haible  <bruno@clisp.org>
+
+       Define missing ESTALE on Interix 3.5.
+       * lib/errno.in.h (ESTALE): Assign a value if missing.
+       * lib/strerror.c (rpl_strerror): Handle missing ESTALE and ECANCELED.
+       * m4/errno_h.m4 (gl_HEADER_ERRNO_H): Also test whether ESTALE is
+       missing.
+       * doc/posix-headers/errno.texi: Mention the Interix bug.
+       Reported by Jay Krell <jay.krell@cornell.edu> via Eric Blake.
+
+2009-06-15  Eric Blake  <ebb9@byu.net>
+
+       memchr, memchr2: add valgrind exception
+       * lib/memchr.valgrind: New file.
+       * lib/memchr2.valgrind: New file.
+       * modules/memchr (Files): Distribute valgrind file.
+       * modules/memchr2 (Files): Likewise.
+
+       docs: memchr is no longer obsolete
+       * MODULES.html.sh: Move memchr from obsolete to string.h section.
+       * lib/string.in.h (memchr): Simplify logic.
+
+2009-06-14  Jim Meyering  <meyering@redhat.com>
+
+       link-follow: fix the "checking..." message to not mention trailing slash
+       * m4/link-follow.m4 (gl_AC_FUNC_LINK_FOLLOWS_SYMLINK): This test has
+       never considered trailing slashes.
+
+2009-06-14  Bruno Haible  <bruno@clisp.org>
+
+       * m4/memchr.m4: Mention also the bug on IA-64.
+       * doc/posix-functions/memchr.texi: Likewise.
+
+2009-06-12  Eric Blake  <ebb9@byu.net>
+
+       memchr: detect broken x86_64 and alpha implementations
+       * modules/memchr-tests (Depends-on): Move mmap detection...
+       * modules/memchr (Depends-on): ...here.
+       (configure.ac): Set indicator.
+       * lib/string.in.h (memchr): Declare replacement.
+       * modules/string (Makefile.am): Trigger replacement.
+       * m4/string_h.m4 (gl_HEADER_STRING_H_DEFAULTS): Likewise.
+       * m4/memchr.m4 (gl_FUNC_MEMCHR): Use mmap to detect platform
+       bugs.
+       * doc/posix-functions/memchr.texi (memchr): Document the bug.
+       * modules/getpagesize (License): Relax license.
+
+2009-06-11  Bruno Haible  <bruno@clisp.org>
+
+       * lib/idpriv.h: Add more references.
+
+2009-06-08  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'idpriv-droptemp'.
+       * modules/idpriv-droptemp-tests: New file.
+       * tests/test-idpriv-droptemp.sh: New file.
+       * tests/test-idpriv-droptemp.su.sh: New file.
+       * tests/test-idpriv-droptemp.c: New file.
+
+       New module 'idpriv-droptemp'.
+       * lib/idpriv-droptemp.c: New file.
+       * modules/idpriv-droptemp: New file.
+
+2009-06-08  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'idpriv-drop'.
+       * modules/idpriv-drop-tests: New file.
+       * tests/test-idpriv-drop.sh: New file.
+       * tests/test-idpriv-drop.su.sh: New file.
+       * tests/test-idpriv-drop.c: New file.
+
+       New module 'idpriv-drop'.
+       * lib/idpriv.h: New file.
+       * lib-idpriv-drop.c: New file.
+       * m4/idpriv.m4: New file.
+       * modules/idpriv-drop: New file.
+
+2009-06-08  Bruno Haible  <bruno@clisp.org>
+
+       * modules/unistdio/u8-vasnprintf (Depends-on): Add memchr.
+       * modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise.
+       * modules/unistdio/u16-vasnprintf (Depends-on): Likewise.
+       * modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise.
+       * modules/unistdio/u32-vasnprintf (Depends-on): Likewise.
+       * modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise.
+       * modules/unistdio/ulc-vasnprintf (Depends-on): Likewise.
+
+2009-06-08  Eric Blake  <ebb9@byu.net>
+
+       test-strstr: use memory fence, when possible
+       * tests/test-strstr.c (main): Use memory fence, in order to be
+       more likely to trigger Debian bug 521737.
+       * modules/strstr-tests (Files): Pull in additional files.
+
+       memchr: no longer obsolete, for wider field testing
+       * modules/memchr (Status, Notice): Delete, this module is no
+       longer obsolete.
+       * modules/vasnprintf (Depends-on): Add memchr.
+
+2009-06-07  Jim Meyering  <meyering@redhat.com>
+
+       hash: declare some functions with the warn_unused_result attribute
+       * lib/hash.h (__attribute__, ATTRIBUTE_WUR): Define.
+
+2009-06-07  Bruno Haible  <bruno@clisp.org>
+
+       * tests/test-alignof.c: Don't test int64_t if it does not exist.
+       Reported by Eric Blake.
+
+2009-06-06  Eric Blake  <ebb9@byu.net>
+
+       test-alignof: fix typo with long double
+       * tests/test-alignof.c (CHECK): Use longdouble typedef to avoid
+       compiler error.
+
+2009-06-06  Neil Jerram  <neil@ossau.uklinux.net>  (tiny change)
+
+       Escape non-texinfo { and }s.
+       * doc/ld-output-def.texi (Visual Studio Compatibility): Fix
+       markup error.
+
 2009-06-04  Jim Meyering  <meyering@redhat.com>
 
        gitlog-to-changelog: don't infloop on an empty commit log
        Reported by Eric Blake.
 
 2009-05-31  Simon Josefsson  <simon@josefsson.org>
-            Bruno Haible  <bruno@clisp.org>
+           Bruno Haible  <bruno@clisp.org>
 
        Fix test-alignof failure.
        * lib/alignof.h (alignof_slot): New macro.
        * doc/gnulib.texi: Include it.
 
 2009-05-21  Eric Blake  <ebb9@byu.net>
-            Bruno Haible  <bruno@clisp.org>
+           Bruno Haible  <bruno@clisp.org>
 
        * m4/include_next.m4 (gl_CHECK_NEXT_HEADERS): Remove redundant m4_quote
        invocations.
        * m4/absolute-header.m4 (gl_ABSOLUTE_HEADER): Likewise.
 
 2009-05-21  Eric Blake  <ebb9@byu.net>
-            Bruno Haible  <bruno@clisp.org>
+           Bruno Haible  <bruno@clisp.org>
 
        Second attempt to work around an AIX 5.3, 6.1 compiler bug with
        include_next. Fix of 2008-11-20 commit.