MPDL(1)

NAME
mpdl - MPD linker

SYNOPSIS

mpdl [ -eglvwA ] [ -I dir ] [ -o file ] [ -r file ] [ -CLNOPQRVS size ] component ...

DESCRIPTION

Mpdl produces an executable file, a.out by default, by linking together the components of an MPD program. The command line lists one or more resource and global names and may also list additional `file.o', `file.a', or `-lxxx' arguments to link code from other languages. These additional arguments are passed to ld(1).

The last resource named becomes the main resource; it should have no parameters. Abstract resources (those having no bodies) should not be named, but all globals must be listed.

Mpdl accepts the following general options:

-I dir
    Use dir/MPDinter as the MPDinter directory instead of ./MPDinter.

-o file
    Use file for executable output instead of a.out.

-w  Suppress warnings about out-of-date files.

-l  List runtime limits, then exit immediately.

The following options set values controlling the subsequent execution of the MPD program. For most maxima, the default value is 1000000.

-A  Enable asynchronous output. When set, output calls do not block the entire program and are not atomic. Instead, they can affect the flow of control by performing context switches.

-C n
    Set the maximum number of active co statements.

-L n
    Set the maximum number of loop iterations between context switches. A value of zero is taken as infinite.

-N n
    Set the maximum number of in operation classes.

-O n
    Set the maximum number of active operations.

-P n
    Set the maximum number of processes.

-Q n
    Set the maximum number of pending remote requests.

-R n
    Set the maximum number of active resources.

-V n
    Set the maximum number of number of semaphores.

-S size
    Set the size of a process stack.

Additional options are useful mainly when debugging the MPD system:

-e  Use the experimental runtime system.

-r file
    Use the runtime system from file.

-g  Link to allow debugging with dbx(1). This is useful mostly for debugging the runtime system and is not particularly helpful towards understanding errant MPD programs.

-v  Announce other programs invoked by mpdl.

ENVIRONMENT

MPD_PATH
    Mpdl searches for object files by looking first in the current directory, then in the MPDinter directory, and finally in the MPD library. If MPD_PATH is set, any directories named there are checked ahead of the standard search sequence. Directories in MPD_PATH are separated by colons (:).

FILES
MPDinter/component.o    object file
mpdlib.a    runtime library
a.out    executable program
MPDinter/component.spec    specification file
MPDinter/_ofile.c    configuration information
MPDinter/_ofile.o    configuration object module

SEE ALSO

mpd(1), ld(1), dbx(1)

DIAGNOSTICS

Mpdl does not actually do the linking itself; it is merely a front-end for the UNIX linker ld(1). Messages not beginning with ``mpdl'' can be attributed to ld.

Messages about undefined externals usually stem from the omission of a resource or global name from the mpdl call.

Mpdl verifies that object files of resource and globals are newer than the corresponding source files.