modules/stdlib


Log

Author Commit Date CI Message
Bruno Haible ae23caf4 2016-10-16T22:11:32 qsort_r: Fix macrology for platforms that lack the function. * m4/stdlib_h.m4 (gl_STDLIB_H): Check for qsort_r. (gl_STDLIB_H_DEFAULTS): Initialize HAVE_QSORT_R. * modules/stdlib (Makefile.am): Substitute HAVE_QSORT_R. * lib/stdlib.in.h (qsort_r): Provide declaration if the function does not exist. * m4/qsort_r.m4 (gl_FUNC_QSORT_R): Use AC_CHECK_FUNCS to test whether the function exists. * modules/qsort_r: Add comments.
Paul Eggert 1ce0e7dc 2014-08-29T13:00:16 qsort_r: new module, for GNU-style qsort_r This works even on FreeBSD, which has an incompatible qsort_r API. * MODULES.html.sh: Add it. * doc/glibc-functions/qsort_r.texi: It's now supported. * lib/qsort.c: New file, taken from glibc with minor changes inside "#ifndef _LIBC" and with an unnecessary "#include <alloca.h>" removed. * lib/qsort_r.c: New file, compiled only on FreeBSD. * lib/stdlib.in.h (qsort_r): Declare in the usual way. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): * modules/qsort_r, modules/qsort_r-tests: New files. * modules/stdlib (Makefile): Set up its defaults. * tests/test-qsort_r.c: New file.
Paul Eggert 7517e2fd 2013-02-04T18:33:23 secure_getenv: new module * MODULES.html.sh (Extra functions based on ANSI C 89): Add secure_getenv. * doc/glibc-functions/secure_getenv.texi: New file. * doc/gnulib.texi: Include it. * lib/secure_getenv.c, m4/secure_getenv.m4, modules/secure_getenv: New files. * lib/stdlib.in.h (secure_getenv): New decl. * m4/stdlib_h.m4 (gl_STDLIB_H, gl_STDLIB_H_DEFAULTS): * modules/stdlib (stdlib.h): Add secure_getenv checks.
Eric Blake b5b92d84 2012-10-02T12:22:19 ptsname: reject invalid file descriptors POSIX left errno undefined on ptsname() failure, although there has at least been an effort to specify reasonable values to use: http://www.austingroupbugs.net/view.php?id=503 However, our tests for ptsname and ptsname_r already require errno to be set to useful values (as in glibc), so it is worth replacing ptsname on FreeBSD 8.2 in order to get better QoI and pass the test. * m4/ptsname.m4 (gl_FUNC_PTSNAME): Probe for FreeBSD bug. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Add new witness. * modules/stdlib (Makefile.am): Replace witness. * lib/stdlib.in.h (ptsname): Allow for replacement. * modules/ptsname (configure.ac): Trigger replacement. * doc/posix-functions/ptsname.texi (ptsname): Document this.
Bruno Haible e2ee61c4 2012-01-14T15:15:28 New module 'random'. * lib/stdlib.in.h (random, srandom, initstate, setstate): New declarations. * lib/random.c: New file, based on glibc/stdlib/random.c. * m4/random.m4: New file. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_RANDOM, HAVE_RANDOM. * modules/stdlib (Makefile.am): Substitute GNULIB_RANDOM, HAVE_RANDOM. * modules/random: New file. * config/srclist.txt: Add an entry for random.c. * doc/posix-functions/random.texi: Mention the 'random' module. * doc/posix-functions/initstate.texi: Likewise. * doc/posix-functions/setstate.texi: Likewise. * doc/posix-functions/srandom.texi: Likewise.
Bruno Haible 2c0e4c5d 2012-01-12T22:54:15 random_r: Override incompatible API on AIX, OSF/1. * lib/stdlib.in.h (random_r, srandom_r, initstate_r, setstate_r): Override the system function if REPLACE_RANDOM_R is 1. * m4/random_r.m4 (gl_FUNC_RANDOM_R): Require AC_CANONICAL_HOST. On AIX and OSF/1, set REPLACE_RANDOM_R. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_RANDOM_R. * modules/stdlib (Makefile.am): Substitute REPLACE_RANDOM_R. * modules/random_r (configure.ac): Test REPLACE_RANDOM_R. * doc/glibc-functions/initstate_r.texi: Mention the AIX, OSF/1 problem. * doc/glibc-functions/random_r.texi: Likewise. * doc/glibc-functions/setstate_r.texi: Likewise.
Bruno Haible f5562fca 2011-11-10T13:48:16 ptsname_r: Avoid compilation error on OSF/1 5.1. * lib/stdlib.in.h (ptsname_r): Override if REPLACE_PTSNAME_R is 1. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize REPLACE_PTSNAME_R. * m4/ptsname_r.m4 (gl_FUNC_PTSNAME_R): Set REPLACE_PTSNAME_R if the function is not declared or incompatibly declared. * modules/stdlib (Makefile.am): Substitute REPLACE_PTSNAME_R. * modules/ptsname_r (Depends-on, configure.ac): Update. * doc/glibc-functions/ptsname_r.texi: Mention the OSF/1 problems.
Eric Blake 78232883 2011-11-07T15:26:08 ptsname_r: new module For now, this replacement focuses solely on compilation compatibility, and assumes that isatty() and ttyname_r() work on a master side pty; if this assumption fails, or if thread-safety is also required, then a later patch can follow the lead of strerror_r.c in wrapping the system ptsname() with a lock. * modules/ptsname_r: New module. * m4/ptsname_r.m4 (gl_FUNC_PTSNAME_R): New file. * lib/ptsname.c (__ptsname_r): Split... * lib/ptsname_r.c: ...into new file. * m4/stdlib_h.m4 (gl_STDLIB_H): Check for decl. (gl_STDLIB_H_DEFAULTS): Set witness defaults. * modules/stdlib (Makefile.am): Substitute witnesses. * lib/stdlib.in.h (ptsname_r): Declare it. * doc/glibc-functions/ptsname_r.texi (ptsname_r): Document it. * MODULES.html.sh (Misc): Likewise. * modules/ptsname (Depends-on): Alter dependency. * doc/posix-functions/ptsname.texi (ptsname): Mention new module. Signed-off-by: Eric Blake <eblake@redhat.com>
Eric Blake 94d63c4b 2011-10-17T17:19:41 posix_openpt: new module * modules/posix_openpt: New module. * m4/posix_openpt.m4: New file. * lib/posix_openpt.c: Likewise. * m4/stdlib_h.m4 (gl_STDLIB_H): Check for decl. (gl_STDLIB_H_DEFAULTS): Set defaults. * modules/stdlib (Makefile.am): Substitute macros. * lib/stdlib.in.h (posix_openpt): Declare. * MODULES.html.sh (systems lacking POSIX:2008): Document it. * doc/posix-functions/posix_openpt.texi (posix_openpt): Likewise. * modules/posix_openpt-tests: New test module. * tests/test-posix_openpt.c: New test.
Bruno Haible 3ee6fd47 2011-07-12T11:56:28 Rename module '_Noreturn' to 'snippet/_Noreturn'. * modules/snippet/_Noreturn: Renamed from modules/_Noreturn. (Files, Makefile.am): Update. * build-aux/snippet/_Noreturn.h: Renamed from build-aux/_Noreturn.h. * modules/stdlib (Depends-on): Update.
Bruno Haible ddb4ab56 2011-07-12T11:44:55 Rename module 'warn-on-use' to 'snippet/warn-on-use'. * modules/snippet/warn-on-use: Renamed from modules/warn-on-use. (Files, Makefile.am): Update. * build-aux/snippet/warn-on-use.h: Renamed from build-aux/warn-on-use.h. * modules/arpa_inet (Depends-on): Update. * modules/ctype (Depends-on): Update. * modules/dirent (Depends-on): Update. * modules/fcntl-h (Depends-on): Update. * modules/glob (Depends-on): Update. * modules/iconv-h (Depends-on): Update. * modules/inttypes-incomplete (Depends-on): Update. * modules/langinfo (Depends-on): Update. * modules/locale (Depends-on): Update. * modules/math (Depends-on): Update. * modules/netdb (Depends-on): Update. * modules/poll-h (Depends-on): Update. * modules/pty (Depends-on): Update. * modules/search (Depends-on): Update. * modules/signal (Depends-on): Update. * modules/spawn (Depends-on): Update. * modules/stdio (Depends-on): Update. * modules/stdlib (Depends-on): Update. * modules/string (Depends-on): Update. * modules/strings (Depends-on): Update. * modules/sys_file (Depends-on): Update. * modules/sys_ioctl (Depends-on): Update. * modules/sys_select (Depends-on): Update. * modules/sys_socket (Depends-on): Update. * modules/sys_stat (Depends-on): Update. * modules/sys_time (Depends-on): Update. * modules/sys_times (Depends-on): Update. * modules/sys_utsname (Depends-on): Update. * modules/sys_wait (Depends-on): Update. * modules/termios (Depends-on): Update. * modules/time (Depends-on): Update. * modules/unistd (Depends-on): Update. * modules/wchar (Depends-on): Update. * modules/wctype-h (Depends-on): Update. * MODULES.html.sh (Support for building libraries and executables): Update.
Bruno Haible 6045c2ba 2011-07-12T11:39:50 Rename module 'c++defs' to 'snippet/c++defs'. * modules/snippet/c++defs: Renamed from modules/c++defs. (Files, Makefile.am): Update. * build-aux/snippet/c++defs.h: Renamed from build-aux/c++defs.h. * modules/arpa_inet (Depends-on): Update. * modules/ctype (Depends-on): Update. * modules/dirent (Depends-on): Update. * modules/fcntl-h (Depends-on): Update. * modules/glob (Depends-on): Update. * modules/iconv-h (Depends-on): Update. * modules/langinfo (Depends-on): Update. * modules/locale (Depends-on): Update. * modules/math (Depends-on): Update. * modules/netdb (Depends-on): Update. * modules/poll-h (Depends-on): Update. * modules/pty (Depends-on): Update. * modules/search (Depends-on): Update. * modules/signal (Depends-on): Update. * modules/spawn (Depends-on): Update. * modules/stdio (Depends-on): Update. * modules/stdlib (Depends-on): Update. * modules/string (Depends-on): Update. * modules/strings (Depends-on): Update. * modules/sys_ioctl (Depends-on): Update. * modules/sys_select (Depends-on): Update. * modules/sys_socket (Depends-on): Update. * modules/sys_stat (Depends-on): Update. * modules/sys_time (Depends-on): Update. * modules/sys_wait (Depends-on): Update. * modules/termios (Depends-on): Update. * modules/time (Depends-on): Update. * modules/unistd (Depends-on): Update. * modules/wchar (Depends-on): Update. * modules/wctype-h (Depends-on): Update.
Bruno Haible 95e1b7bd 2011-07-12T11:34:36 Rename module 'arg-nonnull' to 'snippet/arg-nonnull'. * modules/snippet/arg-nonnull: Renamed from modules/arg-nonnull. (Files, Makefile.am): Update. * build-aux/snippet/arg-nonnull.h: Renamed from build-aux/arg-nonnull.h. * modules/argv-iter (Depends-on): Update. * modules/arpa_inet (Depends-on): Update. * modules/dirent (Depends-on): Update. * modules/fcntl-h (Depends-on): Update. * modules/fnmatch (Depends-on): Update. * modules/getopt-posix (Depends-on): Update. * modules/glob (Depends-on): Update. * modules/iconv-h (Depends-on): Update. * modules/inttypes-incomplete (Depends-on): Update. * modules/locale (Depends-on): Update. * modules/math (Depends-on): Update. * modules/netdb (Depends-on): Update. * modules/search (Depends-on): Update. * modules/signal (Depends-on): Update. * modules/spawn (Depends-on): Update. * modules/stdio (Depends-on): Update. * modules/stdlib (Depends-on): Update. * modules/string (Depends-on): Update. * modules/strings (Depends-on): Update. * modules/sys_socket (Depends-on): Update. * modules/sys_stat (Depends-on): Update. * modules/sys_time (Depends-on): Update. * modules/sys_times (Depends-on): Update. * modules/sys_utsname (Depends-on): Update. * modules/time (Depends-on): Update. * modules/unistd (Depends-on): Update. * modules/wchar (Depends-on): Update. * MODULES.html.sh (Support for building libraries and executables): Update.
Paul Eggert f67969b0 2011-07-12T01:02:54 stdlib: use _Noreturn * lib/stdlib.in.h (_GL_ATTRIBUTE_NORETURN): Remove. (_Exit): Use _Noreturn rather than _GL_ATTRIBUTE_NORETURN. * modules/stdlib (Depends-on): Add _Noreturn. (stdlib.h): Depend on $(_NORETURN_H), and copy it in.
Bruno Haible 284602e2 2011-06-08T13:23:56 gnulib-tool: Better isolation between different gnulib-tool invocations. * gnulib-tool: New option --witness-c-macro. (witness_c_macro): New variable. (func_emit_lib_Makefile_am): If --witness-c-macro was specified, let AM_CPPFLAGS define it as a C macro. (func_emit_tests_Makefile_am): Likewise. (func_import): Store witness_c_macro setting in gnulib-cache.m4 and read it from there. * m4/gnulib-common.m4 (gl_MODULE_INDICATOR_CONDITION): Define through m4_define, not AC_DEFUN. (gl_MODULE_INDICATOR_SET_VARIABLE_AUX, gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR): New macros. (gl_MODULE_INDICATOR_SET_VARIABLE): Use them. * modules/arpa_inet (Makefile.am): Use sed expression s/.../.../, not s|...|...|, to substitute the values of the GNULIB_* module indicator variables. * modules/dirent (Makefile.am): Likewise. * modules/fcntl-h (Makefile.am): Likewise. * modules/iconv-h (Makefile.am): Likewise. * modules/langinfo (Makefile.am): Likewise. * modules/locale (Makefile.am): Likewise. * modules/math (Makefile.am): Likewise. * modules/netdb (Makefile.am): Likewise. * modules/poll-h (Makefile.am): Likewise. * modules/pty (Makefile.am): Likewise. * modules/search (Makefile.am): Likewise. * modules/signal (Makefile.am): Likewise. * modules/spawn (Makefile.am): Likewise. * modules/stdio (Makefile.am): Likewise. * modules/stdlib (Makefile.am): Likewise. * modules/string (Makefile.am): Likewise. * modules/sys_ioctl (Makefile.am): Likewise. * modules/sys_select (Makefile.am): Likewise. * modules/sys_socket (Makefile.am): Likewise. * modules/sys_stat (Makefile.am): Likewise. * modules/sys_times (Makefile.am): Likewise. * modules/sys_utsname (Makefile.am): Likewise. * modules/sys_wait (Makefile.am): Likewise. * modules/termios (Makefile.am): Likewise. * modules/time (Makefile.am): Likewise. * modules/unistd (Makefile.am): Likewise. * modules/wchar (Makefile.am): Likewise.
Bruno Haible 0ab583c0 2011-05-29T15:44:42 Allow multiple gnulib generated include files to be combined. * gnulib-tool (func_compute_include_guard_prefix): New function. (func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Resolve also ${gl_include_guard_prefix} references. (func_import, func_create_testdir): Invoke func_compute_include_guard_prefix. * lib/arpa_inet.in.h: Use the @GUARD_PREFIX@ placeholder. * lib/ctype.in.h: Likewise. * lib/dirent.in.h: Likewise. * lib/errno.in.h: Likewise. * lib/fcntl.in.h: Likewise. * lib/float.in.h: Likewise. * lib/getopt.in.h: Likewise. * lib/iconv.in.h: Likewise. * lib/langinfo.in.h: Likewise. * lib/locale.in.h: Likewise. * lib/math.in.h: Likewise. * lib/netdb.in.h: Likewise. * lib/netinet_in.in.h: Likewise. * lib/poll.in.h: Likewise. * lib/pthread.in.h: Likewise. * lib/pty.in.h: Likewise. * lib/sched.in.h: Likewise. * lib/se-selinux.in.h: Likewise. * lib/search.in.h: Likewise. * lib/signal.in.h: Likewise. * lib/spawn.in.h: Likewise. * lib/stdarg.in.h: Likewise. * lib/stddef.in.h: Likewise. * lib/stdint.in.h: Likewise. * lib/stdio.in.h: Likewise. * lib/stdlib.in.h: Likewise. * lib/string.in.h: Likewise. * lib/strings.in.h: Likewise. * lib/sys_file.in.h: Likewise. * lib/sys_ioctl.in.h: Likewise. * lib/sys_select.in.h: Likewise. * lib/sys_socket.in.h: Likewise. * lib/sys_stat.in.h: Likewise. * lib/sys_time.in.h: Likewise. * lib/sys_times.in.h: Likewise. * lib/sys_uio.in.h: Likewise. * lib/sys_utsname.in.h: Likewise. * lib/sys_wait.in.h: Likewise. * lib/sysexits.in.h: Likewise. * lib/termios.in.h: Likewise. * lib/time.in.h: Likewise. * lib/unistd.in.h: Likewise. * lib/wchar.in.h: Likewise. * lib/wctype.in.h: Likewise. * modules/arpa_inet (Makefile.am): Substitute @GUARD_PREFIX@. * modules/ctype (Makefile.am): Likewise. * modules/dirent (Makefile.am): Likewise. * modules/errno (Makefile.am): Likewise. * modules/fcntl-h (Makefile.am): Likewise. * modules/float (Makefile.am): Likewise. * modules/getopt-posix (Makefile.am): Likewise. * modules/iconv-h (Makefile.am): Likewise. * modules/langinfo (Makefile.am): Likewise. * modules/locale (Makefile.am): Likewise. * modules/math (Makefile.am): Likewise. * modules/netdb (Makefile.am): Likewise. * modules/netinet_in (Makefile.am): Likewise. * modules/poll-h (Makefile.am): Likewise. * modules/pthread (Makefile.am): Likewise. * modules/pty (Makefile.am): Likewise. * modules/sched (Makefile.am): Likewise. * modules/search (Makefile.am): Likewise. * modules/selinux-h (Makefile.am): Likewise. * modules/signal (Makefile.am): Likewise. * modules/spawn (Makefile.am): Likewise. * modules/stdarg (Makefile.am): Likewise. * modules/stddef (Makefile.am): Likewise. * modules/stdint (Makefile.am): Likewise. * modules/stdio (Makefile.am): Likewise. * modules/stdlib (Makefile.am): Likewise. * modules/string (Makefile.am): Likewise. * modules/strings (Makefile.am): Likewise. * modules/sys_file (Makefile.am): Likewise. * modules/sys_ioctl (Makefile.am): Likewise. * modules/sys_select (Makefile.am): Likewise. * modules/sys_socket (Makefile.am): Likewise. * modules/sys_stat (Makefile.am): Likewise. * modules/sys_time (Makefile.am): Likewise. * modules/sys_times (Makefile.am): Likewise. * modules/sys_uio (Makefile.am): Likewise. * modules/sys_utsname (Makefile.am): Likewise. * modules/sys_wait (Makefile.am): Likewise. * modules/sysexits (Makefile.am): Likewise. * modules/termios (Makefile.am): Likewise. * modules/time (Makefile.am): Likewise. * modules/unistd (Makefile.am): Likewise. * modules/wchar (Makefile.am): Likewise. * modules/wctype-h (Makefile.am): Likewise. * modules/assert-h (Makefile.am): Replace _GL_VERIFY_H specially.
Bruno Haible b4b63910 2011-04-03T23:07:25 Ensure to rebuild generated .h files when config.status has changed. * modules/arpa_inet (Makefile.am): Add dependency from .h file to config.status. * modules/ctype (Makefile.am): Likewise. * modules/dirent (Makefile.am): Likewise. * modules/errno (Makefile.am): Likewise. * modules/fcntl-h (Makefile.am): Likewise. * modules/float (Makefile.am): Likewise. * modules/getopt-posix (Makefile.am): Likewise. * modules/glob (Makefile.am): Likewise. * modules/iconv-h (Makefile.am): Likewise. * modules/inttypes (Makefile.am): Likewise. * modules/langinfo (Makefile.am): Likewise. * modules/locale (Makefile.am): Likewise. * modules/math (Makefile.am): Likewise. * modules/netdb (Makefile.am): Likewise. * modules/netinet_in (Makefile.am): Likewise. * modules/poll-h (Makefile.am): Likewise. * modules/pthread (Makefile.am): Likewise. * modules/pty (Makefile.am): Likewise. * modules/sched (Makefile.am): Likewise. * modules/search (Makefile.am): Likewise. * modules/selinux-h (Makefile.am): Likewise. * modules/signal (Makefile.am): Likewise. * modules/spawn (Makefile.am): Likewise. * modules/stdarg (Makefile.am): Likewise. * modules/stdbool (Makefile.am): Likewise. * modules/stddef (Makefile.am): Likewise. * modules/stdint (Makefile.am): Likewise. * modules/stdio (Makefile.am): Likewise. * modules/stdlib (Makefile.am): Likewise. * modules/string (Makefile.am): Likewise. * modules/strings (Makefile.am): Likewise. * modules/sys_file (Makefile.am): Likewise. * modules/sys_ioctl (Makefile.am): Likewise. * modules/sys_select (Makefile.am): Likewise. * modules/sys_socket (Makefile.am): Likewise. * modules/sys_stat (Makefile.am): Likewise. * modules/sys_time (Makefile.am): Likewise. * modules/sys_times (Makefile.am): Likewise. * modules/sys_utsname (Makefile.am): Likewise. * modules/sys_wait (Makefile.am): Likewise. * modules/sysexits (Makefile.am): Likewise. * modules/termios (Makefile.am): Likewise. * modules/time (Makefile.am): Likewise. * modules/unistd (Makefile.am): Likewise. * modules/wchar (Makefile.am): Likewise. * modules/wctype-h (Makefile.am): Likewise. Reported by Karl Berry, Eric Blake, and Ralf Wildenhues.
Bruno Haible f1eb357f 2011-02-22T14:23:24 New module 'wctomb'. * lib/stdlib.in.h (wctomb): New declaration. * lib/wctomb.c: New file. * lib/wctomb-impl.h: New file. * m4/wctomb.m4: New file. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_WCTOMB, REPLACE_WCTOMB. * modules/stdlib (Makefile.am): Substitute GNULIB_WCTOMB, REPLACE_WCTOMB. * modules/wctomb: New file. * tests/test-stdlib-c++.cc: Test signature of wctomb. * doc/posix-functions/wctomb.texi: Mention the new module. * modules/wctob (Depends-on): Add wctomb.
Bruno Haible 82e60758 2011-02-22T14:01:29 New module 'mbtowc'. * lib/stdlib.in.h (mbtowc): New declaration. * lib/mbtowc.c: New file. * lib/mbtowc-impl.h: New file, from libutf8 with modifications * m4/mbtowc.m4: New file. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_MBTOWC, REPLACE_MBTOWC. * modules/stdlib (Makefile.am): Substitute GNULIB_MBTOWC, REPLACE_MBTOWC. * modules/mbtowc: New file. * tests/test-stdlib-c++.cc: Test signature of mbtowc. * doc/posix-functions/mbtowc.texi: Mention the new module. * modules/btowc (Depends-on): Add mbtowc.
Paul Eggert b45dc216 2011-02-12T22:16:44 stdlib: don't get in the way of non-GCC __attribute__
Paul Eggert 06c2675e 2011-02-12T15:33:16 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.
Bruno Haible 7ddc2d61 2011-02-09T00:16:54 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>.
Paul Eggert 4f8c7a6e 2011-02-08T12:24:48 stdlib: don't depend on stdint * lib/stdlib.in.h: Don't include <stdint.h> 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.
Bruce Korb 4013d14c 2011-02-06T21:11:40 libposix: Revert the unreviewed part of yesterday's big merge. Back out yesterday's big merge from the libposix branch, except for the openat-die.c change that was reviewed and approved by Paul Eggert. Put the ChangeLog entry at the top, to reflect the order of changes in the master branch.
Bruce Korb abac9b73 2011-02-05T08:22:48 libposix: Add _HEADERS primaries to posix modules. Modify gnulib-tool to strip them from generated Makefile.am-s where they are not needed. Also, replace M4 macro prefixes when requested. Finally, omit calls to error() for libposix.
Bruno Haible 1820a913 2010-12-19T18:35:54 unsetenv: Add missing declaration on OSF/1 5.1. * lib/stdlib.in.h (setenv): Test HAVE_DECL_UNSETENV, not HAVE_UNSETENV. * m4/setenv.m4 (gl_FUNC_UNSETENV): Test whether unsetenv is declared. Don't set HAVE_UNSETENV. In the test program, set _BSD. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_DECL_UNSETENV, not HAVE_UNSETENV. * modules/stdlib (Makefile.am): Substitute HAVE_DECL_UNSETENV, not HAVE_UNSETENV. * doc/posix-functions/unsetenv.texi: Mention the OSF/1 5.1 problem.
Bruno Haible ce700d8c 2010-12-19T18:08:03 setenv: Add missing declaration on OSF/1 5.1. * lib/stdlib.in.h (setenv): Test HAVE_DECL_SETENV, not HAVE_SETENV. * m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE): Test whether setenv is declared. Don't set HAVE_SETENV. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_DECL_SETENV, not HAVE_SETENV. * modules/stdlib (Makefile.am): Substitute HAVE_DECL_SETENV, not HAVE_SETENV. * doc/posix-functions/setenv.texi: Mention the OSF/1 5.1 problem.
Bruno Haible 968e74c2 2010-10-04T23:35:51 Avoid line length limitation from HP NonStop system header files. * m4/include_next.m4 (gl_INCLUDE_NEXT): Define also PRAGMA_COLUMNS. * lib/arpa_inet.in.h: Use PRAGMA_COLUMNS. * lib/ctype.in.h: Likewise. * lib/dirent.in.h: Likewise. * lib/errno.in.h: Likewise. * lib/fcntl.in.h: Likewise. * lib/float.in.h: Likewise. * lib/getopt.in.h: Likewise. * lib/iconv.in.h: Likewise. * lib/inttypes.in.h: Likewise. * lib/langinfo.in.h: Likewise. * lib/locale.in.h: Likewise. * lib/math.in.h: Likewise. * lib/netdb.in.h: Likewise. * lib/netinet_in.in.h: Likewise. * lib/poll.in.h: Likewise. * lib/pthread.in.h: Likewise. * lib/pty.in.h: Likewise. * lib/sched.in.h: Likewise. * lib/se-selinux.in.h: Likewise. * lib/search.in.h: Likewise. * lib/signal.in.h: Likewise. * lib/spawn.in.h: Likewise. * lib/stdarg.in.h: Likewise. * lib/stddef.in.h: Likewise. * lib/stdint.in.h: Likewise. * lib/stdio.in.h: Likewise. * lib/stdlib.in.h: Likewise. * lib/string.in.h: Likewise. * lib/strings.in.h: Likewise. * lib/sys_file.in.h: Likewise. * lib/sys_ioctl.in.h: Likewise. * lib/sys_select.in.h: Likewise. * lib/sys_socket.in.h: Likewise. * lib/sys_stat.in.h: Likewise. * lib/sys_time.in.h: Likewise. * lib/sys_times.in.h: Likewise. * lib/sys_utsname.in.h: Likewise. * lib/sys_wait.in.h: Likewise. * lib/sysexits.in.h: Likewise. * lib/termios.in.h: Likewise. * lib/time.in.h: Likewise. * lib/unistd.in.h: Likewise. * lib/wchar.in.h: Likewise. * lib/wctype.in.h: Likewise. * modules/arpa_inet (Makefile.am): Substitute PRAGMA_COLUMNS. * modules/ctype (Makefile.am): Likewise. * modules/dirent (Makefile.am): Likewise. * modules/errno (Makefile.am): Likewise. * modules/fcntl-h (Makefile.am): Likewise. * modules/float (Makefile.am): Likewise. * modules/getopt-posix (Makefile.am): Likewise. * modules/iconv-h (Makefile.am): Likewise. * modules/inttypes (Makefile.am): Likewise. * modules/langinfo (Makefile.am): Likewise. * modules/locale (Makefile.am): Likewise. * modules/math (Makefile.am): Likewise. * modules/netdb (Makefile.am): Likewise. * modules/netinet_in (Makefile.am): Likewise. * modules/poll-h (Makefile.am): Likewise. * modules/pthread (Makefile.am): Likewise. * modules/pty (Makefile.am): Likewise. * modules/sched (Makefile.am): Likewise. * modules/search (Makefile.am): Likewise. * modules/selinux-h (Makefile.am): Likewise. * modules/signal (Makefile.am): Likewise. * modules/spawn (Makefile.am): Likewise. * modules/stdarg (Makefile.am): Likewise. * modules/stddef (Makefile.am): Likewise. * modules/stdint (Makefile.am): Likewise. * modules/stdio (Makefile.am): Likewise. * modules/stdlib (Makefile.am): Likewise. * modules/string (Makefile.am): Likewise. * modules/strings (Makefile.am): Likewise. * modules/sys_file (Makefile.am): Likewise. * modules/sys_ioctl (Makefile.am): Likewise. * modules/sys_select (Makefile.am): Likewise. * modules/sys_socket (Makefile.am): Likewise. * modules/sys_stat (Makefile.am): Likewise. * modules/sys_time (Makefile.am): Likewise. * modules/sys_times (Makefile.am): Likewise. * modules/sys_utsname (Makefile.am): Likewise. * modules/sys_wait (Makefile.am): Likewise. * modules/sysexits (Makefile.am): Likewise. * modules/termios (Makefile.am): Likewise. * modules/time (Makefile.am): Likewise. * modules/unistd (Makefile.am): Likewise. * modules/wchar (Makefile.am): Likewise. * modules/wctype (Makefile.am): Likewise.
Bruno Haible 479f2917 2010-10-02T11:44:20 New module 'system-posix'. * modules/system-posix: New file. * lib/stdlib.in.h: Include <sys/wait.h> only when the 'system-posix' module is present. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize GNULIB_SYSTEM_POSIX. * modules/stdlib (Depends-on): Remove sys_wait. (Makefile.am): Substitute GNULIB_SYSTEM_POSIX. * doc/posix-functions/system.texi: Mention the new module. * doc/posix-headers/stdlib.texi: Likewise. * tests/test-stdlib.c: If GNULIB_TEST_SYSTEM_POSIX is not defined, define test_sys_wait_macros to a no-op. Reported by Sam Steingold <sds@gnu.org>.
Eric Blake 91935a63 2010-09-15T15:25:43 stdlib: work around MirBSD WEXITSTATUS bug * lib/stdlib.in.h (includes): Guarantee WEXITSTATUS. * modules/stdlib (Depends-on): Add sys_wait. * tests/test-sys_wait.c (main): Enhance test. * tests/test-stdlib.c (main): Likewise. * doc/posix-headers/stdlib.texi (stdlib.h): Document the bug. Signed-off-by: Eric Blake <eblake@redhat.com>
Bruno Haible 5518d301 2010-07-12T18:54:13 New module '_Exit'.
Bruno Haible 12619428 2010-06-22T00:20:46 Fix HAVE_CALLOC_POSIX misnomer.
Bruno Haible 8924d470 2010-06-22T00:11:19 Fix HAVE_REALLOC_POSIX misnomer.
Bruno Haible 3ac9b457 2010-06-22T00:06:29 Fix HAVE_MALLOC_POSIX misnomer.
Bruno Haible eea8c922 2010-04-03T13:44:41 mkstemp: Fix C++ test error on mingw.
Bruno Haible e6c527d5 2010-03-21T21:09:06 New module 'unlockpt'.
Bruno Haible aeca1376 2010-03-21T20:16:38 New module 'grantpt'.
Bruno Haible 3b7b9781 2010-03-21T16:17:22 New module 'ptsname'.
Bruno Haible 7ff877cb 2010-03-08T01:23:38 stdlib: Avoid #define replacements in C++ mode.
Eric Blake cbd5934b 2009-12-16T16:20:28 warn-on-use: use instead of link-warning Each *.in.h file serves two purposes - provide enough self-contained content to serve as a replacement for the system header regardless of the user's compiler, and offer the developer the ability to detect any gnulib modules that might have been inadvertantly excluded. The former requires independence from config.h, and routes everything through a Makefile.am snippet that uses @@ substitution specific to the modules that were in use, with details learned at configure time. The latter works by poisoning anything that gnulib did not replace, but which the developer had natively available, explaining why their tests passed during development. Poisoning relies on gcc features, and requires manual triggering by adding -DGNULIB_POSIXCHECK to CFLAGS; it assumes that <config.h> is properly included. In fact, we do not want to use @@ substitution for HAVE_DECL_* during poisoning, because the warning is only relevant for the gnulib modules which were not included, and thus where the m4 macros to set proper @@ values have not been run. Furthermore, we only need to poison interfaces that already have a declaration; if something is not declared, then the developer wouldn't have been able to link, so their code won't be using the problematic interface in the first place. * modules/stdio (Depends-on, Makefile.am): Drop link-warning. * modules/unistd (Depends-on, Makefile.am): Likewise. * modules/arpa_inet (Depends-on): Replace link-warning with warn-on-use. (Makefile.am): Update rules accordingly. * modules/ctype (Depends-on, Makefile.am): Likewise. * modules/dirent (Depends-on, Makefile.am): Likewise. * modules/fcntl-h (Depends-on, Makefile.am): Likewise. * modules/inttypes (Depends-on, Makefile.am): Likewise. * modules/langinfo (Depends-on, Makefile.am): Likewise. * modules/locale (Depends-on, Makefile.am): Likewise. * modules/math (Depends-on, Makefile.am): Likewise. * modules/search (Depends-on, Makefile.am): Likewise. * modules/signal (Depends-on, Makefile.am): Likewise. * modules/spawn (Depends-on, Makefile.am): Likewise. * modules/stdlib (Depends-on, Makefile.am): Likewise. * modules/string (Depends-on, Makefile.am): Likewise. * modules/strings (Depends-on, Makefile.am): Likewise. * modules/sys_file (Depends-on, Makefile.am): Likewise. * modules/sys_ioctl (Depends-on, Makefile.am): Likewise. * modules/sys_select (Depends-on, Makefile.am): Likewise. * modules/sys_socket (Depends-on, Makefile.am): Likewise. * modules/sys_stat (Depends-on, Makefile.am): Likewise. * modules/sys_times (Depends-on, Makefile.am): Likewise. * modules/sys_utsname (Depends-on, Makefile.am): Likewise. * modules/wchar (Depends-on, Makefile.am): Likewise. * m4/arpa_inet_h.m4 (gl_HEADER_ARPA_INET): Check which functions should be poisoned. * m4/ctype.m4 (gl_CTYPE_H): Likewise. * m4/dirent_h.m4 (gl_DIRENT_H): Likewise. * m4/fcntl_h.m4 (gl_FCNTL_H): Likewise. * m4/inttypes.m4 (gl_INTTYPES_H): Likewise. * m4/langinfo_h.m4 (gl_LANGINFO_H): Likewise. * m4/locale_h.m4 (gl_LOCALE_H): Likewise. * m4/math_h.m4 (gl_MATH_H): Likewise. * m4/search_h.m4 (gl_SEARCH_H): Likewise. * m4/signal_h.m4 (gl_SIGNAL_H): Likewise. * m4/spawn_h.m4 (gl_SPAWN_H): Likewise. * m4/stdio_h.m4 (gl_STDIO_H): Likewise. * m4/stdlib_h.m4 (gl_STDLIB_H): Likewise. * m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Likewise. * m4/strings_h.m4 (gl_HEADER_STRINGS_H_BODY): Likewise. * m4/sys_file_h.m4 (gl_HEADER_SYS_FILE_H_DEFAULTS): Likewise. * m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_H): Likewise. * m4/sys_select_h.m4 (gl_HEADER_SYS_SELECT): Likewise. * m4/sys_socket_h.m4 (gl_HEADER_SYS_SOCKET): Likewise. * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Likewise. * m4/sys_times_h.m4 (gl_SYS_TIMES_H): Likewise. * m4/sys_utsname_h.m4 (gl_SYS_UTSNAME_H): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H): Likewise. * m4/wchar.m4 (gl_WCHAR_H): Likewise. * lib/arpa_inet.in.h: Use _GL_WARN_ON_USE instead of GL_LINK_WARNING. * lib/ctype.in.h: Likewise. * lib/dirent.in.h: Likewise. * lib/fcntl.in.h: Likewise. * lib/inttypes.in.h: Likewise. * lib/langinfo.in.h: Likewise. * lib/locale.in.h: Likewise. * lib/math.in.h: Likewise. * lib/search.in.h: Likewise. * lib/signal.in.h: Likewise. * lib/spawn.in.h: Likewise. * lib/stdio.in.h: Likewise. * lib/stdlib.in.h: Likewise. * lib/string.in.h: Likewise. * lib/strings.in.h: Likewise. * lib/sys_file.in.h: Likewise. * lib/sys_ioctl.in.h: Likewise. * lib/sys_select.in.h: Likewise. * lib/sys_socket.in.h: Likewise. * lib/sys_stat.in.h: Likewise. * lib/sys_times.in.h: Likewise. * lib/sys_utsname.in.h: Likewise. * lib/unistd.in.h: Likewise. * lib/wchar.in.h: Likewise. Signed-off-by: Eric Blake <ebb9@byu.net>
Bruno Haible 69482508 2009-12-11T01:15:28 New module 'arg-nonnull'. Declare which arguments expect non-NULL values.
Bruno Haible 237d7dcd 2009-12-09T12:41:19 link-warning: Add copyright notice.
Eric Blake 8dffeb6f 2009-11-14T22:13:10 setenv, unsetenv: work around various bugs POSIX requires setenv(NULL,"",0), setenv("a=b","",0), unsetenv(NULL), and unsetenv("a=b") to fail with EINVAL, but many BSD implementations lack validation. The gnulib replacement for void unsetenv did not do validation, and the replacement for setenv was out of sync with glibc. Also, some BSD implementations of setenv("a","==",1) eat the leading '='. See also some recent Austin Group interpretations on environ: http://austingroupbugs.net/view.php?id=167 http://austingroupbugs.net/view.php?id=185 * lib/setenv.c (setenv) [!HAVE_SETENV]: Resync from glibc. (setenv) [HAVE_SETENV]: Work around bugs. * lib/unsetenv.c (unsetenv) [HAVE_UNSETENV]: Work around bugs. * m4/setenv.m4 (gl_FUNC_SETENV_SEPARATE, gl_FUNC_UNSETENV): Check for bugs. (gl_FUNC_SETENV): Write in terms of gl_FUNC_SETENV_SEPARATE. * m4/environ.m4 (gl_ENVIRON): Avoid expand-before-require. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Update defaults. * modules/stdlib (Makefile.am): Update substitutions. * lib/stdlib.in.h (setenv, unsetenv): Update prototypes. * doc/posix-functions/setenv.texi (setenv): Document the bugs. * doc/posix-functions/unsetenv.texi (unsetenv): Likewise. * modules/setenv-tests: New test. * modules/unsetenv-tests: Likewise. * tests/test-setenv.c: New file. * tests/test-unsetenv.c: Likewise. Signed-off-by: Eric Blake <ebb9@byu.net>
Eric Blake 964a5233 2009-11-02T15:33:10 mkstemps, mkostemps: new modules * modules/mkostemps: New module. * modules/mkstemps: Likewise. * lib/mkostemps.c (mkostemps): New file. * lib/mkstemps.c (mkstemps): Likewise. * m4/mkostemps.m4 (gl_FUNC_MKOSTEMPS): Likewise. * m4/mkstemps.m4 (gl_FUNC_MKSTEMPS): Likewise. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Add witnesses. * modules/stdlib (Makefile.am): Substitute them. * lib/stdlib.in.h (mkostemps, mkstemps): Declare them. * doc/glibc-functions/mkstemps.texi (mkstemps): New file. * doc/glibc-functions/mkostemps.texi (mkostemps): Likewise. * doc/gnulib.texi (Glibc stdlib.h): Include them. * MODULES.html.sh (File system functions): Mention them. Signed-off-by: Eric Blake <ebb9@byu.net>
Eric Blake 4e793c35 2009-09-11T13:57:55 canonicalize-lgpl: fix glibc bug with trailing slash Consolidate the m4 macros into a single file, since both modules now have to worry about replacing canonicalize_file_name on buggy glibc. * m4/canonicalize-lgpl.m4: Move contents... * m4/canonicalize.m4: ...here. (gl_CANONICALIZE_LGPL): Factor realpath check... (gl_FUNC_REALPATH_WORKS): ...into new macro. Enhance to catch glibc 2.3.5 bug, fixed 2005-04-27. (gl_FUNC_CANONICALIZE_FILENAME_MODE): Use it. (gl_PREREQ_CANONICALIZE_LGPL): Inline... (gl_CANONICALIZE_LGPL_SEPARATE): ...into this macro. * modules/canonicalize-lgpl (Files): Manage file rename. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Provide default. * modules/stdlib (Makefile.am): Substitute witness. * lib/stdlib.in.h (canonicalize_file_name): Declare if replacement is needed. * lib/canonicalize-lgpl.c: Also compile if canonicalize_file_name replacement is required. * lib/canonicalize.c (canonicalize_file_name): Likewise. * doc/glibc-functions/canonicalize_file_name.texi (canonicalize_file_name): Document this. * doc/posix-functions/realpath.texi (realpath): Likewise. Signed-off-by: Eric Blake <ebb9@byu.net>
Eric Blake 240faa59 2009-09-10T15:44:15 canonicalize-lgpl: use native realpath if it works Forward-looking to when more platforms comply with POSIX 2008, but don't provide glibc extensions. For example, this could fix // handling in cygwin 1.7 (well, if cygwin didn't have bugs in .. handling). canonicalize can't use native realpath, for the same reason that it does not use resolvepath. * lib/canonicalize-lgpl.c (realpath): Guard with FUNC_REALPATH_WORKS. * lib/stdlib.in.h (realpath): Make declaration optional based on HAVE_REALPATH. * m4/canonicalize-lgpl.m4 (gl_CANONICALIZE_LGPL): Check whether native realpath works. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Provide default. * modules/stdlib (Makefile.am): Substitute witness. Signed-off-by: Eric Blake <ebb9@byu.net>
Eric Blake 99ad8ac7 2009-09-11T12:18:10 canonicalize, canonicalize-lgpl: use <stdlib.h> Match current gnulib conventions of glibc functions being declared in the same header as glibc. This makes it easier to replace broken canonicalize_file_name. canonicalize still requires "canonicalize.h" because canonicalize_filename_mode is not in glibc. With this patch, canonicalize-lgpl always provides realpath and canonicalize_file_name, while canonicalize can provide canonicalize_file_name but not realpath; if both modules are in use, canonicalize_file_name comes from the LGPLv2+ sources, but the testing comes from canonicalize. * modules/canonicalize-lgpl (Files): Drop canonicalize.h. (Include): Mention <stdlib.h>. (configure.ac): Mention functions we provide. * modules/canonicalize (configure.ac): Likewise. * m4/canonicalize-lgpl.m4 (gl_CANONICALIZE_LGPL): Always replace realpath if canonicalize_file_name is missing. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Provide defaults. * modules/stdlib (Makefile.am): Substitute witnesses. * lib/stdlib.in.h (canonicalize_file_name, realpath): Declare. * lib/canonicalize-lgpl.c (includes): Adjust accordingly. * lib/canonicalize.h (canonicalize_file_name): Drop declaration. * NEWS: Document this. * doc/glibc-functions/canonicalize_file_name.texi (canonicalize_file_name): Likewise. * doc/posix-functions/realpath.texi (realpath): Likewise. * tests/test-canonicalize-lgpl.c (includes): Use <stdlib.h>. Signed-off-by: Eric Blake <ebb9@byu.net>
Eric Blake 6a9b156f 2009-09-17T11:49:36 maint: make Include sections of modules consistent Done with "sed -i 's/^#include //' `git grep -l ^#include modules`". * modules/alloca: Use only header name; no need to list #include. * modules/alloca-opt: Likewise. * modules/arpa_inet: Likewise. * modules/canon-host: Likewise. * modules/configmake: Likewise. * modules/dirent: Likewise. * modules/eealloc: Likewise. * modules/environ: Likewise. * modules/fchdir: Likewise. * modules/fcntl: Likewise. * modules/fcntl-h: Likewise. * modules/gethrxtime: Likewise. * modules/gettime: Likewise. * modules/ignore-value: Likewise. * modules/inet_ntop: Likewise. * modules/inet_pton: Likewise. * modules/inttypes: Likewise. * modules/isnand-nolibm: Likewise. * modules/isnanf-nolibm: Likewise. * modules/mbchar: Likewise. * modules/mbfile: Likewise. * modules/mbiter: Likewise. * modules/mbuiter: Likewise. * modules/netdb: Likewise. * modules/netinet_in: Likewise. * modules/nproc: Likewise. * modules/pagealign_alloc: Likewise. * modules/poll: Likewise. * modules/printf-frexp: Likewise. * modules/pthread: Likewise. * modules/putenv: Likewise. * modules/random_r: Likewise. * modules/relocatable-prog: Likewise. * modules/search: Likewise. * modules/select: Likewise. * modules/selinux-h: Likewise. * modules/settime: Likewise. * modules/signal: Likewise. * modules/size_max: Likewise. * modules/socklen: Likewise. * modules/ssize_t: Likewise. * modules/stdarg: Likewise. * modules/stdbool: Likewise. * modules/stddef: Likewise. * modules/stdint: Likewise. * modules/stdio: Likewise. * modules/stdlib: Likewise. * modules/string: Likewise. * modules/strings: Likewise. * modules/sys_file: Likewise. * modules/sys_ioctl: Likewise. * modules/sys_select: Likewise. * modules/sys_socket: Likewise. * modules/sys_stat: Likewise. * modules/sys_time: Likewise. * modules/sys_times: Likewise. * modules/sys_utsname: Likewise. * modules/sys_wait: Likewise. * modules/sysexits: Likewise. * modules/time: Likewise. * modules/times: Likewise. * modules/tmpfile: Likewise. * modules/trim: Likewise. * modules/unistd: Likewise. * modules/wchar: Likewise. * modules/wctype: Likewise. Signed-off-by: Eric Blake <ebb9@byu.net>
Eric Blake d23630c0 2009-09-10T14:10:41 stdlib: sort witness names * modules/stdlib (Makefile.am): Sort replacements. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Likewise. * lib/stdlib.in.h: Likewise. Signed-off-by: Eric Blake <ebb9@byu.net>
Bruno Haible 0aa929ca 2009-08-23T14:11:27 New module 'mkostemp'.
Jim Meyering 47a8dd64 2009-08-22T11:28:08 annotate automake snippets with $(AM_V_GEN) and $(AM_V_at) This makes it so packages using automake-1.11's silent-rules option can print e.g., a single "GEN configmake.h" line, rather than the 30+ statements that perform the job. If you want to see the actual commands, you can still run "make V=1". Improved-by: Bruno Haible <bruno@clisp.org> * modules/alloca-opt: Add $(AM_V_GEN) and $(AM_V_at) prefixes so that make output is abbreviated when those variables are defined appropriately. * modules/argz: Likewise. * modules/arpa_inet: Likewise. * modules/byteswap: Likewise. * modules/configmake: Likewise. * modules/dirent: Likewise. * modules/errno: Likewise. * modules/fcntl: Likewise. * modules/float: Likewise. * modules/fnmatch: Likewise. * modules/getopt-posix: Likewise. * modules/glob: Likewise. * modules/iconv_open: Likewise. * modules/inttypes: Likewise. * modules/localcharset: Likewise. * modules/locale: Likewise. * modules/math: Likewise. * modules/netdb: Likewise. * modules/netinet_in: Likewise. * modules/poll: Likewise. * modules/posix_spawnp-tests: Likewise. * modules/sched: Likewise. * modules/search: Likewise. * modules/selinux-h: Likewise. * modules/signal: Likewise. * modules/spawn: Likewise. * modules/stdarg: Likewise. * modules/stdbool: Likewise. * modules/stddef: Likewise. * modules/stdint: Likewise. * modules/stdio: Likewise. * modules/stdlib: Likewise. * modules/string: Likewise. * modules/strings: Likewise. * modules/sys_file: Likewise. * modules/sys_ioctl: Likewise. * modules/sys_select: Likewise. * modules/sys_socket: Likewise. * modules/sys_stat: Likewise. * modules/sys_time: Likewise. * modules/sys_times: Likewise. * modules/sys_utsname: Likewise. * modules/sys_wait: Likewise. * modules/sysexits: Likewise. * modules/time: Likewise. * modules/unistd: Likewise. * modules/wchar: Likewise. * modules/wctype: Likewise.
Eric Blake 2f5181b1 2009-08-12T10:23:03 stddef: fix NetBSD 5.0 NULL bug, rather than working around it * tests/test-locale.c: Revert previous patch related to NULL. * tests/test-stdio.c: Likewise. * tests/test-stdlib.c: Likewise. * tests/test-string.c: Likewise. * tests/test-unistd.c: Likewise. * modules/time-tests (Depends-on): Add verify. * modules/wchar-tests (Depends-on): Likewise. * tests/test-time.c: Test for NULL compliance. * tests/test-wchar.c: Likewise. * modules/locale (Depends-on): Add stddef. * modules/stdio (Depends-on): Likewise. * modules/stdlib (Depends-on): Likewise. * modules/string (Depends-on): Likewise. * modules/time (Depends-on): Likewise. * modules/unistd (Depends-on): Likewise. * modules/wchar (Depends-on): Likewise. * lib/locale.in.h (includes): Use <stddef.h> to fix NULL. * lib/stdlib.in.h (includes): Likewise. * lib/string.in.h (includes): Likewise. * lib/time.in.h (includes): Likewise. * lib/unistd.in.h (includes): Likewise. * m4/locale_h.m4 (gl_LOCALE_H): Replace locale.h if stddef.h was replaced. * m4/wchar.m4 (gl_WCHAR_H): Likewise. * m4/stddef_h.m4: New file. * modules/stddef: Likewise. * lib/stddef.in.h: Likewise. * modules/stddef-tests: Likewise. * tests/test-stddef.c: Likewise. * MODULES.html.sh (Basic types <stddef.h>): Mention new module. * doc/posix-headers/stddef.texi (stddef.h): Document the bug. * doc/posix-headers/locale.texi (locale.h): Likewise. * doc/posix-headers/stdio.texi (stdio.h): Likewise. * doc/posix-headers/stdlib.texi (stdlib.h): Likewise. * doc/posix-headers/string.texi (string.h): Likewise. * doc/posix-headers/time.texi (time.h): Likewise. * doc/posix-headers/unistd.texi (unistd.h): Likewise. * doc/posix-headers/wchar.texi (wchar.h): Likewise. Signed-off-by: Eric Blake <ebb9@byu.net>
Simon Josefsson 99856e7f 2009-03-24T20:53:51 modules/stdlib (Depends-on): Add stdint. Needed when defining struct random_data on, for example, HP-UX 10.20. Reported by Albert Chin <bug-gnulib@mlists.thewrittenword.com>.
Bruno Haible 15108d51 2009-01-25T21:47:34 Avoid redefining 'struct random_data' on OSF/1 5.1.
Simon Josefsson fd3784ce 2008-10-26T11:04:17 stdlib: Provide struct random_data. * m4/stdlib_h.m4: Check for struct random_data. Initialize and substitute HAVE_STRUCT_RANDOM_DATA. * lib/stdlib.in.h [!HAVE_STRUCT_RANDOM_DATA]: Provide struct random_data. * modules/stdlib (Makefile.am): Substitute HAVE_STRUCT_RANDOM_DATA.
Jim Meyering 26af642c 2008-10-22T11:19:27 random_r: new module * modules/random_r: New file. * m4/random_r.m4: New file. * lib/random_r.c: New file, from glibc. * modules/random_r-tests: New file. * tests/test-random_r.c: New file. * lib/stdlib.in.h (srandom_r, initstate_r, setstate_r, random_r): Declare. (RAND_MAX): Define. * m4/stdlib_h.m4: Define and AC_SUBST GNULIB_RANDOM_R and HAVE_RANDOM_R. * modules/stdlib: Substitute them, too. * MODULES.html.sh (Extra functions based on POSIX:2001) [Misc]: Add it. * doc/glibc-functions/initstate_r.texi: Mention the new module. * doc/glibc-functions/random_r.texi: Likewise. * doc/glibc-functions/setstate_r.texi: Likewise. * doc/glibc-functions/srandom_r.texi: Likewise. * config/srclist.txt: Mention it.
Bruno Haible 2fbd3153 2008-10-19T19:11:37 New module 'atoll'.
Bruno Haible 17e17901 2008-10-19T18:50:15 Add strtoull() declaration to <stdlib.h>.
Bruno Haible 6688506d 2008-10-19T18:42:31 Add strtoll() declaration to <stdlib.h>.
Bruno Haible fe18f20f 2008-10-19T12:57:06 Add a getloadavg() declaration to <stdlib.h>.
Bruno Haible c2318e88 2008-08-30T03:09:15 Avoid some "gcc -pedantic" warnings.
Bruno Haible b52ae09f 2008-04-29T02:55:59 Declare rpmatch.
Eric Blake de138ad6 2008-03-29T13:50:21 Document various strtod bugs, with some fixes. * doc/posix-functions/strtod.texi (strtod): Document bugs with "-0x", "inf", "nan", and hex constants. * doc/posix-functions/atof.texi (atof): Likewise. * modules/stdlib (Makefile.am): Support strtod. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Likewise. * m4/strtod.m4 (gl_FUNC_STRTOD): Fit in stdlib framework, and detect additional strtod bugs. * lib/stdlib.in.h (rpl_strtod): Add declarations. * lib/strtod.c (strtod): Return -0.0 on negative underflow. Use bool where appropriate. Parse 'inf' and 'nan'. * tests/test-strtod.c: New file. * modules/strtod (Depends-on): Add stdbool, stdlib. (configure.ac): Turn on module indicator. * modules/strtod-tests: New module. Signed-off-by: Eric Blake <ebb9@byu.net>
Bruno Haible 83f097cf 2008-03-11T05:25:50 Fix commit from 2007-06-20.
Bruno Haible 81e61b22 2007-12-26T16:20:10 Split setenv module into setenv and unsetenv. Get rid of setenv.h.
Bruno Haible 2de77d62 2007-11-01T13:23:33 Define the putenv substitute in <stdlib.h> rather than in <config.h>.
Simon Josefsson c27fe97d 2007-10-08T12:50:32 Change license to LGPLv2+ on dummy, float, realloc, stdlib.
Bruno Haible 14689cee 2007-10-02T00:31:18 Rename stdlib_.h to stdlib.in.h.
Bruno Haible 23631b7e 2007-09-09T13:01:44 New module 'malloc-posix'.
Bruno Haible 471d58a5 2007-09-09T12:56:27 New module 'realloc-posix'.
Bruno Haible e8b82791 2007-09-09T12:29:37 New module 'calloc-posix'.
Paul Eggert b6a9d33e 2007-06-21T04:39:09 * m4/include_next.m4 (gl_INCLUDE_NEXT): Define and AC_SUBST INCLUDE_NEXT. (gl_CHECK_NEXT_HEADERS): New macro. * m4/fcntl_h.m4 (gl_FCNTL_H): use gl_CHECK_NEXT_HEADERS instead of the obsolescent gl_ABSOLUTE_HEADER. * m4/float_h.m4 (gl_FLOAT_H): Likewise. * m4/inttypes.m4 (gl_INTTYPES_H): Likewise. * m4/math_h.m4 (gl_MATH_H): Likewise. * m4/search_h.m4 (gl_SEARCH_H): Likewise. * m4/signal_h.m4 (gl_SIGNAL_H): Likewise. * m4/stdint.m4 (gl_STDINT_H): Likewise. * m4/stdio_h.m4 (gl_STDIO_H): Likewise. * m4/stdlib_h.m4 (gl_STDLIB_H): Likewise. * m4/string_h.m4 (gl_HEADER_STRING_H_BODY): Likewise. * m4/sys_stat_h.m4 (gl_HEADER_SYS_STAT_H): Likewise. * m4/sys_time_h.m4 (gl_HEADER_SYS_TIME_H_BODY): Likewise. * m4/time_h.m4 (gl_HEADER_TIME_H_BODY): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H): Likewise. * m4/wchar.m4 (gl_WCHAR_H): Likewise. * m4/wctype.m4 (gl_WCTYPE_H): Likewise. * m4/inttypes.m4 (gl_INTTYPES_H): Define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H to avoid the problem of unclean builds, since ABSOLUTE_INTTYPES_H is no longer being defined. * m4/stdint.m4 (gl_STDINT_H): Likewise, for _GL_JUST_INCLUDE_SYSTEM_STDINT_H. * lib/fcntl_.h: Use @INCLUDE_NEXT@ @NEXT_foo_H@ rather than @HAVE_INCLUDE_NEXT@ and @ABSOLUTE_foo_H@. * lib/float_.h: Likewise. * lib/inttypes_.h: Likewise. * lib/math_.h: Likewise. * lib/search_.h: Likewise. * lib/signal_.h: Likewise. * lib/stdint_.h: Likewise. * lib/stdio_.h: Likewise. * lib/stdlib_.h: Likewise. * lib/string_.h: Likewise. * lib/sys_stat_.h: Likewise. * lib/sys_time_.h: Likewise. * lib/time_.h: Likewise. * lib/unistd_.h: Likewise. * lib/wchar_.h: Likewise. * lib/wctype_.h: Likewise. * modules/fcntl (Depends-on): Depend on absolute-header, not include_next. (Makefile): Substitute INCLUDE_NEXT and NEXT_foo_H, not HAVE_INCLUDE_NEXT and ABSOLUTE_foo_H. * modules/float: Likewise. * modules/inttypes: Likewise. * modules/math: Likewise. * modules/search: Likewise. * modules/signal: Likewise. * modules/stdint: Likewise. * modules/stdio: Likewise. * modules/stdlib: Likewise. * modules/string: Likewise. * modules/sys_stat: Likewise. * modules/sys_time: Likewise. * modules/time: Likewise. * modules/unistd: Likewise. * modules/wchar: Likewise. * modules/wctype: Likewise. * modules/sys_stat: Change maintainer to "all". * modules/unistd: Likewise.
Paul Eggert ab681e53 2007-05-17T06:14:29 * lib/fcntl_.h: Prefer #include_next <foo.h> to #include @ABSOLUTE_FOO_H@ if @HAVE_INCLUDE_NEXT@. This works better with GCC 4.2, which otherwise issues a lot of warnings. * lib/inttypes_.h, lib/math_.h, lib/search_.h, lib/signal_.h: * lib/stdint_.h, lib/stdio_.h, lib/stdlib_.h, lib/string_.h: * lib/sys_time_.h, lib/time_.h, lib/wchar_.h, lib/wctype_.h: Likewise. * lib/stdlib_.h: Don't bother with #pragma GCC system_header, as it should no longer be needed. * lib/string_.h: Likewise. * modules/absolute-header (HAVE_INCLUDE_NEXT): New 'make' define. * modules/fcntl (fcntl.h): Substitute @HAVE_INCLUDE_NEXT@. * modules/inttypes (inttypes.h): Likewise. * modules/math (math.h): Likewise. * modules/search (search.h): Likewise. * modules/signal (signal.h): Likewise. * modules/stdint (stdint.h): Likewise. * modules/stdio (stdio.h): Likewise. * modules/stdlib (stdlib.h): Likewise. * modules/string (string.h): Likewise. * modules/sys_time (sys/time.h): Likewise. * modules/time (time.h): Likewise. * modules/wchar (wchar.h): Likewise. * modules/wctype (wtype.h): Likewise.
Bruno Haible 2250374d 2007-03-17T19:02:51 Ensure we get the mkstemp() declaration. On MacOS X, it comes from <unistd.h>.
Bruno Haible 41dccf6a 2007-02-19T00:08:40 getsubopt.h is replaced with <stdlib.h>.
Bruno Haible 8fb02d1c 2007-02-18T15:39:54 New module 'stdlib'.