home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


Previous Section Next Section

3.2 To Port, Tune, or Debug

In Table 3-2, we list all the compile-time macros that are available.

Note that the Tune column of Table 3-2 recommends whether you should adjust (tune) the values for any particular macro. Those marked tune can be adjusted from within your Build m4 file. Those marked with port should be changed only in the rare event that you need to port sendmail to a new operating system.[2] Those marked with debug should be defined only during porting to help debug the new binary but (for security reasons) should never be defined for the final production version.

[2] But note that final porting should be done in include/sm/config.h, include/sm/conf.h, sendmail/conf.h, and sendmail/conf.c instead.

Also note that the -d column shows which debugging switches (-d0.1) can be used to determine whether the corresponding compile-time macro was defined when the sendmail binary was compiled. For most, if the name appears in the output, it was defined with a non-zero value.

Table 3-2. #define Macros for Compiling sendmail

Compile-time macro

§

Tune

-d

Description

ARBPTR_T

...T

port

 

How to cast an arbitrary pointer

AUTO_NIS_ALIASES

AUTO_NIS_ALIASES

tune

0.10

Add fallback alias techniques

BROKEN_RES_SEARCH

...IS_BROKEN

port

 

Broken resolver fix (e.g., Ultrix)

BSD4_3

BSD4_3

port

 

BSD 4.3-style signal handling

BSD4_4

BSD4_4

port

 

Compile for BSD 4.4 Unix

DATA_PROGRESS_TIMEOUT

DATA_PROGRESS_TIMEOUT

tune

 

Timeout inbound DATA phase

DNSMAP

DNSMAP

tune

0.1

Enable use of dns databases

DSN

DSN

tune

 

Support DSN

EGD

EGD

port

0.1

Enable use of the EGD daemon

ERRLIST_PREDEFINED

ERRLIST_PREDEFINED

port

 

Correct sys_errlist types

FAST_PID_RECYCLE

FAST_PID_RECYCLE

port

0.10

Quick reuse of pids

_FFR_...

_FFR...

tune

0.13

Try using future features

FORK

FORK

port

 

The type of fork(5) to use

GIDSET_T

...T

port

 

2nd argument to getgroups(2)

HAS...

HAS...

port

0.10

Has specific system call support

HESIOD

HESIOD

tune

0.1

Support hesiod database maps

HES_GETMAILHOST

HES_GETMAILHOST

tune

0.1

Use hesiod hes_getmailhost(3)

IDENTPROTO

IDENTPROTO

port

0.10

See Timeout.ident

IP_SRCROUTE

IP_SRCROUTE

tune

0.10

Add IP source-routing to $_

...IS_BROKEN

...IS_BROKEN

port

 

Things that can be broken

LA_TYPE

LA_TYPE

port

3.5

Define load-average support

LDAPMAP

LDAPMAP

tune

0.1

Enable use of ldap databases

LOG

LOG

tune

0.1

Perform logging

MAP_NSD

MAP_NSD

tune

1.0

Support Irix nsd maps

MAP_REGEX

MAP_REGEX

tune

1.0

Use regular expression maps

MATCHGECOS

MATCHGECOS

tune

0.1

Support fuzzy name matching

MAX...

MAX...

tune

 

Redefine maximums

MEMCHUNKSIZE

MEMCHUNKSIZE

tune

 

Specify memory malloc size

MILTER

MILTER

tune

0.1

Enable the X config command

MIME7TO8

MIME7TO8

tune

0.1

Support MIME 7- to 8-bit

MIME8TO7

MIME8TO7

tune

0.1

Support MIME 8- to 7-bit

NAMED_BIND

NAMED_BIND

tune

0.1

Support DNS

NDBM

NDBM

tune

0.1

Support Unix ndbm(3) maps

NEED...

NEED...

port

 

Something amiss with your OS?

NET...

NET...

tune

0.1

Select network type

NETINFO

NETINFO

tune

0.1

Support NeXT netinfo(3) maps

NEWDB

NEWDB

tune

0.1

Support Berkeley db(3) maps

NIS

NIS

tune

0.1

Support nis maps

NISPLUS

NISPLUS

tune

0.1

Support nisplus maps

NOFTRUNCATE

NOFTRUNCATE

port

0.10

Lack ftruncate(2) support

NO_GROUP_SET

NO_GROUP_SET

port

 

