Re: [PATCH 0/2] Modernize header checks
Eric Blake <[email protected]>
| Newsgroups | gmane.comp.sysutils.autoconf.patches |
|---|---|
| Organization | Red Hat, Inc. |
| Message-ID | <[email protected]> |
On 05/31/2013 11:07 AM, Eric Blake wrote: >> If so, note that removing strings.h from the list of headers that are >> probed by default will cause backwards compatibility issues. One still >> must include strings.h (not string.h) according to POSIX in order to get >> strcasecmp and friends, and some operating systems (specifically at least >> some versions of FreeBSD) do actually enforce that and do not prototype >> those functions in string.h. I'm quite sure there is code out there that >> assumes that Autoconf will probe for strings.h as a side effect of other >> probes and set HAVE_STRINGS_H, and therefore doesn't probe for it >> explicitly. (I maintain some of it, in fact.) > > Yes, there is a bunch of code that non-portably assumes they can use > strcasecmp or ffs without including <strings.h>. On the other hand, > <strings.h> is available on pretty much ALL platforms that use free > software compilers (according to gnulib, only ancient Minix 3.1.8 and > non-free MSVC 9 have problems with assuming <strings.h> exists and is > self-contained; but mingw does not have this issue). Thus, you > generally don't need to use HAVE_STRINGS_H, but can just blindly include > it, unless your package is trying to be portable to a rather unforgiving > toolchain. That said, would it hurt if autoconf just unconditionally defined the macros that were previously conditionally defined by a probe, so that code that was relying on HAVE_STRINGS_H instead of blind inclusion will still compile? -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
(application/pgp-signature, 621 B)
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.13 (GNU/Linux) Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCAAGBQJRqNuuAAoJEKeha0olJ0NqV1IIAKxwbdi5SYr/tUvx5iGlKaMC Iguj45aFUNGK9PtvbmUUyPnro+n6NnBPhuqD8RGW29k7HGRMSOJ951RcaCDT3Te8 2e0PEoyHr8HFvMP5c/ymLyaqTirbJ0fgqLxaP6ls3/B2sMyrNCI8URmr8awyVJTh BXBa+IsY84SO6yzwKmcZZYgTUY8G4dDzmrNcrx+cIuvLfiFUx/9CNCBmKtQAOxF5 FhIu2ybp1Y6k+CxTSO0o8sjk3TslZlotBYHZgnuTo1s8GkxD7d0xmCCYL3OcVkGb 9rPvOyJZLZBpQv4gmTjIjJlK66ojJIjbBWMoysM5TXzSLjM+5/v1kbFVj6mWa2E= =sGKg -----END PGP SIGNATURE-----