quotearg test: Avoid test failure on mingw.
[pspp] / ChangeLog
index 6c79e2c85dc9c5b0e00aba55c01a570aba40290c..02c69df863cdaf3011fed8d7c1cd0bfbe2ffc99d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,302 @@
+2011-02-12  Bruno Haible  <bruno@clisp.org>
+
+       quotearg test: Avoid test failure on mingw.
+       * tests/test-quotearg.sh: Convert the locale identifier from native
+       Windows syntax to Unix syntax.
+
+2011-02-12  Bruno Haible  <bruno@clisp.org>
+
+       setlocale: Prefer gnulib's override over libintl's override.
+       * lib/locale.in.h (GNULIB_defined_setlocale): New macro.
+       * lib/gettext.h (setlocale): Redefine to rpl_setlocale if
+       GNULIB_defined_setlocale is set.
+
+2011-02-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       stdlib: support non-GCC __attribute__
+
+       Fix a serious and tricky problem encountered when attempting to
+       add the getloadavg module to Emacs.  Emacs worked fine on RHEL
+       5.5, but it crashed due to memory corruption on Solaris 10 with
+       Sun C 5.11.  Emacs normally ORs 3-bit tags into their low-order
+       bits that are otherwise zero.  This tagging is optional inside
+       Emacs but is preferred and is used when __attribute__ ((__aligned
+       (8))) works, as it does with both recent-enough GCC and with Sun C
+       5.11.  However, Sun C 5.11 is not GCC and does not #define
+       __GNUC__ and __GNUC_MINOR__.
+
+       When I added the getloadavg module to Emacs, it brought in
+       stdlib.in.h, which contained this fragment:
+
+          #ifndef __attribute__
+          # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
+          #  define __attribute__(Spec)   /* empty */
+          # endif
+          #endif
+
+       When files that include <stdlib.h> were compiled with Sun C 5.11,
+       the above code disabled __attribute__ ((__aligned (8))), which
+       caused variables to not be properly aligned, which eventually led
+       to the pointer corruption mentioned above.  (This was a bit hard
+       to diagnose, unfortunately.)
+
+       Several "#define __attribute__(X) /* empty */" code snippets need
+       to be eradicated from Gnulib to work with non-GCC compilers that
+       support __attribute__.  The Autoconf way to do this is to test for
+       each kind of attribute that we want support for, and selectively
+       enable that in source code.
+
+       Fix this problem just for stdlib.h, by adding a test for the
+       __noreturn__ attribute, and change stdlib.in.h to use that test
+       when needed.  This technique can be easily generalized to the
+       other *.in.h files and attributes, and a similar technique can be
+       used for *.h and *.c files.  This patch is enough to solve the
+       problem for Emacs + getloadavg, and I thought I'd publish it for
+       feedback before undertaking further, similar fixes in other
+       modules.
+
+       This patch does not arrange to #define HAVE_ATTRIBUTE_NORETURN
+       because it's not needed for stdlib.h.  It merely substitutes the
+       value directly into stdlib.h.  We may well need to #define it, or
+       similar symbols, for other modules, but it's nice to also have an
+       option to not #define it for applications like Emacs that do not
+       need it.
+
+       * lib/stdlib.in.h (__attribute__): Do not #define.
+       (_GL_ATTRIBUTE_NORETURN): New macro, which in stdlib.h needs to
+       be defined only if the _Exit module is also used.
+       * m4/_Exit.m4 (gl_FUNC__EXIT): Require gl_ATTRIBUTE_NORETURN.
+       * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Subst
+       HAVE_ATTRIBUTE_NORETURN and default it to 1, its value on GNU
+       platforms.
+       * modules/_Exit (Files): Add m4/attribute.m4.
+       * modules/stdlib (Makefile.am): Substitute HAVE_ATTRIBUTE_NORETURN.
+       * m4/attribute.m4: New file.
+
+2011-02-12  Bruno Haible  <bruno@clisp.org>
+
+       wcsrtombs: Work around bug on native Windows.
+       * m4/wcsrtombs.m4 (gl_WCSRTOMBS_NULL): Test against mingw bug.
+       * lib/wcsrtombs.c (rpl_wcsrtombs): When dest is NULL, pass SIZE_MAX
+       instead of len.
+       * doc/posix-functions/wcsrtombs.texi: Document mingw bug.
+
+2011-02-12  Bruno Haible  <bruno@clisp.org>
+
+       mbsrtowcs: Work around bug on native Windows.
+       * m4/mbsrtowcs.m4 (gl_MBSRTOWCS_WORKS): Require gt_LOCALE_FR. Test
+       against mingw bug.
+       * doc/posix-functions/mbsrtowcs.texi: Document mingw bug.
+
+2011-02-12  Bruno Haible  <bruno@clisp.org>
+
+       Avoid setlocale bugs in tests.
+       * modules/btowc (Dependencies): Add setlocale.
+       * modules/c-strcase (Dependencies): Likewise.
+       * modules/mbmemcasecmp (Dependencies): Likewise.
+       * modules/mbmemcasecoll (Dependencies): Likewise.
+       * modules/mbrtowc (Dependencies): Likewise.
+       * modules/mbscasecmp (Dependencies): Likewise.
+       * modules/mbscasestr (Dependencies): Likewise.
+       * modules/mbschr (Dependencies): Likewise.
+       * modules/mbscspn (Dependencies): Likewise.
+       * modules/mbsinit (Dependencies): Likewise.
+       * modules/mbsncasecmp (Dependencies): Likewise.
+       * modules/mbsnrtowcs (Dependencies): Likewise.
+       * modules/mbspbrk (Dependencies): Likewise.
+       * modules/mbspcasecmp (Dependencies): Likewise.
+       * modules/mbsrchr (Dependencies): Likewise.
+       * modules/mbsrtowcs (Dependencies): Likewise.
+       * modules/mbsspn (Dependencies): Likewise.
+       * modules/mbsstr (Dependencies): Likewise.
+       * modules/nl_langinfo (Dependencies): Likewise.
+       * modules/quotearg (Dependencies): Likewise.
+       * modules/unicase/locale-language (Dependencies): Likewise.
+       * modules/unicase/ulc-casecmp (Dependencies): Likewise.
+       * modules/unicase/ulc-casecoll (Dependencies): Likewise.
+       * modules/unigbrk/ulc-grapheme-breaks (Dependencies): Likewise.
+       * modules/unistdio/u8-vasnprintf (Dependencies): Likewise.
+       * modules/unistdio/u16-vasnprintf (Dependencies): Likewise.
+       * modules/unistdio/u32-vasnprintf (Dependencies): Likewise.
+       * modules/unistdio/ulc-vasnprintf (Dependencies): Likewise.
+       * modules/uniwbrk/ulc-wordbreaks (Dependencies): Likewise.
+       * modules/vasnprintf-posix (Dependencies): Likewise.
+       * modules/wcrtomb (Dependencies): Likewise.
+       * modules/wcsnrtombs (Dependencies): Likewise.
+       * modules/wcsrtombs (Dependencies): Likewise.
+
+2011-02-12  Bruno Haible  <bruno@clisp.org>
+
+       setlocale: Workaround native Windows bug.
+       * lib/setlocale.c (rpl_setlocale): On native Windows, when setlocale
+       succeeds but sets LC_CTYPE to "C", report a failure.
+       * tests/test-setlocale2.sh: New file.
+       * tests/test-setlocale2.c: New file.
+       * modules/setlocale-tests (Files): Add the new files.
+       (Makefile.am): Enable test-setlocale2.sh test.
+       * doc/posix-functions/setlocale.texi: Mention workaround.
+
+2011-02-11  Bruno Haible  <bruno@clisp.org>
+
+       Tests for module 'setlocale'.
+       * modules/setlocale-tests: New file.
+       * tests/test-setlocale1.sh: New file.
+       * tests/test-setlocale1.c: New file.
+
+       New module 'setlocale'.
+       * lib/locale.in.h (setlocale): New declaration.
+       * lib/setlocale.c: New file, based on
+       gettext/gettext-runtime/intl/setlocale.c.
+       * m4/setlocale.m4: New file.
+       * m4/locale_h.m4 (gl_LOCALE_H): Test whether setlocale is declared.
+       (gl_LOCALE_H_DEFAULTS): Initialize GNULIB_SETLOCALE, REPLACE_SETLOCALE.
+       * modules/locale (Makefile.am): Substitute GNULIB_SETLOCALE,
+       REPLACE_SETLOCALE.
+       * modules/setlocale: New file.
+       * tests/test-locale-c++.cc: Test the declaration of setlocale.
+       * doc/posix-functions/setlocale.texi: Mention the new module.
+
+2011-02-11  Bruno Haible  <bruno@clisp.org>
+
+       Prepare for locale dependent tests on mingw.
+       * m4/locale-ar.m4 (gt_LOCALE_AR): On native Windows, don't try "ar"
+       because it has the wrong locale encoding.
+       * m4/locale-fr.m4 (gt_LOCALE_FR): On native Windows, try
+       French_France.1252 instead of "fr".
+       (gt_LOCALE_FR_UTF8): On native Windows, try French_France.65001.
+       * m4/locale-ja.m4 (gt_LOCALE_JA): On native Windows, don't try "ja"
+       because it has the wrong locale encoding.
+       * m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): Require AC_CANONICAL_HOST. On
+       native Windows, try Turkish_Turkey.65001.
+       * m4/locale-zh.m4 (gt_LOCALE_ZH_CN): On native Windows, try
+       Chinese_China.54936.
+
+       Prepare for locale dependent tests on mingw.
+       * m4/locale-ar.m4 (gt_LOCALE_AR): On native Windows, call setlocale
+       differently.
+       * m4/locale-fr.m4 (gt_LOCALE_FR, gt_LOCALE_FR_UTF8): Likewise.
+       * m4/locale-ja.m4 (gt_LOCALE_JA): Likewise.
+       * m4/locale-tr.m4 (gt_LOCALE_TR_UTF8): Likewise.
+       * m4/locale-zh.m4 (gt_LOCALE_ZH_CN): Likewise.
+
+2011-02-11  Eric Blake  <eblake@redhat.com>
+
+       strptime: avoid compiler warnings
+       * lib/strptime.c (__strptime_internal) [!_NL_CURRENT]: Avoid
+       compiler warnings about dead code.
+       Reported by Matthias Bolte.
+
+2011-02-11  Thien-Thi Nguyen  <ttn@gnuvola.org>
+
+       doc: update users.txt
+       * users.txt: Add rcs.
+
+2011-02-10  John W. Eaton  <jwe@gnu.org>
+
+       doc: update users.txt
+       * users.txt: Add octave.
+
+2011-02-10  Jim Meyering  <meyering@redhat.com>
+
+       doc: update users.txt
+       * users.txt: Add iwhd.
+
+2011-02-09  Bruno Haible  <bruno@clisp.org>
+
+       gnulib-tool: Make copyright notice adjustment more robust.
+       * gnulib-tool (func_import): In sed_transform_main_lib_file,
+       sed_transform_build_aux_file, sed_transform_testsrelated_lib_file,
+       allow a line break to occur after "GNU" in "GNU [Lesser] General Public
+       License".
+       Reported by Glenn Morris <rgm@gnu.org> via Paul Eggert.
+
+2011-02-06  Bruno Haible  <bruno@clisp.org>
+
+       New module 'towctrans'.
+       * modules/towctrans: New file.
+       * lib/wctype.in.h (towctrans): New declaration.
+       * lib/towctrans.c: New file.
+       * lib/towctrans-impl.h: New file.
+       * m4/towctrans.m4: New file.
+       * m4/wctype_h.m4 (gl_WCTYPE_H): Test whether towctrans is declared.
+       (gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_TOWCTRANS.
+       * modules/wctype-h (Makefile.am): Substitute GNULIB_TOWCTRANS.
+       * tests/test-wctype-h-c++.cc: Test the declaration of towctrans.
+       * doc/posix-functions/towctrans.texi: Mention the new module.
+
+2011-02-06  Bruno Haible  <bruno@clisp.org>
+
+       New module 'wctrans'.
+       * modules/wctrans: New file.
+       * lib/wctype.in.h (wctrans): New declaration.
+       * lib/wctrans.c: New file.
+       * lib/wctrans-impl.h: New file.
+       * m4/wctrans.m4: New file.
+       * m4/wctype_h.m4 (gl_WCTYPE_H): Test whether wctrans is declared.
+       (gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_WCTRANS.
+       * modules/wctype-h (Makefile.am): Substitute GNULIB_WCTRANS.
+       * tests/test-wctype-h-c++.cc: Test the declaration of wctrans.
+       * doc/posix-functions/wctrans.texi: Mention the new module.
+
+2011-02-06  Bruno Haible  <bruno@clisp.org>
+
+       New module 'iswctype'.
+       * modules/iswctype: New file.
+       * lib/wctype.in.h (iswctype): New declaration.
+       * lib/iswctype.c: New file.
+       * lib/iswctype-impl.h: New file.
+       * m4/iswctype.m4: New file.
+       * m4/wctype_h.m4 (gl_WCTYPE_H): Test whether iswctype is declared.
+       (gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_ISWCTYPE.
+       * modules/wctype-h (Makefile.am): Substitute GNULIB_ISWCTYPE.
+       * tests/test-wctype-h-c++.cc: Test the declaration of iswctype.
+       * doc/posix-functions/iswctype.texi: Mention the new module and the
+       HP-UX 11.00 problem.
+
+2011-02-06  Bruno Haible  <bruno@clisp.org>
+
+       New module 'wctype'.
+       * modules/wctype: Change to represent the wctype() substitute.
+       * lib/wctype.in.h (wctype): New declaration.
+       * lib/wctype.c: New file.
+       * lib/wctype-impl.h: New file.
+       * m4/wctype.m4: New file.
+       * m4/wctype_h.m4 (gl_WCTYPE_H): Test whether wctype is declared.
+       (gl_WCTYPE_H_DEFAULTS): Initialize GNULIB_WCTYPE.
+       * modules/wctype-h (Makefile.am): Substitute GNULIB_WCTYPE.
+       * tests/test-wctype-h-c++.cc: Test the declaration of wctype.
+       * doc/posix-functions/wctype.texi: Mention the new module and the
+       HP-UX 11.00 problem.
+
+2011-02-06  Bruno Haible  <bruno@clisp.org>
+
+       wctype-h: Ensure wctype_t and wctrans_t are defined.
+       * lib/wctype.in.h (wctype_t, wctrans_t): New type declarations.
+       * m4/wctype_h.m4 (gl_WCTYPE_H): Determine HAVE_WCTYPE_T, HAVE_WCTRANS_T.
+       (gl_WCTYPE_H_DEFAULTS): Initialize HAVE_WCTYPE_T, HAVE_WCTRANS_T.
+       * modules/wctype-h (Makefile.am): Substitute HAVE_WCTYPE_T,
+       HAVE_WCTRANS_T.
+       * tests/test-wctype-h.c: Check that wctype_t and wctrans_t are defined.
+
+2011-02-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       flock: fix license typo
+
+       * lib/flock.c: Fix typo in license.  One of the "Lesser"s was
+       omitted.
+
+2011-02-08  Bruno Haible  <bruno@clisp.org>
+
+       Split large sed scripts, for HP-UX sed.
+       * modules/math (Makefile.am): Split sed scripts around 50 sed commands,
+       to avoid HP-UX limit of 99 commands, in the near future.
+       * modules/stdlib (Makefile.am): Likewise.
+       * modules/unistd (Makefile.am): Likewise.
+       * modules/wchar (Makefile.am): Likewise.
+       Reported by Albert Chin <bug-gnulib@mlists.thewrittenword.com>.
+       Suggestion by Ralf Wildenhues <Ralf.Wildenhues@gmx.de> in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2010-01/msg00216.html>.
+
 2011-02-08  Paul Eggert  <eggert@cs.ucla.edu>
            Bruno Haible  <bruno@clisp.org>