Instructions to compile sendmail
to a GOTO-object
Latest version of example sources known to work: 8.13.8
Latest version of goto-cc known to work on this example: 2.5
- Download the
sendmail sources and unpack the files.
tar xfz sendmail.8.13.8.tar.gz
- Switch to the sendmail-8.13.8 directory:
cd sendmail-8.13.8
and configure the build like this:
-
sendmail does not have a configure script, instead a
build configuration file must be created in
devtools/Site/site.config.m4. To extract a
goto-object for the Linux version, it should look like this:
include(confBUILDTOOLSDIR`/OS/Linux')
define(`confDEPEND_TYPE', `generic')
define(`confCC', `goto-cc --i386-linux')
define(`confLD', `goto-ld')
define(`confCCOPTS', `-DSM_ALIGN_SIZE=4')
- Build it!
./Build -c
This will result in multiple (goto-) binaries and libraries
in a subdirectory corresponding to your operating system and
architecture, e.g.,
obj.Linux.2.6.17-10-generic.i686.
- Try to verify the program by using the final object file
in
CBMC or SATABS:
cbmc --binary
obj.Linux.2.6.17-10-generic.i686/sendmail/sendmail
Of course you will need different options if you want to check
the program for a special claim or if you're using a different
tool.
|