Macros that begin with HAS tell
sendmail whether your system supports (has)
certain system-library routines or variables. In general, you should
need to define or undefine the compile-time macros shown in Table 3-3 only if you are porting
sendmail to a new system. In that instance you
should also read sendmail/README for the latest
information and pitfalls.
Each of these is turned on or off with an assignment of 1 or 0:
APPENDDEF(`confENVDEF', `-DHASSETSID=1') turn on
APPENDDEF(`confENVDEF', `-DHASSETSID=0') turn off
"Turning on" tells
sendmail that your site has support for this
system call (setsid(2) in this instance).
"Turning off" tells
sendmail to work around the lack of that
support. When porting to a new system, you can test with one of the
preceding confENVDEF statements and, if
successful, put a permanent porting entry into
sendmail/conf.h.
Table 3-3. HAS... compile-time macros for specific system-call support
HASFCHMOD
|
fchmod(2)
|
HASFCHOWN
|
fchown(2)
|
HASFLOCK
|
flock(2)
|
HASGETDTABLESIZE
|
getdtablesize(2)
|
HASGETUSERSHELL
|
getusershell(3)
|
HASINITGROUPS
|
initgroups(3)
|
HASLSTAT
|
lstat(2)
|
HASNICE
|
nice(2)
|
HASRANDOM
|
random(3)
|
HASRRESVPORT
|
rresvport(3)
|
HASSETREUID
|
setreuid(2)
|
HASSETREGID
|
setregid(2)
|
HASSETRESGID
|
setresgid(2)
|
HASSETREUID
|
setreuid(2)
|
HASSETRLIMIT
|
setrlimit(2)
|
HASSETSID
|
setsid(2)
|
HASSETUSERCONTEXT
|
setusercontext(3)
|
HASSETVBUF
|
setvbuf(3)
|
HASSIGSETMASK
|
sigsetmask(2)
|
HASSNPRINTF
|
snprintf(3) and vsnprintf(3)
|
HASSRANDOMDEV
|
srandomdev(3)
|
HASSTRERROR
|
strerror(3)
|
HASULIMIT
|
ulimit(2)
|
HASUNAME
|
uname(2)
|
HASUNSETENV
|
unsetenv(3)
|
HASURANDOMDEV
|
/dev/urandom(4)
|
HASWAITPID
|
waitpid(2)
|
HAS_ST_GEN
|
st_gen in stat(2) structure
|
If you are running a precompiled binary of
sendmail, you can use the
-d0.10 debugging switch (-d0.10) to determine if any of these are defined
(each is defined that appears in the list). New ports should be
reported to sendmail@sendmail.org so that they
can be folded into future releases.