NEED...

Something amiss with your OS? Port with confENVDEF

The sendmail program requires certain C-language library routines to exist. If any are missing from your library, define the macro listed in Table 3-9 that seems to fill your needs, and sendmail will try to emulate that need.

Each macro is defined with confENVDEF in your Build m4 file by setting it to a value of 1 (NEEDPUTENV is an exception in that 1 or 2 can be used):

APPENDDEF(`confENVDEF', `-DNEEDFSYNC=1')

Note that these are correctly defined for all currently supported systems. You should need to redefine them only if you are porting sendmail to a completely new system.

Table 3-9. Define replacements for missing C library routines

Compile-time macro

Emulates

NEEDFSYNC

Replaces a missing fsync(2). The sendmail program will try to simulate it by using fcntl(2), if available; otherwise, sendmail will not “sync” to disk. This latter circumstance is undesirable and can result in unreliable mail delivery, but it works.

NEEDGETOPT

The sendmail program calls getopt(3) twice when parsing its command-line arguments. Some versions of getopt(3) do odd things when called twice. If yours is one of these, replace it. This NEEDGETOPT macro has been replaced, as of V8.12, by the SM_CONF_GETOPT macro (SM_... on page 139).

NEEDINTERRNO

If set, this macro says that errno is not declared in your system’s errno.h file.

NEED_PERCENTQ

This should be set if your system C-language library’s printf(3) does not support both “%lld” and “%llu.” ...

Get sendmail, 4th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.