X-Git-Url: https://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2FChangeLog;h=4e3aed77ae6caec8cc6fe78b6af24c7afa6e1b8f;hb=955a407e3c7dd91d6322a65747fb61403978c6a8;hp=ed94dee091924ef9657640c2aeb6960824142f4a;hpb=89e15da69a6c83aef9b0f324286465af40560ad9;p=gnulib.git diff --git a/lib/ChangeLog b/lib/ChangeLog index ed94dee09..4e3aed77a 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,687 @@ +2006-01-25 Simon Josefsson + + * socket_.h: Set WINVER to 0x0501, to make sure getaddrinfo + prototype is visible on mingw32. + + * getaddrinfo.h: Define EAI_ADDRFAMILY and EAI_SYSTEM if not set, + for mingw32. + + * gai_strerror.c, getaddrinfo.h: Protect netdb.h #include (for + mingw32). + +2006-01-26 Paul Eggert + + * fts.c (diropen): Open with O_NOCTTY | O_NONBLOCK too. Don't + attempt to open for write; this always fails, at least on POSIX + hosts. This reinstates the 2006-01-09 change, which was + inadvertently removed. + +2006-01-26 Bruno Haible + Paul Eggert + + * stdbool_.h (_Bool) + [(! (defined __cplusplus || defined __BEOS__) + && !defined __GNUC__ + && !(defined __HP_cc || defined __xlc__ + || (defined __SUNPRO_C && (__SUNPRO_C < 0x550 || __STDC__ == 1)) + || defined __sgi))]: + #define to signed char in these cases too; this simplifies + the code (so that we don't have to worry about HP-UX, AIX, SunPRO, + etc., separately) and makes it more conservative. + +2006-01-21 Jim Meyering + + Sync from the stable (b5) branch of coreutils: + + * fts.c (fts_children): Don't let close() clobber errno from + failed fchdir(). + + * fts.c (fts_stat): When following a symlink-to-directory, + don't necessarily interpret stat-fails+lstat-succeeds as indicating + a dangling symlink. That can also happen at least for ELOOP. + The fix: return FTS_SLNONE only when the stat errno is ENOENT. + FYI, this bug predates the inclusion of fts.c in coreutils. + + * fts.c (fts_open): Put new maxarglen declaration and uses + in their own block, so pre-c99 compilers don't object. + + Avoid the double-free (first in fts_read, second in fts_close) that + would occur when an `active' directory is made inaccessible (e.g., + via chmod a-x) during a traversal. + * fts.c (fts_read): After a failed fchdir, update sp->fts_cur + before returning. Reproduce this failure by + mkdir -p a/b; cd a; chmod a-x . b + Reported by Stavros Passas. + +2006-01-25 Sergey Poznyakoff + + * argp-namefrob.h: Bugfix. Remove stray # + +2006-01-25 Bruno Haible + + * stdbool_.h (_Bool) [IRIX cc]: Define as 'signed char', to avoid + warnings. + Reported by Paul Eggert. + +2006-01-25 Jim Meyering + + * fileblocks.c: Remove more useless parentheses. + * readutmp.h: Likewise. + +2006-01-24 Bruno Haible + + * stdbool_.h (_Bool) [__cplusplus]: Don't define if the compiler already + has it. + Report and patch by Albert Chin-A-Young on + 2005-11-26. + + * stdbool_.h (_Bool) [HP-UX cc, AIX cc,xlc]: Define as 'signed char' + to avoid problems with the built-in _Bool type. + Reported by Paul Eggert on 2005-11-26. + +2006-01-24 Jim Meyering + + * socket_.h: Remove useless parentheses in uses of cpp `defined'. + +2006-01-24 Simon Josefsson + + * socket_.h (SHUT_WR, SHUT_RDWR): Don't hardcode, suggested by + Bruno. + +2006-01-23 Paul Eggert + + Work around porting bugs reported by Dieter in + . + * getopt.c (_NOPROTO): Remove; no longer needed. + Include and in all environments; it's safe now. + Include "getopt.h" first, to check interface. + (getenv): Declare only if defined HAVE_DECL_GETENV && + !HAVE_DECL_GETENV. + * strndup.c [!_LIBC]: Include "strndup.h" to get prototype. + (__strndup): Revert to K&R-style function dfns, the glibc style. + * strnlen.c: Don't claim it's taken from glibc; it's not. + (strnlen, __strnlen): Remove #defines and #undefs; not needed. + Include strnlen.h first, to get prototype properly. + (strnlen): Renamed from __strnlen. + Remove weak alias. + +2006-01-23 Ulrich Drepper + + These changes imported from libc. + * getopt.c: Use __fxprintf instead of inline stream orientation + test and two separate function calls. + * strndup.c (__strndup): Add libc_hidden_def. + +2006-01-22 Bruno Haible + + * vasnprintf.c (VASNPRINTF): In the computation of the size of the + temporary buffer for sprintf, take into account the precision also + for 'd', 'i', 'u', 'o', 'x', 'X'. + +2006-01-22 Paul Eggert + + * quotearg.c (quotearg_buffer_restyled): Add "default: break;" + to pacify gcc -Wswitch-default. + +2006-01-21 Sergey Poznyakoff + + * argp-help.c (usage_long_opt): Do not print DOC options. + (__argp_base_name): Removed + * argp-namefrob.h (__argp_basename): Removed definition. Was a + typo. + (__argp_base_name): Provide macro definition or extern declaration + depending on the configuration + +2006-01-20 Simon Josefsson + + * inet_ntop.h: Unconditionally include sys/socket.h. + +2006-01-19 Simon Josefsson + + * socket_.h: Map SHUT_RD, SHUT_WR, SHUT_RDWR correctly. + +2006-01-12 Simon Josefsson + + * base64.c: Fix warning, reported by Bruno Haible + and patch by Paul Eggert . + +2006-01-11 Paul Eggert + + Sync from coreutils. + * md5.c: Fix commentary typos. + (alignof, UNALIGNED_P): No need for a GCC-specific version. + * md5.h (__attribute__): Remove; unused. + * sha1.c: Fix commentary to match md5 better. + * sha1.h (struct sha1_ctx): Use a word buffer, not a byte buffer, + so that we don't need to worry about alignment. All uses changed. + This merges the 2005-10-28 md5 change into sha1. + +2006-01-11 Jim Meyering + + Sync from coreutils. + * md5.c (OP): Fix spacing. + +2006-01-11 Simon Josefsson + + * stdint_.h (SIZE_MAX): Add missing (. + +2006-01-10 Bruno Haible + + * argp.h (__const): Remove macro. Use const instead. + * argp-fmtstream.h (__const): Likewise. + * glob_.h (__const): Remove macro. + * glob-libc.h: Use const instead of __const. + +2006-01-10 Jim Meyering + + Avoid the double-free (first in fts_read, second in fts_close) that + would occur when an `active' directory is made inaccessible (e.g., + via chmod a-x) during a traversal. + * fts.c (fts_read): After a failed fchdir, update sp->fts_cur + before returning. Reproduce this failure by + mkdir -p a/b; cd a; chmod a-x . b + Reported by Stavros Passas. + + Sync from coreutils. + * sha1.c: Tweak grammar in a comment. + +2006-01-10 Paul Eggert + + * regex_internal.h (BITSET_WORD_BITS): + Work around a bug in 64-bit PGC (before version 6.1-2), where the + preprocessor mishandles large unsigned values as if they were signed. + Problem reported by Claudio Fontana in + . + +2006-01-10 Simon Josefsson + + * socket_.h: New file. + +2006-01-10 Bruno Haible + + * localcharset.c: Update from GNU gettext. + +2006-01-09 Paul Eggert + + Sync from coreutils. + * chdir-long.c (cdb_free): Don't bother trying to open directory + for write access: POSIX says that must fail. + * fts.c (diropen): Likewise. + * save-cwd.c (save_cwd): Likewise. + * chdir-long.c (cdb_free): Open with O_NOCTTY | O_NONBLOCK as + well, for minor improvements on hosts that lack O_DIRECTORY. + * chown.c (rpl_chown) [CHOWN_MODIFIES_SYMLINK]: + Don't try O_WRONLY unless O_RDONLY failed wth EACCES. + Fall back on chown if open failed with EACCES. + + * gettime.c (gettime) [!defined OK_TO_USE_1S_CLOCK]: + Report an error at compile-time if only a 1-second nominal clock + resolution is found. + + * lchmod.h: New file. + * mkdir-p.c: Include lchmod.h, lchown.h. + (make_dir_parents): Use lchown rather than chown, and + lchmod rather than chmod. + + * mountlist.c (ME_DUMMY): "none" and "proc" file systems are dummies + too. Problem with "none" reported by Bob Proulx. Problem with + "proc" reported by n0dalus. + + * mountlist.c: Include . + (dev_from_mount_options) + [defined MOUNTED_GETMNTENT1 || defined MOUNTED_GETMNTENT2]: + New function. It no longer assumes "dev=" has the System V meaning + on Linux (since it doesn't). It also parses "dev=" more carefully. + (read_file_system_list) + [defined MOUNTED_GETMNTENT1 || defined MOUNTED_GETMNTENT2]: Use it. + MOUNTED_GETMNTENT2 is new here; the code didn't used to look for + dev= in that case. + + * posixtm.h (PDS_PRE_2000): New macro. + * posixtm.c (year): Arg is now syntax_bits rather than allow_century. + All usages changed. Reject dates outside the range 1969-1999 if + PDS_PRE_2000 is used. + +2006-01-09 Jim Meyering + + Sync from coreutils. + + * version-etc.c (COPYRIGHT_YEAR): Update to 2006. + + * chdir-safer.h, chdir-safer.c: New files. + + * modechange.c (mode_compile): Reject an invalid mode string + that starts with an octal digit. From Andreas Gruenbacher. + + * openat.c: Include "fcntl--.h" and "unistd--.h", to map open + and dup to open_safer and dup_safer, respectively. + (openat_permissive): Fix typo in comment. + + * openat.c: Don't include , , , + "gettext.h"; either no longer needed or are guaranteed by openat.h. + (_): Remove; no longer needed. + (openat): Renamed from rpl_openat; no need for rpl_openat + since openat.h renames openat for us. + Replace most of the body with a call to openat_permissive, + to avoid duplicate code. + Port to (probably hypothetical) environments were mode_t is + wider than int. + (openat_permissive): Require mode arg, so that we can check + types better. Put it just after flags. Change cwd failure + indicator from pointer-to-bool to pointer-to-errno-value. + All callers changed. + Invoke openat_save_fail and/or openat_restore_fail if + cwd_errno is null, so that openat can call us. + (openat_permissive, fdopendir, fstatat, unlinkat): + Simplify errno handling to avoid some duplicate code, + as it's OK to set errno on success. + * openat.h: Revamp code so that function macros depend on + __OPENAT_PREFIX only, not also on AT_FDCWD. + (openat_ro): Remove. Caller changed to use openat_permissive. + (openat_permissive): Now a macro, if not a function. + (openat_restore_fail, openat_save_fail): Now always functions, + since mkdirat needs them even if __OPENAT_PREFIX is defined. + + * openat-priv.h: New file, defining macros used by mkdirat.c + and openat.c. + * mkdirat.c: Include openat-priv.h. + Remove definitions of macros defined therein. + * openat.c: Likewise. + + * mkdirat.c (mkdirat): New file and function. + * openat.h (mkdirat): Declare. + + * openat.c (fdopendir): Don't change errno when returning non-NULL. + + * openat.h (openat_permissive): Declare. + (openat_ro): Define. + + * openat.c (EXPECTED_ERRNO): New macro. + (openat_permissive): New function -- used in remove.c rewrite. + (all functions): Set errno just before returning, only if there + was an actual failure. + Use EXPECTED_ERRNO rather than comparing against only ENOTDIR. + + Emulate openat-family functions using Linux's procfs, if possible. + Idea and some code based on Ulrich Drepper's glibc changes. + + * openat.c: (BUILD_PROC_NAME): New macro. + Include , , "alloca.h" and "intprops.h". + (rpl_openat): Emulate by trying to open /proc/self/fd/%d/%s, + before falling back on save_cwd and restore_cwd. + (fdopendir, fstatat, unlinkat): Likewise. + + * openat.c (fstatat, unlinkat): Perform the syscall directly, + skipping the save_cwd...restore_cwd overhead, if FILE is absolute. + + * openat.c (rpl_openat): Use the promoted type (int), not mode_t, + as second argument to va_arg. Otherwise, some versions of gcc + warn that `if this code is reached, the program will abort'. + +2006-01-09 Andreas Gruenbacher + + Sync from coreutils. + + Add POSIX ACL support + * acl.h (copy_acl, set_acl): Add declarations. + * acl.c (acl_entries): Add fallback implementation for POSIX ACL + systems other than Linux. + (chmod_or_fchmod): New function: use fchmod when possible, + and chmod otherwise. + (file_has_acl): Add a POSIX ACL implementation, with a + Linux-specific subcase. + (copy_acl): Add: copy an acl and S_ISUID, S_ISGID, and + S_ISVTX from one file to another. Fall back to fchmod/chmod when + acls are unsupported. + (set_acl): Add: set a file's acl and S_ISUID, S_ISGID, and + S_ISVTX to a defined value. Fall back to fchmod/chmod when acls + are unsupported. + +2006-01-09 Bruno Haible + + * sysexit_.h (EX_OK): New macro. + Suggested by Martin Lambers . + +2006-01-09 Bruno Haible + + * javacomp.sh.in: Move to ../build-aux/javacomp.sh.in. + * javaexec.sh.in: Move to ../build-aux/javaexec.sh.in. + * csharpcomp.sh.in: Move to ../build-aux/csharpcomp.sh.in. + * csharpexec.sh.in: Move to ../build-aux/csharpexec.sh.in. + +2006-01-09 Bruno Haible + + * stdint_.h (SIZE_MAX): Write the value without involving negative + numbers. + +2005-10-16 Bruno Haible + + * stdint_.h: On Linux libc4 and libc5, include and + don't define _STDINT_H_NEED_SIGNED_INT_TYPES. + +2006-01-04 Paul Eggert + + * strftime.c (tzname): Don't declare if it is already #defined. + Problem reported for Mingw by Mark Junker. + +2006-01-03 Paul Eggert + + * xtime.h (xtime_make, xtime_nonnegative_nsec, xtime_nsec): Use + long int, not int, for nanosecond counts, so that people who are + used to POSIX struct timespec won't be surprised. Reported by Jim + Meyering. + +2005-12-16 Jim Meyering + + * fprintftime.c, fprintftime.h: New files. + +2005-12-10 Sergey Poznyakoff + + * argp-fmtstream.c (__argp_fmtstream_update): Fix coredump + * argp-help.c (fill_in_uparams): Check if the constructed + struct uparams is valid. Fall back to the default values if it is + not. + +2005-12-09 Sergey Poznyakoff + + * argp-help.c (__argp_base_name): New function + (__argp_short_program_name): Rewrite using __argp_base_name + * argp-namefrob.h: Define program_invocation_name and + program_invocation_short_name if requested + (__argp_base_name): Add prototype + * argp-parse.c (argp_def): Use gettext wrappers + (argp_default_parser): Use __argp_base_name + * argp-pin.c: New file. Defines program_invocation_name and + program_invocation_short_name on systems that lack them. + +2005-12-07 Paul Eggert + + * stat-time.h (STATE_TIMESPEC, STAT_TIMESPEC_NS): Add check for + TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC, to fix IRIX 5.3 + porting problem reported by Georg Schwarz in + . + +2005-07-09 Bruno Haible + + * csharpcomp.sh.in (options_csc): For -l option, add a .dll suffix. + * csharpcomp.c (compile_csharp_using_sscli): Likewise. + Reported by Mark Junker . + +2005-11-29 Paul Eggert + + * stdint_.h (intmax_t) [defined intmax_t]: Do not declare. + (uintmax_t) [defined uintmax_t]: Do not declare. + (SIZE_MAX) [defined SIZE_MAX]: Do not define. + This works around a problem if intmax_t.m4 and/or uintmax_t.m4 + and/or size_max.m4 are also used. Problem reported by Mark D. Baushke. + (SIZE_MAX): Define to ((size_t) -1), not (~(size_t)0), for the + sake of portability to weird hosts that C allows (though we don't + know of any practical examples). + + * savedir.h (fdsavedir): New decl. + * savedir.c (fdsavedir, savedirstream): New functions; the latter + contains most of the former guts of savedir. + (savedir): Use savedirstream. + Include "openat.h". + +2005-11-15 Paul Eggert + + * xstrtod.c: Don't bother with #pragma STDC FENV_ACCESS ON, as + coreutils no longer futzes with rounding modes. + +2005-11-14 Jim Meyering + + * mkstemp-safer.c: Include , required for possible + replacement of mkstemp. + +2005-11-10 Paul Eggert + + * gethrxtime.c: Include "timespec.h" rather than the sys/time / time + business. + (gethrxtime) [! (HAVE_NANOUPTIME + || (defined CLOCK_MONOTONIC && HAVE_CLOCK_GETTIME) + || HAVE_MICROUPTIME)]: Fall back on gettime rather than rolling + our own approximation. + +2005-11-10 Simon Josefsson + + * readline.c: Remove EOL. + +2005-11-08 Eric Blake + + * inet_ntop.h: Use #if !, not #ifndef, for AC_CHECK_DECLS. + +2005-11-08 Eric Blake + + * getaddrinfo.h: Use #if !, not #ifndef, for AC_CHECK_DECLS. + +2005-10-30 Paul Eggert + + Fix porting problem reported by Theodoros V. Kalamatianos. + * utimens.c (futimens) [HAVE_WORKING_UTIMES && HAVE_FUTIMES]: + Don't assume that futimes failing means we must fail. + +2005-10-29 Paul Eggert + + * getcwd.c (__getcwd): Don't assume that system calls after readdir + leave errno alone. Problem reported by Dmitry V. Levin. + +2005-10-28 Paul Eggert + + * savedir.c (savedir): Don't assume that xrealloc etc. leave + errno alone. Problem reported by Frederic Jolliton. + +2005-10-28 Simon Josefsson + + * inet_ntop.h, inet_ntop.c: Make it work under mingw32: Add + "restrict" keywords, as per POSIX. Protect the function + declaration around HAVE_DECL_INET_NTOP rather than HAVE_INET_NTOP. + Don't use K&R prototypes. Check the sprintf return values. + Re-define EAFNOSUPPORT if not present. Indent. + + * md5.h, md5.c: Simplify buffer handling visavi alignment, + suggested by Bruno Haible . + + * gc-gnulib.c, gc-libgcrypt.c: Check calloc return value. + + * gc.h: Add MD2 and RMD160 length defines. Add prototypes. + + * gc-libgcrypt.c: Add MD2 (which is not available through + libgcrypt). + + * gc-gnulib.c: Add MD2. Implement gc_hash_* API. + + * md2.h, md2.c: New files. + +2005-10-24 Simon Josefsson + + * md4.h: Shrink buffer size, now that we changed the type. + +2005-10-22 Simon Josefsson + + * arcfour.h, arcfour.c: Use fixed size indices in the + arcfour_context struct (simplify test vector testing in GNU + Shishi). + +2005-10-22 Simon Josefsson + + * md4.h, md4.c: Simplify buffer handling visavi alignment, + suggested by Bruno Haible . + +2005-10-22 Simon Josefsson + + * crc.h: Include stddef.h, for size_t. + +2005-10-21 Simon Josefsson + + * arctwo.h (arctwo_setkey): Protect variable in CPP macro, + suggested by Ralf Wildenhues . + +2005-10-21 Simon Josefsson + + * rijndael-api-fst.c: Fix bugs in CBC mode for more than one + block. + +2005-10-21 Simon Josefsson + + * gc-gnulib.c: Support ARCTWO in CBC mode. + +2005-10-21 Simon Josefsson + + * hmac-md5.c (hmac_md5): Add comments, suggested by Bruno Haible + . + + * hmac-sha1.c (hmac_sha1): Likewise. + + * crc.c (crc32_update): Actually use crc parameter, suggested by + Bruno Haible . + + * crc.h: Include stdint.h directly, suggested by Bruno Haible + . + +2005-10-21 Simon Josefsson + + * des.h, des.c: New files. + + * gc-gnulib.c: Support DES.c + +2005-10-21 Simon Josefsson + + * arctwo.h, arctwo.c: New files. + + * gc-gnulib.c: Support ARCTWO. + +2005-10-21 Simon Josefsson + + * gc-libgcrypt.c (gc_cipher_open): Handle ECB. + +2005-10-19 Simon Josefsson + + * gc-gnulib.c: Support ARCFOUR. + +2005-10-19 Simon Josefsson + + * gc-gnulib.c: Implement gc_cipher_* API, currently only with AES + support. + + * gc.h: Add ECB enum type. + + * hmac-md5.c, hmac-sha1.c: Include memxor.h. + +2005-10-19 Simon Josefsson + + * gc.h, gc-gnulib.c, gc-libgcrypt.c: Support MD4. + +2005-10-18 Simon Josefsson + + * md4.h, md4.c: New files, based on md5.?. + +2005-10-17 Simon Josefsson + + * gc-libgcrypt.c (gc_hmac_sha1): Fix assert. + + * gc.h (gc_nonce, gc_pseudo_random, gc_random): Add prototypes. + +2005-10-17 Simon Josefsson + + * gc.h, gc-libgcrypt.c: Add more hash types/functions. + +2005-10-17 Simon Josefsson + + * gc.h, gc-libgcrypt.c: Add ciphers. + +2005-10-17 Simon Josefsson + + * sha1.c: Use uint32_t instead of md5_uint32.t + + * sha1.h: Use stdint.h and uint32_t instead of md5_uint32 from + md5.h. + + * md5.c: Use uin32_t. Fix non-gcc UNALIGNED_P macro. + + * md5.h: Use stdint.h and uint32_t. Doc fix. + +2005-10-15 Simon Josefsson + + * rijndael-api-fst.h, rijndael-api-fst.c: New files. + + * rijndael-alg-fst.h, rijndael-alg-fst.c: New files. + +2005-10-14 Simon Josefsson + + * arcfour.h, arcfour.c: New files. + +2005-10-14 Paul Eggert + + * obstack.c [defined _LIBC && defined USE_IN_LIBIO]: Don't + include ; no longer needed. + +2005-10-14 Jakub Jelinek + and Ulrich Drepper + + Import from libc. + * obstack.c (print_and_abort) [defined _LIBC]: Use __fxprintf + instead of inline stream orientation test and two separate + function calls. Pay no attention to USE_IN_LIBIO. + +2005-10-14 Roland McGrath + + Import from libc. [BZ #1331] + * obstack.h [!__STDC__] (obstack_int_grow_fast): Fix misnamed + macro argument. + Reported by Matej Vela . + +2005-10-13 Paul Eggert + + * mkdir-p.c (make_dir_parents): Don't report an error if an + intermediate directory is in a read-only file system. Problem + reported by Eric Blake. + +2005-10-13 Simon Josefsson + + * gc-pbkdf2-sha1.c (gc_pbkdf2_sha1): Optimize CEIL computation. + Move memory allocation outside of loop. + +2005-10-12 Simon Josefsson + + * gc-pbkdf2-sha1.c: New file. + + * gc.h: Add gc_pbkdf2_sha1 prototype. + +2005-10-12 Simon Josefsson + + * gc.h, gc-gnulib.c, gc-libgcrypt.c: Use Gc_rc for return types, + suggested by Bruno Haible . + +2005-10-12 Simon Josefsson + + * gc-libgcrypt.c (gc_hmac_sha1): New function. + + * gc-gnulib.c (gc_hmac_sha1): New function. + +2005-10-12 Simon Josefsson + + * gc.h, gc-gnulib.c, gc-libgcrypt.c: Support SHA-1. + +2005-10-12 Simon Josefsson + + * gc-gnulib.c: Condition MD5 and HMAC-MD5 use on GC_USE_MD5 and + GC_USE_HMAC_MD5, respectively. + + * gc-libgcrypt.c (gc_md5): Fix assert call. + (gc_md5): Fix typo. + + * gc.h (gc_hash_buffer): Use gc_hash in prototype. + + * gc-libgcrypt.c (gc_hash_buffer): Ditto. + + * gc-gnulib.c (gc_hash_buffer): Ditto. + +2005-10-11 Bruno Haible + + * c-strcasestr.h: New file, from GNU gettext. + * c-strcasestr.c: New file, from GNU gettext. + 2005-10-11 Bruno Haible * c-strcase.h: New file, from GNU gettext. @@ -6715,7 +7399,7 @@ * exclude.c (bool): Declare, perhaps by including stdbool.h. (): Include only if HAVE_SYS_TYPES_H. (, , , , ): - Include if available. + Include if available. (): Include (SIZE_MAX): Define if or doesn't. (verify): New macro. Use it to verify that EXCLUDE macros do not