Prevent multi-group file access

NOTUNIX

NOTUNIX

tune

30.2

Exclude "From " line support

_PATH...

_PATH...

tune

 

Hard-code paths inside sendmail

PH_MAP

PH_MAP

tune

0.1

Support for PH maps

PICKY_HELO_CHECK

PICKY_HELO_CHECK

tune

 

Become picky about HELO

PIPELINING

PIPELINING

tune

0.1

Enable PIPELINING extension

PSBUFSIZ

PSBUFSIZ

tune

 

Size of prescan( ) buffer

QUEUE

QUEUE

tune

 

Enable queueing (prior to V8.12)

QUEUESEGSIZE

QUEUESEGSIZE

tune

41

Amount to grow queue work list

REQUIRES_DIR_FSYNC

REQUIRES_DIR_FSYNC

port

0.10

fsync( ) for directory updates

SAFENFSPATHCONF

...IS_BROKEN

port

0.10

pathconf(2) is broken

SASL

SASL

tune

0.1

Support AUTH (V8.10 and above)

SCANF

SCANF

tune

0.1

Support scanf(3) with F command

SECUREWARE

SECUREWARE

port

0.10

Support SecureWare C2 security

SFS_TYPE

SFS_TYPE

port

 

How to determine free disk space

SHARE_V1

SHARE_V1

port

0.10

Support for the fair share scheduler

SIOCGIFCONF_IS_BROKEN

...IS_BROKEN

port

0.10

SIOCGIFCONF ioctl(2) is broken

SIOCGIFNUM_IS_BROKEN

...IS_BROKEN

port

0.10

SIOCGIFNUM ioctl(2) is broken

SLEEP_T

...T

port

 

Type of return value for sleep2

SM_...

SM_...

port

0.12

Sendmail porting settings (V8.12 and above)

SM_HEAP_CHECK

SM_HEAP_CHECK

port

0.12

Memory-leak detection (V8.12 and above)

SM_CONF_SHM

SM_CONF_SHM

tune

0.12

Use shared memory (V8.12 and above)

SMTP

SMTP

tune

 

Enable SMTP (prior to V8.12)

SMTPDEBUG

SMTPDEBUG

debug

 

Enable remote debugging

SMTPLINELIM

SMTPLINELIM

n/a

 

Default for obsolete F=L flag

SOCKADDR_LEN_T

...T

port

 

Accept's 3rd argument type

SOCKOPT_LEN_T

...T

port

 

getsockopt(2)'s 5th arg type

SPT_TYPE

SPT_TYPE

port

 

Process title support

STARTTLS

STARTTLS

tune

0.4

Enable TLS (V8.11 and above)

SUID_ROOT_FILES_OK

SUID_ROOT_FILES_OK

debug

0.1

Allow root delivery to files

SYSLOG_BUFSIZE

SYSLOG_BUFSIZE

port

 

Limit syslog(3) buffer size

SYSTEM5

SYSTEM5

port

0.10

Support SysV-derived machines

SYS5SIGNALS

SYSTEM5

port

0.10

Use SysV-style signals

TCPWRAPPERS

TCPWRAPPERS

tune

0.1

Use libwrap.a (V8.8 and above)

TLS_NO_RSA

TLS_NO_RSA

port

0.1

Turn off RSA (V8.12 and above)

TOBUFSIZE

TOBUFSIZE

tune

 

Set buffer for recipient list

TTYNAME

TTYNAME

debug

35.9

Set $y to tty name (obsolete)

...T

...T

port

 

The types returned by functions

UDB_DEFAULT_SPEC

UDB_DEFAULT_SPEC

tune

 

Default User Database location

USE_DOUBLE_FORK

USE_DOUBLE_FORK

port

0.10

Fork twice (V8.12 and above)

USE_ENVIRON

USE_ENVIRON

port

0.10

Use environ (V8.12 and above)

USING_NETSCAPE_LDAP

USING_NETSCAPE_LDAP

tune

0.10

Netscape ldap (V8.10 and above)

USERDB

USERDB

tune

0.1

Support the User Database

USESETEUID

USESETEUID

port

0.10

Support seteuid(2) changes

WILDCARD_SHELL

WILDCARD_SHELL

debug

 

Redefine wild card shell

XDEBUG

XDEBUG

debug

0.1

Support sanity checks

    Previous Section Next Section