| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
- /* A GNU-like <stdlib.h>.
- Copyright (C) 1995, 2001-2004, 2006-2007 Free Software Foundation, Inc.
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
- #if defined __need_malloc_and_calloc
- /* Special invocation convention inside glibc header files. */
- #include_next <stdlib.h>
- #else
- /* Normal invocation convention. */
- #ifndef _GL_STDLIB_H
- /* The include_next requires a split double-inclusion guard. */
- #include_next <stdlib.h>
- #ifndef _GL_STDLIB_H
- #define _GL_STDLIB_H
- /* The definition of GL_LINK_WARNING is copied here. */
- /* GL_LINK_WARNING("literal string") arranges to emit the literal string as
- a linker warning on most glibc systems.
- We use a linker warning rather than a preprocessor warning, because
- #warning cannot be used inside macros. */
- #ifndef GL_LINK_WARNING
- /* This works on platforms with GNU ld and ELF object format.
- Testing __GLIBC__ is sufficient for asserting that GNU ld is in use.
- Testing __ELF__ guarantees the ELF object format.
- Testing __GNUC__ is necessary for the compound expression syntax. */
- # if defined __GLIBC__ && defined __ELF__ && defined __GNUC__
- # define GL_LINK_WARNING(message) \
- GL_LINK_WARNING1 (__FILE__, __LINE__, message)
- # define GL_LINK_WARNING1(file, line, message) \
- GL_LINK_WARNING2 (file, line, message) /* macroexpand file and line */
- # define GL_LINK_WARNING2(file, line, message) \
- GL_LINK_WARNING3 (file ":" #line ": warning: " message)
- # define GL_LINK_WARNING3(message) \
- ({ static const char warning[sizeof (message)] \
- __attribute__ ((__unused__, \
- __section__ (".gnu.warning"), \
- __aligned__ (1))) \
- = message "\n"; \
- (void)0; \
- })
- # else
- # define GL_LINK_WARNING(message) ((void) 0)
- # endif
- #endif
- /* Some systems do not define EXIT_*, despite otherwise supporting C89. */
- #ifndef EXIT_SUCCESS
- # define EXIT_SUCCESS 0
- #endif
- /* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere
- with proper operation of xargs. */
- #ifndef EXIT_FAILURE
- # define EXIT_FAILURE 1
- #elif EXIT_FAILURE != 1
- # undef EXIT_FAILURE
- # define EXIT_FAILURE 1
- #endif
- #ifdef __cplusplus
- extern "C" {
- #endif
- #if 1
- # if !1
- # undef malloc
- # define malloc rpl_malloc
- extern void * malloc (size_t size);
- # endif
- #elif defined GNULIB_POSIXCHECK
- # undef malloc
- # define malloc(s) \
- (GL_LINK_WARNING ("malloc is not POSIX compliant everywhere - " \
- "use gnulib module malloc-posix for portability"), \
- malloc (s))
- #endif
- #if 0
- # if !1
- # undef realloc
- # define realloc rpl_realloc
- extern void * realloc (void *ptr, size_t size);
- # endif
- #elif defined GNULIB_POSIXCHECK
- # undef realloc
- # define realloc(p,s) \
- (GL_LINK_WARNING ("realloc is not POSIX compliant everywhere - " \
- "use gnulib module realloc-posix for portability"), \
- realloc (p, s))
- #endif
- #if 0
- # if !1
- # undef calloc
- # define calloc rpl_calloc
- extern void * calloc (size_t nmemb, size_t size);
- # endif
- #elif defined GNULIB_POSIXCHECK
- # undef calloc
- # define calloc(n,s) \
- (GL_LINK_WARNING ("calloc is not POSIX compliant everywhere - " \
- "use gnulib module calloc-posix for portability"), \
- calloc (n, s))
- #endif
- #if 0
- /* Assuming *OPTIONP is a comma separated list of elements of the form
- "token" or "token=value", getsubopt parses the first of these elements.
- If the first element refers to a "token" that is member of the given
- NULL-terminated array of tokens:
- - It replaces the comma with a NUL byte, updates *OPTIONP to point past
- the first option and the comma, sets *VALUEP to the value of the
- element (or NULL if it doesn't contain an "=" sign),
- - It returns the index of the "token" in the given array of tokens.
- Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined.
- For more details see the POSIX:2001 specification.
- http://www.opengroup.org/susv3xsh/getsubopt.html */
- # if !1
- extern int getsubopt (char **optionp, char *const *tokens, char **valuep);
- # endif
- #elif defined GNULIB_POSIXCHECK
- # undef getsubopt
- # define getsubopt(o,t,v) \
- (GL_LINK_WARNING ("getsubopt is unportable - " \
- "use gnulib module getsubopt for portability"), \
- getsubopt (o, t, v))
- #endif
- #if 0
- # if !1
- /* Create a unique temporary directory from TEMPLATE.
- The last six characters of TEMPLATE must be "XXXXXX";
- they are replaced with a string that makes the directory name unique.
- Returns TEMPLATE, or a null pointer if it cannot get a unique name.
- The directory is created mode 700. */
- extern char * mkdtemp (char * /*template*/);
- # endif
- #elif defined GNULIB_POSIXCHECK
- # undef mkdtemp
- # define mkdtemp(t) \
- (GL_LINK_WARNING ("mkdtemp is unportable - " \
- "use gnulib module mkdtemp for portability"), \
- mkdtemp (t))
- #endif
- #if 0
- # if 0
- /* Create a unique temporary file from TEMPLATE.
- The last six characters of TEMPLATE must be "XXXXXX";
- they are replaced with a string that makes the file name unique.
- The file is then created, ensuring it didn't exist before.
- The file is created read-write (mask at least 0600 & ~umask), but it may be
- world-readable and world-writable (mask 0666 & ~umask), depending on the
- implementation.
- Returns the open file descriptor if successful, otherwise -1 and errno
- set. */
- # define mkstemp rpl_mkstemp
- extern int mkstemp (char * /*template*/);
- # else
- /* On MacOS X 10.3, only <unistd.h> declares mkstemp. */
- # include <unistd.h>
- # endif
- #elif defined GNULIB_POSIXCHECK
- # undef mkstemp
- # define mkstemp(t) \
- (GL_LINK_WARNING ("mkstemp is unportable - " \
- "use gnulib module mkstemp for portability"), \
- mkstemp (t))
- #endif
- #if 0
- # if 0
- # undef putenv
- # define putenv rpl_putenv
- extern int putenv (char *string);
- # endif
- #endif
- #if 0
- # if !1
- /* Set NAME to VALUE in the environment.
- If REPLACE is nonzero, overwrite an existing value. */
- extern int setenv (const char *name, const char *value, int replace);
- # endif
- #endif
- #if 0
- # if 1
- # if 0
- /* On some systems, unsetenv() returns void.
- This is the case for MacOS X 10.3, FreeBSD 4.8, NetBSD 1.6, OpenBSD 3.4. */
- # define unsetenv(name) ((unsetenv)(name), 0)
- # endif
- # else
- /* Remove the variable NAME from the environment. */
- extern int unsetenv (const char *name);
- # endif
- #endif
- #ifdef __cplusplus
- }
- #endif
- #endif /* _GL_STDLIB_H */
- #endif /* _GL_STDLIB_H */
- #endif
|