build: drop superfluous STDC_HEADERS macro

It is traditionally defined by autotools to detect the presence of set
of standard C89 headers. autoconf 2.70 (2020-12-08) reduced the headers
covered to `stdlib.h`, `string.h`. After 2.59d (2006-06-05) obsoleting
it earlier. CMake replicated this detection, and curl included
`curl/stdcheaders.h` if standard headers were missing. However, such
condition could never happen because curl sources already assume all
checked standard headers (`stdarg.h`, `stdlib.h`, `string.h`) and
include them unconditionally.

Since this is an unused feature detection and an impossible fallback
path, drop them from CMake and curl's source. autotools continues to do
the detection by default, but its result is unused after this patch.

This leaves public `curl/stdcheaders.h` unused from within the codebase.

Refs:
f0c7c42553
86c213d0e3

Follow-up to 65dae4ad80 #22191
Follow-up to 4c5307b456
Ref: ae1912cb0d

Closes #22206
This commit is contained in:
Viktor Szakats 2026-06-28 12:19:11 +02:00
parent 99859ecca8
commit 1671ebd975
No known key found for this signature in database
10 changed files with 1 additions and 38 deletions

View file

@ -88,6 +88,7 @@ my %remove = (
'#define PACKAGE_TARNAME "curl"' => 1,
'#define PACKAGE_URL ""' => 1,
'#define PACKAGE_VERSION "-"' => 1,
'#define STDC_HEADERS 1' => 1,
'#define VERSION "-"' => 1,
'#define _FILE_OFFSET_BITS 64' => 1,
);

View file

@ -114,16 +114,6 @@ int main(void)
}
#endif
#ifdef STDC_HEADERS
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
int main(void)
{
return 0;
}
#endif
#ifdef HAVE_FILE_OFFSET_BITS
#include <sys/types.h>
/* Check that off_t can represent 2**63 - 1 correctly.

View file

@ -314,5 +314,4 @@ set(HAVE_UTIME 1)
set(HAVE_UTIMES 1)
set(HAVE_UTIME_H 1)
set(HAVE_WRITABLE_ARGV 1)
set(STDC_HEADERS 1)
set(USE_UNIX_SOCKETS 1)

View file

@ -161,7 +161,6 @@ set(HAVE_TERMIO_H 0)
set(HAVE_TIME_T_UNSIGNED 0)
set(HAVE_UTIME 1)
set(HAVE_UTIMES 0)
set(STDC_HEADERS 1)
# Types and sizes

View file

@ -1731,7 +1731,6 @@ foreach(_curl_test IN ITEMS
HAVE_GETHOSTBYNAME_R_5
HAVE_GETHOSTBYNAME_R_6
HAVE_BOOL_T
STDC_HEADERS
HAVE_ATOMIC
)
curl_internal_test(${_curl_test})

View file

@ -238,11 +238,6 @@
/* Size of time_t in number of bytes */
#define SIZEOF_TIME_T 4
/* Define to 1 if all of the C89 standard headers exist (not only the ones
required in a freestanding environment). This macro is provided for
backward compatibility; new code need not use it. */
#define STDC_HEADERS 1
/* Define if you want to enable IPv6 support */
#define USE_IPV6

View file

@ -71,9 +71,6 @@
/* OTHER HEADER INFO */
/* ---------------------------------------------------------------- */
/* Define if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Define to 1 if bool is an available type. */
#if (defined(_MSC_VER) && (_MSC_VER >= 1800)) || defined(__MINGW32__)
#define HAVE_BOOL_T 1

View file

@ -634,9 +634,6 @@ ${SIZEOF_SIZE_T_CODE}
/* The size of `time_t', as computed by sizeof. */
${SIZEOF_TIME_T_CODE}
/* Define to 1 if you have the ANSI C header files. */
#cmakedefine STDC_HEADERS 1
/* Define if you have POSIX pthreads */
#cmakedefine HAVE_THREADS_POSIX 1

View file

@ -490,10 +490,6 @@
# endif
#endif
#ifndef STDC_HEADERS /* no standard C headers! */
#include <curl/stdcheaders.h>
#endif
#include <stdint.h>
#define HAVE_UINTPTR_T /* assume uintptr_t is provided by stdint.h */

View file

@ -1648,16 +1648,6 @@ $ write tf "#endif"
$ goto cfgh_in_loop1
$ endif
$!
$! Process STDC_HEADERS (SAMBA!)
$!---------------------------
$ if key2 .eqs. "STDC_HEADERS"
$ then
$ write tf "#ifndef STDC_HEADERS"
$ write tf "#define STDC_HEADERS 1"
$ write tf "#endif"
$ goto cfgh_in_loop1
$ endif
$!
$! Process PROTOTYPES directive
$!-------------------------------------
$ if key2 .eqs. "PROTOTYPES"