Building gdb with clang, I run into:
...
src/gdb/gdbserver/linux-low.c:6190:41: error: comparison of unsigned \
expression < 0 is always false [-Werror,-Wtautological-compare]
if (debug_write ("sigchld_handler\n",
sizeof ("sigchld_handler\n") - 1) < 0)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
...
This regression is introduced by commit
a7e559cc08 "gdbserver: Ensure all
debug output uses debug functions", which replaces calls to write with result
type ssize_t with calls to debug_write with result type size_t.
Fix this by making debug_write return ssize_t.
Build and reg-tested on x86_64-linux.
gdb/gdbserver/ChangeLog:
2019-06-19 Tom de Vries <tdevries@suse.de>
* debug.h (debug_write): Change return type to ssize_t.
* debug.c (debug_write): Same.
+2019-06-19 Tom de Vries <tdevries@suse.de>
+
+ * debug.h (debug_write): Change return type to ssize_t.
+ * debug.c (debug_write): Same.
+
2019-06-14 Tom Tromey <tom@tromey.com>
* configure.ac: Use new path to gnulib.
/* See debug.h. */
-size_t
+ssize_t
debug_write (const void *buf, size_t nbyte)
{
int fd = fileno (debug_file);
void do_debug_exit (const char *function_name);
/* Async signal safe debug output function that calls write directly. */
-size_t debug_write (const void *buf, size_t nbyte);
+ssize_t debug_write (const void *buf, size_t nbyte);
/* These macros are for use in major functions that produce a lot of
debugging output. They help identify in the mass of debugging output