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