This is an import of gnulib that is used by gdb and gdbserver.

To send patches, follow the gdb patch submission instructions in
../gdb/CONTRIBUTE.  For maintainers, see ../gdb/MAINTAINERS.

See update-gnulib.sh for instructions on updating gnulib.
