]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Avoid c-ctype.h in libinproctrace.so
authorTom Tromey <tromey@adacore.com>
Tue, 21 Oct 2025 13:42:40 +0000 (07:42 -0600)
committerTom Tromey <tromey@adacore.com>
Wed, 22 Oct 2025 17:58:37 +0000 (11:58 -0600)
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>
gdbsupport/common-utils.cc

index 5c7ba313996ac8521d0329d623ba71283b2f1071..bccd6729f06e492f3b0616fc2352436049e026db 100644 (file)
 #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)
 {