weening@GANG-OF-FOUR.STANFORD.EDU (Joe Weening) (09/07/89)
Today I tried to compile Emacs 18.55 on Alliant's latest operating system, Concentrix 5.0 (using a pre-release GCC, though that does not seem to matter), and ran into the following problem. Several files in the src directory include lisp.h, and then go on to read system include files. (For example, emacs.c and several others do this.) lisp.h defines a macro named NULL, but /usr/include/sys/file.h, through a long chain of other include files ending in /usr/include/sys/param.h, also defines NULL (as the constant 0). The result is a message like: emacs.c: In function Fkill_emacs: emacs.c:475: called object is not a function It is fairly easy to fix this by changing the order of include files, so that #include <sys/file.h> occurs before #include "lisp.h".