Avoid c-ctype.h in libinproctrace.so

libinproctrace.so doesn't link against gnulib, and some versions of
clang won't inline the c-ctype.h functions.  This causes link
failures.

This patch works around the problem by reverting to <ctype.h> in this
case.

Tested-By: Guinevere Larsen <guinevere@redhat.com>
This commit is contained in:
Tom Tromey
2025-10-21 07:42:40 -06:00
parent bef948d551
commit 297a5c44dd

View File

@@ -21,6 +21,22 @@
#include "host-defs.h"
#include "gdbsupport/gdb-xfree.h"
/* When compiling for the in-process agent, we can't use c-ctype.h,
because (1) libinproctrace.so doesn't link against gnulib and (2)
some versions of clang won't inline all the functions. So,
redefine them here. */
#ifdef IN_PROCESS_AGENT
#include <ctype.h>
#undef c_isspace
#define c_isspace(X) (isspace (X))
#undef c_isalnum
#define c_isalnum(X) (isalnum (X))
#undef c_isdigit
#define c_isdigit(X) (isdigit (X))
#undef c_tolower
#define c_tolower(X) (tolower (X))
#endif /* IN_PROCESS_AGENT */
void *
xzalloc (size_t size)
{