Previous Section Next Section

...IS_BROKEN

Things that can be broken port, edit sendmail/conf.h

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

BROKEN_ANSI_LIBRARY

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.

BROKEN_RES_SEARCH

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.

DEC_OSF_BROKEN_GETPWENT

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.

SAFENFSPATHCONF

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, where the underlying system allows users to give away files to other users, you should define this compile-time macro.

SIOCGIFCONF_IS_BROKEN

The SIOCGIFCONF ioctl(2) call is expected to behave in the same manner it does on such systems as BSD, Solaris, SunOS, HP-UX, etc. If yours behaves in a different manner, you should define this compile-time macro.

SIOCGIFNUM_IS_BROKEN

The SIOCGIFNUM ioctl(2) call is expected to behave in the same manner it does on Solaris and HPUX systems. If yours behaves in a different manner, you should define this compile-time macro.

Usually, you will not have to define any of these compile-time macros unless you are porting sendmail to a completely new system.

If you are running a precompiled sendmail, you can use the -d0.10 debugging command-line switch (-d0.10) to determine if any are supported (each is supported that appears in the list). New ports should be reported to sendmail@sendmail.org so that they can be folded into future releases.

Previous Section Next Section