X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=ChangeLog;h=a4a9ce4437aff0ac8efffbc2f045c993632a2af6;hb=2bbd452;hp=8411e083e03fb12a607acf19b5a74076c92e3cfa;hpb=5768aa52f6dd4fe3266bfa42f6a58f26b89c6c89;p=gnulib.git diff --git a/ChangeLog b/ChangeLog index 8411e083e..a4a9ce443 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,492 @@ +2011-02-13 Bruno Haible + + mbrtowc: Work around native Windows bug. + * m4/mbrtowc.m4 (gl_MBRTOWC_RETVAL): Detect native Windows bug. Use the + guess when no suitable locale for testing was found. + * doc/posix-functions/mbrtowc.texi: Mention the native Windows bug. + +2011-02-13 Bruno Haible + + mbsinit: Work around mingw bug. + * m4/mbsinit.m4 (gl_FUNC_MBSINIT): Replace mbsinit also on mingw. + * lib/mbsinit.c (mbsinit): Provide an alternate definition for native + Windows. + * doc/posix-functions/mbsinit.texi: Mention the mingw bug. + +2011-02-13 Bruno Haible + + mbsinit: Don't crash for a NULL argument. + * lib/mbsinit.c (mbsinit): When the argument is NULL, return 1. + * tests/test-mbsinit.c (mbsinit): Check this behaviour. + +2011-02-13 Bruno Haible + + Don't interfere with a program's definition of __attribute__. + * lib/stdio.in.h (__attribute__): Remove definition. + (_GL_ATTRIBUTE_FORMAT, _GL_ATTRIBUTE_FORMAT_PRINTF): New macros. + (dprintf, fprintf, obstack_printf, obstack_printf, obstack_vprintf, + printf, snprintf, sprintf, asprintf, vasprintf, vdprintf, vfprintf, + vsnprintf, vsprintf): Use _GL_ATTRIBUTE_FORMAT_PRINTF. + * lib/string.in.h (__attribute__): Remove definition. + Reported by Paul Eggert. + +2011-02-12 Paul Eggert + + stdlib: don't get in the way of non-GCC __attribute__ + See thread starting at + . + Revert previous stdlib change, installing the following instead: + * lib/stdlib.in.h (__attribute__): Remove. We do not want + to get in the way of a non-GCC compiler that supports __attribute__. + (_GL_ATTRIBUTE_RETURN): New macro. + (_Exit): Use it instead of __attribute__. + +2011-02-12 Bruno Haible + + 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 Paul Eggert + + 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 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 + + 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 + + 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-11 Thien-Thi Nguyen + + doc: update users.txt + * users.txt: Add rcs. + +2011-02-10 John W. Eaton + + doc: update users.txt + * users.txt: Add octave. + +2011-02-10 Jim Meyering + + doc: update users.txt + * users.txt: Add iwhd. + +2011-02-09 Bruno Haible + + 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 via Paul Eggert. + +2011-02-06 Bruno Haible + + 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 + + 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 + + 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 + + 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 + + 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 + + flock: fix license typo + + * lib/flock.c: Fix typo in license. One of the "Lesser"s was + omitted. + +2011-02-08 Bruno Haible + + 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 . + Suggestion by Ralf Wildenhues in + . + +2011-02-08 Paul Eggert + Bruno Haible + + stdlib: improve random_r modularization + * lib/stdlib.in.h: Encapsulate all the stuff having to do with + random_r inside "#if @GNULIB_RANDOM_R@", so that it's clearer that + you also need the random_r module to get this material right. + * m4/random_r.m4 (gl_FUNC_RANDOM_R): Move check for random.h here ... + * m4/stdlib_h.m4 (gl_STDLIB_H): ... from here. + (gl_STDLIB_H_DEFAULTS): Default HAVE_RANDOM_H to 1, and AC_SUBST it. + +2011-02-08 Paul Eggert + + stdlib: don't depend on stdint + * lib/stdlib.in.h: Don't include merely because + GNULIB_POSIXCHECK is defined. GNULIB_POSIXCHECK seems to + be independent of whether stdint.h is needed. + * m4/random_r.m4 (gl_FUNC_RANDOM_R): Check for struct random_data + here, instead of ... + * m4/stdlib_h.m4 (gl_STDLIB_H): ... here. Applications that need + struct random_data should be using the random_r module, not just + the stdlib module (which wouldn't make sense: what package needs + just struct random_data without also needing random_r?). + * modules/stdlib (Depends-on): Remove stdint. + + getloadavg: don't depend on c-strtod, cloexec, fcntl-safer + See the thread rooted at + . + * lib/getloadavg.c: Do not include c-strtod.h, cloexec.h, or fcntl--.h. + Include only if (defined __linux__ || defined __CYGWIN__ + || defined SUNOS_5 || (defined LOAD_AVE_TYPE && ! defined + __VMS)); previously it was always included (via fcntl--.h). + (getloadavg): Do not use c_strtod. Instead, approximate it by + hand; this is good enough for load averages. Also, do not use + set_cloexec_flag; instead, use the O_CLOEXEC and F_DUPFD_CLOEXEC + flags directly if available and don't bother otherwise. (Packages + that need the extra reliability should use the modules that define + these flags on older platforms that lack them.) + * modules/getloadavg (Depends-on): Remove c-strtod, cloexec, + fcntl-safer. + +2011-02-08 Jim Meyering + + di-set.h, ino-map.h: add multiple-inclusion guard + Technically, the guard is required only for ino-map.h, due to its + INO_MAP_INSERT_FAILURE definition, but do both for consistency. + * lib/di-set.h: Add file-spanning #ifndef _GL_DI_SET_H. + * lib/ino-map.h: Likewise. + +2011-02-06 Bruno Haible + + iswblank: Ensure declaration on glibc systems. + * m4/iswblank.m4 (gl_FUNC_ISWBLANK): Require gl_USE_SYSTEM_EXTENSIONS. + * modules/iswblank (Dependencies): Add 'extensions'. + * doc/posix-functions/iswblank.texi: Document the glibc problem. + +2011-02-06 Bruno Haible + + New module 'iswblank'. + * lib/wctype.in.h (iswblank): Don't declare if GNULIB_ISWBLANK is 0. + * modules/iswblank: New file. + * modules/wctype-h (Files): Remove lib/iswblank.c. + (Makefile.am): Substitute GNULIB_ISWBLANK. + * m4/iswblank.m4: New file, partially extracted from m4/wctype_h.m4. + * m4/wctype_h.m4 (gl_WCTYPE_MODULE_INDICATOR): New macro. + (gl_WCTYPE_H_DEFAULTS): New macro. + (gl_WCTYPE_H): Require it. Remove iswblank related code. + * modules/iswblank-tests: New file. + * tests/test-iswblank.c: New file, extraced from tests/test-wctype-h.c. + * tests/test-wctype-h.c (main): Remove iswblank tests. + * tests/test-wctype-h-c++.cc: Guard the signature test of iswblank. + * doc/posix-functions/iswblank.texi: Mention module 'iswblank' instead + of 'wctype-h'. + * NEWS: Mention the change. + * modules/mbchar (Depends-on): Add iswblank. + +2011-02-08 Bruno Haible + + di-set tests: Refactor. + * tests/test-di-set.c: Include di-set.h early. Include macros.h. Drop + unnecessary includes. + (ASSERT): Remove macro. + (main): Make C90 compliant by avoiding variable declaration after + statement. + * modules/di-set-tests (Files): Add tests/macros.h. + +2011-02-08 Bruno Haible + + ino-map tests: Refactor. + * tests/test-ino-map.c: Include ino-map.h early. Include macros.h. Drop + unnecessary includes. + (ASSERT): Remove macro. + (main): Make C90 compliant by avoiding variable declaration after + statement. + * modules/ino-map-tests (Files): Add tests/macros.h. + +2011-02-08 Jim Meyering + + di-set: add "const" to a cast + * lib/di-set.c (di_set_insert): Cast hash_insert0 argument to + "(void const *)", not "(void *)". Spotted by Bruno Haible. + +2011-02-06 Bruno Haible + + Rename module 'wctype' to 'wctype-h'. + * modules/wctype-h: Renamed from modules/wctype. + * modules/wctype: Simplyfy to a redirection to 'wctype-h'. + * modules/wctype-h-tests: Renamed from modules/wctype-tests. + (Files, Depends-on, Makefile.am): Update. + * modules/wctype-h-c++-tests: Renamed from modules/wctype-c++-tests. + (Files, Makefile.am): Update. + * tests/test-wctype-h.c: Renamed from tests/test-wctype.c. + * tests/test-wctype-h-c++.cc: Renamed from tests/test-wctype-c++.cc. + * doc/posix-headers/wctype.texi: Update. + * doc/posix-functions/iswalnum.texi: Update. + * doc/posix-functions/iswalpha.texi: Update. + * doc/posix-functions/iswblank.texi: Update. + * doc/posix-functions/iswcntrl.texi: Update. + * doc/posix-functions/iswdigit.texi: Update. + * doc/posix-functions/iswgraph.texi: Update. + * doc/posix-functions/iswlower.texi: Update. + * doc/posix-functions/iswprint.texi: Update. + * doc/posix-functions/iswpunct.texi: Update. + * doc/posix-functions/iswspace.texi: Update. + * doc/posix-functions/iswupper.texi: Update. + * doc/posix-functions/iswxdigit.texi: Update. + * doc/posix-functions/towlower.texi: Update. + * doc/posix-functions/towupper.texi: Update. + * NEWS: Mention the change. + * modules/fnmatch (Dependencies): Add wctype-h, remove wctype. + * modules/mbchar (Dependencies): Likewise. + * modules/mbswidth (Dependencies): Likewise. + * modules/quotearg (Dependencies): Likewise. + * modules/regex (Dependencies): Likewise. + * modules/wcscasecmp (Dependencies): Likewise. + * modules/wcsncasecmp (Dependencies): Likewise. + * modules/wcwidth (Dependencies): Likewise. + +2011-02-06 Bruno Haible + + New module 'wcswidth'. + * modules/wcswidth: New file. + * lib/wchar.in.h (wcswidth): New declaration. + * lib/wcswidth.c: New file. + * lib/wcswidth-impl.h: New file, from libutf8 with modifications. + * m4/wcswidth.m4: New file. + * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcswidth is declared. + (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSWIDTH, HAVE_WCSWIDTH, + REPLACE_WCSWIDTH. + * modules/wchar (Makefile.am): Substitute GNULIB_WCSWIDTH, + HAVE_WCSWIDTH, REPLACE_WCSWIDTH. + * tests/test-wchar-c++.cc: Test the declaration of wcswidth. + * doc/posix-functions/wcswidth.texi: Mention the new module. + +2011-02-06 Bruno Haible + + New module 'wcstok'. + * modules/wcstok: New file. + * lib/wchar.in.h (wcstok): New declaration. + * lib/wcstok.c: New file. + * lib/wcstok-impl.h: New file, from libutf8 with modifications. + * m4/wcstok.m4: New file. + * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcstok is declared. + (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSTOK, HAVE_WCSTOK. + * modules/wchar (Makefile.am): Substitute GNULIB_WCSTOK, HAVE_WCSTOK. + * tests/test-wchar-c++.cc: Test the declaration of wcstok. + * doc/posix-functions/wcstok.texi: Mention the new module. + +2011-02-06 Bruno Haible + + New module 'wcsstr'. + * modules/wcsstr: New file. + * lib/wchar.in.h (wcsstr): New declaration. + * lib/wcsstr.c: New file. + * lib/wcsstr-impl.h: New file, from libutf8 with modifications. + * m4/wcsstr.m4: New file. + * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsstr is declared. + (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSSTR, HAVE_WCSSTR. + * modules/wchar (Makefile.am): Substitute GNULIB_WCSSTR, HAVE_WCSSTR. + * tests/test-wchar-c++.cc: Test the declaration of wcsstr. + * doc/posix-functions/wcsstr.texi: Mention the new module. + +2011-02-06 Bruno Haible + + New module 'wcspbrk'. + * modules/wcspbrk: New file. + * lib/wchar.in.h (wcspbrk): New declaration. + * lib/wcspbrk.c: New file. + * lib/wcspbrk-impl.h: New file, from libutf8 with modifications. + * m4/wcspbrk.m4: New file. + * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcspbrk is declared. + (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSPBRK, HAVE_WCSPBRK. + * modules/wchar (Makefile.am): Substitute GNULIB_WCSPBRK, HAVE_WCSPBRK. + * tests/test-wchar-c++.cc: Test the declaration of wcspbrk. + * doc/posix-functions/wcspbrk.texi: Mention the new module. + +2011-02-06 Bruno Haible + + New module 'wcsspn'. + * modules/wcsspn: New file. + * lib/wchar.in.h (wcsspn): New declaration. + * lib/wcsspn.c: New file. + * lib/wcsspn-impl.h: New file, from libutf8 with modifications. + * m4/wcsspn.m4: New file. + * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsspn is declared. + (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSSPN, HAVE_WCSSPN. + * modules/wchar (Makefile.am): Substitute GNULIB_WCSSPN, HAVE_WCSSPN. + * tests/test-wchar-c++.cc: Test the declaration of wcsspn. + * doc/posix-functions/wcsspn.texi: Mention the new module. + +2011-02-06 Bruno Haible + + New module 'wcscspn'. + * modules/wcscspn: New file. + * lib/wchar.in.h (wcscspn): New declaration. + * lib/wcscspn.c: New file. + * lib/wcscspn-impl.h: New file, from libutf8 with modifications. + * m4/wcscspn.m4: New file. + * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcscspn is declared. + (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCSPN, HAVE_WCSCSPN. + * modules/wchar (Makefile.am): Substitute GNULIB_WCSCSPN, HAVE_WCSCSPN. + * tests/test-wchar-c++.cc: Test the declaration of wcscspn. + * doc/posix-functions/wcscspn.texi: Mention the new module. + +2011-02-06 Bruno Haible + + New module 'wcsrchr'. + * modules/wcsrchr: New file. + * lib/wchar.in.h (wcsrchr): New declaration. + * lib/wcsrchr.c: New file. + * lib/wcsrchr-impl.h: New file, from libutf8 with modifications. + * m4/wcsrchr.m4: New file. + * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcsrchr is declared. + (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSRCHR, HAVE_WCSRCHR. + * modules/wchar (Makefile.am): Substitute GNULIB_WCSRCHR, HAVE_WCSRCHR. + * tests/test-wchar-c++.cc: Test the declaration of wcsrchr. + * doc/posix-functions/wcsrchr.texi: Mention the new module. + +2011-02-06 Bruno Haible + + New module 'wcschr'. + * modules/wcschr: New file. + * lib/wchar.in.h (wcschr): New declaration. + * lib/wcschr.c: New file. + * lib/wcschr-impl.h: New file, from libutf8 with modifications. + * m4/wcschr.m4: New file. + * m4/wchar_h.m4 (gl_WCHAR_H): Test whether wcschr is declared. + (gl_WCHAR_H_DEFAULTS): Initialize GNULIB_WCSCHR, HAVE_WCSCHR. + * modules/wchar (Makefile.am): Substitute GNULIB_WCSCHR, HAVE_WCSCHR. + * tests/test-wchar-c++.cc: Test the declaration of wcschr. + * doc/posix-functions/wcschr.texi: Mention the new module. + 2011-02-06 Bruno Haible New module 'wcsdup'. @@ -1069,6 +1558,8 @@ indirectly on xalloc. This change causes the openat substitute to fall back on save_cwd when memory is tight, and for save_cwd to fail instead of dying when memory is tight, but that's good enough. + Problem and initial idea for fix reported by Bastien Roucaries in + . * lib/openat-proc.c: Include stdlib.h (for malloc), not xalloc.h (for xmalloc).