vides a weak library interface to the common symbols in the library
it shares with the modules.  That way, when 'libtool' links the *Module
Loader* library with some *Dlpreopened Modules* that were in turn linked
against the *Module Interface Library*, it knows that the *Module
Loader* provides an already loaded *Module Interface Library* to resolve
symbols for the *Dlpreopened Modules*, and doesn't ask the compiler
driver to link an identical *Module Interface Library* dependency
library too.

   In conjunction with Automake, the 'Makefile.am' for the *Module
Loader* might look like this:

     lib_LTLIBRARIES = libinterface.la libloader.la

     libinterface_la_SOURCES = interface.c interface.h
     libinterface_la_LDFLAGS = -version-info 3:2:1

     libloader_la_SOURCES    = loader.c
     libloader_la_LDFLAGS    = -weak libinterface.la \
                               -version-info 3:2:1 \
                               -dlpreopen ../modules/intrinsics.la
     libloader_la_LIBADD     = $(libinterface_la_OBJECTS)

   And the 'Makefile.am' for the 'intrinsics.la' module in a sibling
'modules' directory might look like this:

     AM_CPPFLAGS             = -I$(srcdir)/../libloader
     AM_LDFLAGS              = -no-undefined -module -avoid-version \
                               -export-dynamic

     noinst_LTLIBRARIES      = intrinsics.la

     intrinsics_la_LIBADD    = ../libloader/libinterface.la

     ../libloader/libinterface.la:
             cd ../libloader && $(MAKE) $(AM_MAKEFLAGS) libinterface.la

   For a more complex example, see the sources of 'libltdl' in the
Libtool distribution, which is built with the help of the '-weak'
option.

