Not all versions of Unix are equal. Some implement important library routines in ways that are considered broken. For sendmail to work properly on such systems, it needs to know at compile time whether it is being built on such a broken system. The compile-time macros that convey this information to sendmail are listed and described in Table 3-4.

Table 3-4. Compile-time macros for things that are broken

Compile-time macro

What’s broken


Some compilers claim to be ANSI-compliant, yet they lack the strtoul(2) function. If, when you build sendmail, you get an error saying that the strtoul function could not be found, you can get around that problem by defining this Build m4 compile-time macro.


On Ultrix systems, if an unknown host is looked up with the res_search(2) routine, that routine wrongly sets h_errno to 0, when it should correctly set h_errno to HOST_NOT_FOUND. If you define this macro, sendmail will consider an h_errno of 0 to be the same as HOST_NOT_FOUND.


On DEC OSF/1 V3.2 and earlier, the MatchGECOS option (MatchGECOS) fails to work. If you want to use this option under those early versions you can define this compile-time macro. The MatchGECOS option works as advertised beginning with DEC OSF/1 V3.2C.


If you have verified that a pathconf(2) call with a _PC_CHOWN_RESTRICTED argument returns a negative or zero value when a check is made on an NFS filesystem, ...

Get Sendmail, 3rd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.