OpenMCL uses a set of Berkeley DB v1 database files which contain foreign type, record, constant, and function definitions derived from the Linux header files. An archive containing these database files (and the shell scripts that were used in their creation) is available:

This archive (like OpenMCL binary and source distributions) should be extracted in the parent directory of the CCL directory.


Note that prior to version 0.9, OpenMCL used the GDBM database engine (vice Berkeley DB) and the "ccl:headers;" directory was laid out differently. When upgrading from the old-style database to the new, it may be necessary to remove or rename the "ccl:headers;" directory before extracting the archive.


OpenMCL defines reader macros that consult these databases:

In both cases, the symbol FOO is interned in the LINUX package. The #$ reader macro has the side-effect of defining FOO as a constant (as if via DEFCONSTANT); the #_ reader macro has the side effect of defining FOO as a macro which will expand into an (EXTERNAL-CALL form.)

In addition, references to foreign type, structure/union, and field names (when used in the RREF/PREF and RLET macros) will cause these database files to be consulted.

Since the OpenMCL sources now contain instances of these reader macros (and references to foreign record types and fields), it's now necessary to install the interface database before compiling OpenMCL.

Other issues:

For information about building the database files, see here.