strerror_r: avoid compiler warning
[gnulib.git] / ChangeLog
index 7ef67ed..376a5a2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,335 @@
+2012-03-29  Eric Blake  <eblake@redhat.com>
+
+       strerror_r: avoid compiler warning
+       * lib/strerror_r.c (strerror_r): Hoist extern declaration to top
+       level.
+
+       fflush: avoid compiler warning
+       * lib/fflush.c (update_fpos_cache): Mark variables that are
+       potentially unused.
+
+2012-03-25  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'localeconv'.
+       * modules/localeconv-tests: New file.
+       * tests/test-localeconv.c: New file.
+
+       New module 'localeconv'.
+       * lib/locale.in.h (localeconv): New declaration.
+       * lib/localeconv.c: New file.
+       * m4/localeconv.m4: New file.
+       * m4/locale_h.m4 (gl_LOCALE_H_DEFAULTS): Initialize GNULIB_LOCALECONV,
+       REPLACE_LOCALECONV.
+       * modules/locale (Makefile.am): Substitute GNULIB_LOCALECONV,
+       REPLACE_LOCALECONV.
+       * modules/localeconv: New file.
+       * modules/nl_langinfo (Depends-on): Add localeconv.
+       * modules/human (Depends-on): Likewise.
+       * doc/posix-functions/localeconv.texi: Mention the new module.
+
+2012-03-25  Bruno Haible  <bruno@clisp.org>
+
+       locale: Provide a complete 'struct lconv'.
+       * m4/locale_h.m4 (gl_LOCALE_H): Set REPLACE_STRUCT_LCONV to 1 if
+       'struct lconv' does not contain int_p_cs_precedes.
+       * tests/test-locale.c (main): Check that 'struct lconv' is complete.
+       * doc/posix-headers/locale.texi: Update.
+
+       locale: Provide a complete 'struct lconv' on Solaris 10, 11.
+       * m4/locale_h.m4 (gl_LOCALE_H): On Solaris, define _LCONV_C99.
+       * doc/posix-headers/locale.texi: Update.
+
+       locale: Provide a working 'struct lconv'.
+       * lib/locale.in.h (lconv): Override if REPLACE_STRUCT_LCONV is 1.
+       * m4/locale_h.m4 (gl_LOCALE_H): Set REPLACE_STRUCT_LCONV to 1 if
+       'struct lconv' does not even contain decimal_point.
+       (gl_LOCALE_H_DEFAULTS): Initialize REPLACE_STRUCT_LCONV.
+       * modules/locale (Makefile.am): Substitute REPLACE_STRUCT_LCONV.
+       * tests/test-locale.c (main): Check that 'struct lconv' is complete.
+       * doc/posix-headers/locale.texi: Mention the problems with
+       'struct lconv'.
+       Reported by Gianluigi Tiesi <sherpya@netfarm.it>.
+
+2012-03-24  Bruno Haible  <bruno@clisp.org>
+
+       Enable common subexpression optimization in GCC.
+       * lib/unitypes.in.h (_UC_ATTRIBUTE_CONST, _UC_ATTRIBUTE_PURE): New
+       macros.
+       * lib/unicase.in.h (uc_toupper, uc_tolower, uc_totitle): Declare with
+       GCC attribute 'const'.
+       (uc_locale_language): Declare with GCC attribute 'pure'.
+       * lib/unicase/caseprop.h (uc_is_cased, uc_is_case_ignorable): Declare
+       with GCC attribute 'const'.
+       * lib/unictype.in.h (uc_is_general_category_withtable,
+       uc_combining_class, uc_combining_class_name,
+       uc_combining_class_long_name, uc_bidi_class_name,
+       uc_bidi_category_name, uc_bidi_class_long_name, uc_bidi_class,
+       uc_bidi_category, uc_is_bidi_class, uc_is_bidi_category,
+       uc_decimal_value, uc_digit_value, uc_numeric_value,
+       uc_joining_type_name, uc_joining_type_long_name, uc_joining_type,
+       uc_joining_group_name, uc_joining_group, uc_is_property_*, uc_script,
+       uc_block, uc_is_c_whitespace, uc_is_java_whitespace,
+       uc_c_ident_category, uc_java_ident_category, uc_is_alnum, uc_is_alpha,
+       uc_is_cntrl, uc_is_digit, uc_is_graph, uc_is_lower, uc_is_print,
+       uc_is_punct, uc_is_space, uc_is_upper, uc_is_xdigit, uc_is_blank):
+       Declare with GCC attribute 'const'.
+       (uc_general_category_name, uc_general_category_long_name,
+       uc_general_category_byname, uc_general_category,
+       uc_is_general_category, uc_combining_class_byname,
+       uc_bidi_class_byname, uc_bidi_category_byname, uc_joining_type_byname,
+       uc_joining_group_byname, uc_script_byname, uc_is_script, uc_is_block):
+       Declare with GCC attribute 'pure'.
+       * lib/unigbrk.in.h (uc_graphemeclusterbreak_property,
+       uc_is_grapheme_break, u8_grapheme_next, u16_grapheme_next,
+       u32_grapheme_next, u8_grapheme_prev, u16_grapheme_prev,
+       u32_grapheme_prev, lib/uniname.in.h (unicode_name_character): Declare
+       with GCC attribute 'pure'.
+       * lib/uninorm.in.h (uc_composition): Declare with GCC attribute
+       'const'.
+       (uninorm_decomposing_form): Declare with GCC attribute 'pure'.
+       * lib/unistr.in.h (): Declare with GCC attribute 'const'.
+       (u8_check, u16_check, u32_check, u8_mblen, u16_mblen, u32_mblen,
+       u8_cmp, u16_cmp, u32_cmp, u8_cmp2, u16_cmp2, u32_cmp2, u8_chr, u16_chr,
+       u32_chr, u8_mbsnlen, u16_mbsnlen, u32_mbsnlen, u8_strmblen,
+       u16_strmblen, u32_strmblen, u8_strlen, u16_strlen, u32_strlen,
+       u8_strnlen, u16_strnlen, u32_strnlen, u8_strcmp_gnu, u8_strcmp,
+       u16_strcmp, u32_strcmp, u8_strncmp, u16_strncmp, u32_strncmp,
+       u8_strchr, u16_strchr, u32_strchr, u8_strrchr, u16_strrchr,
+       u32_strrchr, u8_strcspn, u16_strcspn, u32_strcspn, u8_strspn,
+       u16_strspn, u32_strspn, u8_strpbrk, u16_strpbrk, u32_strpbrk,
+       u8_strstr, u16_strstr, u32_strstr, u8_startswith, u16_startswith,
+       u32_startswith, u8_endswith, u16_endswith, u32_endswith): Declare with
+       GCC attribute 'pure'.
+       * lib/uniwbrk.in.h (uc_wordbreak_property): Declare with GCC attribute
+       'const'.
+       * lib/uniwidth.in.h (uc_width): Simplify declaration.
+       (u8_width, u16_width, u32_width, u8_strwidth, u16_strwidth,
+       u32_strwidth): Declare with GCC attribute 'pure'.
+
+       Enable common subexpression optimization in GCC.
+       * lib/dirent.in.h (_GL_ATTRIBUTE_PURE): Define, like in string.in.h.
+       (alphasort): Declare with GCC attribute 'pure'.
+       * lib/stdlib.in.h (_GL_ATTRIBUTE_PURE): Define, like in string.in.h.
+       (atoll): Declare with GCC attribute 'pure'.
+       * lib/string.in.h (mbslen, mbsnlen, mbschr, mbsrchr, mbsstr,
+       mbscasecmp, mbsncasecmp, mbspcasecmp, mbscasestr, mbscspn, mbspbrk,
+       mbsspn, strverscmp): Declare with GCC attribute 'pure'.
+       * lib/wchar.in.h (_GL_ATTRIBUTE_PURE): Define, like in string.in.h.
+       (btowc, wctob, wcwidth, wmemchr, wmemcmp, wcslen, wcsnlen, wcscmp,
+       wcsncmp, wcscasecmp, wcsncasecmp, wcschr, wcsrchr, wcscspn, wcsspn,
+       wcspbrk, wcsstr, wcswidth): Declare with GCC attribute 'pure'.
+
+2012-03-24  Bruno Haible  <bruno@clisp.org>
+
+       gnulib-tool: Avoid unintended error output from 'cmp'.
+       * gnulib-tool (func_add_file, func_update_file, func_import): Use
+       "cmp -s", not "cmp > /dev/null".
+
+2012-03-23  Stefano Lattarini  <stefano.lattarini@gmail.com>
+
+       gnulib-tool: fix imprecise comments w.r.t. an automake bug
+
+       It's not just Automake versions < 1.9b that creates an empty
+       pkgdatadir at installation time if pkgdata_DATA is specified
+       to empty; modern automake versions do this as well, at least
+       until automake 1.11.4 (not yet released at the moment of writing,
+       but soon to appear).  That behaviour was generally considered a
+       feature rather than a bug, at least until this discussion:
+       <http://lists.gnu.org/archive/html/automake/2012-03/msg00014.html>
+
+       See also automake bugs #10997 and #11030.
+
+       * gnulib-tool (func_emit_lib_Makefile_am): Adjust comments.  Add
+       reference to relevant automake bug numbers.
+       (func_emit_tests_Makefile_am): Likewise.
+
+2012-03-20  Reuben Thomas  <rrt@sc3d.org>
+
+       announce-gen: use Digest::SHA when possible
+       * build-aux/announce-gen: Use Digest::SHA when possible, falling
+       back to Digest::SHA1 if necessary.
+
+2012-03-20  Jim Meyering  <meyering@redhat.com>
+
+       tests: avoid gcc warnings about argv vs. const initializers
+       * tests/test-posix_spawn1.c (main): Cast to "(char *)" to avoid two
+       warnings about discarding 'const' qualifier from pointer target type.
+       * tests/test-posix_spawn2.c (main): Likewise.
+
+2012-03-20  Reuben Thomas  <rrt@sc3d.org>
+
+       README-release: simplify slightly
+       * top/README-release: Run "git checkout master" only once.
+
+2012-03-15  Mark Wielaard  <mark@klomp.org>
+
+       git-merge-changelog: add specific example on how to use with hg.
+       * lib/git-merge-changelog.c: Add example on how to use in .hgrc.
+
+2012-03-18  Mark Wielaard  <mark@klomp.org>
+
+       lib/git-merge-changelog.c (status): Report bugs to bug-gnulib@gnu.org.
+
+2012-03-18  Andreas Oberritter  <obi@opendreambox.org>
+
+       git-version-gen: don't let "prefix" envvar cause trouble
+       * build-aux/git-version-gen (prefix): Initialize properly,
+       so as not to use a value specified via the environment.
+       Details here: http://thread.gmane.org/gmane.comp.gnu.parted.bugs/10810
+
+2012-03-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       regex: diagnose too-large repeat counts in EREs
+       Previously, the code did not diagnose the too-large repeat count
+       in EREs like 'b{1000000000}'; instead, it silently treated the ERE
+       as if it were 'b\{1000000000}', which is unexpected.
+       * lib/regcomp.c (parse_dup_op): Fail with REG_ESIZE if a repeat count
+       is too large.  REG_ESIZE is used nowhere else, and the diagnostic
+       is a reasonable one for this problem.  Another option would be to
+       create a new REG_OVERFLOW error for repeat counts that are too large.
+       (fetch_number): Return RE_DUP_MAX + 1, not REG_ERROR, if the repeat
+       count is too large, so that the caller can distinguish the two cases.
+       * lib/regex.h (_REG_ESIZE): Document that this is now a generic
+       "Too large" return code, and that repeat counts are one example of this.
+
+2012-03-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: some glibc x32 integer width issues
+       * doc/posix-headers/sys_types.texi (sys/types.h):
+       * doc/posix-headers/time.texi (time.h):
+       Mention that glibc x32 does not conform to POSIX in a couple of
+       areas related to integer widths.
+
+2012-03-15  Bruno Haible  <bruno@clisp.org>
+
+       fmal: Avoid test failure on OpenBSD 5.1/SPARC64.
+       * lib/fma.c (VOLATILE): New macro.
+       (FUNC): Use it to work around a GCC compiler bug.
+
+2012-03-13  Bruno Haible  <bruno@clisp.org>
+
+       hypotl: Bypass broken implementation in OpenBSD 5.1/SPARC.
+       * m4/hypotl.m4 (gl_FUNC_HYPOTL_WORKS): New macro.
+       (gl_FUNC_HYPOTL): Invoke it. If the function does not work, set
+       REPLACE_HYPOTL to 1.
+       * doc/posix-functions/hypotl.texi: Mention the OpenBSD 5.1/SPARC bug.
+
+2012-03-13  Bruno Haible  <bruno@clisp.org>
+
+       remainderl: Bypass broken implementation in OpenBSD 5.1/SPARC.
+       * m4/remainderl.m4 (gl_FUNC_REMAINDERL_WORKS): New macro.
+       (gl_FUNC_REMAINDERL): Invoke it. If the function does not work, set
+       REPLACE_REMAINDERL to 1.
+       * doc/posix-functions/remainderl.texi: Mention the OpenBSD 5.1/SPARC
+       bug.
+
+2012-03-13  Bruno Haible  <bruno@clisp.org>
+
+       sqrtl: Bypass broken implementation in OpenBSD 5.1/SPARC.
+       * lib/math.in.h (sqrtl): Replace it if REPLACE_SQRTL is 1.
+       * m4/sqrtl.m4 (gl_FUNC_SQRTL_WORKS): New macro.
+       (gl_FUNC_SQRTL): Invoke it. Set REPLACE_SQRTL to 1 if sqrtl() produces
+       too big rounding errors.
+       * m4/math_h.m4 (gl_MATH_H_DEFAULTS): Initialize REPLACE_SQRTL.
+       * modules/math (Makefile.am): Substitute REPLACE_SQRTL.
+       * modules/sqrtl (configure.ac): Consider REPLACE_SQRTL.
+       (Depends-on): Update conditions.
+       * tests/test-sqrtl.c (my_ldexpl): New function.
+       (main): Add test of a particular value.
+       * doc/posix-functions/sqrtl.texi: Mention the OpenBSD 5.1/SPARC bug.
+
+2012-03-13  Pádraig Brady  <P@draigBrady.com>
+
+       doc: Update timer_* platform portability notes.
+       * doc/posix-functions/timer_create.texi: Add platforms (OpenBSD 4.9)
+       that always return ENOSYS.
+       * doc/posix-functions/timer_delete.texi: Likewise.
+       * doc/posix-functions/timer_gettime.texi: Likewise.
+       * doc/posix-functions/timer_settime.texi: Likewise.
+
+2012-03-13  Bruno Haible  <bruno@clisp.org>
+
+       cbrtl: Bypass broken implementation in OpenBSD 5.1/SPARC.
+       * m4/cbrtl.m4 (gl_FUNC_CBRTL_WORKS): New macro.
+       (gl_FUNC_CBRTL): Invoke it. If the function does not work, set
+       REPLACE_CBRTL to 1.
+       * doc/posix-functions/cbrtl.texi: Mention the OpenBSD 5.1/SPARC bug.
+
+2012-03-13  Bruno Haible  <bruno@clisp.org>
+
+       remainderl: Avoid compilation error on AIX >= 5.2.
+       * lib/math.in.h (remainderl): Undefine macro from the system header.
+
+2012-03-13  Bruno Haible  <bruno@clisp.org>
+
+       Avoid compilation errors with MSVC option -fp:strict.
+       * lib/cbrt.c: Use MSVC specific pragma fenv_access.
+       * lib/cbrtf.c: Likewise.
+       Reported by Michael Goffioul <michael.goffioul@gmail.com>.
+
+2012-03-12  Bruno Haible  <bruno@clisp.org>
+
+       uninorm: Don't crash in out-of-memory conditions.
+       * lib/uninorm/u-normalize-internal.h (FUNC): Handle malloc() failure
+       gracefully.
+       * lib/uninorm/uninorm-filter.c (uninorm_filter_write): Likewise.
+       Based on a report and patch by Stephen Gallagher <sgallagh@redhat.com>.
+
+2012-03-13  Akim Demaille  <akim@lrde.epita.fr>
+
+       quote: fix syntax-check
+       * top/maint.mk (sc_prohibit_quote_without_use): quote.h
+       also exports quote_quoting_options.
+
+2012-03-12  Simon Josefsson  <simon@josefsson.org>
+
+       Collapse list of copyright years to ranges.  See
+       <https://lists.gnu.org/archive/html/bug-gnulib/2012-03/msg00051.html>.
+       * build-aux/bootstrap.conf, build-aux/csharpcomp.sh.in,
+       build-aux/csharpexec.sh.in, build-aux/gnupload,
+       build-aux/install-reloc, build-aux/javacomp.sh.in,
+       build-aux/javaexec.sh.in, build-aux/ldd.sh.in,
+       build-aux/move-if-change, build-aux/reloc-ldflags,
+       build-aux/relocatable.sh.in, build-aux/x-to-1.in: Fix copyright.
+
 2012-03-11  Bruno Haible  <bruno@clisp.org>
 
+       log2f-ieee: Work around test failure on NetBSD 5.1 and Solaris 10.
+       * m4/log2f-ieee.m4: New file.
+       * m4/log2f.m4 (gl_FUNC_LOG2F): If gl_FUNC_LOG2F_IEEE is present, test
+       whether log2f works with a minus zero argument. Replace it if not.
+       * modules/log2f-ieee (Files): Add m4/log2f-ieee.m4.
+       (Depends-on): Add log2-ieee.
+       (configure.ac): Invoke gl_FUNC_LOG2F_IEEE.
+       * doc/posix-functions/log2f.texi: Mention the log2f-ieee module.
+
+       log2-ieee: Work around test failure on NetBSD 5.1 and Solaris 10.
+       * m4/log2-ieee.m4: New file.
+       * m4/log2.m4 (gl_FUNC_LOG2): If gl_FUNC_LOG2_IEEE is present, test
+       whether log2 works with a minus zero argument. Replace it if not.
+       * modules/log2-ieee (Files): Add m4/log2-ieee.m4.
+       (configure.ac): Invoke gl_FUNC_LOG2_IEEE.
+       * doc/posix-functions/log2.texi: Mention the log2-ieee module.
+
+       Tests for module 'log2l-ieee'.
+       * modules/log2l-ieee-tests: New file.
+       * tests/test-log2l-ieee.c: New file.
+
+       New module 'log2l-ieee'.
+       * modules/log2l-ieee: New file.
+
+       Tests for module 'log2-ieee'.
+       * modules/log2-ieee-tests: New file.
+       * tests/test-log2-ieee.c: New file.
+
+       New module 'log2-ieee'.
+       * modules/log2-ieee: New file.
+
+       Tests for module 'log2f-ieee'.
+       * modules/log2f-ieee-tests: New file.
+       * tests/test-log2f-ieee.c: New file.
+       * tests/test-log2-ieee.h: New file.
+
        New module 'log2f-ieee'.
        * modules/log2f-ieee: New file.