This article is from the GNU Chess and XBoard FAQ, by Tim Mann email@example.com with numerous contributions by others.
The message looks something like this:
FIONREAD: Operation not supported on socket
You probably have a non-ANSI ioctl.h; see README. -1 45 4004787f
If you are using gcc to compile, the solution to this error message is
usually to go to the GNU Chess Makefile, find the line that starts
"CFLAGS=" (with no # character in front of it), and append the flag
"-traditional-cpp" to the end of the line. Then do
rm dspcom*.o gnuan.o
to rebuild gnuchess.
If you aren't using gcc, we don't really understand why this should
happen, but we do have a brute-force workaround: You can simply disable
the gnuchess feature that uses FIONREAD. Find all the places in dspcom.c
(and gnuan.c) where the line "#ifdef FIONREAD" occurs. Change each of
them to "#ifdef NOTDEF". Then recompile gnuchess.
With this code disabled, if you tell gnuchess to think on your time
("hard" mode), you will have to type ^C to make it stop thinking when
you want to make your move. The current version of XBoard does this
automatically, so disabling the code has no effect on XBoard.